From 024be4c99a7692c1c3fccccd3da33044b512b247 Mon Sep 17 00:00:00 2001 From: ByeongSu Hong Date: Thu, 17 Oct 2024 02:09:12 +0900 Subject: [PATCH 1/5] fix!: multisig ISM (#1) * fix!(isms): prevent reuse of validator signature * chore: remove redundant comments * fix(isms): clear way to verify message * use hashset --- contracts/isms/multisig/src/query.rs | 60 +++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/contracts/isms/multisig/src/query.rs b/contracts/isms/multisig/src/query.rs index 2c265092..758ca169 100644 --- a/contracts/isms/multisig/src/query.rs +++ b/contracts/isms/multisig/src/query.rs @@ -1,3 +1,5 @@ +use std::collections::HashSet; + use cosmwasm_std::{Deps, HexBinary}; use hpl_interface::{ ism::{IsmType, ModuleTypeResponse, VerifyInfoResponse, VerifyResponse}, @@ -35,20 +37,25 @@ pub fn verify_message( let hashed_message = eth_hash(multisig_hash)?; - // pizza :) let validators = VALIDATORS.load(deps.storage, message.origin_domain)?; let mut threshold = THRESHOLD.load(deps.storage, message.origin_domain)?; + let mut matched_validators = HashSet::new(); + for signature in metadata.signatures { let signature = signature.as_slice(); - let pubkey = deps.api.secp256k1_recover_pubkey( + let signer_pubkey = deps.api.secp256k1_recover_pubkey( &hashed_message, &signature[..64], signature[64] - 27, )?; - if validators.contains(ð_addr(pubkey.into())?) { + let signer_addr = eth_addr(signer_pubkey.into())?; + + if validators.contains(&signer_addr) && !matched_validators.contains(&signer_addr) { threshold -= 1; + matched_validators.insert(signer_addr); + if threshold == 0 { break; } @@ -81,7 +88,7 @@ mod test { use cosmwasm_std::{testing::mock_dependencies, HexBinary}; use hpl_interface::{ ism::{IsmType, ModuleTypeResponse, VerifyResponse}, - types::{eth_addr, Message}, + types::{eth_addr, Message, MessageIdMultisigIsmMetadata}, }; use ibcx_test_utils::hex; use k256::{ecdsa::SigningKey, elliptic_curve::rand_core::OsRng}; @@ -104,7 +111,7 @@ mod test { #[rstest] #[case( hex("0000000000000068220000000000000000000000000d1255b09d94659bb0888e0aa9fca60245ce402a0000682155208cd518cffaac1b5d8df216a9bd050c9a03f0d4f3ba88e5268ac4cd12ee2d68656c6c6f"), - hex("986a1625d44e4b3969b08a5876171b2b4fcdf61b3e5c70a86ad17b304f17740a9f45d99ea6bec61392a47684f4e5d1416ddbcb5fdef0f132c27d7034e9bbff1c00000000ba9911d78ec6d561413e3589f920388cbd7554fbddd8ce50739337250853ec3577a51fa40e727c05b50f15db13f5aad5857c89d432644be48d70325ea83fdb6c1c"), + hex("986a1625d44e4b3969b08a5876171b2b4fcdf61b3e5c70a86ad17b304f17740a9f45d99ea6bec61392a47684f4e5d1416ddbcb5fdef0f132c27d7034e9bbff1c00000000ba9911d78ec6d561413e3589f920388cbd7554fbddd8ce50739337250853ec3577a51fa40e727c05b50f15db13f5aad5857c89d432644be48d70325ea83fdb6c1c"), vec![ hex("122e0663ccc190266427e7fc0ed6589b5d7d36db"), hex("01d7525e91dfc3f594fd366aad70f956b398de9e"), @@ -139,6 +146,49 @@ mod test { assert_eq!(res, VerifyResponse { verified: true }); } + #[test] + fn test_verify_prevent_reuse_of_validator_signature() { + let mut deps = mock_dependencies(); + + let threshold = 2u8; + let validators = vec![ + hex("ebc301013b6cd2548e347c28d2dc43ec20c068f2"), + hex("315db9868fc8813b221b1694f8760ece39f45447"), + hex("17517c98358c5937c5d9ee47ce1f5b4c2b7fc9f5"), + ]; + + let message = Message { + version: 3, + nonce: 36, + origin_domain: 80001, + sender: hex("00000000000000000000000004980c17e2ce26578c82f81207e706e4505fae3b"), + dest_domain: 43113, + recipient: hex("0000000000000000000000000b1c1b54f45e02552331d3106e71f5e0b573d5d4"), + body: hex("48656c6c6f21"), + }; + + let metadata = MessageIdMultisigIsmMetadata { + origin_merkle_tree: hex("0000000000000000000000009af85731edd41e2e50f81ef8a0a69d2fb836edf9"), + merkle_root: hex("a84430f822e0e9b5942faace72bd5b97f0b59a58a9b8281231d9e5c393b5859c"), + merkle_index: hex("00000024"), + signatures: [ + // same signature + hex("539feceace17782697e29e74151006dc7b47227cf48aba02926336cb5f7fa38b3d05e8293045f7b5811eda3ae8aa070116bb5fbf57c79e143a69e909df90cefa1b"), + hex("539feceace17782697e29e74151006dc7b47227cf48aba02926336cb5f7fa38b3d05e8293045f7b5811eda3ae8aa070116bb5fbf57c79e143a69e909df90cefa1b") + ].to_vec() + }; + + VALIDATORS + .save(deps.as_mut().storage, message.origin_domain, &validators) + .unwrap(); + THRESHOLD + .save(deps.as_mut().storage, message.origin_domain, &threshold) + .unwrap(); + + let res = verify_message(deps.as_ref(), metadata.into(), message.into()).unwrap(); + assert_eq!(res, VerifyResponse { verified: false }); + } + #[test] fn test_get_verify_info() { let raw_message = hex("0000000000000068220000000000000000000000000d1255b09d94659bb0888e0aa9fca60245ce402a0000682155208cd518cffaac1b5d8df216a9bd050c9a03f0d4f3ba88e5268ac4cd12ee2d68656c6c6f"); From a11f31b1c45a4d3242759af5a280c07085f68d7b Mon Sep 17 00:00:00 2001 From: ByeongSu Hong Date: Thu, 17 Oct 2024 02:36:07 +0900 Subject: [PATCH 2/5] Bump workspace version to `v0.0.7`, and ran `cargo fmt` (#2) --- Cargo.toml | 26 ++++++++++----------- integration-test/tests/contracts/cw/hook.rs | 4 +--- packages/interface/src/hook/fee.rs | 10 +++----- packages/interface/src/hook/mod.rs | 2 +- packages/interface/src/ism/mod.rs | 2 +- packages/interface/src/ism/pausable.rs | 11 +++++---- 6 files changed, 26 insertions(+), 29 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index d40683e3..0ea05401 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,13 +1,13 @@ [workspace] members = [ - "contracts/core/*", - "contracts/hooks/*", - "contracts/igps/*", - "contracts/isms/*", - "contracts/mocks/*", - "contracts/warp/*", - "packages/*", - "integration-test", + "contracts/core/*", + "contracts/hooks/*", + "contracts/igps/*", + "contracts/isms/*", + "contracts/mocks/*", + "contracts/warp/*", + "packages/*", + "integration-test", ] resolver = "2" @@ -27,11 +27,11 @@ panic = "abort" rpath = false [workspace.package] -version = "0.0.6" +version = "0.0.7" authors = [ - "byeongsu-hong ", - "Eric ", - "Steve ", + "byeongsu-hong ", + "Eric ", + "Steve ", ] edition = "2021" license = "Apache-2.0" @@ -68,7 +68,7 @@ serde_json = "1.0.96" serde-json-wasm = "1.0.0" schemars = "0.8.12" prost = { version = "0.12.1", default-features = false, features = [ - "prost-derive", + "prost-derive", ] } prost-types = { version = "0.12.1", default-features = false } hex-literal = { version = "0.4.1" } diff --git a/integration-test/tests/contracts/cw/hook.rs b/integration-test/tests/contracts/cw/hook.rs index 413c8cd2..1f5908ae 100644 --- a/integration-test/tests/contracts/cw/hook.rs +++ b/integration-test/tests/contracts/cw/hook.rs @@ -98,9 +98,7 @@ impl Hook { let hook = wasm .instantiate( codes.hook_merkle, - &hook::merkle::InstantiateMsg { - mailbox, - }, + &hook::merkle::InstantiateMsg { mailbox }, Some(deployer.address().as_str()), Some("cw-hpl-hook-merkle"), &[], diff --git a/packages/interface/src/hook/fee.rs b/packages/interface/src/hook/fee.rs index b814b642..d0097b6e 100644 --- a/packages/interface/src/hook/fee.rs +++ b/packages/interface/src/hook/fee.rs @@ -22,12 +22,8 @@ pub enum ExecuteMsg { #[cw_serde] pub enum FeeHookMsg { - SetFee { - fee: Coin, - }, - Claim { - recipient: Option - } + SetFee { fee: Coin }, + Claim { recipient: Option }, } #[cw_serde] @@ -43,7 +39,7 @@ pub enum QueryMsg { #[derive(QueryResponses)] pub enum FeeHookQueryMsg { #[returns(FeeResponse)] - Fee {} + Fee {}, } #[cw_serde] diff --git a/packages/interface/src/hook/mod.rs b/packages/interface/src/hook/mod.rs index 1c76d998..ba524a62 100644 --- a/packages/interface/src/hook/mod.rs +++ b/packages/interface/src/hook/mod.rs @@ -1,10 +1,10 @@ pub mod aggregate; +pub mod fee; pub mod merkle; pub mod pausable; pub mod routing; pub mod routing_custom; pub mod routing_fallback; -pub mod fee; use cosmwasm_schema::{cw_serde, QueryResponses}; use cosmwasm_std::{ diff --git a/packages/interface/src/ism/mod.rs b/packages/interface/src/ism/mod.rs index f3947053..699245ba 100644 --- a/packages/interface/src/ism/mod.rs +++ b/packages/interface/src/ism/mod.rs @@ -1,7 +1,7 @@ pub mod aggregate; pub mod multisig; -pub mod routing; pub mod pausable; +pub mod routing; use cosmwasm_schema::{cw_serde, QueryResponses}; use cosmwasm_std::{Addr, CustomQuery, HexBinary, QuerierWrapper, StdResult}; diff --git a/packages/interface/src/ism/pausable.rs b/packages/interface/src/ism/pausable.rs index 1f48934f..afdd1e17 100644 --- a/packages/interface/src/ism/pausable.rs +++ b/packages/interface/src/ism/pausable.rs @@ -1,19 +1,22 @@ use cosmwasm_schema::{cw_serde, QueryResponses}; -use crate::{ownable::{OwnableMsg, OwnableQueryMsg}, pausable::{PausableMsg, PausableQueryMsg}}; +use crate::{ + ownable::{OwnableMsg, OwnableQueryMsg}, + pausable::{PausableMsg, PausableQueryMsg}, +}; use super::IsmQueryMsg; #[cw_serde] pub struct InstantiateMsg { pub owner: String, - pub paused: bool + pub paused: bool, } #[cw_serde] pub enum ExecuteMsg { Ownable(OwnableMsg), - Pausable(PausableMsg) + Pausable(PausableMsg), } #[cw_serde] @@ -22,5 +25,5 @@ pub enum ExecuteMsg { pub enum QueryMsg { Ownable(OwnableQueryMsg), Ism(IsmQueryMsg), - Pausable(PausableQueryMsg) + Pausable(PausableQueryMsg), } From 5a958b65085af11149cfd36b113800ae17fb49dc Mon Sep 17 00:00:00 2001 From: Yorke Rhodes Date: Thu, 17 Oct 2024 15:58:51 -0400 Subject: [PATCH 3/5] Injective updates --- context/injective-1.json | 41 ++ script/deploy/ism.ts | 2 +- script/shared/config.ts | 16 + script/shared/contract.ts | 51 +- yarn.lock | 1126 ++++++++++++++++++++++++++++++++++++- 5 files changed, 1216 insertions(+), 20 deletions(-) create mode 100644 context/injective-1.json diff --git a/context/injective-1.json b/context/injective-1.json new file mode 100644 index 00000000..327d4a84 --- /dev/null +++ b/context/injective-1.json @@ -0,0 +1,41 @@ +{ + "version": "v0.0.7", + "artifacts": { + "hpl_hook_aggregate": 381, + "hpl_hook_fee": 382, + "hpl_hook_merkle": 383, + "hpl_hook_pausable": 384, + "hpl_hook_routing": 385, + "hpl_hook_routing_custom": 386, + "hpl_hook_routing_fallback": 387, + "hpl_igp": 388, + "hpl_igp_oracle": 389, + "hpl_ism_aggregate": 390, + "hpl_ism_multisig": 1183, + "hpl_ism_pausable": 392, + "hpl_ism_routing": 393, + "hpl_mailbox": 394, + "hpl_test_mock_hook": 395, + "hpl_test_mock_ism": 396, + "hpl_test_mock_msg_receiver": 397, + "hpl_validator_announce": 398, + "hpl_warp_cw20": 399, + "hpl_warp_native": 400 + }, + "deployments": { + "core": { + "mailbox": { + "type": "hpl_mailbox", + "address": "inj1palm2wtp6urg0c6j4f2ukv5u5ahdcrqek0sapt" + }, + "validator_announce": { + "type": "hpl_validator_announce", + "address": "inj1r7eztvhul0n4uc22r438m6tl7dezgthdw2cjjx" + } + }, + "isms": { + "type": "hpl_ism_multisig", + "address": "inj17hfpmd6yqy3gs4sxc0hh779k3nvldu5rpjkepn" + } + } +} diff --git a/script/deploy/ism.ts b/script/deploy/ism.ts index 7d5abadb..d64453a0 100644 --- a/script/deploy/ism.ts +++ b/script/deploy/ism.ts @@ -38,7 +38,7 @@ export async function deployIsm( // deploy multisig ism case 'multisig': { const multisig = await deployContract(ctx, client, 'hpl_ism_multisig', { - owner: ism.owner === '' ? client.signer : ism.owner, + owner: ism.owner === '' ? client.injective_signer : ism.owner, }); if (ism.validators != undefined) { diff --git a/script/shared/config.ts b/script/shared/config.ts index 442ba8da..79bc0073 100644 --- a/script/shared/config.ts +++ b/script/shared/config.ts @@ -150,9 +150,14 @@ export type Config = { }; }; +import { Network } from "@injectivelabs/networks"; +import { MsgBroadcasterWithPk } from '@injectivelabs/sdk-ts'; + export class Client { wasm: SigningCosmWasmClient; stargate: SigningStargateClient; + injective: MsgBroadcasterWithPk; + injective_signer: string; signer: string; signer_addr: string; signer_pubkey: string; @@ -202,8 +207,17 @@ export async function getSigningClient(networkId: string): Promise { : await DirectSecp256k1Wallet.fromKey(Buffer.from(signer, 'hex'), hrp); const [account] = await wallet.getAccounts(); + const gasPrice = GasPrice.fromString(`${gas.price}${gas.denom}`); + const injective = new MsgBroadcasterWithPk({ + privateKey: signer, + network: Network.Mainnet + }); + + // TODO: figure out how to derive this + const injective_signer = "inj1xe7h6urta6mftjl8ncud2fv42wgdtdad8ackjm"; + const wasm = await SigningCosmWasmClient.connectWithSigner( endpoint.rpc, wallet, @@ -221,6 +235,8 @@ export async function getSigningClient(networkId: string): Promise { return { wasm, stargate, + injective, + injective_signer, signer: account.address, signer_addr: Buffer.from(ethaddr).toString('hex'), signer_pubkey: Buffer.from(account.pubkey).toString('hex'), diff --git a/script/shared/contract.ts b/script/shared/contract.ts index 8986657b..fdaf4bff 100644 --- a/script/shared/contract.ts +++ b/script/shared/contract.ts @@ -1,4 +1,5 @@ import { IndexedTx } from '@cosmjs/stargate'; +import { MsgExecuteContract, MsgInstantiateContract } from '@injectivelabs/sdk-ts'; import { Client } from './config'; import { contractNames } from './constants'; @@ -17,11 +18,38 @@ export async function deployContract( initMsg: object, retryAfter = 1000, ): Promise<{ type: T; address: string; hexed: string }> { - const { wasm, stargate, signer } = client; + const { wasm, stargate, signer, injective, injective_signer } = client; logger.debug(`deploying ${contractName}`); try { const codeId = ctx.artifacts[contractName]; + + const msg = MsgInstantiateContract.fromJSON({ + sender: injective_signer, + admin: injective_signer, + codeId: ctx.artifacts[contractName], + msg: initMsg, + label: `cw-hpl: ${contractName}`, + }); + + const resp = await injective.broadcast({ + msgs: msg, + }); + + const instantiateEvent = resp.events!.find( + (event) => event.type === 'cosmwasm.wasm.v1.EventContractInstantiated', + ); + + const address = JSON.parse( + new TextDecoder().decode(instantiateEvent.attributes[2].value), + ); + + return { + type: contractName, + address, + hexed: extractByte32AddrFromBech32(address), + }; + const res = await wasm.instantiate( signer, codeId, @@ -82,7 +110,7 @@ export async function executeContract( } export async function executeMultiMsg( - { wasm, stargate, signer }: Client, + { wasm, stargate, signer, injective, injective_signer }: Client, msgs: { contract: { type: ContractNames; address: string }; msg: object }[], ): Promise { const long = msgs @@ -97,6 +125,25 @@ export async function executeMultiMsg( ]), ); + let executeMessages = msgs.map((v) => MsgExecuteContract.fromJSON({ + sender: injective_signer, + contractAddress: v.contract.address, + msg: v.msg, + })); + + // avoid exceeding block gas limit + const CHUNK_SIZE = 20; + while (executeMessages.length > 0) { + const chunk = executeMessages.splice(0, CHUNK_SIZE); + const resp = await injective.broadcast({ + msgs: chunk + }); + console.log({resp}); + } + + // @ts-ignore + return; + const res = await wasm.executeMultiple( signer, msgs.map((v) => ({ diff --git a/yarn.lock b/yarn.lock index 7f0f7128..a167c982 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19,6 +19,13 @@ __metadata: languageName: node linkType: hard +"@adraffy/ens-normalize@npm:1.10.1": + version: 1.10.1 + resolution: "@adraffy/ens-normalize@npm:1.10.1" + checksum: 10c0/fdd647604e8fac6204921888aaf5a6bc65eabf0d2921bc5f93b64d01f4bc33ead167c1445f7de05468d05cd92ac31b74c68d2be840c62b79d73693308f885c06 + languageName: node + linkType: hard + "@ampproject/remapping@npm:^2.1.0, @ampproject/remapping@npm:^2.2.0": version: 2.2.1 resolution: "@ampproject/remapping@npm:2.2.1" @@ -29,6 +36,43 @@ __metadata: languageName: node linkType: hard +"@apollo/client@npm:^3.5.8": + version: 3.11.8 + resolution: "@apollo/client@npm:3.11.8" + dependencies: + "@graphql-typed-document-node/core": "npm:^3.1.1" + "@wry/caches": "npm:^1.0.0" + "@wry/equality": "npm:^0.5.6" + "@wry/trie": "npm:^0.5.0" + graphql-tag: "npm:^2.12.6" + hoist-non-react-statics: "npm:^3.3.2" + optimism: "npm:^0.18.0" + prop-types: "npm:^15.7.2" + rehackt: "npm:^0.1.0" + response-iterator: "npm:^0.2.6" + symbol-observable: "npm:^4.0.0" + ts-invariant: "npm:^0.10.3" + tslib: "npm:^2.3.0" + zen-observable-ts: "npm:^1.2.5" + peerDependencies: + graphql: ^15.0.0 || ^16.0.0 + graphql-ws: ^5.5.5 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 + subscriptions-transport-ws: ^0.9.0 || ^0.11.0 + peerDependenciesMeta: + graphql-ws: + optional: true + react: + optional: true + react-dom: + optional: true + subscriptions-transport-ws: + optional: true + checksum: 10c0/a9b697460aa6a5d7e59685132509871675995af14b5fc69213ca22f973600cfe3391b27b7b871579c5b4e18a0d6755ffd1076a2d8dd970a54a43973feaa99ffa + languageName: node + linkType: hard + "@babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5": version: 7.23.5 resolution: "@babel/code-frame@npm:7.23.5" @@ -1544,7 +1588,7 @@ __metadata: languageName: node linkType: hard -"@cosmjs/amino@npm:^0.32.4": +"@cosmjs/amino@npm:^0.32.3, @cosmjs/amino@npm:^0.32.4": version: 0.32.4 resolution: "@cosmjs/amino@npm:0.32.4" dependencies: @@ -1698,7 +1742,7 @@ __metadata: languageName: node linkType: hard -"@cosmjs/proto-signing@npm:^0.32.4": +"@cosmjs/proto-signing@npm:^0.32.3, @cosmjs/proto-signing@npm:^0.32.4": version: 0.32.4 resolution: "@cosmjs/proto-signing@npm:0.32.4" dependencies: @@ -1756,7 +1800,7 @@ __metadata: languageName: node linkType: hard -"@cosmjs/stargate@npm:^0.32.4": +"@cosmjs/stargate@npm:^0.32.3, @cosmjs/stargate@npm:^0.32.4": version: 0.32.4 resolution: "@cosmjs/stargate@npm:0.32.4" dependencies: @@ -2684,6 +2728,15 @@ __metadata: languageName: node linkType: hard +"@graphql-typed-document-node/core@npm:^3.1.1": + version: 3.2.0 + resolution: "@graphql-typed-document-node/core@npm:3.2.0" + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10c0/94e9d75c1f178bbae8d874f5a9361708a3350c8def7eaeb6920f2c820e82403b7d4f55b3735856d68e145e86c85cbfe2adc444fdc25519cd51f108697e99346c + languageName: node + linkType: hard + "@humanwhocodes/config-array@npm:^0.11.14": version: 0.11.14 resolution: "@humanwhocodes/config-array@npm:0.11.14" @@ -2765,6 +2818,193 @@ __metadata: languageName: node linkType: hard +"@injectivelabs/core-proto-ts@npm:^0.0.21": + version: 0.0.21 + resolution: "@injectivelabs/core-proto-ts@npm:0.0.21" + dependencies: + "@injectivelabs/grpc-web": "npm:^0.0.1" + google-protobuf: "npm:^3.14.0" + protobufjs: "npm:^7.0.0" + rxjs: "npm:^7.4.0" + checksum: 10c0/97eb869a784466465b33f902083051451d02b09a22e22100d09b739e2b6dcdbe33c53a0684d79be4c57c35c30daebfa4398c4effcca53ddfeb361693d201e7fa + languageName: node + linkType: hard + +"@injectivelabs/dmm-proto-ts@npm:1.0.20": + version: 1.0.20 + resolution: "@injectivelabs/dmm-proto-ts@npm:1.0.20" + dependencies: + "@injectivelabs/grpc-web": "npm:^0.0.1" + google-protobuf: "npm:^3.14.0" + protobufjs: "npm:^7.0.0" + rxjs: "npm:^7.4.0" + checksum: 10c0/fdb8332782f35345b6ffdced73508134ad12616e1ac846f6fe61c169da4c59a3673b187c4243459252a2a22c300197e193e44c580498883c91550b958e5e121f + languageName: node + linkType: hard + +"@injectivelabs/exceptions@npm:^1.14.13, @injectivelabs/exceptions@npm:^1.14.14": + version: 1.14.14 + resolution: "@injectivelabs/exceptions@npm:1.14.14" + dependencies: + "@injectivelabs/grpc-web": "npm:^0.0.1" + "@injectivelabs/ts-types": "npm:^1.14.14" + http-status-codes: "npm:^2.2.0" + link-module-alias: "npm:^1.2.0" + shx: "npm:^0.3.2" + checksum: 10c0/96db04c7fbeff34be78387d1640105c5923b34fb2adcf547a512d71bc53889abaaf5ec8057759affba7930abaa67d9782d71115458b62a200fff94f3eb5c3c5f + languageName: node + linkType: hard + +"@injectivelabs/grpc-web-node-http-transport@npm:^0.0.2": + version: 0.0.2 + resolution: "@injectivelabs/grpc-web-node-http-transport@npm:0.0.2" + peerDependencies: + "@injectivelabs/grpc-web": ">=0.0.1" + checksum: 10c0/aa2b1c0451120f47cf6acfc8da29e19ab190ab36a6d3227aaeb8d42f001fee6ec1180af047c800311f6c1353850ea12f646156c16fbd9bb21ed11fbbefdfdc25 + languageName: node + linkType: hard + +"@injectivelabs/grpc-web-react-native-transport@npm:^0.0.2": + version: 0.0.2 + resolution: "@injectivelabs/grpc-web-react-native-transport@npm:0.0.2" + peerDependencies: + "@injectivelabs/grpc-web": ">=0.0.1" + checksum: 10c0/4bb70890f1f322b891373fdb778a9487ea61ce9ea29fd35504949cec4b01c1b5f5bbab3570a4f50455ac14474292aeaa9eb619ee162a6134245400e0db91bb21 + languageName: node + linkType: hard + +"@injectivelabs/grpc-web@npm:^0.0.1": + version: 0.0.1 + resolution: "@injectivelabs/grpc-web@npm:0.0.1" + dependencies: + browser-headers: "npm:^0.4.1" + peerDependencies: + google-protobuf: ^3.14.0 + checksum: 10c0/91e4da68d3c49f60fa3d796e2f05111976299947e8c06c89368eb9dfb244cb59393abc8561df2ab6e579e057b27e5111885dc5141ba0c2425233d884b4be7531 + languageName: node + linkType: hard + +"@injectivelabs/indexer-proto-ts@npm:1.11.42": + version: 1.11.42 + resolution: "@injectivelabs/indexer-proto-ts@npm:1.11.42" + dependencies: + "@injectivelabs/grpc-web": "npm:^0.0.1" + google-protobuf: "npm:^3.14.0" + protobufjs: "npm:^7.0.0" + rxjs: "npm:^7.4.0" + checksum: 10c0/26bef9c83463577f4eb8f1bd57ce0ba1c2521d8c101458fe19cfc3a200de0b7e8fabee1362fcd933523731ea8c98cf753a05f91ca1b55273fbfa8e759ac1c20a + languageName: node + linkType: hard + +"@injectivelabs/mito-proto-ts@npm:1.0.65": + version: 1.0.65 + resolution: "@injectivelabs/mito-proto-ts@npm:1.0.65" + dependencies: + "@injectivelabs/grpc-web": "npm:^0.0.1" + google-protobuf: "npm:^3.14.0" + protobufjs: "npm:^7.0.0" + rxjs: "npm:^7.4.0" + checksum: 10c0/823d0c13539a52f3c41cca9bf69bf1ef1555c4401e6263612540985478d909f74ec97baf51a30fad70a7880a8a9e301170c5fc98054753a766fbf1d940bf2a68 + languageName: node + linkType: hard + +"@injectivelabs/networks@npm:^1.14.13": + version: 1.14.14 + resolution: "@injectivelabs/networks@npm:1.14.14" + dependencies: + "@injectivelabs/exceptions": "npm:^1.14.14" + "@injectivelabs/ts-types": "npm:^1.14.14" + "@injectivelabs/utils": "npm:^1.14.14" + link-module-alias: "npm:^1.2.0" + shx: "npm:^0.3.2" + checksum: 10c0/fb7b9ed946c6565928f6e4eaff3a9ef00b37f94378049d859848846eb293096c4ff30c0923627b9f8342118991de9deb4512d5cc6b708e6f3b6ed85954cf1240 + languageName: node + linkType: hard + +"@injectivelabs/sdk-ts@npm:1.14.13": + version: 1.14.13 + resolution: "@injectivelabs/sdk-ts@npm:1.14.13" + dependencies: + "@apollo/client": "npm:^3.5.8" + "@cosmjs/amino": "npm:^0.32.3" + "@cosmjs/proto-signing": "npm:^0.32.3" + "@cosmjs/stargate": "npm:^0.32.3" + "@ethersproject/bytes": "npm:^5.7.0" + "@injectivelabs/core-proto-ts": "npm:^0.0.21" + "@injectivelabs/dmm-proto-ts": "npm:1.0.20" + "@injectivelabs/exceptions": "npm:^1.14.13" + "@injectivelabs/grpc-web": "npm:^0.0.1" + "@injectivelabs/grpc-web-node-http-transport": "npm:^0.0.2" + "@injectivelabs/grpc-web-react-native-transport": "npm:^0.0.2" + "@injectivelabs/indexer-proto-ts": "npm:1.11.42" + "@injectivelabs/mito-proto-ts": "npm:1.0.65" + "@injectivelabs/networks": "npm:^1.14.13" + "@injectivelabs/test-utils": "npm:^1.14.13" + "@injectivelabs/ts-types": "npm:^1.14.13" + "@injectivelabs/utils": "npm:^1.14.13" + "@metamask/eth-sig-util": "npm:^4.0.0" + "@noble/curves": "npm:^1.4.0" + axios: "npm:^1.6.4" + bech32: "npm:^2.0.0" + bip39: "npm:^3.0.4" + cosmjs-types: "npm:^0.9.0" + ethereumjs-util: "npm:^7.1.4" + ethers: "npm:^6.5.1" + google-protobuf: "npm:^3.21.0" + graphql: "npm:^16.3.0" + http-status-codes: "npm:^2.2.0" + js-sha3: "npm:^0.8.0" + jscrypto: "npm:^1.0.3" + keccak256: "npm:^1.0.6" + link-module-alias: "npm:^1.2.0" + secp256k1: "npm:^4.0.3" + shx: "npm:^0.3.2" + snakecase-keys: "npm:^5.4.1" + checksum: 10c0/5ce3cb38263ba008e2ead806b31f9715d759e5fe4ef71b9a1f8553c457ef221eba6fdd776e16f9f5bd3c646dcd28ed3ce13bbca5e97a821af2fe5af569336aa4 + languageName: node + linkType: hard + +"@injectivelabs/test-utils@npm:^1.14.13": + version: 1.14.14 + resolution: "@injectivelabs/test-utils@npm:1.14.14" + dependencies: + axios: "npm:^1.6.4" + bignumber.js: "npm:^9.0.1" + link-module-alias: "npm:^1.2.0" + shx: "npm:^0.3.2" + snakecase-keys: "npm:^5.1.2" + store2: "npm:^2.12.0" + checksum: 10c0/3b52e00bf26d5e044e807a455b1962afebc596917b6fa7117e8684a96067cb5e43697c57f75c8d142772c5e6137f181efe6338bd5d27f5cc6e234f58dc31895a + languageName: node + linkType: hard + +"@injectivelabs/ts-types@npm:^1.14.13, @injectivelabs/ts-types@npm:^1.14.14": + version: 1.14.14 + resolution: "@injectivelabs/ts-types@npm:1.14.14" + dependencies: + link-module-alias: "npm:^1.2.0" + shx: "npm:^0.3.2" + checksum: 10c0/52939aa1a4bf92b3c1aba4bf387ccc3eca2f6a9b756d491f0f076a52f4da95cace637e0d6b17167c98591534313d54b94c2d101a8e2e602321cfefa6d84afdeb + languageName: node + linkType: hard + +"@injectivelabs/utils@npm:^1.14.13, @injectivelabs/utils@npm:^1.14.14": + version: 1.14.14 + resolution: "@injectivelabs/utils@npm:1.14.14" + dependencies: + "@injectivelabs/exceptions": "npm:^1.14.14" + "@injectivelabs/ts-types": "npm:^1.14.14" + axios: "npm:^1.6.4" + bignumber.js: "npm:^9.0.1" + http-status-codes: "npm:^2.2.0" + link-module-alias: "npm:^1.2.0" + shx: "npm:^0.3.2" + snakecase-keys: "npm:^5.1.2" + store2: "npm:^2.12.0" + checksum: 10c0/4aaebf61222613b99c422ac5f0df1d71e6c01e456338ea56f8f067ff6e80cdee0d9b70349193e72c65bb95b6f0847f838649bac24f47afe4cf7c5afa99169574 + languageName: node + linkType: hard + "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -2917,6 +3157,7 @@ __metadata: "@cosmwasm/ts-codegen": "npm:^0.35.7" "@hyperlane-xyz/sdk": "npm:^3.7.0" "@hyperlane-xyz/utils": "npm:^3.7.0" + "@injectivelabs/sdk-ts": "npm:1.14.13" "@trivago/prettier-plugin-sort-imports": "npm:^4.3.0" "@types/decompress": "npm:^4.2.7" "@types/eslint": "npm:^8" @@ -2946,6 +3187,19 @@ __metadata: languageName: unknown linkType: soft +"@metamask/eth-sig-util@npm:^4.0.0": + version: 4.0.1 + resolution: "@metamask/eth-sig-util@npm:4.0.1" + dependencies: + ethereumjs-abi: "npm:^0.6.8" + ethereumjs-util: "npm:^6.2.1" + ethjs-util: "npm:^0.1.6" + tweetnacl: "npm:^1.0.3" + tweetnacl-util: "npm:^0.15.1" + checksum: 10c0/957fa16e8f0454ad45203a8416e77181853de1c9e33697f1a1582d46f18da1cca26c803a4e08bee7091a697609fc8916f399210fd5d3d2fccc34bfd0a58715f0 + languageName: node + linkType: hard + "@noble/curves@npm:1.2.0, @noble/curves@npm:~1.2.0": version: 1.2.0 resolution: "@noble/curves@npm:1.2.0" @@ -2964,6 +3218,15 @@ __metadata: languageName: node linkType: hard +"@noble/curves@npm:^1.4.0": + version: 1.6.0 + resolution: "@noble/curves@npm:1.6.0" + dependencies: + "@noble/hashes": "npm:1.5.0" + checksum: 10c0/f3262aa4d39148e627cd82b5ac1c93f88c5bb46dd2566b5e8e52ffac3a0fc381ad30c2111656fd2bd3b0d37d43d540543e0d93a5ff96a6cb184bc3bfe10d1cd9 + languageName: node + linkType: hard + "@noble/hashes@npm:1.3.2": version: 1.3.2 resolution: "@noble/hashes@npm:1.3.2" @@ -2978,6 +3241,13 @@ __metadata: languageName: node linkType: hard +"@noble/hashes@npm:1.5.0, @noble/hashes@npm:^1.2.0": + version: 1.5.0 + resolution: "@noble/hashes@npm:1.5.0" + checksum: 10c0/1b46539695fbfe4477c0822d90c881a04d4fa2921c08c552375b444a48cac9930cb1ee68de0a3c7859e676554d0f3771999716606dc4d8f826e414c11692cdd9 + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -3377,6 +3647,24 @@ __metadata: languageName: node linkType: hard +"@types/bn.js@npm:^4.11.3": + version: 4.11.6 + resolution: "@types/bn.js@npm:4.11.6" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/a5a19dafc106b1b2ab35c2024ca37b9d0938dced11cb1cca7d119de5a0dd5f54db525c82cb1392843fc921677452efcbbdce3aa96ecc1457d3de6e266915ebd0 + languageName: node + linkType: hard + +"@types/bn.js@npm:^5.1.0": + version: 5.1.6 + resolution: "@types/bn.js@npm:5.1.6" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/073d383d87afea513a8183ce34af7bc0a7a798d057c7ae651982b7f30dd7d93f33247323bca3ba39f1f6af146b564aff547b15467bdf9fc922796c17e8426bf6 + languageName: node + linkType: hard + "@types/coingecko-api@npm:^1.0.10": version: 1.0.13 resolution: "@types/coingecko-api@npm:1.0.13" @@ -3530,6 +3818,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:22.7.5": + version: 22.7.5 + resolution: "@types/node@npm:22.7.5" + dependencies: + undici-types: "npm:~6.19.2" + checksum: 10c0/cf11f74f1a26053ec58066616e3a8685b6bcd7259bc569738b8f752009f9f0f7f85a1b2d24908e5b0f752482d1e8b6babdf1fbb25758711ec7bb9500bfcd6e60 + languageName: node + linkType: hard + "@types/node@npm:^12.12.54": version: 12.20.55 resolution: "@types/node@npm:12.20.55" @@ -3537,6 +3834,15 @@ __metadata: languageName: node linkType: hard +"@types/pbkdf2@npm:^3.0.0": + version: 3.1.2 + resolution: "@types/pbkdf2@npm:3.1.2" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/4f60b0e3c73297f55023b993d3d543212aa7f61c8c0d6a2720f5dbe2cf38e2fe55ff295d550ac048dddbfc3d44c285cfe16126d65c613bd67a57662357e268d9 + languageName: node + linkType: hard + "@types/prettier@npm:^2.6.1": version: 2.7.3 resolution: "@types/prettier@npm:2.7.3" @@ -3544,6 +3850,15 @@ __metadata: languageName: node linkType: hard +"@types/secp256k1@npm:^4.0.1": + version: 4.0.6 + resolution: "@types/secp256k1@npm:4.0.6" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/0e391316ae30c218779583b626382a56546ddbefb65f1ff9cf5e078af8a7118f67f3e66e30914399cc6f8710c424d0d8c3f34262ffb1f429c6ad911fd0d0bc26 + languageName: node + linkType: hard + "@types/semver@npm:^7.5.0": version: 7.5.8 resolution: "@types/semver@npm:7.5.8" @@ -3718,6 +4033,51 @@ __metadata: languageName: node linkType: hard +"@wry/caches@npm:^1.0.0": + version: 1.0.1 + resolution: "@wry/caches@npm:1.0.1" + dependencies: + tslib: "npm:^2.3.0" + checksum: 10c0/a7bca3377f1131d3f1080f2e39d0692c9d1ca86bfd55734786f167f46aad28a4c8e772107324e8319843fb8068fdf98abcdea376d8a589316b1f0cdadf81f8b1 + languageName: node + linkType: hard + +"@wry/context@npm:^0.7.0": + version: 0.7.4 + resolution: "@wry/context@npm:0.7.4" + dependencies: + tslib: "npm:^2.3.0" + checksum: 10c0/6cc8249b8ba195cda7643bffb30969e33d54a99f118a29dd12f1c34064ee0adf04253cfa0ba5b9893afde0a9588745828962877b9585106f7488e8299757638b + languageName: node + linkType: hard + +"@wry/equality@npm:^0.5.6": + version: 0.5.7 + resolution: "@wry/equality@npm:0.5.7" + dependencies: + tslib: "npm:^2.3.0" + checksum: 10c0/8503ff6d4eb80f303d1387e71e51da59ccfc2160fa6d464618be80946fe43a654ea73f0c5b90d659fc4dfc3e38cbbdd6650d595fe5865be476636e444470853e + languageName: node + linkType: hard + +"@wry/trie@npm:^0.4.3": + version: 0.4.3 + resolution: "@wry/trie@npm:0.4.3" + dependencies: + tslib: "npm:^2.3.0" + checksum: 10c0/1a14edba595b1967d0cf38208c2660b2952a8e8a649bb669b67907df48f602c7f2acbe16c1e1b115afa7d7effb9f1a4dbde38eef16ee92e7521a511262a53281 + languageName: node + linkType: hard + +"@wry/trie@npm:^0.5.0": + version: 0.5.0 + resolution: "@wry/trie@npm:0.5.0" + dependencies: + tslib: "npm:^2.3.0" + checksum: 10c0/8c8cfcac96ba4bc69dabf02740e19e613f501b398e80bacc32cd95e87228f75ecb41cd1a76a65abae9756c0f61ab3536e0da52de28857456f9381ffdf5995d3e + languageName: node + linkType: hard + "JSONStream@npm:^1.3.5": version: 1.3.5 resolution: "JSONStream@npm:1.3.5" @@ -3784,6 +4144,13 @@ __metadata: languageName: node linkType: hard +"aes-js@npm:4.0.0-beta.5": + version: 4.0.0-beta.5 + resolution: "aes-js@npm:4.0.0-beta.5" + checksum: 10c0/444f4eefa1e602cbc4f2a3c644bc990f93fd982b148425fee17634da510586fc09da940dcf8ace1b2d001453c07ff042e55f7a0482b3cc9372bf1ef75479090c + languageName: node + linkType: hard + "agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": version: 7.1.0 resolution: "agent-base@npm:7.1.0" @@ -4002,6 +4369,17 @@ __metadata: languageName: node linkType: hard +"axios@npm:^1.6.4": + version: 1.7.7 + resolution: "axios@npm:1.7.7" + dependencies: + follow-redirects: "npm:^1.15.6" + form-data: "npm:^4.0.0" + proxy-from-env: "npm:^1.1.0" + checksum: 10c0/4499efc89e86b0b49ffddc018798de05fab26e3bf57913818266be73279a6418c3ce8f9e934c7d2d707ab8c095e837fc6c90608fb7715b94d357720b5f568af7 + languageName: node + linkType: hard + "babel-plugin-istanbul@npm:^6.1.1": version: 6.1.1 resolution: "babel-plugin-istanbul@npm:6.1.1" @@ -4081,6 +4459,13 @@ __metadata: languageName: node linkType: hard +"bech32@npm:^2.0.0": + version: 2.0.0 + resolution: "bech32@npm:2.0.0" + checksum: 10c0/45e7cc62758c9b26c05161b4483f40ea534437cf68ef785abadc5b62a2611319b878fef4f86ddc14854f183b645917a19addebc9573ab890e19194bc8f521942 + languageName: node + linkType: hard + "bigint-buffer@npm:^1.1.5": version: 1.1.5 resolution: "bigint-buffer@npm:1.1.5" @@ -4107,6 +4492,15 @@ __metadata: languageName: node linkType: hard +"bip39@npm:^3.0.4": + version: 3.1.0 + resolution: "bip39@npm:3.1.0" + dependencies: + "@noble/hashes": "npm:^1.2.0" + checksum: 10c0/68f9673a0d6a851e9635f3af8a85f2a1ecef9066c76d77e6f0d58d274b5bf22a67f429da3997e07c0d2cf153a4d7321f9273e656cac0526f667575ddee28ef71 + languageName: node + linkType: hard + "bl@npm:^1.0.0": version: 1.2.3 resolution: "bl@npm:1.2.3" @@ -4117,14 +4511,21 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:^4.11.9": +"blakejs@npm:^1.1.0": + version: 1.2.1 + resolution: "blakejs@npm:1.2.1" + checksum: 10c0/c284557ce55b9c70203f59d381f1b85372ef08ee616a90162174d1291a45d3e5e809fdf9edab6e998740012538515152471dc4f1f9dbfa974ba2b9c1f7b9aad7 + languageName: node + linkType: hard + +"bn.js@npm:^4.11.0, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9": version: 4.12.0 resolution: "bn.js@npm:4.12.0" checksum: 10c0/9736aaa317421b6b3ed038ff3d4491935a01419ac2d83ddcfebc5717385295fcfcf0c57311d90fe49926d0abbd7a9dbefdd8861e6129939177f7e67ebc645b21 languageName: node linkType: hard -"bn.js@npm:^5.2.0, bn.js@npm:^5.2.1": +"bn.js@npm:^5.1.2, bn.js@npm:^5.2.0, bn.js@npm:^5.2.1": version: 5.2.1 resolution: "bn.js@npm:5.2.1" checksum: 10c0/bed3d8bd34ec89dbcf9f20f88bd7d4a49c160fda3b561c7bb227501f974d3e435a48fb9b61bc3de304acab9215a3bda0803f7017ffb4d0016a0c3a740a283caa @@ -4177,6 +4578,27 @@ __metadata: languageName: node linkType: hard +"browser-headers@npm:^0.4.1": + version: 0.4.1 + resolution: "browser-headers@npm:0.4.1" + checksum: 10c0/3b08864bb955b295ab3dd6ab775c7798096c2e85486571803b4070ec484de83ccceebe531a8b00d5daf4463fada5e7ca18cd1a71cc1ee0dfdbab705332318cef + languageName: node + linkType: hard + +"browserify-aes@npm:^1.2.0": + version: 1.2.0 + resolution: "browserify-aes@npm:1.2.0" + dependencies: + buffer-xor: "npm:^1.0.3" + cipher-base: "npm:^1.0.0" + create-hash: "npm:^1.1.0" + evp_bytestokey: "npm:^1.0.3" + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + checksum: 10c0/967f2ae60d610b7b252a4cbb55a7a3331c78293c94b4dd9c264d384ca93354c089b3af9c0dd023534efdc74ffbc82510f7ad4399cf82bc37bc07052eea485f18 + languageName: node + linkType: hard + "browserslist@npm:^4.22.2, browserslist@npm:^4.22.3": version: 4.23.0 resolution: "browserslist@npm:4.23.0" @@ -4200,6 +4622,17 @@ __metadata: languageName: node linkType: hard +"bs58check@npm:^2.1.2": + version: 2.1.2 + resolution: "bs58check@npm:2.1.2" + dependencies: + bs58: "npm:^4.0.0" + create-hash: "npm:^1.1.0" + safe-buffer: "npm:^5.1.2" + checksum: 10c0/5d33f319f0d7abbe1db786f13f4256c62a076bc8d184965444cb62ca4206b2c92bee58c93bce57150ffbbbe00c48838ac02e6f384e0da8215cac219c0556baa9 + languageName: node + linkType: hard + "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -4247,6 +4680,13 @@ __metadata: languageName: node linkType: hard +"buffer-xor@npm:^1.0.3": + version: 1.0.3 + resolution: "buffer-xor@npm:1.0.3" + checksum: 10c0/fd269d0e0bf71ecac3146187cfc79edc9dbb054e2ee69b4d97dfb857c6d997c33de391696d04bdd669272751fa48e7872a22f3a6c7b07d6c0bc31dbe02a4075c + languageName: node + linkType: hard + "buffer@npm:6.0.3, buffer@npm:^6.0.3, buffer@npm:~6.0.3": version: 6.0.3 resolution: "buffer@npm:6.0.3" @@ -4367,7 +4807,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.4.2": +"chalk@npm:^2.4.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -4425,6 +4865,16 @@ __metadata: languageName: node linkType: hard +"cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": + version: 1.0.4 + resolution: "cipher-base@npm:1.0.4" + dependencies: + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + checksum: 10c0/d8d005f8b64d8a77b3d3ce531301ae7b45902c9cab4ec8b66bdbd2bf2a1d9fceb9a2133c293eb3c060b2d964da0f14c47fb740366081338aa3795dd1faa8984b + languageName: node + linkType: hard + "clean-stack@npm:^2.0.0": version: 2.2.0 resolution: "clean-stack@npm:2.2.0" @@ -4584,6 +5034,33 @@ __metadata: languageName: node linkType: hard +"create-hash@npm:^1.1.0, create-hash@npm:^1.1.2, create-hash@npm:^1.2.0": + version: 1.2.0 + resolution: "create-hash@npm:1.2.0" + dependencies: + cipher-base: "npm:^1.0.1" + inherits: "npm:^2.0.1" + md5.js: "npm:^1.3.4" + ripemd160: "npm:^2.0.1" + sha.js: "npm:^2.4.0" + checksum: 10c0/d402e60e65e70e5083cb57af96d89567954d0669e90550d7cec58b56d49c4b193d35c43cec8338bc72358198b8cbf2f0cac14775b651e99238e1cf411490f915 + languageName: node + linkType: hard + +"create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": + version: 1.1.7 + resolution: "create-hmac@npm:1.1.7" + dependencies: + cipher-base: "npm:^1.0.3" + create-hash: "npm:^1.1.0" + inherits: "npm:^2.0.1" + ripemd160: "npm:^2.0.0" + safe-buffer: "npm:^5.0.1" + sha.js: "npm:^2.4.8" + checksum: 10c0/24332bab51011652a9a0a6d160eed1e8caa091b802335324ae056b0dcb5acbc9fcf173cf10d128eba8548c3ce98dfa4eadaa01bd02f44a34414baee26b651835 + languageName: node + linkType: hard + "create-require@npm:^1.1.0": version: 1.1.1 resolution: "create-require@npm:1.1.1" @@ -4794,6 +5271,16 @@ __metadata: languageName: node linkType: hard +"dot-case@npm:^3.0.4": + version: 3.0.4 + resolution: "dot-case@npm:3.0.4" + dependencies: + no-case: "npm:^3.0.4" + tslib: "npm:^2.0.3" + checksum: 10c0/5b859ea65097a7ea870e2c91b5768b72ddf7fa947223fd29e167bcdff58fe731d941c48e47a38ec8aa8e43044c8fbd15cd8fa21689a526bc34b6548197cd5b05 + languageName: node + linkType: hard + "dotty@npm:0.1.2": version: 0.1.2 resolution: "dotty@npm:0.1.2" @@ -4830,6 +5317,21 @@ __metadata: languageName: node linkType: hard +"elliptic@npm:^6.5.2": + version: 6.5.7 + resolution: "elliptic@npm:6.5.7" + dependencies: + bn.js: "npm:^4.11.9" + brorand: "npm:^1.1.0" + hash.js: "npm:^1.0.0" + hmac-drbg: "npm:^1.0.1" + inherits: "npm:^2.0.4" + minimalistic-assert: "npm:^1.0.1" + minimalistic-crypto-utils: "npm:^1.0.1" + checksum: 10c0/799959b6c54ea3564e8961f35abdf8c77e37617f3051614b05ab1fb6a04ddb65bd1caa75ed1bae375b15dda312a0f79fed26ebe76ecf05c5a7af244152a601b8 + languageName: node + linkType: hard + "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -5292,6 +5794,67 @@ __metadata: languageName: node linkType: hard +"ethereum-cryptography@npm:^0.1.3": + version: 0.1.3 + resolution: "ethereum-cryptography@npm:0.1.3" + dependencies: + "@types/pbkdf2": "npm:^3.0.0" + "@types/secp256k1": "npm:^4.0.1" + blakejs: "npm:^1.1.0" + browserify-aes: "npm:^1.2.0" + bs58check: "npm:^2.1.2" + create-hash: "npm:^1.2.0" + create-hmac: "npm:^1.1.7" + hash.js: "npm:^1.1.7" + keccak: "npm:^3.0.0" + pbkdf2: "npm:^3.0.17" + randombytes: "npm:^2.1.0" + safe-buffer: "npm:^5.1.2" + scrypt-js: "npm:^3.0.0" + secp256k1: "npm:^4.0.1" + setimmediate: "npm:^1.0.5" + checksum: 10c0/aa36e11fca9d67d67c96e02a98b33bae2e1add20bd11af43feb7f28cdafe0cd3bdbae3bfecc7f2d9ec8f504b10a1c8f7590f5f7fe236560fd8083dd321ad7144 + languageName: node + linkType: hard + +"ethereumjs-abi@npm:^0.6.8": + version: 0.6.8 + resolution: "ethereumjs-abi@npm:0.6.8" + dependencies: + bn.js: "npm:^4.11.8" + ethereumjs-util: "npm:^6.0.0" + checksum: 10c0/a7ff1917625e3c812cb3bca6c1231fc0ece282cc7d202d60545a9c31cd379fd751bfed5ff78dae4279cb1ba4d0e8967f9fdd4f135a334a38dbf04e7afd0c4bcf + languageName: node + linkType: hard + +"ethereumjs-util@npm:^6.0.0, ethereumjs-util@npm:^6.2.1": + version: 6.2.1 + resolution: "ethereumjs-util@npm:6.2.1" + dependencies: + "@types/bn.js": "npm:^4.11.3" + bn.js: "npm:^4.11.0" + create-hash: "npm:^1.1.2" + elliptic: "npm:^6.5.2" + ethereum-cryptography: "npm:^0.1.3" + ethjs-util: "npm:0.1.6" + rlp: "npm:^2.2.3" + checksum: 10c0/64aa7e6d591a0b890eb147c5d81f80a6456e87b3056e6bbafb54dff63f6ae9e646406763e8bd546c3b0b0162d027aecb3844873e894681826b03e0298f57e7a4 + languageName: node + linkType: hard + +"ethereumjs-util@npm:^7.1.4": + version: 7.1.5 + resolution: "ethereumjs-util@npm:7.1.5" + dependencies: + "@types/bn.js": "npm:^5.1.0" + bn.js: "npm:^5.1.2" + create-hash: "npm:^1.1.2" + ethereum-cryptography: "npm:^0.1.3" + rlp: "npm:^2.2.4" + checksum: 10c0/8b9487f35ecaa078bf9af6858eba6855fc61c73cc2b90c8c37486fcf94faf4fc1c5cda9758e6769f9ef2658daedaf2c18b366312ac461f8c8a122b392e3041eb + languageName: node + linkType: hard + "ethers@npm:^5.7.2": version: 5.7.2 resolution: "ethers@npm:5.7.2" @@ -5330,6 +5893,31 @@ __metadata: languageName: node linkType: hard +"ethers@npm:^6.5.1": + version: 6.13.4 + resolution: "ethers@npm:6.13.4" + dependencies: + "@adraffy/ens-normalize": "npm:1.10.1" + "@noble/curves": "npm:1.2.0" + "@noble/hashes": "npm:1.3.2" + "@types/node": "npm:22.7.5" + aes-js: "npm:4.0.0-beta.5" + tslib: "npm:2.7.0" + ws: "npm:8.17.1" + checksum: 10c0/efcf9f39f841e38af68ec23cdbd745432c239c256aac4929842d1af04e55d7be0ff65e462f1cf3e93586f43f7bdcc0098fd56f2f7234f36d73e466521a5766ce + languageName: node + linkType: hard + +"ethjs-util@npm:0.1.6, ethjs-util@npm:^0.1.6": + version: 0.1.6 + resolution: "ethjs-util@npm:0.1.6" + dependencies: + is-hex-prefixed: "npm:1.0.0" + strip-hex-prefix: "npm:1.0.0" + checksum: 10c0/9b4d6268705fd0620e73a56d2fa7b8a7c6b9770b2cf7f8ffe3a9c46b8bd1c5a08fff3d1181bb18cf85cf12b6fdbb6dca6d9aff6506005f3f565e742f026e6339 + languageName: node + linkType: hard + "event-emitter@npm:^0.3.5": version: 0.3.5 resolution: "event-emitter@npm:0.3.5" @@ -5347,6 +5935,17 @@ __metadata: languageName: node linkType: hard +"evp_bytestokey@npm:^1.0.3": + version: 1.0.3 + resolution: "evp_bytestokey@npm:1.0.3" + dependencies: + md5.js: "npm:^1.3.4" + node-gyp: "npm:latest" + safe-buffer: "npm:^5.1.1" + checksum: 10c0/77fbe2d94a902a80e9b8f5a73dcd695d9c14899c5e82967a61b1fc6cbbb28c46552d9b127cff47c45fcf684748bdbcfa0a50410349109de87ceb4b199ef6ee99 + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -5570,6 +6169,16 @@ __metadata: languageName: node linkType: hard +"follow-redirects@npm:^1.15.6": + version: 1.15.9 + resolution: "follow-redirects@npm:1.15.9" + peerDependenciesMeta: + debug: + optional: true + checksum: 10c0/5829165bd112c3c0e82be6c15b1a58fa9dcfaede3b3c54697a82fe4a62dd5ae5e8222956b448d2f98e331525f05d00404aba7d696de9e761ef6e42fdc780244f + languageName: node + linkType: hard + "foreground-child@npm:^3.1.0": version: 3.1.1 resolution: "foreground-child@npm:3.1.1" @@ -5826,6 +6435,13 @@ __metadata: languageName: node linkType: hard +"google-protobuf@npm:^3.14.0, google-protobuf@npm:^3.21.0": + version: 3.21.4 + resolution: "google-protobuf@npm:3.21.4" + checksum: 10c0/28f2800f7fe1a8fc55eb58ba76e158268407bfb3b90646eaf8a177dd92a2e522459b773f8132ae546e60ac3b6f5947557a1cf3d963a05bb594f43bcde640f54f + languageName: node + linkType: hard + "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -5849,6 +6465,24 @@ __metadata: languageName: node linkType: hard +"graphql-tag@npm:^2.12.6": + version: 2.12.6 + resolution: "graphql-tag@npm:2.12.6" + dependencies: + tslib: "npm:^2.1.0" + peerDependencies: + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 10c0/7763a72011bda454ed8ff1a0d82325f43ca6478e4ce4ab8b7910c4c651dd00db553132171c04d80af5d5aebf1ef6a8a9fd53ccfa33b90ddc00aa3d4be6114419 + languageName: node + linkType: hard + +"graphql@npm:^16.3.0": + version: 16.9.0 + resolution: "graphql@npm:16.9.0" + checksum: 10c0/a8850f077ff767377237d1f8b1da2ec70aeb7623cdf1dfc9e1c7ae93accc0c8149c85abe68923be9871a2934b1bce5a2496f846d4d56e1cfb03eaaa7ddba9b6a + languageName: node + linkType: hard + "has-ansi@npm:^2.0.0": version: 2.0.0 resolution: "has-ansi@npm:2.0.0" @@ -5895,7 +6529,18 @@ __metadata: languageName: node linkType: hard -"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3": +"hash-base@npm:^3.0.0": + version: 3.1.0 + resolution: "hash-base@npm:3.1.0" + dependencies: + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.6.0" + safe-buffer: "npm:^5.2.0" + checksum: 10c0/663eabcf4173326fbb65a1918a509045590a26cc7e0964b754eef248d281305c6ec9f6b31cb508d02ffca383ab50028180ce5aefe013e942b44a903ac8dc80d0 + languageName: node + linkType: hard + +"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3, hash.js@npm:^1.1.7": version: 1.1.7 resolution: "hash.js@npm:1.1.7" dependencies: @@ -5925,6 +6570,15 @@ __metadata: languageName: node linkType: hard +"hoist-non-react-statics@npm:^3.3.2": + version: 3.3.2 + resolution: "hoist-non-react-statics@npm:3.3.2" + dependencies: + react-is: "npm:^16.7.0" + checksum: 10c0/fe0889169e845d738b59b64badf5e55fa3cf20454f9203d1eb088df322d49d4318df774828e789898dcb280e8a5521bb59b3203385662ca5e9218a6ca5820e74 + languageName: node + linkType: hard + "http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -5942,6 +6596,13 @@ __metadata: languageName: node linkType: hard +"http-status-codes@npm:^2.2.0": + version: 2.3.0 + resolution: "http-status-codes@npm:2.3.0" + checksum: 10c0/c2412188929e8eed6623eef468c62d0c3c082919c03e9b74fd79cfd060d11783dba44603e38a3cee52d26563fe32005913eaf6120aa8ba907da1238f3eaad5fe + languageName: node + linkType: hard + "https-proxy-agent@npm:^7.0.1": version: 7.0.4 resolution: "https-proxy-agent@npm:7.0.4" @@ -6027,7 +6688,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 @@ -6173,6 +6834,13 @@ __metadata: languageName: node linkType: hard +"is-hex-prefixed@npm:1.0.0": + version: 1.0.0 + resolution: "is-hex-prefixed@npm:1.0.0" + checksum: 10c0/767fa481020ae654ab085ca24c63c518705ff36fdfbfc732292dc69092c6f8fdc551f6ce8c5f6ae704b0a19294e6f62be1b4b9859f0e1ac76e3b1b0733599d94 + languageName: node + linkType: hard + "is-lambda@npm:^1.0.1": version: 1.0.1 resolution: "is-lambda@npm:1.0.1" @@ -6371,14 +7039,14 @@ __metadata: languageName: node linkType: hard -"js-sha3@npm:0.8.0": +"js-sha3@npm:0.8.0, js-sha3@npm:^0.8.0": version: 0.8.0 resolution: "js-sha3@npm:0.8.0" checksum: 10c0/43a21dc7967c871bd2c46cb1c2ae97441a97169f324e509f382d43330d8f75cf2c96dba7c806ab08a425765a9c847efdd4bffbac2d99c3a4f3de6c0218f40533 languageName: node linkType: hard -"js-tokens@npm:^4.0.0": +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed @@ -6415,6 +7083,15 @@ __metadata: languageName: node linkType: hard +"jscrypto@npm:^1.0.3": + version: 1.0.3 + resolution: "jscrypto@npm:1.0.3" + bin: + jscrypto: bin/cli.js + checksum: 10c0/9af6d4db4284d27a43b1228d2d510582fc650f53f6732a16a27d624c9fe28e87e68a7fde5ea2ca12c5d5748ba828715785dea75682f16781ee1e061f1faa505d + languageName: node + linkType: hard + "jsesc@npm:^2.5.1": version: 2.5.2 resolution: "jsesc@npm:2.5.2" @@ -6477,6 +7154,29 @@ __metadata: languageName: node linkType: hard +"keccak256@npm:^1.0.6": + version: 1.0.6 + resolution: "keccak256@npm:1.0.6" + dependencies: + bn.js: "npm:^5.2.0" + buffer: "npm:^6.0.3" + keccak: "npm:^3.0.2" + checksum: 10c0/2a3f1e281ffd65bcbbae2ee8d62e27f0336efe6f16b7ed9932ad642ed398da62ccbc3d38dcdf43bd2fad9885f02df501dc77a900c358644df296396ed194056f + languageName: node + linkType: hard + +"keccak@npm:^3.0.0, keccak@npm:^3.0.2": + version: 3.0.4 + resolution: "keccak@npm:3.0.4" + dependencies: + node-addon-api: "npm:^2.0.0" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.2.0" + readable-stream: "npm:^3.6.0" + checksum: 10c0/153525c1c1f770beadb8f8897dec2f1d2dcbee11d063fe5f61957a5b236bfd3d2a111ae2727e443aa6a848df5edb98b9ef237c78d56df49087b0ca8a232ca9cd + languageName: node + linkType: hard + "keyv@npm:^4.5.3": version: 4.5.4 resolution: "keyv@npm:4.5.4" @@ -6512,6 +7212,17 @@ __metadata: languageName: node linkType: hard +"link-module-alias@npm:^1.2.0": + version: 1.2.0 + resolution: "link-module-alias@npm:1.2.0" + dependencies: + chalk: "npm:^2.4.1" + bin: + link-module-alias: index.js + checksum: 10c0/9293b36b4343c519535522adcdffcce083e848ced28bfd5a0d970dcc836d1a21cb712bc3fb3a33fc052f69625374e71002f4b6cf733243d58757c84ffd2ec330 + languageName: node + linkType: hard + "locate-path@npm:^5.0.0": version: 5.0.0 resolution: "locate-path@npm:5.0.0" @@ -6558,13 +7269,24 @@ __metadata: languageName: node linkType: hard -"long@npm:^5.2.0": +"long@npm:^5.0.0, long@npm:^5.2.0": version: 5.2.3 resolution: "long@npm:5.2.3" checksum: 10c0/6a0da658f5ef683b90330b1af76f06790c623e148222da9d75b60e266bbf88f803232dd21464575681638894a84091616e7f89557aa087fd14116c0f4e0e43d9 languageName: node linkType: hard +"loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: "npm:^3.0.0 || ^4.0.0" + bin: + loose-envify: cli.js + checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e + languageName: node + linkType: hard + "loupe@npm:^2.3.6": version: 2.3.7 resolution: "loupe@npm:2.3.7" @@ -6574,6 +7296,15 @@ __metadata: languageName: node linkType: hard +"lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case@npm:2.0.2" + dependencies: + tslib: "npm:^2.0.3" + checksum: 10c0/3d925e090315cf7dc1caa358e0477e186ffa23947740e4314a7429b6e62d72742e0bbe7536a5ae56d19d7618ce998aba05caca53c2902bd5742fdca5fc57fd7b + languageName: node + linkType: hard + "lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": version: 10.2.0 resolution: "lru-cache@npm:10.2.0" @@ -6652,6 +7383,24 @@ __metadata: languageName: node linkType: hard +"map-obj@npm:^4.1.0": + version: 4.3.0 + resolution: "map-obj@npm:4.3.0" + checksum: 10c0/1c19e1c88513c8abdab25c316367154c6a0a6a0f77e3e8c391bb7c0e093aefed293f539d026dc013d86219e5e4c25f23b0003ea588be2101ccd757bacc12d43b + languageName: node + linkType: hard + +"md5.js@npm:^1.3.4": + version: 1.3.5 + resolution: "md5.js@npm:1.3.5" + dependencies: + hash-base: "npm:^3.0.0" + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.1.2" + checksum: 10c0/b7bd75077f419c8e013fc4d4dada48be71882e37d69a44af65a2f2804b91e253441eb43a0614423a1c91bb830b8140b0dc906bc797245e2e275759584f4efcc5 + languageName: node + linkType: hard + "memoizee@npm:^0.4.15": version: 0.4.15 resolution: "memoizee@npm:0.4.15" @@ -6763,7 +7512,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.0, minimist@npm:^1.2.6": +"minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 @@ -6927,6 +7676,25 @@ __metadata: languageName: node linkType: hard +"no-case@npm:^3.0.4": + version: 3.0.4 + resolution: "no-case@npm:3.0.4" + dependencies: + lower-case: "npm:^2.0.2" + tslib: "npm:^2.0.3" + checksum: 10c0/8ef545f0b3f8677c848f86ecbd42ca0ff3cd9dd71c158527b344c69ba14710d816d8489c746b6ca225e7b615108938a0bda0a54706f8c255933703ac1cf8e703 + languageName: node + linkType: hard + +"node-addon-api@npm:^2.0.0": + version: 2.0.2 + resolution: "node-addon-api@npm:2.0.2" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/ade6c097ba829fa4aee1ca340117bb7f8f29fdae7b777e343a9d5cbd548481d1f0894b7b907d23ce615c70d932e8f96154caed95c3fa935cfe8cf87546510f64 + languageName: node + linkType: hard + "node-fetch@npm:^2.6.12, node-fetch@npm:^2.7.0": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" @@ -6941,6 +7709,17 @@ __metadata: languageName: node linkType: hard +"node-gyp-build@npm:^4.2.0": + version: 4.8.2 + resolution: "node-gyp-build@npm:4.8.2" + bin: + node-gyp-build: bin.js + node-gyp-build-optional: optional.js + node-gyp-build-test: build-test.js + checksum: 10c0/d816b43974d31d6257b6e87d843f2626c72389a285208394bc57a7766b210454d2642860a5e5b5c333d8ecabaeabad3b31b94f58cf8ca1aabdef0c320d02baaa + languageName: node + linkType: hard + "node-gyp-build@npm:^4.3.0": version: 4.8.0 resolution: "node-gyp-build@npm:4.8.0" @@ -7004,7 +7783,7 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4.0.1": +"object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 @@ -7036,6 +7815,18 @@ __metadata: languageName: node linkType: hard +"optimism@npm:^0.18.0": + version: 0.18.0 + resolution: "optimism@npm:0.18.0" + dependencies: + "@wry/caches": "npm:^1.0.0" + "@wry/context": "npm:^0.7.0" + "@wry/trie": "npm:^0.4.3" + tslib: "npm:^2.3.0" + checksum: 10c0/8e97c6d660cb80cf5f444209b9dd29ee6951fa7b344d4c4fc6d4aaf0ad0710dddaf834d0f5d7211b3658b15ef6c6a22cbcb98c7a8121e3fee9666fe0fd62d876 + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -7184,6 +7975,19 @@ __metadata: languageName: node linkType: hard +"pbkdf2@npm:^3.0.17": + version: 3.1.2 + resolution: "pbkdf2@npm:3.1.2" + dependencies: + create-hash: "npm:^1.1.2" + create-hmac: "npm:^1.1.4" + ripemd160: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + sha.js: "npm:^2.4.8" + checksum: 10c0/5a30374e87d33fa080a92734d778cf172542cc7e41b96198c4c88763997b62d7850de3fbda5c3111ddf79805ee7c1da7046881c90ac4920b5e324204518b05fd + languageName: node + linkType: hard + "pend@npm:~1.2.0": version: 1.2.0 resolution: "pend@npm:1.2.0" @@ -7300,6 +8104,17 @@ __metadata: languageName: node linkType: hard +"prop-types@npm:^15.7.2": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: "npm:^1.4.0" + object-assign: "npm:^4.1.1" + react-is: "npm:^16.13.1" + checksum: 10c0/59ece7ca2fb9838031d73a48d4becb9a7cc1ed10e610517c7d8f19a1e02fa47f7c27d557d8a5702bec3cfeccddc853579832b43f449e54635803f277b1c78077 + languageName: node + linkType: hard + "protobufjs@npm:^6.8.8, protobufjs@npm:~6.11.2, protobufjs@npm:~6.11.3": version: 6.11.4 resolution: "protobufjs@npm:6.11.4" @@ -7324,6 +8139,26 @@ __metadata: languageName: node linkType: hard +"protobufjs@npm:^7.0.0": + version: 7.4.0 + resolution: "protobufjs@npm:7.4.0" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.2" + "@protobufjs/base64": "npm:^1.1.2" + "@protobufjs/codegen": "npm:^2.0.4" + "@protobufjs/eventemitter": "npm:^1.1.0" + "@protobufjs/fetch": "npm:^1.1.0" + "@protobufjs/float": "npm:^1.0.2" + "@protobufjs/inquire": "npm:^1.1.0" + "@protobufjs/path": "npm:^1.1.2" + "@protobufjs/pool": "npm:^1.1.0" + "@protobufjs/utf8": "npm:^1.1.0" + "@types/node": "npm:>=13.7.0" + long: "npm:^5.0.0" + checksum: 10c0/a5460a63fe596523b9a067cbce39a6b310d1a71750fda261f076535662aada97c24450e18c5bc98a27784f70500615904ff1227e1742183509f0db4fdede669b + languageName: node + linkType: hard + "proxy-from-env@npm:^1.1.0": version: 1.1.0 resolution: "proxy-from-env@npm:1.1.0" @@ -7345,6 +8180,22 @@ __metadata: languageName: node linkType: hard +"randombytes@npm:^2.1.0": + version: 2.1.0 + resolution: "randombytes@npm:2.1.0" + dependencies: + safe-buffer: "npm:^5.1.0" + checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3 + languageName: node + linkType: hard + +"react-is@npm:^16.13.1, react-is@npm:^16.7.0": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1 + languageName: node + linkType: hard + "readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.5": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" @@ -7360,6 +8211,17 @@ __metadata: languageName: node linkType: hard +"readable-stream@npm:^3.6.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: "npm:^2.0.3" + string_decoder: "npm:^1.1.1" + util-deprecate: "npm:^1.0.1" + checksum: 10c0/e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 + languageName: node + linkType: hard + "readline@npm:^1.3.0": version: 1.3.0 resolution: "readline@npm:1.3.0" @@ -7447,6 +8309,21 @@ __metadata: languageName: node linkType: hard +"rehackt@npm:^0.1.0": + version: 0.1.0 + resolution: "rehackt@npm:0.1.0" + peerDependencies: + "@types/react": "*" + react: "*" + peerDependenciesMeta: + "@types/react": + optional: true + react: + optional: true + checksum: 10c0/3d838bfee84ec06c976f21027936f3b0fdb7660ab8a2d4d3f19c65e0daa78a268aa81352311352b8576b89a074714b36ae6cd5bdadb6e975eca079f2b342de73 + languageName: node + linkType: hard + "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -7494,6 +8371,13 @@ __metadata: languageName: node linkType: hard +"response-iterator@npm:^0.2.6": + version: 0.2.6 + resolution: "response-iterator@npm:0.2.6" + checksum: 10c0/60e6b552cd610643269d5d916d270cc8a4bea978cbe4779d6ef8083ac6b89006795508034e4c4ebe204eded75ac32bf243589ba82c1184591dde0674f6db785e + languageName: node + linkType: hard + "restore-cursor@npm:^2.0.0": version: 2.0.0 resolution: "restore-cursor@npm:2.0.0" @@ -7529,6 +8413,27 @@ __metadata: languageName: node linkType: hard +"ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1": + version: 2.0.2 + resolution: "ripemd160@npm:2.0.2" + dependencies: + hash-base: "npm:^3.0.0" + inherits: "npm:^2.0.1" + checksum: 10c0/f6f0df78817e78287c766687aed4d5accbebc308a8e7e673fb085b9977473c1f139f0c5335d353f172a915bb288098430755d2ad3c4f30612f4dd0c901cd2c3a + languageName: node + linkType: hard + +"rlp@npm:^2.2.3, rlp@npm:^2.2.4": + version: 2.2.7 + resolution: "rlp@npm:2.2.7" + dependencies: + bn.js: "npm:^5.2.0" + bin: + rlp: bin/rlp + checksum: 10c0/166c449f4bc794d47f8e337bf0ffbcfdb26c33109030aac4b6e5a33a91fa85783f2290addeb7b3c89d6d9b90c8276e719494d193129bed0a60a2d4a6fd658277 + languageName: node + linkType: hard + "rpc-websockets@npm:^7.5.1": version: 7.9.0 resolution: "rpc-websockets@npm:7.9.0" @@ -7589,7 +8494,16 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.1": +"rxjs@npm:^7.4.0": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10c0/3c49c1ecd66170b175c9cacf5cef67f8914dcbc7cd0162855538d365c83fea631167cacb644b3ce533b2ea0e9a4d0b12175186985f89d75abe73dbd8f7f06f68 + languageName: node + linkType: hard + +"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 @@ -7610,13 +8524,25 @@ __metadata: languageName: node linkType: hard -"scrypt-js@npm:3.0.1": +"scrypt-js@npm:3.0.1, scrypt-js@npm:^3.0.0": version: 3.0.1 resolution: "scrypt-js@npm:3.0.1" checksum: 10c0/e2941e1c8b5c84c7f3732b0153fee624f5329fc4e772a06270ee337d4d2df4174b8abb5e6ad53804a29f53890ecbc78f3775a319323568c0313040c0e55f5b10 languageName: node linkType: hard +"secp256k1@npm:^4.0.1, secp256k1@npm:^4.0.3": + version: 4.0.3 + resolution: "secp256k1@npm:4.0.3" + dependencies: + elliptic: "npm:^6.5.4" + node-addon-api: "npm:^2.0.0" + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.2.0" + checksum: 10c0/de0a0e525a6f8eb2daf199b338f0797dbfe5392874285a145bb005a72cabacb9d42c0197d0de129a1a0f6094d2cc4504d1f87acb6a8bbfb7770d4293f252c401 + languageName: node + linkType: hard + "seek-bzip@npm:^1.0.5": version: 1.0.6 resolution: "seek-bzip@npm:1.0.6" @@ -7649,6 +8575,25 @@ __metadata: languageName: node linkType: hard +"setimmediate@npm:^1.0.5": + version: 1.0.5 + resolution: "setimmediate@npm:1.0.5" + checksum: 10c0/5bae81bfdbfbd0ce992893286d49c9693c82b1bcc00dcaaf3a09c8f428fdeacf4190c013598b81875dfac2b08a572422db7df779a99332d0fce186d15a3e4d49 + languageName: node + linkType: hard + +"sha.js@npm:^2.4.0, sha.js@npm:^2.4.8": + version: 2.4.11 + resolution: "sha.js@npm:2.4.11" + dependencies: + inherits: "npm:^2.0.1" + safe-buffer: "npm:^5.0.1" + bin: + sha.js: ./bin.js + checksum: 10c0/b7a371bca8821c9cc98a0aeff67444a03d48d745cb103f17228b96793f455f0eb0a691941b89ea1e60f6359207e36081d9be193252b0f128e0daf9cfea2815a5 + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -7665,7 +8610,7 @@ __metadata: languageName: node linkType: hard -"shelljs@npm:0.8.5": +"shelljs@npm:0.8.5, shelljs@npm:^0.8.5": version: 0.8.5 resolution: "shelljs@npm:0.8.5" dependencies: @@ -7678,6 +8623,18 @@ __metadata: languageName: node linkType: hard +"shx@npm:^0.3.2": + version: 0.3.4 + resolution: "shx@npm:0.3.4" + dependencies: + minimist: "npm:^1.2.3" + shelljs: "npm:^0.8.5" + bin: + shx: lib/cli.js + checksum: 10c0/83251fb09314682f5a192f0249a4be68c755933313a41b5152b11c19fc0a68311954d3ca971a0cbae05815786a893c59b82f356484d8eeb009c84f4066b3fa31 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -7706,6 +8663,27 @@ __metadata: languageName: node linkType: hard +"snake-case@npm:^3.0.4": + version: 3.0.4 + resolution: "snake-case@npm:3.0.4" + dependencies: + dot-case: "npm:^3.0.4" + tslib: "npm:^2.0.3" + checksum: 10c0/ab19a913969f58f4474fe9f6e8a026c8a2142a01f40b52b79368068343177f818cdfef0b0c6b9558f298782441d5ca8ed5932eb57822439fad791d866e62cecd + languageName: node + linkType: hard + +"snakecase-keys@npm:^5.1.2, snakecase-keys@npm:^5.4.1": + version: 5.5.0 + resolution: "snakecase-keys@npm:5.5.0" + dependencies: + map-obj: "npm:^4.1.0" + snake-case: "npm:^3.0.4" + type-fest: "npm:^3.12.0" + checksum: 10c0/10ff6cf1d34b053adb9a01bd718d3d0f9224d0a2a72d10b0f59fbcad788366710e7a960aa1f8dea9279dcf96589a5d62bc893fafcd1c9d1faee5dd5fdbaea135 + languageName: node + linkType: hard + "socks-proxy-agent@npm:^8.0.1": version: 8.0.2 resolution: "socks-proxy-agent@npm:8.0.2" @@ -7774,6 +8752,13 @@ __metadata: languageName: node linkType: hard +"store2@npm:^2.12.0": + version: 2.14.3 + resolution: "store2@npm:2.14.3" + checksum: 10c0/22e1096e6d69590672ca0b7f891d82b060837ef4c3e5df0d4563e6cbed14c52ddf2589fa94b79f4311b6ec41d95d6142e5d01d194539e0175c3fb4090cca8244 + languageName: node + linkType: hard + "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -7806,6 +8791,15 @@ __metadata: languageName: node linkType: hard +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: "npm:~5.2.0" + checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d + languageName: node + linkType: hard + "string_decoder@npm:~1.1.1": version: 1.1.1 resolution: "string_decoder@npm:1.1.1" @@ -7869,6 +8863,15 @@ __metadata: languageName: node linkType: hard +"strip-hex-prefix@npm:1.0.0": + version: 1.0.0 + resolution: "strip-hex-prefix@npm:1.0.0" + dependencies: + is-hex-prefixed: "npm:1.0.0" + checksum: 10c0/ec9a48c334c2ba4afff2e8efebb42c3ab5439f0e1ec2b8525e184eabef7fecade7aee444af802b1be55d2df6da5b58c55166c32f8461cc7559b401137ad51851 + languageName: node + linkType: hard + "strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" @@ -7931,6 +8934,13 @@ __metadata: languageName: node linkType: hard +"symbol-observable@npm:^4.0.0": + version: 4.0.0 + resolution: "symbol-observable@npm:4.0.0" + checksum: 10c0/5e9a3ab08263a6be8cbee76587ad5880dcc62a47002787ed5ebea56b1eb30dc87da6f0183d67e88286806799fbe21c69077fbd677be4be2188e92318d6c6f31d + languageName: node + linkType: hard + "synckit@npm:^0.8.6": version: 0.8.8 resolution: "synckit@npm:0.8.8" @@ -8085,6 +9095,15 @@ __metadata: languageName: node linkType: hard +"ts-invariant@npm:^0.10.3": + version: 0.10.3 + resolution: "ts-invariant@npm:0.10.3" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10c0/2fbc178d5903d325ee0b87fad38827eac11888b6e86979b06754fd4bcdcf44c2a99b8bcd5d59d149c0464ede55ae810b02a2aee6835ad10efe4dd0e22efd68c0 + languageName: node + linkType: hard + "ts-node@npm:^10.9.1": version: 10.9.2 resolution: "ts-node@npm:10.9.2" @@ -8151,6 +9170,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:2.7.0": + version: 2.7.0 + resolution: "tslib@npm:2.7.0" + checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6 + languageName: node + linkType: hard + "tslib@npm:^1.9.0": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -8158,6 +9184,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0": + version: 2.8.0 + resolution: "tslib@npm:2.8.0" + checksum: 10c0/31e4d14dc1355e9b89e4d3c893a18abb7f90b6886b089c2da91224d0a7752c79f3ddc41bc1aa0a588ac895bd97bb99c5bc2bfdb2f86de849f31caeb3ba79bbe5 + languageName: node + linkType: hard + "tslib@npm:^2.6.2": version: 2.6.2 resolution: "tslib@npm:2.6.2" @@ -8182,6 +9215,20 @@ __metadata: languageName: node linkType: hard +"tweetnacl-util@npm:^0.15.1": + version: 0.15.1 + resolution: "tweetnacl-util@npm:0.15.1" + checksum: 10c0/796fad76238e40e853dff79516406a27b41549bfd6fabf4ba89d87ca31acf232122f825daf955db8c8573cc98190d7a6d39ece9ed8ae0163370878c310650a80 + languageName: node + linkType: hard + +"tweetnacl@npm:^1.0.3": + version: 1.0.3 + resolution: "tweetnacl@npm:1.0.3" + checksum: 10c0/069d9df51e8ad4a89fbe6f9806c68e06c65be3c7d42f0701cc43dba5f0d6064686b238bbff206c5addef8854e3ce00c643bff59432ea2f2c639feab0ee1a93f9 + languageName: node + linkType: hard + "type-check@npm:^0.4.0, type-check@npm:~0.4.0": version: 0.4.0 resolution: "type-check@npm:0.4.0" @@ -8205,6 +9252,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^3.12.0": + version: 3.13.1 + resolution: "type-fest@npm:3.13.1" + checksum: 10c0/547d22186f73a8c04590b70dcf63baff390078c75ea8acd366bbd510fd0646e348bd1970e47ecf795b7cff0b41d26e9c475c1fedd6ef5c45c82075fbf916b629 + languageName: node + linkType: hard + "type@npm:^1.0.1": version: 1.2.0 resolution: "type@npm:1.2.0" @@ -8256,6 +9310,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~6.19.2": + version: 6.19.8 + resolution: "undici-types@npm:6.19.8" + checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344 + languageName: node + linkType: hard + "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" @@ -8338,7 +9399,7 @@ __metadata: languageName: node linkType: hard -"util-deprecate@npm:~1.0.1": +"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 @@ -8522,6 +9583,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:8.17.1": + version: 8.17.1 + resolution: "ws@npm:8.17.1" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/f4a49064afae4500be772abdc2211c8518f39e1c959640457dcee15d4488628620625c783902a52af2dd02f68558da2868fd06e6fd0e67ebcd09e6881b1b5bfe + languageName: node + linkType: hard + "ws@npm:^7, ws@npm:^7.4.5": version: 7.5.9 resolution: "ws@npm:7.5.9" @@ -8614,6 +9690,22 @@ __metadata: languageName: node linkType: hard +"zen-observable-ts@npm:^1.2.5": + version: 1.2.5 + resolution: "zen-observable-ts@npm:1.2.5" + dependencies: + zen-observable: "npm:0.8.15" + checksum: 10c0/21d586f3d0543e1d6f05d9333a137b407dbf337907c1ee1c2fa7a7da044f7e1262e4baf4ef8902f230c6f5acb561047659eb7df73df33307233cc451efe46db1 + languageName: node + linkType: hard + +"zen-observable@npm:0.8.15": + version: 0.8.15 + resolution: "zen-observable@npm:0.8.15" + checksum: 10c0/71cc2f2bbb537300c3f569e25693d37b3bc91f225cefce251a71c30bc6bb3e7f8e9420ca0eb57f2ac9e492b085b8dfa075fd1e8195c40b83c951dd59c6e4fbf8 + languageName: node + linkType: hard + "zod@npm:^3.21.2": version: 3.22.4 resolution: "zod@npm:3.22.4" From a6d84bf3e6cd18954619e844285ec067fd2f1f22 Mon Sep 17 00:00:00 2001 From: Yorke Rhodes Date: Thu, 17 Oct 2024 17:04:39 -0400 Subject: [PATCH 4/5] Additional multisig ISM actions --- package.json | 1 + script/commands/deploy.ts | 31 ++++++++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index d6211fc6..682322e5 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "@cosmjs/tendermint-rpc": "^0.32.4", "@hyperlane-xyz/sdk": "^3.7.0", "@hyperlane-xyz/utils": "^3.7.0", + "@injectivelabs/sdk-ts": "1.14.13", "axios": "^1.6.7", "colors": "^1.4.0", "commander": "^11.1.0", diff --git a/script/commands/deploy.ts b/script/commands/deploy.ts index a0a124fa..6d628739 100644 --- a/script/commands/deploy.ts +++ b/script/commands/deploy.ts @@ -1,5 +1,6 @@ import { Command } from 'commander'; +import { MsgExecuteContract } from '@injectivelabs/sdk-ts'; import { deployHook, deployIsm } from '../deploy'; import { saveAgentConfig } from '../shared/agent'; import { Client, config, getNetwork } from '../shared/config'; @@ -19,9 +20,33 @@ async function handleDeploy(_: object, cmd: Command) { ctx.deployments = ctx.deployments || {}; ctx.deployments.core = await deployCore(opts, ctx, client); ctx.deployments.isms = await deployIsms(ctx, client); - ctx.deployments.hooks = await deployHooks(opts, ctx, client); - ctx.deployments.warp = { native: [], cw20: [] }; - ctx.deployments.test = await deployTest(opts, ctx, client); + // ctx.deployments.hooks = await deployHooks(opts, ctx, client); + // ctx.deployments.warp = { native: [], cw20: [] }; + // ctx.deployments.test = await deployTest(opts, ctx, client); + + // const updateMsg = MsgUpdateAdmin.fromJSON({ + // sender: client.injective_signer, + // newAdmin: 'inj1ac6qpt57vhtfzdecd2an052elwgenwtxcn9chl', + // contract: ctx.deployments.isms?.address!, + // }); + + const initMsg = MsgExecuteContract.fromJSON({ + contractAddress: ctx.deployments.isms?.address!, + sender: client.injective_signer, + msg: { + ownable: { + init_ownership_transfer: { + next_owner: 'inj1ac6qpt57vhtfzdecd2an052elwgenwtxcn9chl' + } + } + } + }) + + const resp = await client.injective.broadcast({ + msgs: initMsg, + }); + + console.log({resp}); if (!ctx.deployments.core?.mailbox) throw new Error('deployed Mailbox contract not found on context'); From 6613b1a584376af215c0f77f37eab4d382979a45 Mon Sep 17 00:00:00 2001 From: maxrobot Date: Mon, 20 Jan 2025 20:19:56 +0000 Subject: [PATCH 5/5] feat: fixed finally --- Makefile | 2 +- README.md | 2 + contracts/igps/core/src/contract.rs | 2 +- contracts/igps/core/src/tests/mod.rs | 4 +- contracts/warp/native/Cargo.toml | 66 ++++++++++++---------- contracts/warp/native/src/proto.rs | 60 ++++++++++++++++++-- integration-test/tests/contracts/cw/igp.rs | 3 +- integration-test/tests/contracts/cw/ism.rs | 6 +- integration-test/tests/mailbox.rs | 2 + integration-test/tests/warp.rs | 8 +-- packages/interface/src/igp/core.rs | 4 +- 11 files changed, 112 insertions(+), 47 deletions(-) diff --git a/Makefile b/Makefile index f5369c7f..683f55ac 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ optimize: docker run --rm -v "$(PWD)":/code \ --mount type=volume,source="$(BASE)_cache",target=/code/target \ --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \ - cosmwasm/optimizer:0.15.0 + cosmwasm/optimizer:0.16.1 optimize-fast: cargo cw-optimizoor diff --git a/README.md b/README.md index 9db08d65..d9167127 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ ## Prerequisites +- rename +- foundry - rust (wasm32-wasm32-unknown target) - go 1.20 or higher - llvm-cov diff --git a/contracts/igps/core/src/contract.rs b/contracts/igps/core/src/contract.rs index 097be3ee..970139c8 100644 --- a/contracts/igps/core/src/contract.rs +++ b/contracts/igps/core/src/contract.rs @@ -46,7 +46,7 @@ pub fn instantiate( GAS_TOKEN.save(deps.storage, &msg.gas_token)?; HRP.save(deps.storage, &msg.hrp)?; - DEFAULT_GAS_USAGE.save(deps.storage, &msg.default_gas_usage)?; + DEFAULT_GAS_USAGE.save(deps.storage, &msg.default_gas_usage.into())?; Ok(Response::new().add_event( new_event("initialize") diff --git a/contracts/igps/core/src/tests/mod.rs b/contracts/igps/core/src/tests/mod.rs index 6bb55faf..ea1ef65f 100644 --- a/contracts/igps/core/src/tests/mod.rs +++ b/contracts/igps/core/src/tests/mod.rs @@ -1,7 +1,7 @@ use cosmwasm_std::{ from_json, testing::{mock_info, MockApi, MockQuerier, MockStorage}, - Addr, Coin, Deps, DepsMut, Empty, Env, HexBinary, MessageInfo, OwnedDeps, Response, + Addr, Coin, Deps, DepsMut, Empty, Env, HexBinary, MessageInfo, OwnedDeps, Response, Uint128, }; use hpl_interface::{ hook::PostDispatchMsg, @@ -54,7 +54,7 @@ impl IGP { owner: owner.to_string(), gas_token: gas_token.to_string(), beneficiary: beneficiary.to_string(), - default_gas_usage: 250_000, + default_gas_usage: Uint128::from(250_000u128), }, ) } diff --git a/contracts/warp/native/Cargo.toml b/contracts/warp/native/Cargo.toml index 059eb36f..bc0160e2 100644 --- a/contracts/warp/native/Cargo.toml +++ b/contracts/warp/native/Cargo.toml @@ -1,55 +1,63 @@ [package] -name = "hpl-warp-native" -version.workspace = true -authors.workspace = true -edition.workspace = true -license.workspace = true -repository.workspace = true -homepage.workspace = true +authors.workspace = true documentation.workspace = true -keywords.workspace = true +edition.workspace = true +homepage.workspace = true +keywords.workspace = true +license.workspace = true +name = "hpl-warp-native" +repository.workspace = true +version.workspace = true [lib] -crate-type = ["cdylib", "rlib"] +crate-type = [ "cdylib", "rlib" ] [features] # for more explicit tests, cargo test --features=backtraces -backtraces = ["cosmwasm-std/backtraces"] +backtraces = [ "cosmwasm-std/backtraces" ] # use library feature to disable all instantiate/execute/query exports -library = [] +default = [ "osmosis" ] +library = [ ] + +injective = [ ] +osmosis = [ ] + +[package.metadata.optimizer] +builds = [ { name = "injective", features = [ "injective" ], default-features = false }, { name = "osmosis", features = [ "osmosis" ], default-features = false } ] +default-build = true [dependencies] -cosmwasm-std.workspace = true +cosmwasm-schema.workspace = true +cosmwasm-std.workspace = true cosmwasm-storage.workspace = true -cosmwasm-schema.workspace = true cw-storage-plus.workspace = true -cw-utils.workspace = true -cw2.workspace = true +cw-utils.workspace = true +cw2.workspace = true -sha2.workspace = true ripemd.workspace = true +sha2.workspace = true -bech32.workspace = true -schemars.workspace = true -prost.workspace = true -prost-types.workspace = true -serde.workspace = true +bech32.workspace = true +prost.workspace = true +prost-types.workspace = true +schemars.workspace = true +serde.workspace = true serde-json-wasm.workspace = true thiserror.workspace = true -hpl-utils.workspace = true hpl-connection.workspace = true -hpl-ownable.workspace = true -hpl-router.workspace = true -hpl-interface.workspace = true +hpl-interface.workspace = true +hpl-ownable.workspace = true +hpl-router.workspace = true +hpl-utils.workspace = true [dev-dependencies] serde-json-wasm.workspace = true +anyhow.workspace = true ibcx-test-utils.workspace = true -rstest.workspace = true -anyhow.workspace = true -k256.workspace = true -sha3.workspace = true +k256.workspace = true +rstest.workspace = true +sha3.workspace = true diff --git a/contracts/warp/native/src/proto.rs b/contracts/warp/native/src/proto.rs index 4e932196..67598a9f 100644 --- a/contracts/warp/native/src/proto.rs +++ b/contracts/warp/native/src/proto.rs @@ -13,12 +13,25 @@ pub struct MsgCreateDenom { impl From for CosmosMsg { fn from(v: MsgCreateDenom) -> Self { CosmosMsg::Stargate { - type_url: "/osmosis.tokenfactory.v1beta1.MsgCreateDenom".to_string(), + type_url: MsgCreateDenom::type_url(), value: Binary(v.encode_to_vec()), } } } +impl MsgCreateDenom { + fn type_url() -> String { + #[cfg(feature = "osmosis")] + { + "/osmosis.tokenfactory.v1beta1.MsgCreateDenom".to_string() + } + #[cfg(feature = "injective")] + { + "/injective.tokenfactory.v1beta1.MsgCreateDenom".to_string() + } + } +} + #[derive(serde::Serialize, serde::Deserialize, ::prost::Message)] pub struct MsgCreateDenomResponse { #[prost(string, tag = "1")] @@ -60,12 +73,25 @@ pub struct MsgMint { impl From for CosmosMsg { fn from(v: MsgMint) -> Self { CosmosMsg::Stargate { - type_url: "/osmosis.tokenfactory.v1beta1.MsgMint".to_string(), + type_url: MsgMint::type_url(), value: Binary(v.encode_to_vec()), } } } +impl MsgMint { + fn type_url() -> String { + #[cfg(feature = "osmosis")] + { + "/osmosis.tokenfactory.v1beta1.MsgMint".to_string() + } + #[cfg(feature = "injective")] + { + "/injective.tokenfactory.v1beta1.MsgMint".to_string() + } + } +} + #[derive(serde::Serialize, serde::Deserialize, ::prost::Message)] pub struct MsgBurn { #[prost(string, tag = "1")] @@ -77,12 +103,25 @@ pub struct MsgBurn { impl From for CosmosMsg { fn from(v: MsgBurn) -> Self { CosmosMsg::Stargate { - type_url: "/osmosis.tokenfactory.v1beta1.MsgBurn".to_string(), + type_url: MsgBurn::type_url(), value: Binary(v.encode_to_vec()), } } } +impl MsgBurn { + fn type_url() -> String { + #[cfg(feature = "osmosis")] + { + "/osmosis.tokenfactory.v1beta1.MsgBurn".to_string() + } + #[cfg(feature = "injective")] + { + "/injective.tokenfactory.v1beta1.MsgBurn".to_string() + } + } +} + #[derive(serde::Serialize, serde::Deserialize, ::prost::Message)] pub struct DenomUnit { /// denom represents the string name of the given denom unit (e.g uatom). @@ -142,12 +181,25 @@ pub struct MsgSetDenomMetadata { impl From for CosmosMsg { fn from(v: MsgSetDenomMetadata) -> Self { CosmosMsg::Stargate { - type_url: "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadata".to_string(), + type_url: MsgSetDenomMetadata::type_url(), value: Binary(v.encode_to_vec()), } } } +impl MsgSetDenomMetadata { + fn type_url() -> String { + #[cfg(feature = "osmosis")] + { + "/osmosis.tokenfactory.v1beta1.MsgSetDenomMetadata".to_string() + } + #[cfg(feature = "injective")] + { + "/injective.tokenfactory.v1beta1.MsgSetDenomMetadata".to_string() + } + } +} + mod as_str { use serde::{de, Deserialize, Deserializer, Serializer}; use std::{fmt::Display, str::FromStr}; diff --git a/integration-test/tests/contracts/cw/igp.rs b/integration-test/tests/contracts/cw/igp.rs index 62447f27..68f47e46 100644 --- a/integration-test/tests/contracts/cw/igp.rs +++ b/integration-test/tests/contracts/cw/igp.rs @@ -1,3 +1,4 @@ +use cosmwasm_std::Uint128; use hpl_interface::{ igp::{self, oracle::RemoteGasDataConfig}, router::{DomainRouteSet, RouterMsg}, @@ -36,7 +37,7 @@ impl Igp { owner: owner.address(), gas_token: self.gas_token, beneficiary: self.beneficiary, - default_gas_usage: 25_000, + default_gas_usage: Uint128::from(25_000u128), }, Some(deployer.address().as_str()), Some("cw-hpl-igp"), diff --git a/integration-test/tests/contracts/cw/ism.rs b/integration-test/tests/contracts/cw/ism.rs index 2b58e01f..f10e5aac 100644 --- a/integration-test/tests/contracts/cw/ism.rs +++ b/integration-test/tests/contracts/cw/ism.rs @@ -60,7 +60,7 @@ impl Ism { owner: owner.address(), }, None, - None, + Some("None"), &[], deployer, )? @@ -112,7 +112,7 @@ impl Ism { .collect::>>()?, }, None, - None, + Some("None"), &[], deployer, )? @@ -146,7 +146,7 @@ impl Ism { threshold, }, None, - None, + Some("None"), &[], deployer, )? diff --git a/integration-test/tests/mailbox.rs b/integration-test/tests/mailbox.rs index 26aeef0a..bd6f5399 100644 --- a/integration-test/tests/mailbox.rs +++ b/integration-test/tests/mailbox.rs @@ -153,6 +153,7 @@ where } #[tokio::test] +#[ignore] async fn test_mailbox_cw_to_evm() -> eyre::Result<()> { // init Osmosis env let osmo_app = OsmosisTestApp::new(); @@ -179,6 +180,7 @@ async fn test_mailbox_cw_to_evm() -> eyre::Result<()> { } #[tokio::test] +#[ignore] async fn test_mailbox_evm_to_cw() -> eyre::Result<()> { // init Osmosis env let osmo_app = OsmosisTestApp::new(); diff --git a/integration-test/tests/warp.rs b/integration-test/tests/warp.rs index 5821b530..679bf235 100644 --- a/integration-test/tests/warp.rs +++ b/integration-test/tests/warp.rs @@ -42,7 +42,7 @@ async fn test_cw20_colleteral() -> eyre::Result<()> { let osmo = cw::setup_env( &osmo_app, |app, coins| app.init_account(coins).unwrap(), - None::<&str>, + Some("../artifacts/"), "osmo", DOMAIN_OSMO, &[TestValidators::new(DOMAIN_EVM, 5, 3)], @@ -115,7 +115,7 @@ async fn test_cw20_bridged() -> eyre::Result<()> { let osmo = cw::setup_env( &osmo_app, |app, coins| app.init_account(coins).unwrap(), - None::<&str>, + Some("../artifacts/"), "osmo", DOMAIN_OSMO, &[TestValidators::new(DOMAIN_EVM, 5, 3)], @@ -167,7 +167,7 @@ async fn test_native_collateral(#[case] denom: &str) -> eyre::Result<()> { let osmo = cw::setup_env( &osmo_app, |app, coins| app.init_account(coins).unwrap(), - None::<&str>, + Some("../artifacts/"), "osmo", DOMAIN_OSMO, &[TestValidators::new(DOMAIN_EVM, 5, 3)], @@ -240,7 +240,7 @@ async fn test_native_bridged(#[case] denom: &str) -> eyre::Result<()> { let osmo = cw::setup_env( &osmo_app, |app, coins| app.init_account(coins).unwrap(), - None::<&str>, + Some("../artifacts/"), "osmo", DOMAIN_OSMO, &[TestValidators::new(DOMAIN_EVM, 5, 3)], diff --git a/packages/interface/src/igp/core.rs b/packages/interface/src/igp/core.rs index b71287cf..5dbec1be 100644 --- a/packages/interface/src/igp/core.rs +++ b/packages/interface/src/igp/core.rs @@ -1,5 +1,5 @@ use cosmwasm_schema::{cw_serde, QueryResponses}; -use cosmwasm_std::{Addr, HexBinary, Uint256}; +use cosmwasm_std::{Addr, HexBinary, Uint128, Uint256}; use crate::{ hook::{HookQueryMsg, PostDispatchMsg}, @@ -16,7 +16,7 @@ pub struct InstantiateMsg { pub owner: String, pub gas_token: String, pub beneficiary: String, - pub default_gas_usage: u128, + pub default_gas_usage: Uint128, } #[cw_serde]