diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 83c31b35..d38e73e8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -132,22 +132,22 @@ jobs: # path: debug_files.tar.gz # if-no-files-found: ignore - upload-cache: - if: github.event_name == 'push' - needs: ["integration_tests"] - strategy: - matrix: - os: [macos-latest] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v2 - - uses: cachix/install-nix-action@v18 - - uses: cachix/cachix-action@v11 - with: - name: ethermint - signingKey: "${{ secrets.CACHIX_SIGNING_KEY }}" - - name: 'instantiate integration test env' - run: nix-store -r $(nix-instantiate tests/integration_tests/shell.nix) + # upload-cache: + # if: github.event_name == 'push' + # needs: ["integration_tests"] + # strategy: + # matrix: + # os: [macos-latest] + # runs-on: ${{ matrix.os }} + # steps: + # - uses: actions/checkout@v2 + # - uses: cachix/install-nix-action@v18 + # - uses: cachix/cachix-action@v11 + # with: + # name: ethermint + # signingKey: "${{ secrets.CACHIX_SIGNING_KEY }}" + # - name: 'instantiate integration test env' + # run: nix-store -r $(nix-instantiate tests/integration_tests/shell.nix) test-sim-nondeterminism: runs-on: ubuntu-latest diff --git a/app/simulation_test.go b/app/simulation_test.go index 0d1e9abe..c0b565e7 100644 --- a/app/simulation_test.go +++ b/app/simulation_test.go @@ -301,6 +301,17 @@ func TestAppSimulationAfterImport(t *testing.T) { exported, err := app.ExportAppStateAndValidators(true, []string{}) require.NoError(t, err) + defer func() { + if r := recover(); r != nil { + err := fmt.Sprintf("%v", r) + if !strings.Contains(err, "validator set is empty after InitGenesis") { + panic(r) + } + logger.Info("Skipping simulation as all validators have been unbonded") + logger.Info("err", err, "stacktrace", string(debug.Stack())) + } + }() + fmt.Printf("importing genesis...\n") _, newDB, newDir, _, _, err := simapp.SetupSimulation("leveldb-app-sim-2", "Simulation-2") diff --git a/docs/api/proto-docs.md b/docs/api/proto-docs.md index 85edef18..87a8c973 100644 --- a/docs/api/proto-docs.md +++ b/docs/api/proto-docs.md @@ -160,6 +160,11 @@ - [Msg](#vulcanize.bond.v1beta1.Msg) +- [vulcanize/nameservice/v1beta1/attributes.proto](#vulcanize/nameservice/v1beta1/attributes.proto) + - [ServiceProviderRegistration](#vulcanize.nameservice.v1beta1.ServiceProviderRegistration) + - [WebsiteRegistrationRecord](#vulcanize.nameservice.v1beta1.WebsiteRegistrationRecord) + - [X500](#vulcanize.nameservice.v1beta1.X500) + - [vulcanize/nameservice/v1beta1/nameservice.proto](#vulcanize/nameservice/v1beta1/nameservice.proto) - [AuctionBidInfo](#vulcanize.nameservice.v1beta1.AuctionBidInfo) - [AuthorityEntry](#vulcanize.nameservice.v1beta1.AuthorityEntry) @@ -2310,6 +2315,79 @@ Msg defines the bond Msg service. + +

Top

+ +## vulcanize/nameservice/v1beta1/attributes.proto + + + + + +### ServiceProviderRegistration + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `bond_id` | [string](#string) | | | +| `laconic_id` | [string](#string) | | | +| `x500` | [X500](#vulcanize.nameservice.v1beta1.X500) | | | +| `type` | [string](#string) | | | + + + + + + + + +### WebsiteRegistrationRecord + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `url` | [string](#string) | | | +| `repo_registration_record_cid` | [string](#string) | | | +| `build_artifact_cid` | [string](#string) | | | +| `tls_cert_cid` | [string](#string) | | | +| `type` | [string](#string) | | | + + + + + + + + +### X500 + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `common_name` | [string](#string) | | | +| `organization_unit` | [string](#string) | | | +| `organization_name` | [string](#string) | | | +| `locality_name` | [string](#string) | | | +| `state_name` | [string](#string) | | | +| `country` | [string](#string) | | | + + + + + + + + + + + + + + +

Top

