@initia/initia.js 1.0.20 → 2.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +232 -154
- package/dist/abi-helpers-DdwdqhMQ.mjs +51 -0
- package/dist/abi-helpers-DdwdqhMQ.mjs.map +1 -0
- package/dist/address-DwAkzgJk.mjs +156 -0
- package/dist/address-DwAkzgJk.mjs.map +1 -0
- package/dist/address-profile-DjdaEBxo.d.mts +112 -0
- package/dist/address-profile-DlAFvgdg.mjs +241 -0
- package/dist/address-profile-DlAFvgdg.mjs.map +1 -0
- package/dist/amino-CMQN7Frn.mjs +220 -0
- package/dist/amino-CMQN7Frn.mjs.map +1 -0
- package/dist/amino_pb-Bi6YDY_U.mjs +88 -0
- package/dist/amino_pb-Bi6YDY_U.mjs.map +1 -0
- package/dist/amount-B0J9TTNF.mjs +90 -0
- package/dist/amount-B0J9TTNF.mjs.map +1 -0
- package/dist/any-DElm7qF7.mjs +19 -0
- package/dist/any-DElm7qF7.mjs.map +1 -0
- package/dist/auth_pb-DN4URGLh.mjs +26 -0
- package/dist/auth_pb-DN4URGLh.mjs.map +1 -0
- package/dist/auth_pb-DfXfdvrY.mjs +16 -0
- package/dist/auth_pb-DfXfdvrY.mjs.map +1 -0
- package/dist/base-provider-CLnd7kte.d.mts +68 -0
- package/dist/base-provider-LNp6K7Mt.mjs +96 -0
- package/dist/base-provider-LNp6K7Mt.mjs.map +1 -0
- package/dist/bcs-DiRcL4n9.mjs +533 -0
- package/dist/bcs-DiRcL4n9.mjs.map +1 -0
- package/dist/bridge-DL-q-7P7.mjs +1222 -0
- package/dist/bridge-DL-q-7P7.mjs.map +1 -0
- package/dist/bridge-cQoOjppA.d.mts +606 -0
- package/dist/broadcast-De8MdmYa.mjs +974 -0
- package/dist/broadcast-De8MdmYa.mjs.map +1 -0
- package/dist/chain-utils-C61cU5nd.mjs +139 -0
- package/dist/chain-utils-C61cU5nd.mjs.map +1 -0
- package/dist/codegen/cli.d.mts +1 -0
- package/dist/codegen/cli.mjs +274 -0
- package/dist/codegen/cli.mjs.map +1 -0
- package/dist/coin-DPWbtAFA.mjs +543 -0
- package/dist/coin-DPWbtAFA.mjs.map +1 -0
- package/dist/coin_pb--WuIu4sX.mjs +25 -0
- package/dist/coin_pb--WuIu4sX.mjs.map +1 -0
- package/dist/composite-provider-DbxNrdny.mjs +203 -0
- package/dist/composite-provider-DbxNrdny.mjs.map +1 -0
- package/dist/constants-W6V0E-3W.mjs +42 -0
- package/dist/constants-W6V0E-3W.mjs.map +1 -0
- package/dist/contract-Dpvu4wLO.mjs +657 -0
- package/dist/contract-Dpvu4wLO.mjs.map +1 -0
- package/dist/cosmos-Bqh8qNfP.mjs +540 -0
- package/dist/cosmos-Bqh8qNfP.mjs.map +1 -0
- package/dist/cosmos-registry-provider-DCrEEhJ-.d.mts +123 -0
- package/dist/cw20-BTpdgMXC.mjs +63 -0
- package/dist/cw20-BTpdgMXC.mjs.map +1 -0
- package/dist/decode-CXGawqIZ.mjs +29 -0
- package/dist/decode-CXGawqIZ.mjs.map +1 -0
- package/dist/entry.bridge.browser.d.mts +21 -0
- package/dist/entry.bridge.browser.mjs +25 -0
- package/dist/entry.bridge.browser.mjs.map +1 -0
- package/dist/entry.bridge.node.d.mts +21 -0
- package/dist/entry.bridge.node.mjs +25 -0
- package/dist/entry.bridge.node.mjs.map +1 -0
- package/dist/entry.browser.d.mts +49 -0
- package/dist/entry.browser.mjs +46 -0
- package/dist/entry.browser.mjs.map +1 -0
- package/dist/entry.chain.initia.browser.d.mts +8 -0
- package/dist/entry.chain.initia.browser.mjs +17 -0
- package/dist/entry.chain.initia.browser.mjs.map +1 -0
- package/dist/entry.chain.initia.node.d.mts +8 -0
- package/dist/entry.chain.initia.node.mjs +17 -0
- package/dist/entry.chain.initia.node.mjs.map +1 -0
- package/dist/entry.chain.minievm.browser.d.mts +8 -0
- package/dist/entry.chain.minievm.browser.mjs +17 -0
- package/dist/entry.chain.minievm.browser.mjs.map +1 -0
- package/dist/entry.chain.minievm.node.d.mts +8 -0
- package/dist/entry.chain.minievm.node.mjs +17 -0
- package/dist/entry.chain.minievm.node.mjs.map +1 -0
- package/dist/entry.chain.minimove.browser.d.mts +8 -0
- package/dist/entry.chain.minimove.browser.mjs +17 -0
- package/dist/entry.chain.minimove.browser.mjs.map +1 -0
- package/dist/entry.chain.minimove.node.d.mts +8 -0
- package/dist/entry.chain.minimove.node.mjs +17 -0
- package/dist/entry.chain.minimove.node.mjs.map +1 -0
- package/dist/entry.chain.miniwasm.browser.d.mts +8 -0
- package/dist/entry.chain.miniwasm.browser.mjs +17 -0
- package/dist/entry.chain.miniwasm.browser.mjs.map +1 -0
- package/dist/entry.chain.miniwasm.node.d.mts +8 -0
- package/dist/entry.chain.miniwasm.node.mjs +17 -0
- package/dist/entry.chain.miniwasm.node.mjs.map +1 -0
- package/dist/entry.client.browser-CQsfUmx1.d.mts +1 -0
- package/dist/entry.client.browser.d.mts +3 -0
- package/dist/entry.client.browser.mjs +6 -0
- package/dist/entry.client.node.d.mts +3 -0
- package/dist/entry.client.node.mjs +6 -0
- package/dist/entry.codegen.d.mts +251 -0
- package/dist/entry.codegen.mjs +2 -0
- package/dist/entry.cosmos.d.mts +2 -0
- package/dist/entry.cosmos.mjs +355 -0
- package/dist/entry.cosmos.mjs.map +1 -0
- package/dist/entry.events.d.mts +338 -0
- package/dist/entry.events.mjs +383 -0
- package/dist/entry.events.mjs.map +1 -0
- package/dist/entry.evm.d.mts +544 -0
- package/dist/entry.evm.mjs +761 -0
- package/dist/entry.evm.mjs.map +1 -0
- package/dist/entry.modules.d.mts +2 -0
- package/dist/entry.modules.mjs +7 -0
- package/dist/entry.move.d.mts +523 -0
- package/dist/entry.move.mjs +7 -0
- package/dist/entry.msgs.d.mts +2 -0
- package/dist/entry.msgs.mjs +3 -0
- package/dist/entry.node.d.mts +118 -0
- package/dist/entry.node.mjs +278 -0
- package/dist/entry.node.mjs.map +1 -0
- package/dist/entry.provider.d.mts +355 -0
- package/dist/entry.provider.mjs +416 -0
- package/dist/entry.provider.mjs.map +1 -0
- package/dist/entry.signer.d.mts +2 -0
- package/dist/entry.signer.mjs +674 -0
- package/dist/entry.signer.mjs.map +1 -0
- package/dist/entry.tx.d.mts +2 -0
- package/dist/entry.tx.mjs +6 -0
- package/dist/entry.usernames.d.mts +42 -0
- package/dist/entry.usernames.mjs +2 -0
- package/dist/entry.util.d.mts +103 -0
- package/dist/entry.util.mjs +70 -0
- package/dist/entry.util.mjs.map +1 -0
- package/dist/entry.vip.d.mts +1917 -0
- package/dist/entry.vip.mjs +3793 -0
- package/dist/entry.vip.mjs.map +1 -0
- package/dist/entry.wasm.d.mts +447 -0
- package/dist/entry.wasm.mjs +600 -0
- package/dist/entry.wasm.mjs.map +1 -0
- package/dist/erc20-CDs3j7vt.mjs +168 -0
- package/dist/erc20-CDs3j7vt.mjs.map +1 -0
- package/dist/errors-CN1MFOLv.mjs +253 -0
- package/dist/errors-CN1MFOLv.mjs.map +1 -0
- package/dist/evm-rpc-BxpgXIAF.mjs +338 -0
- package/dist/evm-rpc-BxpgXIAF.mjs.map +1 -0
- package/dist/fetch-Bq_aay6V.mjs +55 -0
- package/dist/fetch-Bq_aay6V.mjs.map +1 -0
- package/dist/fungible-asset-aHBTYpoT.mjs +64 -0
- package/dist/fungible-asset-aHBTYpoT.mjs.map +1 -0
- package/dist/get-tx-0P40z_A4.mjs +99 -0
- package/dist/get-tx-0P40z_A4.mjs.map +1 -0
- package/dist/grpc-client-DGyZjGcT.mjs +254 -0
- package/dist/grpc-client-DGyZjGcT.mjs.map +1 -0
- package/dist/hash-D40mxOlF.mjs +14 -0
- package/dist/hash-D40mxOlF.mjs.map +1 -0
- package/dist/hash-Doo89wm3.d.mts +31 -0
- package/dist/headers-CMO7ia_D.mjs +83 -0
- package/dist/headers-CMO7ia_D.mjs.map +1 -0
- package/dist/http-client-BrdVurTg.mjs +40 -0
- package/dist/http-client-BrdVurTg.mjs.map +1 -0
- package/dist/initia-B8l_x6sT.mjs +426 -0
- package/dist/initia-B8l_x6sT.mjs.map +1 -0
- package/dist/initia-Cj4bZ1dR.mjs +26 -0
- package/dist/initia-Cj4bZ1dR.mjs.map +1 -0
- package/dist/json-CGak0DqP.mjs +41 -0
- package/dist/json-CGak0DqP.mjs.map +1 -0
- package/dist/minievm-BAnGHa00.mjs +39 -0
- package/dist/minievm-BAnGHa00.mjs.map +1 -0
- package/dist/minievm-DZ8AhnD8.mjs +61 -0
- package/dist/minievm-DZ8AhnD8.mjs.map +1 -0
- package/dist/minimove-B8U85g-_.mjs +23 -0
- package/dist/minimove-B8U85g-_.mjs.map +1 -0
- package/dist/minimove-BBXTyhIv.mjs +24 -0
- package/dist/minimove-BBXTyhIv.mjs.map +1 -0
- package/dist/miniwasm-CB0XfStg.mjs +50 -0
- package/dist/miniwasm-CB0XfStg.mjs.map +1 -0
- package/dist/miniwasm-QdyYzmQ1.mjs +139 -0
- package/dist/miniwasm-QdyYzmQ1.mjs.map +1 -0
- package/dist/move-BaCv0oRX.mjs +64 -0
- package/dist/move-BaCv0oRX.mjs.map +1 -0
- package/dist/msg_pb-DxYxctLM.mjs +11 -0
- package/dist/msg_pb-DxYxctLM.mjs.map +1 -0
- package/dist/pagination_pb-DlkDYAcN.mjs +18 -0
- package/dist/pagination_pb-DlkDYAcN.mjs.map +1 -0
- package/dist/public-key-DV-uGaUC.mjs +550 -0
- package/dist/public-key-DV-uGaUC.mjs.map +1 -0
- package/dist/query_pb-cZ3szo3y.mjs +20 -0
- package/dist/query_pb-cZ3szo3y.mjs.map +1 -0
- package/dist/registry-provider-NzblVZQr.mjs +368 -0
- package/dist/registry-provider-NzblVZQr.mjs.map +1 -0
- package/dist/resolve-DdtY7KDz.mjs +50 -0
- package/dist/resolve-DdtY7KDz.mjs.map +1 -0
- package/dist/rolldown-runtime-wcPFST8Q.mjs +13 -0
- package/dist/service-BaMjxPNo.mjs +412 -0
- package/dist/service-BaMjxPNo.mjs.map +1 -0
- package/dist/service-CVFxsMp_.d.mts +151 -0
- package/dist/service_pb-Be-O-2-c.mjs +121 -0
- package/dist/service_pb-Be-O-2-c.mjs.map +1 -0
- package/dist/sign-DqagxLcg.mjs +212 -0
- package/dist/sign-DqagxLcg.mjs.map +1 -0
- package/dist/transport-common-BsPYcFQl.mjs +182 -0
- package/dist/transport-common-BsPYcFQl.mjs.map +1 -0
- package/dist/transport.browser-CCUWv3ta.mjs +31 -0
- package/dist/transport.browser-CCUWv3ta.mjs.map +1 -0
- package/dist/transport.node-DXcJtCnx.mjs +33 -0
- package/dist/transport.node-DXcJtCnx.mjs.map +1 -0
- package/dist/tx_pb-BJzY8SXE.mjs +38 -0
- package/dist/tx_pb-BJzY8SXE.mjs.map +1 -0
- package/dist/tx_pb-BVCXH992.mjs +39 -0
- package/dist/tx_pb-BVCXH992.mjs.map +1 -0
- package/dist/tx_pb-CnFNMLIq.mjs +107 -0
- package/dist/tx_pb-CnFNMLIq.mjs.map +1 -0
- package/dist/tx_pb-DYspoJTt.mjs +50 -0
- package/dist/tx_pb-DYspoJTt.mjs.map +1 -0
- package/dist/tx_pb-u3CoQYge.mjs +79 -0
- package/dist/tx_pb-u3CoQYge.mjs.map +1 -0
- package/dist/typed-context-Cg0If0M9.mjs +118 -0
- package/dist/typed-context-Cg0If0M9.mjs.map +1 -0
- package/dist/types-CLfdsa48.mjs +41 -0
- package/dist/types-CLfdsa48.mjs.map +1 -0
- package/dist/types-CSS5rfW1.mjs +303 -0
- package/dist/types-CSS5rfW1.mjs.map +1 -0
- package/dist/types-DGrP9Ro_.d.mts +39609 -0
- package/dist/types_pb-CrjtO9sB.mjs +21 -0
- package/dist/types_pb-CrjtO9sB.mjs.map +1 -0
- package/dist/types_pb-K7pKBvcg.mjs +1433 -0
- package/dist/types_pb-K7pKBvcg.mjs.map +1 -0
- package/dist/utils-B2carKSi.mjs +2 -0
- package/dist/waiting-BigHYRNN.mjs +1081 -0
- package/dist/waiting-BigHYRNN.mjs.map +1 -0
- package/dist/wasm-DdunGtLM.mjs +396 -0
- package/dist/wasm-DdunGtLM.mjs.map +1 -0
- package/package.json +195 -66
- package/dist/client/WebSocketClient.d.ts +0 -30
- package/dist/client/index.d.ts +0 -5
- package/dist/client/rest/APIRequester.d.ts +0 -27
- package/dist/client/rest/RESTClient.d.ts +0 -48
- package/dist/client/rest/Wallet.d.ts +0 -26
- package/dist/client/rest/api/AuctionAPI.d.ts +0 -6
- package/dist/client/rest/api/AuthAPI.d.ts +0 -8
- package/dist/client/rest/api/AuthzAPI.d.ts +0 -8
- package/dist/client/rest/api/BankAPI.d.ts +0 -10
- package/dist/client/rest/api/BaseAPI.d.ts +0 -5
- package/dist/client/rest/api/DistributionAPI.d.ts +0 -35
- package/dist/client/rest/api/EvidenceAPI.d.ts +0 -7
- package/dist/client/rest/api/EvmAPI.d.ts +0 -44
- package/dist/client/rest/api/FeeGrantAPI.d.ts +0 -22
- package/dist/client/rest/api/ForwardingAPI.d.ts +0 -20
- package/dist/client/rest/api/GovAPI.d.ts +0 -12
- package/dist/client/rest/api/GroupAPI.d.ts +0 -19
- package/dist/client/rest/api/IbcAPI.d.ts +0 -48
- package/dist/client/rest/api/IbcHooksAPI.d.ts +0 -8
- package/dist/client/rest/api/IbcNftAPI.d.ts +0 -10
- package/dist/client/rest/api/IbcPermAPI.d.ts +0 -12
- package/dist/client/rest/api/IbcTransferAPI.d.ts +0 -10
- package/dist/client/rest/api/InterTxAPI.d.ts +0 -6
- package/dist/client/rest/api/MarketmapAPI.d.ts +0 -18
- package/dist/client/rest/api/MoveAPI.d.ts +0 -62
- package/dist/client/rest/api/MstakingAPI.d.ts +0 -28
- package/dist/client/rest/api/OpchildAPI.d.ts +0 -12
- package/dist/client/rest/api/OphostAPI.d.ts +0 -33
- package/dist/client/rest/api/OracleAPI.d.ts +0 -22
- package/dist/client/rest/api/RewardAPI.d.ts +0 -8
- package/dist/client/rest/api/SlashingAPI.d.ts +0 -8
- package/dist/client/rest/api/TendermintAPI.d.ts +0 -16
- package/dist/client/rest/api/TokenfactoryAPI.d.ts +0 -12
- package/dist/client/rest/api/TxAPI.d.ts +0 -190
- package/dist/client/rest/api/UpgradeAPI.d.ts +0 -18
- package/dist/client/rest/api/WasmAPI.d.ts +0 -78
- package/dist/client/rest/api/index.d.ts +0 -30
- package/dist/core/Block.d.ts +0 -55
- package/dist/core/Coin.d.ts +0 -40
- package/dist/core/Coins.d.ts +0 -43
- package/dist/core/Denom.d.ts +0 -1
- package/dist/core/Duration.d.ts +0 -19
- package/dist/core/Msg.d.ts +0 -45
- package/dist/core/PublicKey.d.ts +0 -122
- package/dist/core/auction/AuctionParams.d.ts +0 -41
- package/dist/core/auction/index.d.ts +0 -2
- package/dist/core/auction/msgs/MsgAuctionBid.d.ts +0 -36
- package/dist/core/auction/msgs/MsgUpdateAuctionParams.d.ts +0 -33
- package/dist/core/auction/msgs/index.d.ts +0 -10
- package/dist/core/auth/Account.d.ts +0 -12
- package/dist/core/auth/AuthParams.d.ts +0 -37
- package/dist/core/auth/BaseAccount.d.ts +0 -45
- package/dist/core/auth/ModuleAccount.d.ts +0 -39
- package/dist/core/auth/index.d.ts +0 -5
- package/dist/core/auth/msgs/MsgUpdateAuthParams.d.ts +0 -33
- package/dist/core/auth/msgs/index.d.ts +0 -8
- package/dist/core/authz/authorizations/Authorization.d.ts +0 -41
- package/dist/core/authz/authorizations/ExecuteAuthorization.d.ts +0 -54
- package/dist/core/authz/authorizations/GenericAuthorization.d.ts +0 -28
- package/dist/core/authz/authorizations/PublishAuthorization.d.ts +0 -28
- package/dist/core/authz/authorizations/SendAuthorization.d.ts +0 -33
- package/dist/core/authz/authorizations/StakeAuthorization.d.ts +0 -60
- package/dist/core/authz/authorizations/index.d.ts +0 -6
- package/dist/core/authz/index.d.ts +0 -2
- package/dist/core/authz/msgs/MsgExecAuthorized.d.ts +0 -33
- package/dist/core/authz/msgs/MsgGrantAuthorization.d.ts +0 -36
- package/dist/core/authz/msgs/MsgRevokeAuthorization.d.ts +0 -35
- package/dist/core/authz/msgs/index.d.ts +0 -12
- package/dist/core/bank/BankParams.d.ts +0 -29
- package/dist/core/bank/DenomMetadata.d.ts +0 -43
- package/dist/core/bank/DenomUnit.d.ts +0 -28
- package/dist/core/bank/SendEnabled.d.ts +0 -25
- package/dist/core/bank/index.d.ts +0 -5
- package/dist/core/bank/msgs/MsgMultiSend.d.ts +0 -78
- package/dist/core/bank/msgs/MsgSend.d.ts +0 -36
- package/dist/core/bank/msgs/MsgSetDenomMetadata.d.ts +0 -33
- package/dist/core/bank/msgs/MsgSetSendEnabled.d.ts +0 -37
- package/dist/core/bank/msgs/MsgUpdateBankParams.d.ts +0 -33
- package/dist/core/bank/msgs/index.d.ts +0 -16
- package/dist/core/bech32.d.ts +0 -27
- package/dist/core/celestia/Blob.d.ts +0 -24
- package/dist/core/celestia/BlobTx.d.ts +0 -25
- package/dist/core/celestia/index.d.ts +0 -3
- package/dist/core/celestia/msgs/MsgPayForBlobs.d.ts +0 -31
- package/dist/core/celestia/msgs/index.d.ts +0 -7
- package/dist/core/consensus/ABCIParams.d.ts +0 -21
- package/dist/core/consensus/BlockParams.d.ts +0 -24
- package/dist/core/consensus/EvidenceParams.d.ts +0 -28
- package/dist/core/consensus/ValidatorParams.d.ts +0 -21
- package/dist/core/consensus/index.d.ts +0 -5
- package/dist/core/consensus/msgs/MsgUpdateConsensusParams.d.ts +0 -45
- package/dist/core/consensus/msgs/index.d.ts +0 -8
- package/dist/core/crisis/index.d.ts +0 -1
- package/dist/core/crisis/msgs/MsgUpdateCrisisParams.d.ts +0 -33
- package/dist/core/crisis/msgs/MsgVerifyInvariant.d.ts +0 -35
- package/dist/core/crisis/msgs/index.d.ts +0 -10
- package/dist/core/distribution/DistributionParams.d.ts +0 -32
- package/dist/core/distribution/RewardWeight.d.ts +0 -25
- package/dist/core/distribution/index.d.ts +0 -3
- package/dist/core/distribution/msgs/MsgCommunityPoolSpend.d.ts +0 -36
- package/dist/core/distribution/msgs/MsgDepositValidatorRewardsPool.d.ts +0 -40
- package/dist/core/distribution/msgs/MsgFundCommunityPool.d.ts +0 -33
- package/dist/core/distribution/msgs/MsgSetWithdrawAddress.d.ts +0 -32
- package/dist/core/distribution/msgs/MsgUpdateDistrParams.d.ts +0 -33
- package/dist/core/distribution/msgs/MsgWithdrawDelegatorReward.d.ts +0 -32
- package/dist/core/distribution/msgs/MsgWithdrawValidatorCommission.d.ts +0 -29
- package/dist/core/distribution/msgs/index.d.ts +0 -20
- package/dist/core/evidence/Equivocation.d.ts +0 -38
- package/dist/core/evidence/Evidence.d.ts +0 -11
- package/dist/core/evidence/index.d.ts +0 -3
- package/dist/core/evidence/msgs/MsgSubmitEvidence.d.ts +0 -33
- package/dist/core/evidence/msgs/index.d.ts +0 -8
- package/dist/core/evm/AccessTuple.d.ts +0 -25
- package/dist/core/evm/EvmParams.d.ts +0 -39
- package/dist/core/evm/index.d.ts +0 -3
- package/dist/core/evm/msgs/MsgCall.d.ts +0 -42
- package/dist/core/evm/msgs/MsgCreate.d.ts +0 -39
- package/dist/core/evm/msgs/MsgCreate2.d.ts +0 -42
- package/dist/core/evm/msgs/MsgUpdateEvmParams.d.ts +0 -33
- package/dist/core/evm/msgs/index.d.ts +0 -14
- package/dist/core/feegrant/allowances/AllowedMsgAllowance.d.ts +0 -33
- package/dist/core/feegrant/allowances/BasicAllowance.d.ts +0 -32
- package/dist/core/feegrant/allowances/PeriodicAllowance.d.ts +0 -43
- package/dist/core/feegrant/allowances/index.d.ts +0 -16
- package/dist/core/feegrant/index.d.ts +0 -2
- package/dist/core/feegrant/msgs/MsgGrantAllowance.d.ts +0 -36
- package/dist/core/feegrant/msgs/MsgRevokeAllowance.d.ts +0 -32
- package/dist/core/feegrant/msgs/index.d.ts +0 -10
- package/dist/core/forwarding/index.d.ts +0 -1
- package/dist/core/forwarding/msgs/MsgClearForwardingAccount.d.ts +0 -32
- package/dist/core/forwarding/msgs/MsgRegisterForwardingAccount.d.ts +0 -38
- package/dist/core/forwarding/msgs/index.d.ts +0 -10
- package/dist/core/gov/Deposit.d.ts +0 -29
- package/dist/core/gov/GovParams.d.ts +0 -82
- package/dist/core/gov/TallyResult.d.ts +0 -36
- package/dist/core/gov/Vesting.d.ts +0 -28
- package/dist/core/gov/Vote.d.ts +0 -55
- package/dist/core/gov/index.d.ts +0 -6
- package/dist/core/gov/msgs/MsgCancelProposal.d.ts +0 -32
- package/dist/core/gov/msgs/MsgDeposit.d.ts +0 -36
- package/dist/core/gov/msgs/MsgDepositLegacy.d.ts +0 -36
- package/dist/core/gov/msgs/MsgSubmitProposal.d.ts +0 -49
- package/dist/core/gov/msgs/MsgSubmitProposalLegacy.d.ts +0 -37
- package/dist/core/gov/msgs/MsgUpdateGovParams.d.ts +0 -33
- package/dist/core/gov/msgs/MsgVote.d.ts +0 -41
- package/dist/core/gov/msgs/MsgVoteLegacy.d.ts +0 -38
- package/dist/core/gov/msgs/MsgVoteWeighted.d.ts +0 -39
- package/dist/core/gov/msgs/MsgVoteWeightedLegacy.d.ts +0 -36
- package/dist/core/gov/msgs/index.d.ts +0 -26
- package/dist/core/gov/proposals/Content.d.ts +0 -12
- package/dist/core/gov/proposals/Proposal.d.ts +0 -79
- package/dist/core/gov/proposals/TextProposal.d.ts +0 -31
- package/dist/core/gov/proposals/index.d.ts +0 -3
- package/dist/core/group/GroupInfo.d.ts +0 -37
- package/dist/core/group/GroupMember.d.ts +0 -78
- package/dist/core/group/GroupPolicyInfo.d.ts +0 -41
- package/dist/core/group/GroupProposal.d.ts +0 -82
- package/dist/core/group/GroupVote.d.ts +0 -36
- package/dist/core/group/index.d.ts +0 -7
- package/dist/core/group/msgs/MsgCreateGroup.d.ts +0 -36
- package/dist/core/group/msgs/MsgCreateGroupPolicy.d.ts +0 -39
- package/dist/core/group/msgs/MsgCreateGroupWithPolicy.d.ts +0 -46
- package/dist/core/group/msgs/MsgGroupExec.d.ts +0 -32
- package/dist/core/group/msgs/MsgGroupVote.d.ts +0 -46
- package/dist/core/group/msgs/MsgLeaveGroup.d.ts +0 -32
- package/dist/core/group/msgs/MsgSubmitGroupProposal.d.ts +0 -50
- package/dist/core/group/msgs/MsgUpdateGroupAdmin.d.ts +0 -35
- package/dist/core/group/msgs/MsgUpdateGroupDecisionPolicy.d.ts +0 -36
- package/dist/core/group/msgs/MsgUpdateGroupMembers.d.ts +0 -36
- package/dist/core/group/msgs/MsgUpdateGroupMetadata.d.ts +0 -35
- package/dist/core/group/msgs/MsgUpdateGroupPolicyAdmin.d.ts +0 -35
- package/dist/core/group/msgs/MsgUpdateGroupPolicyMetadata.d.ts +0 -35
- package/dist/core/group/msgs/MsgWithdrawProposal.d.ts +0 -32
- package/dist/core/group/msgs/index.d.ts +0 -32
- package/dist/core/group/policies/DecisionPolicyWindows.d.ts +0 -25
- package/dist/core/group/policies/PercentageDecisionPolicy.d.ts +0 -32
- package/dist/core/group/policies/ThresholdDecisionPolicy.d.ts +0 -32
- package/dist/core/group/policies/index.d.ts +0 -15
- package/dist/core/ibc/applications/fee/IbcFee.d.ts +0 -28
- package/dist/core/ibc/applications/fee/IdentifiedPacketFee.d.ts +0 -26
- package/dist/core/ibc/applications/fee/Metadata.d.ts +0 -24
- package/dist/core/ibc/applications/fee/PacketFee.d.ts +0 -29
- package/dist/core/ibc/applications/fee/index.d.ts +0 -5
- package/dist/core/ibc/applications/fee/msgs/MsgPayPacketFee.d.ts +0 -31
- package/dist/core/ibc/applications/fee/msgs/MsgPayPacketFeeAsync.d.ts +0 -26
- package/dist/core/ibc/applications/fee/msgs/MsgRegisterCounterpartyPayee.d.ts +0 -28
- package/dist/core/ibc/applications/fee/msgs/MsgRegisterPayee.d.ts +0 -28
- package/dist/core/ibc/applications/fee/msgs/index.d.ts +0 -13
- package/dist/core/ibc/applications/index.d.ts +0 -4
- package/dist/core/ibc/applications/interchain-account/Account.d.ts +0 -25
- package/dist/core/ibc/applications/interchain-account/Metadata.d.ts +0 -36
- package/dist/core/ibc/applications/interchain-account/controller/Params.d.ts +0 -21
- package/dist/core/ibc/applications/interchain-account/host/Params.d.ts +0 -24
- package/dist/core/ibc/applications/interchain-account/index.d.ts +0 -4
- package/dist/core/ibc/applications/nft-transfer/IbcNftParams.d.ts +0 -28
- package/dist/core/ibc/applications/nft-transfer/NftClassTrace.d.ts +0 -24
- package/dist/core/ibc/applications/nft-transfer/NonFungibleTokenPacketData.d.ts +0 -45
- package/dist/core/ibc/applications/nft-transfer/index.d.ts +0 -4
- package/dist/core/ibc/applications/nft-transfer/msgs/MsgNftTransfer.d.ts +0 -54
- package/dist/core/ibc/applications/nft-transfer/msgs/MsgUpdateIbcNftParams.d.ts +0 -33
- package/dist/core/ibc/applications/nft-transfer/msgs/index.d.ts +0 -10
- package/dist/core/ibc/applications/perm/index.d.ts +0 -1
- package/dist/core/ibc/applications/perm/msgs/MsgUpdateIbcPermAdmin.d.ts +0 -38
- package/dist/core/ibc/applications/perm/msgs/MsgUpdatePermissionedRelayers.d.ts +0 -38
- package/dist/core/ibc/applications/perm/msgs/index.d.ts +0 -10
- package/dist/core/ibc/applications/transfer/DenomTrace.d.ts +0 -24
- package/dist/core/ibc/applications/transfer/FungibleTokenPacketData.d.ts +0 -33
- package/dist/core/ibc/applications/transfer/IbcTransferParams.d.ts +0 -24
- package/dist/core/ibc/applications/transfer/authorizations/Allocation.d.ts +0 -34
- package/dist/core/ibc/applications/transfer/authorizations/TransferAuthorization.d.ts +0 -23
- package/dist/core/ibc/applications/transfer/authorizations/index.d.ts +0 -2
- package/dist/core/ibc/applications/transfer/index.d.ts +0 -5
- package/dist/core/ibc/applications/transfer/msgs/MsgTransfer.d.ts +0 -52
- package/dist/core/ibc/applications/transfer/msgs/MsgUpdateIbcTransferParams.d.ts +0 -26
- package/dist/core/ibc/applications/transfer/msgs/index.d.ts +0 -10
- package/dist/core/ibc/core/channel/Channel.d.ts +0 -39
- package/dist/core/ibc/core/channel/ChannelCounterparty.d.ts +0 -24
- package/dist/core/ibc/core/channel/ChannelOrder.d.ts +0 -3
- package/dist/core/ibc/core/channel/ChannelState.d.ts +0 -3
- package/dist/core/ibc/core/channel/ErrorReceipt.d.ts +0 -20
- package/dist/core/ibc/core/channel/IbcChannelParams.d.ts +0 -22
- package/dist/core/ibc/core/channel/IdentifiedChannel.d.ts +0 -45
- package/dist/core/ibc/core/channel/Packet.d.ts +0 -43
- package/dist/core/ibc/core/channel/PacketId.d.ts +0 -27
- package/dist/core/ibc/core/channel/Timeout.d.ts +0 -25
- package/dist/core/ibc/core/channel/Upgrade.d.ts +0 -24
- package/dist/core/ibc/core/channel/UpgradeFields.d.ts +0 -23
- package/dist/core/ibc/core/channel/index.d.ts +0 -13
- package/dist/core/ibc/core/channel/msgs/MsgChannelCloseConfirm.d.ts +0 -32
- package/dist/core/ibc/core/channel/msgs/MsgChannelCloseInit.d.ts +0 -27
- package/dist/core/ibc/core/channel/msgs/MsgChannelOpenAck.d.ts +0 -36
- package/dist/core/ibc/core/channel/msgs/MsgChannelOpenConfirm.d.ts +0 -32
- package/dist/core/ibc/core/channel/msgs/MsgChannelOpenInit.d.ts +0 -28
- package/dist/core/ibc/core/channel/msgs/MsgChannelOpenTry.d.ts +0 -36
- package/dist/core/ibc/core/channel/msgs/MsgChannelUpgradeAck.d.ts +0 -37
- package/dist/core/ibc/core/channel/msgs/MsgChannelUpgradeCancel.d.ts +0 -35
- package/dist/core/ibc/core/channel/msgs/MsgChannelUpgradeConfirm.d.ts +0 -40
- package/dist/core/ibc/core/channel/msgs/MsgChannelUpgradeInit.d.ts +0 -30
- package/dist/core/ibc/core/channel/msgs/MsgChannelUpgradeOpen.d.ts +0 -37
- package/dist/core/ibc/core/channel/msgs/MsgChannelUpgradeTimeout.d.ts +0 -35
- package/dist/core/ibc/core/channel/msgs/MsgChannelUpgradeTry.d.ts +0 -41
- package/dist/core/ibc/core/channel/msgs/MsgRecvAcknowledgement.d.ts +0 -32
- package/dist/core/ibc/core/channel/msgs/MsgRecvPacket.d.ts +0 -30
- package/dist/core/ibc/core/channel/msgs/MsgTimeout.d.ts +0 -32
- package/dist/core/ibc/core/channel/msgs/MsgTimeoutClose.d.ts +0 -34
- package/dist/core/ibc/core/channel/msgs/MsgUpdateIbcChannelParams.d.ts +0 -26
- package/dist/core/ibc/core/channel/msgs/index.d.ts +0 -41
- package/dist/core/ibc/core/client/ClientConsensusStates.d.ts +0 -25
- package/dist/core/ibc/core/client/ConsensusStateWithHeight.d.ts +0 -25
- package/dist/core/ibc/core/client/Height.d.ts +0 -24
- package/dist/core/ibc/core/client/IbcClientParams.d.ts +0 -21
- package/dist/core/ibc/core/client/IdentifiedClient.d.ts +0 -24
- package/dist/core/ibc/core/client/index.d.ts +0 -6
- package/dist/core/ibc/core/client/msgs/MsgCreateClient.d.ts +0 -27
- package/dist/core/ibc/core/client/msgs/MsgIBCSoftwareUpgrade.d.ts +0 -28
- package/dist/core/ibc/core/client/msgs/MsgRecoverClient.d.ts +0 -27
- package/dist/core/ibc/core/client/msgs/MsgSubmitMisbehaviour.d.ts +0 -27
- package/dist/core/ibc/core/client/msgs/MsgUpdateClient.d.ts +0 -27
- package/dist/core/ibc/core/client/msgs/MsgUpdateIbcClientParams.d.ts +0 -26
- package/dist/core/ibc/core/client/msgs/MsgUpgradeClient.d.ts +0 -33
- package/dist/core/ibc/core/client/msgs/index.d.ts +0 -19
- package/dist/core/ibc/core/client/msgs/tendermint/crypto.d.ts +0 -43
- package/dist/core/ibc/core/client/msgs/tendermint/types.d.ts +0 -187
- package/dist/core/ibc/core/client/msgs/tendermint/version.d.ts +0 -38
- package/dist/core/ibc/core/commitment/MerklePrefix.d.ts +0 -21
- package/dist/core/ibc/core/commitment/MerkleRoot.d.ts +0 -21
- package/dist/core/ibc/core/commitment/index.d.ts +0 -2
- package/dist/core/ibc/core/connection/ConnectionCounterparty.d.ts +0 -28
- package/dist/core/ibc/core/connection/ConnectionState.d.ts +0 -3
- package/dist/core/ibc/core/connection/IbcConnectionParams.d.ts +0 -21
- package/dist/core/ibc/core/connection/IbcVersion.d.ts +0 -24
- package/dist/core/ibc/core/connection/IdentifiedConnection.d.ts +0 -39
- package/dist/core/ibc/core/connection/index.d.ts +0 -5
- package/dist/core/ibc/core/connection/msgs/MsgConnectionOpenAck.d.ts +0 -42
- package/dist/core/ibc/core/connection/msgs/MsgConnectionOpenConfirm.d.ts +0 -30
- package/dist/core/ibc/core/connection/msgs/MsgConnectionOpenInit.d.ts +0 -33
- package/dist/core/ibc/core/connection/msgs/MsgConnectionOpenTry.d.ts +0 -46
- package/dist/core/ibc/core/connection/msgs/MsgUpdateIbcConnectionParams.d.ts +0 -26
- package/dist/core/ibc/core/connection/msgs/index.d.ts +0 -15
- package/dist/core/ibc/core/index.d.ts +0 -4
- package/dist/core/ibc/index.d.ts +0 -2
- package/dist/core/ibc/lightclient/index.d.ts +0 -1
- package/dist/core/ibc/lightclient/tendermint/Header.d.ts +0 -29
- package/dist/core/ibchooks/ACL.d.ts +0 -25
- package/dist/core/ibchooks/IbcHooksParams.d.ts +0 -25
- package/dist/core/ibchooks/index.d.ts +0 -3
- package/dist/core/ibchooks/msgs/MsgUpdateACL.d.ts +0 -35
- package/dist/core/ibchooks/msgs/MsgUpdateIbcHooksParams.d.ts +0 -33
- package/dist/core/ibchooks/msgs/index.d.ts +0 -10
- package/dist/core/index.d.ts +0 -40
- package/dist/core/intertx/index.d.ts +0 -1
- package/dist/core/intertx/msgs/MsgRegisterAccount.d.ts +0 -39
- package/dist/core/intertx/msgs/MsgSubmitTx.d.ts +0 -36
- package/dist/core/intertx/msgs/index.d.ts +0 -10
- package/dist/core/marketmap/Market.d.ts +0 -26
- package/dist/core/marketmap/MarketmapParams.d.ts +0 -25
- package/dist/core/marketmap/ProviderConfig.d.ts +0 -34
- package/dist/core/marketmap/Ticker.d.ts +0 -34
- package/dist/core/marketmap/index.d.ts +0 -5
- package/dist/core/marketmap/msgs/MsgCreateMarkets.d.ts +0 -33
- package/dist/core/marketmap/msgs/MsgRemoveMarketAuthorities.d.ts +0 -32
- package/dist/core/marketmap/msgs/MsgRemoveMarkets.d.ts +0 -32
- package/dist/core/marketmap/msgs/MsgUpdateMarketmapParams.d.ts +0 -33
- package/dist/core/marketmap/msgs/MsgUpdateMarkets.d.ts +0 -33
- package/dist/core/marketmap/msgs/MsgUpsertMarkets.d.ts +0 -33
- package/dist/core/marketmap/msgs/index.d.ts +0 -18
- package/dist/core/move/Module.d.ts +0 -36
- package/dist/core/move/MoveParams.d.ts +0 -37
- package/dist/core/move/index.d.ts +0 -3
- package/dist/core/move/msgs/MsgDelist.d.ts +0 -32
- package/dist/core/move/msgs/MsgExecute.d.ts +0 -44
- package/dist/core/move/msgs/MsgExecuteJSON.d.ts +0 -44
- package/dist/core/move/msgs/MsgGovExecute.d.ts +0 -47
- package/dist/core/move/msgs/MsgGovExecuteJSON.d.ts +0 -47
- package/dist/core/move/msgs/MsgGovPublish.d.ts +0 -41
- package/dist/core/move/msgs/MsgGovScript.d.ts +0 -41
- package/dist/core/move/msgs/MsgGovScriptJSON.d.ts +0 -41
- package/dist/core/move/msgs/MsgPublish.d.ts +0 -38
- package/dist/core/move/msgs/MsgScript.d.ts +0 -38
- package/dist/core/move/msgs/MsgScriptJSON.d.ts +0 -38
- package/dist/core/move/msgs/MsgUpdateMoveParams.d.ts +0 -33
- package/dist/core/move/msgs/MsgWhitelist.d.ts +0 -35
- package/dist/core/move/msgs/index.d.ts +0 -32
- package/dist/core/mstaking/Delegation.d.ts +0 -36
- package/dist/core/mstaking/MstakingParams.d.ts +0 -44
- package/dist/core/mstaking/Redelegation.d.ts +0 -71
- package/dist/core/mstaking/UnbondingDelegation.d.ts +0 -57
- package/dist/core/mstaking/Validator.d.ts +0 -137
- package/dist/core/mstaking/index.d.ts +0 -6
- package/dist/core/mstaking/msgs/MsgBeginRedelegate.d.ts +0 -39
- package/dist/core/mstaking/msgs/MsgCancelUnbondingDelegation.d.ts +0 -39
- package/dist/core/mstaking/msgs/MsgCreateValidator.d.ts +0 -44
- package/dist/core/mstaking/msgs/MsgDelegate.d.ts +0 -36
- package/dist/core/mstaking/msgs/MsgEditValidator.d.ts +0 -37
- package/dist/core/mstaking/msgs/MsgUndelegate.d.ts +0 -36
- package/dist/core/mstaking/msgs/MsgUpdateMstakingParams.d.ts +0 -33
- package/dist/core/mstaking/msgs/index.d.ts +0 -20
- package/dist/core/num.d.ts +0 -2
- package/dist/core/opchild/BridgeInfo.d.ts +0 -34
- package/dist/core/opchild/OpValidator.d.ts +0 -32
- package/dist/core/opchild/OpchildParams.d.ts +0 -45
- package/dist/core/opchild/index.d.ts +0 -4
- package/dist/core/opchild/msgs/MsgAddBridgeExecutor.d.ts +0 -32
- package/dist/core/opchild/msgs/MsgAddFeeWhitelistAddresses.d.ts +0 -32
- package/dist/core/opchild/msgs/MsgAddValidator.d.ts +0 -39
- package/dist/core/opchild/msgs/MsgExecuteMessages.d.ts +0 -33
- package/dist/core/opchild/msgs/MsgFinalizeTokenDeposit.d.ts +0 -52
- package/dist/core/opchild/msgs/MsgInitiateTokenWithdrawal.d.ts +0 -36
- package/dist/core/opchild/msgs/MsgRemoveBridgeExecutor.d.ts +0 -32
- package/dist/core/opchild/msgs/MsgRemoveFeeWhitelistAddresses.d.ts +0 -32
- package/dist/core/opchild/msgs/MsgRemoveValidator.d.ts +0 -32
- package/dist/core/opchild/msgs/MsgSetBridgeInfo.d.ts +0 -33
- package/dist/core/opchild/msgs/MsgSpendFeePool.d.ts +0 -36
- package/dist/core/opchild/msgs/MsgUpdateMinGasPrices.d.ts +0 -33
- package/dist/core/opchild/msgs/MsgUpdateOpchildAdmin.d.ts +0 -32
- package/dist/core/opchild/msgs/MsgUpdateOpchildParams.d.ts +0 -33
- package/dist/core/opchild/msgs/MsgUpdateOracle.d.ts +0 -35
- package/dist/core/opchild/msgs/index.d.ts +0 -36
- package/dist/core/ophost/BatchInfo.d.ts +0 -25
- package/dist/core/ophost/BatchInfoWithOutput.d.ts +0 -26
- package/dist/core/ophost/BridgeConfig.d.ts +0 -45
- package/dist/core/ophost/OphostParams.d.ts +0 -26
- package/dist/core/ophost/Output.d.ts +0 -30
- package/dist/core/ophost/index.d.ts +0 -6
- package/dist/core/ophost/msgs/MsgCreateBridge.d.ts +0 -33
- package/dist/core/ophost/msgs/MsgDeleteOutput.d.ts +0 -35
- package/dist/core/ophost/msgs/MsgFinalizeTokenWithdrawal.d.ts +0 -60
- package/dist/core/ophost/msgs/MsgInitiateTokenDeposit.d.ts +0 -42
- package/dist/core/ophost/msgs/MsgProposeOutput.d.ts +0 -41
- package/dist/core/ophost/msgs/MsgRecordBatch.d.ts +0 -35
- package/dist/core/ophost/msgs/MsgUpdateBatchInfo.d.ts +0 -36
- package/dist/core/ophost/msgs/MsgUpdateChallenger.d.ts +0 -35
- package/dist/core/ophost/msgs/MsgUpdateFinalizationPeriod.d.ts +0 -36
- package/dist/core/ophost/msgs/MsgUpdateMetadata.d.ts +0 -35
- package/dist/core/ophost/msgs/MsgUpdateOphostParams.d.ts +0 -33
- package/dist/core/ophost/msgs/MsgUpdateOracleConfig.d.ts +0 -35
- package/dist/core/ophost/msgs/MsgUpdateProposer.d.ts +0 -35
- package/dist/core/ophost/msgs/index.d.ts +0 -32
- package/dist/core/oracle/CurrencyPair.d.ts +0 -25
- package/dist/core/oracle/QuotePrice.d.ts +0 -27
- package/dist/core/oracle/index.d.ts +0 -3
- package/dist/core/oracle/msgs/MsgAddCurrencyPairs.d.ts +0 -33
- package/dist/core/oracle/msgs/MsgRemoveCurrencyPairs.d.ts +0 -32
- package/dist/core/oracle/msgs/index.d.ts +0 -10
- package/dist/core/params/ParamChange.d.ts +0 -42
- package/dist/core/params/index.d.ts +0 -2
- package/dist/core/params/proposals/ParameterChangeProposal.d.ts +0 -35
- package/dist/core/params/proposals/index.d.ts +0 -1
- package/dist/core/reward/RewardParams.d.ts +0 -38
- package/dist/core/reward/index.d.ts +0 -2
- package/dist/core/reward/msgs/MsgUpdateRewardParams.d.ts +0 -33
- package/dist/core/reward/msgs/index.d.ts +0 -8
- package/dist/core/slashing/SlashingParams.d.ts +0 -38
- package/dist/core/slashing/ValidatorSigningInfo.d.ts +0 -37
- package/dist/core/slashing/index.d.ts +0 -3
- package/dist/core/slashing/msgs/MsgUnjail.d.ts +0 -29
- package/dist/core/slashing/msgs/MsgUpdateSlashingParams.d.ts +0 -33
- package/dist/core/slashing/msgs/index.d.ts +0 -10
- package/dist/core/tokenfactory/TokenfactoryParams.d.ts +0 -25
- package/dist/core/tokenfactory/index.d.ts +0 -2
- package/dist/core/tokenfactory/msgs/MsgBurn.d.ts +0 -33
- package/dist/core/tokenfactory/msgs/MsgChangeAdmin.d.ts +0 -35
- package/dist/core/tokenfactory/msgs/MsgCreateDenom.d.ts +0 -32
- package/dist/core/tokenfactory/msgs/MsgMint.d.ts +0 -36
- package/dist/core/tokenfactory/msgs/MsgSetBeforeSendHook.d.ts +0 -35
- package/dist/core/tokenfactory/msgs/MsgSetDenomMetadataWasm.d.ts +0 -33
- package/dist/core/tokenfactory/msgs/MsgUpdateTokenfactoryParams.d.ts +0 -33
- package/dist/core/tokenfactory/msgs/index.d.ts +0 -20
- package/dist/core/tx/CompactBitArray.d.ts +0 -22
- package/dist/core/tx/Fee.d.ts +0 -31
- package/dist/core/tx/MultiSignature.d.ts +0 -13
- package/dist/core/tx/SignDoc.d.ts +0 -36
- package/dist/core/tx/SignMode.d.ts +0 -3
- package/dist/core/tx/SignatureV2.d.ts +0 -66
- package/dist/core/tx/Tx.d.ts +0 -146
- package/dist/core/tx/TxInfo.d.ts +0 -74
- package/dist/core/tx/index.d.ts +0 -7
- package/dist/core/upgrade/Plan.d.ts +0 -27
- package/dist/core/upgrade/index.d.ts +0 -2
- package/dist/core/upgrade/msgs/MsgCancelUpgrade.d.ts +0 -29
- package/dist/core/upgrade/msgs/MsgSoftwareUpgrade.d.ts +0 -33
- package/dist/core/upgrade/msgs/index.d.ts +0 -10
- package/dist/core/wasm/AbsoluteTxPosition.d.ts +0 -24
- package/dist/core/wasm/AccessConfig.d.ts +0 -27
- package/dist/core/wasm/WasmParams.d.ts +0 -29
- package/dist/core/wasm/authorizations/AcceptedMessageKeysFilter.d.ts +0 -28
- package/dist/core/wasm/authorizations/AcceptedMessagesFilter.d.ts +0 -28
- package/dist/core/wasm/authorizations/AllowAllMessagesFilter.d.ts +0 -24
- package/dist/core/wasm/authorizations/CodeGrant.d.ts +0 -25
- package/dist/core/wasm/authorizations/CombinedLimit.d.ts +0 -32
- package/dist/core/wasm/authorizations/ContractExecutionAuthorization.d.ts +0 -29
- package/dist/core/wasm/authorizations/ContractFilter.d.ts +0 -13
- package/dist/core/wasm/authorizations/ContractGrant.d.ts +0 -30
- package/dist/core/wasm/authorizations/ContractLimit.d.ts +0 -13
- package/dist/core/wasm/authorizations/ContractMigrationAuthorization.d.ts +0 -29
- package/dist/core/wasm/authorizations/MaxCallsLimit.d.ts +0 -28
- package/dist/core/wasm/authorizations/MaxFundsLimit.d.ts +0 -29
- package/dist/core/wasm/authorizations/StoreCodeAuthorization.d.ts +0 -29
- package/dist/core/wasm/authorizations/index.d.ts +0 -11
- package/dist/core/wasm/index.d.ts +0 -5
- package/dist/core/wasm/msgs/MsgAddCodeUploadParamsAddresses.d.ts +0 -32
- package/dist/core/wasm/msgs/MsgClearAdmin.d.ts +0 -32
- package/dist/core/wasm/msgs/MsgExecuteContract.d.ts +0 -39
- package/dist/core/wasm/msgs/MsgInstantiateContract.d.ts +0 -45
- package/dist/core/wasm/msgs/MsgInstantiateContractV2.d.ts +0 -51
- package/dist/core/wasm/msgs/MsgMigrateContract.d.ts +0 -38
- package/dist/core/wasm/msgs/MsgPinCodes.d.ts +0 -32
- package/dist/core/wasm/msgs/MsgRemoveCodeUploadParamsAddresses.d.ts +0 -32
- package/dist/core/wasm/msgs/MsgStoreAndInstantiateContract.d.ts +0 -61
- package/dist/core/wasm/msgs/MsgStoreAndMigrateContract.d.ts +0 -42
- package/dist/core/wasm/msgs/MsgStoreCode.d.ts +0 -36
- package/dist/core/wasm/msgs/MsgSudoContract.d.ts +0 -35
- package/dist/core/wasm/msgs/MsgUnpinCodes.d.ts +0 -32
- package/dist/core/wasm/msgs/MsgUpdateAdmin.d.ts +0 -35
- package/dist/core/wasm/msgs/MsgUpdateContractLabel.d.ts +0 -35
- package/dist/core/wasm/msgs/MsgUpdateInstantiateConfig.d.ts +0 -36
- package/dist/core/wasm/msgs/MsgUpdateWasmParams.d.ts +0 -33
- package/dist/core/wasm/msgs/index.d.ts +0 -40
- package/dist/core/wasmextension/AccessConfigExt.d.ts +0 -28
- package/dist/core/wasmextension/index.d.ts +0 -2
- package/dist/core/wasmextension/msgs/MsgStoreCodeAdmin.d.ts +0 -39
- package/dist/core/wasmextension/msgs/index.d.ts +0 -8
- package/dist/index.cjs +0 -6
- package/dist/index.d.ts +0 -4
- package/dist/index.mjs +0 -100795
- package/dist/key/Key.d.ts +0 -20
- package/dist/key/MnemonicKey.d.ts +0 -14
- package/dist/key/RawKey.d.ts +0 -9
- package/dist/key/index.d.ts +0 -3
- package/dist/util/bcs.d.ts +0 -44
- package/dist/util/hash.d.ts +0 -4
- package/dist/util/index.d.ts +0 -3
- package/dist/util/json.d.ts +0 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-DL-q-7P7.mjs","names":["Message","Message","Message"],"sources":["../src/bridge/executor.ts","../src/bridge/hash.ts","../src/bridge/utils.ts","../src/bridge/op-bridge.ts","../src/bridge/router-client.ts","../src/bridge/watch.ts","../src/bridge/bridge.ts"],"sourcesContent":["/**\n * Executor API client for OPInit withdrawal data.\n *\n * Fetches withdrawal information and Merkle proofs from the Executor REST API.\n * Each L2 chain has its own Executor instance (executor_uri in registry metadata).\n */\n\nimport type { Numeric } from '../types'\nimport { Coin } from '../core/coin'\nimport { bytesToHex } from '@noble/hashes/utils.js'\nimport { base64 } from '@scure/base'\nimport type { WithdrawalInfo } from './types'\nimport { fetchJson } from '../util/fetch'\n\n/**\n * Raw Executor API response for a single withdrawal.\n */\ninterface ExecutorWithdrawal {\n sequence: number\n from: string\n to: string\n amount: { denom: string; amount: string }\n output_index: number\n bridge_id: number\n withdrawal_proofs: string[] // base64\n version: string // base64\n storage_root: string // base64\n last_block_hash: string // base64\n tx_hash: string\n tx_time: string\n tx_height: number\n}\n\n/**\n * Decode base64 string to hex string.\n */\nfunction base64ToHex(b64: string): string {\n return bytesToHex(base64.decode(b64))\n}\n\n/**\n * Convert Executor API response to WithdrawalInfo.\n * Status is set to { status: 'pending' } as a placeholder — actual status\n * is determined by L1 queries in the status determination logic.\n */\nfunction toWithdrawalInfo(raw: ExecutorWithdrawal): Omit<WithdrawalInfo, 'status'> {\n return {\n sequence: BigInt(raw.sequence),\n from: raw.from,\n to: raw.to,\n amount: new Coin(raw.amount.denom, raw.amount.amount),\n outputIndex: BigInt(raw.output_index),\n bridgeId: BigInt(raw.bridge_id),\n txHash: raw.tx_hash,\n withdrawalProofs: raw.withdrawal_proofs.map(base64ToHex),\n version: base64ToHex(raw.version),\n storageRoot: base64ToHex(raw.storage_root),\n lastBlockHash: base64ToHex(raw.last_block_hash),\n }\n}\n\n/**\n * Pagination options for withdrawal list queries.\n */\nexport interface FetchWithdrawalsOptions {\n limit?: number\n offset?: number\n}\n\n/**\n * Fetch paginated withdrawal list from Executor API.\n *\n * @param executorUri - Executor API base URL (e.g., 'https://executor.minimove-2.initia.xyz')\n * @param address - L2 sender address to query withdrawals for\n * @param options - Pagination options\n * @returns Array of WithdrawalInfo without status (status determined separately by L1 queries)\n */\nexport async function fetchWithdrawals(\n executorUri: string,\n address: string,\n options?: FetchWithdrawalsOptions\n): Promise<Omit<WithdrawalInfo, 'status'>[]> {\n const params = new URLSearchParams()\n if (options?.limit != null) params.set('limit', String(options.limit))\n if (options?.offset != null) params.set('offset', String(options.offset))\n\n const query = params.toString()\n const url = `${executorUri}/withdrawals/${address}${query ? `?${query}` : ''}`\n\n const data = await fetchJson<{ withdrawals: ExecutorWithdrawal[] }>(url)\n return data.withdrawals.map(toWithdrawalInfo)\n}\n\n/**\n * Fetch a single withdrawal by sequence from Executor API.\n *\n * @param executorUri - Executor API base URL\n * @param sequence - Withdrawal sequence number\n * @returns WithdrawalInfo without status (status determined separately by L1 queries)\n */\nexport async function fetchWithdrawal(\n executorUri: string,\n sequence: Numeric\n): Promise<Omit<WithdrawalInfo, 'status'>> {\n const url = `${executorUri}/withdrawal/${sequence.toString()}`\n\n const data = await fetchJson<ExecutorWithdrawal>(url)\n return toWithdrawalInfo(data)\n}\n","/**\n * Withdrawal hash calculation for OPInit bridge.\n *\n * Computes the SHA3-256 double hash used as Merkle leaf for withdrawal verification.\n */\n\nimport { sha3_256 } from '@noble/hashes/sha3.js'\n\nconst textEncoder = new TextEncoder()\n\n/**\n * Encode a bigint as big-endian 8 bytes.\n */\nfunction bigintToBeBytes(value: bigint): Uint8Array {\n const buf = new Uint8Array(8)\n for (let i = 7; i >= 0; i--) {\n buf[i] = Number(value & 0xffn)\n value >>= 8n\n }\n return buf\n}\n\n/**\n * Calculate the withdrawal hash for OPInit bridge verification.\n *\n * This is a SHA3-256 double hash (Merkle leaf node format) computed from:\n * - bridgeId (8 bytes big-endian)\n * - l2Sequence (8 bytes big-endian)\n * - sha3_256(sender UTF-8) (32 bytes)\n * - sha3_256(receiver UTF-8) (32 bytes)\n * - sha3_256(denom UTF-8) (32 bytes)\n * - amount (8 bytes big-endian)\n *\n * Result = sha3_256(sha3_256(concatenation))\n *\n * @param bridgeId - Bridge ID\n * @param l2Sequence - L2 withdrawal sequence number\n * @param sender - L2 sender address\n * @param receiver - L1 receiver address\n * @param denom - Token denomination\n * @param amount - Token amount\n * @returns 32-byte withdrawal hash\n */\nexport function calculateWithdrawalHash(\n bridgeId: bigint,\n l2Sequence: bigint,\n sender: string,\n receiver: string,\n denom: string,\n amount: bigint\n): Uint8Array {\n const parts = [\n bigintToBeBytes(bridgeId),\n bigintToBeBytes(l2Sequence),\n sha3_256(textEncoder.encode(sender)),\n sha3_256(textEncoder.encode(receiver)),\n sha3_256(textEncoder.encode(denom)),\n bigintToBeBytes(amount),\n ]\n\n // Concatenate all parts\n const totalLength = parts.reduce((sum, p) => sum + p.length, 0)\n const concat = new Uint8Array(totalLength)\n let offset = 0\n for (const part of parts) {\n concat.set(part, offset)\n offset += part.length\n }\n\n // Double hash: sha3_256(sha3_256(concat))\n return sha3_256(sha3_256(concat))\n}\n","/**\n * Bridge utility functions.\n */\n\nimport type { Duration, Timestamp } from '@bufbuild/protobuf/wkt'\n\n/**\n * Convert protobuf Duration to milliseconds.\n */\nexport function durationToMs(d: Duration): number {\n return Number(d.seconds) * 1000 + Math.floor(d.nanos / 1_000_000)\n}\n\n/**\n * Convert protobuf Timestamp to milliseconds since epoch.\n */\nexport function timestampToMs(t: Timestamp): number {\n return Number(t.seconds) * 1000 + Math.floor(t.nanos / 1_000_000)\n}\n","/**\n * OPInit Bridge utility class.\n *\n * Provides bridgeId resolution, message generation for L1 ↔ L2 transfers,\n * and withdrawal status tracking.\n */\n\nimport type { Numeric } from '../types'\nimport { create } from '@bufbuild/protobuf'\nimport { CoinSchema } from '@buf/cosmos_cosmos-sdk.bufbuild_es/cosmos/base/v1beta1/coin_pb'\nimport {\n MsgInitiateTokenDepositSchema,\n MsgFinalizeTokenWithdrawalSchema,\n} from '@buf/initia-labs_opinit.bufbuild_es/opinit/ophost/v1/tx_pb'\nimport { MsgInitiateTokenWithdrawalSchema } from '@buf/initia-labs_opinit.bufbuild_es/opinit/opchild/v1/tx_pb'\nimport type { ChainInfo, ChainInfoProvider } from '../provider/types'\nimport type { InitiaClient } from '../client/types'\nimport type { TransportFactory } from '../client/transport-common'\nimport { Message } from '../msgs/types'\nimport type {\n ClaimOptions,\n DepositOptions,\n WithdrawOptions,\n WithdrawalInfo,\n WithdrawalStatus,\n} from './types'\nimport { parseCoin } from '../core/coin'\nimport { hexToBytes } from '@noble/hashes/utils.js'\nimport { isNotFoundError } from '../errors'\nimport { initiaChain } from '../chains/initia'\nimport { createGrpcClient } from '../client/grpc-client'\nimport { wrapClientWithCache } from '../client/cached-client'\nimport { fetchWithdrawals, fetchWithdrawal, type FetchWithdrawalsOptions } from './executor'\nimport { calculateWithdrawalHash } from './hash'\nimport { durationToMs, timestampToMs } from './utils'\n\n/**\n * Internal OP bridge implementation.\n * Use `provider.bridge` instead of instantiating directly.\n */\nexport class OpBridgeInternal {\n private _l1Client?: InitiaClient\n\n constructor(\n private provider: ChainInfoProvider,\n private createTransport: TransportFactory\n ) {}\n\n /**\n * Lazily create and cache the L1 ophost gRPC client.\n * Finds L1 chain from provider automatically.\n */\n private getL1Client(): InitiaClient {\n if (this._l1Client) return this._l1Client\n const l1Chain = this.provider.listChains().find(c => c.chainType === 'initia')\n if (!l1Chain) {\n throw new Error(\n 'L1 (initia) chain not found in provider. ' +\n 'Ensure the provider includes L1 chain info for withdrawal status queries.'\n )\n }\n const config = initiaChain.build()\n const transport = this.createTransport(l1Chain)\n const raw = createGrpcClient(transport, config.services, undefined, undefined, config.registry)\n this._l1Client = wrapClientWithCache(raw, l1Chain.chainId) as InitiaClient\n return this._l1Client\n }\n\n /**\n * Resolve bridgeId for a given L2 chain.\n *\n * @param l2ChainId - The L2 chain ID (e.g., 'minimove-1')\n * @returns The bridge ID for the L2 chain\n * @throws Error if chain is not found or has no opBridgeId\n */\n getBridgeId(l2ChainId: string): bigint {\n const chainInfo = this.provider.getChainInfo(l2ChainId)\n if (!chainInfo) {\n throw new Error(`Chain not found: ${l2ChainId}`)\n }\n if (chainInfo.opBridgeId == null) {\n throw new Error(\n `Chain ${l2ChainId} does not have an opBridgeId. Only L2 (minitia) chains support bridging.`\n )\n }\n return chainInfo.opBridgeId\n }\n\n /**\n * Create a MsgInitiateTokenDeposit for L1 → L2 transfer.\n *\n * @param options - Deposit options (use toChain for auto bridgeId resolve, or bridgeId directly)\n * @returns Packed Message ready for signAndBroadcast\n */\n deposit(options: DepositOptions): Message {\n const { sender, to, amount, data } = options\n const bridgeId =\n 'toChain' in options && options.toChain ? this.getBridgeId(options.toChain) : options.bridgeId\n\n const resolvedCoin = typeof amount === 'string' ? parseCoin(amount) : amount\n\n return new Message(MsgInitiateTokenDepositSchema, {\n sender,\n bridgeId: BigInt(bridgeId!),\n to: to ?? sender,\n amount: create(CoinSchema, {\n denom: resolvedCoin.denom,\n amount: resolvedCoin.amount,\n }),\n data: data ?? new Uint8Array(),\n })\n }\n\n /**\n * Create a MsgInitiateTokenWithdrawal for L2 → L1 transfer.\n *\n * @param options - Withdrawal options\n * @returns Packed Message ready for signAndBroadcast\n */\n withdraw(options: WithdrawOptions): Message {\n const { sender, to, amount } = options\n const resolvedCoin = typeof amount === 'string' ? parseCoin(amount) : amount\n\n return new Message(MsgInitiateTokenWithdrawalSchema, {\n sender,\n to: to ?? sender,\n amount: create(CoinSchema, {\n denom: resolvedCoin.denom,\n amount: resolvedCoin.amount,\n }),\n })\n }\n\n /**\n * Create a MsgFinalizeTokenWithdrawal to claim a withdrawal on L1.\n *\n * @param options - Claim options with sender and withdrawal info (must be 'claimable')\n * @returns Packed Message ready for signAndBroadcast\n * @throws Error if withdrawal status is not 'claimable'\n */\n claim(options: ClaimOptions): Message {\n const { sender, withdrawal } = options\n\n if (withdrawal.status.status !== 'claimable') {\n throw new Error(`Withdrawal is not claimable (current status: ${withdrawal.status.status})`)\n }\n\n return new Message(MsgFinalizeTokenWithdrawalSchema, {\n sender,\n bridgeId: withdrawal.bridgeId,\n outputIndex: withdrawal.outputIndex,\n withdrawalProofs: withdrawal.withdrawalProofs.map(p => hexToBytes(p)),\n from: withdrawal.from,\n to: withdrawal.to,\n sequence: withdrawal.sequence,\n amount: create(CoinSchema, {\n denom: withdrawal.amount.denom,\n amount: withdrawal.amount.amount,\n }),\n version: hexToBytes(withdrawal.version),\n storageRoot: hexToBytes(withdrawal.storageRoot),\n lastBlockHash: hexToBytes(withdrawal.lastBlockHash),\n })\n }\n\n /**\n * List all chains that support OPInit bridging.\n *\n * @returns Array of ChainInfo with opBridgeId defined\n */\n listBridgeableChains(): ChainInfo[] {\n return this.provider.listChains().filter(c => c.opBridgeId != null)\n }\n\n /**\n * Fetch withdrawals for an address and determine their statuses via L1 queries.\n *\n * @param l2ChainId - The L2 chain ID (e.g., 'minimove-1')\n * @param address - L2 sender address\n * @param options - Pagination options for Executor API\n * @returns Array of WithdrawalInfo with status determined\n */\n async getWithdrawals(\n l2ChainId: string,\n address: string,\n options?: FetchWithdrawalsOptions\n ): Promise<WithdrawalInfo[]> {\n const l2Info = this.provider.getChainInfo(l2ChainId)\n if (!l2Info) throw new Error(`Chain not found: ${l2ChainId}`)\n if (!l2Info.executorUri) {\n throw new Error(`Chain ${l2ChainId} does not have an executorUri. Cannot fetch withdrawals.`)\n }\n if (l2Info.opBridgeId == null) {\n throw new Error(`Chain ${l2ChainId} does not have an opBridgeId`)\n }\n\n // 1. Fetch withdrawals from Executor API\n const rawWithdrawals = await fetchWithdrawals(l2Info.executorUri, address, options)\n if (rawWithdrawals.length === 0) return []\n\n // 2. Get L1 ophost client and query bridge config\n const ophost = this.getL1Client().ophost\n const bridgeResponse = await ophost.bridge({ bridgeId: l2Info.opBridgeId })\n const finalizationPeriod = bridgeResponse.bridgeConfig?.finalizationPeriod\n if (!finalizationPeriod) {\n throw new Error('Bridge config missing finalizationPeriod')\n }\n const finalizationMs = durationToMs(finalizationPeriod)\n\n // 3. Find pending boundary: query latest proposed output\n let latestProposedIndex = 0n\n try {\n const proposalsResponse = await ophost.outputProposals({\n bridgeId: l2Info.opBridgeId,\n pagination: { reverse: true, limit: 1n },\n })\n if (proposalsResponse.outputProposals.length > 0) {\n latestProposedIndex = proposalsResponse.outputProposals[0].outputIndex\n }\n } catch (err) {\n // No proposals yet is normal for new bridges; any other error should propagate\n if (!isNotFoundError(err)) throw err\n }\n\n // 4. Query outputProposal for each unique non-pending outputIndex\n const nonPendingIndices = [\n ...new Set(\n rawWithdrawals.map(w => w.outputIndex).filter(i => i > 0n && i <= latestProposedIndex)\n ),\n ]\n\n const outputTimestamps = new Map<bigint, number>() // outputIndex → l1BlockTime in ms\n await Promise.all(\n nonPendingIndices.map(async outputIndex => {\n try {\n const response = await ophost.outputProposal({\n bridgeId: l2Info.opBridgeId!,\n outputIndex,\n })\n if (response.outputProposal?.l1BlockTime) {\n outputTimestamps.set(outputIndex, timestampToMs(response.outputProposal.l1BlockTime))\n }\n } catch (err) {\n // Output not found is expected; other errors should propagate\n if (!isNotFoundError(err)) throw err\n }\n })\n )\n\n // 5. Determine status for each withdrawal\n const now = Date.now()\n return Promise.all(\n rawWithdrawals.map(async (raw): Promise<WithdrawalInfo> => {\n const status = await this.determineWithdrawalStatus(\n raw,\n outputTimestamps,\n latestProposedIndex,\n finalizationMs,\n now,\n ophost\n )\n return { ...raw, status }\n })\n )\n }\n\n /**\n * Fetch a single withdrawal and determine its status.\n *\n * @param l2ChainId - The L2 chain ID\n * @param sequence - Withdrawal sequence number\n * @returns WithdrawalInfo with status determined\n */\n async getWithdrawalStatus(l2ChainId: string, sequence: Numeric): Promise<WithdrawalInfo> {\n const l2Info = this.provider.getChainInfo(l2ChainId)\n if (!l2Info) throw new Error(`Chain not found: ${l2ChainId}`)\n if (!l2Info.executorUri) {\n throw new Error(`Chain ${l2ChainId} does not have an executorUri. Cannot fetch withdrawal.`)\n }\n if (l2Info.opBridgeId == null) {\n throw new Error(`Chain ${l2ChainId} does not have an opBridgeId`)\n }\n\n // Fetch single withdrawal from Executor\n const raw = await fetchWithdrawal(l2Info.executorUri, sequence)\n\n // Get L1 ophost client and query bridge config\n const ophost = this.getL1Client().ophost\n const bridgeResponse = await ophost.bridge({ bridgeId: l2Info.opBridgeId })\n const finalizationPeriod = bridgeResponse.bridgeConfig?.finalizationPeriod\n if (!finalizationPeriod) {\n throw new Error('Bridge config missing finalizationPeriod')\n }\n const finalizationMs = durationToMs(finalizationPeriod)\n\n // Query output proposal for this withdrawal's outputIndex\n const outputTimestamps = new Map<bigint, number>()\n let latestProposedIndex = 0n\n\n if (raw.outputIndex > 0n) {\n try {\n const response = await ophost.outputProposal({\n bridgeId: l2Info.opBridgeId,\n outputIndex: raw.outputIndex,\n })\n if (response.outputProposal?.l1BlockTime) {\n outputTimestamps.set(raw.outputIndex, timestampToMs(response.outputProposal.l1BlockTime))\n latestProposedIndex = raw.outputIndex // exists, so it's at least this\n }\n } catch (err) {\n // Output not found — treat as pending (same as getWithdrawals)\n if (!isNotFoundError(err)) throw err\n }\n }\n\n const status = await this.determineWithdrawalStatus(\n raw,\n outputTimestamps,\n latestProposedIndex,\n finalizationMs,\n Date.now(),\n ophost\n )\n return { ...raw, status }\n }\n\n /**\n * Determine withdrawal status based on output proposals and finalization period.\n */\n private async determineWithdrawalStatus(\n raw: Omit<WithdrawalInfo, 'status'>,\n outputTimestamps: Map<bigint, number>,\n latestProposedIndex: bigint,\n finalizationMs: number,\n now: number,\n ophost: InitiaClient['ophost']\n ): Promise<WithdrawalStatus> {\n // No output proposal or not yet proposed → pending\n if (raw.outputIndex === 0n || raw.outputIndex > latestProposedIndex) {\n return { status: 'pending' }\n }\n\n const l1BlockTimeMs = outputTimestamps.get(raw.outputIndex)\n if (l1BlockTimeMs == null) {\n return { status: 'pending' }\n }\n\n // Check if finalization period has passed\n const claimableAt = new Date(l1BlockTimeMs + finalizationMs)\n if (claimableAt.getTime() > now) {\n return { status: 'waiting', claimableAt }\n }\n\n // Finalization period passed → check if already claimed\n const hash = calculateWithdrawalHash(\n raw.bridgeId,\n raw.sequence,\n raw.from,\n raw.to,\n raw.amount.denom,\n BigInt(raw.amount.amount)\n )\n\n try {\n const claimedResponse = await ophost.claimed({\n bridgeId: raw.bridgeId,\n withdrawalHash: hash,\n })\n if (claimedResponse.claimed) {\n return { status: 'claimed' }\n }\n } catch (err) {\n // NotFound means the withdrawal has not been claimed on L1 yet — treat as claimable\n if (!isNotFoundError(err)) throw err\n }\n\n return { status: 'claimable' }\n }\n}\n","/**\n * RouterClient — fetch wrapper for the Initia Router API.\n *\n * Handles snake_case ↔ camelCase conversion and preserves raw server\n * responses via Route._raw for safe roundtrip in buildTransferMsgs().\n *\n * @internal Used by Bridge class. Not exported publicly.\n */\n\nimport type {\n Route,\n RouteOptions,\n RouteOperation,\n BuildTransferMsgsOptions,\n TransferTx,\n OpHookOptions,\n OpHookResult,\n TransferStatus,\n RoutableAsset,\n RouterChain,\n BalanceQuery,\n RouterBalances,\n NftTransferOptions,\n NftTransferResult,\n} from './types'\nimport { Message } from '../msgs/types'\nimport { create, createRegistry, fromJson, toBinary, type JsonValue } from '@bufbuild/protobuf'\nimport { AnySchema } from '@bufbuild/protobuf/wkt'\nimport { InitiaError } from '../errors'\nimport { base64ToUint8Array } from '../tx/amino'\nimport { fetchWithTimeout } from '../util/fetch'\nconst INTERWOVENKIT_VERSION = '2.4.6'\n\n// Proto files for all msg types the router API can return\nimport { file_cosmos_bank_v1beta1_tx } from '@buf/cosmos_cosmos-sdk.bufbuild_es/cosmos/bank/v1beta1/tx_pb'\nimport { file_ibc_applications_transfer_v1_tx } from '@buf/cosmos_ibc.bufbuild_es/ibc/applications/transfer/v1/tx_pb'\nimport { file_opinit_ophost_v1_tx } from '@buf/initia-labs_opinit.bufbuild_es/opinit/ophost/v1/tx_pb'\nimport { file_opinit_opchild_v1_tx } from '@buf/initia-labs_opinit.bufbuild_es/opinit/opchild/v1/tx_pb'\nimport { file_minievm_evm_v1_tx } from '@buf/initia-labs_minievm.bufbuild_es/minievm/evm/v1/tx_pb'\nimport { file_initia_move_v1_tx } from '@buf/initia-labs_initia.bufbuild_es/initia/move/v1/tx_pb'\n\nconst routerRegistry = createRegistry(\n file_cosmos_bank_v1beta1_tx,\n file_ibc_applications_transfer_v1_tx,\n file_opinit_ophost_v1_tx,\n file_opinit_opchild_v1_tx,\n file_minievm_evm_v1_tx,\n file_initia_move_v1_tx\n)\n\n// =============================================================================\n// Raw response types — snake_case shapes from the Router API\n// @internal Not exported; used only for type-safe normalization.\n// =============================================================================\n\ninterface RawRouteResponse {\n amount_in: string\n amount_out: string\n source_asset_chain_id: string\n source_asset_denom: string\n source_asset_symbol?: string\n dest_asset_chain_id: string\n dest_asset_denom: string\n dest_asset_symbol?: string\n operations: RawOperation[]\n estimated_duration_seconds?: number\n usd_amount_in?: string\n usd_amount_out?: string\n warnings?: string[]\n extra_infos?: string[]\n extra_warnings?: string[]\n required_op_hook?: boolean\n}\n\ninterface RawOperation {\n type?: string\n op_type?: string\n chain_id?: string\n channel?: string\n pool_id?: string\n denom_in?: string\n denom_out?: string\n}\n\ninterface RawCosmosTx {\n chain_id?: string\n signer_address?: string\n msgs?: Array<{ msg_type_url: string; msg: string }>\n}\n\ninterface RawEvmTx {\n chain_id?: string\n signer_address?: string\n to: string\n data: string\n value?: string\n}\n\ninterface RawTransferTx {\n chain_id?: string\n signer_address?: string\n cosmos_tx?: RawCosmosTx\n evm_tx?: RawEvmTx\n}\n\ninterface RawTransferTxsResponse {\n txs: RawTransferTx[]\n}\n\ninterface RawOpHookResponse {\n chain_id: string\n hook: Array<{ msg: string; msg_type_url: string }>\n}\n\ninterface RawStatusResponse {\n state: string\n transfers: unknown[]\n transfer_sequence: Array<{ src_chain_id: string; dst_chain_id: string; state: string }>\n next_blocking_transfer?: { transfer_sequence_index: number }\n transfer_asset_release?: {\n chain_id: string\n denom: string\n amount?: string\n released: boolean\n }\n error?: unknown\n}\n\ninterface RawAsset {\n denom: string\n chain_id: string\n origin_denom: string\n origin_chain_id: string\n symbol?: string\n name?: string\n decimals?: number\n logo_uri?: string\n recommended_symbol?: string\n description?: string\n coingecko_id?: string\n trace: string\n is_cw20: boolean\n is_evm: boolean\n is_svm: boolean\n token_contract?: string\n hidden?: boolean\n forwardContract?: string\n oftOwner?: string\n}\n\ninterface RawAssetsResponse {\n chain_to_assets_map: Record<string, { assets: RawAsset[] }>\n}\n\ninterface RawChain {\n chain_id: string\n chain_name: string\n chain_type: string\n pfm_enabled: boolean\n supports_memo: boolean\n logo_uri?: string\n bech32_prefix?: string\n rest?: string\n rpc?: string\n evm_fee_asset?: { decimals: number; name: string; symbol: string }\n}\n\ninterface RawChainsResponse {\n chains: RawChain[]\n}\n\ninterface RawBalancesResponse {\n chains: Record<\n string,\n {\n denoms: Record<string, { amount: string; price_usd?: string; value_usd?: string }>\n }\n >\n}\n\n// =============================================================================\n\nexport class RouterClient {\n constructor(private baseUrl: string) {}\n\n async route(opts: RouteOptions): Promise<Route> {\n const body = {\n amount_in: opts.amount,\n source_asset_chain_id: opts.source.chainId,\n source_asset_denom: opts.source.denom,\n dest_asset_chain_id: opts.dest.chainId,\n dest_asset_denom: opts.dest.denom,\n allow_unsafe: opts.allowUnsafe,\n go_fast: opts.goFast,\n is_op_withdraw: opts.isOpWithdraw,\n }\n const res = await this.post('/v2/fungible/route', body)\n return normalizeRouteResponse((await res.json()) as RawRouteResponse)\n }\n\n async msgs(opts: BuildTransferMsgsOptions): Promise<TransferTx[]> {\n // Use route._raw to preserve server's original operations (roundtrip-safe)\n const raw = opts.route._raw as RawRouteResponse\n const body = {\n amount_in: raw.amount_in,\n amount_out: raw.amount_out,\n source_asset_chain_id: raw.source_asset_chain_id,\n source_asset_denom: raw.source_asset_denom,\n dest_asset_chain_id: raw.dest_asset_chain_id,\n dest_asset_denom: raw.dest_asset_denom,\n address_list: opts.addresses,\n operations: raw.operations,\n slippage_tolerance_percent: opts.slippageTolerance ?? '1',\n signed_op_hook: opts.signedOpHook,\n ignore_blacklist: opts.ignoreBlacklist,\n }\n const res = await this.post('/v2/fungible/msgs', body)\n return normalizeTransferTxs((await res.json()) as RawTransferTxsResponse)\n }\n\n async opHook(opts: OpHookOptions): Promise<OpHookResult> {\n const body = {\n source_address: opts.sourceAddress,\n source_asset_chain_id: opts.sourceChainId,\n source_asset_denom: opts.sourceDenom,\n dest_address: opts.destAddress,\n dest_asset_chain_id: opts.destChainId,\n dest_asset_denom: opts.destDenom,\n }\n const res = await this.post('/op-hook', body)\n return normalizeOpHookResponse((await res.json()) as RawOpHookResponse)\n }\n\n async track(txHash: string, chainId: string): Promise<void> {\n await this.post('/v2/tx/track', { tx_hash: txHash, chain_id: chainId })\n }\n\n async assets(chainIds?: string[]): Promise<Record<string, RoutableAsset[]>> {\n const query = chainIds?.length ? `?chain_ids=${chainIds.join(',')}` : ''\n const res = await this.get(`/v2/fungible/assets${query}`)\n return normalizeAssetsResponse((await res.json()) as RawAssetsResponse)\n }\n\n async chains(chainIds?: string[]): Promise<RouterChain[]> {\n const query = chainIds?.length ? `?chain_ids=${chainIds.join(',')}` : ''\n const res = await this.get(`/v2/info/chains${query}`)\n return normalizeChainsResponse((await res.json()) as RawChainsResponse)\n }\n\n async balances(queries: Record<string, BalanceQuery>): Promise<RouterBalances> {\n const res = await this.post('/v2/info/balances', { chains: queries })\n return normalizeBalancesResponse((await res.json()) as RawBalancesResponse)\n }\n\n async nftTransfer(opts: NftTransferOptions): Promise<NftTransferResult> {\n const body: Record<string, unknown> = {\n from_address: opts.fromAddress,\n from_chain_id: opts.fromChainId,\n to_address: opts.toAddress,\n to_chain_id: opts.toChainId,\n token_ids: opts.tokenIds,\n collection_address: opts.collectionAddress,\n }\n if (opts.classId) body.class_id = opts.classId\n if (opts.classTrace) {\n body.class_trace = { path: opts.classTrace.path, base_class_id: opts.classTrace.baseClassId }\n }\n if (opts.objectAddresses) body.object_addresses = opts.objectAddresses\n if (opts.l1RecoverAddress) body.l1_recover_address = opts.l1RecoverAddress\n if (opts.outgoingProxy) body.outgoing_proxy = opts.outgoingProxy\n if (opts.timeout !== undefined) body.timeout = opts.timeout\n if (opts.ignoreBlacklist) body.ignore_blacklist = opts.ignoreBlacklist\n\n const res = await this.post('/nft', body)\n return (await res.json()) as NftTransferResult\n }\n\n async status(txHash: string, chainId: string): Promise<TransferStatus> {\n const params = new URLSearchParams({ tx_hash: txHash, chain_id: chainId })\n const res = await this.get(`/v2/tx/status?${params.toString()}`)\n return normalizeStatus((await res.json()) as RawStatusResponse)\n }\n\n private headers(): Record<string, string> {\n return { 'InterwovenKit-Version': INTERWOVENKIT_VERSION }\n }\n\n private async throwIfNotOk(res: Response, path: string): Promise<void> {\n if (res.ok) return\n let detail = ''\n try {\n const body = (await res.json()) as { message?: string }\n if (body.message) detail = `: ${body.message}`\n } catch {\n /* ignore parse errors */\n }\n throw new InitiaError(`Router API ${path} failed (${res.status})${detail}`)\n }\n\n private async get(path: string): Promise<Response> {\n const res = await fetchWithTimeout(`${this.baseUrl}${path}`, {\n headers: this.headers(),\n })\n await this.throwIfNotOk(res, path)\n return res\n }\n\n private async post(path: string, body: unknown): Promise<Response> {\n const res = await fetchWithTimeout(`${this.baseUrl}${path}`, {\n method: 'POST',\n headers: { ...this.headers(), 'Content-Type': 'application/json' },\n body: JSON.stringify(body),\n })\n await this.throwIfNotOk(res, path)\n return res\n }\n}\n\n// =============================================================================\n// Normalization functions — snake_case (server) → camelCase (SDK)\n// =============================================================================\n\n/**\n * Normalize route response. Preserves the entire raw response in `_raw`\n * so that buildTransferMsgs() can pass server-original data without loss.\n */\nfunction normalizeRouteResponse(raw: RawRouteResponse): Route {\n return {\n amountIn: raw.amount_in,\n amountOut: raw.amount_out,\n source: {\n chainId: raw.source_asset_chain_id,\n denom: raw.source_asset_denom,\n symbol: raw.source_asset_symbol,\n },\n dest: {\n chainId: raw.dest_asset_chain_id,\n denom: raw.dest_asset_denom,\n symbol: raw.dest_asset_symbol,\n },\n operations: normalizeOperations(raw.operations),\n estimatedDurationSeconds: raw.estimated_duration_seconds,\n usdAmountIn: raw.usd_amount_in,\n usdAmountOut: raw.usd_amount_out,\n warnings: raw.warnings,\n extraInfos: raw.extra_infos,\n extraWarnings: raw.extra_warnings,\n requiresOpHook: raw.required_op_hook,\n _raw: raw,\n }\n}\n\n/**\n * Normalize operations array (display-only; originals preserved in _raw).\n */\nfunction normalizeOperations(raw: RawOperation[]): RouteOperation[] {\n return raw.map((op): RouteOperation => {\n const type = op.type ?? op.op_type\n switch (type) {\n case 'transfer':\n return {\n type: 'transfer',\n chainId: op.chain_id ?? '',\n channel: op.channel ?? '',\n denomIn: op.denom_in ?? '',\n denomOut: op.denom_out ?? '',\n }\n case 'swap':\n return {\n type: 'swap',\n poolId: op.pool_id ?? '',\n denomIn: op.denom_in ?? '',\n denomOut: op.denom_out ?? '',\n }\n default:\n return {\n type: type as RouteOperation['type'],\n denomIn: op.denom_in ?? '',\n denomOut: op.denom_out ?? '',\n } as RouteOperation\n }\n })\n}\n\n/**\n * Normalize transfer transactions response.\n * Converts base64-encoded proto messages to SDK Message format.\n */\nfunction normalizeTransferTxs(raw: RawTransferTxsResponse): TransferTx[] {\n const txs = raw.txs\n return txs.map(\n (tx): TransferTx => ({\n chainId: tx.chain_id ?? tx.cosmos_tx?.chain_id ?? tx.evm_tx?.chain_id ?? '',\n cosmosMsgs: normalizeCosmosMsgs(tx.cosmos_tx?.msgs),\n evmTx: tx.evm_tx\n ? { to: tx.evm_tx.to, data: tx.evm_tx.data, value: tx.evm_tx.value }\n : undefined,\n signerAddress:\n tx.signer_address ?? tx.cosmos_tx?.signer_address ?? tx.evm_tx?.signer_address ?? '',\n })\n )\n}\n\n/**\n * Convert router API message format to SDK Message format.\n *\n * The Router API returns `msg` as a JSON string (snake_case),\n * not base64-encoded proto bytes. We use the routerRegistry to\n * resolve the schema, then `fromJson` → `toBinary` → `Any`.\n */\nfunction normalizeCosmosMsgs(\n msgs: Array<{ msg_type_url: string; msg: string }> | undefined\n): Message[] | undefined {\n if (!msgs?.length) return undefined\n return msgs.map(m => {\n let value: Uint8Array\n if (m.msg.startsWith('{')) {\n const typeName = m.msg_type_url.replace(/^\\//, '')\n const desc = routerRegistry.getMessage(typeName)\n if (!desc) throw new InitiaError(`Unknown router msg type: ${m.msg_type_url}`)\n value = toBinary(desc, fromJson(desc, JSON.parse(m.msg) as JsonValue))\n } else {\n value = base64ToUint8Array(m.msg)\n }\n return Message.fromAny(create(AnySchema, { typeUrl: m.msg_type_url, value }))\n })\n}\n\nfunction normalizeOpHookResponse(raw: RawOpHookResponse): OpHookResult {\n return {\n chainId: raw.chain_id,\n hook: raw.hook,\n }\n}\n\nfunction normalizeAssetsResponse(raw: RawAssetsResponse): Record<string, RoutableAsset[]> {\n const result: Record<string, RoutableAsset[]> = {}\n for (const [chainId, { assets }] of Object.entries(raw.chain_to_assets_map)) {\n result[chainId] = assets.map(\n (a): RoutableAsset => ({\n denom: a.denom,\n chainId: a.chain_id,\n originDenom: a.origin_denom,\n originChainId: a.origin_chain_id,\n symbol: a.symbol,\n name: a.name,\n decimals: a.decimals,\n logoUri: a.logo_uri,\n recommendedSymbol: a.recommended_symbol,\n description: a.description,\n coingeckoId: a.coingecko_id,\n trace: a.trace,\n isCw20: a.is_cw20,\n isEvm: a.is_evm,\n isSvm: a.is_svm,\n tokenContract: a.token_contract,\n hidden: a.hidden,\n forwardContract: a.forwardContract,\n oftOwner: a.oftOwner,\n })\n )\n }\n return result\n}\n\nfunction normalizeStatus(raw: RawStatusResponse): TransferStatus {\n return {\n state: raw.state as TransferStatus['state'],\n transfers: raw.transfers ?? [],\n transferSequence: (raw.transfer_sequence ?? []).map(h => ({\n srcChainId: h.src_chain_id,\n dstChainId: h.dst_chain_id,\n state: h.state,\n })),\n nextBlockingTransfer: raw.next_blocking_transfer\n ? { transferSequenceIndex: raw.next_blocking_transfer.transfer_sequence_index }\n : undefined,\n transferAssetRelease: raw.transfer_asset_release\n ? {\n chainId: raw.transfer_asset_release.chain_id,\n denom: raw.transfer_asset_release.denom,\n amount: raw.transfer_asset_release.amount ?? undefined,\n released: raw.transfer_asset_release.released,\n }\n : undefined,\n error: raw.error ?? undefined,\n }\n}\n\nfunction normalizeBalancesResponse(raw: RawBalancesResponse): RouterBalances {\n const result: RouterBalances = {}\n for (const [chainId, chainData] of Object.entries(raw.chains ?? {})) {\n result[chainId] = {}\n for (const [denom, info] of Object.entries(chainData.denoms ?? {})) {\n result[chainId][denom] = {\n amount: info.amount,\n priceUsd: info.price_usd,\n valueUsd: info.value_usd,\n }\n }\n }\n return result\n}\n\nfunction normalizeChainsResponse(raw: RawChainsResponse): RouterChain[] {\n return (raw.chains ?? []).map(c => ({\n chainId: c.chain_id,\n chainName: c.chain_name,\n chainType: c.chain_type,\n pfmEnabled: c.pfm_enabled,\n supportsMemo: c.supports_memo,\n logoUri: c.logo_uri,\n bech32Prefix: c.bech32_prefix,\n rest: c.rest,\n rpc: c.rpc,\n evmFeeAsset: c.evm_fee_asset,\n }))\n}\n","/**\n * Bridge WebSocket monitor — real-time deposit/withdrawal tracking.\n */\n\nimport type { ChainInfoProvider } from '../provider/types'\nimport type { Subscription, WsTxResult } from '../client/websocket'\nimport { createSession, type WebSocketSession } from '../client/websocket/session'\nimport type { InitiaClient } from '../client/types'\nimport type { TransportFactory } from '../client/transport-common'\nimport { initiaChain } from '../chains/initia'\nimport { createGrpcClient } from '../client/grpc-client'\nimport { wrapClientWithCache } from '../client/cached-client'\nimport { TimeoutError, WebSocketNotAvailableError } from '../errors'\nimport { durationToMs } from './utils'\nimport type {\n DepositEvent,\n WithdrawalEvent,\n WatchDepositOptions,\n WatchWithdrawalOptions,\n BridgeWatchHandle,\n} from './types'\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\n/**\n * Extract events of a specific type from a WebSocket TxResult.\n * Returns an array of attribute maps for each matching event.\n */\nexport function parseTxEvents(tx: WsTxResult, eventType: string): Record<string, string>[] {\n const results: Record<string, string>[] = []\n const events = tx.result?.events ?? []\n\n for (const event of events) {\n if (event.type !== eventType) continue\n\n const attrs: Record<string, string> = {}\n for (const attr of event.attributes ?? []) {\n if (attr.key && attr.value !== undefined) {\n attrs[attr.key] = attr.value\n }\n }\n results.push(attrs)\n }\n\n return results\n}\n\nfunction buildDepositFilter(\n eventType: string,\n opts: WatchDepositOptions,\n bridgeId?: bigint\n): string | undefined {\n const conditions: string[] = []\n\n if (eventType === 'initiate_token_deposit') {\n if (bridgeId !== undefined) conditions.push(`initiate_token_deposit.bridge_id='${bridgeId}'`)\n if (opts.l1Sequence !== undefined)\n conditions.push(`initiate_token_deposit.l1_sequence='${opts.l1Sequence}'`)\n if (opts.sender) conditions.push(`initiate_token_deposit.from='${opts.sender}'`)\n if (opts.recipient) conditions.push(`initiate_token_deposit.to='${opts.recipient}'`)\n } else if (eventType === 'finalize_token_deposit') {\n if (opts.l1Sequence !== undefined)\n conditions.push(`finalize_token_deposit.l1_sequence='${opts.l1Sequence}'`)\n if (opts.sender) conditions.push(`finalize_token_deposit.sender='${opts.sender}'`)\n if (opts.recipient) conditions.push(`finalize_token_deposit.recipient='${opts.recipient}'`)\n }\n\n return conditions.length > 0 ? conditions.join(' AND ') : undefined\n}\n\nfunction buildWithdrawalFilter(\n eventType: string,\n opts: WatchWithdrawalOptions,\n bridgeId?: bigint\n): string | undefined {\n const conditions: string[] = []\n\n if (eventType === 'initiate_token_withdrawal') {\n if (opts.l2Sequence !== undefined)\n conditions.push(`initiate_token_withdrawal.l2_sequence='${opts.l2Sequence}'`)\n if (opts.sender) conditions.push(`initiate_token_withdrawal.from='${opts.sender}'`)\n } else if (eventType === 'propose_output') {\n if (bridgeId !== undefined) conditions.push(`propose_output.bridge_id='${bridgeId}'`)\n } else if (eventType === 'finalize_token_withdrawal') {\n if (bridgeId !== undefined) conditions.push(`finalize_token_withdrawal.bridge_id='${bridgeId}'`)\n if (opts.l2Sequence !== undefined)\n conditions.push(`finalize_token_withdrawal.l2_sequence='${opts.l2Sequence}'`)\n }\n\n return conditions.length > 0 ? conditions.join(' AND ') : undefined\n}\n\n// =============================================================================\n// watchDeposit\n// =============================================================================\n\n/**\n * Watch deposit events in real-time via WebSocket.\n *\n * Subscribes to L1 initiate_token_deposit and L2 finalize_token_deposit events.\n * Call `handle.unsubscribe()` to stop watching and close connections.\n */\nexport function watchDeposit(\n provider: ChainInfoProvider,\n options: WatchDepositOptions,\n callback: (event: DepositEvent) => void\n): BridgeWatchHandle {\n const l2Info = provider.getChainInfo(options.l2ChainId)\n if (!l2Info) throw new Error(`Chain not found: ${options.l2ChainId}`)\n\n const l1Info = provider.listChains().find(c => c.chainType === 'initia')\n if (!l1Info) throw new Error('L1 (initia) chain not found in provider')\n\n if (!l1Info.wss) throw new WebSocketNotAvailableError(l1Info.chainId)\n if (!l2Info.wss) throw new WebSocketNotAvailableError(l2Info.chainId)\n\n const bridgeId = l2Info.opBridgeId\n const sessions: WebSocketSession[] = []\n const subs: Subscription[] = []\n let cleaned = false\n const cleanup = () => {\n if (cleaned) return\n cleaned = true\n for (const sub of subs) sub.unsubscribe()\n for (const session of sessions) session.close()\n subs.length = 0\n sessions.length = 0\n }\n\n // Default error handler terminates the watch to avoid partial-subscription degradation.\n const handleError: (error: unknown) => void =\n options.onError ??\n (err => {\n console.error(\n '[initia.js] watchDeposit failed — watcher terminated. Provide onError to handle:',\n err\n )\n cleanup()\n })\n\n // L1: initiate_token_deposit\n const l1Session = createSession(l1Info)\n sessions.push(l1Session)\n const l1Filter = buildDepositFilter('initiate_token_deposit', options, bridgeId)\n\n void l1Session\n .subscribe({ event: 'tx', filter: l1Filter }, tx => {\n const events = parseTxEvents(tx, 'initiate_token_deposit')\n for (const attrs of events) {\n if (options.l1Sequence !== undefined && attrs.l1_sequence !== String(options.l1Sequence))\n continue\n callback({\n status: 'initiated',\n l1Sequence: BigInt(attrs.l1_sequence ?? '0'),\n from: attrs.from ?? '',\n to: attrs.to ?? '',\n amount: attrs.amount ?? '0',\n bridgeId: BigInt(attrs.bridge_id ?? '0'),\n })\n }\n })\n .then(sub => {\n if (!cleaned) subs.push(sub)\n else sub.unsubscribe()\n })\n .catch(handleError)\n\n // L2: finalize_token_deposit\n const l2Session = createSession(l2Info)\n sessions.push(l2Session)\n const l2Filter = buildDepositFilter('finalize_token_deposit', options)\n\n void l2Session\n .subscribe({ event: 'tx', filter: l2Filter }, tx => {\n const events = parseTxEvents(tx, 'finalize_token_deposit')\n for (const attrs of events) {\n if (options.l1Sequence !== undefined && attrs.l1_sequence !== String(options.l1Sequence))\n continue\n callback({\n status: 'finalized',\n l1Sequence: BigInt(attrs.l1_sequence ?? '0'),\n recipient: attrs.recipient ?? '',\n amount: attrs.amount ?? '0',\n success: attrs.success === 'true',\n reason: attrs.reason || undefined,\n })\n }\n })\n .then(sub => {\n if (!cleaned) subs.push(sub)\n else sub.unsubscribe()\n })\n .catch(handleError)\n\n return { unsubscribe: cleanup }\n}\n\n// =============================================================================\n// watchWithdrawal\n// =============================================================================\n\n/**\n * Watch withdrawal events in real-time via WebSocket.\n *\n * Subscribes to L2 initiate_token_withdrawal, L1 propose_output, and\n * L1 finalize_token_withdrawal events. Emits 'waiting' and 'claimable'\n * events based on the finalization period.\n *\n * Call `handle.unsubscribe()` to stop watching and close connections.\n */\nexport function watchWithdrawal(\n provider: ChainInfoProvider,\n options: WatchWithdrawalOptions,\n callback: (event: WithdrawalEvent) => void,\n createTransport: TransportFactory\n): BridgeWatchHandle {\n const l2Info = provider.getChainInfo(options.l2ChainId)\n if (!l2Info) throw new Error(`Chain not found: ${options.l2ChainId}`)\n if (l2Info.opBridgeId == null) throw new Error(`Chain ${options.l2ChainId} has no opBridgeId`)\n\n const l1Info = provider.listChains().find(c => c.chainType === 'initia')\n if (!l1Info) throw new Error('L1 (initia) chain not found in provider')\n\n if (!l1Info.wss) throw new WebSocketNotAvailableError(l1Info.chainId)\n if (!l2Info.wss) throw new WebSocketNotAvailableError(l2Info.chainId)\n\n const bridgeId = l2Info.opBridgeId\n const sessions: WebSocketSession[] = []\n const subs: Subscription[] = []\n const timers: ReturnType<typeof setTimeout>[] = []\n let timeoutTimer: ReturnType<typeof setTimeout> | null = null\n let cleaned = false\n\n const cleanup = () => {\n if (cleaned) return\n cleaned = true\n for (const sub of subs) sub.unsubscribe()\n for (const session of sessions) session.close()\n for (const timer of timers) clearTimeout(timer)\n if (timeoutTimer) clearTimeout(timeoutTimer)\n subs.length = 0\n sessions.length = 0\n timers.length = 0\n }\n\n // Default error handler terminates the watch to avoid partial-subscription degradation.\n const handleError: (error: unknown) => void =\n options.onError ??\n (err => {\n console.error(\n '[initia.js] watchWithdrawal failed — watcher terminated. Provide onError to handle:',\n err\n )\n cleanup()\n })\n\n if (options.timeout) {\n timeoutTimer = setTimeout(() => {\n cleanup()\n handleError(new TimeoutError('watchWithdrawal', options.timeout!))\n }, options.timeout)\n }\n\n // Fetch finalization period — required for waiting/claimable events.\n // On failure the watch is terminated via cleanup() and handleError.\n // cleanup() is called explicitly before handleError (idempotent; safe if\n // handleError's default also calls cleanup).\n // Stored as a Promise so propose_output callbacks can await it (avoids race).\n const finalizationMsPromise = (async () => {\n const config = initiaChain.build()\n const transport = createTransport(l1Info)\n const raw = createGrpcClient(transport, config.services, undefined, undefined, config.registry)\n const client = wrapClientWithCache(raw, l1Info.chainId) as InitiaClient\n const ophost = client.ophost\n const resp = await ophost.bridge({ bridgeId })\n const fp = resp.bridgeConfig?.finalizationPeriod\n if (!fp) {\n throw new Error(\n 'Bridge config missing finalizationPeriod — cannot determine claimable timing'\n )\n }\n return durationToMs(fp)\n })()\n\n // Top-level rejection handler: terminates watch and notifies caller.\n finalizationMsPromise.catch(err => {\n cleanup()\n handleError(err)\n })\n\n // L2: initiate_token_withdrawal\n const l2Session = createSession(l2Info)\n sessions.push(l2Session)\n const l2Filter = buildWithdrawalFilter('initiate_token_withdrawal', options)\n\n void l2Session\n .subscribe({ event: 'tx', filter: l2Filter }, tx => {\n const events = parseTxEvents(tx, 'initiate_token_withdrawal')\n for (const attrs of events) {\n if (options.l2Sequence !== undefined && attrs.l2_sequence !== String(options.l2Sequence))\n continue\n callback({\n status: 'initiated',\n l2Sequence: BigInt(attrs.l2_sequence ?? '0'),\n from: attrs.from ?? '',\n to: attrs.to ?? '',\n amount: attrs.amount ?? '0',\n })\n }\n })\n .then(sub => {\n if (!cleaned) subs.push(sub)\n else sub.unsubscribe()\n })\n .catch(handleError)\n\n // L1: propose_output + finalize_token_withdrawal\n const l1Session = createSession(l1Info)\n sessions.push(l1Session)\n\n const proposeFilter = buildWithdrawalFilter('propose_output', options, bridgeId)\n void l1Session\n .subscribe({ event: 'tx', filter: proposeFilter }, tx => {\n const events = parseTxEvents(tx, 'propose_output')\n for (const attrs of events) {\n if (attrs.bridge_id !== String(bridgeId)) continue\n\n const outputIndex = BigInt(attrs.output_index ?? '0')\n const l2BlockNumber = BigInt(attrs.l2_block_number ?? '0')\n\n callback({ status: 'proposed', outputIndex, l2BlockNumber })\n\n void finalizationMsPromise\n .then(ms => {\n if (cleaned) return\n const claimableAt = new Date(Date.now() + ms)\n callback({ status: 'waiting', claimableAt })\n\n const timer = setTimeout(() => {\n if (!cleaned) callback({ status: 'claimable' })\n }, ms)\n timers.push(timer)\n })\n .catch(err => {\n // If finalizationMsPromise rejected, the top-level .catch() already called\n // cleanup(), so `cleaned` is true and this becomes a no-op.\n // Errors from the .then() body (e.g., user callback throws) surface normally.\n if (!cleaned) handleError(err)\n })\n }\n })\n .then(sub => {\n if (!cleaned) subs.push(sub)\n else sub.unsubscribe()\n })\n .catch(handleError)\n\n const claimFilter = buildWithdrawalFilter('finalize_token_withdrawal', options, bridgeId)\n void l1Session\n .subscribe({ event: 'tx', filter: claimFilter }, tx => {\n const events = parseTxEvents(tx, 'finalize_token_withdrawal')\n for (const attrs of events) {\n if (options.l2Sequence !== undefined && attrs.l2_sequence !== String(options.l2Sequence))\n continue\n callback({\n status: 'claimed',\n l2Sequence: BigInt(attrs.l2_sequence ?? '0'),\n from: attrs.from ?? '',\n to: attrs.to ?? '',\n amount: attrs.amount ?? '0',\n })\n }\n })\n .then(sub => {\n if (!cleaned) subs.push(sub)\n else sub.unsubscribe()\n })\n .catch(handleError)\n\n return { unsubscribe: cleanup }\n}\n\n// =============================================================================\n// Promise wrappers\n// =============================================================================\n\n/**\n * Generic helper: watch for a specific event status and wrap in a Promise.\n * Resolves on matching event, rejects on error or timeout.\n */\nfunction waitForEvent<\n TEvent extends { status: string },\n TOpts extends { onError?: (error: unknown) => void; timeout?: number },\n>(\n watchFn: (\n provider: ChainInfoProvider,\n options: TOpts,\n callback: (event: TEvent) => void\n ) => BridgeWatchHandle,\n provider: ChainInfoProvider,\n options: TOpts,\n targetStatus: string,\n defaultTimeout: number,\n label: string\n): Promise<TEvent> {\n return new Promise((resolve, reject) => {\n const timeout = options.timeout ?? defaultTimeout\n let settled = false\n\n const settle = () => {\n if (settled) return false\n settled = true\n handle.unsubscribe()\n if (timer) clearTimeout(timer)\n return true\n }\n\n const handle = watchFn(\n provider,\n {\n ...options,\n timeout: undefined, // Prevent watchWithdrawal's internal timeout from duplicating waitForEvent's\n onError: (err: unknown) => {\n options.onError?.(err)\n if (settle()) reject(err instanceof Error ? err : new Error(String(err)))\n },\n },\n event => {\n if (event.status === targetStatus && settle()) {\n resolve(event)\n }\n }\n )\n\n const timer = setTimeout(() => {\n if (settle()) reject(new TimeoutError(label, timeout))\n }, timeout)\n })\n}\n\n/**\n * Wait for a deposit to be finalized on L2.\n *\n * Returns a Promise that resolves when the finalize_token_deposit event\n * is observed on L2. Rejects on timeout (default: 5 minutes).\n */\nexport function waitForDeposit(\n provider: ChainInfoProvider,\n options: WatchDepositOptions & { timeout?: number }\n): Promise<DepositEvent & { status: 'finalized' }> {\n return waitForEvent(\n watchDeposit,\n provider,\n options,\n 'finalized',\n 300_000,\n 'waitForDeposit'\n ) as Promise<DepositEvent & { status: 'finalized' }>\n}\n\n/**\n * Wait for a withdrawal to become claimable on L1.\n *\n * Returns a Promise that resolves when the finalization period passes\n * after an output proposal. Rejects on timeout (default: 2 hours).\n */\nexport function waitForClaimable(\n provider: ChainInfoProvider,\n options: WatchWithdrawalOptions & { timeout?: number },\n createTransport: TransportFactory\n): Promise<WithdrawalEvent & { status: 'claimable' }> {\n // Wrap watchWithdrawal to match waitForEvent's 3-param watchFn signature\n const watchFn = (\n p: ChainInfoProvider,\n opts: WatchWithdrawalOptions,\n cb: (event: WithdrawalEvent) => void\n ) => watchWithdrawal(p, opts, cb, createTransport)\n return waitForEvent(\n watchFn,\n provider,\n options,\n 'claimable',\n 7_200_000,\n 'waitForClaimable'\n ) as Promise<WithdrawalEvent & { status: 'claimable' }>\n}\n","/**\n * Unified Bridge for OPInit L1 ↔ L2 transfers and smart routing.\n *\n * Access via `provider.bridge` — do not instantiate directly.\n */\n\nimport type { Numeric } from '../types'\nimport type { ChainInfo, ChainInfoProvider } from '../provider/types'\nimport type {\n DepositOptions,\n WithdrawOptions,\n ClaimOptions,\n WithdrawalInfo,\n RouteOptions,\n Route,\n BuildTransferMsgsOptions,\n TransferTx,\n OpHookOptions,\n OpHookResult,\n SignedOpHook,\n TransferStatus,\n WatchDepositOptions,\n WatchWithdrawalOptions,\n DepositEvent,\n WithdrawalEvent,\n BridgeWatchHandle,\n DepositAndWaitOptions,\n WithdrawAndClaimOptions,\n RoutableAsset,\n RouterChain,\n BalanceQuery,\n RouterBalances,\n NftTransferOptions,\n NftTransferResult,\n} from './types'\nimport type { FetchWithdrawalsOptions } from './executor'\nimport {\n type Signer,\n type DirectSigner,\n type AminoSigner,\n isDirectSigner,\n isAminoSigner,\n isEIP191Signer,\n} from '../signer/types'\nimport type { SignModeType } from '../client/types'\nimport type { TransportFactory } from '../client/transport-common'\nimport { OpBridgeInternal } from './op-bridge'\nimport { RouterClient } from './router-client'\nimport { watchDeposit, watchWithdrawal, waitForDeposit, waitForClaimable } from './watch'\nimport { InitiaError, isNotFoundError } from '../errors'\nimport { base64 } from '@scure/base'\nimport { fromJson, type JsonObject } from '@bufbuild/protobuf'\nimport { Message } from '../msgs'\nimport { UnsignedTx } from '../client/types'\nimport { buildChainContextFactory } from '../wallet/chain-context'\nimport { resolveServices, resolveRegistry, resolveMsgs } from '../chains/resolve'\n\nexport class Bridge {\n private opBridge: OpBridgeInternal\n private router?: RouterClient\n\n constructor(\n private provider: ChainInfoProvider,\n private createTransport: TransportFactory,\n routerUrl?: string\n ) {\n this.opBridge = new OpBridgeInternal(provider, createTransport)\n if (routerUrl) {\n this.router = new RouterClient(routerUrl)\n }\n }\n\n // ===========================================================================\n // Direct OP Bridge — OpBridgeInternal에 위임\n // ===========================================================================\n\n deposit(options: DepositOptions): Message {\n return this.opBridge.deposit(options)\n }\n\n withdraw(options: WithdrawOptions): Message {\n return this.opBridge.withdraw(options)\n }\n\n claim(options: ClaimOptions): Message {\n return this.opBridge.claim(options)\n }\n\n getWithdrawals(\n l2ChainId: string,\n address: string,\n options?: FetchWithdrawalsOptions\n ): Promise<WithdrawalInfo[]> {\n return this.opBridge.getWithdrawals(l2ChainId, address, options)\n }\n\n getWithdrawalStatus(l2ChainId: string, sequence: Numeric): Promise<WithdrawalInfo> {\n return this.opBridge.getWithdrawalStatus(l2ChainId, sequence)\n }\n\n listBridgeableChains(): ChainInfo[] {\n return this.opBridge.listBridgeableChains()\n }\n\n getBridgeId(l2ChainId: string): bigint {\n return this.opBridge.getBridgeId(l2ChainId)\n }\n\n // ===========================================================================\n // Smart Routing — RouterClient에 위임\n // ===========================================================================\n\n private requireRouter(): RouterClient {\n if (!this.router) {\n throw new InitiaError('Router API not available for this network')\n }\n return this.router\n }\n\n route(options: RouteOptions): Promise<Route> {\n return this.requireRouter().route(options)\n }\n\n getRoutableAssets(chainIds?: string[]): Promise<Record<string, RoutableAsset[]>> {\n return this.requireRouter().assets(chainIds)\n }\n\n /**\n * Resolve an asset by symbol on a specific chain.\n *\n * @returns The matching asset with denom, decimals, symbol, etc.\n * @throws If the symbol is not found or ambiguous (multiple matches).\n *\n * @example\n * ```typescript\n * const asset = await provider.bridge.resolveAsset('evm-1', 'INIT')\n * // → { denom: 'evm/2eE7...', decimals: 18, symbol: 'INIT', ... }\n * ```\n */\n async resolveAsset(chainId: string, symbol: string): Promise<RoutableAsset> {\n const assetsMap = await this.getRoutableAssets([chainId])\n const matches = assetsMap[chainId]?.filter(a => a.symbol === symbol) ?? []\n if (matches.length === 0) {\n throw new InitiaError(`No asset with symbol '${symbol}' found on chain '${chainId}'`)\n }\n if (matches.length > 1) {\n const denoms = matches.map(a => a.denom).join(', ')\n throw new InitiaError(\n `Ambiguous symbol '${symbol}' on chain '${chainId}': ${matches.length} matches (${denoms}). Use getRoutableAssets() and specify denom directly.`\n )\n }\n return matches[0]\n }\n\n getRoutableChains(chainIds?: string[]): Promise<RouterChain[]> {\n return this.requireRouter().chains(chainIds)\n }\n\n getBalances(queries: Record<string, BalanceQuery>): Promise<RouterBalances> {\n return this.requireRouter().balances(queries)\n }\n\n nftTransfer(options: NftTransferOptions): Promise<NftTransferResult> {\n return this.requireRouter().nftTransfer(options)\n }\n\n buildTransferMsgs(options: BuildTransferMsgsOptions): Promise<TransferTx[]> {\n return this.requireRouter().msgs(options)\n }\n\n getOpHook(options: OpHookOptions): Promise<OpHookResult> {\n return this.requireRouter().opHook(options)\n }\n\n /**\n * Build and sign a Cosmos transaction from OP Hook messages.\n *\n * The hook messages (from getOpHook) are assembled into a Cosmos TxRaw,\n * signed with the appropriate sign mode, and returned as base64.\n * The L2's handleBridgeHook decodes and executes this transaction.\n *\n * opHook is minievm-only (ERC-20 6d↔18d wrapping). Default sign mode\n * is eip191 if the signer supports it, otherwise direct, then amino.\n *\n * @param hookResult - OP Hook data from getOpHook()\n * @param signer - Any Signer (Key, Keplr, WalletConnect, etc.)\n * @param options - Optional sign mode override and source chain ID\n */\n async signOpHook(\n hookResult: OpHookResult,\n signer: Signer,\n options?: {\n /** Override auto-detected sign mode */\n signMode?: SignModeType\n /** Source chain ID — if same as hook chain, sequence is incremented by 2 (minievm MsgCall accounting) */\n sourceChainId?: string\n }\n ): Promise<SignedOpHook> {\n // 1. Resolve chain info and type registry\n const chainInfo = this.provider.getChainInfo(hookResult.chainId)\n if (!chainInfo) throw new InitiaError(`Chain not found: ${hookResult.chainId}`)\n\n const registry = resolveRegistry(chainInfo)\n\n // 2. Convert CosmosMsgJson[] → Message[]\n const messages = hookResult.hook.map(hookMsg => {\n const typeUrl = hookMsg.msg_type_url\n const typeName = typeUrl.startsWith('/') ? typeUrl.slice(1) : typeUrl\n const schema = registry.getMessage(typeName)\n if (!schema) {\n throw new InitiaError(\n `Unknown message type in opHook: ${typeUrl}. ` +\n 'Ensure the chain config includes this message schema.'\n )\n }\n let parsed: JsonObject\n try {\n parsed = JSON.parse(hookMsg.msg) as JsonObject\n } catch (err) {\n throw new InitiaError(\n `Failed to parse opHook message JSON (type: ${typeUrl}): ` +\n (err instanceof Error ? err.message : String(err))\n )\n }\n let msg\n try {\n msg = fromJson(schema, parsed, { registry })\n } catch (err) {\n throw new InitiaError(\n `Failed to deserialize opHook message (type: ${typeUrl}): ` +\n (err instanceof Error ? err.message : String(err))\n )\n }\n return new Message(schema, msg)\n })\n\n // 3. Determine sign mode (minievm defaults to eip191)\n let signMode: SignModeType\n if (options?.signMode) {\n signMode = options.signMode\n } else {\n switch (true) {\n case isEIP191Signer(signer):\n signMode = 'eip191'\n break\n case isDirectSigner(signer):\n signMode = 'direct'\n break\n case isAminoSigner(signer):\n signMode = 'amino'\n break\n default:\n throw new InitiaError('Signer must support signDirect, signAmino, or signPersonal')\n }\n }\n\n // Validate signer supports the resolved sign mode\n if (signMode === 'direct' && !isDirectSigner(signer)) {\n throw new InitiaError('signMode \"direct\" requires a signer that implements signDirect')\n }\n if (signMode === 'amino' && !isAminoSigner(signer)) {\n throw new InitiaError('signMode \"amino\" requires a signer that implements signAmino')\n }\n if (signMode === 'eip191' && !isEIP191Signer(signer)) {\n throw new InitiaError('signMode \"eip191\" requires a signer that implements signPersonal')\n }\n\n // 4. Create a ChainContext for the L2 chain\n const createCtx = buildChainContextFactory(this.createTransport, resolveServices, resolveMsgs)\n const ctx = createCtx(chainInfo, { signer: signer as DirectSigner | AminoSigner })\n\n // 5. Query L2 account for accountNumber/sequence\n const prefix = chainInfo.bech32Prefix ?? 'init'\n const address = await signer.getAddress(prefix)\n let accountNumber = 0n\n let sequence = 0n\n try {\n const account = await ctx.getAccount({ address })\n accountNumber = account.number\n sequence = account.sequence\n } catch (err) {\n if (!isNotFoundError(err)) throw err\n // Account not found — first deposit, use defaults (0n)\n }\n\n // Minievm same-chain hook: increment sequence by 2.\n // The source tx contains approve + toRemote (2 MsgCalls) that execute\n // before the hook, consuming 2 sequence slots on the same account.\n // Assumption: router-api's createCosmosTxWithSourceErc20ToRemoteMsg\n // always produces exactly 2 msgs for same-chain paths. If the server\n // adds more msgs to the source tx, this offset must be updated.\n if (options?.sourceChainId === hookResult.chainId) {\n sequence += 2n\n }\n\n // 6. Build UnsignedTx and sign via ChainContext\n const unsignedTx = new UnsignedTx({\n msgs: messages,\n signMode,\n chainId: hookResult.chainId,\n accountNumber,\n sequence,\n fee: [],\n gasLimit: 0n,\n memo: '',\n timeoutHeight: 0n,\n })\n\n const signed = await ctx.sign(unsignedTx)\n\n return {\n hook: base64.encode(signed.txBytes),\n signer: address,\n }\n }\n\n trackTransfer(txHash: string, chainId: string): Promise<void> {\n return this.requireRouter().track(txHash, chainId)\n }\n\n getTransferStatus(txHash: string, chainId: string): Promise<TransferStatus> {\n return this.requireRouter().status(txHash, chainId)\n }\n\n // ===========================================================================\n // WebSocket Monitoring\n // ===========================================================================\n\n watchDeposit(\n options: WatchDepositOptions,\n callback: (event: DepositEvent) => void\n ): BridgeWatchHandle {\n return watchDeposit(this.provider, options, callback)\n }\n\n watchWithdrawal(\n options: WatchWithdrawalOptions,\n callback: (event: WithdrawalEvent) => void\n ): BridgeWatchHandle {\n return watchWithdrawal(this.provider, options, callback, this.createTransport)\n }\n\n waitForDeposit(\n options: WatchDepositOptions & { timeout?: number }\n ): Promise<DepositEvent & { status: 'finalized' }> {\n return waitForDeposit(this.provider, options)\n }\n\n waitForClaimable(\n options: WatchWithdrawalOptions & { timeout?: number }\n ): Promise<WithdrawalEvent & { status: 'claimable' }> {\n return waitForClaimable(this.provider, options, this.createTransport)\n }\n\n // ===========================================================================\n // High-level helpers — end-to-end bridge operations\n // ===========================================================================\n\n /**\n * Deposit L1 → L2 and wait for finalization on L2.\n *\n * Combines `deposit()` + `signAndBroadcast()` + `waitForDeposit()` into one call.\n *\n * @example\n * ```typescript\n * const event = await bridge.depositAndWait({\n * sender: key.address,\n * toChain: 'rollup-1',\n * amount: coin('uinit', 1_000_000),\n * signAndBroadcast: (msgs) => l1.signAndBroadcast(msgs),\n * })\n * console.log(event.status) // 'finalized'\n * ```\n */\n async depositAndWait(\n options: DepositAndWaitOptions\n ): Promise<DepositEvent & { status: 'finalized' }> {\n const msg = this.deposit({\n sender: options.sender,\n to: options.to,\n toChain: options.toChain,\n amount: options.amount,\n data: options.data,\n })\n await options.signAndBroadcast([msg])\n return this.waitForDeposit({\n l2ChainId: options.toChain,\n sender: options.sender,\n recipient: options.to ?? options.sender,\n timeout: options.timeout,\n })\n }\n\n /**\n * Withdraw L2 → L1, wait for finalization, and auto-claim on L1.\n *\n * Combines `withdraw()` + `signAndBroadcastL2()` + `waitForClaimable()` +\n * `getWithdrawals()` + `claim()` + `signAndBroadcastL1()`.\n *\n * @example\n * ```typescript\n * const withdrawal = await bridge.withdrawAndClaim({\n * sender: key.address,\n * amount: coin('uinit', 1_000_000),\n * l2ChainId: 'rollup-1',\n * signAndBroadcastL2: (msgs) => l2.signAndBroadcast(msgs),\n * signAndBroadcastL1: (msgs) => l1.signAndBroadcast(msgs),\n * })\n * ```\n */\n async withdrawAndClaim(options: WithdrawAndClaimOptions): Promise<WithdrawalInfo> {\n // 1. Withdraw on L2\n const withdrawMsg = this.withdraw({\n sender: options.sender,\n to: options.to,\n amount: options.amount,\n })\n await options.signAndBroadcastL2([withdrawMsg])\n\n // 2. Wait for finalization period\n await this.waitForClaimable({\n l2ChainId: options.l2ChainId,\n sender: options.sender,\n timeout: options.timeout,\n })\n\n // 3. Fetch withdrawal info with proofs\n const recipient = options.to ?? options.sender\n const withdrawals = await this.getWithdrawals(options.l2ChainId, recipient)\n const claimable = withdrawals.find(w => w.status.status === 'claimable')\n if (!claimable) {\n throw new InitiaError('No claimable withdrawal found after finalization')\n }\n\n // 4. Claim on L1\n const claimMsg = this.claim({ sender: recipient, withdrawal: claimable })\n await options.signAndBroadcastL1([claimMsg])\n\n return claimable\n }\n}\n"],"mappings":"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"}
|