202 Commits

Author SHA1 Message Date
Jürgen Eckel
41b5bf545f
Eckelj/distributions query (#491)
* added distributions query
* added test cases

---------

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
Co-authored-by: Julian Strobl <jmastr@mailbox.org>
2024-11-28 17:15:16 +01:00
Julian Strobl
75cb64de68
chore(deps): update cosmos-sdk to v0.47.14 (#489)
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2024-11-27 12:03:02 +01:00
Julian Strobl
8e87cd77db
refactor clients (#486)
* refactor(clients): into sub-packages
* refactor(clients): improve readability
  - add some error cases
* refactor(client): align naming with rddl claim client
  - rddl claim client is `RCClient`

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2024-11-21 10:13:42 +01:00
Jürgen Eckel
3cf3c67e08
Identify issues during DistributionResult calls (#484)
* added test case to cover and identifiy cases Distribution result caused creashes.
  e.g. "" is resolved as an address during DistributionResult this case is now covered.
  Hopefully, the test case will detect issues in the future
* added old initiator format to the test cases

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-11-20 13:54:13 +01:00
Julian Strobl
7538de159f
feat(log): force to log error object (#481)
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2024-11-20 11:58:18 +01:00
Julian Strobl
94706c8f99
fix(dao): challenger and challengee can be empty (#480)
* put validator rewards into else case to protect the claim object against bogus values

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-11-20 10:45:21 +01:00
Julian Strobl
b48432f541
refactor: reduce cognitive complexity (#475)
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2024-11-18 10:14:11 +01:00
Jürgen Eckel
702b9d6f7e
* clear unresolved claims for the initiators as well (#473)
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-11-15 12:15:23 +01:00
Julian Strobl
61adbc0a5d
feat(mqtt): start monitor after api server (#472)
* refactor(mqtt): load end of app.new
* feat(mqtt): switch to proper logging instance
* refactor(mqtt): dry
* refactor(mqtt): do not start log message with uppercase

closes #435

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2024-11-15 11:27:17 +01:00
Julian Strobl
6ddc07356e
fix(query): unknown flag: --page (#471)
some query commands use pagination when delivering results:
```
pageReq, err := client.ReadPageRequest(cmd.Flags())
if err != nil {
    return err
}
```
to be able to use this feature, we need to add pagination related flags
to the `cmd`.

* chore(lint): exclude query files from `dupl`

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2024-11-14 09:52:06 +01:00
Lorenz Herzberger
67453107d1
461 validator earn rewards for sending pop init successfully (#464)
* change: intitiator rewards are minted on InitPoP
* fix: split initiator, challenger and challengee reward amounts into different maps
* fix: expand error in logging
---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-11-13 11:00:08 +01:00
Julian Strobl
bead62bd04
refactor(query): align with cosmos-sdk style (#466)
- use one `cmd.AddCommand(...)`
- sort commands
- use `GetCmd...` function name style

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2024-11-12 15:59:52 +01:00
Julian Strobl
8db682d994
feat(lint): replace deprecated exportloopref (#467)
with `copyloopvar`, which needs Go 1.22.

* chore(ci): bump go version to v1.22
* fix(ci): pin release pipeline to go v1.22

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2024-11-12 15:59:09 +01:00
Lorenz Herzberger
0bd6964d3e
feat: add unresolved claim cleanup (#460)
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-11-07 09:51:06 +01:00
Lorenz Herzberger
764d1158dc
refactor: IsValidatorBlockProposer no longer accepts proposerAddress … (#458)
* refactor: IsValidatorBlockProposer no longer accepts proposerAddress because already given in ctx
* refactor: make use of ctx.BlockHeader().ProposerAddress to ensure correct Proposer
* fix: linter error because no longer in use* feat: add call logging to MQTT mock

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-11-05 07:59:34 +01:00
Lorenz Herzberger
72df3de139
fix: pop initiator is now validator address instead of blockProposer in order to not mixup rewards (#450)
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-10-02 10:36:08 +02:00
Lorenz Herzberger
a7bb114301
chore: changed module param defaults to be more visible (#445)
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-09-19 15:41:44 +02:00
Lorenz Herzberger
975a1005b0
test: add additonal validatorPopReward reallocation test (#436)
* test: add additonal validatorPopReward reallocation test
* fix: linter & staticcheck errors
---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-09-10 09:13:20 +02:00
Lorenz Herzberger
5d84ae6806
fix: ConsensusVersion on machine module (#432)
* fix: ConsensusVersion on machine module
* fix: use correct key to store activated ta counter on migration
---------
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-07-25 10:31:15 +02:00
Lorenz Herzberger
c2ef2b5924
feat: add QueryActiveTrustAnchorCount (#431)
* feat: add QueryActiveTrustAnchorCount
---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-07-24 09:44:07 +02:00
Lorenz Herzberger
4c8427c3b1
426 add registered machine counter to machine module (#430)
* feat: add counter for activated TAs
* feat: add QueryActivatedTrustAnchorCount
* feat: add migration for activated ta counter
---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-07-24 09:24:13 +02:00
Lorenz Herzberger
e06fc55630
427 add more details to machine not found error message (#429)
* fix: add more details to machine not found error
---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-07-19 11:03:56 +02:00
Lorenz Herzberger
605b6c73d6
415 add validator pop reward amount to chain params (#420)
* feat: add validator pop reward as chain param
* feat: add store for challenge initiator reward amount indexed by height
* feat: add validator PoP reward calculation between distributions
* fix: remove paralleltest lint rule due to data race
---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-07-18 10:34:50 +02:00
Lorenz Herzberger
7d87d662ea
feat: add shamir-coordinator-client for issuer wallet protection (#413)
* feat: add shamir-coordinator-client for issuer wallet protection
---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-06-26 14:02:28 +02:00
Lorenz Herzberger
468fbb5305
402 bug asset query does not repsect lookupperiodinmin value (#405)
* chore: remove unused asset.proto and asset.pb.go files
* feat: add AssetByAddress store functionality
* fix: asset query now returns numElements passed in req
* chore: add migration for new store mechanics
* chore: set upgradehandler for assetmodule migration
* chore: removed obsolete GetCIDsByAddress function
* chore: adjust cmd usage
---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-06-06 14:39:05 +02:00
Jürgen Eckel
dd2621afde
hot fix for the tasmota PoP issues (#403)
* hot fix for the RDDL-Tasmota PoP issues
* adjusted test case

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-05-28 14:54:31 +02:00
Jürgen Eckel
1f2b1702ea
Eckelj/mqtt monitoring fix (#398)
* set keepalive ping
* made mutex more granular
* avoid using app.Logger to have a consistent log from the beginning
* made lazyLoading local to the module
* fixed ticker bug so that the tasks are executed in an endless loop
* fixed timezone bug of Add Participant. only validator local time is used not the timestamp from the mqtt messages as these might come from a different time zone (resulted in delayed deletion from the activeActors DB)
* improved connection management for the monitor
* added a watchdog task to restart the monitor in case of connection loss (every 2 min)
* removed obsolete SetContext function/interface
* removed obsolete time conversion method

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-05-15 13:23:06 +02:00
Jürgen Eckel
ccf491d658
added uncompressed trust anchor pub key processing (#396)
* added uncompressed trust anchor pub key processing
* added a nother waiting block to pass CI test cases - these are a bit slower

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-05-14 10:32:52 +02:00
Jürgen Eckel
af1483a8ec
added secp256r1 machine ID Sig verification (#395)
* added secp256r1 machineIDSignature verification
* to go-utils v0.1.1
---------

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-05-10 10:57:55 +02:00
Lorenz Herzberger
b0f8516cd6
379 create redeem claim does not call service (#383)
* feat: add rddl-claim-service/client
---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
Co-authored-by: Julian Strobl <jmastr@mailbox.org>
2024-04-25 14:38:58 +02:00
Jürgen Eckel
43d152fcf6
Donate tokens to attested machines so that these are able to run after their attestation (#375)
* added donation of tokens/denom to the just attestet machine
* extended the machine module to have two additional parameters: amount of tokens to be distributed and their denominator

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-04-23 12:00:31 +02:00
Jürgen Eckel
779b1edd48
Eckelj/mqtt monitoring (#359)
* added a MqttMonitor module with levelDB and periodic cleanup
* initialized in the app
* passed to dao keeper
* added conversion methods (string2unixtime, byte ToJSON)
* removed obsolete keeper code
* maded  RDDLToken.Factor public
* added explicit mqtt client to the monitor module
* restart mqtt connection in mqttmonitor on connection loss
* adjusted mqttmock structure to be compatible
* added some linter exclusions to let the monitor tool pass
* created a MockMqttMonitor interface and mock object
* used this to pass tests
* made the MockMqttMonitor a global object so that it can be easily mocked
* removed MockMqttMonitor from the app/keeper initialization
* adjusted test cases to register "active machines" to the mqttmonitor
* added mutex in mocks to protect against data races
* defined mocks for the dao tests
* clear separation between interface and mqtt-Monitor

* added another waiting block to ensure the tx went through (multi-threading issue, race condition) during tests this failed sometimes
* added memstorage to test instead of a file based DB


Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-04-08 10:49:00 +02:00
Lorenz Herzberger
7d4ec9d56c
change: CreateRedeemClaim consumes entire claim for reduced complexity (#352)
* change: CreateRedeemClaim consumes entire claim for reduced complexity

---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-03-19 14:29:29 +01:00
Julian Strobl
26457a7a6f
refactor: goify function (#337)
* chore: log in case of error

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2024-03-06 14:51:27 +01:00
Jürgen Eckel
f13c54f582
fixed mqtt URI bug (#334)
* adjusted to refactored path

* removed go routine from attest machine msg server

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-03-05 15:29:24 +01:00
Lorenz Herzberger
caa795e5f7
relocate redeem claim and reissuance proposal ante decorator to respe… (#331)
* relocate redeem claim and reissuance proposal ante decorator to respective msg servers

---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-03-05 15:03:27 +01:00
Jürgen Eckel
4f5b1e5777
Multi validator setup in test cases (#333)
* Initializing rootDir of dao and machine keeper with the home path of the validator key material
* added Block height logging of context decorator
* removed SetRoot usage
* fixed data races of the attest machine go-routine
* reproduction of the issue
* fixed testing URL issue
* refactored the machine-nft functions/mock
* fixed keeper.param read-bug that increased the gas prices in an inconsistent way
* increased the validator number to 3 for all e2e tests
* added go routine to attest machine workflow

---------

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
Co-authored-by: Julian Strobl <jmastr@mailbox.org>
Co-authored-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-03-05 11:37:01 +01:00
Julian Strobl
838c887a91
Revert "Revert "Revert unnecessary config patch (#323)" (#324)" (#332)
This reverts commit b205c5ff29df25bad6b923bae327b88bdad89518.

This needs to be removed so that the parameters are read from chain.
2024-03-01 12:42:44 +01:00
Jürgen Eckel
55b7065744
Eckelj/remove the smell (#326)
* removed some more code smell/error message aggregation
* removed obsolete/duplicate tests/code
* excluded TODOs (simulation) from being processed by sonarqube
* removed TODO code

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>

---------

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-02-26 18:06:43 +01:00
Jürgen Eckel
75ed13b357
Eckelj/reducing code smell (#325)
* aggregating error messages
* removed duplicate err msgs
* removed obsolete test (two times equal behaviour )
* added global error msg module
* refactored test utils to have sample types and sample objects by keepers separated
* excluded auto-generated code from sonarcube analysis


Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-02-26 16:44:00 +01:00
Julian Strobl
b205c5ff29
Revert "Revert unnecessary config patch (#323)" (#324)
This reverts commit b1c4d11ccf3e98bd46a13d7fb54b6b5c0aefbf29.
2024-02-26 13:04:41 +01:00
Julian Strobl
b1c4d11ccf
Revert unnecessary config patch (#323)
* Revert "feat: bring back config parameters"

This reverts commit 4ab279033cae5e351cd13c348a21e4717705f341.

Unnecessary because cosmos sdk handles chain upgrades properly: it holds
the chain and waits for a new binary version.

* refactor: use testnet parameters as default in x/dao
---------

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2024-02-26 12:25:12 +01:00
Jürgen Eckel
ec697840de
Eckelj/machine update params (#322)
* added signing authority (dao) to the keeper to enable dao signing checks
* added UpdateParam message for the machine module

---------

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-02-26 12:00:37 +01:00
Julian Strobl
412e15449b feat: add migration to v0.8.0
Take x/dao and x/machine default parameters and store them into the
respective module state.

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2024-02-26 08:30:10 +01:00
Julian Strobl
4ab279033c feat: bring back config parameters
Needed for migration as interim solution.

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2024-02-26 08:30:10 +01:00
Jürgen Eckel
951d854891
311 review test case ssendpopresultoutbytes true todo bug (#313)
* added PoP report validation to the ReportPoPResult msg server
* removed two obsolete pop report deliveries
* added challenger is the PoPreport msg creator (new restriction)
* extended msg server test cases

---------

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-02-15 14:41:05 +01:00
Jürgen Eckel
04e45a7fb2
275 refactor feedenom on e2e test suite (#312)
* extended AttestMachine FundAccount to support a given fee denominator
* renamed testutil/network/network.go to testutil/network/loader.go
* renamed new to Load
* integrated cosmos/testutil/network to planetmint-go/testutil/network
* changed to plmnt token tests only!
* removed obsolete variables
* fixed newest linter issues

---------

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-02-14 12:15:40 +01:00
Jürgen Eckel
f6a7a56704
* added default params for x/machine/params (#310)
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-02-01 15:24:41 +01:00
Jürgen Eckel
373614e1b2
269 set a chain wide upper gas limit for transactions (#309)
* set global tx gas limit
* extend lib/tx to process multiple messages
* extend lib/tx to configure tx gas limit
* added global gas limit tests
* increased account funding to support needs of testcases

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2024-02-01 10:23:38 +01:00
Lorenz Herzberger
a38fe781ba
187 implement rddl claim (#298)
* ignite scaffold map redeem-claim amount issued:bool --module dao --index beneficiary,liquid-tx-hash

* revert: remove autogenerated delete redeem claim logic

* fix: replace deprecated autogenerated sdkerrors with errorsmod

* refactor: rename issued to confirmed on redeem claim

* feat: add claim address param

* test: add test for restricted msg UpdateRedeemClaim

* refactor: update redeem claim key creation and messages

* feat: add SendUpdateRedeemCLaim to util

* feat: add RedeemClaimDecorator for ante package

* ignite scaffold message confirm-redeem-claim id:uint beneficiary:string --module dao

* feat: add handleConfirmRedeemClaim to ante handler

* feat: add handleUpdateRedeemClaim to ante handler

* feat: implement ConfirmRedeemClaim msg handler

* test: add redeem claim test and adjust e2e test suite

* fix: make use of uint to rddl string util in CreateRedeemClaim

* fix: linter and staticcheck errors

* ignite scaffold query redeem-claim-by-liquid-tx-hash liquid-tx-hash --response redeem-claim:RedeemClaim --module dao

* feat: add RedeemClaimByLiquidTXHash store capabilities

* test: add QueryRedeemClaimByLiquidTxHash to e2e test suite

* feat: add RedeemClaimDecorator to ante handler chain

* fix: remove redundant planetmint-go from service path

* fix: linter and staticcheck errors

* fix: go vet errors

* fix: remove unused autogenerated simulation

* fix: broken simulation

* fix: openapi.yml

* revert: remove autogenerated redundant test file that causes data race on pipeline

* feat: burn claim on CreateRedeemClaim

* fix: linter error

* test: fix mock bankkeeper for msg server test

* fix: reissuance test if statement

* chore: removed TODO comment

* fix: typo in redeem claim error msg

* revert: remove autogenerated genesis state

* fix: dao module simulation

* revert: remove unused function

* fix: linter errors

* fix: linter error

---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2024-02-01 09:57:58 +01:00