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.