diff --git a/go.mod b/go.mod index c7e4b95c..c6d76a05 100644 --- a/go.mod +++ b/go.mod @@ -3,41 +3,40 @@ module github.com/Nolus-Protocol/nolus-core go 1.22.4 require ( - github.com/CosmWasm/wasmd v0.52.0 - github.com/CosmWasm/wasmvm/v2 v2.1.0 - github.com/cometbft/cometbft v0.38.10 - github.com/cosmos/cosmos-sdk v0.50.7 - github.com/cosmos/gogoproto v1.5.0 - github.com/cosmos/ibc-go/v8 v8.3.2 + github.com/CosmWasm/wasmd v0.53.0 + github.com/CosmWasm/wasmvm/v2 v2.1.2 + github.com/cometbft/cometbft v0.38.12 + github.com/cosmos/cosmos-sdk v0.50.9 + github.com/cosmos/gogoproto v1.7.0 + github.com/cosmos/ibc-go/v8 v8.4.0 github.com/golang/protobuf v1.5.4 github.com/gorilla/mux v1.8.1 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/neutron-org/neutron/v4 v4.0.0-rc1 - github.com/spf13/cast v1.6.0 + github.com/spf13/cast v1.7.0 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 - google.golang.org/grpc v1.64.0 + google.golang.org/grpc v1.64.1 gopkg.in/yaml.v2 v2.4.0 ) require ( cosmossdk.io/api v0.7.5 cosmossdk.io/client/v2 v2.0.0-beta.1 - cosmossdk.io/core v0.11.0 + cosmossdk.io/core v0.11.1 cosmossdk.io/errors v1.0.1 - cosmossdk.io/log v1.3.1 + cosmossdk.io/log v1.4.1 cosmossdk.io/math v1.3.0 cosmossdk.io/store v1.1.0 - cosmossdk.io/tools/confix v0.1.1 + cosmossdk.io/tools/confix v0.1.2 cosmossdk.io/x/evidence v0.1.1 cosmossdk.io/x/feegrant v0.1.1 - cosmossdk.io/x/tx v0.13.3 - cosmossdk.io/x/upgrade v0.1.3 + cosmossdk.io/x/tx v0.13.4 + cosmossdk.io/x/upgrade v0.1.4 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/cosmos-proto v1.0.0-beta.5 - github.com/cosmos/ibc-go/modules/capability v1.0.0 - github.com/cosmos/interchain-security/v5 v5.0.0 + github.com/cosmos/ibc-go/modules/capability v1.0.1 github.com/golang/mock v1.6.0 github.com/hashicorp/go-metrics v0.5.3 google.golang.org/genproto/googleapis/api v0.0.0-20240610135401-a8a62080eff3 @@ -53,7 +52,7 @@ require ( cloud.google.com/go/iam v1.1.8 // indirect cloud.google.com/go/storage v1.41.0 // indirect cosmossdk.io/collections v0.4.0 // indirect - cosmossdk.io/depinject v1.0.0-alpha.4 // indirect + cosmossdk.io/depinject v1.0.0 // indirect cosmossdk.io/x/circuit v0.1.1 // indirect filippo.io/edwards25519 v1.1.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect @@ -65,15 +64,16 @@ require ( github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect github.com/bits-and-blooms/bitset v1.13.0 // indirect - github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v1.5.1 // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect - github.com/cockroachdb/errors v1.11.1 // indirect + github.com/cockroachdb/errors v1.11.3 // indirect + github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce // indirect github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect - github.com/cockroachdb/pebble v1.1.0 // indirect + github.com/cockroachdb/pebble v1.1.1 // indirect github.com/cockroachdb/redact v1.1.5 // indirect github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect github.com/cometbft/cometbft-db v0.11.0 // indirect @@ -156,6 +156,7 @@ require ( github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mtibben/percent v0.2.1 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect github.com/oklog/run v1.1.0 // indirect github.com/onsi/ginkgo v1.16.5 // indirect @@ -166,13 +167,13 @@ require ( github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.19.1 // indirect + github.com/prometheus/client_golang v1.20.1 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.52.2 // indirect - github.com/prometheus/procfs v0.13.0 // indirect + github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rogpeppe/go-internal v1.12.0 // indirect - github.com/rs/cors v1.8.3 // indirect + github.com/rs/cors v1.11.1 // indirect github.com/rs/zerolog v1.33.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect @@ -189,7 +190,7 @@ require ( github.com/ulikunitz/xz v0.5.11 // indirect github.com/zondax/hid v0.9.2 // indirect github.com/zondax/ledger-go v0.14.3 // indirect - go.etcd.io/bbolt v1.3.8 // indirect + go.etcd.io/bbolt v1.3.10 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect @@ -197,18 +198,18 @@ require ( go.opentelemetry.io/otel/metric v1.24.0 // indirect go.opentelemetry.io/otel/trace v1.24.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.26.0 // indirect golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect - golang.org/x/net v0.26.0 // indirect - golang.org/x/oauth2 v0.20.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect - golang.org/x/text v0.16.0 // indirect + golang.org/x/net v0.28.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.23.0 // indirect + golang.org/x/term v0.23.0 // indirect + golang.org/x/text v0.17.0 // indirect golang.org/x/time v0.5.0 // indirect google.golang.org/api v0.180.0 // indirect google.golang.org/genproto v0.0.0-20240401170217-c3f982113cda // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect nhooyr.io/websocket v1.8.10 // indirect @@ -220,7 +221,7 @@ replace ( cosmossdk.io/client/v2 => cosmossdk.io/client/v2 v2.0.0-beta.1.0.20240124105859-5ad1805d0e79 github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 - github.com/CosmWasm/wasmd => github.com/nolus-protocol/wasmd v0.52.0-nolus + github.com/CosmWasm/wasmd => github.com/nolus-protocol/wasmd v0.53.0-nolus // TODO: Simapp dependency, review removing when updating to SDK with backported update https://github.com/cosmos/cosmos-sdk/issues/13423 github.com/btcsuite/btcd => github.com/btcsuite/btcd v0.22.2 // indirect diff --git a/go.sum b/go.sum index 51ce8aeb..ad98036a 100644 --- a/go.sum +++ b/go.sum @@ -192,20 +192,20 @@ cosmossdk.io/client/v2 v2.0.0-beta.1.0.20240124105859-5ad1805d0e79 h1:Hr1t0fCq1n cosmossdk.io/client/v2 v2.0.0-beta.1.0.20240124105859-5ad1805d0e79/go.mod h1:8pN6LSVReNnIxrC2QGcvuIJ/m1pJN6FNYn2kAYtYftI= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= -cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= -cosmossdk.io/core v0.11.0/go.mod h1:LaTtayWBSoacF5xNzoF8tmLhehqlA9z1SWiPuNC6X1w= -cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= -cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= +cosmossdk.io/core v0.11.1 h1:h9WfBey7NAiFfIcUhDVNS503I2P2HdZLebJlUIs8LPA= +cosmossdk.io/core v0.11.1/go.mod h1:OJzxcdC+RPrgGF8NJZR2uoQr56tc7gfBKhiKeDO7hH0= +cosmossdk.io/depinject v1.0.0 h1:dQaTu6+O6askNXO06+jyeUAnF2/ssKwrrszP9t5q050= +cosmossdk.io/depinject v1.0.0/go.mod h1:zxK/h3HgHoA/eJVtiSsoaRaRA2D5U4cJ5thIG4ssbB8= cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= -cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= -cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= +cosmossdk.io/log v1.4.1 h1:wKdjfDRbDyZRuWa8M+9nuvpVYxrEOwbD/CA8hvhU8QM= +cosmossdk.io/log v1.4.1/go.mod h1:k08v0Pyq+gCP6phvdI6RCGhLf/r425UT6Rk/m+o74rU= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= cosmossdk.io/store v1.1.0 h1:LnKwgYMc9BInn9PhpTFEQVbL9UK475G2H911CGGnWHk= cosmossdk.io/store v1.1.0/go.mod h1:oZfW/4Fc/zYqu3JmQcQdUJ3fqu5vnYTn3LZFFy8P8ng= -cosmossdk.io/tools/confix v0.1.1 h1:aexyRv9+y15veH3Qw16lxQwo+ki7r2I+g0yNTEFEQM8= -cosmossdk.io/tools/confix v0.1.1/go.mod h1:nQVvP1tHsGXS83PonPVWJtSbddIqyjEw99L4M3rPJyQ= +cosmossdk.io/tools/confix v0.1.2 h1:2hoM1oFCNisd0ltSAAZw2i4ponARPmlhuNu3yy0VwI4= +cosmossdk.io/tools/confix v0.1.2/go.mod h1:7XfcbK9sC/KNgVGxgLM0BrFbVcR/+6Dg7MFfpx7duYo= cosmossdk.io/x/circuit v0.1.1 h1:KPJCnLChWrxD4jLwUiuQaf5mFD/1m7Omyo7oooefBVQ= cosmossdk.io/x/circuit v0.1.1/go.mod h1:B6f/urRuQH8gjt4eLIXfZJucrbreuYrKh5CSjaOxr+Q= cosmossdk.io/x/evidence v0.1.1 h1:Ks+BLTa3uftFpElLTDp9L76t2b58htjVbSZ86aoK/E4= @@ -214,10 +214,10 @@ cosmossdk.io/x/feegrant v0.1.1 h1:EKFWOeo/pup0yF0svDisWWKAA9Zags6Zd0P3nRvVvw8= cosmossdk.io/x/feegrant v0.1.1/go.mod h1:2GjVVxX6G2fta8LWj7pC/ytHjryA6MHAJroBWHFNiEQ= cosmossdk.io/x/nft v0.1.1 h1:pslAVS8P5NkW080+LWOamInjDcq+v2GSCo+BjN9sxZ8= cosmossdk.io/x/nft v0.1.1/go.mod h1:Kac6F6y2gsKvoxU+fy8uvxRTi4BIhLOor2zgCNQwVgY= -cosmossdk.io/x/tx v0.13.3 h1:Ha4mNaHmxBc6RMun9aKuqul8yHiL78EKJQ8g23Zf73g= -cosmossdk.io/x/tx v0.13.3/go.mod h1:I8xaHv0rhUdIvIdptKIqzYy27+n2+zBVaxO6fscFhys= -cosmossdk.io/x/upgrade v0.1.3 h1:q4XpXc6zp0dX6x74uBtfN6+J7ikaQev5Bla6Q0ADLK8= -cosmossdk.io/x/upgrade v0.1.3/go.mod h1:jOdQhnaY5B8CDUoUbed23/Lre0Dk+r6BMQE40iKlVVQ= +cosmossdk.io/x/tx v0.13.4 h1:Eg0PbJgeO0gM8p5wx6xa0fKR7hIV6+8lC56UrsvSo0Y= +cosmossdk.io/x/tx v0.13.4/go.mod h1:BkFqrnGGgW50Y6cwTy+JvgAhiffbGEKW6KF9ufcDpvk= +cosmossdk.io/x/upgrade v0.1.4 h1:/BWJim24QHoXde8Bc64/2BSEB6W4eTydq0X/2f8+g38= +cosmossdk.io/x/upgrade v0.1.4/go.mod h1:9v0Aj+fs97O+Ztw+tG3/tp5JSlrmT7IcFhAebQHmOPo= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= @@ -227,8 +227,8 @@ github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25 github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/CosmWasm/wasmvm/v2 v2.1.0 h1:bleLhNA36hM8iPjFJsNRi9RjrQW6MtXafw2+wVjAWAE= -github.com/CosmWasm/wasmvm/v2 v2.1.0/go.mod h1:bMhLQL4Yp9CzJi9A83aR7VO9wockOsSlZbT4ztOl6bg= +github.com/CosmWasm/wasmvm/v2 v2.1.2 h1:GkJ5bAsRlLHfIQVg/FY1VHwLyBwlCjAhDea0B8L+e20= +github.com/CosmWasm/wasmvm/v2 v2.1.2/go.mod h1:bMhLQL4Yp9CzJi9A83aR7VO9wockOsSlZbT4ztOl6bg= github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= @@ -287,10 +287,10 @@ github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6 github.com/blendle/zapdriver v1.3.1 h1:C3dydBOWYRiOk+B8X9IVZ5IOe+7cl+tGOexN4QqHfpE= github.com/blendle/zapdriver v1.3.1/go.mod h1:mdXfREi6u5MArG4j9fewC+FGnXaBR+T4Ox4J2u4eHCc= github.com/btcsuite/btcd v0.22.2 h1:vBZ+lGGd1XubpOWO67ITJpAEsICWhA0YzqkcpkgNBfo= -github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= -github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= -github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ= -github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= +github.com/btcsuite/btcd/btcec/v2 v2.3.4 h1:3EJjcN70HCu/mwqlUsGK8GcNVyLVxFDlWurTXGPFfiQ= +github.com/btcsuite/btcd/btcec/v2 v2.3.4/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcutil v1.1.6 h1:zFL2+c3Lb9gEgqKNzowKUPQNb8jV7v5Oaodi/AYFd6c= +github.com/btcsuite/btcd/btcutil v1.1.6/go.mod h1:9dFymx8HpuLqBnsPELrImQeTQfKBQqzqGbbV3jK55aE= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/bufbuild/protocompile v0.6.0 h1:Uu7WiSQ6Yj9DbkdnOe7U4mNKp58y9WDMKDn28/ZlunY= @@ -337,19 +337,21 @@ github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOG github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= -github.com/cockroachdb/errors v1.11.1 h1:xSEW75zKaKCWzR3OfxXUxgrk/NtT4G1MiOv5lWZazG8= -github.com/cockroachdb/errors v1.11.1/go.mod h1:8MUxA3Gi6b25tYlFEBGLf+D8aISL+M4MIpiWMSNRfxw= +github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I= +github.com/cockroachdb/errors v1.11.3/go.mod h1:m4UIW4CDjx+R5cybPsNrRbreomiFqt8o1h1wUVazSd8= +github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce h1:giXvy4KSc/6g/esnpM7Geqxka4WSqI1SZc7sMJFd3y4= +github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/pebble v1.1.0 h1:pcFh8CdCIt2kmEpK0OIatq67Ln9uGDYY3d5XnE0LJG4= -github.com/cockroachdb/pebble v1.1.0/go.mod h1:sEHm5NOXxyiAoKWhoFxT8xMgd/f3RA6qUqQ1BXKrh2E= +github.com/cockroachdb/pebble v1.1.1 h1:XnKU22oiCLy2Xn8vp1re67cXg4SAasg/WDt1NtcRFaw= +github.com/cockroachdb/pebble v1.1.1/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU= github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/cometbft/cometbft v0.38.11 h1:6bNDUB8/xq4uYonYwIfGc9OqK1ZH4NkdaMmR1LZIJqk= -github.com/cometbft/cometbft v0.38.11/go.mod h1:jHPx9vQpWzPHEAiYI/7EDKaB1NXhK6o3SArrrY8ExKc= +github.com/cometbft/cometbft v0.38.12 h1:OWsLZN2KcSSFe8bet9xCn07VwhBnavPea3VyPnNq1bg= +github.com/cometbft/cometbft v0.38.12/go.mod h1:GPHp3/pehPqgX1930HmK1BpBLZPxB75v/dZg8Viwy+o= github.com/cometbft/cometbft-db v0.11.0 h1:M3Lscmpogx5NTbb1EGyGDaFRdsoLWrUWimFEyf7jej8= github.com/cometbft/cometbft-db v0.11.0/go.mod h1:GDPJAC/iFHNjmZZPN8V8C1yr/eyityhi2W1hz2MGKSc= github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= @@ -375,18 +377,18 @@ github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4x github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI= github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= -github.com/cosmos/gogoproto v1.5.0 h1:SDVwzEqZDDBoslaeZg+dGE55hdzHfgUA40pEanMh52o= -github.com/cosmos/gogoproto v1.5.0/go.mod h1:iUM31aofn3ymidYG6bUR5ZFrk+Om8p5s754eMUcyp8I= +github.com/cosmos/gogoproto v1.7.0 h1:79USr0oyXAbxg3rspGh/m4SWNyoz/GLaAh0QlCe2fro= +github.com/cosmos/gogoproto v1.7.0/go.mod h1:yWChEv5IUEYURQasfyBW5ffkMHR/90hiHgbNgrtp4j0= github.com/cosmos/iavl v1.2.0 h1:kVxTmjTh4k0Dh1VNL046v6BXqKziqMDzxo93oh3kOfM= github.com/cosmos/iavl v1.2.0/go.mod h1:HidWWLVAtODJqFD6Hbne2Y0q3SdxByJepHUOeoH4LiI= github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 v8.0.1 h1:BHn+JWZILxkUT9IrlP1ctUfo9ENGi+EmiZ9om1XSHIw= github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 v8.0.1/go.mod h1:82hPO/tRawbuFad2gPwChvpZ0JEIoNi91LwVneAYCeM= github.com/cosmos/ibc-go/modules/apps/callbacks v0.2.1-0.20231113120333-342c00b0f8bd h1:Lx+/5dZ/nN6qPXP2Ofog6u1fmlkCFA1ElcOconnofEM= github.com/cosmos/ibc-go/modules/apps/callbacks v0.2.1-0.20231113120333-342c00b0f8bd/go.mod h1:JWfpWVKJKiKtd53/KbRoKfxWl8FsT2GPcNezTOk0o5Q= -github.com/cosmos/ibc-go/modules/capability v1.0.0 h1:r/l++byFtn7jHYa09zlAdSeevo8ci1mVZNO9+V0xsLE= -github.com/cosmos/ibc-go/modules/capability v1.0.0/go.mod h1:D81ZxzjZAe0ZO5ambnvn1qedsFQ8lOwtqicG6liLBco= -github.com/cosmos/ibc-go/v8 v8.3.2 h1:8X1oHHKt2Bh9hcExWS89rntLaCKZp2EjFTUSxKlPhGI= -github.com/cosmos/ibc-go/v8 v8.3.2/go.mod h1:WVVIsG39jGrF9Cjggjci6LzySyWGloz194sjTxiGNIE= +github.com/cosmos/ibc-go/modules/capability v1.0.1 h1:ibwhrpJ3SftEEZRxCRkH0fQZ9svjthrX2+oXdZvzgGI= +github.com/cosmos/ibc-go/modules/capability v1.0.1/go.mod h1:rquyOV262nGJplkumH+/LeYs04P3eV8oB7ZM4Ygqk4E= +github.com/cosmos/ibc-go/v8 v8.4.0 h1:K2PfX0AZ+1XKZytHGEMuSjQXG/MZshPb83RSTQt2+cE= +github.com/cosmos/ibc-go/v8 v8.4.0/go.mod h1:zh6x1osR0hNvEcFrC/lhGD08sMfQmr9wHVvZ/mRWMCs= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= github.com/cosmos/interchain-security/v5 v5.0.0 h1:iwHu1nFbXuYfa13isEgm6hkHU+2t/t56YjcfyP3PnQA= @@ -788,6 +790,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= @@ -850,6 +854,8 @@ github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -864,12 +870,10 @@ github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OS github.com/neutron-org/admin-module/v2 v2.0.0 h1:MlkSc1821sQ+G5/cYOajuqZ5/lM53xTbixpTtXnHh0A= github.com/neutron-org/admin-module/v2 v2.0.0/go.mod h1:RfOyabXsdJ5btcOKyKPZDYiZhtuKFubbJMOb8EJZtvA= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nolus-protocol/cosmos-sdk v0.50.7-nolus-rc1 h1:QK59L25el60UuVoosifSg3EVK+/n6urjln6yxNnxAI4= -github.com/nolus-protocol/cosmos-sdk v0.50.7-nolus-rc1/go.mod h1:84xDDJEHttRT7NDGwBaUOLVOMN0JNE9x7NbsYIxXs1s= github.com/nolus-protocol/neutron/v4 v4.0.1-nolus h1:21r0fWxqjfaLHkPS/y/H1WDxytisOZ3xPsvp+JHa1jU= github.com/nolus-protocol/neutron/v4 v4.0.1-nolus/go.mod h1:7TRawLFzMRs7sXuDd/R5VKHPUfNPDDMYaTcY2UjCqF0= -github.com/nolus-protocol/wasmd v0.52.0-nolus h1:SrmACftzuXy/FwCAUccSkMEMysj3StoB3Mf8pvoqzmI= -github.com/nolus-protocol/wasmd v0.52.0-nolus/go.mod h1:hyy1wt7c589Cs4kOK2cYdtphzCd2Xo20q/t7tfby7oI= +github.com/nolus-protocol/wasmd v0.53.0-nolus h1:RRWI+6dABBCEEowPNxlEHbHYeNHamUVXaop57PF6J2I= +github.com/nolus-protocol/wasmd v0.53.0-nolus/go.mod h1:FJl/aWjdpGof3usAMFQpDe07Rkx77PUzp0cygFMOvtw= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -908,8 +912,6 @@ github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnh github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= -github.com/oxyno-zeta/gomock-extra-matcher v1.2.0 h1:WPEclU0y0PMwUzdDcaKZvld4aXpa3fkzjiUMQdcBEHg= -github.com/oxyno-zeta/gomock-extra-matcher v1.2.0/go.mod h1:S0r7HmKeCGsHmvIVFMjKWwswb4+30nCNWbXRMBVPkaU= github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= @@ -942,8 +944,8 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.20.1 h1:IMJXHOD6eARkQpxo8KkhgEVFlBNm+nkrFUyGlIu7Na8= +github.com/prometheus/client_golang v1.20.1/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -958,16 +960,16 @@ github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt2 github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck= -github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= +github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= -github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/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= @@ -980,8 +982,8 @@ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/f github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= -github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= +github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= @@ -1027,8 +1029,8 @@ github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= -github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= @@ -1102,8 +1104,8 @@ github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWp github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= -go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/bbolt v1.3.10 h1:+BqfJTcCzTItrop8mq/lbzL8wSGtj94UO/3U31shqG0= +go.etcd.io/bbolt v1.3.10/go.mod h1:bK3UQLPJZly7IlNmV7uVHJDxfe5aK9Ll93e/74Y9oEQ= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.mongodb.org/mongo-driver v1.11.0 h1:FZKhBSTydeuffHj9CBjXlR8vQLee1cQyTWYPA6/tqiE= go.mongodb.org/mongo-driver v1.11.0/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= @@ -1136,8 +1138,6 @@ 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= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= -go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= @@ -1162,8 +1162,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1262,8 +1262,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= 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= @@ -1289,8 +1289,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= -golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= -golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= 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= @@ -1305,8 +1305,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 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= @@ -1405,13 +1405,13 @@ golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= +golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 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.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= 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= @@ -1422,8 +1422,8 @@ 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/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= 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= @@ -1671,8 +1671,8 @@ google.golang.org/genproto v0.0.0-20240401170217-c3f982113cda h1:wu/KJm9KJwpfHWh google.golang.org/genproto v0.0.0-20240401170217-c3f982113cda/go.mod h1:g2LLCvCeCSir/JJSWosk19BR4NVxGqHUC6rxIRsd7Aw= google.golang.org/genproto/googleapis/api v0.0.0-20240610135401-a8a62080eff3 h1:QW9+G6Fir4VcRXVH8x3LilNAb6cxBGLa6+GM4hRwexE= google.golang.org/genproto/googleapis/api v0.0.0-20240610135401-a8a62080eff3/go.mod h1:kdrSS/OiLkPrNUpzD4aHgCq2rVuC/YRxok32HXZ4vRE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5 h1:SbSDUWW1PAO24TNpLdeheoYPd7kllICcLU52x6eD4kQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= 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.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1714,8 +1714,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= -google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= +google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= +google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= 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= diff --git a/wasmbinding/test/custom_message_test.go b/wasmbinding/test/custom_message_test.go index b814dfae..5f7faa93 100644 --- a/wasmbinding/test/custom_message_test.go +++ b/wasmbinding/test/custom_message_test.go @@ -1,446 +1,446 @@ package test -import ( - "encoding/json" - "testing" - - "cosmossdk.io/math" - wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" - - ibcchanneltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" - - "github.com/stretchr/testify/suite" - - ictxtypes "github.com/neutron-org/neutron/v4/x/interchaintxs/types" - - "github.com/CosmWasm/wasmd/x/wasm/keeper" - "github.com/CosmWasm/wasmvm/v2/types" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/stretchr/testify/require" - - "github.com/Nolus-Protocol/nolus-core/app" - "github.com/Nolus-Protocol/nolus-core/app/params" - "github.com/Nolus-Protocol/nolus-core/testutil" - "github.com/Nolus-Protocol/nolus-core/wasmbinding" - "github.com/Nolus-Protocol/nolus-core/wasmbinding/bindings" - contractmanagerkeeper "github.com/neutron-org/neutron/v4/x/contractmanager/keeper" - feetypes "github.com/neutron-org/neutron/v4/x/feerefunder/types" - icqkeeper "github.com/neutron-org/neutron/v4/x/interchainqueries/keeper" - ictxkeeper "github.com/neutron-org/neutron/v4/x/interchaintxs/keeper" -) - -const FeeCollectorAddress = "nolus1vguuxez2h5ekltfj9gjd62fs5k4rl2zy5hfrncasykzw08rezpfsd2rhm7" - -type CustomMessengerTestSuite struct { - testutil.IBCConnectionTestSuite - nolus *app.App - ctx sdk.Context - messenger *wasmbinding.CustomMessenger - contractOwner sdk.AccAddress - contractAddress sdk.AccAddress - contractKeeper wasmtypes.ContractOpsKeeper -} - -func (suite *CustomMessengerTestSuite) SetupTest() { - suite.IBCConnectionTestSuite.SetupTest() - suite.nolus = suite.GetNolusZoneApp(suite.ChainA) - suite.ctx = suite.ChainA.GetContext() - suite.messenger = &wasmbinding.CustomMessenger{} - suite.messenger.Ictxmsgserver = ictxkeeper.NewMsgServerImpl(*suite.nolus.InterchainTxsKeeper) - suite.messenger.Keeper = *suite.nolus.InterchainTxsKeeper - suite.messenger.Icqmsgserver = icqkeeper.NewMsgServerImpl(*suite.nolus.InterchainQueriesKeeper) - suite.messenger.ContractmanagerKeeper = suite.nolus.ContractManagerKeeper - suite.contractOwner = keeper.RandomAccountAddress(suite.T()) - - suite.contractKeeper = keeper.NewDefaultPermissionKeeper(&suite.nolus.WasmKeeper) - - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) -} - -func (suite *CustomMessengerTestSuite) TestRegisterInterchainAccount() { - // Craft RegisterInterchainAccount message - msg := bindings.NeutronMsg{ - RegisterInterchainAccount: &bindings.RegisterInterchainAccount{ - ConnectionId: suite.Path.EndpointA.ConnectionID, - InterchainAccountId: testutil.TestInterchainID, - RegisterFee: sdk.NewCoins(sdk.NewCoin(params.DefaultBondDenom, math.NewInt(1_000_000))), - }, - } - - bankKeeper := suite.nolus.BankKeeper - senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() - err := bankKeeper.SendCoins(suite.ctx, senderAddress, suite.contractAddress, sdk.NewCoins(sdk.NewCoin(params.DefaultBondDenom, math.NewInt(1_000_000)))) - suite.NoError(err) - - // Dispatch RegisterInterchainAccount message - _, err = suite.executeNeutronMsg(suite.contractAddress, msg) - suite.NoError(err) -} - -func (suite *CustomMessengerTestSuite) TestRegisterInterchainAccountLongID() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - - // Craft RegisterInterchainAccount message - msg, err := json.Marshal(bindings.NeutronMsg{ - RegisterInterchainAccount: &bindings.RegisterInterchainAccount{ - ConnectionId: suite.Path.EndpointA.ConnectionID, - // the limit is 47, this line is 50 characters long - InterchainAccountId: "01234567890123456789012345678901234567890123456789", - }, - }) - suite.NoError(err) - - // Dispatch RegisterInterchainAccount message via DispatchHandler cause we want to catch an error from SDK directly, not from a contract - _, _, _, err = suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) - suite.Error(err) - suite.ErrorIs(err, ictxtypes.ErrLongInterchainAccountID) -} - -// func (suite *CustomMessengerTestSuite) TestRegisterInterchainQuery() { -// // Store code and instantiate reflect contract -// codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") -// suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) -// suite.Require().NotEmpty(suite.contractAddress) - -// err := testutil.SetupICAPath(suite.Path, suite.contractAddress.String()) -// suite.Require().NoError(err) - -// // Top up contract balance -// senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() -// coinsAmnt := sdk.NewCoins(sdk.NewCoin(params.DefaultBondDenom, math.NewInt(int64(10_000_000)))) -// bankKeeper := suite.nolus.BankKeeper -// err = bankKeeper.SendCoins(suite.ctx, senderAddress, suite.contractAddress, coinsAmnt) -// suite.NoError(err) - -// // Craft RegisterInterchainQuery message -// msg, err := json.Marshal(bindings.NeutronMsg{ -// RegisterInterchainQuery: &bindings.RegisterInterchainQuery{ -// QueryType: string(icqtypes.InterchainQueryTypeKV), -// Keys: []*icqtypes.KVKey{ -// {Path: ibchost.StoreKey, Key: host.FullClientStateKey(suite.Path.EndpointB.ClientID)}, +// import ( +// "encoding/json" +// "testing" + +// "cosmossdk.io/math" +// wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + +// ibcchanneltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" + +// "github.com/stretchr/testify/suite" + +// ictxtypes "github.com/neutron-org/neutron/v4/x/interchaintxs/types" + +// "github.com/CosmWasm/wasmd/x/wasm/keeper" +// "github.com/CosmWasm/wasmvm/v2/types" +// sdk "github.com/cosmos/cosmos-sdk/types" +// "github.com/stretchr/testify/require" + +// "github.com/Nolus-Protocol/nolus-core/app" +// "github.com/Nolus-Protocol/nolus-core/app/params" +// "github.com/Nolus-Protocol/nolus-core/testutil" +// "github.com/Nolus-Protocol/nolus-core/wasmbinding" +// "github.com/Nolus-Protocol/nolus-core/wasmbinding/bindings" +// contractmanagerkeeper "github.com/neutron-org/neutron/v4/x/contractmanager/keeper" +// feetypes "github.com/neutron-org/neutron/v4/x/feerefunder/types" +// icqkeeper "github.com/neutron-org/neutron/v4/x/interchainqueries/keeper" +// ictxkeeper "github.com/neutron-org/neutron/v4/x/interchaintxs/keeper" +// ) + +// const FeeCollectorAddress = "nolus1vguuxez2h5ekltfj9gjd62fs5k4rl2zy5hfrncasykzw08rezpfsd2rhm7" + +// type CustomMessengerTestSuite struct { +// testutil.IBCConnectionTestSuite +// nolus *app.App +// ctx sdk.Context +// messenger *wasmbinding.CustomMessenger +// contractOwner sdk.AccAddress +// contractAddress sdk.AccAddress +// contractKeeper wasmtypes.ContractOpsKeeper +// } + +// func (suite *CustomMessengerTestSuite) SetupTest() { +// suite.IBCConnectionTestSuite.SetupTest() +// suite.nolus = suite.GetNolusZoneApp(suite.ChainA) +// suite.ctx = suite.ChainA.GetContext() +// suite.messenger = &wasmbinding.CustomMessenger{} +// suite.messenger.Ictxmsgserver = ictxkeeper.NewMsgServerImpl(*suite.nolus.InterchainTxsKeeper) +// suite.messenger.Keeper = *suite.nolus.InterchainTxsKeeper +// suite.messenger.Icqmsgserver = icqkeeper.NewMsgServerImpl(*suite.nolus.InterchainQueriesKeeper) +// suite.messenger.ContractmanagerKeeper = suite.nolus.ContractManagerKeeper +// suite.contractOwner = keeper.RandomAccountAddress(suite.T()) + +// suite.contractKeeper = keeper.NewDefaultPermissionKeeper(&suite.nolus.WasmKeeper) + +// codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") +// suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) +// suite.Require().NotEmpty(suite.contractAddress) +// } + +// func (suite *CustomMessengerTestSuite) TestRegisterInterchainAccount() { +// // Craft RegisterInterchainAccount message +// msg := bindings.NeutronMsg{ +// RegisterInterchainAccount: &bindings.RegisterInterchainAccount{ +// ConnectionId: suite.Path.EndpointA.ConnectionID, +// InterchainAccountId: testutil.TestInterchainID, +// RegisterFee: sdk.NewCoins(sdk.NewCoin(params.DefaultBondDenom, math.NewInt(1_000_000))), +// }, +// } + +// bankKeeper := suite.nolus.BankKeeper +// senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() +// err := bankKeeper.SendCoins(suite.ctx, senderAddress, suite.contractAddress, sdk.NewCoins(sdk.NewCoin(params.DefaultBondDenom, math.NewInt(1_000_000)))) +// suite.NoError(err) + +// // Dispatch RegisterInterchainAccount message +// _, err = suite.executeNeutronMsg(suite.contractAddress, msg) +// suite.NoError(err) +// } + +// func (suite *CustomMessengerTestSuite) TestRegisterInterchainAccountLongID() { +// // Store code and instantiate reflect contract +// codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") +// suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) +// suite.Require().NotEmpty(suite.contractAddress) + +// // Craft RegisterInterchainAccount message +// msg, err := json.Marshal(bindings.NeutronMsg{ +// RegisterInterchainAccount: &bindings.RegisterInterchainAccount{ +// ConnectionId: suite.Path.EndpointA.ConnectionID, +// // the limit is 47, this line is 50 characters long +// InterchainAccountId: "01234567890123456789012345678901234567890123456789", +// }, +// }) +// suite.NoError(err) + +// // Dispatch RegisterInterchainAccount message via DispatchHandler cause we want to catch an error from SDK directly, not from a contract +// _, _, _, err = suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ +// Custom: msg, +// }) +// suite.Error(err) +// suite.ErrorIs(err, ictxtypes.ErrLongInterchainAccountID) +// } + +// // func (suite *CustomMessengerTestSuite) TestRegisterInterchainQuery() { +// // // Store code and instantiate reflect contract +// // codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") +// // suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) +// // suite.Require().NotEmpty(suite.contractAddress) + +// // err := testutil.SetupICAPath(suite.Path, suite.contractAddress.String()) +// // suite.Require().NoError(err) + +// // // Top up contract balance +// // senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() +// // coinsAmnt := sdk.NewCoins(sdk.NewCoin(params.DefaultBondDenom, math.NewInt(int64(10_000_000)))) +// // bankKeeper := suite.nolus.BankKeeper +// // err = bankKeeper.SendCoins(suite.ctx, senderAddress, suite.contractAddress, coinsAmnt) +// // suite.NoError(err) + +// // // Craft RegisterInterchainQuery message +// // msg, err := json.Marshal(bindings.NeutronMsg{ +// // RegisterInterchainQuery: &bindings.RegisterInterchainQuery{ +// // QueryType: string(icqtypes.InterchainQueryTypeKV), +// // Keys: []*icqtypes.KVKey{ +// // {Path: ibchost.StoreKey, Key: host.FullClientStateKey(suite.Path.EndpointB.ClientID)}, +// // }, +// // TransactionsFilter: "{}", +// // ConnectionId: suite.Path.EndpointA.ConnectionID, +// // UpdatePeriod: 20, +// // }, +// // }) +// // suite.NoError(err) + +// // // Dispatch RegisterInterchainQuery message +// // events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ +// // Custom: msg, +// // }) +// // suite.NoError(err) +// // suite.Nil(events) +// // suite.Equal([][]byte{[]byte(`{"id":1}`)}, data) +// // } + +// // func (suite *CustomMessengerTestSuite) TestUpdateInterchainQuery() { +// // // reuse register interchain query test to get query registered +// // suite.TestRegisterInterchainQuery() + +// // // Craft UpdateInterchainQuery message +// // msg, err := json.Marshal(bindings.NeutronMsg{ +// // UpdateInterchainQuery: &bindings.UpdateInterchainQuery{ +// // QueryId: 1, +// // NewKeys: nil, +// // NewUpdatePeriod: 111, +// // }, +// // }) +// // suite.NoError(err) + +// // // Dispatch UpdateInterchainQuery message +// // events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ +// // Custom: msg, +// // }) +// // suite.NoError(err) +// // suite.Nil(events) +// // suite.Equal([][]byte{[]byte(`{}`)}, data) +// // } + +// // func (suite *CustomMessengerTestSuite) TestUpdateInterchainQueryFailed() { +// // // Craft UpdateInterchainQuery message +// // msg, err := json.Marshal(bindings.NeutronMsg{ +// // UpdateInterchainQuery: &bindings.UpdateInterchainQuery{ +// // QueryId: 1, +// // NewKeys: nil, +// // NewUpdatePeriod: 1, +// // }, +// // }) +// // suite.NoError(err) + +// // // Dispatch UpdateInterchainQuery message +// // owner, err := sdk.AccAddressFromBech32(testutil.TestOwnerAddress) +// // suite.NoError(err) +// // events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, owner, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ +// // Custom: msg, +// // }) +// // expectedErrMsg := "failed to update interchain query: failed to update interchain query: failed to get query by query id: there is no query with id: 1" +// // suite.Require().ErrorContains(err, expectedErrMsg) +// // suite.Nil(events) +// // suite.Nil(data) +// // } + +// // func (suite *CustomMessengerTestSuite) TestRemoveInterchainQuery() { +// // // Reuse register interchain query test to get query registered +// // suite.TestRegisterInterchainQuery() + +// // // Craft RemoveInterchainQuery message +// // msg, err := json.Marshal(bindings.NeutronMsg{ +// // RemoveInterchainQuery: &bindings.RemoveInterchainQuery{ +// // QueryId: 1, +// // }, +// // }) +// // suite.NoError(err) + +// // // Dispatch RemoveInterchainQuery message +// // suite.NoError(err) +// // events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ +// // Custom: msg, +// // }) +// // suite.NoError(err) +// // suite.Nil(events) +// // suite.Equal([][]byte{[]byte(`{}`)}, data) +// // } + +// // func (suite *CustomMessengerTestSuite) TestRemoveInterchainQueryFailed() { +// // // Craft RemoveInterchainQuery message +// // msg, err := json.Marshal(bindings.NeutronMsg{ +// // RemoveInterchainQuery: &bindings.RemoveInterchainQuery{ +// // QueryId: 1, +// // }, +// // }) +// // suite.NoError(err) + +// // // Dispatch RemoveInterchainQuery message +// // owner, err := sdk.AccAddressFromBech32(testutil.TestOwnerAddress) +// // suite.NoError(err) +// // events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, owner, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ +// // Custom: msg, +// // }) +// // expectedErrMsg := "failed to remove interchain query: failed to remove interchain query: failed to get query by query id: there is no query with id: 1" +// // suite.Require().ErrorContains(err, expectedErrMsg) +// // suite.Nil(events) +// // suite.Nil(data) +// // } + +// func (suite *CustomMessengerTestSuite) TestSubmitTx() { +// // Store code and instantiate reflect contract +// codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") +// suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) +// suite.Require().NotEmpty(suite.contractAddress) + +// senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() +// coinsAmnt := sdk.NewCoins(sdk.NewCoin(params.DefaultBondDenom, math.NewInt(int64(10_000_000)))) +// bankKeeper := suite.nolus.BankKeeper +// err := bankKeeper.SendCoins(suite.ctx, senderAddress, suite.contractAddress, coinsAmnt) +// suite.NoError(err) + +// err = testutil.SetupICAPath(suite.Path, suite.contractAddress.String()) +// suite.Require().NoError(err) + +// events, data, _, err := suite.messenger.DispatchMsg( +// suite.ctx, +// suite.contractAddress, +// suite.Path.EndpointA.ChannelConfig.PortID, +// types.CosmosMsg{ +// Custom: suite.craftMarshaledMsgSubmitTxWithNumMsgs(1), +// }, +// ) +// suite.NoError(err) + +// var response ictxtypes.MsgSubmitTxResponse +// err = json.Unmarshal(data[0], &response) +// suite.NoError(err) +// suite.Nil(events) +// suite.Equal(uint64(1), response.SequenceId) +// suite.Equal("channel-2", response.Channel) +// } + +// func (suite *CustomMessengerTestSuite) TestSubmitTxTooMuchTxs() { +// // Store code and instantiate reflect contract +// codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") +// suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) +// suite.Require().NotEmpty(suite.contractAddress) + +// err := testutil.SetupICAPath(suite.Path, suite.contractAddress.String()) +// suite.Require().NoError(err) + +// _, _, _, err = suite.messenger.DispatchMsg( +// suite.ctx, +// suite.contractAddress, +// suite.Path.EndpointA.ChannelConfig.PortID, +// types.CosmosMsg{ +// Custom: suite.craftMarshaledMsgSubmitTxWithNumMsgs(20), // }, -// TransactionsFilter: "{}", -// ConnectionId: suite.Path.EndpointA.ConnectionID, -// UpdatePeriod: 20, -// }, -// }) -// suite.NoError(err) - -// // Dispatch RegisterInterchainQuery message -// events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ -// Custom: msg, -// }) -// suite.NoError(err) -// suite.Nil(events) -// suite.Equal([][]byte{[]byte(`{"id":1}`)}, data) +// ) +// suite.ErrorContains(err, "MsgSubmitTx contains more messages than allowed") // } -// func (suite *CustomMessengerTestSuite) TestUpdateInterchainQuery() { -// // reuse register interchain query test to get query registered -// suite.TestRegisterInterchainQuery() - -// // Craft UpdateInterchainQuery message -// msg, err := json.Marshal(bindings.NeutronMsg{ -// UpdateInterchainQuery: &bindings.UpdateInterchainQuery{ -// QueryId: 1, -// NewKeys: nil, -// NewUpdatePeriod: 111, -// }, -// }) -// suite.NoError(err) - -// // Dispatch UpdateInterchainQuery message -// events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ -// Custom: msg, -// }) -// suite.NoError(err) -// suite.Nil(events) -// suite.Equal([][]byte{[]byte(`{}`)}, data) +// func (suite *CustomMessengerTestSuite) TestResubmitFailureAck() { +// // Store code and instantiate reflect contract +// codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") +// suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) +// suite.Require().NotEmpty(suite.contractAddress) + +// // Add failure +// packet := ibcchanneltypes.Packet{} +// ack := ibcchanneltypes.Acknowledgement{ +// Response: &ibcchanneltypes.Acknowledgement_Result{Result: []byte("Result")}, +// } +// payload, err := contractmanagerkeeper.PrepareSudoCallbackMessage(packet, &ack) +// require.NoError(suite.T(), err) +// failureID := suite.messenger.ContractmanagerKeeper.GetNextFailureIDKey(suite.ctx, suite.contractAddress.String()) +// suite.messenger.ContractmanagerKeeper.AddContractFailure(suite.ctx, suite.contractAddress.String(), payload, "test error") + +// // Craft message +// msg, err := json.Marshal(bindings.NeutronMsg{ +// ResubmitFailure: &bindings.ResubmitFailure{ +// FailureId: failureID, +// }, +// }) +// suite.NoError(err) + +// // Dispatch +// events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ +// Custom: msg, +// }) +// suite.NoError(err) +// suite.Nil(events) +// expected, err := json.Marshal(&bindings.ResubmitFailureResponse{}) +// suite.NoError(err) +// suite.Equal([][]uint8{expected}, data) // } -// func (suite *CustomMessengerTestSuite) TestUpdateInterchainQueryFailed() { -// // Craft UpdateInterchainQuery message -// msg, err := json.Marshal(bindings.NeutronMsg{ -// UpdateInterchainQuery: &bindings.UpdateInterchainQuery{ -// QueryId: 1, -// NewKeys: nil, -// NewUpdatePeriod: 1, -// }, -// }) -// suite.NoError(err) - -// // Dispatch UpdateInterchainQuery message -// owner, err := sdk.AccAddressFromBech32(testutil.TestOwnerAddress) -// suite.NoError(err) -// events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, owner, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ -// Custom: msg, -// }) -// expectedErrMsg := "failed to update interchain query: failed to update interchain query: failed to get query by query id: there is no query with id: 1" -// suite.Require().ErrorContains(err, expectedErrMsg) -// suite.Nil(events) -// suite.Nil(data) +// func (suite *CustomMessengerTestSuite) TestResubmitFailureTimeout() { +// // Store code and instantiate reflect contract +// codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") +// suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) +// suite.Require().NotEmpty(suite.contractAddress) + +// // Add failure +// packet := ibcchanneltypes.Packet{} +// payload, err := contractmanagerkeeper.PrepareSudoCallbackMessage(packet, nil) +// require.NoError(suite.T(), err) +// failureID := suite.messenger.ContractmanagerKeeper.GetNextFailureIDKey(suite.ctx, suite.contractAddress.String()) +// suite.messenger.ContractmanagerKeeper.AddContractFailure(suite.ctx, suite.contractAddress.String(), payload, "test error") + +// // Craft message +// msg, err := json.Marshal(bindings.NeutronMsg{ +// ResubmitFailure: &bindings.ResubmitFailure{ +// FailureId: failureID, +// }, +// }) +// suite.NoError(err) + +// // Dispatch +// events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ +// Custom: msg, +// }) +// suite.NoError(err) +// suite.Nil(events) +// expected, err := json.Marshal(&bindings.ResubmitFailureResponse{FailureId: failureID}) +// suite.NoError(err) +// suite.Equal([][]uint8{expected}, data) // } -// func (suite *CustomMessengerTestSuite) TestRemoveInterchainQuery() { -// // Reuse register interchain query test to get query registered -// suite.TestRegisterInterchainQuery() - -// // Craft RemoveInterchainQuery message -// msg, err := json.Marshal(bindings.NeutronMsg{ -// RemoveInterchainQuery: &bindings.RemoveInterchainQuery{ -// QueryId: 1, -// }, -// }) -// suite.NoError(err) - -// // Dispatch RemoveInterchainQuery message -// suite.NoError(err) -// events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ -// Custom: msg, -// }) -// suite.NoError(err) -// suite.Nil(events) -// suite.Equal([][]byte{[]byte(`{}`)}, data) +// func (suite *CustomMessengerTestSuite) TestResubmitFailureFromDifferentContract() { +// // Store code and instantiate reflect contract +// codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") +// suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) +// suite.Require().NotEmpty(suite.contractAddress) + +// // Add failure +// packet := ibcchanneltypes.Packet{} +// ack := ibcchanneltypes.Acknowledgement{ +// Response: &ibcchanneltypes.Acknowledgement_Error{Error: "ErrorSudoPayload"}, +// } +// failureID := suite.messenger.ContractmanagerKeeper.GetNextFailureIDKey(suite.ctx, testutil.TestOwnerAddress) +// payload, err := contractmanagerkeeper.PrepareSudoCallbackMessage(packet, &ack) +// require.NoError(suite.T(), err) +// suite.messenger.ContractmanagerKeeper.AddContractFailure(suite.ctx, testutil.TestOwnerAddress, payload, "test error") + +// // Craft message +// msg, err := json.Marshal(bindings.NeutronMsg{ +// ResubmitFailure: &bindings.ResubmitFailure{ +// FailureId: failureID, +// }, +// }) +// suite.NoError(err) + +// // Dispatch +// _, _, _, err = suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ +// Custom: msg, +// }) +// suite.ErrorContains(err, "no failure found to resubmit: not found") // } -// func (suite *CustomMessengerTestSuite) TestRemoveInterchainQueryFailed() { -// // Craft RemoveInterchainQuery message -// msg, err := json.Marshal(bindings.NeutronMsg{ -// RemoveInterchainQuery: &bindings.RemoveInterchainQuery{ -// QueryId: 1, -// }, -// }) -// suite.NoError(err) - -// // Dispatch RemoveInterchainQuery message -// owner, err := sdk.AccAddressFromBech32(testutil.TestOwnerAddress) -// suite.NoError(err) -// events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, owner, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ -// Custom: msg, -// }) -// expectedErrMsg := "failed to remove interchain query: failed to remove interchain query: failed to get query by query id: there is no query with id: 1" -// suite.Require().ErrorContains(err, expectedErrMsg) -// suite.Nil(events) -// suite.Nil(data) +// func (suite *CustomMessengerTestSuite) craftMarshaledMsgSubmitTxWithNumMsgs(numMsgs int) (result []byte) { +// msg := bindings.ProtobufAny{ +// TypeURL: "/cosmos.staking.v1beta1.MsgDelegate", +// Value: []byte{26, 10, 10, 5, 115, 116, 97, 107, 101, 18, 1, 48}, +// } +// msgs := make([]bindings.ProtobufAny, 0, numMsgs) +// for i := 0; i < numMsgs; i++ { +// msgs = append(msgs, msg) +// } +// result, err := json.Marshal(struct { +// SubmitTx bindings.SubmitTx `json:"submit_tx"` +// }{ +// SubmitTx: bindings.SubmitTx{ +// ConnectionId: suite.Path.EndpointA.ConnectionID, +// InterchainAccountId: testutil.TestInterchainID, +// Msgs: msgs, +// Memo: "Jimmy", +// Timeout: 2000, +// Fee: feetypes.Fee{ +// RecvFee: sdk.NewCoins(), +// AckFee: sdk.NewCoins(sdk.NewCoin(params.DefaultBondDenom, math.NewInt(1000))), +// TimeoutFee: sdk.NewCoins(sdk.NewCoin(params.DefaultBondDenom, math.NewInt(1000))), +// }, +// }, +// }) +// suite.NoError(err) +// return // } -func (suite *CustomMessengerTestSuite) TestSubmitTx() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - - senderAddress := suite.ChainA.SenderAccounts[0].SenderAccount.GetAddress() - coinsAmnt := sdk.NewCoins(sdk.NewCoin(params.DefaultBondDenom, math.NewInt(int64(10_000_000)))) - bankKeeper := suite.nolus.BankKeeper - err := bankKeeper.SendCoins(suite.ctx, senderAddress, suite.contractAddress, coinsAmnt) - suite.NoError(err) - - err = testutil.SetupICAPath(suite.Path, suite.contractAddress.String()) - suite.Require().NoError(err) - - events, data, _, err := suite.messenger.DispatchMsg( - suite.ctx, - suite.contractAddress, - suite.Path.EndpointA.ChannelConfig.PortID, - types.CosmosMsg{ - Custom: suite.craftMarshaledMsgSubmitTxWithNumMsgs(1), - }, - ) - suite.NoError(err) - - var response ictxtypes.MsgSubmitTxResponse - err = json.Unmarshal(data[0], &response) - suite.NoError(err) - suite.Nil(events) - suite.Equal(uint64(1), response.SequenceId) - suite.Equal("channel-2", response.Channel) -} - -func (suite *CustomMessengerTestSuite) TestSubmitTxTooMuchTxs() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - - err := testutil.SetupICAPath(suite.Path, suite.contractAddress.String()) - suite.Require().NoError(err) - - _, _, _, err = suite.messenger.DispatchMsg( - suite.ctx, - suite.contractAddress, - suite.Path.EndpointA.ChannelConfig.PortID, - types.CosmosMsg{ - Custom: suite.craftMarshaledMsgSubmitTxWithNumMsgs(20), - }, - ) - suite.ErrorContains(err, "MsgSubmitTx contains more messages than allowed") -} - -func (suite *CustomMessengerTestSuite) TestResubmitFailureAck() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - - // Add failure - packet := ibcchanneltypes.Packet{} - ack := ibcchanneltypes.Acknowledgement{ - Response: &ibcchanneltypes.Acknowledgement_Result{Result: []byte("Result")}, - } - payload, err := contractmanagerkeeper.PrepareSudoCallbackMessage(packet, &ack) - require.NoError(suite.T(), err) - failureID := suite.messenger.ContractmanagerKeeper.GetNextFailureIDKey(suite.ctx, suite.contractAddress.String()) - suite.messenger.ContractmanagerKeeper.AddContractFailure(suite.ctx, suite.contractAddress.String(), payload, "test error") - - // Craft message - msg, err := json.Marshal(bindings.NeutronMsg{ - ResubmitFailure: &bindings.ResubmitFailure{ - FailureId: failureID, - }, - }) - suite.NoError(err) - - // Dispatch - events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) - suite.NoError(err) - suite.Nil(events) - expected, err := json.Marshal(&bindings.ResubmitFailureResponse{}) - suite.NoError(err) - suite.Equal([][]uint8{expected}, data) -} - -func (suite *CustomMessengerTestSuite) TestResubmitFailureTimeout() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - - // Add failure - packet := ibcchanneltypes.Packet{} - payload, err := contractmanagerkeeper.PrepareSudoCallbackMessage(packet, nil) - require.NoError(suite.T(), err) - failureID := suite.messenger.ContractmanagerKeeper.GetNextFailureIDKey(suite.ctx, suite.contractAddress.String()) - suite.messenger.ContractmanagerKeeper.AddContractFailure(suite.ctx, suite.contractAddress.String(), payload, "test error") - - // Craft message - msg, err := json.Marshal(bindings.NeutronMsg{ - ResubmitFailure: &bindings.ResubmitFailure{ - FailureId: failureID, - }, - }) - suite.NoError(err) - - // Dispatch - events, data, _, err := suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) - suite.NoError(err) - suite.Nil(events) - expected, err := json.Marshal(&bindings.ResubmitFailureResponse{FailureId: failureID}) - suite.NoError(err) - suite.Equal([][]uint8{expected}, data) -} - -func (suite *CustomMessengerTestSuite) TestResubmitFailureFromDifferentContract() { - // Store code and instantiate reflect contract - codeID := suite.StoreTestCode(suite.ctx, suite.contractOwner, "../testdata/reflect.wasm") - suite.contractAddress = suite.InstantiateTestContract(suite.ctx, suite.contractOwner, codeID) - suite.Require().NotEmpty(suite.contractAddress) - - // Add failure - packet := ibcchanneltypes.Packet{} - ack := ibcchanneltypes.Acknowledgement{ - Response: &ibcchanneltypes.Acknowledgement_Error{Error: "ErrorSudoPayload"}, - } - failureID := suite.messenger.ContractmanagerKeeper.GetNextFailureIDKey(suite.ctx, testutil.TestOwnerAddress) - payload, err := contractmanagerkeeper.PrepareSudoCallbackMessage(packet, &ack) - require.NoError(suite.T(), err) - suite.messenger.ContractmanagerKeeper.AddContractFailure(suite.ctx, testutil.TestOwnerAddress, payload, "test error") - - // Craft message - msg, err := json.Marshal(bindings.NeutronMsg{ - ResubmitFailure: &bindings.ResubmitFailure{ - FailureId: failureID, - }, - }) - suite.NoError(err) - - // Dispatch - _, _, _, err = suite.messenger.DispatchMsg(suite.ctx, suite.contractAddress, suite.Path.EndpointA.ChannelConfig.PortID, types.CosmosMsg{ - Custom: msg, - }) - suite.ErrorContains(err, "no failure found to resubmit: not found") -} - -func (suite *CustomMessengerTestSuite) craftMarshaledMsgSubmitTxWithNumMsgs(numMsgs int) (result []byte) { - msg := bindings.ProtobufAny{ - TypeURL: "/cosmos.staking.v1beta1.MsgDelegate", - Value: []byte{26, 10, 10, 5, 115, 116, 97, 107, 101, 18, 1, 48}, - } - msgs := make([]bindings.ProtobufAny, 0, numMsgs) - for i := 0; i < numMsgs; i++ { - msgs = append(msgs, msg) - } - result, err := json.Marshal(struct { - SubmitTx bindings.SubmitTx `json:"submit_tx"` - }{ - SubmitTx: bindings.SubmitTx{ - ConnectionId: suite.Path.EndpointA.ConnectionID, - InterchainAccountId: testutil.TestInterchainID, - Msgs: msgs, - Memo: "Jimmy", - Timeout: 2000, - Fee: feetypes.Fee{ - RecvFee: sdk.NewCoins(), - AckFee: sdk.NewCoins(sdk.NewCoin(params.DefaultBondDenom, math.NewInt(1000))), - TimeoutFee: sdk.NewCoins(sdk.NewCoin(params.DefaultBondDenom, math.NewInt(1000))), - }, - }, - }) - suite.NoError(err) - return -} - -func (suite *CustomMessengerTestSuite) executeCustomMsg(contractAddress sdk.AccAddress, fullMsg json.RawMessage) (data []byte, err error) { - customMsg := types.CosmosMsg{ - Custom: fullMsg, - } - - type ExecuteMsg struct { - ReflectMsg struct { - Msgs []types.CosmosMsg `json:"msgs"` - } `json:"reflect_msg"` - } - - execMsg := ExecuteMsg{ReflectMsg: struct { - Msgs []types.CosmosMsg `json:"msgs"` - }(struct{ Msgs []types.CosmosMsg }{Msgs: []types.CosmosMsg{customMsg}})} - - msg, err := json.Marshal(execMsg) - suite.NoError(err) - - data, err = suite.contractKeeper.Execute(suite.ctx, contractAddress, suite.contractOwner, msg, nil) - - return -} - -func (suite *CustomMessengerTestSuite) executeNeutronMsg(contractAddress sdk.AccAddress, fullMsg bindings.NeutronMsg) (data []byte, err error) { - fullMsgBz, err := json.Marshal(fullMsg) - suite.NoError(err) - - return suite.executeCustomMsg(contractAddress, fullMsgBz) -} - -func TestMessengerTestSuite(t *testing.T) { - suite.Run(t, new(CustomMessengerTestSuite)) -} +// func (suite *CustomMessengerTestSuite) executeCustomMsg(contractAddress sdk.AccAddress, fullMsg json.RawMessage) (data []byte, err error) { +// customMsg := types.CosmosMsg{ +// Custom: fullMsg, +// } + +// type ExecuteMsg struct { +// ReflectMsg struct { +// Msgs []types.CosmosMsg `json:"msgs"` +// } `json:"reflect_msg"` +// } + +// execMsg := ExecuteMsg{ReflectMsg: struct { +// Msgs []types.CosmosMsg `json:"msgs"` +// }(struct{ Msgs []types.CosmosMsg }{Msgs: []types.CosmosMsg{customMsg}})} + +// msg, err := json.Marshal(execMsg) +// suite.NoError(err) + +// data, err = suite.contractKeeper.Execute(suite.ctx, contractAddress, suite.contractOwner, msg, nil) + +// return +// } + +// func (suite *CustomMessengerTestSuite) executeNeutronMsg(contractAddress sdk.AccAddress, fullMsg bindings.NeutronMsg) (data []byte, err error) { +// fullMsgBz, err := json.Marshal(fullMsg) +// suite.NoError(err) + +// return suite.executeCustomMsg(contractAddress, fullMsgBz) +// } + +// func TestMessengerTestSuite(t *testing.T) { +// suite.Run(t, new(CustomMessengerTestSuite)) +// }