114 Commits

Author SHA1 Message Date
Julian Strobl
5b25d4cefc
Improve linter setup (#186)
* [linter] Add `musttag`

Enforce field tags in (un)marshaled structs.

* [linter] Add `nestif`

Reports deeply nested if statements.

* [linter] Add `noctx`

Finds sending http request without context.Context.

* [linter] Add `paralleltest`

Paralleltest detects missing usage of t.Parallel() method in your Go
test.

* [linter] Add `tagalign`

Check that struct tags are well aligned.

* [linter] Add `tagliatelle`

Checks the struct tags.

* [linter] Add `whitespace`

Tool for detection of leading and trailing whitespace.

* [paralleltest] Exclude files bc of data race in tests

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-11-17 10:56:25 +01:00
Julian Strobl
5470fc668b
Improve linter setup (#185)
* [linter] Remove unused exclusions

Linter `nosnakecase` was removed in 1e1138d0268a9896a1bd058e9b65b808eb20666e.

* [linter] Add tool for code clone detection

* [linter] Add `errorlint`

Find code that will cause problems with the error wrapping scheme
introduced in Go 1.13.

* [linter] Add `exhaustive`

Check exhaustiveness of enum switch statements.

* [linter] Add `forcetypeassert`

Finds type assertions which did forcely such as below:
```
func f() {
	var a interface{}
	_ = a.(int) // type assertion must be checked
}
```

* [linter] Add `gocritic`

Provides diagnostics that check for bugs, performance and style issues.

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-11-16 17:44:38 +01:00
Julian Strobl
db5f4fb3fe
[lib] Switch from RPC (REST) to gRPC (#183)
* [lib] Add `SimulateTx()`

* [lib] Set `plmnt` as default bech32 account prefix

* [linter] Function should pass the context parameter (contextcheck)

// Closes #175

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-11-16 14:47:16 +01:00
Lorenz Herzberger
a5cea30e26
92 implement pop result handler (#101)
* ignite scaffold message report-pop-result challenge:Challenge --module dao

* add issuePoPRewards and fix typo

* add util validate struct and report pop test cases

* add TODOs

* replace depricated error

* fix broken import

* add error handler for failed pop issuance

* add placeholder for validator is issuer check

* added changed go.mod and go.sum

* generate docs

* reduce cognitive complexity

---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
Co-authored-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-11-16 12:44:56 +01:00
Julian Strobl
682796b3c8
Fix linter findings (#178)
* [linter] Fix unnecessary conversion (unconvert)

* [linter] Fix fmt.Sprintf can be replaced with faster strconv.FormatInt (perfsprint)

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-11-15 14:06:29 +01:00
Jürgen Eckel
a982abecf5
Distribute assets (#162)
* distributed & result msgs
* added DistributionResult
* added RDDL token conversion methods
* set proper validatoraddress within the testcases for e2e/dao
* set proper root dir for test cases
* fixed some wordings
---------

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-11-15 13:31:20 +01:00
Lorenz Herzberger
83d493dd94
139 implement mint address param (#174)
* add MintAddress to params.proto

* ignite scaffold message update-params params:Params --module dao

* add dao get and set params

* make dao.MsgUpdateParams.Params non-nullable

* use GetMintAddress in ante handler

* adjust dao e2e test suit for mint address param

* change msg creator to authority and set gov module as default in gov proposal

* fix staticcheck error

* remove depricated config param

* fix linter errors

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-11-15 10:46:01 +01:00
Julian Strobl
1e1138d026
Switch to revive and fix findings (#171)
* [ci] Switch from `nosnakecase` to `revive`

* [revive] Fix findings

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-11-13 12:42:52 +01:00
Julian Strobl
6472d7693f
[ci] Add nosnakecase to golangci-lint (#161)
Golang uses:

- Camel Case for variable names, e.g. `firstName`
- Camel Case for private function names, e.g. `getFirstName`
- Pascal Case for public function names, e.g. `GetFirstName`

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-10-20 14:09:07 +02:00
Julian Strobl
7d65bff35f
Switch BlockHeight to int64 (#158)
To align with cosmos-sdk and make interoperability easier.

* Fix typo: blockheight -> blockHeight

* Generate protobuf and openapi

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-10-20 13:43:44 +02:00
Julian Strobl
45504f4670
Replace fmt.PrintX calls by proper logging (#159)
// Closes #137

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-10-20 12:57:42 +02:00
Julian Strobl
6aaa5399ef
Remove /planetmint-go from API paths (#157)
* Remove `/planetmint-go` from API paths

* Generate protobuf and openapi

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-10-19 10:39:23 +02:00
Julian Strobl
283eeb7c9a
Fix broken API paths (#154)
* Fix broken API paths

Partially revert d4eed021c8b16210e82dbaa7687fc671b6ea5a90

* Generate protobuf and openapi

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-10-18 08:48:33 +02:00
Jürgen Eckel
c6909a3e4a
hotfix: inconsistent logging of block-proposer results on the chain. … (#153)
* hotfix: inconsistent logging of block-proposer results on the chain. These results need to be consensed via an explicit message instead of an error output.

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-17 11:49:54 +02:00
Jürgen Eckel
1927c4d472
Eckelj/support keyring (#136)
* added keyring option
* added Reissuance workflow logging

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-11 16:02:37 +02:00
Jürgen Eckel
5f834726b8
from float to satoshi (#134)
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-10 15:15:10 +02:00
Lorenz Herzberger
267f4beb37
remove unused code
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-10-10 09:10:50 +02:00
Jürgen Eckel
6e3d5ec394
improved error handling
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-10 02:14:05 +02:00
Jürgen Eckel
5adaab3b14
fixed linter issues
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-10 01:54:09 +02:00
Jürgen Eckel
0835ab4b46
removed circular dependency
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-10 01:48:15 +02:00
Jürgen Eckel
b4ddc44044
* integrated ante-handler
* added two new config variables: reissuance-asset and validator-address

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-10 01:24:28 +02:00
Jürgen Eckel
dac2d96194
added get_reissuances call body
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-06 13:08:23 +02:00
Jürgen Eckel
44a851f5ef
ignite scaffold query get_reissuances --paginated -r reissuance:Reissuance --module dao
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-06 11:50:31 +02:00
Jürgen Eckel
4dc1485cd7
added get_reissuance query
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-06 11:49:51 +02:00
Jürgen Eckel
a441ff87dd
added reissuance tests and fixed conversion
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-06 10:12:23 +02:00
Jürgen Eckel
f69c978911
added SendRDDLReissuanceResult sending by the proposer after the consensus over the ReissuanceProposal
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-05 17:49:59 +02:00
Jürgen Eckel
8f76199214
added MsgReissueRDDLResult handling
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-05 17:31:41 +02:00
Jürgen Eckel
87641aefe8
fix casting/marshalling bug
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-05 17:16:20 +02:00
Jürgen Eckel
128a406158
ignite scaffold message --module dao reissueRDDLResult proposer:string tx-id:string block-height:uint
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-05 17:13:45 +02:00
Jürgen Eckel
c02e00616f
ignite scaffold type reissuance proposer rawtx tx-id block-height:uint --module dao
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-05 17:08:22 +02:00
Jürgen Eckel
b81cdb6dc9
Merge branch 'main' into 124-propose-a-liquid-issuance-to-the-network-unsigned-transaction
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-05 16:09:10 +02:00
Lorenz Herzberger
7a3ccccc7a
119 create dao msg to mint plmnt on demand (#122)
* add mint address to config file
* ignite scaffold type mint-request beneficiary amount liquid-tx-hash --module dao
* add mintrequest stores
* rename mint_request.go
* add unit tests for mint request store
* ignite scaffold message mint-token mint-request:MintRequest --module dao
* add ante handler for mint address
* add msg validation for mint request
* fix staticcheck error
* ignite scaffold query get-mint-requests-by-hash hash --response mint-request:MintRequest --module dao
* add a query for mint request and additional validation for msg server
* add mock for mint unit testing
* add unit test for mint token msg server
* add unit tests for query mint requests by hash
* ignite scaffold query mint-requests-by-address address --response mint-requests:MintRequests --module dao
* implement query mint requests by address and unit tests
* add e2e test for token mint

---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-10-05 15:38:53 +02:00
Jürgen Eckel
c5280e8289
fixe conversion issue, added go.mod/sum
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-05 15:09:51 +02:00
Jürgen Eckel
4ad86048a5
initial reissue rddl proposal message
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-05 15:02:36 +02:00
Jürgen Eckel
f11f66e14f
112 direct call to issue2liquid (#121)
* removed IssueResponseHandler
* added asset-registration endpoint config
* added methods to locally issue the asset and register it
* added issue_service directory configuration
* removed obsolete configuration options
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>

---------

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-10-05 12:38:35 +02:00
Lorenz Herzberger
20af6d2c46
move IsValidatorBlockProposer to util and add to issueMachineNFT (#118)
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-10-03 17:33:16 +02:00
Lorenz Herzberger
4db2fbc43f
add sentinel errors for machine module (#116)
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-10-03 13:23:56 +02:00
Lorenz Herzberger
e80ce7e894
remove duplicate validation (#102)
* remove duplicate validation
* add e2e test for antehandler checks on invalid machine attestation requests
* added comment
* adjusted openapi docs

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
Co-authored-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-09-29 09:09:27 +02:00
Lorenz Herzberger
c12a30c71a
2 trigger token reissuance on liquid including the distribution (#96)
* add pop epochs to config

* add config for triggering RDDL issuance

---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-28 16:07:02 +02:00
Jürgen Eckel
8fd9f213f3
77 rename asset hash to asset cid (#97)
* initial asset notarization restructuring
* adjusted test cases, two are still failing
* removed obsolete data structures

---------

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-09-27 16:35:31 +02:00
Lorenz Herzberger
d978e9da56
91 implement challenge store (#95)
* ignite scaffold type challenge initiator challenger challangee result description --module dao
* add height to challenge
* implement challenge store
* rename challenge result to success

---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-27 14:00:51 +02:00
Jürgen Eckel
6718f289a9
Eckelj/cid queries (#90)
* get_assets_by_pubkey
* having the APIs up and running and with tests
* renamed Transactions object to CIDs
* renamed files
* fixed formatting issue
---------

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-09-26 22:55:24 +02:00
Lorenz Herzberger
e3708573dd
add error check to json unmarshall
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-25 16:50:42 +02:00
Lorenz Herzberger
e22d590bf8
removed println
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-25 16:44:13 +02:00
Lorenz Herzberger
86a85913cf
add GetMachineByAddress capabilities
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-25 16:42:26 +02:00
Julian Strobl
d4eed021c8
[go.mod] Switch module to github.com (#86)
This is the quasi-standard and fixes the error below:

```
$ go get -u github.com/planetmint/planetmint-go@v0.1.0
go: github.com/planetmint/planetmint-go@v0.1.0: parsing go.mod:
        module declares its path as: planetmint-go
                but was required as: github.com/planetmint/planetmint-go
```

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-09-21 17:37:57 +02:00
Jürgen Eckel
b215f7a5db
Trust Anchor state query (#85)
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-09-21 14:02:32 +02:00
Lorenz Herzberger
56ad4822d8
Add custom ante handler (#76)
* add initial custom ante handler
* implement CheckMachineDecorator.AnteHandle
* add machine error code
* add TA check to antehandler
* change machine error codes

---------

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-20 16:27:16 +02:00
Jürgen Eckel
2a09f9d90d
fixed missing return value check
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-09-20 16:03:57 +02:00
Jürgen Eckel
cb9f762675
Eckelj/fix store resolve issues (#79)
* added upper and lower case TA resolution testing

* added more detailed error reporting to the ValidateSignature method.
* extended test cases to test and verify these errs and their differences

* fixed CID attestation issue. CIDs are send in web compatible encoding that is not hex encoded and can be utilized without any further decoding on the server side.

* added checks and error handling for the Ta store object storage/loading

Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-09-15 10:10:04 +02:00