79 Commits

Author SHA1 Message Date
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
Lorenz Herzberger
a8c4633e95
fix mock for extended keypair
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-12 16:19:09 +02:00
Jürgen Eckel
ff50043f63
first changes
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-09-12 15:45:40 +02:00
Jürgen Eckel
ea1e316852
adjusted signing to work with ext pub keys being commited within the cid notarization message
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-09-12 14:49:25 +02:00
Lorenz Herzberger
311a3596c2
replace byte cast with hex.DecodeString()
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-07 10:09:06 +02:00
Jürgen Eckel
120d3fdd9d
fixed signing (tests) and signing verification of the machine ID Signature
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-09-06 15:41:39 +02:00
Lorenz Herzberger
e33452476f
adjust test suite for ta validation
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-06 15:13:06 +02:00
Lorenz Herzberger
b1f572ddee
update machine message
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-06 11:41:54 +02:00
Lorenz Herzberger
6d7158d124
add trust anchor check to attest machine and fix test cases
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-06 11:26:26 +02:00
Lorenz Herzberger
8b072d3186
Merge pull request #71 from planetmint/70-add-ta-registry
70 add ta registry
2023-09-06 11:02:46 +02:00
Lorenz Herzberger
d5a75f128e
Merge pull request #69 from planetmint/3-gas-meter-definition-fee-handling
3 gas meter definition fee handling
2023-09-06 10:18:19 +02:00
Lorenz Herzberger
a7e627ff49
reduce complexity on fee distribution
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-06 09:25:58 +02:00
Lorenz Herzberger
307dfd1e12
fix staticcheck error
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-05 21:43:22 +02:00
Lorenz Herzberger
4bb3e694a5
add secp256k1 public key validation
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-05 21:41:18 +02:00
Lorenz Herzberger
b0d4ffad7a
add unit test for msg_server_register_trust_anchor
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-05 19:51:06 +02:00
Lorenz Herzberger
688f13e171
add update trust anchor test case
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-05 17:36:30 +02:00
Lorenz Herzberger
7d78e0f9b8
add test for trust anchor store
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-05 17:28:39 +02:00
Lorenz Herzberger
7ada150ae0
remove circular dependency
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-05 16:03:46 +02:00
Lorenz Herzberger
9f1ef39fec
ignite scaffold message register-trust-anchor trust-anchor:TrustAnchor --module machine
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-05 15:36:26 +02:00
Lorenz Herzberger
51dfde22e1
add trust anchor type to machine module
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-05 14:19:59 +02:00
Lorenz Herzberger
364b910683
add nolint to generated dao module code
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-05 12:47:16 +02:00
Lorenz Herzberger
f8d3bec516
fix staticcheck errors
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-05 12:27:41 +02:00
Lorenz Herzberger
c58dda2034
add denoms to config
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-09-05 11:03:42 +02:00
Lorenz Herzberger
05a484c8b9
implement e2e test scenario for fee distribution
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-08-31 16:33:22 +02:00
Jürgen Eckel
5763bd6a7c
Eckelj/adding machine types (#67)
* added machine-type definition and checks
* fixed staticcheck issues

---------
Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
2023-08-31 10:04:07 +02:00
Lorenz Herzberger
f9de021deb
added EndBlocker and started implementing e2e test suite
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-08-28 17:24:00 +02:00
Lorenz Herzberger
e612ae78f4
ignite scaffold module dao --dep bank,account
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-08-28 12:54:55 +02:00
Julian Strobl
3fe9c018cd
Introduce Liquid network parameters (#64)
Up to know we just use the Bitcoin mainnet parameters
`chaincfg.MainNetParams` for Liquid. That's okay, because we use them
for creating and verifying extended private and public keys. Those only
depend on `HDPrivateKeyID` and `HDPublicKeyID`, which are the same for
Bitcoin and Liquid networks.

The only real difference is the `HDCoinType` used for key derivation,
which we want to use in the future. So it is a good idea to introduce
this value now.

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-08-11 12:05:58 +02:00
Julian Strobl
1383d0aaa6
Add extended public key as IssuerPlanetmint (#62)
* Fix package and domain name

Signed-off-by: Julian Strobl <jmastr@mailbox.org>

* Add extended public key as `IssuerPlanetmint`

This patch introduces parts of the `chaincfg` for Planetmint and
especially the magic bytes that produces extended keys with the prefix
`pmpr` for a Planetmint extended private key and `pmpb` for a Planetmint
extended public key.

// Closes https://github.com/rddl-network/issues/issues/30

Signed-off-by: Julian Strobl <jmastr@mailbox.org>

* Validate Planetmint extended public key during machine attestation

Signed-off-by: Julian Strobl <jmastr@mailbox.org>

* [lint] Fix error return value is not checked

Signed-off-by: Julian Strobl <jmastr@mailbox.org>

---------

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-08-11 09:14:52 +02:00
Jürgen Eckel
01ef2dbfd0
Improve communication to liquid issuance service (#58)
* added OSC response listener with logging

added Machine NFT issuance for each machine attestation process
added CID and Planetmint Issuer extPublicKey to the issuance process
removed type inconsistency

* added machine NFT creation criteria

* [toml] Parsing does not allow sub-structs

* made OSC listener port configurable

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>
2023-08-04 16:38:18 +02:00
Julian Strobl
4ba12f7b03
[config] Add planetmint section to app.toml
This patch extends `app.toml` and adds the following section with these
default values:

```
[planetmint]
watchmen-endpoint = "localhost"
watchmen-port = 7401
```

A global singleton `plmntConfig` is introduced to save and access the
values similar to how cosmos does it (see
vendor/github.com/cosmos/cosmos-sdk/types/config.go).

Different environments can be managed by changing the values in
`app.toml` and restarting the daemon.

// Closes #53

Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-08-04 10:53:38 +02:00
Lorenz Herzberger
b92758268d
rename config and adjust osc call
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
Signed-off-by: Julian Strobl <jmastr@mailbox.org>
2023-07-31 08:21:28 +02:00
Lorenz Herzberger
238e68808b
add config for watchmen
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-07-31 08:21:28 +02:00
Lorenz Herzberger
a63f390490
add error handling to reissueMachineNFT
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-07-31 08:21:28 +02:00
Lorenz Herzberger
722eb60bcf
add domain to machine proto
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-07-31 08:21:28 +02:00
Lorenz Herzberger
f6c96094c6
implement osc client mock on msg_attest_machine
Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
2023-07-31 08:14:56 +02:00