@@ -2477,8 +2555,9 @@ Params defines the nameservice module records | `expiry_time` | [string](#string) | | | | `deleted` | [bool](#bool) | | | | `owners` | [string](#string) | repeated | | -| `attributes` | [string](#string) | | | +| `attributes` | [google.protobuf.Any](#google.protobuf.Any) | | | | `names` | [string](#string) | repeated | | +| `type` | [string](#string) | | | diff --git a/go.mod b/go.mod index 7d6be002..82164fe8 100644 --- a/go.mod +++ b/go.mod @@ -8,9 +8,9 @@ require ( github.com/armon/go-metrics v0.4.1 github.com/btcsuite/btcd v0.22.1 github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce - github.com/cosmos/cosmos-sdk v0.46.2-0.20220920160224-9454b97ccb77 + github.com/cosmos/cosmos-sdk v0.46.3 github.com/cosmos/go-bip39 v1.0.0 - github.com/cosmos/ibc-go/v5 v5.0.0 + github.com/cosmos/ibc-go/v5 v5.0.1 github.com/davecgh/go-spew v1.1.1 github.com/deckarep/golang-set v1.8.0 github.com/ethereum/go-ethereum v1.10.19 @@ -38,24 +38,25 @@ require ( github.com/spf13/viper v1.13.0 github.com/status-im/keycard-go v0.0.0-20200402102358-957c09536969 github.com/stretchr/testify v1.8.0 - github.com/tendermint/tendermint v0.34.21 + github.com/tendermint/tendermint v0.34.22 github.com/tendermint/tm-db v0.6.7 github.com/tyler-smith/go-bip39 v1.1.0 github.com/vektah/gqlparser/v2 v2.5.1 - golang.org/x/net v0.0.0-20220909164309-bea034e7d591 - golang.org/x/text v0.3.7 - google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a - google.golang.org/grpc v1.50.0 + golang.org/x/net v0.2.0 + golang.org/x/text v0.4.0 + google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66 + google.golang.org/grpc v1.50.1 google.golang.org/protobuf v1.28.1 gopkg.in/yaml.v3 v3.0.1 sigs.k8s.io/yaml v1.3.0 ) require ( - cloud.google.com/go v0.102.1 // indirect - cloud.google.com/go/compute v1.7.0 // indirect - cloud.google.com/go/iam v0.4.0 // indirect - cloud.google.com/go/storage v1.22.1 // indirect + cloud.google.com/go v0.105.0 // indirect + cloud.google.com/go/compute v1.12.1 // indirect + cloud.google.com/go/compute/metadata v0.2.1 // indirect + cloud.google.com/go/iam v0.7.0 // indirect + cloud.google.com/go/storage v1.27.0 // indirect cosmossdk.io/errors v1.0.0-beta.7 // indirect filippo.io/edwards25519 v1.0.0-rc.1 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -80,7 +81,7 @@ require ( github.com/cosmos/btcutil v1.0.4 // indirect github.com/cosmos/cosmos-proto v1.0.0-alpha7 // indirect github.com/cosmos/gorocksdb v1.2.0 // indirect - github.com/cosmos/iavl v0.19.2-0.20220916140702-9b6be3095313 // indirect + github.com/cosmos/iavl v0.19.3 // indirect github.com/cosmos/ledger-cosmos-go v0.11.1 // indirect github.com/cosmos/ledger-go v0.9.2 // indirect github.com/creachadair/taskgroup v0.3.2 // indirect @@ -110,12 +111,11 @@ require ( github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.0.1 // indirect - github.com/google/go-cmp v0.5.8 // indirect + github.com/google/go-cmp v0.5.9 // indirect github.com/google/orderedcode v0.0.1 // indirect github.com/google/uuid v1.3.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.1.0 // indirect - github.com/googleapis/gax-go/v2 v2.4.0 // indirect - github.com/googleapis/go-type-adapters v1.0.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.2.0 // indirect + github.com/googleapis/gax-go/v2 v2.6.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect @@ -131,7 +131,7 @@ require ( github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 // indirect github.com/holiman/bloomfilter/v2 v2.0.3 // indirect github.com/huin/goupnp v1.0.3 // indirect - github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/ipfs/go-block-format v0.0.2 // indirect github.com/ipfs/go-ipfs-util v0.0.1 // indirect github.com/ipfs/go-ipld-format v0.0.1 // indirect @@ -149,7 +149,7 @@ require ( github.com/mattn/go-isatty v0.0.16 // indirect github.com/mattn/go-runewidth v0.0.9 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect - github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643 // indirect + github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/minio/sha256-simd v1.0.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -172,10 +172,10 @@ require ( github.com/prometheus/common v0.34.0 // indirect github.com/prometheus/procfs v0.7.3 // indirect github.com/prometheus/tsdb v0.7.1 // indirect - github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect + github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rjeczalik/notify v0.9.1 // indirect github.com/rs/zerolog v1.27.0 // indirect - github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa // indirect + github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/spf13/afero v1.9.2 // indirect @@ -194,14 +194,14 @@ require ( github.com/zondax/hid v0.9.1-0.20220302062450-5552068d2266 // indirect go.etcd.io/bbolt v1.3.6 // indirect go.opencensus.io v0.23.0 // indirect - golang.org/x/crypto v0.0.0-20221012134737-56aed061732a // indirect + golang.org/x/crypto v0.2.0 // indirect golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect - golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2 // indirect - golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect - golang.org/x/sys v0.0.0-20220913175220-63ea55921009 // indirect - golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 // indirect + golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 // indirect + golang.org/x/sync v0.1.0 // indirect + golang.org/x/sys v0.2.0 // indirect + golang.org/x/term v0.2.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.93.0 // indirect + google.golang.org/api v0.102.0 // indirect google.golang.org/appengine v1.6.7 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect diff --git a/go.sum b/go.sum index 6b4c5a8e..4fc82b64 100644 --- a/go.sum +++ b/go.sum @@ -19,21 +19,8 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= -cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= -cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= -cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= -cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= -cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= -cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= -cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= -cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= -cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= -cloud.google.com/go v0.102.1 h1:vpK6iQWv/2uUeFJth4/cBHsQAGjn1iIE6AAlxipRaA0= -cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= +cloud.google.com/go v0.105.0 h1:DNtEKRBAAzeS4KyIory52wWHuClNaXJ5x1F7xa4q+5Y= +cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -41,18 +28,15 @@ cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUM cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o= -cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= -cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= -cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= -cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= -cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= -cloud.google.com/go/compute v1.7.0 h1:v/k9Eueb8aAJ0vZuxKMrgm6kPhCLZU9HxFU+AFDs9Uk= -cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= +cloud.google.com/go/compute v1.12.1 h1:gKVJMEyqV5c/UnpzjjQbo3Rjvvqpr9B1DFSbJC4OXr0= +cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute/metadata v0.2.1 h1:efOwf5ymceDhK6PKMnnrTHP4pppY5L22mle96M1yP48= +cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= -cloud.google.com/go/iam v0.4.0 h1:YBYU00SCDzZJdHqVc4I5d6lsklcYIjQZa1YmEz4jlSE= -cloud.google.com/go/iam v0.4.0/go.mod h1:cbaZxyScUhxl7ZAkNWiALgihfP75wS/fUsVNaa1r3vA= +cloud.google.com/go/iam v0.7.0 h1:k4MuwOsS7zGJJ+QfZ5vBK8SgHBAvYN/23BWsiihJ1vs= +cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= +cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -63,8 +47,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cloud.google.com/go/storage v1.22.1 h1:F6IlQJZrZM++apn9V5/VfS3gbTUYg98PS3EMQAzqtfg= -cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= +cloud.google.com/go/storage v1.27.0 h1:YOO045NZI9RKfCj1c5A/ZtuuENUc8OAW+gHdGnDgyMQ= +cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w= cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= @@ -231,12 +215,6 @@ github.com/cloudflare/cloudflare-go v0.14.0/go.mod h1:EnwdgGMaFOruiPZRFSgn+TsQ3h github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= @@ -261,17 +239,17 @@ github.com/cosmos/btcutil v1.0.4 h1:n7C2ngKXo7UC9gNyMNLbzqz7Asuf+7Qv4gnX/rOdQ44= github.com/cosmos/btcutil v1.0.4/go.mod h1:Ffqc8Hn6TJUdDgHBwIZLtrLQC1KdJ9jGJl/TvgUaxbU= github.com/cosmos/cosmos-proto v1.0.0-alpha7 h1:yqYUOHF2jopwZh4dVQp3xgqwftE5/2hkrwIV6vkUbO0= github.com/cosmos/cosmos-proto v1.0.0-alpha7/go.mod h1:dosO4pSAbJF8zWCzCoTWP7nNsjcvSUBQmniFxDg5daw= -github.com/cosmos/cosmos-sdk v0.46.2-0.20220920160224-9454b97ccb77 h1:uYNxojyADGcjw5zg7PFyUJ8wxT9rWB4e30CDDy0yicE= -github.com/cosmos/cosmos-sdk v0.46.2-0.20220920160224-9454b97ccb77/go.mod h1:0aUPGPU6PWaDEaHNjtgrpNhgxo9bAUrQ7BO7XCvFOfs= +github.com/cosmos/cosmos-sdk v0.46.3 h1:2jdJYcSwh4AtFJKGoNGvmEy2mKDWtGaVZphGpvedljQ= +github.com/cosmos/cosmos-sdk v0.46.3/go.mod h1:AynIAjXwtS3T/ApdhNCz/7/KGMbZSUBbKRTcbukb2ic= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gorocksdb v1.2.0 h1:d0l3jJG8M4hBouIZq0mDUHZ+zjOx044J3nGRskwTb4Y= github.com/cosmos/gorocksdb v1.2.0/go.mod h1:aaKvKItm514hKfNJpUJXnnOWeBnk2GL4+Qw9NHizILw= -github.com/cosmos/iavl v0.19.2-0.20220916140702-9b6be3095313 h1:R7CnaI/0OLwOusy7n9750n8fqQ3yCQ8OJQI2L3ws9RA= -github.com/cosmos/iavl v0.19.2-0.20220916140702-9b6be3095313/go.mod h1:X9PKD3J0iFxdmgNLa7b2LYWdsGd90ToV5cAONApkEPw= -github.com/cosmos/ibc-go/v5 v5.0.0 h1:MkObdarpoICPHXoRg/Ne9NRix4j7eQlJZq74/uzH3Zc= -github.com/cosmos/ibc-go/v5 v5.0.0/go.mod h1:Wqsguq98Iuns8tgTv8+xaGYbC+Q8zJfbpjzT6IgMJbs= +github.com/cosmos/iavl v0.19.3 h1:cESO0OwTTxQm5rmyESKW+zESheDUYI7CcZDWWDwnuxg= +github.com/cosmos/iavl v0.19.3/go.mod h1:X9PKD3J0iFxdmgNLa7b2LYWdsGd90ToV5cAONApkEPw= +github.com/cosmos/ibc-go/v5 v5.0.1 h1:ZI5xCi6RDOL+hyu6Wx/w6JoAYFlOoK5hijsRTVWo+RA= +github.com/cosmos/ibc-go/v5 v5.0.1/go.mod h1:LX0DHLW3dfi/1e4BJzi8MGLWmQ4DSraPEgVjyo3VzAo= github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76 h1:DdzS1m6o/pCqeZ8VOAit/gyATedRgjvkVI+UCrLpyuU= github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76/go.mod h1:0mkLWIoZuQ7uBoospo5Q9zIpqq6rYCPJDSUdeCJvPM8= github.com/cosmos/ledger-cosmos-go v0.11.1 h1:9JIYsGnXP613pb2vPjFeMMjBI5lEDsEaF6oYorTy6J4= @@ -352,10 +330,6 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= -github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/ethereum/go-ethereum v1.10.4/go.mod h1:nEE0TP5MtxGzOMd7egIrbPJMQBnhVU3ELNxhBglIzhg= github.com/ethereum/go-ethereum v1.10.17/go.mod h1:Lt5WzjM07XlXc95YzrhosmR4J9Ahd6X2wyEV2SvGhk0= @@ -462,9 +436,7 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -481,7 +453,6 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -507,9 +478,8 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa h1:Q75Upo5UN4JbPFURXZ8nLKYUvF85dyFRop/vQ0Rv+64= @@ -519,7 +489,6 @@ github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXi github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.2.1 h1:d8MncMlErDFTwQGBK1xhv026j9kqhvw1Qv9IbWT1VLQ= -github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= github.com/google/orderedcode v0.0.1/go.mod h1:iVyU4/qPKHY5h/wSd6rZZCDcLJNxiWO6dvsYES2Sb20= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -532,11 +501,6 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -545,19 +509,12 @@ github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= -github.com/googleapis/enterprise-certificate-proxy v0.1.0 h1:zO8WHNx/MYiAKJ3d5spxZXZE6KHmIQGQcAzwUzV7qQw= -github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.2.0 h1:y8Yozv7SZtlU//QXbezB6QkpuE6jMD2/gfzk4AftXjs= +github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= -github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= -github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= -github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= -github.com/googleapis/gax-go/v2 v2.4.0 h1:dS9eYAjhrE2RjmzYw2XAPvcXfmcQLtFEQWn0CR82awk= -github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= -github.com/googleapis/go-type-adapters v1.0.0 h1:9XdMn+d/G57qq1s8dNc5IesGCXHf6V2HZ2JwRxfA2tA= -github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= +github.com/googleapis/gax-go/v2 v2.6.0 h1:SXk3ABtQYDT/OH8jAyvEOQ58mgawq5C4o/4/89qN2ZU= +github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= @@ -652,8 +609,9 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ= github.com/improbable-eng/grpc-web v0.15.0/go.mod h1:1sy9HKV4Jt9aEs9JSnkWlRJPuPtwNr0l57L4f878wP8= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= +github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= github.com/influxdata/influxdb-client-go/v2 v2.4.0/go.mod h1:vLNHdxTJkIf2mSLvGrpj8TCcISApPoXkaxP8g9uRlW8= @@ -806,8 +764,9 @@ github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182aff github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miguelmota/go-ethereum-hdwallet v0.1.1 h1:zdXGlHao7idpCBjEGTXThVAtMKs+IxAgivZ75xqkWK0= github.com/miguelmota/go-ethereum-hdwallet v0.1.1/go.mod h1:f9m9uXokAHA6WNoYOPjj4AqjJS5pquQRiYYj/XSyPYc= -github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643 h1:hLDRPB66XQT/8+wG9WsDpiCvZf1yKO7sz7scAjSlBa0= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= +github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94= +github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= @@ -987,8 +946,8 @@ github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40T github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 h1:MkV+77GLUNo5oJ0jf870itWm3D0Sjh7+Za9gazKc5LQ= -github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/regen-network/cosmos-proto v0.3.1 h1:rV7iM4SSFAagvy8RiyhiACbWEGotmqzywPxOvwMdxcg= github.com/regen-network/cosmos-proto v0.3.1/go.mod h1:jO0sVX6a1B36nmE8C9xBFXpNwWejXC7QqCOnH3O0+YM= github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= @@ -1011,8 +970,8 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa h1:0U2s5loxrTy6/VgfVoLuVLFJcURKLH49ie0zSch7gh4= -github.com/sasha-s/go-deadlock v0.2.1-0.20190427202633-1595213edefa/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= +github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= +github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= @@ -1090,8 +1049,8 @@ github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 h1:hqAk8riJvK4RM github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15/go.mod h1:z4YtwM70uOnk8h0pjJYlj3zdYwi9l03By6iAIF5j/Pk= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/tendermint/tendermint v0.34.21 h1:UiGGnBFHVrZhoQVQ7EfwSOLuCtarqCSsRf8VrklqB7s= -github.com/tendermint/tendermint v0.34.21/go.mod h1:XDvfg6U7grcFTDx7VkzxnhazQ/bspGJAn4DZ6DcLLjQ= +github.com/tendermint/tendermint v0.34.22 h1:XMhtC8s8QqJO4l/dn+TkQvevTRSow3Vixjclr41o+2Q= +github.com/tendermint/tendermint v0.34.22/go.mod h1:YpP5vBEAKUT4g6oyfjKgFeZmdB/GjkJAxfF+cgmJg6Y= github.com/tendermint/tm-db v0.6.7 h1:fE00Cbl0jayAoqlExN6oyQJ7fR/ZtoVOmvPJ//+shu8= github.com/tendermint/tm-db v0.6.7/go.mod h1:byQDzFkZV1syXr/ReXS808NxA2xvyuuVgXOJ/088L6I= github.com/tidwall/gjson v1.12.1/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= @@ -1166,7 +1125,6 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -1201,8 +1159,8 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20221012134737-56aed061732a h1:NmSIgad6KjE6VvHciPZuNRTKxGhlPfD6OA87W/PLkqg= -golang.org/x/crypto v0.0.0-20221012134737-56aed061732a/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.2.0 h1:BRXPfhNivWL5Yq0BGQ39a2sW6t44aODpfxkWjYdzewE= +golang.org/x/crypto v0.2.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1233,7 +1191,6 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -1295,9 +1252,7 @@ golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -1305,14 +1260,9 @@ golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220909164309-bea034e7d591 h1:D0B/7al0LLrVC8aWF4+oxpv/m8bc7ViFfVS8/gXGdqI= -golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1322,19 +1272,10 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= -golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2 h1:+jnHzr9VPj32ykQVai5DNahi9+NSp7yYuCsl5eAQtL0= -golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 h1:nt+Q6cXKz4MosCSpnbMtqiQ8Oz0pxTef2B4Vca2lvfk= +golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1346,9 +1287,9 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1413,56 +1354,37 @@ golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220517195934-5e4e11fc645e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220913175220-63ea55921009 h1:PuvuRMeLWqsf/ZdT1UUZz0syhioyv1mzuFZsXs4fvhw= -golang.org/x/sys v0.0.0-20220913175220-63ea55921009/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 h1:Q5284mrmYTpACcm+eAKjKJH48BBwSyfJqmmGDTtT8Vc= -golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0 h1:z85xZCsEl7bi/KwbNADeBYoOP0++7W1ipu+aGnpwzRM= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1471,8 +1393,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1538,10 +1461,6 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= @@ -1549,9 +1468,6 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= @@ -1580,28 +1496,8 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= -google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= -google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= -google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= -google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= -google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= -google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= -google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= -google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= -google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= -google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= -google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= -google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= -google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= -google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= -google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= -google.golang.org/api v0.93.0 h1:T2xt9gi0gHdxdnRkVQhT8mIvPaXKNsDNWz+L696M66M= -google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.102.0 h1:JxJl2qQ85fRMPNvlZY/enexbxpCjLwGhZUtgfGeQ51I= +google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1654,54 +1550,9 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= -google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= -google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= -google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= -google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= -google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= -google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a h1:GH6UPn3ixhWcKDhpnEC55S75cerLPdpp3hrhfKYjZgw= -google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66 h1:wx7sJ5GRBQLRcslTNcrTklsHhHevQvxgztW18txbbZM= +google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -1726,23 +1577,8 @@ google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTp google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= -google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.50.0 h1:fPVVDxY9w++VjTZsYvXWqEf9Rqar/e+9zYfxKK+W+YU= -google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= +google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY= +google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/proto/vulcanize/nameservice/v1beta1/attributes.proto b/proto/vulcanize/nameservice/v1beta1/attributes.proto new file mode 100644 index 00000000..0173d81c --- /dev/null +++ b/proto/vulcanize/nameservice/v1beta1/attributes.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; +package vulcanize.nameservice.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cerc-io/laconicd/x/nameservice/types"; + +message ServiceProviderRegistration { + string bond_id = 1 [(gogoproto.moretags) = "json:\"bondId\" yaml:\"bondId\""]; + string laconic_id = 2 [(gogoproto.moretags) = "json:\"laconicId\" yaml:\"laconicId\""]; + X500 x500 = 3 [(gogoproto.moretags) = "json:\"x500\" yaml:\"x500\""]; + string type = 4 [(gogoproto.moretags) = "json:\"type\" yaml:\"type\""]; +} + +message X500 { + string common_name = 1 [(gogoproto.moretags) = "json:\"commonName\" yaml:\"commonName\""]; + string organization_unit = 2 [(gogoproto.moretags) = "json:\"organizationUnit\" yaml:\"organizationUnit\""]; + string organization_name = 3 [(gogoproto.moretags) = "json:\"organizationName\" yaml:\"organizationName\""]; + string locality_name = 4 [(gogoproto.moretags) = "json:\"localityName\" yaml:\"localityName\""]; + string state_name = 5 [(gogoproto.moretags) = "json:\"stateName\" yaml:\"stateName\""]; + string country = 6 [(gogoproto.moretags) = "json:\"country\" yaml:\"country\""]; +} + +message WebsiteRegistrationRecord { + string url = 1 [(gogoproto.moretags) = "json:\"url\" yaml:\"url\""]; + string repo_registration_record_cid = 2 + [(gogoproto.moretags) = "json:\"repoRegistrationRecordCID\" yaml:\"repoRegistrationRecordCID\""]; + string build_artifact_cid = 3 [(gogoproto.moretags) = "json:\"buildArtifactCID\" yaml:\"buildArtifactCID\""]; + string tls_cert_cid = 4 [(gogoproto.moretags) = "json:\"TLSCertCID\" yaml:\"TLSCertCID\""]; + string type = 5 [(gogoproto.moretags) = "json:\"type\" yaml:\"type\""]; +} \ No newline at end of file diff --git a/proto/vulcanize/nameservice/v1beta1/nameservice.proto b/proto/vulcanize/nameservice/v1beta1/nameservice.proto index 20c62188..0f7c7f7d 100644 --- a/proto/vulcanize/nameservice/v1beta1/nameservice.proto +++ b/proto/vulcanize/nameservice/v1beta1/nameservice.proto @@ -5,6 +5,7 @@ import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; +import "google/protobuf/any.proto"; option go_package = "github.com/cerc-io/laconicd/x/nameservice/types"; @@ -57,14 +58,15 @@ message Params { // Params defines the nameservice module records message Record { - string id = 1 [(gogoproto.moretags) = "json:\"id\" yaml:\"id\""]; - string bond_id = 2 [(gogoproto.moretags) = "json:\"bondId\" yaml:\"bondId\""]; - string create_time = 3 [(gogoproto.moretags) = "json:\"createTime\" yaml:\"createTime\""]; - string expiry_time = 4 [(gogoproto.moretags) = "json:\"expiryTime\" yaml:\"expiryTime\""]; - bool deleted = 5; - repeated string owners = 6 [(gogoproto.moretags) = "json:\"owners\" yaml:\"owners\""]; - string attributes = 7 [(gogoproto.moretags) = "json:\"attributes\" yaml:\"attributes\""]; - repeated string names = 8 [(gogoproto.moretags) = "json:\"names\" yaml:\"names\""]; + string id = 1 [(gogoproto.moretags) = "json:\"id\" yaml:\"id\""]; + string bond_id = 2 [(gogoproto.moretags) = "json:\"bondId\" yaml:\"bondId\""]; + string create_time = 3 [(gogoproto.moretags) = "json:\"createTime\" yaml:\"createTime\""]; + string expiry_time = 4 [(gogoproto.moretags) = "json:\"expiryTime\" yaml:\"expiryTime\""]; + bool deleted = 5; + repeated string owners = 6 [(gogoproto.moretags) = "json:\"owners\" yaml:\"owners\""]; + google.protobuf.Any attributes = 7 [(gogoproto.moretags) = "json:\"attributes\" yaml:\"attributes\""]; + repeated string names = 8 [(gogoproto.moretags) = "json:\"names\" yaml:\"names\""]; + string type = 9 [(gogoproto.moretags) = "json:\"types\" yaml:\"types\""]; } // AuthorityEntry defines the nameservice module AuthorityEntries diff --git a/server/flags/flags.go b/server/flags/flags.go index 68148c9c..c9e57ede 100644 --- a/server/flags/flags.go +++ b/server/flags/flags.go @@ -70,6 +70,7 @@ func AddTxFlags(cmd *cobra.Command) (*cobra.Command, error) { cmd.PersistentFlags().String(flags.FlagFrom, "", "Name or address of private key with which to sign") cmd.PersistentFlags().String(flags.FlagFees, "", "Fees to pay along with transaction; eg: 10aphoton") cmd.PersistentFlags().String(flags.FlagGasPrices, "", "Gas prices to determine the transaction fee (e.g. 10aphoton)") + cmd.PersistentFlags().String(flags.FlagGas, "300000", "gas limit to set per-transaction; set to auto to calculate sufficient gas automatically. Note: auto option doesn't always report accurate results. Set a valid coin value to adjust the result. Can be used instead of fees. (default 300000)") cmd.PersistentFlags().String(flags.FlagNode, "tcp://localhost:26657", ": to tendermint rpc interface for this chain") //nolint:lll cmd.PersistentFlags().Float64(flags.FlagGasAdjustment, flags.DefaultGasAdjustment, "adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored ") //nolint:lll cmd.PersistentFlags().StringP(flags.FlagBroadcastMode, "b", flags.BroadcastSync, "Transaction broadcasting mode (sync|async|block)") diff --git a/x/bond/client/testutil/grpc.go b/x/bond/client/testutil/grpc.go index df0e20d9..b6d464da 100644 --- a/x/bond/client/testutil/grpc.go +++ b/x/bond/client/testutil/grpc.go @@ -162,7 +162,7 @@ func (s *IntegrationTestSuite) TestGRPCGetBondByID() { // extract bond id from bonds list bond := queryResponse.GetBonds()[0] - return bond.GetID() + return bond.GetId() }, }, } @@ -181,11 +181,11 @@ func (s *IntegrationTestSuite) TestGRPCGetBondByID() { err = val.ClientCtx.Codec.UnmarshalJSON(resp, &bonds) if tc.expErr { - sr.Empty(bonds.GetBond().GetID()) + sr.Empty(bonds.GetBond().GetId()) } else { sr.NoError(err) - sr.NotZero(bonds.GetBond().GetID()) - sr.Equal(bonds.GetBond().GetID(), bondID) + sr.NotZero(bonds.GetBond().GetId()) + sr.Equal(bonds.GetBond().GetId(), bondID) } }) } diff --git a/x/bond/client/testutil/query.go b/x/bond/client/testutil/query.go index c726a309..1d3f8159 100644 --- a/x/bond/client/testutil/query.go +++ b/x/bond/client/testutil/query.go @@ -205,7 +205,7 @@ func (s *IntegrationTestSuite) TestGetQueryBondByID() { // extract bond id from bonds list bond := queryResponse.GetBonds()[0] - return bond.GetID() + return bond.GetId() }, }, } @@ -225,9 +225,9 @@ func (s *IntegrationTestSuite) TestGetQueryBondByID() { err = clientCtx.Codec.UnmarshalJSON(out.Bytes(), &queryResponse) sr.NoError(err) if tc.err { - sr.Zero(len(queryResponse.GetBond().GetID())) + sr.Zero(len(queryResponse.GetBond().GetId())) } else { - sr.NotZero(len(queryResponse.GetBond().GetID())) + sr.NotZero(len(queryResponse.GetBond().GetId())) sr.Equal(s.accountAddress, queryResponse.GetBond().GetOwner()) } }) diff --git a/x/bond/client/testutil/tx.go b/x/bond/client/testutil/tx.go index a43c34b9..c023f4c7 100644 --- a/x/bond/client/testutil/tx.go +++ b/x/bond/client/testutil/tx.go @@ -118,7 +118,7 @@ func (s *IntegrationTestSuite) TestTxRefillBond() { // extract bond id from bonds list bond := queryResponse.GetBonds()[0] - tc.args = append([]string{bond.GetID()}, tc.args...) + tc.args = append([]string{bond.GetId()}, tc.args...) } out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.err { @@ -204,7 +204,7 @@ func (s *IntegrationTestSuite) TestTxWithdrawAmountFromBond() { // extract bond id from bonds list bond := queryResponse.GetBonds()[0] - tc.args = append([]string{bond.GetID()}, tc.args...) + tc.args = append([]string{bond.GetId()}, tc.args...) } out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.err { @@ -288,7 +288,7 @@ func (s *IntegrationTestSuite) TestTxCancelBond() { // extract bond id from bonds list bond := queryResponse.GetBonds()[0] - tc.args = append([]string{bond.GetID()}, tc.args...) + tc.args = append([]string{bond.GetId()}, tc.args...) } out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.err { @@ -312,7 +312,7 @@ func (s *IntegrationTestSuite) TestTxCancelBond() { err = clientCtx.Codec.UnmarshalJSON(out.Bytes(), &queryResponse) sr.NoError(err) - sr.Zero(queryResponse.GetBond().GetID()) + sr.Zero(queryResponse.GetBond().GetId()) } }) } diff --git a/x/bond/keeper/grpc_query.go b/x/bond/keeper/grpc_query.go index dba329af..0742bc5a 100644 --- a/x/bond/keeper/grpc_query.go +++ b/x/bond/keeper/grpc_query.go @@ -28,11 +28,11 @@ func (q Querier) Params(c context.Context, _ *types.QueryParamsRequest) (*types. func (q Querier) GetBondByID(c context.Context, req *types.QueryGetBondByIDRequest) (*types.QueryGetBondByIDResponse, error) { ctx := sdk.UnwrapSDKContext(c) - bondID := req.GetID() + bondID := req.GetId() if len(bondID) == 0 { return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "bond id required") } - bond := q.Keeper.GetBond(ctx, req.GetID()) + bond := q.Keeper.GetBond(ctx, req.GetId()) return &types.QueryGetBondByIDResponse{Bond: &bond}, nil } diff --git a/x/bond/keeper/grpc_query_test.go b/x/bond/keeper/grpc_query_test.go index 56d51ead..300a471d 100644 --- a/x/bond/keeper/grpc_query_test.go +++ b/x/bond/keeper/grpc_query_test.go @@ -124,7 +124,7 @@ func (suite *KeeperTestSuite) TestGrpcQueryBondBondId() { if !test.errResponse { suiteRequire.Nil(err) suiteRequire.NotNil(resp.GetBond()) - suiteRequire.Equal(test.req.Id, resp.GetBond().GetID()) + suiteRequire.Equal(test.req.Id, resp.GetBond().GetId()) } else { suiteRequire.NotNil(err) suiteRequire.Error(err) diff --git a/x/bond/types/bond.pb.go b/x/bond/types/bond.pb.go index 3fc0ae62..f078d51c 100644 --- a/x/bond/types/bond.pb.go +++ b/x/bond/types/bond.pb.go @@ -114,7 +114,7 @@ func (m *Bond) XXX_DiscardUnknown() { var xxx_messageInfo_Bond proto.InternalMessageInfo -func (m *Bond) GetID() string { +func (m *Bond) GetId() string { if m != nil { return m.Id } diff --git a/x/bond/types/query.pb.go b/x/bond/types/query.pb.go index 2a075f04..bb7faa60 100644 --- a/x/bond/types/query.pb.go +++ b/x/bond/types/query.pb.go @@ -252,7 +252,7 @@ func (m *QueryGetBondByIDRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QueryGetBondByIDRequest proto.InternalMessageInfo -func (m *QueryGetBondByIDRequest) GetID() string { +func (m *QueryGetBondByIDRequest) GetId() string { if m != nil { return m.Id } diff --git a/x/nameservice/README.md b/x/nameservice/README.md index 032e5a7b..daa383e4 100644 --- a/x/nameservice/README.md +++ b/x/nameservice/README.md @@ -58,7 +58,7 @@ $ ./build/laconicd q nameservice params -o json | jq . > First you have to Create bond ```bash -$ ./build/laconicd tx nameservice set ~/Desktop/examples/records/example1.yml 95f68b1b862bfd1609b0c9aaf7300287b92fec90ac64027092c3e723af36e83d --from root --chain-id ethermint_9000-1 --yes -o json +$ ./build/laconicd tx nameservice set ~/Desktop/examples/records/service_provider_example.yml 95f68b1b862bfd1609b0c9aaf7300287b92fec90ac64027092c3e723af36e83d --from root --chain-id ethermint_9000-1 --yes -o json { "height": "0", "txhash": "BA44ABE1194724694E7CB290F9F3121DB4E63E1A030D95CB84813EEA132CF95F", diff --git a/x/nameservice/client/cli/query.go b/x/nameservice/client/cli/query.go index fc7eb427..d7b888d5 100644 --- a/x/nameservice/client/cli/query.go +++ b/x/nameservice/client/cli/query.go @@ -14,14 +14,14 @@ import ( // GetQueryCmd returns the cli query commands for this module func GetQueryCmd() *cobra.Command { - bondQueryCmd := &cobra.Command{ + nameserviceQueryCmd := &cobra.Command{ Use: types.ModuleName, Short: "Querying commands for the nameservice module", DisableFlagParsing: true, SuggestionsMinimumDistance: 2, RunE: client.ValidateCmd, } - bondQueryCmd.AddCommand( + nameserviceQueryCmd.AddCommand( GetCmdWhoIs(), GetCmdResolve(), GetCmdLookupCRN(), @@ -34,7 +34,7 @@ func GetQueryCmd() *cobra.Command { GetCmdBalance(), GetCmdNames(), ) - return bondQueryCmd + return nameserviceQueryCmd } // GetCmdWhoIs queries a whois info for a name. diff --git a/x/nameservice/client/cli/tx.go b/x/nameservice/client/cli/tx.go index b4f4f74e..332077be 100644 --- a/x/nameservice/client/cli/tx.go +++ b/x/nameservice/client/cli/tx.go @@ -17,7 +17,7 @@ import ( // NewTxCmd returns a root CLI command handler for all x/bond transaction commands. func NewTxCmd() *cobra.Command { - bondTxCmd := &cobra.Command{ + nameserviceTxCmd := &cobra.Command{ Use: types.ModuleName, Short: "nameservice transaction subcommands", DisableFlagParsing: true, @@ -25,7 +25,7 @@ func NewTxCmd() *cobra.Command { RunE: client.ValidateCmd, } - bondTxCmd.AddCommand( + nameserviceTxCmd.AddCommand( GetCmdSetRecord(), GetCmdRenewRecord(), GetCmdAssociateBond(), @@ -38,7 +38,7 @@ func NewTxCmd() *cobra.Command { GetCmdDeleteName(), ) - return bondTxCmd + return nameserviceTxCmd } // GetCmdSetRecord is the CLI command for creating/updating a record. @@ -61,12 +61,17 @@ $ %s tx %s set [payload file path] [bond-id] return err } - payload, err := GetPayloadFromFile(args[0]) + payloadType, err := GetPayloadFromFile(args[0]) if err != nil { return err } - msg := types.NewMsgSetRecord(payload.ToPayload(), args[1], clientCtx.GetFromAddress()) + payload, err := payloadType.ToPayload() + if err != nil { + return err + } + + msg := types.NewMsgSetRecord(payload, args[1], clientCtx.GetFromAddress()) err = msg.ValidateBasic() if err != nil { return err diff --git a/x/nameservice/client/testutil/grpc.go b/x/nameservice/client/testutil/grpc.go index 485e6329..91b8a350 100644 --- a/x/nameservice/client/testutil/grpc.go +++ b/x/nameservice/client/testutil/grpc.go @@ -209,7 +209,7 @@ func (s *IntegrationTestSuite) TestGRPCQueryRecordExpiryQueue() { func(bondId string) { dir, err := os.Getwd() sr.NoError(err) - payloadPath := dir + "/example1.yml" + payloadPath := dir + "/service_provider_example.yml" args := []string{ fmt.Sprintf("--%s=%s", flags.FlagFrom, accountName), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), @@ -353,7 +353,7 @@ func (s *IntegrationTestSuite) TestGRPCQueryListRecords() { func(bondId string) { dir, err := os.Getwd() sr.NoError(err) - payloadPath := dir + "/example1.yml" + payloadPath := dir + "/service_provider_example.yml" args := []string{ fmt.Sprintf("--%s=%s", flags.FlagFrom, accountName), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), @@ -457,8 +457,8 @@ func (s *IntegrationTestSuite) TestGRPCQueryGetRecordByID() { err := val.ClientCtx.Codec.UnmarshalJSON(resp, &response) sr.NoError(err) record := response.GetRecord() - sr.NotZero(len(record.GetID())) - sr.Equal(record.GetID(), recordID) + sr.NotZero(len(record.GetId())) + sr.Equal(record.GetId(), recordID) } }) } @@ -626,7 +626,7 @@ func createRecord(bondID string, s *IntegrationTestSuite) { dir, err := os.Getwd() sr.NoError(err) - payloadPath := dir + "/example1.yml" + payloadPath := dir + "/service_provider_example.yml" args := []string{ fmt.Sprintf("--%s=%s", flags.FlagFrom, accountName), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), diff --git a/x/nameservice/client/testutil/query.go b/x/nameservice/client/testutil/query.go index 08461a9e..7831ae8c 100644 --- a/x/nameservice/client/testutil/query.go +++ b/x/nameservice/client/testutil/query.go @@ -79,7 +79,7 @@ func (s *IntegrationTestSuite) TestGetCmdQueryForRecords() { bondID := GetBondID(s) dir, err := os.Getwd() sr.NoError(err) - payloadPath := dir + "/example1.yml" + payloadPath := dir + "/service_provider_example.yml" args := []string{ payloadPath, bondID, fmt.Sprintf("--%s=%s", flags.FlagFrom, accountName), diff --git a/x/nameservice/client/testutil/service_provider_example.yml b/x/nameservice/client/testutil/service_provider_example.yml new file mode 100644 index 00000000..b006dc95 --- /dev/null +++ b/x/nameservice/client/testutil/service_provider_example.yml @@ -0,0 +1,12 @@ + +record: + type: ServiceProviderRegistration + bond_id: madeUpBondID + laconic_id: madeUpLaconicID + x500: + common_name: cerc-io + organization_unit: xyz + organization_name: abc + state_name: california + country: US + locality_name: local \ No newline at end of file diff --git a/x/nameservice/client/testutil/tx.go b/x/nameservice/client/testutil/tx.go index 1baafa16..6c2db65e 100644 --- a/x/nameservice/client/testutil/tx.go +++ b/x/nameservice/client/testutil/tx.go @@ -153,7 +153,7 @@ func GetBondID(s *IntegrationTestSuite) string { // extract bond id from bonds list bond := queryResponse.GetBonds()[0] - return bond.GetID() + return bond.GetId() } func (s *IntegrationTestSuite) TestGetCmdSetRecord() { @@ -198,7 +198,7 @@ func (s *IntegrationTestSuite) TestGetCmdSetRecord() { bondID := GetBondID(s) dir, err := os.Getwd() sr.NoError(err) - payloadPath := dir + "/example1.yml" + payloadPath := dir + "/service_provider_example.yml" tc.args = append([]string{payloadPath, bondID}, tc.args...) } @@ -580,7 +580,7 @@ func (s *IntegrationTestSuite) TestGetCmdDissociateBond() { bondID := GetBondID(s) dir, err := os.Getwd() sr.NoError(err) - payloadPath := dir + "/example1.yml" + payloadPath := dir + "/service_provider_example.yml" args := []string{ payloadPath, bondID, @@ -822,7 +822,7 @@ func (s *IntegrationTestSuite) TestGetCmdAssociateBond() { bondID := GetBondID(s) dir, err := os.Getwd() sr.NoError(err) - payloadPath := dir + "/example1.yml" + payloadPath := dir + "/service_provider_example.yml" txArgs := []string{ payloadPath, bondID, diff --git a/x/nameservice/client/testutil/website_registration_example.yml b/x/nameservice/client/testutil/website_registration_example.yml new file mode 100644 index 00000000..fdad1540 --- /dev/null +++ b/x/nameservice/client/testutil/website_registration_example.yml @@ -0,0 +1,6 @@ +record: + type: WebsiteRegistrationRecord + url: https://cerc.io + repo_registration_record_cid: QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D + build_artifact_cid: QmP8jTG1m9GSDJLCbeWhVSVgEzCPPwXRdCRuJtQ5Tz9Kc9 + tls_cert_cid: QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR \ No newline at end of file diff --git a/x/nameservice/helpers/examples/service_provider_example.yml b/x/nameservice/helpers/examples/service_provider_example.yml new file mode 100644 index 00000000..b006dc95 --- /dev/null +++ b/x/nameservice/helpers/examples/service_provider_example.yml @@ -0,0 +1,12 @@ + +record: + type: ServiceProviderRegistration + bond_id: madeUpBondID + laconic_id: madeUpLaconicID + x500: + common_name: cerc-io + organization_unit: xyz + organization_name: abc + state_name: california + country: US + locality_name: local \ No newline at end of file diff --git a/x/nameservice/helpers/examples/website_registration_example.yml b/x/nameservice/helpers/examples/website_registration_example.yml new file mode 100644 index 00000000..79c1de6a --- /dev/null +++ b/x/nameservice/helpers/examples/website_registration_example.yml @@ -0,0 +1,6 @@ +record: + type: WebsiteRegistrationRecord + url: https://cerc.io + repo_registration_record_cid: QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D + build_artifact_cid: QmP8jTG1m9GSDJLCbeWhVSVgEzCPPwXRdCRuJtQ5Tz9Kc9 + tls_cerc_cid: QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR \ No newline at end of file diff --git a/x/nameservice/helpers/helpers.go b/x/nameservice/helpers/helpers.go index 582374ac..7ce4c7d3 100644 --- a/x/nameservice/helpers/helpers.go +++ b/x/nameservice/helpers/helpers.go @@ -62,7 +62,7 @@ func UnMarshalMapFromJSONBytes(bytes []byte) map[string]interface{} { var val map[string]interface{} err := json.Unmarshal(bytes, &val) if err != nil { - panic("Marshal error.") + panic("Unmarshal error.") } return val diff --git a/x/nameservice/keeper/grpc_query.go b/x/nameservice/keeper/grpc_query.go index 7ec073d6..195d2574 100644 --- a/x/nameservice/keeper/grpc_query.go +++ b/x/nameservice/keeper/grpc_query.go @@ -32,9 +32,11 @@ func (q Querier) ListRecords(c context.Context, req *types.QueryListRecordsReque all := req.GetAll() var records []types.Record if len(attributes) > 0 { - records = q.Keeper.MatchRecords(ctx, func(record *types.RecordType) bool { - return MatchOnAttributes(record, attributes, all) - }) + var err error + records, err = q.Keeper.RecordsFromAttributes(ctx, attributes, all) + if err != nil { + return nil, err + } } else { records = q.Keeper.ListRecords(ctx) } @@ -112,115 +114,3 @@ func (q Querier) GetAuthorityExpiryQueue(c context.Context, _ *types.QueryGetAut authorities := q.Keeper.GetAuthorityExpiryQueue(ctx) return &types.QueryGetAuthorityExpiryQueueResponse{Authorities: authorities}, nil } - -func matchOnRecordField(record *types.RecordType, attr *types.QueryListRecordsRequest_KeyValueInput) (fieldFound bool, matched bool) { - fieldFound = false - matched = true - - switch attr.Key { - case BondIDAttributeName: - { - fieldFound = true - if record.BondID != attr.Value.GetString_() { - matched = false - return - } - } - case ExpiryTimeAttributeName: - { - fieldFound = true - if record.ExpiryTime != attr.Value.GetString_() { - matched = false - return - } - } - } - - return -} - -func MatchOnAttributes(record *types.RecordType, attributes []*types.QueryListRecordsRequest_KeyValueInput, all bool) bool { - // Filter deleted records. - if record.Deleted { - return false - } - - // If ONLY named records are requested, check for that condition first. - if !all && len(record.Names) == 0 { - return false - } - - recAttrs := record.Attributes - - for _, attr := range attributes { - // First try matching on record struct fields. - fieldFound, matched := matchOnRecordField(record, attr) - - if fieldFound { - if !matched { - return false - } - - continue - } - - recAttrVal, recAttrFound := recAttrs[attr.Key] - if !recAttrFound { - return false - } - - if attr.Value.Type == "int" { - recAttrValInt, ok := recAttrVal.(int) - if !ok || int(attr.Value.GetInt()) != recAttrValInt { - return false - } - } - - if attr.Value.Type == "float" { - recAttrValFloat, ok := recAttrVal.(float64) - if !ok || attr.Value.GetFloat() != recAttrValFloat { - return false - } - } - - if attr.Value.Type == "string" { - recAttrValString, ok := recAttrVal.(string) - if !ok { - return false - } - - if attr.Value.GetString_() != recAttrValString { - return false - } - } - - if attr.Value.Type == "boolean" { - recAttrValBool, ok := recAttrVal.(bool) - if !ok || attr.Value.GetBoolean() != recAttrValBool { - return false - } - } - - if attr.Value.Type == "reference" { - obj, ok := recAttrVal.(map[string]interface{}) - if !ok { - // Attr value is not an object. - return false - } - - if _, ok := obj["/"].(string); !ok { - // Attr value is not a reference. - return false - } - - recAttrValRefID := obj["/"].(string) - if recAttrValRefID != attr.Value.GetReference().GetId() { - return false - } - } - - // TODO: Handle arrays. - } - - return true -} diff --git a/x/nameservice/keeper/grpc_query_test.go b/x/nameservice/keeper/grpc_query_test.go index 8702b7b4..1600344f 100644 --- a/x/nameservice/keeper/grpc_query_test.go +++ b/x/nameservice/keeper/grpc_query_test.go @@ -6,6 +6,8 @@ import ( "os" "github.com/cerc-io/laconicd/x/nameservice/client/cli" + "github.com/cerc-io/laconicd/x/nameservice/helpers" + "github.com/cerc-io/laconicd/x/nameservice/keeper" nameservicetypes "github.com/cerc-io/laconicd/x/nameservice/types" ) @@ -34,12 +36,16 @@ func (suite *KeeperTestSuite) TestGrpcGetRecordLists() { grpcClient, ctx := suite.queryClient, suite.ctx sr := suite.Require() var recordId string + examples := []string{ + "/../helpers/examples/service_provider_example.yml", + "/../helpers/examples/website_registration_example.yml", + } testCases := []struct { - msg string - req *nameservicetypes.QueryListRecordsRequest - createRecord bool - expErr bool - noOfRecords int + msg string + req *nameservicetypes.QueryListRecordsRequest + createRecords bool + expErr bool + noOfRecords int }{ { "Empty Records", @@ -53,23 +59,63 @@ func (suite *KeeperTestSuite) TestGrpcGetRecordLists() { &nameservicetypes.QueryListRecordsRequest{}, true, false, + 2, + }, + { + "Filter with type", + &nameservicetypes.QueryListRecordsRequest{ + Attributes: []*nameservicetypes.QueryListRecordsRequest_KeyValueInput{ + { + Key: "type", + Value: &nameservicetypes.QueryListRecordsRequest_ValueInput{ + Type: "string", + String_: "WebsiteRegistrationRecord", + }, + }, + }, + All: true, + }, + true, + false, + 1, + }, + { + "Filter with attributes ServiceProviderRegistration", + &nameservicetypes.QueryListRecordsRequest{ + Attributes: []*nameservicetypes.QueryListRecordsRequest_KeyValueInput{ + { + Key: "x500state_name", + Value: &nameservicetypes.QueryListRecordsRequest_ValueInput{ + Type: "string", + String_: "california", + }, + }, + }, + All: true, + }, + true, + false, 1, }, } for _, test := range testCases { suite.Run(fmt.Sprintf("Case %s ", test.msg), func() { - if test.createRecord { - dir, err := os.Getwd() - sr.NoError(err) - payload, err := cli.GetPayloadFromFile(dir + "/../helpers/examples/example1.yml") - sr.NoError(err) - record, err := suite.app.NameServiceKeeper.ProcessSetRecord(ctx, nameservicetypes.MsgSetRecord{ - BondId: suite.bond.GetID(), - Signer: suite.accounts[0].String(), - Payload: payload.ToPayload(), - }) - sr.NoError(err) - sr.NotNil(record.ID) + if test.createRecords { + for _, example := range examples { + dir, err := os.Getwd() + sr.NoError(err) + payloadType, err := cli.GetPayloadFromFile(fmt.Sprint(dir, example)) + sr.NoError(err) + payload, err := payloadType.ToPayload() + sr.NoError(err) + record, err := suite.app.NameServiceKeeper.ProcessSetRecord(ctx, nameservicetypes.MsgSetRecord{ + BondId: suite.bond.GetId(), + Signer: suite.accounts[0].String(), + Payload: payload, + }) + sr.NoError(err) + sr.NotNil(record.ID) + } } resp, err := grpcClient.ListRecords(context.Background(), test.req) if test.expErr { @@ -77,10 +123,23 @@ func (suite *KeeperTestSuite) TestGrpcGetRecordLists() { } else { sr.NoError(err) sr.Equal(test.noOfRecords, len(resp.GetRecords())) - if test.createRecord { - recordId = resp.GetRecords()[0].GetID() + if test.createRecords { + recordId = resp.GetRecords()[0].GetId() sr.NotZero(resp.GetRecords()) - sr.Equal(resp.GetRecords()[0].GetBondId(), suite.bond.GetID()) + sr.Equal(resp.GetRecords()[0].GetBondId(), suite.bond.GetId()) + + for _, record := range resp.GetRecords() { + bz, err := nameservicetypes.GetJSONBytesFromAny(*record.Attributes) + sr.NoError(err) + recAttr := helpers.UnMarshalMapFromJSONBytes(bz) + for _, attr := range test.req.GetAttributes() { + if attr.Key[:4] == "x500" { + sr.Equal(keeper.GetAttributeValue(attr.Value), recAttr["x500"].(map[string]interface{})[attr.Key[4:]]) + } else { + sr.Equal(keeper.GetAttributeValue(attr.Value), recAttr[attr.Key]) + } + } + } } } }) @@ -120,7 +179,7 @@ func (suite *KeeperTestSuite) TestGrpcGetRecordLists() { sr.NoError(err) sr.NotNil(resp.GetRecord()) if test.createRecord { - sr.Equal(resp.GetRecord().BondId, suite.bond.GetID()) + sr.Equal(resp.GetRecord().BondId, suite.bond.GetId()) sr.Equal(resp.GetRecord().Id, recordId) } } @@ -145,7 +204,7 @@ func (suite *KeeperTestSuite) TestGrpcGetRecordLists() { { "With Bond ID", &nameservicetypes.QueryRecordByBondIDRequest{ - Id: suite.bond.GetID(), + Id: suite.bond.GetId(), }, true, false, @@ -162,7 +221,7 @@ func (suite *KeeperTestSuite) TestGrpcGetRecordLists() { sr.NotNil(resp.GetRecords()) if test.createRecord { sr.NotZero(resp.GetRecords()) - sr.Equal(resp.GetRecords()[0].GetBondId(), suite.bond.GetID()) + sr.Equal(resp.GetRecords()[0].GetBondId(), suite.bond.GetId()) } } }) @@ -172,12 +231,16 @@ func (suite *KeeperTestSuite) TestGrpcGetRecordLists() { func (suite *KeeperTestSuite) TestGrpcQueryNameserviceModuleBalance() { grpcClient, ctx := suite.queryClient, suite.ctx sr := suite.Require() + examples := []string{ + "/../helpers/examples/service_provider_example.yml", + "/../helpers/examples/website_registration_example.yml", + } testCases := []struct { - msg string - req *nameservicetypes.GetNameServiceModuleBalanceRequest - createRecord bool - expErr bool - noOfRecords int + msg string + req *nameservicetypes.GetNameServiceModuleBalanceRequest + createRecords bool + expErr bool + noOfRecords int }{ { "Get Module Balance", @@ -189,18 +252,22 @@ func (suite *KeeperTestSuite) TestGrpcQueryNameserviceModuleBalance() { } for _, test := range testCases { suite.Run(fmt.Sprintf("Case %s ", test.msg), func() { - if test.createRecord { + if test.createRecords { dir, err := os.Getwd() sr.NoError(err) - payload, err := cli.GetPayloadFromFile(dir + "/../helpers/examples/example1.yml") - sr.NoError(err) - record, err := suite.app.NameServiceKeeper.ProcessSetRecord(ctx, nameservicetypes.MsgSetRecord{ - BondId: suite.bond.GetID(), - Signer: suite.accounts[0].String(), - Payload: payload.ToPayload(), - }) - sr.NoError(err) - sr.NotNil(record.ID) + for _, example := range examples { + payloadType, err := cli.GetPayloadFromFile(fmt.Sprint(dir, example)) + sr.NoError(err) + payload, err := payloadType.ToPayload() + sr.NoError(err) + record, err := suite.app.NameServiceKeeper.ProcessSetRecord(ctx, nameservicetypes.MsgSetRecord{ + BondId: suite.bond.GetId(), + Signer: suite.accounts[0].String(), + Payload: payload, + }) + sr.NoError(err) + sr.NotNil(record.ID) + } } resp, err := grpcClient.GetNameServiceModuleBalance(context.Background(), test.req) if test.expErr { @@ -208,7 +275,7 @@ func (suite *KeeperTestSuite) TestGrpcQueryNameserviceModuleBalance() { } else { sr.NoError(err) sr.Equal(test.noOfRecords, len(resp.GetBalances())) - if test.createRecord { + if test.createRecords { balance := resp.GetBalances()[0] sr.Equal(balance.AccountName, nameservicetypes.RecordRentModuleAccountName) } diff --git a/x/nameservice/keeper/keeper.go b/x/nameservice/keeper/keeper.go index be86d0b4..0e774cb6 100644 --- a/x/nameservice/keeper/keeper.go +++ b/x/nameservice/keeper/keeper.go @@ -2,6 +2,7 @@ package keeper import ( "bytes" + "encoding/json" "fmt" "sort" "time" @@ -45,6 +46,9 @@ var ( // PrefixBondIDToAuthoritiesIndex is the prefix for the Bond ID -> [Authority] index. PrefixBondIDToAuthoritiesIndex = []byte{0x06} + // PrefixAttributesIndex is the prefix for the nameservice Record.Attribute -> []Record.ID index + PrefixAttributesIndex = []byte{0x07} + // PrefixExpiryTimeToRecordsIndex is the prefix for the Expiry Time -> [Record] index. PrefixExpiryTimeToRecordsIndex = []byte{0x10} @@ -129,27 +133,80 @@ func (k Keeper) ListRecords(ctx sdk.Context) []types.Record { return records } -// MatchRecords - get all matching records. -func (k Keeper) MatchRecords(ctx sdk.Context, matchFn func(*types.RecordType) bool) []types.Record { - var records []types.Record - - store := ctx.KVStore(k.storeKey) - itr := sdk.KVStorePrefixIterator(store, PrefixCIDToRecordIndex) - defer itr.Close() - for ; itr.Valid(); itr.Next() { - bz := store.Get(itr.Key()) - if bz != nil { - var obj types.Record - k.cdc.MustUnmarshal(bz, &obj) - obj = recordObjToRecord(store, obj) - record := obj.ToRecordType() - if matchFn(&record) { - records = append(records, obj) - } +func (k Keeper) RecordsFromAttributes(ctx sdk.Context, attributes []*types.QueryListRecordsRequest_KeyValueInput, all bool) ([]types.Record, error) { + resultRecordIds := []string{} + for i, attr := range attributes { + val := GetAttributeValue(attr.Value) + attributeIndex := GetAttributesIndexKey(attr.Key, val) + recordIds, err := k.GetAttributeMapping(ctx, attributeIndex) + if err != nil { + return nil, err + } + if i == 0 { + resultRecordIds = recordIds + } else { + resultRecordIds = getIntersection(recordIds, resultRecordIds) } } - return records + records := []types.Record{} + for _, id := range resultRecordIds { + record := k.GetRecord(ctx, id) + if record.Deleted { + continue + } + if !all && len(record.Names) == 0 { + continue + } + records = append(records, record) + } + return records, nil +} + +func GetAttributeValue(input *types.QueryListRecordsRequest_ValueInput) interface{} { + if input.Type == "int" { + return input.GetInt() + } + if input.Type == "float" { + return input.GetFloat() + } + if input.Type == "string" { + return input.GetString_() + } + if input.Type == "boolean" { + return input.GetBoolean() + } + if input.Type == "reference" { + return input.GetReference().GetId() + } + return nil +} + +func getIntersection(a []string, b []string) []string { + result := []string{} + if len(a) < len(b) { + for _, str := range a { + if contains(b, str) { + result = append(result, str) + } + } + } else { + for _, str := range b { + if contains(a, str) { + result = append(result, str) + } + } + } + return result +} + +func contains(arr []string, str string) bool { + for _, s := range arr { + if s == str { + return true + } + } + return false } func (k Keeper) GetRecordExpiryQueue(ctx sdk.Context) []*types.ExpiryQueueRecord { @@ -229,8 +286,17 @@ func (k Keeper) processRecord(ctx sdk.Context, record *types.RecordType, isRenew record.ExpiryTime = ctx.BlockHeader().Time.Add(params.RecordRentDuration).Format(time.RFC3339) record.Deleted = false - k.PutRecord(ctx, record.ToRecordObj()) - k.InsertRecordExpiryQueue(ctx, record.ToRecordObj()) + recordObj, err := record.ToRecordObj() + if err != nil { + return err + } + k.PutRecord(ctx, recordObj) + + if err := k.ProcessAttributes(ctx, *record); err != nil { + return err + } + + k.InsertRecordExpiryQueue(ctx, recordObj) // Renewal doesn't change the name and bond indexes. if !isRenewal { @@ -247,6 +313,90 @@ func (k Keeper) PutRecord(ctx sdk.Context, record types.Record) { k.updateBlockChangeSetForRecord(ctx, record.Id) } +func (k Keeper) ProcessAttributes(ctx sdk.Context, record types.RecordType) error { + switch record.Attributes["type"] { + case "ServiceProviderRegistration": + { + // #nosec G705 + for key := range record.Attributes { + if key == "x500" { + // #nosec G705 + for x500Key, x500Val := range record.Attributes[key].(map[string]interface{}) { + indexKey := GetAttributesIndexKey(fmt.Sprintf("x500%s", x500Key), x500Val) + if err := k.SetAttributeMapping(ctx, indexKey, record.ID); err != nil { + return err + } + } + } else { + indexKey := GetAttributesIndexKey(key, record.Attributes[key]) + if err := k.SetAttributeMapping(ctx, indexKey, record.ID); err != nil { + return err + } + } + } + } + case "WebsiteRegistrationRecord": + { + // #nosec G705 + for key := range record.Attributes { + indexKey := GetAttributesIndexKey(key, record.Attributes[key]) + if err := k.SetAttributeMapping(ctx, indexKey, record.ID); err != nil { + return err + } + } + } + default: + return fmt.Errorf("unsupported record type %s", record.Attributes["type"]) + } + + expiryTimeKey := GetAttributesIndexKey(ExpiryTimeAttributeName, record.ExpiryTime) + if err := k.SetAttributeMapping(ctx, expiryTimeKey, record.ID); err != nil { + return err + } + + return nil +} + +func GetAttributesIndexKey(key string, value interface{}) []byte { + keyString := fmt.Sprintf("%s%s", key, value) + return append(PrefixAttributesIndex, []byte(keyString)...) +} + +func (k Keeper) SetAttributeMapping(ctx sdk.Context, key []byte, recordID string) error { + store := ctx.KVStore(k.storeKey) + var recordIds []string + if store.Has(key) { + err := json.Unmarshal(store.Get(key), &recordIds) + if err != nil { + return fmt.Errorf("cannot unmarshal byte array, error, %w", err) + } + } else { + recordIds = []string{} + } + recordIds = append(recordIds, recordID) + bz, err := json.Marshal(recordIds) + if err != nil { + return fmt.Errorf("cannot marshal string array, error, %w", err) + } + store.Set(key, bz) + return nil +} + +func (k Keeper) GetAttributeMapping(ctx sdk.Context, key []byte) ([]string, error) { + store := ctx.KVStore(k.storeKey) + + if !store.Has(key) { + return nil, fmt.Errorf("store doesn't have key") + } + + var recordIds []string + if err := json.Unmarshal(store.Get(key), &recordIds); err != nil { + return nil, fmt.Errorf("cannont unmarshal byte array, error, %w", err) + } + + return recordIds, nil +} + // AddBondToRecordIndexEntry adds the Bond ID -> [Record] index entry. func (k Keeper) AddBondToRecordIndexEntry(ctx sdk.Context, bondID string, id string) { store := ctx.KVStore(k.storeKey) diff --git a/x/nameservice/keeper/msg_server.go b/x/nameservice/keeper/msg_server.go index d68fcc10..bd5a1f8a 100644 --- a/x/nameservice/keeper/msg_server.go +++ b/x/nameservice/keeper/msg_server.go @@ -39,7 +39,7 @@ func (m msgServer) SetRecord(c context.Context, msg *types.MsgSetRecord) (*types types.EventTypeSetRecord, sdk.NewAttribute(types.AttributeKeySigner, msg.GetSigner()), sdk.NewAttribute(types.AttributeKeyBondID, msg.GetBondId()), - sdk.NewAttribute(types.AttributeKeyPayload, msg.Payload.String()), + sdk.NewAttribute(types.AttributeKeyPayload, msg.Payload.Record.Id), ), sdk.NewEvent( sdk.EventTypeMessage, @@ -273,7 +273,6 @@ func (m msgServer) ReAssociateRecords(c context.Context, msg *types.MsgReAssocia if err != nil { return nil, err } - ctx.EventManager().EmitEvents(sdk.Events{ sdk.NewEvent( types.EventTypeReAssociateRecords, diff --git a/x/nameservice/types/attributes.go b/x/nameservice/types/attributes.go new file mode 100644 index 00000000..00a7a785 --- /dev/null +++ b/x/nameservice/types/attributes.go @@ -0,0 +1,5 @@ +package types + +type Attributes interface { + GetType() string +} diff --git a/x/nameservice/types/attributes.pb.go b/x/nameservice/types/attributes.pb.go new file mode 100644 index 00000000..f843cdc5 --- /dev/null +++ b/x/nameservice/types/attributes.pb.go @@ -0,0 +1,1309 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: vulcanize/nameservice/v1beta1/attributes.proto + +package types + +import ( + fmt "fmt" + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/gogo/protobuf/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type ServiceProviderRegistration struct { + BondId string `protobuf:"bytes,1,opt,name=bond_id,json=bondId,proto3" json:"bond_id,omitempty" json:"bondId" yaml:"bondId"` + LaconicId string `protobuf:"bytes,2,opt,name=laconic_id,json=laconicId,proto3" json:"laconic_id,omitempty" json:"laconicId" yaml:"laconicId"` + X500 *X500 `protobuf:"bytes,3,opt,name=x500,proto3" json:"x500,omitempty" json:"x500" yaml:"x500"` + Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty" json:"type" yaml:"type"` +} + +func (m *ServiceProviderRegistration) Reset() { *m = ServiceProviderRegistration{} } +func (m *ServiceProviderRegistration) String() string { return proto.CompactTextString(m) } +func (*ServiceProviderRegistration) ProtoMessage() {} +func (*ServiceProviderRegistration) Descriptor() ([]byte, []int) { + return fileDescriptor_7f2d1895d048a86a, []int{0} +} +func (m *ServiceProviderRegistration) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ServiceProviderRegistration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ServiceProviderRegistration.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ServiceProviderRegistration) XXX_Merge(src proto.Message) { + xxx_messageInfo_ServiceProviderRegistration.Merge(m, src) +} +func (m *ServiceProviderRegistration) XXX_Size() int { + return m.Size() +} +func (m *ServiceProviderRegistration) XXX_DiscardUnknown() { + xxx_messageInfo_ServiceProviderRegistration.DiscardUnknown(m) +} + +var xxx_messageInfo_ServiceProviderRegistration proto.InternalMessageInfo + +func (m *ServiceProviderRegistration) GetBondId() string { + if m != nil { + return m.BondId + } + return "" +} + +func (m *ServiceProviderRegistration) GetLaconicId() string { + if m != nil { + return m.LaconicId + } + return "" +} + +func (m *ServiceProviderRegistration) GetX500() *X500 { + if m != nil { + return m.X500 + } + return nil +} + +func (m *ServiceProviderRegistration) GetType() string { + if m != nil { + return m.Type + } + return "" +} + +type X500 struct { + CommonName string `protobuf:"bytes,1,opt,name=common_name,json=commonName,proto3" json:"common_name,omitempty" json:"commonName" yaml:"commonName"` + OrganizationUnit string `protobuf:"bytes,2,opt,name=organization_unit,json=organizationUnit,proto3" json:"organization_unit,omitempty" json:"organizationUnit" yaml:"organizationUnit"` + OrganizationName string `protobuf:"bytes,3,opt,name=organization_name,json=organizationName,proto3" json:"organization_name,omitempty" json:"organizationName" yaml:"organizationName"` + LocalityName string `protobuf:"bytes,4,opt,name=locality_name,json=localityName,proto3" json:"locality_name,omitempty" json:"localityName" yaml:"localityName"` + StateName string `protobuf:"bytes,5,opt,name=state_name,json=stateName,proto3" json:"state_name,omitempty" json:"stateName" yaml:"stateName"` + Country string `protobuf:"bytes,6,opt,name=country,proto3" json:"country,omitempty" json:"country" yaml:"country"` +} + +func (m *X500) Reset() { *m = X500{} } +func (m *X500) String() string { return proto.CompactTextString(m) } +func (*X500) ProtoMessage() {} +func (*X500) Descriptor() ([]byte, []int) { + return fileDescriptor_7f2d1895d048a86a, []int{1} +} +func (m *X500) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *X500) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_X500.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *X500) XXX_Merge(src proto.Message) { + xxx_messageInfo_X500.Merge(m, src) +} +func (m *X500) XXX_Size() int { + return m.Size() +} +func (m *X500) XXX_DiscardUnknown() { + xxx_messageInfo_X500.DiscardUnknown(m) +} + +var xxx_messageInfo_X500 proto.InternalMessageInfo + +func (m *X500) GetCommonName() string { + if m != nil { + return m.CommonName + } + return "" +} + +func (m *X500) GetOrganizationUnit() string { + if m != nil { + return m.OrganizationUnit + } + return "" +} + +func (m *X500) GetOrganizationName() string { + if m != nil { + return m.OrganizationName + } + return "" +} + +func (m *X500) GetLocalityName() string { + if m != nil { + return m.LocalityName + } + return "" +} + +func (m *X500) GetStateName() string { + if m != nil { + return m.StateName + } + return "" +} + +func (m *X500) GetCountry() string { + if m != nil { + return m.Country + } + return "" +} + +type WebsiteRegistrationRecord struct { + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty" json:"url" yaml:"url"` + RepoRegistrationRecordCid string `protobuf:"bytes,2,opt,name=repo_registration_record_cid,json=repoRegistrationRecordCid,proto3" json:"repo_registration_record_cid,omitempty" json:"repoRegistrationRecordCID" yaml:"repoRegistrationRecordCID"` + BuildArtifactCid string `protobuf:"bytes,3,opt,name=build_artifact_cid,json=buildArtifactCid,proto3" json:"build_artifact_cid,omitempty" json:"buildArtifactCID" yaml:"buildArtifactCID"` + TlsCertCid string `protobuf:"bytes,4,opt,name=tls_cert_cid,json=tlsCertCid,proto3" json:"tls_cert_cid,omitempty" json:"TLSCertCID" yaml:"TLSCertCID"` + Type string `protobuf:"bytes,5,opt,name=type,proto3" json:"type,omitempty" json:"type" yaml:"type"` +} + +func (m *WebsiteRegistrationRecord) Reset() { *m = WebsiteRegistrationRecord{} } +func (m *WebsiteRegistrationRecord) String() string { return proto.CompactTextString(m) } +func (*WebsiteRegistrationRecord) ProtoMessage() {} +func (*WebsiteRegistrationRecord) Descriptor() ([]byte, []int) { + return fileDescriptor_7f2d1895d048a86a, []int{2} +} +func (m *WebsiteRegistrationRecord) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WebsiteRegistrationRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_WebsiteRegistrationRecord.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *WebsiteRegistrationRecord) XXX_Merge(src proto.Message) { + xxx_messageInfo_WebsiteRegistrationRecord.Merge(m, src) +} +func (m *WebsiteRegistrationRecord) XXX_Size() int { + return m.Size() +} +func (m *WebsiteRegistrationRecord) XXX_DiscardUnknown() { + xxx_messageInfo_WebsiteRegistrationRecord.DiscardUnknown(m) +} + +var xxx_messageInfo_WebsiteRegistrationRecord proto.InternalMessageInfo + +func (m *WebsiteRegistrationRecord) GetUrl() string { + if m != nil { + return m.Url + } + return "" +} + +func (m *WebsiteRegistrationRecord) GetRepoRegistrationRecordCid() string { + if m != nil { + return m.RepoRegistrationRecordCid + } + return "" +} + +func (m *WebsiteRegistrationRecord) GetBuildArtifactCid() string { + if m != nil { + return m.BuildArtifactCid + } + return "" +} + +func (m *WebsiteRegistrationRecord) GetTlsCertCid() string { + if m != nil { + return m.TlsCertCid + } + return "" +} + +func (m *WebsiteRegistrationRecord) GetType() string { + if m != nil { + return m.Type + } + return "" +} + +func init() { + proto.RegisterType((*ServiceProviderRegistration)(nil), "vulcanize.nameservice.v1beta1.ServiceProviderRegistration") + proto.RegisterType((*X500)(nil), "vulcanize.nameservice.v1beta1.X500") + proto.RegisterType((*WebsiteRegistrationRecord)(nil), "vulcanize.nameservice.v1beta1.WebsiteRegistrationRecord") +} + +func init() { + proto.RegisterFile("vulcanize/nameservice/v1beta1/attributes.proto", fileDescriptor_7f2d1895d048a86a) +} + +var fileDescriptor_7f2d1895d048a86a = []byte{ + // 645 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0x4d, 0x4f, 0x14, 0x31, + 0x18, 0xc7, 0x59, 0x76, 0x81, 0x50, 0x30, 0xc1, 0x46, 0xe3, 0x22, 0xb2, 0x03, 0x4b, 0x0c, 0x24, + 0xc4, 0x99, 0x45, 0x42, 0x62, 0xf4, 0xc4, 0x8b, 0x89, 0x9b, 0x18, 0x43, 0x0a, 0x46, 0xe3, 0x65, + 0xec, 0x74, 0xea, 0x5a, 0x33, 0x3b, 0x25, 0x9d, 0xce, 0x86, 0xf5, 0x03, 0x78, 0xf6, 0x43, 0xf8, + 0x01, 0xfc, 0x18, 0x1e, 0x39, 0x7a, 0x9a, 0x18, 0x38, 0x79, 0x9d, 0x4f, 0x60, 0xda, 0xce, 0xcc, + 0x76, 0xd9, 0x40, 0xbc, 0x3d, 0xfd, 0x3f, 0xff, 0xe7, 0xf7, 0xf4, 0x1d, 0xb8, 0x83, 0x34, 0x22, + 0x38, 0x66, 0x5f, 0xa9, 0x17, 0xe3, 0x3e, 0x4d, 0xa8, 0x18, 0x30, 0x42, 0xbd, 0xc1, 0x4e, 0x40, + 0x25, 0xde, 0xf1, 0xb0, 0x94, 0x82, 0x05, 0xa9, 0xa4, 0x89, 0x7b, 0x26, 0xb8, 0xe4, 0x70, 0xb5, + 0xf2, 0xbb, 0x96, 0xdf, 0x2d, 0xfc, 0x0f, 0xef, 0xf5, 0x78, 0x8f, 0x6b, 0xa7, 0xa7, 0x22, 0x53, + 0xd4, 0xfe, 0x31, 0x0d, 0x56, 0x4e, 0x8c, 0xf3, 0x58, 0xf0, 0x01, 0x0b, 0xa9, 0x40, 0xb4, 0xc7, + 0x12, 0x29, 0xb0, 0x64, 0x3c, 0x86, 0xcf, 0xc0, 0x5c, 0xc0, 0xe3, 0xd0, 0x67, 0x61, 0xb3, 0xb6, + 0x56, 0xdb, 0x9a, 0x3f, 0x70, 0xf2, 0xcc, 0x59, 0xf9, 0x92, 0xf0, 0xf8, 0x79, 0x5b, 0x25, 0xba, + 0x61, 0x7b, 0x6d, 0x88, 0xfb, 0x51, 0x35, 0x42, 0xb3, 0x26, 0x80, 0x47, 0x00, 0x44, 0x98, 0xf0, + 0x98, 0x11, 0x55, 0x3c, 0xad, 0x8b, 0x1f, 0xe7, 0x99, 0xb3, 0x6e, 0x8a, 0x8b, 0xdc, 0xa8, 0x7e, + 0x24, 0xa0, 0xf9, 0x2a, 0x86, 0xa7, 0xa0, 0x71, 0xbe, 0xd7, 0xe9, 0x34, 0xeb, 0x6b, 0xb5, 0xad, + 0x85, 0xa7, 0x1b, 0xee, 0xad, 0x6b, 0x74, 0xdf, 0xef, 0x75, 0x3a, 0x07, 0x2b, 0x79, 0xe6, 0x3c, + 0x30, 0x4d, 0x54, 0x69, 0xc9, 0xd7, 0x31, 0xd2, 0x34, 0xe8, 0x81, 0x86, 0x1c, 0x9e, 0xd1, 0x66, + 0x43, 0xcf, 0xca, 0x2a, 0x50, 0x6a, 0x59, 0xa0, 0x63, 0xa4, 0x8d, 0xed, 0xbf, 0x75, 0xd0, 0x50, + 0x70, 0xf8, 0x0a, 0x2c, 0x10, 0xde, 0xef, 0xf3, 0xd8, 0x57, 0xfd, 0x8b, 0x3d, 0xd9, 0xcc, 0x33, + 0x67, 0xc3, 0x00, 0x4c, 0xf2, 0x0d, 0xee, 0x57, 0x18, 0x4b, 0x41, 0x60, 0x34, 0x80, 0x1f, 0xc1, + 0x5d, 0x2e, 0x7a, 0x6a, 0x2d, 0x7a, 0xa7, 0xfd, 0x34, 0x66, 0xb2, 0xd8, 0xa6, 0xdd, 0x3c, 0x73, + 0x3c, 0xc3, 0xb3, 0x2d, 0x6f, 0x63, 0x26, 0x4b, 0xea, 0x84, 0x8e, 0x96, 0xae, 0x4b, 0x13, 0x1d, + 0xf4, 0x8c, 0xeb, 0xb7, 0x75, 0xb0, 0xe7, 0x3d, 0xa1, 0x8f, 0x77, 0xd0, 0x6b, 0x38, 0x06, 0x77, + 0x22, 0x4e, 0x70, 0xc4, 0xe4, 0xd0, 0xd0, 0xcd, 0x86, 0x6e, 0xe7, 0x99, 0xb3, 0x59, 0x1c, 0x73, + 0x91, 0xb6, 0xc9, 0x63, 0x1a, 0x5a, 0xb4, 0x87, 0xea, 0xd6, 0x24, 0x12, 0x4b, 0x6a, 0x70, 0x33, + 0xd7, 0x6f, 0x8d, 0xce, 0xd9, 0xac, 0x91, 0x80, 0xe6, 0xab, 0x18, 0xbe, 0x00, 0x73, 0x84, 0xa7, + 0xb1, 0x14, 0xc3, 0xe6, 0xac, 0x46, 0xac, 0xe7, 0x99, 0xb3, 0x5a, 0x9e, 0x90, 0x4e, 0x8c, 0x8e, + 0xc7, 0x0c, 0x51, 0x59, 0xd1, 0xfe, 0x59, 0x07, 0xcb, 0xef, 0x68, 0x90, 0x30, 0x49, 0xed, 0xa7, + 0x80, 0x28, 0xe1, 0x22, 0x84, 0xdb, 0xa0, 0x9e, 0x8a, 0xa8, 0x38, 0xf8, 0xe5, 0x3c, 0x73, 0xee, + 0x1b, 0x6c, 0x2a, 0xa2, 0x12, 0xa9, 0x42, 0xa4, 0x5c, 0xf0, 0x5b, 0x0d, 0x3c, 0x12, 0xf4, 0x8c, + 0xfb, 0xc2, 0x02, 0xf9, 0x42, 0x93, 0x7c, 0x52, 0x3d, 0x8b, 0x97, 0x79, 0xe6, 0xec, 0x1b, 0x8c, + 0x72, 0x4f, 0x76, 0x3d, 0xec, 0x1e, 0x95, 0xf0, 0x9b, 0x0d, 0x68, 0xf9, 0x86, 0x1c, 0x0b, 0x21, + 0x06, 0x30, 0x48, 0x59, 0x14, 0xfa, 0x58, 0x48, 0xf6, 0x09, 0x13, 0xa9, 0xbb, 0x4f, 0xdc, 0x05, + 0xed, 0xd9, 0x2f, 0x2c, 0x56, 0xd3, 0x09, 0x1d, 0x2d, 0x8d, 0x4b, 0x2c, 0x84, 0x5d, 0xb0, 0x28, + 0xa3, 0xc4, 0x27, 0x54, 0x18, 0x78, 0xe3, 0xfa, 0xd3, 0x38, 0x7d, 0x7d, 0x72, 0x48, 0x85, 0x8d, + 0xb5, 0x14, 0x04, 0x64, 0x94, 0xe8, 0x01, 0x0b, 0xab, 0xe7, 0x39, 0xf3, 0x9f, 0xcf, 0xf3, 0xa0, + 0xfb, 0xeb, 0xb2, 0x55, 0xbb, 0xb8, 0x6c, 0xd5, 0xfe, 0x5c, 0xb6, 0x6a, 0xdf, 0xaf, 0x5a, 0x53, + 0x17, 0x57, 0xad, 0xa9, 0xdf, 0x57, 0xad, 0xa9, 0x0f, 0x5e, 0x8f, 0xc9, 0xcf, 0x69, 0xe0, 0x12, + 0xde, 0xf7, 0x08, 0x15, 0xe4, 0x09, 0xe3, 0x5e, 0xf1, 0xbb, 0x84, 0xde, 0xf9, 0xd8, 0xc7, 0xaa, + 0x48, 0x49, 0x30, 0xab, 0xff, 0xc5, 0xdd, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x80, 0xa1, 0x70, + 0x3a, 0x7e, 0x05, 0x00, 0x00, +} + +func (m *ServiceProviderRegistration) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ServiceProviderRegistration) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ServiceProviderRegistration) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Type) > 0 { + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x22 + } + if m.X500 != nil { + { + size, err := m.X500.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintAttributes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.LaconicId) > 0 { + i -= len(m.LaconicId) + copy(dAtA[i:], m.LaconicId) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.LaconicId))) + i-- + dAtA[i] = 0x12 + } + if len(m.BondId) > 0 { + i -= len(m.BondId) + copy(dAtA[i:], m.BondId) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.BondId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *X500) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *X500) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *X500) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Country) > 0 { + i -= len(m.Country) + copy(dAtA[i:], m.Country) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.Country))) + i-- + dAtA[i] = 0x32 + } + if len(m.StateName) > 0 { + i -= len(m.StateName) + copy(dAtA[i:], m.StateName) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.StateName))) + i-- + dAtA[i] = 0x2a + } + if len(m.LocalityName) > 0 { + i -= len(m.LocalityName) + copy(dAtA[i:], m.LocalityName) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.LocalityName))) + i-- + dAtA[i] = 0x22 + } + if len(m.OrganizationName) > 0 { + i -= len(m.OrganizationName) + copy(dAtA[i:], m.OrganizationName) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.OrganizationName))) + i-- + dAtA[i] = 0x1a + } + if len(m.OrganizationUnit) > 0 { + i -= len(m.OrganizationUnit) + copy(dAtA[i:], m.OrganizationUnit) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.OrganizationUnit))) + i-- + dAtA[i] = 0x12 + } + if len(m.CommonName) > 0 { + i -= len(m.CommonName) + copy(dAtA[i:], m.CommonName) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.CommonName))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WebsiteRegistrationRecord) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WebsiteRegistrationRecord) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WebsiteRegistrationRecord) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Type) > 0 { + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x2a + } + if len(m.TlsCertCid) > 0 { + i -= len(m.TlsCertCid) + copy(dAtA[i:], m.TlsCertCid) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.TlsCertCid))) + i-- + dAtA[i] = 0x22 + } + if len(m.BuildArtifactCid) > 0 { + i -= len(m.BuildArtifactCid) + copy(dAtA[i:], m.BuildArtifactCid) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.BuildArtifactCid))) + i-- + dAtA[i] = 0x1a + } + if len(m.RepoRegistrationRecordCid) > 0 { + i -= len(m.RepoRegistrationRecordCid) + copy(dAtA[i:], m.RepoRegistrationRecordCid) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.RepoRegistrationRecordCid))) + i-- + dAtA[i] = 0x12 + } + if len(m.Url) > 0 { + i -= len(m.Url) + copy(dAtA[i:], m.Url) + i = encodeVarintAttributes(dAtA, i, uint64(len(m.Url))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintAttributes(dAtA []byte, offset int, v uint64) int { + offset -= sovAttributes(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *ServiceProviderRegistration) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.BondId) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + l = len(m.LaconicId) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + if m.X500 != nil { + l = m.X500.Size() + n += 1 + l + sovAttributes(uint64(l)) + } + l = len(m.Type) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + return n +} + +func (m *X500) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.CommonName) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + l = len(m.OrganizationUnit) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + l = len(m.OrganizationName) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + l = len(m.LocalityName) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + l = len(m.StateName) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + l = len(m.Country) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + return n +} + +func (m *WebsiteRegistrationRecord) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Url) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + l = len(m.RepoRegistrationRecordCid) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + l = len(m.BuildArtifactCid) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + l = len(m.TlsCertCid) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + l = len(m.Type) + if l > 0 { + n += 1 + l + sovAttributes(uint64(l)) + } + return n +} + +func sovAttributes(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozAttributes(x uint64) (n int) { + return sovAttributes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *ServiceProviderRegistration) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ServiceProviderRegistration: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ServiceProviderRegistration: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BondId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BondId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LaconicId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.LaconicId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field X500", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.X500 == nil { + m.X500 = &X500{} + } + if err := m.X500.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipAttributes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthAttributes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *X500) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: X500: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: X500: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CommonName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CommonName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationUnit", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationUnit = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrganizationName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrganizationName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LocalityName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.LocalityName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StateName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StateName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Country", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Country = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipAttributes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthAttributes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WebsiteRegistrationRecord) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WebsiteRegistrationRecord: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WebsiteRegistrationRecord: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Url", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Url = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RepoRegistrationRecordCid", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RepoRegistrationRecordCid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BuildArtifactCid", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BuildArtifactCid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TlsCertCid", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TlsCertCid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAttributes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthAttributes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthAttributes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipAttributes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthAttributes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipAttributes(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAttributes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAttributes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowAttributes + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthAttributes + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupAttributes + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthAttributes + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthAttributes = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowAttributes = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupAttributes = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/nameservice/types/codec.go b/x/nameservice/types/codec.go index fc97b989..5b748fbd 100644 --- a/x/nameservice/types/codec.go +++ b/x/nameservice/types/codec.go @@ -38,6 +38,18 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgDissociateRecords{}, &MsgReAssociateRecords{}, ) + + registry.RegisterInterface( + "vulcanize.nameservice.v1beta1.ServiceProvideRegistration", + (*Attributes)(nil), + &ServiceProviderRegistration{}, + ) + + registry.RegisterInterface( + "vulcanize.nameservice.v1beta1.WebsiteRegistrationRecord", + (*Attributes)(nil), + &WebsiteRegistrationRecord{}, + ) msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) } diff --git a/x/nameservice/types/nameservice.pb.go b/x/nameservice/types/nameservice.pb.go index a9c1cfba..9ea2d928 100644 --- a/x/nameservice/types/nameservice.pb.go +++ b/x/nameservice/types/nameservice.pb.go @@ -5,6 +5,7 @@ package types import ( fmt "fmt" + types1 "github.com/cosmos/cosmos-sdk/codec/types" types "github.com/cosmos/cosmos-sdk/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" @@ -156,14 +157,15 @@ func (m *Params) GetAuthorityAuctionMinimumBid() types.Coin { // Params defines the nameservice module records type Record struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" json:"id" yaml:"id"` - BondId string `protobuf:"bytes,2,opt,name=bond_id,json=bondId,proto3" json:"bond_id,omitempty" json:"bondId" yaml:"bondId"` - CreateTime string `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty" json:"createTime" yaml:"createTime"` - ExpiryTime string `protobuf:"bytes,4,opt,name=expiry_time,json=expiryTime,proto3" json:"expiry_time,omitempty" json:"expiryTime" yaml:"expiryTime"` - Deleted bool `protobuf:"varint,5,opt,name=deleted,proto3" json:"deleted,omitempty"` - Owners []string `protobuf:"bytes,6,rep,name=owners,proto3" json:"owners,omitempty" json:"owners" yaml:"owners"` - Attributes string `protobuf:"bytes,7,opt,name=attributes,proto3" json:"attributes,omitempty" json:"attributes" yaml:"attributes"` - Names []string `protobuf:"bytes,8,rep,name=names,proto3" json:"names,omitempty" json:"names" yaml:"names"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" json:"id" yaml:"id"` + BondId string `protobuf:"bytes,2,opt,name=bond_id,json=bondId,proto3" json:"bond_id,omitempty" json:"bondId" yaml:"bondId"` + CreateTime string `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty" json:"createTime" yaml:"createTime"` + ExpiryTime string `protobuf:"bytes,4,opt,name=expiry_time,json=expiryTime,proto3" json:"expiry_time,omitempty" json:"expiryTime" yaml:"expiryTime"` + Deleted bool `protobuf:"varint,5,opt,name=deleted,proto3" json:"deleted,omitempty"` + Owners []string `protobuf:"bytes,6,rep,name=owners,proto3" json:"owners,omitempty" json:"owners" yaml:"owners"` + Attributes *types1.Any `protobuf:"bytes,7,opt,name=attributes,proto3" json:"attributes,omitempty" json:"attributes" yaml:"attributes"` + Names []string `protobuf:"bytes,8,rep,name=names,proto3" json:"names,omitempty" json:"names" yaml:"names"` + Type string `protobuf:"bytes,9,opt,name=type,proto3" json:"type,omitempty" json:"types" yaml:"types"` } func (m *Record) Reset() { *m = Record{} } @@ -199,7 +201,7 @@ func (m *Record) XXX_DiscardUnknown() { var xxx_messageInfo_Record proto.InternalMessageInfo -func (m *Record) GetID() string { +func (m *Record) GetId() string { if m != nil { return m.Id } @@ -241,11 +243,11 @@ func (m *Record) GetOwners() []string { return nil } -func (m *Record) GetAttributes() string { +func (m *Record) GetAttributes() *types1.Any { if m != nil { return m.Attributes } - return "" + return nil } func (m *Record) GetNames() []string { @@ -255,6 +257,13 @@ func (m *Record) GetNames() []string { return nil } +func (m *Record) GetType() string { + if m != nil { + return m.Type + } + return "" +} + // AuthorityEntry defines the nameservice module AuthorityEntries type AuthorityEntry struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` @@ -772,90 +781,92 @@ func init() { } var fileDescriptor_c2009c2df775dbad = []byte{ - // 1325 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0xdd, 0x6e, 0x1b, 0xc5, - 0x17, 0xcf, 0xc6, 0x89, 0x13, 0x4f, 0x9a, 0xfc, 0xff, 0x1a, 0xd2, 0x76, 0x13, 0xa8, 0x37, 0x18, - 0x55, 0x6d, 0x55, 0xe2, 0x55, 0xe9, 0x45, 0xf9, 0x10, 0x42, 0xd9, 0xa4, 0x4d, 0x2d, 0x04, 0x84, - 0x69, 0x6f, 0xe0, 0xc6, 0xcc, 0xee, 0x4e, 0xed, 0xa1, 0xde, 0x1d, 0x6b, 0x77, 0x36, 0xd4, 0x70, - 0xc5, 0x1b, 0x54, 0xe2, 0xa6, 0x17, 0x88, 0x17, 0x00, 0x89, 0xc7, 0xa0, 0x97, 0xbd, 0x44, 0x48, - 0x18, 0xd4, 0xbe, 0x81, 0x9f, 0x00, 0xed, 0x7c, 0xec, 0x97, 0xed, 0x3a, 0x6a, 0xef, 0xf6, 0x9c, - 0xdf, 0x39, 0x67, 0x7e, 0x73, 0xe6, 0x9c, 0x33, 0xb3, 0xc0, 0x3e, 0x4d, 0x06, 0x1e, 0x0e, 0xe9, - 0xf7, 0xc4, 0x0e, 0x71, 0x40, 0x62, 0x12, 0x9d, 0x52, 0x8f, 0xd8, 0xa7, 0x37, 0x5c, 0xc2, 0xf1, - 0x8d, 0xa2, 0xae, 0x3d, 0x8c, 0x18, 0x67, 0xf0, 0x52, 0xe6, 0xd0, 0x2e, 0x82, 0xca, 0x61, 0xb7, - 0xd9, 0x63, 0xac, 0x37, 0x20, 0xb6, 0x30, 0x76, 0x93, 0x07, 0xb6, 0x9f, 0x44, 0x98, 0x53, 0x16, - 0x4a, 0xf7, 0x5d, 0xab, 0x8a, 0x73, 0x1a, 0x90, 0x98, 0xe3, 0x60, 0xa8, 0x0c, 0xb6, 0x7b, 0xac, - 0xc7, 0xc4, 0xa7, 0x9d, 0x7e, 0x29, 0x6d, 0xd3, 0x63, 0x71, 0xc0, 0x62, 0xdb, 0xc5, 0x71, 0x4e, - 0xce, 0x63, 0x54, 0x85, 0x6d, 0xfd, 0xbd, 0x09, 0xea, 0x27, 0x38, 0xc2, 0x41, 0x0c, 0x29, 0xd8, - 0x88, 0x88, 0xc7, 0x22, 0xbf, 0x1b, 0x91, 0x90, 0x9b, 0xc6, 0x9e, 0x71, 0x75, 0xe3, 0xbd, 0x9d, - 0xb6, 0x0c, 0xd0, 0x4e, 0x03, 0x68, 0xb2, 0xed, 0x43, 0x46, 0x43, 0x67, 0xff, 0xe9, 0xd8, 0x5a, - 0x9a, 0x8c, 0xad, 0xcb, 0xdf, 0xc6, 0x2c, 0xfc, 0xb0, 0x55, 0xf0, 0x6d, 0xed, 0x8d, 0x70, 0x30, - 0x28, 0xab, 0x10, 0x90, 0x12, 0x22, 0x21, 0x87, 0x8f, 0x0d, 0xb0, 0x5d, 0x00, 0xbb, 0x7a, 0xaf, - 0xe6, 0xb2, 0x5a, 0x54, 0x6e, 0xb6, 0xad, 0x37, 0xdb, 0x3e, 0x52, 0x06, 0xce, 0xa1, 0x5a, 0xf4, - 0xd6, 0xd4, 0xa2, 0x59, 0x90, 0x19, 0xab, 0xe7, 0xd8, 0x93, 0x7f, 0x2c, 0x03, 0xc1, 0x9c, 0x8a, - 0x0e, 0x0c, 0x13, 0xb0, 0x85, 0x13, 0xde, 0x67, 0x11, 0xe5, 0x23, 0x99, 0x80, 0xda, 0xa2, 0x04, - 0xdc, 0x54, 0x5c, 0xae, 0x4b, 0x2e, 0x65, 0x77, 0xcd, 0xa2, 0xa2, 0x45, 0x9b, 0x99, 0x42, 0x64, - 0xe2, 0x67, 0x03, 0x5c, 0x2c, 0x9b, 0xe4, 0xc9, 0x58, 0x59, 0x94, 0x8c, 0x8e, 0x22, 0xf0, 0xf1, - 0x2c, 0x02, 0x53, 0xf9, 0x98, 0x07, 0x8b, 0x94, 0x9c, 0x2f, 0xd1, 0xca, 0xb2, 0xf2, 0xc4, 0x00, - 0x17, 0x72, 0xbf, 0x5e, 0x84, 0x3d, 0xd2, 0x1d, 0x92, 0x88, 0x32, 0xdf, 0x5c, 0x5d, 0xc4, 0xee, - 0x58, 0xb1, 0xfb, 0xa8, 0xca, 0xae, 0x18, 0x66, 0x9a, 0x5c, 0x09, 0x15, 0xdc, 0xb6, 0x33, 0xf0, - 0x38, 0xc5, 0x4e, 0x04, 0x04, 0x7f, 0x34, 0xc0, 0x4e, 0xee, 0x85, 0x13, 0x2f, 0x5d, 0xb4, 0x4b, - 0x42, 0xec, 0x0e, 0x88, 0x6f, 0xd6, 0xf7, 0x8c, 0xab, 0xeb, 0xce, 0xed, 0xc9, 0xd8, 0x3a, 0xa8, - 0x2e, 0x5f, 0x31, 0x9d, 0x66, 0x50, 0x35, 0x40, 0xf9, 0x09, 0x1d, 0x48, 0xe8, 0xb6, 0x44, 0xe0, - 0x1f, 0x06, 0x98, 0xe1, 0xe7, 0xb1, 0x20, 0xa0, 0x3c, 0xce, 0x0f, 0x72, 0x6d, 0x51, 0xaa, 0xba, - 0x2a, 0x55, 0xf7, 0xe6, 0x71, 0xad, 0x86, 0x9c, 0x4f, 0x7a, 0xca, 0x52, 0xa4, 0xd0, 0xaa, 0xee, - 0xe0, 0x50, 0x9a, 0x65, 0x07, 0x3d, 0x7b, 0x27, 0x11, 0x39, 0x25, 0x78, 0x50, 0xd8, 0xc9, 0xfa, - 0x6b, 0xef, 0xa4, 0x1a, 0x72, 0xfe, 0x4e, 0xa6, 0x2c, 0x67, 0xef, 0x04, 0x49, 0xb3, 0x6c, 0x27, - 0xbf, 0x1a, 0xe0, 0xad, 0x79, 0x69, 0xe9, 0x3e, 0x20, 0xc4, 0x6c, 0x2c, 0xea, 0xeb, 0x2f, 0xd4, - 0x1e, 0x8e, 0x5f, 0x7e, 0x1a, 0x69, 0xb0, 0x45, 0xe7, 0x20, 0x6c, 0xd0, 0xce, 0xec, 0xec, 0xdf, - 0x21, 0x64, 0x0e, 0x5b, 0xb9, 0x75, 0xc1, 0x16, 0xbc, 0x36, 0xdb, 0x3c, 0xd8, 0xa2, 0x5c, 0xcf, - 0x61, 0x2b, 0x33, 0x9c, 0xb2, 0xfd, 0xdd, 0x00, 0x97, 0xa6, 0x9d, 0x03, 0x1a, 0xd2, 0x20, 0x09, - 0xba, 0x2e, 0xf5, 0xcd, 0x8d, 0x45, 0x74, 0xbf, 0x54, 0x74, 0x3b, 0xf3, 0xe8, 0x16, 0xa2, 0xcd, - 0xe7, 0x5b, 0x34, 0x42, 0xbb, 0x55, 0xc2, 0x9f, 0x49, 0xd4, 0xa1, 0x7e, 0xeb, 0x59, 0x0d, 0xd4, - 0x91, 0x98, 0xf6, 0xf0, 0x0a, 0x58, 0xa6, 0xbe, 0xb8, 0xd6, 0x1a, 0xce, 0xc5, 0xc9, 0xd8, 0x7a, - 0x43, 0x32, 0xc8, 0x97, 0x49, 0x63, 0x2d, 0x53, 0x1f, 0xbe, 0x0f, 0xd6, 0x5c, 0x16, 0xfa, 0x5d, - 0xea, 0x8b, 0xfb, 0xa8, 0xe1, 0x58, 0x93, 0xb1, 0xf5, 0xa6, 0xb4, 0x4e, 0x81, 0x4e, 0xe6, 0xa1, - 0x24, 0x54, 0x97, 0x1f, 0xf0, 0x2e, 0xd8, 0xf0, 0x22, 0x82, 0x39, 0xe9, 0xa6, 0xb7, 0xb3, 0xb8, - 0x41, 0x1a, 0xce, 0x95, 0xc9, 0xd8, 0x7a, 0x47, 0x7a, 0x4b, 0xf0, 0x3e, 0x0d, 0xb2, 0xa3, 0x28, - 0x68, 0x10, 0xc8, 0x85, 0x34, 0x12, 0x79, 0x34, 0xa4, 0xd1, 0x48, 0x46, 0x5a, 0xa9, 0x46, 0x92, - 0x60, 0x31, 0x52, 0x41, 0x83, 0x40, 0x2e, 0x40, 0x13, 0xac, 0xf9, 0x64, 0x40, 0x38, 0x91, 0x23, - 0x7b, 0x1d, 0x69, 0x11, 0xde, 0x02, 0x75, 0xf6, 0x5d, 0x48, 0xa2, 0xd8, 0xac, 0xef, 0xd5, 0xca, - 0xdb, 0x94, 0x7a, 0x1d, 0x5a, 0x49, 0x48, 0x99, 0xc3, 0x63, 0x00, 0x30, 0xe7, 0x11, 0x75, 0x13, - 0x4e, 0x62, 0x31, 0xdd, 0x4a, 0xdc, 0x72, 0x2c, 0x3b, 0xc0, 0x5c, 0x83, 0x0a, 0xae, 0xf0, 0x26, - 0x58, 0x15, 0x6f, 0x21, 0x73, 0x5d, 0x10, 0xb8, 0x34, 0x19, 0x5b, 0x3b, 0x32, 0x86, 0x50, 0x6b, - 0x77, 0x29, 0x20, 0x69, 0xdb, 0xea, 0x83, 0xad, 0x03, 0x7d, 0xe0, 0xb7, 0x43, 0x1e, 0x8d, 0x20, - 0x04, 0x2b, 0x29, 0x24, 0xcf, 0x16, 0x89, 0x6f, 0xe8, 0x80, 0x55, 0x92, 0x82, 0xea, 0x49, 0xf1, - 0x6e, 0xfb, 0xa5, 0xcf, 0xaf, 0xf6, 0xe7, 0x38, 0x20, 0x59, 0x54, 0x24, 0x5d, 0x5b, 0x7f, 0xd5, - 0xc0, 0x66, 0x09, 0x80, 0x5f, 0x81, 0xff, 0x8b, 0x1c, 0x74, 0x87, 0x89, 0x3b, 0xa0, 0x5e, 0xf7, - 0x21, 0x19, 0xa9, 0x8a, 0xb2, 0xf3, 0x87, 0x80, 0xb0, 0x38, 0x11, 0x06, 0x9f, 0x92, 0x51, 0x29, - 0x89, 0xb9, 0x16, 0x6d, 0x95, 0x15, 0xf0, 0x04, 0x6c, 0xca, 0xd0, 0xd8, 0xf7, 0x23, 0x12, 0xc7, - 0xaa, 0xf6, 0xae, 0x4f, 0xc6, 0xd6, 0x95, 0x42, 0xdc, 0x03, 0x89, 0x96, 0xa2, 0x6a, 0x1d, 0x3a, - 0x57, 0x14, 0xe1, 0x05, 0x50, 0xef, 0x13, 0xda, 0xeb, 0xcb, 0xa7, 0xcc, 0x0a, 0x52, 0x52, 0xaa, - 0x8f, 0x39, 0xe6, 0x49, 0x2c, 0xcb, 0x0a, 0x29, 0x09, 0x1e, 0x01, 0xa0, 0xfb, 0x8b, 0xca, 0x62, - 0x69, 0x38, 0x97, 0x27, 0x63, 0xeb, 0x6d, 0xdd, 0xaa, 0x02, 0xeb, 0x1c, 0xe5, 0x6d, 0xa9, 0x15, - 0xa8, 0xa1, 0xbf, 0x4b, 0xdd, 0x53, 0x9f, 0xd9, 0x3d, 0x47, 0xa5, 0xee, 0x39, 0xca, 0xbb, 0x67, - 0x50, 0xae, 0x79, 0x79, 0x6b, 0xee, 0x4e, 0xdd, 0x35, 0xf7, 0xf5, 0xc3, 0xd7, 0xb1, 0xd5, 0x2c, - 0x39, 0x4b, 0x4f, 0x3c, 0x4e, 0x2f, 0x8f, 0x42, 0x5f, 0xb4, 0xbe, 0x01, 0x8d, 0xf4, 0x6c, 0xe7, - 0x57, 0xd0, 0x27, 0xe5, 0x0a, 0xba, 0x76, 0x86, 0x0a, 0x92, 0x93, 0x46, 0x97, 0xcf, 0x2f, 0x06, - 0x00, 0xb9, 0x16, 0xde, 0x01, 0xf5, 0x01, 0xe6, 0x24, 0xd6, 0x4f, 0xeb, 0xf6, 0x99, 0x03, 0x0a, - 0x8e, 0x48, 0x79, 0xc3, 0xbb, 0x60, 0xad, 0x4f, 0x63, 0xce, 0x04, 0xb3, 0xda, 0x2b, 0x04, 0xd2, - 0xee, 0xad, 0x0f, 0xc0, 0xff, 0x2a, 0x18, 0xdc, 0xca, 0x87, 0xa4, 0x98, 0x85, 0x79, 0x0d, 0x2d, - 0x17, 0x6b, 0xa8, 0x15, 0x81, 0xc6, 0x3d, 0xda, 0x0b, 0x31, 0x4f, 0x22, 0x02, 0xaf, 0x83, 0x5a, - 0x4c, 0x7b, 0xaa, 0x11, 0x76, 0x26, 0x63, 0xeb, 0xbc, 0x3c, 0x90, 0x98, 0xf6, 0xf4, 0x49, 0xa4, - 0x9f, 0x28, 0xb5, 0x4a, 0xeb, 0x63, 0x98, 0xb8, 0xa2, 0x73, 0xa6, 0xa6, 0xeb, 0x30, 0x71, 0x0b, - 0x1d, 0xa3, 0x24, 0x54, 0x57, 0x1f, 0x3f, 0x2d, 0x83, 0x2d, 0x67, 0xc0, 0xbc, 0x87, 0x87, 0x7d, - 0x1c, 0xf6, 0xc8, 0x3d, 0xc2, 0x0b, 0xf4, 0xd2, 0xc5, 0x6b, 0x59, 0x89, 0x9b, 0x60, 0x4d, 0xbe, - 0xf1, 0x63, 0x91, 0xa3, 0x06, 0xd2, 0x22, 0xdc, 0x05, 0xeb, 0xaa, 0x56, 0x63, 0xb3, 0x26, 0xa0, - 0x4c, 0x86, 0x3f, 0x80, 0x73, 0xba, 0x01, 0x5c, 0xea, 0xa7, 0xed, 0x91, 0xa6, 0x77, 0x7f, 0x41, - 0x7a, 0xd5, 0xa5, 0xe3, 0x50, 0xbf, 0x13, 0x3e, 0x60, 0xce, 0xb5, 0xfc, 0x97, 0x08, 0x67, 0x48, - 0x5c, 0xe9, 0x19, 0xa1, 0x42, 0x1b, 0x05, 0x09, 0xee, 0x81, 0x0d, 0x7d, 0x8f, 0x51, 0x12, 0x9b, - 0xab, 0x82, 0x5b, 0x51, 0x05, 0xb7, 0xf5, 0xb4, 0x14, 0xe3, 0x5a, 0x8f, 0xc3, 0xdf, 0x8c, 0x74, - 0x1e, 0x16, 0x29, 0x54, 0x1a, 0xd9, 0x78, 0xc5, 0x46, 0xbe, 0x0f, 0xb6, 0x5c, 0xea, 0xfb, 0x53, - 0x13, 0x69, 0x7f, 0x32, 0xb6, 0xae, 0xa9, 0x7e, 0x16, 0x78, 0x65, 0x24, 0x95, 0x95, 0x68, 0xb3, - 0x24, 0x3b, 0x9d, 0xa7, 0xcf, 0x9b, 0xc6, 0xb3, 0xe7, 0x4d, 0xe3, 0xdf, 0xe7, 0x4d, 0xe3, 0xf1, - 0x8b, 0xe6, 0xd2, 0xb3, 0x17, 0xcd, 0xa5, 0x3f, 0x5f, 0x34, 0x97, 0xbe, 0xb6, 0x7b, 0x94, 0xf7, - 0x13, 0xb7, 0xed, 0xb1, 0xc0, 0xf6, 0x48, 0xe4, 0xed, 0x53, 0x66, 0x0f, 0xb0, 0xc7, 0x42, 0xea, - 0xf9, 0xf6, 0xa3, 0xd2, 0x5f, 0x36, 0x1f, 0x0d, 0x49, 0xec, 0xd6, 0xc5, 0x48, 0xb8, 0xf9, 0x5f, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xe8, 0x01, 0x83, 0xe6, 0x8b, 0x0f, 0x00, 0x00, + // 1353 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x5b, 0x6f, 0x1b, 0xc5, + 0x17, 0xcf, 0xc6, 0x89, 0x13, 0x9f, 0x34, 0xf9, 0xff, 0x35, 0xa4, 0xed, 0x26, 0x50, 0x6f, 0x30, + 0xaa, 0xda, 0xaa, 0xc4, 0xab, 0xd2, 0x87, 0x72, 0x11, 0x42, 0xd9, 0xa4, 0x17, 0x0b, 0x01, 0x61, + 0xda, 0x17, 0x90, 0x90, 0x99, 0xdd, 0x9d, 0xda, 0x43, 0xbd, 0xbb, 0xd6, 0x5e, 0x42, 0x0d, 0x4f, + 0x7c, 0x83, 0x4a, 0xbc, 0x14, 0x09, 0xf1, 0x05, 0x40, 0xe2, 0x63, 0xd0, 0xc7, 0x3e, 0x22, 0x24, + 0x0c, 0x6a, 0xbf, 0x81, 0x3f, 0x01, 0xda, 0xb9, 0xec, 0xcd, 0x76, 0x1d, 0xb5, 0x6f, 0x7b, 0x6e, + 0xbf, 0xf9, 0xcd, 0x99, 0x73, 0xce, 0xcc, 0x82, 0x79, 0x92, 0x0c, 0x1c, 0xe2, 0xb3, 0xef, 0xa8, + 0xe9, 0x13, 0x8f, 0x46, 0x34, 0x3c, 0x61, 0x0e, 0x35, 0x4f, 0xae, 0xd9, 0x34, 0x26, 0xd7, 0x8a, + 0xba, 0xf6, 0x30, 0x0c, 0xe2, 0x00, 0x5d, 0xc8, 0x02, 0xda, 0x45, 0xa3, 0x0c, 0xd8, 0x6d, 0xf6, + 0x82, 0xa0, 0x37, 0xa0, 0x26, 0x77, 0xb6, 0x93, 0xfb, 0xa6, 0x9b, 0x84, 0x24, 0x66, 0x81, 0x2f, + 0xc2, 0x77, 0x8d, 0xaa, 0x3d, 0x66, 0x1e, 0x8d, 0x62, 0xe2, 0x0d, 0xa5, 0xc3, 0x76, 0x2f, 0xe8, + 0x05, 0xfc, 0xd3, 0x4c, 0xbf, 0xa4, 0xb6, 0xe9, 0x04, 0x91, 0x17, 0x44, 0xa6, 0x4d, 0xa2, 0x9c, + 0x9c, 0x13, 0x30, 0x05, 0xbb, 0x53, 0x85, 0x25, 0xfe, 0x48, 0x98, 0x5a, 0x7f, 0x6f, 0x42, 0xfd, + 0x98, 0x84, 0xc4, 0x8b, 0x10, 0x83, 0x8d, 0x90, 0x3a, 0x41, 0xe8, 0x76, 0x43, 0xea, 0xc7, 0xba, + 0xb6, 0xa7, 0x5d, 0xde, 0x78, 0x67, 0xa7, 0x2d, 0xb0, 0xdb, 0x29, 0xb6, 0xda, 0x47, 0xfb, 0x30, + 0x60, 0xbe, 0xb5, 0xff, 0x64, 0x6c, 0x2c, 0x4d, 0xc6, 0xc6, 0xc5, 0x6f, 0xa2, 0xc0, 0x7f, 0xbf, + 0x55, 0x88, 0x6d, 0xed, 0x8d, 0x88, 0x37, 0x28, 0xab, 0x30, 0x08, 0x09, 0x53, 0x3f, 0x46, 0x8f, + 0x34, 0xd8, 0x2e, 0x18, 0xbb, 0x2a, 0x0d, 0xfa, 0xb2, 0x5c, 0x54, 0x10, 0x6e, 0x2b, 0xc2, 0xed, + 0x23, 0xe9, 0x60, 0x1d, 0xca, 0x45, 0x6f, 0x4c, 0x2d, 0x9a, 0x81, 0xcc, 0x58, 0x3d, 0xb7, 0x3d, + 0xfe, 0xc7, 0xd0, 0x30, 0xca, 0xa9, 0x28, 0x60, 0x94, 0xc0, 0x16, 0x49, 0xe2, 0x7e, 0x10, 0xb2, + 0x78, 0x24, 0x12, 0x50, 0x5b, 0x94, 0x80, 0xeb, 0x92, 0xcb, 0x55, 0xc1, 0xa5, 0x1c, 0xae, 0x58, + 0x54, 0xb4, 0x78, 0x33, 0x53, 0xf0, 0x4c, 0xfc, 0xac, 0xc1, 0xf9, 0xb2, 0x4b, 0x9e, 0x8c, 0x95, + 0x45, 0xc9, 0xe8, 0x48, 0x02, 0x1f, 0xce, 0x22, 0x30, 0x95, 0x8f, 0x79, 0x66, 0x9e, 0x92, 0xb3, + 0x25, 0x5a, 0x59, 0x56, 0x1e, 0x6b, 0x70, 0x2e, 0x8f, 0xeb, 0x85, 0xc4, 0xa1, 0xdd, 0x21, 0x0d, + 0x59, 0xe0, 0xea, 0xab, 0x8b, 0xd8, 0xdd, 0x96, 0xec, 0x3e, 0xa8, 0xb2, 0x2b, 0xc2, 0x4c, 0x93, + 0x2b, 0x59, 0x39, 0xb7, 0xed, 0xcc, 0x78, 0x3b, 0xb5, 0x1d, 0x73, 0x13, 0xfa, 0x41, 0x83, 0x9d, + 0x3c, 0x8a, 0x24, 0x4e, 0xba, 0x68, 0x97, 0xfa, 0xc4, 0x1e, 0x50, 0x57, 0xaf, 0xef, 0x69, 0x97, + 0xd7, 0xad, 0x9b, 0x93, 0xb1, 0x71, 0x50, 0x5d, 0xbe, 0xe2, 0x3a, 0xcd, 0xa0, 0xea, 0x80, 0xf3, + 0x13, 0x3a, 0x10, 0xa6, 0x9b, 0xc2, 0x82, 0xfe, 0xd0, 0x60, 0x46, 0x9c, 0x13, 0x78, 0x1e, 0x8b, + 0xa3, 0xfc, 0x20, 0xd7, 0x16, 0xa5, 0xaa, 0x2b, 0x53, 0x75, 0x77, 0x1e, 0xd7, 0x2a, 0xe4, 0x7c, + 0xd2, 0x53, 0x9e, 0x3c, 0x85, 0x46, 0x75, 0x07, 0x87, 0xc2, 0x2d, 0x3b, 0xe8, 0xd9, 0x3b, 0x09, + 0xe9, 0x09, 0x25, 0x83, 0xc2, 0x4e, 0xd6, 0x5f, 0x79, 0x27, 0x55, 0xc8, 0xf9, 0x3b, 0x99, 0xf2, + 0x9c, 0xbd, 0x13, 0x2c, 0xdc, 0xb2, 0x9d, 0xfc, 0xaa, 0xc1, 0x1b, 0xf3, 0xd2, 0xd2, 0xbd, 0x4f, + 0xa9, 0xde, 0x58, 0xd4, 0xd7, 0x9f, 0xc9, 0x3d, 0xdc, 0x7e, 0xf1, 0x69, 0xa4, 0x60, 0x8b, 0xce, + 0x81, 0xfb, 0xe0, 0x9d, 0xd9, 0xd9, 0xbf, 0x45, 0xe9, 0x1c, 0xb6, 0x62, 0xeb, 0x9c, 0x2d, 0xbc, + 0x32, 0xdb, 0x1c, 0x6c, 0x51, 0xae, 0xe7, 0xb0, 0x15, 0x19, 0x4e, 0xd9, 0xfe, 0xae, 0xc1, 0x85, + 0xe9, 0x60, 0x8f, 0xf9, 0xcc, 0x4b, 0xbc, 0xae, 0xcd, 0x5c, 0x7d, 0x63, 0x11, 0xdd, 0xcf, 0x25, + 0xdd, 0xce, 0x3c, 0xba, 0x05, 0xb4, 0xf9, 0x7c, 0x8b, 0x4e, 0x78, 0xb7, 0x4a, 0xf8, 0x13, 0x61, + 0xb5, 0x98, 0xdb, 0xfa, 0x69, 0x05, 0xea, 0x98, 0x4f, 0x7b, 0x74, 0x09, 0x96, 0x99, 0xcb, 0xaf, + 0xb5, 0x86, 0x75, 0x7e, 0x32, 0x36, 0x5e, 0x13, 0x0c, 0xf2, 0x65, 0x52, 0xac, 0x65, 0xe6, 0xa2, + 0x77, 0x61, 0xcd, 0x0e, 0x7c, 0xb7, 0xcb, 0x5c, 0x7e, 0x1f, 0x35, 0x2c, 0x63, 0x32, 0x36, 0x5e, + 0x17, 0xde, 0xa9, 0xa1, 0x93, 0x45, 0x48, 0x09, 0xd7, 0xc5, 0x07, 0xba, 0x03, 0x1b, 0x4e, 0x48, + 0x49, 0x4c, 0xbb, 0xe9, 0xc5, 0xcd, 0x6f, 0x90, 0x86, 0x75, 0x69, 0x32, 0x36, 0xde, 0x12, 0xd1, + 0xc2, 0x78, 0x8f, 0x79, 0xd9, 0x51, 0x14, 0x34, 0x18, 0x72, 0x21, 0x45, 0xa2, 0x0f, 0x87, 0x2c, + 0x1c, 0x09, 0xa4, 0x95, 0x2a, 0x92, 0x30, 0x16, 0x91, 0x0a, 0x1a, 0x0c, 0xb9, 0x80, 0x74, 0x58, + 0x73, 0xe9, 0x80, 0xc6, 0x54, 0x8c, 0xec, 0x75, 0xac, 0x44, 0x74, 0x03, 0xea, 0xc1, 0xb7, 0x3e, + 0x0d, 0x23, 0xbd, 0xbe, 0x57, 0x2b, 0x6f, 0x53, 0xe8, 0x15, 0xb4, 0x94, 0xb0, 0x74, 0x47, 0x5f, + 0x01, 0x90, 0x38, 0x0e, 0x99, 0x9d, 0xc4, 0x34, 0x92, 0xd3, 0x6d, 0x7b, 0x6a, 0x26, 0x1c, 0xf8, + 0xa3, 0x22, 0xe3, 0x3c, 0x22, 0x3b, 0xd6, 0x5c, 0x83, 0x0b, 0x80, 0xe8, 0x3a, 0xac, 0xf2, 0xc7, + 0x93, 0xbe, 0xce, 0x69, 0x5d, 0x98, 0x8c, 0x8d, 0x1d, 0x81, 0xc1, 0xd5, 0x2a, 0x5c, 0x08, 0x58, + 0xf8, 0xa2, 0x6b, 0xb0, 0x12, 0x8f, 0x86, 0xa2, 0xbb, 0x4b, 0x31, 0xa9, 0x36, 0x8b, 0x11, 0x02, + 0xe6, 0xae, 0xad, 0x3e, 0x6c, 0x1d, 0xa8, 0xca, 0xb9, 0xe9, 0xc7, 0xe1, 0x08, 0x21, 0x58, 0x49, + 0xd1, 0x44, 0x91, 0x60, 0xfe, 0x8d, 0x2c, 0x58, 0xa5, 0xa9, 0x51, 0xbe, 0x4d, 0xde, 0x6e, 0xbf, + 0xf0, 0x89, 0xd7, 0xfe, 0x94, 0x78, 0x34, 0x43, 0xc5, 0x22, 0xb4, 0xf5, 0x57, 0x0d, 0x36, 0x4b, + 0x06, 0xf4, 0x05, 0xfc, 0x9f, 0x27, 0xb3, 0x3b, 0x4c, 0xec, 0x01, 0x73, 0xba, 0x0f, 0xe8, 0x48, + 0x96, 0xa6, 0x99, 0xbf, 0x28, 0xb8, 0xc7, 0x31, 0x77, 0xf8, 0x98, 0x8e, 0x4a, 0xa7, 0x91, 0x6b, + 0xf1, 0x56, 0x59, 0x81, 0x8e, 0x61, 0x53, 0x40, 0x13, 0xd7, 0x0d, 0x69, 0x14, 0xc9, 0x22, 0xbe, + 0x3a, 0x19, 0x1b, 0x97, 0x0a, 0xb8, 0x07, 0xc2, 0x5a, 0x42, 0x55, 0x3a, 0x7c, 0xa6, 0x28, 0xa2, + 0x73, 0x50, 0xef, 0x53, 0xd6, 0xeb, 0x8b, 0x37, 0xd1, 0x0a, 0x96, 0x52, 0xaa, 0x8f, 0x62, 0x12, + 0x27, 0x91, 0xa8, 0x4f, 0x2c, 0x25, 0x74, 0x04, 0xa0, 0x1a, 0x95, 0x89, 0xaa, 0x6b, 0x58, 0x17, + 0x27, 0x63, 0xe3, 0x4d, 0xd5, 0xf3, 0xdc, 0xd6, 0x39, 0xca, 0xfb, 0x5b, 0x29, 0x70, 0x43, 0x7d, + 0x97, 0xda, 0xb0, 0x3e, 0xb3, 0x0d, 0x8f, 0x4a, 0x6d, 0x78, 0x94, 0xb7, 0xe1, 0xa0, 0xdc, 0x3c, + 0xa2, 0x40, 0x77, 0xa7, 0x0a, 0xf4, 0x9e, 0x7a, 0x5c, 0x5b, 0xa6, 0x1c, 0x4a, 0xa7, 0x69, 0xae, + 0x47, 0xe9, 0x2d, 0x54, 0x68, 0xb0, 0xd6, 0xd7, 0xd0, 0x48, 0xcf, 0x76, 0x7e, 0x05, 0x7d, 0x54, + 0xae, 0xa0, 0x2b, 0xa7, 0xa8, 0x20, 0x31, 0xb2, 0x54, 0xf9, 0xfc, 0xa2, 0x01, 0xe4, 0x5a, 0x74, + 0x0b, 0xea, 0x03, 0x12, 0xd3, 0x48, 0xbd, 0xd1, 0xdb, 0xa7, 0x06, 0xe4, 0x1c, 0xb1, 0x8c, 0x46, + 0x77, 0x60, 0xad, 0xcf, 0xa2, 0x38, 0xe0, 0xcc, 0x6a, 0x2f, 0x01, 0xa4, 0xc2, 0x5b, 0xef, 0xc1, + 0xff, 0x2a, 0x36, 0xb4, 0x95, 0x4f, 0x5b, 0x3e, 0x54, 0xf3, 0x1a, 0x5a, 0x2e, 0xd6, 0x50, 0x2b, + 0x84, 0xc6, 0x5d, 0xd6, 0xf3, 0x49, 0x9c, 0x84, 0x14, 0x5d, 0x85, 0x5a, 0xc4, 0x7a, 0xb2, 0x11, + 0x76, 0x26, 0x63, 0xe3, 0xac, 0x38, 0x90, 0x88, 0xf5, 0xd4, 0x49, 0xa4, 0x9f, 0x38, 0xf5, 0x4a, + 0xeb, 0x63, 0x98, 0xd8, 0xbc, 0x73, 0xa6, 0xc6, 0xf4, 0x30, 0xb1, 0x0b, 0x1d, 0x23, 0x25, 0x5c, + 0x97, 0x1f, 0x3f, 0x2e, 0xc3, 0x96, 0x35, 0x08, 0x9c, 0x07, 0x87, 0x7d, 0xe2, 0xf7, 0xe8, 0x5d, + 0x1a, 0x17, 0xe8, 0xa5, 0x8b, 0xd7, 0xb2, 0x12, 0xd7, 0x61, 0x4d, 0xfc, 0x2c, 0x44, 0x3c, 0x47, + 0x0d, 0xac, 0x44, 0xb4, 0x0b, 0xeb, 0xb2, 0x56, 0x23, 0xbd, 0xc6, 0x4d, 0x99, 0x8c, 0xbe, 0x87, + 0x33, 0xaa, 0x01, 0x6c, 0xe6, 0xa6, 0xed, 0x91, 0xa6, 0x77, 0x7f, 0x41, 0x7a, 0xe5, 0xed, 0x65, + 0x31, 0xb7, 0xe3, 0xdf, 0x0f, 0xac, 0x2b, 0xf9, 0xbf, 0x15, 0xc9, 0x2c, 0x51, 0xa5, 0x67, 0xb8, + 0x0a, 0x6f, 0x14, 0x24, 0xb4, 0x07, 0x1b, 0xea, 0x42, 0x64, 0x34, 0xd2, 0x57, 0x39, 0xb7, 0xa2, + 0x0a, 0x6d, 0xab, 0x01, 0xcb, 0xe7, 0xbe, 0x9c, 0xa0, 0xad, 0xdf, 0xb4, 0x74, 0x1e, 0x16, 0x29, + 0x54, 0x1a, 0x59, 0x7b, 0xc9, 0x46, 0xbe, 0x07, 0x5b, 0x36, 0x73, 0xdd, 0xa9, 0x89, 0xb4, 0x3f, + 0x19, 0x1b, 0x57, 0x64, 0x3f, 0x73, 0x7b, 0x65, 0x24, 0x95, 0x95, 0x78, 0xb3, 0x24, 0x5b, 0x9d, + 0x27, 0xcf, 0x9a, 0xda, 0xd3, 0x67, 0x4d, 0xed, 0xdf, 0x67, 0x4d, 0xed, 0xd1, 0xf3, 0xe6, 0xd2, + 0xd3, 0xe7, 0xcd, 0xa5, 0x3f, 0x9f, 0x37, 0x97, 0xbe, 0x34, 0x7b, 0x2c, 0xee, 0x27, 0x76, 0xdb, + 0x09, 0x3c, 0xd3, 0xa1, 0xa1, 0xb3, 0xcf, 0x02, 0x73, 0x40, 0x9c, 0xc0, 0x67, 0x8e, 0x6b, 0x3e, + 0x2c, 0xfd, 0xc9, 0xf3, 0xfb, 0xc0, 0xae, 0xf3, 0x91, 0x70, 0xfd, 0xbf, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x74, 0x45, 0xc5, 0x43, 0xef, 0x0f, 0x00, 0x00, } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -1001,6 +1012,13 @@ func (m *Record) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Type) > 0 { + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintNameservice(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x4a + } if len(m.Names) > 0 { for iNdEx := len(m.Names) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.Names[iNdEx]) @@ -1010,10 +1028,15 @@ func (m *Record) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x42 } } - if len(m.Attributes) > 0 { - i -= len(m.Attributes) - copy(dAtA[i:], m.Attributes) - i = encodeVarintNameservice(dAtA, i, uint64(len(m.Attributes))) + if m.Attributes != nil { + { + size, err := m.Attributes.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintNameservice(dAtA, i, uint64(size)) + } i-- dAtA[i] = 0x3a } @@ -1129,12 +1152,12 @@ func (m *NameAuthority) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - n12, err12 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.ExpiryTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.ExpiryTime):]) - if err12 != nil { - return 0, err12 + n13, err13 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.ExpiryTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.ExpiryTime):]) + if err13 != nil { + return 0, err13 } - i -= n12 - i = encodeVarintNameservice(dAtA, i, uint64(n12)) + i -= n13 + i = encodeVarintNameservice(dAtA, i, uint64(n13)) i-- dAtA[i] = 0x3a if len(m.BondId) > 0 { @@ -1532,8 +1555,8 @@ func (m *Record) Size() (n int) { n += 1 + l + sovNameservice(uint64(l)) } } - l = len(m.Attributes) - if l > 0 { + if m.Attributes != nil { + l = m.Attributes.Size() n += 1 + l + sovNameservice(uint64(l)) } if len(m.Names) > 0 { @@ -1542,6 +1565,10 @@ func (m *Record) Size() (n int) { n += 1 + l + sovNameservice(uint64(l)) } } + l = len(m.Type) + if l > 0 { + n += 1 + l + sovNameservice(uint64(l)) + } return n } @@ -2343,7 +2370,7 @@ func (m *Record) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Attributes", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowNameservice @@ -2353,23 +2380,27 @@ func (m *Record) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthNameservice } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthNameservice } if postIndex > l { return io.ErrUnexpectedEOF } - m.Attributes = string(dAtA[iNdEx:postIndex]) + if m.Attributes == nil { + m.Attributes = &types1.Any{} + } + if err := m.Attributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 8: if wireType != 2 { @@ -2403,6 +2434,38 @@ func (m *Record) Unmarshal(dAtA []byte) error { } m.Names = append(m.Names, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNameservice + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthNameservice + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthNameservice + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipNameservice(dAtA[iNdEx:]) diff --git a/x/nameservice/types/types.go b/x/nameservice/types/types.go index 187b9fb2..30a36f19 100644 --- a/x/nameservice/types/types.go +++ b/x/nameservice/types/types.go @@ -2,9 +2,14 @@ package types import ( "crypto/sha256" + "encoding/json" + "fmt" + "strings" "github.com/cerc-io/laconicd/x/nameservice/helpers" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" canonicalJson "github.com/gibson042/canonicaljson-go" + "github.com/gogo/protobuf/proto" ) const ( @@ -21,25 +26,63 @@ type PayloadType struct { // ToPayload converts PayloadType to Payload object. // Why? Because go-amino can't handle maps: https://github.com/tendermint/go-amino/issues/4. -func (payloadObj *PayloadType) ToPayload() Payload { +func (payloadObj *PayloadType) ToPayload() (Payload, error) { + attributes, err := payLoadAttributes(payloadObj.Record) + if err != nil { + return Payload{}, err + } payload := Payload{ Record: &Record{ Deleted: false, Owners: nil, - Attributes: helpers.BytesToBase64(helpers.MarshalMapToJSONBytes(payloadObj.Record)), + Attributes: attributes, }, Signatures: payloadObj.Signatures, } - return payload + return payload, nil +} + +func payLoadAttributes(recordPayLoad map[string]interface{}) (*codectypes.Any, error) { + recordType, ok := recordPayLoad["type"] + if !ok { + return &codectypes.Any{}, fmt.Errorf("cannot get type from payload") + } + bz := helpers.MarshalMapToJSONBytes(recordPayLoad) + + switch recordType.(string) { + case "ServiceProviderRegistration": + { + var attributes ServiceProviderRegistration + err := json.Unmarshal(bz, &attributes) + if err != nil { + return &codectypes.Any{}, err + } + return codectypes.NewAnyWithValue(&attributes) + } + case "WebsiteRegistrationRecord": + { + var attributes WebsiteRegistrationRecord + err := json.Unmarshal(bz, &attributes) + if err != nil { + return &codectypes.Any{}, err + } + return codectypes.NewAnyWithValue(&attributes) + } + default: + return &codectypes.Any{}, fmt.Errorf("unsupported record type %s", recordType.(string)) + } } // ToReadablePayload converts Payload to PayloadType // It will unmarshal with record attributes func (payload Payload) ToReadablePayload() PayloadType { var payloadType PayloadType + bz, err := GetJSONBytesFromAny(*payload.Record.Attributes) + if err != nil { + panic(err) + } - payloadType.Record = helpers.UnMarshalMapFromJSONBytes(helpers.BytesFromBase64(payload.Record.Attributes)) - + payloadType.Record = helpers.UnMarshalMapFromJSONBytes(bz) payloadType.Signatures = payload.Signatures return payloadType @@ -57,11 +100,53 @@ func (r *Record) ToRecordType() RecordType { resourceObj.Deleted = r.Deleted resourceObj.Owners = r.Owners resourceObj.Names = r.Names - resourceObj.Attributes = helpers.UnMarshalMapFromJSONBytes(helpers.BytesFromBase64(r.Attributes)) + + bz, err := GetJSONBytesFromAny(*r.Attributes) + if err != nil { + panic(err) + } + resourceObj.Attributes = helpers.UnMarshalMapFromJSONBytes(bz) return resourceObj } +func GetJSONBytesFromAny(any codectypes.Any) ([]byte, error) { + var bz []byte + s := strings.Split(any.TypeUrl, ".") + switch s[len(s)-1] { + case "ServiceProviderRegistration": + { + var attributes ServiceProviderRegistration + err := proto.Unmarshal(any.Value, &attributes) + if err != nil { + panic("Proto unmarshal error") + } + + bz, err = json.Marshal(attributes) + if err != nil { + panic("JSON marshal error") + } + } + case "WebsiteRegistrationRecord": + { + var attributes WebsiteRegistrationRecord + err := proto.Unmarshal(any.Value, &attributes) + if err != nil { + panic("Proto unmarshal error") + } + + bz, err = json.Marshal(attributes) + if err != nil { + panic("JSON marshal error") + } + } + default: + return nil, fmt.Errorf("unsupported type %s", s[len(s)-1]) + } + + return bz, nil +} + // RecordType represents a WNS record. type RecordType struct { ID string `json:"id,omitempty"` @@ -76,7 +161,12 @@ type RecordType struct { // ToRecordObj converts Record to RecordObj. // Why? Because go-amino can't handle maps: https://github.com/tendermint/go-amino/issues/4. -func (r *RecordType) ToRecordObj() Record { +func (r *RecordType) ToRecordObj() (Record, error) { + attributes, err := payLoadAttributes(r.Attributes) + if err != nil { + return Record{}, err + } + var resourceObj Record resourceObj.Id = r.ID @@ -85,9 +175,9 @@ func (r *RecordType) ToRecordObj() Record { resourceObj.ExpiryTime = r.ExpiryTime resourceObj.Deleted = r.Deleted resourceObj.Owners = r.Owners - resourceObj.Attributes = helpers.BytesToBase64(helpers.MarshalMapToJSONBytes(r.Attributes)) + resourceObj.Attributes = attributes - return resourceObj + return resourceObj, nil } // CanonicalJSON returns the canonical JSON representation of the record.