@wowok/wowok 2.3.7 → 2.3.8

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.
Files changed (153) hide show
  1. package/dist/esm/Transaction-B_HAG_T7.mjs +1 -0
  2. package/dist/esm/arb-B7NNAqML.mjs +1 -0
  3. package/dist/esm/base-5DoRlfD_.mjs +1 -0
  4. package/dist/esm/call-DZtG6l2x.mjs +1 -0
  5. package/dist/esm/client/index.d.mts +1 -1
  6. package/dist/esm/client/index.mjs +1 -1
  7. package/dist/esm/{client-VxiBQfen.mjs → client-YYCgsO99.mjs} +1 -1
  8. package/dist/esm/common-CQggZ8z4.mjs +1 -0
  9. package/dist/esm/cryptography/index.d.mts +1 -1
  10. package/dist/esm/cryptography/index.mjs +1 -1
  11. package/dist/esm/ed25519-BrJWQ45w.mjs +1 -1
  12. package/dist/esm/evm-account-Dppw7HJc.d.mts +233 -0
  13. package/dist/esm/exception--UEPnygY.mjs +1 -0
  14. package/dist/esm/{falcon512-J8Pe5emy.mjs → falcon512-B4y-EH2f.mjs} +1 -1
  15. package/dist/esm/graphql/index.d.mts +1 -1
  16. package/dist/esm/graphql/index.mjs +1 -1
  17. package/dist/esm/{graphql-BXSiG4J0.mjs → graphql-D2Rx6H0h.mjs} +1 -1
  18. package/dist/esm/grpc/index.d.mts +1 -1
  19. package/dist/esm/grpc/index.mjs +1 -1
  20. package/dist/esm/{grpc-clMX5Wo0.mjs → grpc-BYkFJ8ot.mjs} +1 -1
  21. package/dist/esm/{index-Q3W63gcw.d.mts → index-BB7rqcJ9.d.mts} +688 -288
  22. package/dist/esm/index.d.mts +5 -5
  23. package/dist/esm/index.mjs +1 -1
  24. package/dist/esm/jsonRpc/index.d.mts +1 -1
  25. package/dist/esm/jsonRpc/index.mjs +1 -1
  26. package/dist/esm/keypairs/ed25519/index.d.mts +1 -1
  27. package/dist/esm/keypairs/falcon512/index.d.mts +1 -1
  28. package/dist/esm/keypairs/falcon512/index.mjs +1 -1
  29. package/dist/esm/keypairs/passkey/index.d.mts +1 -1
  30. package/dist/esm/keypairs/passkey/index.mjs +1 -1
  31. package/dist/esm/keypairs/secp256k1/index.d.mts +1 -1
  32. package/dist/esm/keypairs/secp256k1/index.mjs +1 -1
  33. package/dist/esm/keypairs/secp256r1/index.d.mts +1 -1
  34. package/dist/esm/keypairs/secp256r1/index.mjs +1 -1
  35. package/dist/esm/messenger-api-DsV5ffz-.mjs +1 -0
  36. package/dist/esm/{messenger-Bokr4-T2.mjs → messenger-b7VI27mY.mjs} +1 -1
  37. package/dist/esm/multisig/index.d.mts +1 -1
  38. package/dist/esm/multisig/index.mjs +1 -1
  39. package/dist/esm/{network-DOe6BgcD.mjs → network-CeDd07Hg.mjs} +1 -1
  40. package/dist/esm/{networks-DhrBVvu6.d.mts → networks-CEYOA-1U.d.mts} +95 -16
  41. package/dist/esm/object-ZwHVe_Xm.mjs +1 -0
  42. package/dist/esm/passkey-D0XCtEYg.mjs +1 -0
  43. package/dist/esm/proof-DU8afdtW.mjs +1 -0
  44. package/dist/esm/publickey-BPT9QiGv.mjs +1 -1
  45. package/dist/esm/{publickey-S1fGFYJX.mjs → publickey-Bkjn-YAu.mjs} +1 -1
  46. package/dist/esm/publickey-qLbcTInT.mjs +1 -1
  47. package/dist/esm/publickey-zB4h0HOi.mjs +1 -1
  48. package/dist/esm/received-g0FdzsRW.mjs +1 -0
  49. package/dist/esm/{rlp-BcIAoIV4.d.mts → rlp-Do3rPWRV.d.mts} +9 -1
  50. package/dist/esm/rolldown-runtime-D7D4PA-g.mjs +1 -0
  51. package/dist/esm/secp256k1-B-8mI0dI.mjs +1 -0
  52. package/dist/esm/secp256r1-B3O6jSlP.mjs +1 -0
  53. package/dist/esm/service-BP_-4e1d.mjs +1 -0
  54. package/dist/esm/storage-0TLziZMp.d.mts +62 -0
  55. package/dist/esm/transactions/index.d.mts +1 -1
  56. package/dist/esm/transactions/index.mjs +1 -1
  57. package/dist/esm/{transactions-CDWnTSTU.mjs → transactions-rYyItYOR.mjs} +1 -1
  58. package/dist/esm/util-BUonvpyz.mjs +1 -0
  59. package/dist/esm/utils/index.mjs +1 -1
  60. package/dist/esm/utils-IlS3fpdQ.mjs +1 -1
  61. package/dist/esm/verify/index.d.mts +1 -1
  62. package/dist/esm/verify/index.mjs +1 -1
  63. package/dist/esm/w/call/allocation.d.mts +1 -1
  64. package/dist/esm/w/call/allocation.mjs +1 -1
  65. package/dist/esm/w/call/arbitration.d.mts +1 -1
  66. package/dist/esm/w/call/arbitration.mjs +1 -1
  67. package/dist/esm/w/call/base.d.mts +1 -1
  68. package/dist/esm/w/call/base.mjs +1 -1
  69. package/dist/esm/w/call/demand.d.mts +1 -1
  70. package/dist/esm/w/call/demand.mjs +1 -1
  71. package/dist/esm/w/call/guard.d.mts +1 -1
  72. package/dist/esm/w/call/guard.mjs +1 -1
  73. package/dist/esm/w/call/index.d.mts +2 -2
  74. package/dist/esm/w/call/index.mjs +1 -1
  75. package/dist/esm/w/call/machine.d.mts +1 -1
  76. package/dist/esm/w/call/machine.mjs +1 -1
  77. package/dist/esm/w/call/passport.d.mts +1 -1
  78. package/dist/esm/w/call/passport.mjs +1 -1
  79. package/dist/esm/w/call/payment.d.mts +1 -1
  80. package/dist/esm/w/call/payment.mjs +1 -1
  81. package/dist/esm/w/call/permission.d.mts +1 -1
  82. package/dist/esm/w/call/permission.mjs +1 -1
  83. package/dist/esm/w/call/progress.d.mts +1 -1
  84. package/dist/esm/w/call/progress.mjs +1 -1
  85. package/dist/esm/w/call/repository.d.mts +1 -1
  86. package/dist/esm/w/call/repository.mjs +1 -1
  87. package/dist/esm/w/call/reward.d.mts +1 -1
  88. package/dist/esm/w/call/reward.mjs +1 -1
  89. package/dist/esm/w/call/service.d.mts +1 -1
  90. package/dist/esm/w/call/service.mjs +1 -1
  91. package/dist/esm/w/call/treasury.d.mts +1 -1
  92. package/dist/esm/w/call/treasury.mjs +1 -1
  93. package/dist/esm/w/common.d.mts +1 -1
  94. package/dist/esm/w/common.mjs +1 -1
  95. package/dist/esm/w/index.d.mts +5 -5
  96. package/dist/esm/w/index.mjs +1 -1
  97. package/dist/esm/w/local/account.d.mts +1 -1
  98. package/dist/esm/w/local/account.mjs +1 -1
  99. package/dist/esm/w/local/config.mjs +1 -1
  100. package/dist/esm/w/local/evm/networks.d.mts +1 -1
  101. package/dist/esm/w/local/evm/networks.mjs +1 -1
  102. package/dist/esm/w/local/evm/rlp.d.mts +2 -2
  103. package/dist/esm/w/local/evm/rlp.mjs +1 -1
  104. package/dist/esm/w/local/evm-account.d.mts +3 -3
  105. package/dist/esm/w/local/evm-account.mjs +1 -1
  106. package/dist/esm/w/local/index.d.mts +5 -5
  107. package/dist/esm/w/local/index.mjs +1 -1
  108. package/dist/esm/w/local/local.mjs +1 -1
  109. package/dist/esm/w/local/storage.d.mts +1 -52
  110. package/dist/esm/w/local/storage.mjs +1 -1
  111. package/dist/esm/w/local/token.d.mts +1 -1
  112. package/dist/esm/w/local/token.mjs +1 -1
  113. package/dist/esm/w/local/util.mjs +1 -1
  114. package/dist/esm/w/local/wip.mjs +1 -1
  115. package/dist/esm/w/messenger/index.d.mts +1 -1
  116. package/dist/esm/w/messenger/index.mjs +1 -1
  117. package/dist/esm/w/messenger/messenger-api.d.mts +1 -1
  118. package/dist/esm/w/messenger/messenger-api.mjs +1 -1
  119. package/dist/esm/w/messenger/messenger.d.mts +1 -1
  120. package/dist/esm/w/messenger/messenger.mjs +1 -1
  121. package/dist/esm/w/messenger/pq/crypto.mjs +1 -1
  122. package/dist/esm/w/messenger/pq/erasure.mjs +1 -1
  123. package/dist/esm/w/messenger/storage.d.mts +1 -1
  124. package/dist/esm/w/messenger/storage.mjs +1 -1
  125. package/dist/esm/w/messenger/types.d.mts +1 -1
  126. package/dist/esm/w/messenger/types.mjs +1 -1
  127. package/dist/esm/w/query/index.d.mts +1 -1
  128. package/dist/esm/w/query/index.mjs +1 -1
  129. package/dist/esm/w/query/object.d.mts +1 -1
  130. package/dist/esm/w/query/object.mjs +1 -1
  131. package/dist/esm/w-DCO00HIj.mjs +1 -0
  132. package/package.json +1 -4
  133. package/dist/esm/Transaction-YosVjNZA.mjs +0 -1
  134. package/dist/esm/arb-NYOQp2oH.mjs +0 -1
  135. package/dist/esm/base-fdHKX-jS.mjs +0 -1
  136. package/dist/esm/bridge-AHnWGzN1.mjs +0 -1
  137. package/dist/esm/call-7FZbEsRl.mjs +0 -1
  138. package/dist/esm/common-fDv-Cuzq.mjs +0 -1
  139. package/dist/esm/evm-account-XzrSThfS.d.mts +0 -185
  140. package/dist/esm/local-c-Tbdkfa.mjs +0 -1
  141. package/dist/esm/messenger-api-1m7Lp85p.mjs +0 -1
  142. package/dist/esm/object-DzsQI-0e.mjs +0 -1
  143. package/dist/esm/passkey-Dh6btBAD.mjs +0 -1
  144. package/dist/esm/proof-DER5SXw4.mjs +0 -1
  145. package/dist/esm/received-D7jEPxlE.mjs +0 -1
  146. package/dist/esm/rolldown-runtime-DkIiUugF.mjs +0 -1
  147. package/dist/esm/secp256k1-BZUdTK1D.mjs +0 -1
  148. package/dist/esm/secp256r1-COXOSFIF.mjs +0 -1
  149. package/dist/esm/service-W7-dgV57.mjs +0 -1
  150. package/dist/esm/util-B3X9acB0.mjs +0 -1
  151. package/dist/esm/w/call/bridge.d.mts +0 -2
  152. package/dist/esm/w/call/bridge.mjs +0 -1
  153. package/dist/esm/w-5GiAI3sP.mjs +0 -1
@@ -0,0 +1 @@
1
+ import{t as a103a}from'./client-YYCgsO99.mjs';import{t as a103b}from'./Transaction-B_HAG_T7.mjs';import{n as a103c}from'./network-CeDd07Hg.mjs';import{o as a103d}from'./exception--UEPnygY.mjs';import{SQLiteStorage}from'./w/local/storage.mjs';import{Config}from'./w/local/config.mjs';import{Account}from'./w/local/account.mjs';import{bigIntToBytes,bytesToHex,compressedPubKeyToAddress,hexToBytes as a103e}from'./w/local/evm/rlp.mjs';import{registerBridgeEvmNetworks}from'./w/local/evm/networks.mjs';import{EvmAccount}from'./w/local/evm-account.mjs';import{keccak_256}from'@noble/hashes/sha3.js';let BridgeChainId=function(a){return a[a['WowMainnet']=0x0]='WowMainnet',a[a['EthMainnet']=0xa]='EthMainnet',a;}({});function isEvmChain(a){return a===0xa;}function isWowChain(a){return a===0x0;}let BridgeVersion=function(a){return a[a['V1']=0x1]='V1',a[a['V2']=0x2]='V2',a;}({}),BridgeTokenId=function(a){return a['Eth']='ETH',a['Weth']='WETH',a['Wbtc']='WBTC',a['Usdc']='USDC',a['Usdt']='USDT',a;}({}),TransferStatus=function(a){return a['Pending']='pending',a['Approved']='approved',a['Claimed']='claimed',a['Failed']='failed',a['NotFound']='not_found',a;}({}),BridgeErrorCode=function(a){return a['EstimateFailed']='ESTIMATE_FAILED',a['Reverted']='REVERTED',a['Timeout']='TIMEOUT',a['NoSignatures']='NO_SIGNATURES',a['NodeUnavailable']='NODE_UNAVAILABLE',a['InvalidParam']='INVALID_PARAM',a['AccountNotFound']='ACCOUNT_NOT_FOUND',a['Unknown']='UNKNOWN',a;}({});const MAINNET_COMMITTEE_PUBKEYS=['0x032f020d08ca4a8632e2442ae789b961265d80b6058135bba1d2daa30ddea0acf0','0x02bb110601a69423651f1faadb1d510d895cd91baa37a470f09479aa84ef9128bb','0x03add24c04f5149421849510709d309f826f42751922f1131c784283fc2bad0b0b'],MAINNET_COMMITTEE_WEIGHTS=[0xd06,0xd06,0xd05],MAINNET_COMMITTEE_MEMBER_ADDRESSES=['0x373ee3febe317168fe58c66faaa446e26e57c2f1','0x2829ea9323836b5c8e0f8c47cd3abdc70962e891','0x97b3c777af04e4df7cb3fd1c92893a0358db9beb'],MAINNET_BRIDGE_CONFIG={'wow':{'rpcUrl':'https://fullnode.mainnet.wowok.net:443','bridgeObjectId':'0x9','clockObjectId':'0x6','network':'mainnet'},'ethereum':{'chainId':0x1,'bridgeChainId':0xa,'rpcUrl':'','bridgeProxyAddress':'0xA8d914Cc121CB2d2179Ca540bC0B8213F224aa00','bridgeVaultAddress':'0xC9A6EF1A3dC6f0681d39C318c4882FB7704a7848','bridgeCommitteeAddress':'0x822779c4183ed69bdd38e0454ec1826d2ae186a5','bridgeConfigAddress':'0xaf9414c8ab0a0905a6b9ad24c927416ac765a4ce'},'bridgeNodeUrls':['http://43.156.120.237:9211','http://150.158.76.254:9211','http://110.40.159.14:9211'],'defaultVersion':0x2,'tokens':[{'tokenId':0x1,'symbol':'WBTC','wowTypeTag':'0x06c69f212cc7bef6ff730b42bc739be7786902c501f15e99dbce1b8b5c7eff58::btc::BTC','evmAddress':'0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599','evmDecimals':0x8,'wowDecimals':0x8,'evmChains':[0xa],'description':'Wrapped\x20BTC\x20(ERC20).\x20Bitcoin\x20price\x20exposure\x20on\x20Ethereum;\x201\x20WBTC\x20=\x201\x20BTC.'},{'tokenId':0x2,'symbol':'ETH','wowTypeTag':'0xdb429818d697419e12a3481af1d21f32e603bff8716d45b0e964c2191db6604f::eth::ETH','evmAddress':'0x0000000000000000000000000000000000000000','evmDecimals':0x12,'wowDecimals':0x8,'evmChains':[0xa],'description':'Native\x20ETH.\x20Calls\x20bridgeETHV2{value};\x20vault\x20auto-wraps\x20to\x20WETH\x20internally.\x2018\x20decimals\x20on\x20EVM,\x208\x20decimals\x20on\x20WOW.'},{'tokenId':0x2,'symbol':'WETH','wowTypeTag':'0xdb429818d697419e12a3481af1d21f32e603bff8716d45b0e964c2191db6604f::eth::ETH','evmAddress':'0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2','evmDecimals':0x12,'wowDecimals':0x8,'evmChains':[0xa],'description':'Wrapped\x20ETH\x20(ERC20).\x20Calls\x20bridgeERC20V2;\x20shares\x20Token\x20ID\x202\x20and\x20WOW\x20type\x20tag\x20with\x20native\x20ETH.'},{'tokenId':0x3,'symbol':'USDC','wowTypeTag':'0xe70fcfd8ef984292b11346ee43880ea9d6fba9f270c90bd0432574db14af67bf::usdc::USDC','evmAddress':'0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48','evmDecimals':0x6,'wowDecimals':0x6,'evmChains':[0xa],'description':'USD\x20Coin\x20(USDC).\x20Fully\x20collateralized\x20USD\x20stablecoin;\x206\x20decimals\x20on\x20both\x20sides.'},{'tokenId':0x4,'symbol':'USDT','wowTypeTag':'0x4f160cf9a28ca8ac8bc0a46e13b02588dc05722148dd964807b9be89a0fcfe4d::usdt::USDT','evmAddress':'0xdAC17F958D2ee523a2206206994597C13D831ec7','evmDecimals':0x6,'wowDecimals':0x6,'evmChains':[0xa],'description':'Tether\x20USD\x20(USDT).\x20Fiat-collateralized\x20stablecoin;\x206\x20decimals\x20on\x20both\x20sides.'}],'timeouts':{'nodeRpcMs':0x7530,'signaturePollIntervalMs':0x1388,'signatureCollectMs':0xf*0xea60,'autoClaimMs':0xa*0xea60}};function findEvmChainConfig(a,b){if(a['ethereum']['chainId']===b)return a['ethereum'];if(a['l2']){for(const c of Object['values'](a['l2']))if(c&&c['chainId']===b)return c;}}function findEvmChainConfigByBridgeChainId(a,b){if(a['ethereum']['bridgeChainId']===b)return a['ethereum'];if(a['l2']){for(const c of Object['values'](a['l2']))if(c&&c['bridgeChainId']===b)return c;}}function findToken(a,b){return a['tokens']['find'](c=>c['tokenId']===b);}function findTokenBySymbol(a,b){return a['tokens']['find'](c=>c['symbol']===b);}function verifyCommitteeConsistency(){const a=[];for(let b=0x0;b<MAINNET_COMMITTEE_PUBKEYS['length'];b++){const c=MAINNET_COMMITTEE_PUBKEYS[b],d=MAINNET_COMMITTEE_MEMBER_ADDRESSES[b],e=compressedPubKeyToAddress(c);if(e['toLowerCase']()!==d['toLowerCase']())a['push']({'index':b,'pubkey':c,'expected':d,'actual':e});}return a;}const BRIDGE_ETH_V2_SIG='bridgeETHV2(bytes,uint8)',BRIDGE_ETH_V2_SELECTOR='b4b7068c',BRIDGE_ETH_V1_SELECTOR='9449ebd2',BRIDGE_ERC20_V1_SELECTOR='212afaff',BRIDGE_ERC20_V2_SIG='bridgeERC20V2(uint8,uint256,bytes,uint8)',BRIDGE_ERC20_V2_SELECTOR='0bdba58b',TRANSFER_BRIDGED_V2_SIG='transferBridgedTokensWithSignaturesV2(bytes[],(uint8,uint8,uint64,uint8,bytes))',TRANSFER_BRIDGED_V2_SELECTOR='9c3ecefb',TRANSFER_BRIDGED_V1_SIG='transferBridgedTokensWithSignatures(bytes[],(uint8,uint8,uint64,uint8,bytes))',APPROVE_SIG='approve(address,uint256)',APPROVE_SELECTOR='095ea7b3',WORD_SIZE=0x20;function uintWord(a){const b=bigIntToBytes(BigInt(a)),c=new Uint8Array(WORD_SIZE);return c['set'](b,WORD_SIZE-b['length']),c;}function addressWord(a){const b=a103e(a['startsWith']('0x')?a['slice'](0x2):a);if(b['length']!==0x14)throw new Error('Invalid\x20EVM\x20address\x20length:\x20'+a);const c=new Uint8Array(WORD_SIZE);return c['set'](b,WORD_SIZE-0x14),c;}function padToWord(a){const b=a['length']%WORD_SIZE;if(b===0x0)return a;const c=new Uint8Array(a['length']+WORD_SIZE-b);return c['set'](a,0x0),c;}function concat(...b){const c=b['reduce']((f,g)=>f+g['length'],0x0),d=new Uint8Array(c);let e=0x0;for(const f of b){d['set'](f,e),e+=f['length'];}return d;}function encodeBytes(a){return concat(uintWord(BigInt(a['length'])),padToWord(a));}function computeSelector(a){return bytesToHex(keccak_256(new TextEncoder()['encode'](a))['slice'](0x0,0x4));}function computeEventTopic(a){return'0x'+bytesToHex(keccak_256(new TextEncoder()['encode'](a)));}function encodeBridgeETHV2(a,b){const c=a103e(a['startsWith']('0x')?a['slice'](0x2):a);if(c['length']!==0x20)throw new Error('Recipient\x20address\x20must\x20be\x2032\x20bytes,\x20got\x20'+c['length']);const d=uintWord(0x40n),e=uintWord(b),f=encodeBytes(c);return'0x'+bytesToHex(concat(a103e(BRIDGE_ETH_V2_SELECTOR),d,e,f));}function encodeBridgeETH(a,b){const c=a103e(a['startsWith']('0x')?a['slice'](0x2):a);if(c['length']!==0x20)throw new Error('Recipient\x20address\x20must\x20be\x2032\x20bytes,\x20got\x20'+c['length']);const d=uintWord(0x40n),e=uintWord(b),f=encodeBytes(c);return'0x'+bytesToHex(concat(a103e(BRIDGE_ETH_V1_SELECTOR),d,e,f));}function encodeBridgeERC20V2(a,b,c,d){const e=a103e(c['startsWith']('0x')?c['slice'](0x2):c);if(e['length']!==0x20)throw new Error('Recipient\x20address\x20must\x20be\x2032\x20bytes');const f=uintWord(0x80n),g=encodeBytes(e);return'0x'+bytesToHex(concat(a103e(BRIDGE_ERC20_V2_SELECTOR),uintWord(a),uintWord(b),f,uintWord(d),g));}function encodeBridgeERC20(a,b,c,d){const e=a103e(c['startsWith']('0x')?c['slice'](0x2):c);if(e['length']!==0x20)throw new Error('Recipient\x20address\x20must\x20be\x2032\x20bytes');const f=uintWord(0x80n),g=encodeBytes(e);return'0x'+bytesToHex(concat(a103e(BRIDGE_ERC20_V1_SELECTOR),uintWord(a),uintWord(b),f,uintWord(d),g));}function encodeMessage(a){return concat(uintWord(a['messageType']),uintWord(a['version']),uintWord(a['nonce']),uintWord(a['chainID']),uintWord(0xa0n),encodeBytes(a['payload']));}function encodeBytesArray(a){const b=a['length'],c=b*0x20,d=[];let e=0x0n;for(const g of a){d['push'](BigInt(c)+e),e+=BigInt(0x20+Math['ceil'](g['length']/0x20)*0x20);}const f=[uintWord(BigInt(b))];for(const h of d)f['push'](uintWord(h));for(const i of a)f['push'](encodeBytes(i));return concat(...f);}function encodeTransferBridgedTokensWithSignatures(a,b,c=!![]){const d=c?TRANSFER_BRIDGED_V2_SELECTOR:computeSelector(TRANSFER_BRIDGED_V1_SIG),e=encodeBytesArray(a),f=encodeMessage(b),g=uintWord(0x40n),h=uintWord(BigInt(0x40+e['length']));return'0x'+bytesToHex(concat(a103e(d),g,h,e,f));}function encodeApprove(a,b){return'0x'+bytesToHex(concat(a103e(APPROVE_SELECTOR),addressWord(a),uintWord(b)));}function encodeTokenTransferPayloadV2(a){const {senderAddress:b,targetChain:c,recipientAddress:d,tokenID:e,amount:f,timestampMs:g}=a;if(b['length']!==0x20)throw new Error('senderAddress\x20must\x20be\x2032\x20bytes');if(d['length']!==0x14)throw new Error('recipientAddress\x20must\x20be\x2020\x20bytes');const h=new Uint8Array(0x48);let i=0x0;h[i++]=0x20,h['set'](b,i),i+=0x20,h[i++]=c,h[i++]=0x14,h['set'](d,i),i+=0x14,h[i++]=e;const j=bigIntToBytes(f);h['set'](j,i+0x8-j['length']),i+=0x8;const k=bigIntToBytes(g);return h['set'](k,i+0x8-k['length']),h;}function verifySelectors(){const a=[[BRIDGE_ETH_V2_SIG,BRIDGE_ETH_V2_SELECTOR],[BRIDGE_ERC20_V2_SIG,BRIDGE_ERC20_V2_SELECTOR],[TRANSFER_BRIDGED_V2_SIG,TRANSFER_BRIDGED_V2_SELECTOR],[APPROVE_SIG,APPROVE_SELECTOR]];for(const [b,c]of a){const d=computeSelector(b);if(d!==c)throw new Error('ABI\x20selector\x20mismatch\x20for\x20'+b+':\x20expected\x20'+c+',\x20got\x20'+d);}}verifySelectors();const TOKENS_DEPOSITED_V2_TOPIC=computeEventTopic('TokensDepositedV2(uint8,uint64,uint8,uint8,uint64,address,bytes,uint256)'),TOKENS_DEPOSITED_TOPIC=computeEventTopic('TokensDeposited(uint8,uint64,uint8,uint8,uint64,address,bytes)'),TOKENS_CLAIMED_TOPIC=computeEventTopic('TokensClaimed(uint8,uint64,uint8,uint8,uint64,address,bytes)'),ERC20_TRANSFER_TOPIC=computeEventTopic('Transfer(address,address,uint256)');async function depositEth(a,b){try{const c=b['destinationChainId']??0x0,d=b['version']!=='v1'?encodeBridgeETHV2(b['recipientWowAddress'],c):encodeBridgeETH(b['recipientWowAddress'],c),f={'to':b['bridgeProxyAddress'],'value':a,'data':d,'network':b['network'],'rpcUrl':b['rpcUrl'],'gasLimit':0x3d090n},g=EvmAccount['Instance']();await g['active']();const h=await g['sign_and_send'](f,b['rpcUrl']);if(h['status']!=='0x1')return{'success':![],'error':{'code':'REVERTED','message':'ETH\x20deposit\x20transaction\x20reverted','revertReason':'txHash:\x20'+h['transactionHash']}};return{'success':!![],'txHash':h['transactionHash']};}catch(i){return{'success':![],'error':{'code':'UNKNOWN','message':'ETH\x20deposit\x20failed:\x20'+(i?.['message']??String(i)),'raw':i}};}}async function depositErc20(a,b){try{const c=EvmAccount['Instance']();await c['active']();const d=b['destinationChainId']??0x0,f={'to':b['tokenAddress'],'data':encodeApprove(b['bridgeProxyAddress'],a),'network':b['network'],'rpcUrl':b['rpcUrl']},g=await c['sign_and_send'](f,b['rpcUrl']);if(g['status']!=='0x1')return{'success':![],'error':{'code':'REVERTED','message':'ERC20\x20approve\x20reverted','revertReason':'txHash:\x20'+g['transactionHash']}};const h=b['version']!=='v1'?encodeBridgeERC20V2(b['tokenId'],a,b['recipientWowAddress'],d):encodeBridgeERC20(b['tokenId'],a,b['recipientWowAddress'],d),i={'to':b['bridgeProxyAddress'],'value':0x0n,'data':h,'network':b['network'],'rpcUrl':b['rpcUrl']},j=await c['sign_and_send'](i,b['rpcUrl']);if(j['status']!=='0x1')return{'success':![],'error':{'code':'REVERTED','message':'ERC20\x20deposit\x20transaction\x20reverted','revertReason':'txHash:\x20'+j['transactionHash']}};return{'success':!![],'txHash':j['transactionHash']};}catch(k){return{'success':![],'error':{'code':'UNKNOWN','message':'ERC20\x20deposit\x20failed:\x20'+(k?.['message']??String(k)),'raw':k}};}}async function depositFromEth(a,b){if(a['tokenAddress']){if(a['tokenId']===void 0x0)return{'success':![],'error':{'code':'INVALID_PARAM','message':'tokenId\x20is\x20required\x20for\x20ERC20\x20deposit'}};return depositErc20(a['amount'],{...b,'tokenAddress':a['tokenAddress'],'tokenId':a['tokenId']});}return depositEth(a['amount'],b);}function buildClaimMessage(a){const b=encodeTokenTransferPayloadV2({'senderAddress':a['senderAddress'],'targetChain':a['targetChain'],'recipientAddress':a['recipientAddress'],'tokenID':a['tokenId'],'amount':a['amount'],'timestampMs':a['timestampMs']});return{'messageType':a['messageType'],'version':a['version'],'nonce':a['nonce'],'chainID':a['sourceChain'],'payload':b};}function signaturesToBytes(a){return a['map'](b=>{const c=a103e(b['signature']['startsWith']('0x')?b['signature']['slice'](0x2):b['signature']);if(c['length']!==0x41)throw new Error('Invalid\x20signature\x20length:\x20'+c['length']+'\x20(expected\x2065)');return c;});}async function claimOnEth(a,b){try{const c=b['useV2']??!![];let d=await b['nodeClient']['signWowToEth'](a['wowTxDigest'],a['eventIndex']);d['length']===0x0&&(console['warn']('tx_digest\x20路径未收集到签名,回退到\x20seq\x20路径:',a['message']['chainID'],a['message']['messageType'],a['message']['nonce']),d=await b['nodeClient']['signWowTokenTransfer'](a['message']['chainID'],a['message']['messageType'],a['message']['nonce']));if(d['length']===0x0)return{'success':![],'error':{'code':'NO_SIGNATURES','message':buildNoSignaturesMessage(a['message']['chainID'],a['message']['messageType'],a['message']['nonce'])}};const f=encodeTransferBridgedTokensWithSignatures(signaturesToBytes(d),a['message'],c),g={'to':b['bridgeProxyAddress'],'value':0x0n,'data':f,'network':b['network'],'rpcUrl':b['rpcUrl']},h=EvmAccount['Instance']();await h['active']();const i=await h['sign_and_send'](g,b['rpcUrl']);if(i['status']!=='0x1')return{'success':![],'error':{'code':'REVERTED','message':'ETH\x20claim\x20transaction\x20reverted','revertReason':'txHash:\x20'+i['transactionHash']}};return{'success':!![],'txHash':i['transactionHash']};}catch(j){return wrapBridgeError(j,'UNKNOWN','ETH\x20claim\x20failed');}}async function claimOnEthBySeq(a,b){try{const c=b['useV2']??!![],d=await b['nodeClient']['signWowTokenTransfer'](a['sourceChain'],a['messageType'],a['seqNum']);if(d['length']===0x0)return{'success':![],'error':{'code':'NO_SIGNATURES','message':buildNoSignaturesMessage(a['sourceChain'],a['messageType'],a['seqNum'])}};const f=encodeTransferBridgedTokensWithSignatures(signaturesToBytes(d),a['message'],c),g={'to':b['bridgeProxyAddress'],'value':0x0n,'data':f,'network':b['network'],'rpcUrl':b['rpcUrl']},h=EvmAccount['Instance']();await h['active']();let i;try{await h['ethCall'](g);}catch(k){const l=k?.['message']??String(k);if(l['includes']('execution\x20reverted')||l['includes']('reverted\x20with\x20reason'))i=l;else console['warn']('\x20\x20[claimOnEthBySeq]\x20eth_call\x20warning\x20(skipped):',l['slice'](0x0,0x78));}if(i)return{'success':![],'error':{'code':'REVERTED','message':'ETH\x20claim\x20reverted','revertReason':i}};const j=await h['sign_and_send'](g,b['rpcUrl']);if(j['status']!=='0x1')return{'success':![],'error':{'code':'REVERTED','message':'ETH\x20claim\x20transaction\x20reverted','revertReason':'txHash:\x20'+j['transactionHash']}};return{'success':!![],'txHash':j['transactionHash']};}catch(m){return wrapBridgeError(m,'UNKNOWN','ETH\x20claim\x20(by\x20seq)\x20failed');}}function buildNoSignaturesMessage(a,b,c){return['No\x20signatures\x20collected\x20for\x20seq='+c+'\x20(sourceChain='+a+',\x20messageType='+b+').','Possible\x20reasons:','\x20\x201)\x20Bridge\x20nodes\x20are\x20not\x20reachable\x20or\x20not\x20synced','\x20\x202)\x20The\x20seq\x20'+c+'\x20does\x20not\x20exist\x20on\x20source\x20chain','\x20\x203)\x20The\x20message\x20has\x20already\x20expired','\x20\x204)\x20Insufficient\x20quorum\x20(need\x202/3\x20of\x20total\x20committee\x20weight)','Check\x20node\x20health\x20with\x20nodeClient.pingAll().']['join']('\x0a');}function wrapBridgeError(a,b,c){return{'success':![],'error':{'code':b,'message':c+':\x20'+(a?.['message']??String(a)),'raw':a}};}const BRIDGE_PACKAGE$1='0xb',DEFAULT_BRIDGE_OBJECT_ID$1='0x9',CLOCK_OBJECT_ID$1='0x6',EVM_ADDRESS_LENGTH=0x14,TOKEN_DEPOSITED_EVENT_V2_TYPE=BRIDGE_PACKAGE$1+'::bridge::TokenDepositedEventV2';async function depositFromWow(a,b){if(!a['tokenType']||a['tokenType']['split']('::')['length']<0x3)a103d('invalid\x20parameter','Invalid\x20tokenType:\x20'+a['tokenType']);if(a['amount']<=0x0n)a103d('invalid\x20parameter','amount\x20must\x20be\x20positive');const c=parseEvmAddress(a['recipientEthAddress']),d=a['destinationChainId']??0xa,f=a['bridgeObjectId']??DEFAULT_BRIDGE_OBJECT_ID$1,g=new a103b(),h=await Account['Instance']()['get_coin_object'](g,a['amount'],a['tokenType'],await getEnvAccount$1(b),b['network']);if(!h)a103d('fail','Failed\x20to\x20get\x20coin\x20object');g['moveCall']({'target':BRIDGE_PACKAGE$1+'::bridge::send_token_v2','arguments':[g['object'](f),g['pure']['u8'](d),g['pure']['vector']('u8',c),h,g['object'](CLOCK_OBJECT_ID$1)],'typeArguments':[a['tokenType']]});const i=await Account['Instance']()['sign_and_commit'](g,await getEnvAccount$1(b),b['network']);if(!i||!i['digest'])a103d('fail','WOW\x20deposit\x20transaction\x20failed');let j=i;if(!i['events']||i['events']['length']===0x0){const {WowClient:l}=await import('./client/index.mjs'),{Config:m}=await import('./w/local/config.mjs'),n=await m['Instance']()['network_get'](b['network']),o=new l({'url':a103c(n),'network':n});let p;for(let q=0x0;q<0xa;q++){try{j=await o['getTransactionBlock']({'digest':i['digest'],'options':{'showEvents':!![],'showEffects':!![]}});if(j['events']&&j['events']['length']>0x0)break;}catch(r){p=r;}await new Promise(s=>setTimeout(s,0x3e8*(q+0x1)));}if(!j['events']||j['events']['length']===0x0)throw p??new Error('Failed\x20to\x20fetch\x20events\x20for\x20tx\x20'+i['digest']);}const k=parseSeqNumFromReceipt(j);if(k===void 0x0)a103d('fail','Failed\x20to\x20parse\x20seqNum\x20from\x20WOW\x20tx\x20'+i['digest']);return{'digest':i['digest'],'seqNum':k,'receipt':i};}function parseEvmAddress(a){let b=a;if(b['startsWith']('0x')||b['startsWith']('0X'))b=b['slice'](0x2);if(b['length']!==EVM_ADDRESS_LENGTH*0x2)a103d('invalid\x20parameter','Invalid\x20EVM\x20address:\x20'+a+'\x20(expected\x2020\x20bytes)');const c=new Uint8Array(EVM_ADDRESS_LENGTH);for(let d=0x0;d<EVM_ADDRESS_LENGTH;d++)c[d]=parseInt(b['slice'](d*0x2,d*0x2+0x2),0x10);return c;}function normalizeEventType$1(a){const b=a['split']('::');if(b['length']>0x0&&b[0x0]['startsWith']('0x')){const c=b[0x0]['toLowerCase']()['replace'](/^0x0+/,'0x');b[0x0]=c==='0x'?'0x0':c;}return b['join']('::');}function parseSeqNumFromReceipt(a){const b=a['events'];if(!b||b['length']===0x0)return void 0x0;const c=normalizeEventType$1(TOKEN_DEPOSITED_EVENT_V2_TYPE);for(const d of b){if(normalizeEventType$1(d['type'])!==c)continue;const e=d['parsedJson'];if(!e)continue;const f=e['seq_num'];if(typeof f==='string'||typeof f==='number')return BigInt(f);}}async function getEnvAccount$1(a){return a['account']??void 0x0;}const BRIDGE_PACKAGE='0xb',CLOCK_OBJECT_ID='0x6',TOKEN_TRANSFER_APPROVED_TYPE=BRIDGE_PACKAGE+'::bridge::TokenTransferApproved',TOKEN_TRANSFER_CLAIMED_TYPE=BRIDGE_PACKAGE+'::bridge::TokenTransferClaimed',DEFAULT_BRIDGE_OBJECT_ID='0x9';async function claimOnWow(a,b){if(!a['tokenType']||a['tokenType']['split']('::')['length']<0x3)a103d('invalid\x20parameter','Invalid\x20tokenType:\x20'+a['tokenType']);if(a['bridgeSeqNum']<0x0n)a103d('invalid\x20parameter','bridgeSeqNum\x20must\x20be\x20non-negative');const c=a['sourceChainId']??0xa,d=a['bridgeObjectId']??DEFAULT_BRIDGE_OBJECT_ID,e=new a103b();e['moveCall']({'target':BRIDGE_PACKAGE+'::bridge::claim_and_transfer_token','arguments':[e['object'](d),e['object'](CLOCK_OBJECT_ID),e['pure']['u8'](c),e['pure']['u64'](a['bridgeSeqNum'])],'typeArguments':[a['tokenType']]});const f=await Account['Instance']()['sign_and_commit'](e,await getEnvAccount(b),b['network']);if(!f||!f['digest'])a103d('fail','WOW\x20claim\x20transaction\x20failed');return{'digest':f['digest'],'receipt':f};}let WowClaimStatus=function(a){return a['NotApproved']='not_approved',a['Approved']='approved',a['Claimed']='claimed',a['NotFound']='not_found',a;}({});async function queryWowClaimStatus(a,b){const c=a['sourceChainId']??0xa,d=await Config['Instance']()['network_get'](b),e=new a103a({'url':a103c(d),'network':d}),f=await e['queryEvents']({'query':{'MoveEventType':TOKEN_TRANSFER_CLAIMED_TYPE},'limit':0x64,'order':'descending'});for(const h of f['data']){const i=h['parsedJson'];if(!i)continue;const j=i['message_key'];if(!j)continue;const k=Number(j['source_chain']),l=BigInt(j['bridge_seq_num']??0x0);if(k===c&&l===a['bridgeSeqNum'])return{'status':'claimed','claimedTxHash':h['id']?.['txDigest']};}const g=await e['queryEvents']({'query':{'MoveEventType':TOKEN_TRANSFER_APPROVED_TYPE},'limit':0x64,'order':'descending'});for(const m of g['data']){const n=m['parsedJson'];if(!n)continue;const o=n['message_key'];if(!o)continue;const p=Number(o['source_chain']),q=BigInt(o['bridge_seq_num']??0x0);if(p===c&&q===a['bridgeSeqNum'])return{'status':'approved','approvedEventId':m['id']?.['eventSeq']};}return{'status':'not_approved'};}async function getEnvAccount(a){return a['account']??void 0x0;}async function queryEthTxReceipt(a,b,c=0x2710){const d=new AbortController(),f=setTimeout(()=>d['abort'](),c);try{const g=await(await fetch(b,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'jsonrpc':'2.0','id':0x1,'method':'eth_getTransactionReceipt','params':[a]}),'signal':d['signal']}))['json']();if(g['error'])throw new Error('JSON-RPC\x20error:\x20'+g['error']['message']);return g['result'];}catch(h){if(h?.['name']==='AbortError')throw new Error('queryEthTxReceipt\x20timeout\x20after\x20'+c+'ms');throw h;}finally{clearTimeout(f);}}async function queryEthBalance(a,b){const c=await(await fetch(b,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'jsonrpc':'2.0','id':0x1,'method':'eth_getBalance','params':[a,'latest']})}))['json']();if(c['error'])throw new Error('JSON-RPC\x20error:\x20'+c['error']['message']);return BigInt(c['result']);}async function queryErc20Balance(a,b,c){const d='0x70a08231000000000000000000000000'+b['slice'](0x2)['toLowerCase'](),e=await(await fetch(c,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'jsonrpc':'2.0','id':0x1,'method':'eth_call','params':[{'to':a,'data':d},'latest']})}))['json']();if(e['error'])throw new Error('JSON-RPC\x20error:\x20'+e['error']['message']);return BigInt(e['result']);}async function queryEthTxConfirmations(a,b,c=0x2710){const d=await queryEthTxReceipt(a,b,c);if(!d?.['blockNumber'])return 0x0;const e=new AbortController(),f=setTimeout(()=>e['abort'](),c);try{const g=await(await fetch(b,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'jsonrpc':'2.0','id':0x2,'method':'eth_blockNumber','params':[]}),'signal':e['signal']}))['json'](),h=BigInt(g['result']),i=BigInt(d['blockNumber']);return Number(h-i);}finally{clearTimeout(f);}}async function queryWowTx(a,b){try{return await a['getTransactionBlock']({'digest':b,'options':{'showEffects':!![],'showEvents':!![]}});}catch{return null;}}let BridgeTransferDirection=function(a){return a['EvmToWow']='evm_to_wow',a['WowToEvm']='wow_to_evm',a;}({}),BridgeTransferStep=function(a){return a['NotStarted']='not_started',a['SourceTxPending']='source_tx_pending',a['SourceTxConfirmed']='source_tx_confirmed',a['NodeSigning']='node_signing',a['SignaturesReady']='signatures_ready',a['ClaimTxPending']='claim_tx_pending',a['Completed']='completed',a['Failed']='failed',a;}({});const BRIDGE_STEP_DESCRIPTIONS={['not_started']:'尚未发起跨链',['source_tx_pending']:'源链交易已提交,等待区块确认',['source_tx_confirmed']:'源链交易已确认,等待\x20bridge\x20节点签名\x20approve',['node_signing']:'bridge\x20节点签名收集中',['signatures_ready']:'签名已收集完毕,可发起目标链\x20claim',['claim_tx_pending']:'目标链\x20claim\x20交易已提交,待确认',['completed']:'跨链完成',['failed']:'跨链失败'};let BridgeTransferStatus=function(a){return a['NotStarted']='not_started',a['Pending']='pending',a['Confirmed']='confirmed',a['SignaturesReady']='signatures_ready',a['Claiming']='claiming',a['Completed']='completed',a['Failed']='failed',a;}({});function makeBridgeTransferState(a){return{'status':stepToStatus(a['step']),'stepDescription':BRIDGE_STEP_DESCRIPTIONS[a['step']],'updatedAt':Date['now'](),...a};}function stepToStatus(a){switch(a){case'not_started':return'not_started';case'source_tx_pending':return'pending';case'source_tx_confirmed':return'confirmed';case'node_signing':return'confirmed';case'signatures_ready':return'signatures_ready';case'claim_tx_pending':return'claiming';case'completed':return'completed';case'failed':return'failed';}}function parseEthDepositEvent(a,b){const c=b['toLowerCase']();for(const d of a['logs']){if(d['address']['toLowerCase']()!==c)continue;const e=d['topics'][0x0]===TOKENS_DEPOSITED_V2_TOPIC,f=d['topics'][0x0]===TOKENS_DEPOSITED_TOPIC;if(!e&&!f)continue;const g=a103e(d['data']);if(g['length']<0x80)continue;const h=u=>g[u*0x20+0x1f],i=u=>{const v=g['slice'](u*0x20,u*0x20+0x20);return BigInt('0x'+bytesToHex(v['slice'](0x18,0x20)));},j=u=>'0x'+bytesToHex(g['slice'](u*0x20+0xc,u*0x20+0x20)),k=h(0x0),l=i(0x1),m=j(0x2),n=Number(i(0x3)),o=Number(BigInt('0x'+bytesToHex(g['slice'](n,n+0x20))['slice'](0x30))),p='0x'+bytesToHex(g['slice'](n+0x20,n+0x20+o)),q=d['topics'][0x1]?.['slice'](0x40)??'00',r=parseInt(q,0x10),s=d['topics'][0x3]?.['slice'](0x40)??'00',t=parseInt(s,0x10);return{'bridgeSeq':BigInt('0x'+(d['topics'][0x2]?.['slice'](0x38)??'0')),'sourceChain':r,'sender':m,'targetChain':t,'recipient':p,'tokenID':k,'amount':l};}return null;}function parseEthClaimEvent(a,b){const c=b['toLowerCase']();for(const d of a['logs']){if(d['address']['toLowerCase']()!==c)continue;if(d['topics'][0x0]!==TOKENS_CLAIMED_TOPIC)continue;const e=a103e(d['data']);if(e['length']<0x80)continue;const f=n=>e[n*0x20+0x1f],g=n=>{const o=e['slice'](n*0x20,n*0x20+0x20);return BigInt('0x'+bytesToHex(o['slice'](0x18,0x20)));},h=n=>'0x'+bytesToHex(e['slice'](n*0x20+0xc,n*0x20+0x20));f(0x0);const i=g(0x1),j=h(0x2),k=Number(g(0x3)),l=Number(BigInt('0x'+bytesToHex(e['slice'](k,k+0x20))['slice'](0x30))),m='0x'+bytesToHex(e['slice'](k+0x20,k+0x20+l));return{'bridgeSeq':BigInt('0x'+(d['topics'][0x2]?.['slice'](0x38)??'0')),'claimer':j,'recipient':m,'amount':i};}return null;}async function queryEvmToWowTransferStatus(a,b,c){const d=await queryEthTxReceipt(a,b);if(!d)return makeBridgeTransferState({'step':'source_tx_pending','direction':'evm_to_wow','sourceTxHash':a});if(d['status']!=='0x1')return makeBridgeTransferState({'step':'failed','direction':'evm_to_wow','sourceTxHash':a,'ethReceipt':d,'error':'ETH\x20source\x20transaction\x20reverted'});const e=parseEthDepositEvent(d,c);if(!e)return makeBridgeTransferState({'step':'failed','direction':'evm_to_wow','sourceTxHash':a,'ethReceipt':d,'error':'No\x20TokensDeposited/TokensDepositedV2\x20event\x20found\x20in\x20receipt'});let f=0x0;try{f=await queryEthTxConfirmations(a,b);}catch{}return makeBridgeTransferState({'step':'source_tx_confirmed','direction':'evm_to_wow','sourceTxHash':a,'bridgeSeq':e['bridgeSeq'],'confirmations':f,'ethReceipt':d});}async function queryWowToEvmTransferStatus(a,b){const c=await queryWowTx(a,b);if(!c)return makeBridgeTransferState({'step':'source_tx_pending','direction':'wow_to_evm','sourceTxHash':b});if(c['effects']?.['status']?.['status']!=='success')return makeBridgeTransferState({'step':'failed','direction':'wow_to_evm','sourceTxHash':b,'wowReceipt':c,'error':c['effects']?.['status']?.['error']||'WOW\x20transaction\x20failed'});return makeBridgeTransferState({'step':'source_tx_confirmed','direction':'wow_to_evm','sourceTxHash':b,'bridgeSeq':parseWowDepositSeqFromReceipt(c),'wowReceipt':c});}function normalizeEventType(a){const b=a['split']('::');if(b['length']>0x0&&b[0x0]['startsWith']('0x')){const c=b[0x0]['toLowerCase']()['replace'](/^0x0+/,'0x');b[0x0]=c==='0x'?'0x0':c;}return b['join']('::');}function parseWowDepositSeqFromReceipt(a){const b=a['events'];if(!b||b['length']===0x0)return void 0x0;const c=normalizeEventType('0xb::bridge::TokenDepositedEventV2');for(const d of b){if(normalizeEventType(d['type'])!==c)continue;const e=d['parsedJson'];if(!e)continue;const f=e['seq_num'];if(typeof f==='string'||typeof f==='number')return BigInt(f);}}async function waitForEthTx(a,b,c=0x1,d=0x2ee0,e=0x1e*0xea60){const f=Math['max'](0x1,Math['ceil'](e/d));for(let g=0x0;g<f;g++){const h=await queryEthTxReceipt(a,b);if(h){const j=await queryEthTxConfirmations(a,b);if(j>=c)return h;console['log']('[waitForEthTx]\x20'+(g+0x1)+'/'+f+':\x20'+j+'/'+c+'\x20confirmations');}else console['log']('[waitForEthTx]\x20'+(g+0x1)+'/'+f+':\x20pending');await sleep$1(d);}a103d('fail','Timeout\x20waiting\x20for\x20ETH\x20tx\x20'+a+'\x20after\x20'+f+'\x20iterations');}async function waitForWowTx(a,b,c=0xbb8,d=0x5*0xea60){const e=Math['max'](0x1,Math['ceil'](d/c));for(let f=0x0;f<e;f++){const g=await queryWowTx(a,b);if(g&&g['effects']?.['status']?.['status']==='success')return g;if(g&&g['effects']?.['status']?.['status']==='failure')a103d('fail','WOW\x20tx\x20'+b+'\x20failed:\x20'+(g['effects']['status']['error']||'unknown'));console['log']('[waitForWowTx]\x20'+(f+0x1)+'/'+e+':\x20pending'),await sleep$1(c);}a103d('fail','Timeout\x20waiting\x20for\x20WOW\x20tx\x20'+b+'\x20after\x20'+e+'\x20iterations');}function sleep$1(a){return new Promise(b=>setTimeout(b,a));}function isBase64(a){return/^[A-Za-z0-9+/]*={0,2}$/['test'](a)&&a['length']>0x0;}function decodeFlex(a){if(a['startsWith']('0x')||a['startsWith']('0X'))return a103e(a);if(/^[0-9a-fA-F]+$/['test'](a)&&a['length']%0x2===0x0)return a103e(a);if(isBase64(a))return Buffer['from'](a,'base64');throw new Error('Cannot\x20decode\x20signature/pubkey\x20string:\x20'+a);}function parseSignedAction(a,b){const c=decodeFlex(a['auth_signature']['authority_pub_key']),d=decodeFlex(a['auth_signature']['signature']);if(c['length']!==0x21&&c['length']!==0x41)throw new Error('Invalid\x20pubkey\x20length:\x20'+c['length']+'\x20(expected\x2033\x20or\x2065)');if(d['length']!==0x41)throw new Error('Invalid\x20signature\x20length:\x20'+d['length']+'\x20(expected\x2065)');return{'signerPubkey':'0x'+bytesToHex(c),'signature':'0x'+bytesToHex(d),'weight':b};}var BridgeNodeClient=class{constructor(a){this['committee']=a['committee'],this['timeoutMs']=a['timeoutMs']??0x7530,this['quorumRatio']=a['quorumRatio']??0x2/0x3;}get['totalWeight'](){return this['committee']['reduce']((a,b)=>a+b['weight'],0x0);}get['quorumWeight'](){return Math['floor'](this['totalWeight']*this['quorumRatio'])+0x1;}async['signEthToWow'](a,b){const c='/sign/bridge_tx/eth/wow/'+a+'/'+b;return this['collectSignatures'](c);}async['signWowToEth'](a,b){const c='/sign/bridge_tx/wow/eth/'+a+'/'+b;return this['collectSignatures'](c);}async['signWowTokenTransfer'](a,b,c){const d='/sign/bridge_action/wow/eth/'+a+'/'+b+'/'+c;return this['collectSignatures'](d);}async['ping'](a){try{const b=new AbortController(),c=setTimeout(()=>b['abort'](),Math['min'](this['timeoutMs'],0x2710)),d=await fetch(a+'/ping',{'signal':b['signal']});return clearTimeout(c),d['ok'];}catch{return![];}}async['pingAll'](){return Promise['all'](this['committee']['map'](async a=>({'url':a['baseUrl'],'healthy':await this['ping'](a['baseUrl'])})));}async['collectSignatures'](a){const b=new Map();let c=0x0;const d=this['committee']['map'](async f=>{try{return{'action':parseSignedAction(await this['fetchFromNode'](f['baseUrl'],a),f['weight']),'ok':!![]};}catch(g){return{'action':null,'ok':![],'error':g['message']};}}),e=await Promise['all'](d);for(const f of e){if(!f['ok']||!f['action'])continue;!b['has'](f['action']['signerPubkey'])&&(b['set'](f['action']['signerPubkey'],f['action']),c+=f['action']['weight']);}if(c<this['quorumWeight'])a103d('fail','Quorum\x20not\x20reached:\x20collected\x20'+c+',\x20required\x20'+this['quorumWeight']+'\x20(total\x20'+this['totalWeight']+')');return Array['from'](b['values']());}async['fetchFromNode'](a,b){const c=new AbortController(),d=setTimeout(()=>c['abort'](),this['timeoutMs']);try{const e=await fetch(''+a+b,{'signal':c['signal'],'headers':{'Accept':'application/json'}});if(!e['ok'])throw new Error('Node\x20'+a+'\x20returned\x20'+e['status']+':\x20'+await e['text']());return await e['json']();}finally{clearTimeout(d);}}},BridgeClient=class BridgeClient{constructor(a={}){this['_transferHistory']=new Map(),this['_transferCounter']=0x0,this['_loadHistoryPromise']=Promise['resolve'](),this['config']=a['config']??loadDefaultConfig(),this['wowEnv']=a['wowEnv'],registerBridgeEvmNetworks({'evmChain':{'chainId':this['config']['ethereum']['chainId'],'rpcUrl':this['config']['ethereum']['rpcUrl']},'setAsDefault':!![]});if(this['config']['l2']){for(const c of Object['values'](this['config']['l2']))if(c)registerBridgeEvmNetworks({'evmChain':{'chainId':c['chainId'],'rpcUrl':c['rpcUrl']}});}const b=this['config']['bridgeNodeUrls']['map']((d,e)=>({'pubkey':MAINNET_COMMITTEE_PUBKEYS[e]??'0x'+e['toString']()['padStart'](0x40,'0'),'weight':MAINNET_COMMITTEE_WEIGHTS[e]??0x1,'baseUrl':d}));this['nodeClient']=new BridgeNodeClient({'committee':b,'timeoutMs':this['config']['timeouts']['nodeRpcMs']}),this['_loadHistoryPromise']=this['_loadHistory']();}async['bridgeNativeEvmToWow'](a){return this['depositEvmToWowAndFinalize']({'amount':a['amount'],'recipientWowAddress':a['recipientWowAddress'],'waitForFinalization':a['waitForFinalization'],'token':'ETH'});}async['bridgeErc20ToWow'](a){if(a['token']==='ETH')a103d('invalid\x20parameter','Use\x20bridgeNativeEvmToWow()\x20for\x20native\x20ETH;\x20bridgeErc20ToWow()\x20only\x20accepts\x20WETH/WBTC/USDC/USDT');return this['depositEvmToWowAndFinalize']({'amount':a['amount'],'recipientWowAddress':a['recipientWowAddress'],'waitForFinalization':a['waitForFinalization'],'token':a['token']});}async['resolveEvmRpcUrl'](){const a=this['config']['ethereum'];if(a['rpcUrl'])return a['rpcUrl'];const {EvmNetworkRegistry:b}=await import('./w/local/evm/networks.mjs'),c=b['Instance'](),d=await c['resolve'](a['chainId']),e=c['pickHealthyRpc'](d);if(!e)a103d('invalid\x20parameter','No\x20healthy\x20EVM\x20RPC\x20available\x20for\x20chainId\x20'+a['chainId']+'.\x20Use\x20manage_evm_rpc\x20to\x20add\x20RPC\x20endpoints\x20first.');return e;}async['depositEvmToWowAndFinalize'](a){const b=this['config']['ethereum'],c=a['waitForFinalization']??!![],d=await this['resolveEvmRpcUrl'](),e=findTokenBySymbol(this['config'],a['token']);if(!e)a103d('invalid\x20parameter','Token\x20'+a['token']+'\x20not\x20found\x20in\x20config');const f=a['token']==='ETH',g=this['config']['defaultVersion']===0x1?'v1':'v2',h={'recipientWowAddress':a['recipientWowAddress'],'bridgeProxyAddress':b['bridgeProxyAddress'],'network':b['chainId'],'rpcUrl':d,'version':g},j=await depositFromEth({'amount':a['amount'],'tokenAddress':f?void 0x0:e['evmAddress'],'tokenId':f?void 0x0:e['tokenId']},h);if(!j['success']||!j['txHash'])a103d('fail','EVM\x20deposit\x20failed:\x20'+(j['error']?.['message']??'unknown\x20error'));const k=j['txHash'];if(!c)return{'depositTxHash':k};await waitForEthTx(k,d,0x40,0x2ee0,this['config']['timeouts']['signatureCollectMs']);const l=await queryEthTxReceipt(k,d);if(!l)return{'depositTxHash':k};const m=parseEthDepositEvent(l,b['bridgeProxyAddress']);if(!m)return{'depositTxHash':k};if(!this['wowEnv'])a103d('invalid\x20parameter','wowEnv\x20is\x20required\x20for\x20EVM→WOW\x20finalization\x20(claim\x20on\x20WOW)');const n=this['config']['timeouts']['autoClaimMs'],o=this['config']['timeouts']['signaturePollIntervalMs'],p=Math['max'](0x1,Math['ceil'](n/o));let q;for(let s=0x0;s<p;s++){q=await queryWowClaimStatus({'sourceChainId':0xa,'bridgeSeqNum':m['bridgeSeq']},this['config']['wow']['network']),console['log']('[depositEvmToWowAndFinalize]\x20wait\x20approve\x20'+(s+0x1)+'/'+p+':\x20status='+q['status']);if(q['status']==='approved'||q['status']==='claimed')break;await sleep(o);}if(!q||q['status']==='not_approved')a103d('fail','Timeout\x20waiting\x20for\x20bridge\x20nodes\x20to\x20approve\x20bridgeSeq='+m['bridgeSeq']+'\x20after\x20'+p+'\x20iterations');if(q['status']==='claimed')return{'depositTxHash':k,'bridgeSeq':m['bridgeSeq'],'claimTxDigest':q['claimedTxHash']};const r=await claimOnWow({'sourceChainId':0xa,'bridgeSeqNum':m['bridgeSeq'],'tokenType':e['wowTypeTag'],'bridgeObjectId':this['config']['wow']['bridgeObjectId']},this['wowEnv']);return{'depositTxHash':k,'bridgeSeq':m['bridgeSeq'],'claimTxDigest':r['digest']};}async['bridgeWowToEvm'](a){if(!this['wowEnv'])a103d('invalid\x20parameter','wowEnv\x20is\x20required\x20for\x20WOW→EVM\x20bridge');const b=a['waitForFinalization']??!![],c=this['config']['ethereum'],d=await this['resolveEvmRpcUrl'](),e=findTokenBySymbol(this['config'],a['token']);if(!e)a103d('invalid\x20parameter','Token\x20'+a['token']+'\x20not\x20found\x20in\x20config');const f=e['wowTypeTag'],g=e['tokenId'],h=await depositFromWow({'amount':a['amount'],'tokenType':f,'recipientEthAddress':a['recipientEthAddress'],'bridgeObjectId':this['config']['wow']['bridgeObjectId']},this['wowEnv']),{WowClient:i}=await import('./client/index.mjs'),{Config:j}=await import('./w/local/config.mjs'),{getFullnodeUrl:k}=await import('./network-CeDd07Hg.mjs')['then'](u=>u['r']),l=await j['Instance']()['network_get'](this['wowEnv']['network']),m=new i({'url':k(l),'network':l});await waitForWowTx(m,h['digest'],this['config']['timeouts']['signaturePollIntervalMs'],this['config']['timeouts']['signatureCollectMs']);if(!b)return{'depositTxDigest':h['digest'],'bridgeSeq':h['seqNum']};const n=await m['getTransactionBlock']({'digest':h['digest'],'options':{'showEffects':!![]}}),o=n['timestampMs']?BigInt(n['timestampMs']):BigInt(Date['now']()),p=(await Account['Instance']()['get'](this['wowEnv']['account']))?.['address']??'';if(!p)a103d('fail','Failed\x20to\x20resolve\x20WOW\x20sender\x20address');const q=buildClaimMessage({'messageType':0x0,'version':0x2,'nonce':h['seqNum'],'sourceChain':0x0,'targetChain':0xa,'recipientAddress':hexToBytes(a['recipientEthAddress']['slice'](0x2)),'tokenId':g,'amount':a['amount'],'timestampMs':o,'senderAddress':hexToBytes(p['startsWith']('0x')?p['slice'](0x2):p)}),r={'bridgeProxyAddress':c['bridgeProxyAddress'],'network':c['chainId'],'rpcUrl':d,'nodeClient':this['nodeClient']},s=await claimOnEthBySeq({'sourceChain':0x0,'messageType':0x0,'seqNum':h['seqNum'],'message':q},r);if(!s['success']||!s['txHash'])a103d('fail','EVM\x20claim\x20failed:\x20'+(s['error']?.['revertReason']?'revert:\x20'+s['error']['revertReason']:s['error']?.['message']??'unknown\x20error'));const t=s['txHash'];return await waitForEthTx(t,d,0x1,0x2ee0,this['config']['timeouts']['signatureCollectMs']),{'depositTxDigest':h['digest'],'bridgeSeq':h['seqNum'],'claimTxHash':t};}async['queryEvmToWowStatus'](a){const b=this['config']['ethereum'],{EvmNetworkRegistry:c}=await import('./w/local/evm/networks.mjs'),d=c['Instance'](),f=await d['resolve'](b['chainId']),g=Date['now'](),h=[...f['rpcUrls']]['sort']((j,k)=>{const l=d['unhealthyRpc']?.['get'](j)??0x0,m=d['unhealthyRpc']?.['get'](k)??0x0,n=d['unhealthyCounter']?.['get'](j)??0x0,o=d['unhealthyCounter']?.['get'](k)??0x0,p=l<g?0x0:0x1,q=m<g?0x0:0x1;if(p!==q)return p-q;return n-o;});let i;for(const j of h)try{const k=await queryEvmToWowTransferStatus(a,j,b['bridgeProxyAddress']);d['markHealthy'](j);if(k['step']==='source_tx_confirmed'&&k['bridgeSeq']&&this['wowEnv'])try{const l=await queryWowClaimStatus({'sourceChainId':0xa,'bridgeSeqNum':BigInt(k['bridgeSeq'])},this['config']['wow']['network']);if(l['status']==='claimed')k['status']='completed',k['step']='completed',k['claimTxDigest']=l['claimedTxHash'];else{if(l['status']==='approved')k['status']='signatures_ready',k['step']='signatures_ready';else{if(l['status']==='not_approved'){}}}}catch{}return k;}catch(m){i=m,d['markUnhealthy'](j);}return{'status':'pending','step':'source_tx_pending','direction':'evm_to_wow','sourceTxHash':a,'error':i instanceof Error?i['message']:String(i)};}async['queryWowToEvmStatus'](a){const {WowClient:b}=await import('./client/index.mjs'),{Config:c}=await import('./w/local/config.mjs'),{getFullnodeUrl:d}=await import('./network-CeDd07Hg.mjs')['then'](f=>f['r']),e=await c['Instance']()['network_get'](this['wowEnv']?.['network']);return queryWowToEvmTransferStatus(new b({'url':d(e),'network':e}),a);}async['queryEvmToWowClaimStatus'](a){return queryWowClaimStatus({'sourceChainId':0xa,'bridgeSeqNum':a['bridgeSeqNum']},this['config']['wow']['network']);}async['claimWowToEvm'](a){if(!this['wowEnv'])a103d('invalid\x20parameter','wowEnv\x20is\x20required\x20for\x20WOW→EVM\x20claim');const b=this['_transferHistory']['get'](a);if(!b)a103d('invalid\x20parameter','transferId\x20\x27'+a+'\x27\x20not\x20found');if(b['direction']!=='wow_to_evm')a103d('invalid\x20parameter','transferId\x20\x27'+a+'\x27\x20is\x20not\x20a\x20wow_to_evm\x20transfer');if(!b['depositTxDigest']||!b['bridgeSeq'])a103d('invalid\x20parameter','transferId\x20\x27'+a+'\x27\x20missing\x20deposit\x20info\x20(depositTxDigest\x20or\x20bridgeSeq)');const c=this['config']['ethereum'],d=await this['resolveEvmRpcUrl'](),e=findTokenBySymbol(this['config'],b['token']);if(!e)a103d('invalid\x20parameter','Token\x20'+b['token']+'\x20not\x20found\x20in\x20config');const f=e['tokenId'],{WowClient:g}=await import('./client/index.mjs'),{Config:h}=await import('./w/local/config.mjs'),{getFullnodeUrl:i}=await import('./network-CeDd07Hg.mjs')['then'](q=>q['r']),j=await h['Instance']()['network_get'](this['wowEnv']['network']),k=await new g({'url':i(j),'network':j})['getTransactionBlock']({'digest':b['depositTxDigest'],'options':{'showEffects':!![]}}),l=k['timestampMs']?BigInt(k['timestampMs']):BigInt(Date['now']()),m=(await Account['Instance']()['get'](this['wowEnv']['account']))?.['address']??'';if(!m)a103d('fail','Failed\x20to\x20resolve\x20WOW\x20sender\x20address');const n=buildClaimMessage({'messageType':0x0,'version':0x2,'nonce':BigInt(b['bridgeSeq']),'sourceChain':0x0,'targetChain':0xa,'recipientAddress':hexToBytes(b['recipientEth']['slice'](0x2)),'tokenId':f,'amount':BigInt(b['amount']),'timestampMs':l,'senderAddress':hexToBytes(m['startsWith']('0x')?m['slice'](0x2):m)}),o={'bridgeProxyAddress':c['bridgeProxyAddress'],'network':c['chainId'],'rpcUrl':d,'nodeClient':this['nodeClient']},p=await claimOnEthBySeq({'sourceChain':0x0,'messageType':0x0,'seqNum':BigInt(b['bridgeSeq']),'message':n},o);if(!p['success']||!p['txHash'])a103d('fail','EVM\x20claim\x20failed:\x20'+(p['error']?.['revertReason']?'revert:\x20'+p['error']['revertReason']:p['error']?.['message']??'unknown\x20error'));return this['_updateTransfer'](a,{'step':'claimed','status':'success','claimTxHash':p['txHash']}),{'claimTxHash':p['txHash'],'transferId':a};}async['bridgeWowToEvmSimple'](a){if(!this['wowEnv'])a103d('invalid\x20parameter','wowEnv\x20is\x20required\x20for\x20WOW→EVM\x20bridge');const {EvmAccount:b}=await import('./w/local/evm-account.mjs'),c=(await b['Instance']()['active']())['address'],d=await this['_recordTransfer']({'direction':'wow_to_evm','token':a['token'],'amount':a['amount'],'recipientEth':a['withdrawTo']??c,'intermediateEthAccount':c,'withdrawToProvided':!!a['withdrawTo']});try{this['_updateTransfer'](d,{'step':'deposit','status':'in_progress'});const e=await this['bridgeWowToEvm']({'token':a['token'],'amount':a['amount'],'recipientEthAddress':c,'waitForFinalization':a['waitForFinalization']??!![]});if(e['claimTxHash'])this['_updateTransfer'](d,{'step':'claimed','status':'success','depositTxDigest':e['depositTxDigest'],'bridgeSeq':e['bridgeSeq']?.['toString'](),'claimTxHash':e['claimTxHash']});else this['_updateTransfer'](d,{'step':'deposit','status':'in_progress','depositTxDigest':e['depositTxDigest'],'bridgeSeq':e['bridgeSeq']?.['toString']()});let f;if(a['withdrawTo']&&e['claimTxHash']){this['_updateTransfer'](d,{'step':'withdraw','status':'in_progress'});const g=findTokenBySymbol(this['config'],a['token']);f=(await b['Instance']()['withdrawFromActive']({'to':a['withdrawTo'],'amount':a['amount'],'tokenAddress':a['token']==='ETH'?void 0x0:g?.['evmAddress'],'network':this['config']['ethereum']['chainId']}))['transactionHash'],this['_updateTransfer'](d,{'step':'withdrawn','status':'success','withdrawTxHash':f});}return{'depositTxDigest':e['depositTxDigest'],'bridgeSeq':e['bridgeSeq'],'claimTxHash':e['claimTxHash'],'withdrawTxHash':f,'activeEvmAccount':c,'transferId':d};}catch(h){this['_updateTransfer'](d,{'status':'failed','error':h?.['message']??String(h)});throw h;}}async['bridgeEvmToWowSimple'](a){if(!this['wowEnv'])a103d('invalid\x20parameter','wowEnv\x20is\x20required\x20for\x20EVM→WOW\x20bridge');const {EvmAccount:b}=await import('./w/local/evm-account.mjs'),c=await b['Instance']()['active']();let d=a['recipientWowAddress'];if(!d){const i=await Account['Instance']()['get'](this['wowEnv']['account']);if(!i?.['address'])a103d('fail','Failed\x20to\x20resolve\x20WOW\x20recipient\x20address');d=i['address'];}const e=findTokenBySymbol(this['config'],a['token']);if(!e)a103d('invalid\x20parameter','Token\x20'+a['token']+'\x20not\x20found\x20in\x20config');const f=a['token']==='ETH';let g;if(f)g=await b['Instance']()['balance'](this['config']['ethereum']['chainId']);else g=await b['Instance']()['balanceOf'](e['evmAddress'],this['config']['ethereum']['chainId']);if(g===void 0x0||g<a['amount'])a103d('fail','Insufficient\x20'+(f?'ETH':'ERC20')+'\x20balance\x20on\x20activeEvmAccount\x20('+c['address']+')\x20on\x20chain\x20'+this['config']['ethereum']['chainId']+':\x20have\x20'+(g??0x0n)+',\x20need\x20'+a['amount']+'.\x20Please\x20recharge\x20the\x20activeEvmAccount\x20from\x20your\x20wallet\x20(transfer\x20'+(f?'ETH':'the\x20token')+'\x20to\x20'+c['address']+'),\x20then\x20retry\x20the\x20cross-chain\x20transfer.');const h=await this['_recordTransfer']({'direction':'evm_to_wow','token':a['token'],'amount':a['amount'],'recipientWow':d,'intermediateEthAccount':c['address']});try{this['_updateTransfer'](h,{'step':'deposit','status':'in_progress'});let j;if(f)j=await this['bridgeNativeEvmToWow']({'amount':a['amount'],'recipientWowAddress':d,'waitForFinalization':a['waitForFinalization']??!![]});else j=await this['bridgeErc20ToWow']({'token':a['token'],'amount':a['amount'],'recipientWowAddress':d,'waitForFinalization':a['waitForFinalization']??!![]});const k=a['waitForFinalization']??!![];return this['_updateTransfer'](h,{'step':k?'claimed':'deposit','status':k?'success':'in_progress','depositTxHash':j['depositTxHash'],'bridgeSeq':j['bridgeSeq']?.['toString'](),'claimTxDigest':j['claimTxDigest']}),{...j,'activeEvmAccount':c['address'],'transferId':h};}catch(l){this['_updateTransfer'](h,{'status':'failed','error':l?.['message']??String(l)});throw l;}}async['withdrawFromActiveEvmAccount'](a){const {EvmAccount:b}=await import('./w/local/evm-account.mjs'),c=await b['Instance']()['active']();let d=a['tokenAddress'];if(!d&&a['token']&&a['token']!=='ETH')d=findTokenBySymbol(this['config'],a['token'])?.['evmAddress'];const e=await this['_recordTransfer']({'direction':'withdraw','token':a['token'],'amount':a['amount'],'recipientEth':a['to'],'intermediateEthAccount':c['address']});try{this['_updateTransfer'](e,{'step':'withdraw','status':'in_progress'});const f=await b['Instance']()['withdrawFromActive']({'to':a['to'],'amount':a['amount'],'tokenAddress':d,'network':a['network']??this['config']['ethereum']['chainId']});return this['_updateTransfer'](e,{'step':'withdrawn','status':'success','withdrawTxHash':f['transactionHash']}),{'txHash':f['transactionHash'],'transferId':e};}catch(g){this['_updateTransfer'](e,{'status':'failed','error':g?.['message']??String(g)});throw g;}}async['querySupportedEvmChains'](){const {EvmNetworkRegistry:a}=await import('./w/local/evm/networks.mjs'),b=a['Instance']()['listRpcStatus'](this['config']['ethereum']['chainId']),c=b['filter'](d=>d['healthy'])['length'];return[{'chainId':this['config']['ethereum']['chainId'],'name':'mainnet','description':'Ethereum\x20Mainnet','bridgeChainId':this['config']['ethereum']['bridgeChainId'],'explorerUrl':'https://etherscan.io','rpcCount':b['length'],'healthyRpcCount':c}];}async['querySupportedTokens'](a){const b=await this['querySupportedEvmChains'](),c=a?.['network']?b['filter'](e=>typeof a['network']==='number'?e['chainId']===a['network']:e['name']['toLowerCase']()===String(a['network'])['toLowerCase']()):b,d=[];for(const e of c){const f=this['config']['tokens']['filter'](g=>!g['evmChains']||g['evmChains']['includes'](e['bridgeChainId']))['map'](g=>({'tokenId':g['tokenId'],'symbol':g['symbol'],'evmAddress':g['evmAddress'],'evmDecimals':g['evmDecimals'],'wowTypeTag':g['wowTypeTag'],'wowDecimals':g['wowDecimals'],'description':g['description']??g['symbol']+'\x20(tokenId='+g['tokenId']+')'}));d['push']({'chainId':e['chainId'],'chainName':e['name'],'bridgeChainId':e['bridgeChainId'],'tokens':f});}return d;}async['queryActiveEvmAccount'](a){const {EvmAccount:b}=await import('./w/local/evm-account.mjs'),{EvmNetworkRegistry:c}=await import('./w/local/evm/networks.mjs'),d=await b['Instance']()['active']();c['Instance']();const e=await this['querySupportedEvmChains'](),f=a?.['network']?e['filter'](h=>typeof a['network']==='number'?h['chainId']===a['network']:h['name']['toLowerCase']()===String(a['network'])['toLowerCase']()):e,g=[];for(const h of f){const i=await b['Instance']()['balance'](h['chainId']),j={'chainId':h['chainId'],'name':h['name'],'nativeBalance':(i??0x0n)['toString']()};if(a?.['tokens']&&a['tokens']['length']>0x0){j['tokens']=[];for(const k of a['tokens']){const l=await b['Instance']()['balanceOf'](k,h['chainId']);j['tokens']['push']({'tokenAddress':k,'balance':(l??0x0n)['toString']()});}}g['push'](j);}return{'address':d['address'],'chains':g};}async['queryTransferList'](a){await this['_loadHistoryPromise'];const b=Array['from'](this['_transferHistory']['values']())['reverse']();if(a?.['onlyActive'])return b['filter'](c=>c['status']==='in_progress'||c['status']==='pending');return b;}async['queryTransferStatus'](a){return await this['_loadHistoryPromise'],this['_transferHistory']['get'](a);}async['refreshTransferStatus'](a){await this['_loadHistoryPromise'];const b=this['_transferHistory']['get'](a);if(!b)return void 0x0;if(b['direction']==='withdraw')return b;try{if(b['direction']==='evm_to_wow'&&b['depositTxHash']){const c=await this['queryEvmToWowStatus'](b['depositTxHash']);if(typeof c['bridgeSeq']==='bigint')c['bridgeSeq']=c['bridgeSeq']['toString']();b['latestState']=c,c['status']==='completed'&&b['status']==='in_progress'&&(b['status']='success',b['step']='claimed');}else{if(b['direction']==='wow_to_evm'&&b['depositTxDigest']){const d=await this['queryWowToEvmStatus'](b['depositTxDigest']);if(typeof d['bridgeSeq']==='bigint')d['bridgeSeq']=d['bridgeSeq']['toString']();if(b['claimTxHash']){if(d['step']==='source_tx_confirmed'||d['step']==='signatures_ready')try{const e=await this['resolveEvmRpcUrl'](),f=await queryEthTxReceipt(b['claimTxHash'],e);f?(d['claimReceipt']=f,f['status']==='0x1'?(d['status']='completed',d['step']='completed'):(d['status']='failed',d['step']='failed',d['error']='EVM\x20claim\x20transaction\x20reverted')):(d['status']='claiming',d['step']='claim_tx_pending');}catch{}}else d['hint']='claim_wow_to_evm\x20(step\x202)\x20not\x20yet\x20called.\x20Call\x20claim_wow_to_evm\x20after\x20bridge\x20nodes\x20sign\x20(~1-5\x20min).';b['latestState']=d,d['status']==='completed'&&b['status']==='in_progress'&&(b['status']='success',b['step']='claimed');}}}catch(g){b['error']=g?.['message']??String(g);}return b;}async['manageEvmRpc'](a){const {EvmNetworkRegistry:b}=await import('./w/local/evm/networks.mjs'),c=b['Instance'](),d=a['network']??this['config']['ethereum']['chainId'];switch(a['op']){case'list':return{'op':'list','success':!![],'result':c['listRpcStatus'](d)};case'add':if(!a['rpcUrls']||a['rpcUrls']['length']===0x0)a103d('invalid\x20parameter','rpcUrls\x20is\x20required\x20for\x20\x27add\x27\x20op');{const e=c['addRpcs'](d,a['rpcUrls']);return{'op':'add','success':e>0x0,'result':{'added':e}};}case'remove':if(!a['rpcUrls']||a['rpcUrls']['length']===0x0)a103d('invalid\x20parameter','rpcUrls\x20is\x20required\x20for\x20\x27remove\x27\x20op');{const f=c['removeRpcs'](d,a['rpcUrls']);return{'op':'remove','success':f>0x0,'result':{'removed':f}};}case'set':if(!a['rpcUrls']||a['rpcUrls']['length']===0x0)a103d('invalid\x20parameter','rpcUrls\x20is\x20required\x20for\x20\x27set\x27\x20op');return{'op':'set','success':c['setRpcs'](d,a['rpcUrls'])};case'ping':{const g=c['listRpcStatus'](d),h=[];for(const i of g){const j=await c['ping'](i['url']);h['push']({'url':i['url'],'healthy':j});}return{'op':'ping','success':!![],'result':h};}default:a103d('invalid\x20parameter','Unknown\x20op:\x20'+a['op']);}}static{this['HISTORY_DB_KEY']='bridge:transfers:all';}async['_loadHistory'](){try{this['_historyStore']=new SQLiteStorage();const a=await this['_historyStore']['get'](BridgeClient['HISTORY_DB_KEY']);if(a){const b=JSON['parse'](a);if(Array['isArray'](b)){for(const d of b)if(d['transferId'])this['_transferHistory']['set'](d['transferId'],d);for(const e of b){const f=e['transferId']?.['match'](/_(\d+)$/);if(f){const g=parseInt(f[0x1],0xa);if(g>this['_transferCounter'])this['_transferCounter']=g;}}}}}catch{}}async['_saveHistory'](){try{if(!this['_historyStore'])return;const a=Array['from'](this['_transferHistory']['values']());await this['_historyStore']['put'](BridgeClient['HISTORY_DB_KEY'],JSON['stringify'](a));}catch{}}async['_recordTransfer'](a){this['_transferCounter']+=0x1;const b='br_'+Date['now']()+'_'+this['_transferCounter'],c={'transferId':b,'direction':a['direction'],'token':a['token'],'amount':a['amount']['toString'](),'recipientEth':a['recipientEth'],'recipientWow':a['recipientWow'],'intermediateEthAccount':a['intermediateEthAccount'],'withdrawToProvided':a['withdrawToProvided'],'step':'init','status':'pending','createdAt':Date['now'](),'updatedAt':Date['now']()};return this['_transferHistory']['set'](b,c),await this['_saveHistory'](),b;}async['_updateTransfer'](a,b){const c=this['_transferHistory']['get'](a);if(!c)return;Object['assign'](c,b,{'updatedAt':Date['now']()}),await this['_saveHistory']();}};function sleep(a){return new Promise(b=>setTimeout(b,a));}function loadDefaultConfig(){return MAINNET_BRIDGE_CONFIG;}function hexToBytes(a){const b=a['startsWith']('0x')?a['slice'](0x2):a,c=new Uint8Array(b['length']/0x2);for(let d=0x0;d<c['length'];d++)c[d]=parseInt(b['slice'](d*0x2,d*0x2+0x2),0x10);return c;}export{TransferStatus as $,TOKENS_CLAIMED_TOPIC as A,MAINNET_BRIDGE_CONFIG as B,buildClaimMessage as C,depositEth as D,depositErc20 as E,encodeBridgeERC20V2 as F,findEvmChainConfigByBridgeChainId as G,MAINNET_COMMITTEE_PUBKEYS as H,encodeBridgeETH as I,verifyCommitteeConsistency as J,findToken as K,encodeBridgeETHV2 as L,TOKENS_DEPOSITED_V2_TOPIC as M,encodeApprove as N,depositFromEth as O,encodeBridgeERC20 as P,BridgeVersion as Q,encodeTokenTransferPayloadV2 as R,depositFromWow as S,claimOnEthBySeq as T,MAINNET_COMMITTEE_WEIGHTS as U,MAINNET_COMMITTEE_MEMBER_ADDRESSES as V,findEvmChainConfig as W,BridgeErrorCode as X,BridgeChainId as Y,BridgeTokenId as Z,waitForEthTx as _,BridgeTransferStatus as a,claimOnWow as b,parseEthClaimEvent as c,queryEthBalance as d,isEvmChain as et,queryEthTxConfirmations as f,queryWowTx as g,queryWowToEvmTransferStatus as h,BridgeTransferDirection as i,TOKENS_DEPOSITED_TOPIC as j,ERC20_TRANSFER_TOPIC as k,parseEthDepositEvent as l,queryEvmToWowTransferStatus as m,BridgeNodeClient as n,BridgeTransferStep as o,queryEthTxReceipt as p,findTokenBySymbol as q,BRIDGE_STEP_DESCRIPTIONS as r,makeBridgeTransferState as s,BridgeClient as t,isWowChain as tt,queryErc20Balance as u,waitForWowTx as v,claimOnEth as w,queryWowClaimStatus as x,WowClaimStatus as y,encodeTransferBridgedTokensWithSignatures as z};
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "author": "wowok <build@wowok.net>",
4
4
  "description": "Wowok Blockchain TypeScript API",
5
5
  "homepage": "https://wowok.net",
6
- "version": "2.3.7",
6
+ "version": "2.3.8",
7
7
  "license": "Apache-2.0",
8
8
  "sideEffects": false,
9
9
  "files": [
@@ -164,9 +164,6 @@
164
164
  "./w/call/repository": {
165
165
  "import": "./dist/esm/w/call/repository.mjs"
166
166
  },
167
- "./w/call/bridge": {
168
- "import": "./dist/esm/w/call/bridge.mjs"
169
- },
170
167
  "./w/common": {
171
168
  "import": "./dist/esm/w/common.mjs"
172
169
  },
@@ -1 +0,0 @@
1
- import{a as a0a,c as a0b,l as a0c,s as a0d}from'./sui-types-CuBKFvrd.mjs';import{o as a0e,s as a0f,u as a0g}from'./bcs-DDXHXJXy.mjs';import{E as a0h,T as a0i,_ as a0j,b as a0k,m as a0l,p as a0m,v as a0n,w as a0o,x as a0p}from'./utils-IlS3fpdQ.mjs';import{fromBase58,fromBase64,fromHex,isSerializedBcs,toBase58,toBase64,toHex}from'@mysten/bcs';import{blake2b}from'@noble/hashes/blake2.js';import{chunk}from'@mysten/utils';import{array,bigint,boolean,check,integer,is,lazy,literal,nullable,nullish,number,object,optional,parse,picklist,pipe,record,string,transform,tuple,union,unknown}from'valibot';function safeEnum(a){return union(Object['keys'](a)['map'](b=>withKind(b,object({[b]:a[b]}))));}function withKind(a,b){return pipe(object({...b['entries'],'$kind':optional(literal(a))}),transform(c=>({...c,'$kind':a})));}const WowAddress=pipe(string(),transform(a=>a0b(a)),check(a0a)),ObjectID=WowAddress,BCSBytes=string(),JsonU64=pipe(union([string(),pipe(number(),integer())]),check(a=>{try{return BigInt(a),BigInt(a)>=0x0&&BigInt(a)<=0xffffffffffffffffn;}catch{return![];}},'Invalid\x20u64')),U32=pipe(number(),integer(),check(a=>a>=0x0&&a<0x2**0x20,'Invalid\x20u32')),ObjectRefSchema=object({'objectId':WowAddress,'version':JsonU64,'digest':string()}),ArgumentSchema=union([withKind('GasCoin',object({'GasCoin':literal(!![])})),withKind('Input',object({'Input':pipe(number(),integer()),'type':optional(union([literal('pure'),literal('object'),literal('withdrawal')]))})),withKind('Result',object({'Result':pipe(number(),integer())})),withKind('NestedResult',object({'NestedResult':tuple([pipe(number(),integer()),pipe(number(),integer())])}))]),GasDataSchema=object({'budget':nullable(JsonU64),'price':nullable(JsonU64),'owner':nullable(WowAddress),'payment':nullable(array(ObjectRefSchema))});object({'address':string(),'module':string(),'name':string(),'typeParams':array(string())});const OpenSignatureBodySchema=union([object({'$kind':literal('address')}),object({'$kind':literal('bool')}),object({'$kind':literal('u8')}),object({'$kind':literal('u16')}),object({'$kind':literal('u32')}),object({'$kind':literal('u64')}),object({'$kind':literal('u128')}),object({'$kind':literal('u256')}),object({'$kind':literal('unknown')}),object({'$kind':literal('vector'),'vector':lazy(()=>OpenSignatureBodySchema)}),object({'$kind':literal('datatype'),'datatype':object({'typeName':string(),'typeParameters':array(lazy(()=>OpenSignatureBodySchema))})}),object({'$kind':literal('typeParameter'),'index':pipe(number(),integer())})]),OpenSignatureSchema=object({'reference':nullable(union([literal('mutable'),literal('immutable'),literal('unknown')])),'body':OpenSignatureBodySchema}),ProgrammableMoveCallSchema=object({'package':ObjectID,'module':string(),'function':string(),'typeArguments':array(string()),'arguments':array(ArgumentSchema),'_argumentTypes':optional(nullable(array(OpenSignatureSchema)))}),$Intent$1=object({'name':string(),'inputs':record(string(),union([ArgumentSchema,array(ArgumentSchema)])),'data':record(string(),unknown())}),CommandSchema=safeEnum({'MoveCall':ProgrammableMoveCallSchema,'TransferObjects':object({'objects':array(ArgumentSchema),'address':ArgumentSchema}),'SplitCoins':object({'coin':ArgumentSchema,'amounts':array(ArgumentSchema)}),'MergeCoins':object({'destination':ArgumentSchema,'sources':array(ArgumentSchema)}),'Publish':object({'modules':array(BCSBytes),'dependencies':array(ObjectID)}),'MakeMoveVec':object({'type':nullable(string()),'elements':array(ArgumentSchema)}),'Upgrade':object({'modules':array(BCSBytes),'dependencies':array(ObjectID),'package':ObjectID,'ticket':ArgumentSchema}),'$Intent':$Intent$1}),ObjectArgSchema=safeEnum({'ImmOrOwnedObject':ObjectRefSchema,'SharedObject':object({'objectId':ObjectID,'initialSharedVersion':JsonU64,'mutable':boolean()}),'Receiving':ObjectRefSchema}),FundsWithdrawalArgSchema=object({'reservation':safeEnum({'MaxAmountU64':JsonU64}),'typeArg':safeEnum({'Balance':string()}),'withdrawFrom':safeEnum({'Sender':literal(!![]),'Sponsor':literal(!![])})}),CallArgSchema=safeEnum({'Object':ObjectArgSchema,'Pure':object({'bytes':BCSBytes}),'UnresolvedPure':object({'value':unknown()}),'UnresolvedObject':object({'objectId':ObjectID,'version':optional(nullable(JsonU64)),'digest':optional(nullable(string())),'initialSharedVersion':optional(nullable(JsonU64)),'mutable':optional(nullable(boolean()))}),'FundsWithdrawal':FundsWithdrawalArgSchema}),NormalizedCallArg$1=safeEnum({'Object':ObjectArgSchema,'Pure':object({'bytes':BCSBytes})}),ValidDuringSchema=object({'minEpoch':nullable(JsonU64),'maxEpoch':nullable(JsonU64),'minTimestamp':nullable(JsonU64),'maxTimestamp':nullable(JsonU64),'chain':string(),'nonce':U32}),TransactionExpiration$2=safeEnum({'None':literal(!![]),'Epoch':JsonU64,'ValidDuring':ValidDuringSchema}),TransactionDataSchema=object({'version':literal(0x2),'sender':nullish(WowAddress),'expiration':nullish(TransactionExpiration$2),'gasData':GasDataSchema,'inputs':array(CallArgSchema),'commands':array(CommandSchema)}),ObjectRef=object({'digest':string(),'objectId':string(),'version':union([pipe(number(),integer()),string(),bigint()])}),NormalizedCallArg=safeEnum({'Object':safeEnum({'ImmOrOwned':ObjectRef,'Shared':object({'objectId':ObjectID,'initialSharedVersion':JsonU64,'mutable':boolean()}),'Receiving':ObjectRef}),'Pure':array(pipe(number(),integer()))}),TransactionInput=union([object({'kind':literal('Input'),'index':pipe(number(),integer()),'value':unknown(),'type':optional(literal('object'))}),object({'kind':literal('Input'),'index':pipe(number(),integer()),'value':unknown(),'type':literal('pure')})]),TransactionExpiration$1=union([object({'Epoch':pipe(number(),integer())}),object({'None':nullable(literal(!![]))})]),StringEncodedBigint=pipe(union([number(),string(),bigint()]),check(a=>{if(!['string','number','bigint']['includes'](typeof a))return![];try{return BigInt(a),!![];}catch{return![];}})),TypeTag=union([object({'bool':nullable(literal(!![]))}),object({'u8':nullable(literal(!![]))}),object({'u64':nullable(literal(!![]))}),object({'u128':nullable(literal(!![]))}),object({'address':nullable(literal(!![]))}),object({'signer':nullable(literal(!![]))}),object({'vector':lazy(()=>TypeTag)}),object({'struct':lazy(()=>StructTag)}),object({'u16':nullable(literal(!![]))}),object({'u32':nullable(literal(!![]))}),object({'u256':nullable(literal(!![]))})]),StructTag=object({'address':string(),'module':string(),'name':string(),'typeParams':array(TypeTag)}),GasConfig=object({'budget':optional(StringEncodedBigint),'price':optional(StringEncodedBigint),'payment':optional(array(ObjectRef)),'owner':optional(string())}),TransactionArgument=union([...[TransactionInput,object({'kind':literal('GasCoin')}),object({'kind':literal('Result'),'index':pipe(number(),integer())}),object({'kind':literal('NestedResult'),'index':pipe(number(),integer()),'resultIndex':pipe(number(),integer())})]]),MoveCallTransaction=object({'kind':literal('MoveCall'),'target':pipe(string(),check(a=>a['split']('::')['length']===0x3)),'typeArguments':array(string()),'arguments':array(TransactionArgument)}),TransferObjectsTransaction=object({'kind':literal('TransferObjects'),'objects':array(TransactionArgument),'address':TransactionArgument}),SplitCoinsTransaction=object({'kind':literal('SplitCoins'),'coin':TransactionArgument,'amounts':array(TransactionArgument)}),MergeCoinsTransaction=object({'kind':literal('MergeCoins'),'destination':TransactionArgument,'sources':array(TransactionArgument)}),MakeMoveVecTransaction=object({'kind':literal('MakeMoveVec'),'type':union([object({'Some':TypeTag}),object({'None':nullable(literal(!![]))})]),'objects':array(TransactionArgument)}),TransactionType=union([...[MoveCallTransaction,TransferObjectsTransaction,SplitCoinsTransaction,MergeCoinsTransaction,object({'kind':literal('Publish'),'modules':array(array(pipe(number(),integer()))),'dependencies':array(string())}),object({'kind':literal('Upgrade'),'modules':array(array(pipe(number(),integer()))),'dependencies':array(string()),'packageId':string(),'ticket':TransactionArgument}),MakeMoveVecTransaction]]);object({'version':literal(0x1),'sender':optional(string()),'expiration':nullish(TransactionExpiration$1),'gasConfig':GasConfig,'inputs':array(TransactionInput),'transactions':array(TransactionType)});function serializeV1TransactionData(a){const b=a['inputs']['map']((c,d)=>{if(c['Object'])return{'kind':'Input','index':d,'value':{'Object':c['Object']['ImmOrOwnedObject']?{'ImmOrOwned':c['Object']['ImmOrOwnedObject']}:c['Object']['Receiving']?{'Receiving':{'digest':c['Object']['Receiving']['digest'],'version':c['Object']['Receiving']['version'],'objectId':c['Object']['Receiving']['objectId']}}:{'Shared':{'mutable':c['Object']['SharedObject']['mutable'],'initialSharedVersion':c['Object']['SharedObject']['initialSharedVersion'],'objectId':c['Object']['SharedObject']['objectId']}}},'type':'object'};if(c['Pure'])return{'kind':'Input','index':d,'value':{'Pure':Array['from'](fromBase64(c['Pure']['bytes']))},'type':'pure'};if(c['UnresolvedPure'])return{'kind':'Input','type':'pure','index':d,'value':c['UnresolvedPure']['value']};if(c['UnresolvedObject'])return{'kind':'Input','type':'object','index':d,'value':c['UnresolvedObject']['objectId']};throw new Error('Invalid\x20input');});return{'version':0x1,'sender':a['sender']??void 0x0,'expiration':a['expiration']?.['$kind']==='Epoch'?{'Epoch':Number(a['expiration']['Epoch'])}:a['expiration']?{'None':!![]}:null,'gasConfig':{'owner':a['gasData']['owner']??void 0x0,'budget':a['gasData']['budget']??void 0x0,'price':a['gasData']['price']??void 0x0,'payment':a['gasData']['payment']??void 0x0},'inputs':b,'transactions':a['commands']['map'](c=>{if(c['MakeMoveVec'])return{'kind':'MakeMoveVec','type':c['MakeMoveVec']['type']===null?{'None':!![]}:{'Some':a0g['parseFromStr'](c['MakeMoveVec']['type'])},'objects':c['MakeMoveVec']['elements']['map'](d=>convertTransactionArgument(d,b))};if(c['MergeCoins'])return{'kind':'MergeCoins','destination':convertTransactionArgument(c['MergeCoins']['destination'],b),'sources':c['MergeCoins']['sources']['map'](d=>convertTransactionArgument(d,b))};if(c['MoveCall'])return{'kind':'MoveCall','target':c['MoveCall']['package']+'::'+c['MoveCall']['module']+'::'+c['MoveCall']['function'],'typeArguments':c['MoveCall']['typeArguments'],'arguments':c['MoveCall']['arguments']['map'](d=>convertTransactionArgument(d,b))};if(c['Publish'])return{'kind':'Publish','modules':c['Publish']['modules']['map'](d=>Array['from'](fromBase64(d))),'dependencies':c['Publish']['dependencies']};if(c['SplitCoins'])return{'kind':'SplitCoins','coin':convertTransactionArgument(c['SplitCoins']['coin'],b),'amounts':c['SplitCoins']['amounts']['map'](d=>convertTransactionArgument(d,b))};if(c['TransferObjects'])return{'kind':'TransferObjects','objects':c['TransferObjects']['objects']['map'](d=>convertTransactionArgument(d,b)),'address':convertTransactionArgument(c['TransferObjects']['address'],b)};if(c['Upgrade'])return{'kind':'Upgrade','modules':c['Upgrade']['modules']['map'](d=>Array['from'](fromBase64(d))),'dependencies':c['Upgrade']['dependencies'],'packageId':c['Upgrade']['package'],'ticket':convertTransactionArgument(c['Upgrade']['ticket'],b)};throw new Error('Unknown\x20transaction\x20'+Object['keys'](c));})};}function convertTransactionArgument(a,b){if(a['$kind']==='GasCoin')return{'kind':'GasCoin'};if(a['$kind']==='Result')return{'kind':'Result','index':a['Result']};if(a['$kind']==='NestedResult')return{'kind':'NestedResult','index':a['NestedResult'][0x0],'resultIndex':a['NestedResult'][0x1]};if(a['$kind']==='Input')return b[a['Input']];throw new Error('Invalid\x20argument\x20'+Object['keys'](a));}function transactionDataFromV1(a){return parse(TransactionDataSchema,{'version':0x2,'sender':a['sender']??null,'expiration':a['expiration']?'Epoch'in a['expiration']?{'Epoch':a['expiration']['Epoch']}:{'None':!![]}:null,'gasData':{'owner':a['gasConfig']['owner']??null,'budget':a['gasConfig']['budget']?.['toString']()??null,'price':a['gasConfig']['price']?.['toString']()??null,'payment':a['gasConfig']['payment']?.['map'](b=>({'digest':b['digest'],'objectId':b['objectId'],'version':b['version']['toString']()}))??null},'inputs':a['inputs']['map'](b=>{if(b['kind']==='Input'){if(is(NormalizedCallArg,b['value'])){const c=parse(NormalizedCallArg,b['value']);if(c['Object']){if(c['Object']['ImmOrOwned'])return{'Object':{'ImmOrOwnedObject':{'objectId':c['Object']['ImmOrOwned']['objectId'],'version':String(c['Object']['ImmOrOwned']['version']),'digest':c['Object']['ImmOrOwned']['digest']}}};if(c['Object']['Shared'])return{'Object':{'SharedObject':{'mutable':c['Object']['Shared']['mutable']??null,'initialSharedVersion':c['Object']['Shared']['initialSharedVersion'],'objectId':c['Object']['Shared']['objectId']}}};if(c['Object']['Receiving'])return{'Object':{'Receiving':{'digest':c['Object']['Receiving']['digest'],'version':String(c['Object']['Receiving']['version']),'objectId':c['Object']['Receiving']['objectId']}}};throw new Error('Invalid\x20object\x20input');}return{'Pure':{'bytes':toBase64(new Uint8Array(c['Pure']))}};}if(b['type']==='object')return{'UnresolvedObject':{'objectId':b['value']}};return{'UnresolvedPure':{'value':b['value']}};}throw new Error('Invalid\x20input');}),'commands':a['transactions']['map'](b=>{switch(b['kind']){case'MakeMoveVec':return{'MakeMoveVec':{'type':'Some'in b['type']?a0g['tagToString'](b['type']['Some']):null,'elements':b['objects']['map'](c=>parseV1TransactionArgument(c))}};case'MergeCoins':return{'MergeCoins':{'destination':parseV1TransactionArgument(b['destination']),'sources':b['sources']['map'](c=>parseV1TransactionArgument(c))}};case'MoveCall':{const [c,d,e]=b['target']['split']('::');return{'MoveCall':{'package':c,'module':d,'function':e,'typeArguments':b['typeArguments'],'arguments':b['arguments']['map'](f=>parseV1TransactionArgument(f))}};}case'Publish':return{'Publish':{'modules':b['modules']['map'](f=>toBase64(Uint8Array['from'](f))),'dependencies':b['dependencies']}};case'SplitCoins':return{'SplitCoins':{'coin':parseV1TransactionArgument(b['coin']),'amounts':b['amounts']['map'](f=>parseV1TransactionArgument(f))}};case'TransferObjects':return{'TransferObjects':{'objects':b['objects']['map'](f=>parseV1TransactionArgument(f)),'address':parseV1TransactionArgument(b['address'])}};case'Upgrade':return{'Upgrade':{'modules':b['modules']['map'](f=>toBase64(Uint8Array['from'](f))),'dependencies':b['dependencies'],'package':b['packageId'],'ticket':parseV1TransactionArgument(b['ticket'])}};}throw new Error('Unknown\x20transaction\x20'+Object['keys'](b));})});}function parseV1TransactionArgument(a){switch(a['kind']){case'GasCoin':return{'GasCoin':!![]};case'Result':return{'Result':a['index']};case'NestedResult':return{'NestedResult':[a['index'],a['resultIndex']]};case'Input':return{'Input':a['index']};}}function hashTypedData(a,b){const c=Array['from'](a+'::')['map'](f=>f['charCodeAt'](0x0)),d=new Uint8Array(c['length']+b['length']);return d['set'](c),d['set'](b,c['length']),blake2b(d,{'dkLen':0x20});}function getIdFromCallArg(a){if(typeof a==='string')return a0b(a);if(a['Object']){if(a['Object']['ImmOrOwnedObject'])return a0b(a['Object']['ImmOrOwnedObject']['objectId']);if(a['Object']['Receiving'])return a0b(a['Object']['Receiving']['objectId']);return a0b(a['Object']['SharedObject']['objectId']);}if(a['UnresolvedObject'])return a0b(a['UnresolvedObject']['objectId']);}function isArgument(a){return is(ArgumentSchema,a);}function remapCommandArguments(a,b,c){const d=e=>{switch(e['$kind']){case'Input':{const f=b['get'](e['Input']);if(f===void 0x0)throw new Error('Input\x20'+e['Input']+'\x20not\x20found\x20in\x20input\x20mapping');return{...e,'Input':f};}case'Result':{const g=c['get'](e['Result']);if(g!==void 0x0)return{...e,'Result':g};return e;}case'NestedResult':{const h=c['get'](e['NestedResult'][0x0]);if(h!==void 0x0)return{...e,'NestedResult':[h,e['NestedResult'][0x1]]};return e;}default:return e;}};switch(a['$kind']){case'MoveCall':a['MoveCall']['arguments']=a['MoveCall']['arguments']['map'](d);break;case'TransferObjects':a['TransferObjects']['objects']=a['TransferObjects']['objects']['map'](d),a['TransferObjects']['address']=d(a['TransferObjects']['address']);break;case'SplitCoins':a['SplitCoins']['coin']=d(a['SplitCoins']['coin']),a['SplitCoins']['amounts']=a['SplitCoins']['amounts']['map'](d);break;case'MergeCoins':a['MergeCoins']['destination']=d(a['MergeCoins']['destination']),a['MergeCoins']['sources']=a['MergeCoins']['sources']['map'](d);break;case'MakeMoveVec':a['MakeMoveVec']['elements']=a['MakeMoveVec']['elements']['map'](d);break;case'Upgrade':a['Upgrade']['ticket']=d(a['Upgrade']['ticket']);break;case'$Intent':{const e=a['$Intent']['inputs'];a['$Intent']['inputs']={};for(const [f,g]of Object['entries'](e))a['$Intent']['inputs'][f]=Array['isArray'](g)?g['map'](d):d(g);break;}case'Publish':break;}}function prepareWowAddress(a){return a0b(a)['replace']('0x','');}var TransactionDataBuilder=class TransactionDataBuilder{static['fromKindBytes'](a){const b=a0e['TransactionKind']['parse'](a)['ProgrammableTransaction'];if(!b)throw new Error('Unable\x20to\x20deserialize\x20from\x20bytes.');return TransactionDataBuilder['restore']({'version':0x2,'sender':null,'expiration':null,'gasData':{'budget':null,'owner':null,'payment':null,'price':null},'inputs':b['inputs'],'commands':b['commands']});}static['fromBytes'](a){const b=a0e['TransactionData']['parse'](a)?.['V1'],c=b['kind']['ProgrammableTransaction'];if(!b||!c)throw new Error('Unable\x20to\x20deserialize\x20from\x20bytes.');return TransactionDataBuilder['restore']({'version':0x2,'sender':b['sender'],'expiration':b['expiration'],'gasData':b['gasData'],'inputs':c['inputs'],'commands':c['commands']});}static['restore'](a){if(a['version']===0x2)return new TransactionDataBuilder(parse(TransactionDataSchema,a));else return new TransactionDataBuilder(parse(TransactionDataSchema,transactionDataFromV1(a)));}static['getDigestFromBytes'](a){return toBase58(hashTypedData('TransactionData',a));}constructor(a){this['version']=0x2,this['sender']=a?.['sender']??null,this['expiration']=a?.['expiration']??null,this['inputs']=a?.['inputs']??[],this['commands']=a?.['commands']??[],this['gasData']=a?.['gasData']??{'budget':null,'price':null,'owner':null,'payment':null};}['build']({maxSizeBytes:maxSizeBytes=Infinity,overrides:a,onlyTransactionKind:b}={}){const c=this['inputs'],d=this['commands'],e={'ProgrammableTransaction':{'inputs':c,'commands':d}};if(b)return a0e['TransactionKind']['serialize'](e,{'maxSize':maxSizeBytes})['toBytes']();const f=a?.['expiration']??this['expiration'],g=a?.['sender']??this['sender'],h={...this['gasData'],...a?.['gasData']};if(!g)throw new Error('Missing\x20transaction\x20sender');if(!h['budget'])throw new Error('Missing\x20gas\x20budget');if(!h['payment'])throw new Error('Missing\x20gas\x20payment');if(!h['price'])throw new Error('Missing\x20gas\x20price');const i={'sender':prepareWowAddress(g),'expiration':f?f:{'None':!![]},'gasData':{'payment':h['payment'],'owner':prepareWowAddress(this['gasData']['owner']??g),'price':BigInt(h['price']),'budget':BigInt(h['budget'])},'kind':{'ProgrammableTransaction':{'inputs':c,'commands':d}}};return a0e['TransactionData']['serialize']({'V1':i},{'maxSize':maxSizeBytes})['toBytes']();}['addInput'](a,b){const c=this['inputs']['length'];return this['inputs']['push'](b),{'Input':c,'type':a,'$kind':'Input'};}['getInputUses'](a,b){this['mapArguments']((c,d)=>{if(c['$kind']==='Input'&&c['Input']===a)b(c,d);return c;});}['mapCommandArguments'](a,b){const c=this['commands'][a];switch(c['$kind']){case'MoveCall':c['MoveCall']['arguments']=c['MoveCall']['arguments']['map'](e=>b(e,c,a));break;case'TransferObjects':c['TransferObjects']['objects']=c['TransferObjects']['objects']['map'](e=>b(e,c,a)),c['TransferObjects']['address']=b(c['TransferObjects']['address'],c,a);break;case'SplitCoins':c['SplitCoins']['coin']=b(c['SplitCoins']['coin'],c,a),c['SplitCoins']['amounts']=c['SplitCoins']['amounts']['map'](e=>b(e,c,a));break;case'MergeCoins':c['MergeCoins']['destination']=b(c['MergeCoins']['destination'],c,a),c['MergeCoins']['sources']=c['MergeCoins']['sources']['map'](e=>b(e,c,a));break;case'MakeMoveVec':c['MakeMoveVec']['elements']=c['MakeMoveVec']['elements']['map'](e=>b(e,c,a));break;case'Upgrade':c['Upgrade']['ticket']=b(c['Upgrade']['ticket'],c,a);break;case'$Intent':const d=c['$Intent']['inputs'];c['$Intent']['inputs']={};for(const [e,f]of Object['entries'](d))c['$Intent']['inputs'][e]=Array['isArray'](f)?f['map'](g=>b(g,c,a)):b(f,c,a);break;case'Publish':break;default:throw new Error('Unexpected\x20transaction\x20kind:\x20'+c['$kind']);}}['mapArguments'](a){for(const b of this['commands']['keys']())this['mapCommandArguments'](b,a);}['replaceCommand'](a,b,c=a){if(!Array['isArray'](b)){this['commands'][a]=b;return;}const d=b['length']-0x1;this['commands']['splice'](a,0x1,...structuredClone(b)),this['mapArguments']((e,f,g)=>{if(g<a+b['length'])return e;if(typeof c!=='number'){if(e['$kind']==='Result'&&e['Result']===a||e['$kind']==='NestedResult'&&e['NestedResult'][0x0]===a){if(!('NestedResult'in e)||e['NestedResult'][0x1]===0x0)return parse(ArgumentSchema,structuredClone(c));else throw new Error('Cannot\x20replace\x20command\x20'+a+'\x20with\x20a\x20specific\x20result\x20type:\x20NestedResult['+a+',\x20'+e['NestedResult'][0x1]+']\x20references\x20a\x20nested\x20element\x20that\x20cannot\x20be\x20mapped\x20to\x20the\x20replacement\x20result');}}switch(e['$kind']){case'Result':if(e['Result']===a&&typeof c==='number')e['Result']=c;if(e['Result']>a)e['Result']+=d;break;case'NestedResult':if(e['NestedResult'][0x0]===a&&typeof c==='number')return{'$kind':'NestedResult','NestedResult':[c,e['NestedResult'][0x1]]};if(e['NestedResult'][0x0]>a)e['NestedResult'][0x0]+=d;break;}return e;});}['replaceCommandWithTransaction'](a,b,c){if(c['$kind']!=='Result'&&c['$kind']!=='NestedResult')throw new Error('Result\x20must\x20be\x20of\x20kind\x20Result\x20or\x20NestedResult');this['insertTransaction'](a,b),this['replaceCommand'](a+b['commands']['length'],[],'Result'in c?{'NestedResult':[c['Result']+a,0x0]}:{'NestedResult':[c['NestedResult'][0x0]+a,c['NestedResult'][0x1]]});}['insertTransaction'](a,b){const c=new Map(),d=new Map();for(let g=0x0;g<b['inputs']['length'];g++){const h=b['inputs'][g],j=getIdFromCallArg(h);let k=-0x1;if(j!==void 0x0){k=this['inputs']['findIndex'](l=>getIdFromCallArg(l)===j);if(k!==-0x1&&this['inputs'][k]['Object']?.['SharedObject']&&h['Object']?.['SharedObject'])this['inputs'][k]['Object']['SharedObject']['mutable']=this['inputs'][k]['Object']['SharedObject']['mutable']||h['Object']['SharedObject']['mutable'];}if(k!==-0x1)c['set'](g,k);else{const l=this['inputs']['length'];this['inputs']['push'](h),c['set'](g,l);}}for(let m=0x0;m<b['commands']['length'];m++)d['set'](m,a+m);const e=[];for(let n=0x0;n<b['commands']['length'];n++){const o=structuredClone(b['commands'][n]);remapCommandArguments(o,c,d),e['push'](o);}this['commands']['splice'](a,0x0,...e);const f=e['length'];if(f>0x0)this['mapArguments']((p,q,r)=>{if(r>=a&&r<a+e['length'])return p;switch(p['$kind']){case'Result':if(p['Result']>=a)p['Result']+=f;break;case'NestedResult':if(p['NestedResult'][0x0]>=a)p['NestedResult'][0x0]+=f;break;}return p;});}['getDigest'](){const a=this['build']({'onlyTransactionKind':![]});return TransactionDataBuilder['getDigestFromBytes'](a);}['snapshot'](){return parse(TransactionDataSchema,this);}['shallowClone'](){return new TransactionDataBuilder({'version':this['version'],'sender':this['sender'],'expiration':this['expiration'],'gasData':{...this['gasData']},'inputs':[...this['inputs']],'commands':[...this['commands']]});}['applyResolvedData'](a){if(!this['sender'])this['sender']=a['sender']??null;if(!this['expiration'])this['expiration']=a['expiration']??null;if(!this['gasData']['budget'])this['gasData']['budget']=a['gasData']['budget'];if(!this['gasData']['owner'])this['gasData']['owner']=a['gasData']['owner']??null;if(!this['gasData']['payment'])this['gasData']['payment']=a['gasData']['payment'];if(!this['gasData']['price'])this['gasData']['price']=a['gasData']['price'];for(let b=0x0;b<this['inputs']['length'];b++){const c=this['inputs'][b],d=a['inputs'][b];switch(c['$kind']){case'UnresolvedPure':if(d['$kind']!=='Pure')throw new Error('Expected\x20input\x20at\x20index\x20'+b+'\x20to\x20resolve\x20to\x20a\x20Pure\x20argument,\x20but\x20got\x20'+JSON['stringify'](d));this['inputs'][b]=d;break;case'UnresolvedObject':if(d['$kind']!=='Object')throw new Error('Expected\x20input\x20at\x20index\x20'+b+'\x20to\x20resolve\x20to\x20an\x20Object\x20argument,\x20but\x20got\x20'+JSON['stringify'](d));if(d['Object']['$kind']==='ImmOrOwnedObject'||d['Object']['$kind']==='Receiving'){const e=c['UnresolvedObject'],f=d['Object']['ImmOrOwnedObject']??d['Object']['Receiving'];if(a0b(e['objectId'])!==a0b(f['objectId'])||e['version']!=null&&e['version']!==f['version']||e['digest']!=null&&e['digest']!==f['digest']||e['mutable']!=null||e['initialSharedVersion']!=null)throw new Error('Input\x20at\x20index\x20'+b+'\x20did\x20not\x20match\x20unresolved\x20object.\x20'+JSON['stringify'](e)+'\x20is\x20not\x20compatible\x20with\x20'+JSON['stringify'](f));}else{if(d['Object']['$kind']==='SharedObject'){const g=c['UnresolvedObject'],h=d['Object']['SharedObject'];if(a0b(g['objectId'])!==a0b(h['objectId'])||g['initialSharedVersion']!=null&&g['initialSharedVersion']!==h['initialSharedVersion']||g['mutable']!=null&&g['mutable']!==h['mutable']||g['version']!=null||g['digest']!=null)throw new Error('Input\x20at\x20index\x20'+b+'\x20did\x20not\x20match\x20unresolved\x20object.\x20'+JSON['stringify'](g)+'\x20is\x20not\x20compatible\x20with\x20'+JSON['stringify'](h));}else throw new Error('Input\x20at\x20index\x20'+b+'\x20resolved\x20to\x20an\x20unexpected\x20Object\x20kind:\x20'+JSON['stringify'](d['Object']));}this['inputs'][b]=d;break;}}}},WowClientError=class extends Error{},SimulationError=class extends WowClientError{constructor(a,b){super(a,{'cause':b?.['cause']}),this['executionError']=b?.['executionError'];}},ObjectError=class ObjectError extends WowClientError{constructor(a,b){super(b),this['code']=a;}static['fromResponse'](a,b){switch(a['code']){case'notExists':return new ObjectError(a['code'],'Object\x20'+a['object_id']+'\x20does\x20not\x20exist');case'dynamicFieldNotFound':return new ObjectError(a['code'],'Dynamic\x20field\x20not\x20found\x20for\x20object\x20'+a['parent_object_id']);case'deleted':return new ObjectError(a['code'],'Object\x20'+a['object_id']+'\x20has\x20been\x20deleted');case'displayError':return new ObjectError(a['code'],'Display\x20error:\x20'+a['error']);default:return new ObjectError(a['code'],'Unknown\x20error\x20while\x20loading\x20object'+(b?'\x20'+b:''));}}};const WOW_ACCUMULATOR_ROOT_OBJECT_ID=a0b('0xacc'),ACCUMULATOR_KEY_TYPE_TAG=a0g['parseFromStr']('0x2::accumulator::Key<0x2::balance::Balance<0x2::wow::WOW>>'),COIN_RESERVATION_MAGIC=new Uint8Array([0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac,0xac]);function isCoinReservationDigest(a){return fromBase58(a)['slice'](0xc,0x20)['every']((b,c)=>b===COIN_RESERVATION_MAGIC[c]);}function deriveReservationObjectId(a,b){const c=fromHex(a0h(WOW_ACCUMULATOR_ROOT_OBJECT_ID,ACCUMULATOR_KEY_TYPE_TAG,a0e['Address']['serialize'](a)['toBytes']())['slice'](0x2)),d=fromBase58(b);if(d['length']!==0x20)throw new Error('Invalid\x20chain\x20identifier\x20length:\x20expected\x2032\x20bytes,\x20got\x20'+d['length']);const e=new Uint8Array(0x20);for(let f=0x0;f<0x20;f++)e[f]=c[f]^d[f];return'0x'+toHex(e);}function createCoinReservationRef(a,b,c,d){const e=new Uint8Array(0x20),f=new DataView(e['buffer']);f['setBigUint64'](0x0,a,!![]);const g=Number(d);if(!Number['isSafeInteger'](g)||g<0x0||g>0xffffffff)throw new Error('Epoch\x20'+d+'\x20out\x20of\x20u32\x20range\x20for\x20coin\x20reservation\x20digest');return f['setUint32'](0x8,g,!![]),e['set'](COIN_RESERVATION_MAGIC,0xc),parse(ObjectRefSchema,{'objectId':deriveReservationObjectId(b,c),'version':'0','digest':toBase58(e)});}let UpgradePolicy=function(a){return a[a['COMPATIBLE']=0x0]='COMPATIBLE',a[a['ADDITIVE']=0x80]='ADDITIVE',a[a['DEP_ONLY']=0xc0]='DEP_ONLY',a;}({});const TransactionCommands={'MoveCall'(a){const [b,c='',d='']='target'in a?a['target']['split']('::'):[a['package'],a['module'],a['function']];return{'$kind':'MoveCall','MoveCall':{'package':b,'module':c,'function':d,'typeArguments':a['typeArguments']??[],'arguments':a['arguments']??[]}};},'TransferObjects'(a,b){return{'$kind':'TransferObjects','TransferObjects':{'objects':a['map'](c=>parse(ArgumentSchema,c)),'address':parse(ArgumentSchema,b)}};},'SplitCoins'(a,b){return{'$kind':'SplitCoins','SplitCoins':{'coin':parse(ArgumentSchema,a),'amounts':b['map'](c=>parse(ArgumentSchema,c))}};},'MergeCoins'(a,b){return{'$kind':'MergeCoins','MergeCoins':{'destination':parse(ArgumentSchema,a),'sources':b['map'](c=>parse(ArgumentSchema,c))}};},'Publish'({modules:a,dependencies:b}){return{'$kind':'Publish','Publish':{'modules':a['map'](c=>typeof c==='string'?c:toBase64(new Uint8Array(c))),'dependencies':b['map'](c=>a0c(c))}};},'Upgrade'({modules:a,dependencies:b,package:c,ticket:d}){return{'$kind':'Upgrade','Upgrade':{'modules':a['map'](e=>typeof e==='string'?e:toBase64(new Uint8Array(e))),'dependencies':b['map'](e=>a0c(e)),'package':c,'ticket':parse(ArgumentSchema,d)}};},'MakeMoveVec'({type:a,elements:b}){return{'$kind':'MakeMoveVec','MakeMoveVec':{'type':a??null,'elements':b['map'](c=>parse(ArgumentSchema,c))}};},'Intent'({name:a,inputs:inputs={},data:data={}}){return{'$kind':'$Intent','$Intent':{'name':a,'inputs':Object['fromEntries'](Object['entries'](inputs)['map'](([b,c])=>[b,Array['isArray'](c)?c['map'](d=>parse(ArgumentSchema,d)):parse(ArgumentSchema,c)])),'data':data}};}};function enumUnion(a){return union(Object['entries'](a)['map'](([b,c])=>object({[b]:c})));}const Argument=enumUnion({'GasCoin':literal(!![]),'Input':pipe(number(),integer()),'Result':pipe(number(),integer()),'NestedResult':tuple([pipe(number(),integer()),pipe(number(),integer())])}),GasData=object({'budget':nullable(JsonU64),'price':nullable(JsonU64),'owner':nullable(WowAddress),'payment':nullable(array(ObjectRefSchema))}),ProgrammableMoveCall=object({'package':ObjectID,'module':string(),'function':string(),'typeArguments':array(string()),'arguments':array(Argument)}),$Intent=object({'name':string(),'inputs':record(string(),union([Argument,array(Argument)])),'data':record(string(),unknown())}),Command=enumUnion({'MoveCall':ProgrammableMoveCall,'TransferObjects':object({'objects':array(Argument),'address':Argument}),'SplitCoins':object({'coin':Argument,'amounts':array(Argument)}),'MergeCoins':object({'destination':Argument,'sources':array(Argument)}),'Publish':object({'modules':array(BCSBytes),'dependencies':array(ObjectID)}),'MakeMoveVec':object({'type':nullable(string()),'elements':array(Argument)}),'Upgrade':object({'modules':array(BCSBytes),'dependencies':array(ObjectID),'package':ObjectID,'ticket':Argument}),'$Intent':$Intent}),CallArg=enumUnion({'Object':enumUnion({'ImmOrOwnedObject':ObjectRefSchema,'SharedObject':object({'objectId':ObjectID,'initialSharedVersion':JsonU64,'mutable':boolean()}),'Receiving':ObjectRefSchema}),'Pure':object({'bytes':BCSBytes}),'UnresolvedPure':object({'value':unknown()}),'UnresolvedObject':object({'objectId':ObjectID,'version':optional(nullable(JsonU64)),'digest':optional(nullable(string())),'initialSharedVersion':optional(nullable(JsonU64)),'mutable':optional(nullable(boolean()))}),'FundsWithdrawal':FundsWithdrawalArgSchema}),TransactionExpiration=enumUnion({'None':literal(!![]),'Epoch':JsonU64,'ValidDuring':ValidDuringSchema}),SerializedTransactionDataV2Schema=object({'version':literal(0x2),'sender':nullish(WowAddress),'expiration':nullish(TransactionExpiration),'gasData':GasData,'inputs':array(CallArg),'commands':array(Command),'digest':optional(nullable(string()))});function Pure(a){return{'$kind':'Pure','Pure':{'bytes':a instanceof Uint8Array?toBase64(a):a['toBase64']()}};}const Inputs={'Pure':Pure,'ObjectRef'({objectId:a,digest:b,version:c}){return{'$kind':'Object','Object':{'$kind':'ImmOrOwnedObject','ImmOrOwnedObject':{'digest':b,'version':c,'objectId':a0b(a)}}};},'SharedObjectRef'({objectId:a,mutable:b,initialSharedVersion:c}){return{'$kind':'Object','Object':{'$kind':'SharedObject','SharedObject':{'mutable':b,'initialSharedVersion':c,'objectId':a0b(a)}}};},'ReceivingRef'({objectId:a,digest:b,version:c}){return{'$kind':'Object','Object':{'$kind':'Receiving','Receiving':{'digest':b,'version':c,'objectId':a0b(a)}}};},'FundsWithdrawal'({reservation:a,typeArg:b,withdrawFrom:c}){return{'$kind':'FundsWithdrawal','FundsWithdrawal':{'reservation':a,'typeArg':b,'withdrawFrom':c}};}};function parseTypeName(a){const b=a['split']('::');if(b['length']!==0x3)throw new Error('Invalid\x20type\x20name\x20format:\x20'+a);return{'package':b[0x0],'module':b[0x1],'name':b[0x2]};}function isTxContext(a){if(a['body']['$kind']!=='datatype')return![];const {package:b,module:c,name:d}=parseTypeName(a['body']['datatype']['typeName']);return a0b(b)==='0x0000000000000000000000000000000000000000000000000000000000000002'&&c==='tx_context'&&d==='TxContext';}function getPureBcsSchema(a){switch(a['$kind']){case'address':return a0e['Address'];case'bool':return a0e['Bool'];case'u8':return a0e['U8'];case'u16':return a0e['U16'];case'u32':return a0e['U32'];case'u64':return a0e['U64'];case'u128':return a0e['U128'];case'u256':return a0e['U256'];case'vector':{if(a['vector']['$kind']==='u8')return a0e['byteVector']()['transform']({'input':c=>typeof c==='string'?new TextEncoder()['encode'](c):c,'output':c=>c});const b=getPureBcsSchema(a['vector']);return b?a0e['vector'](b):null;}case'datatype':{const {package:c,module:d,name:e}=parseTypeName(a['datatype']['typeName']),f=a0b(c);if(f==='0x0000000000000000000000000000000000000000000000000000000000000001'){if(d==='ascii'&&e==='String')return a0e['String'];if(d==='string'&&e==='String')return a0e['String'];if(d==='option'&&e==='Option'){const g=getPureBcsSchema(a['datatype']['typeParameters'][0x0]);return g?a0e['vector'](g):null;}}if(f==='0x0000000000000000000000000000000000000000000000000000000000000002'){if(d==='object'&&e==='ID')return a0e['Address'];}return null;}case'typeParameter':case'unknown':return null;}}function normalizedTypeToMoveTypeSignature(a){if(typeof a==='object'&&'Reference'in a)return{'reference':'immutable','body':normalizedTypeToMoveTypeSignatureBody(a['Reference'])};if(typeof a==='object'&&'MutableReference'in a)return{'reference':'mutable','body':normalizedTypeToMoveTypeSignatureBody(a['MutableReference'])};return{'reference':null,'body':normalizedTypeToMoveTypeSignatureBody(a)};}function normalizedTypeToMoveTypeSignatureBody(a){if(typeof a==='string')switch(a){case'Address':return{'$kind':'address'};case'Bool':return{'$kind':'bool'};case'U8':return{'$kind':'u8'};case'U16':return{'$kind':'u16'};case'U32':return{'$kind':'u32'};case'U64':return{'$kind':'u64'};case'U128':return{'$kind':'u128'};case'U256':return{'$kind':'u256'};default:throw new Error('Unexpected\x20type\x20'+a);}if('Vector'in a)return{'$kind':'vector','vector':normalizedTypeToMoveTypeSignatureBody(a['Vector'])};if('Struct'in a)return{'$kind':'datatype','datatype':{'typeName':a['Struct']['address']+'::'+a['Struct']['module']+'::'+a['Struct']['name'],'typeParameters':a['Struct']['typeArguments']['map'](normalizedTypeToMoveTypeSignatureBody)}};if('TypeParameter'in a)return{'$kind':'typeParameter','index':a['TypeParameter']};throw new Error('Unexpected\x20type\x20'+JSON['stringify'](a));}const MAX_OBJECTS_PER_FETCH=0x32,GAS_SAFE_OVERHEAD=0x3e8n,MAX_GAS=0xba43b7400;function computeGasBudget(a,b=0x1n){const c=GAS_SAFE_OVERHEAD*BigInt(b),d=BigInt(a['computationCost'])+c,e=d+BigInt(a['storageCost'])-BigInt(a['storageRebate']);return String(e>d?e:d);}function getClient$1(a){if(!a['client'])throw new Error('No\x20wow\x20client\x20passed\x20to\x20Transaction#build,\x20but\x20transaction\x20data\x20was\x20not\x20sufficient\x20to\x20build\x20offline.');return a['client'];}async function coreClientResolveTransactionPlugin(a,b,c){const d=getClient$1(b),e=!b['onlyTransactionKind']&&!a['gasData']['price'],f=!b['onlyTransactionKind']&&!a['gasData']['payment'],g=a['gasData']['owner']??a['sender'];let h=![],i=0x0n;a['mapArguments'](r=>{if(r['$kind']==='GasCoin')h=!![];return r;});const j=g?a0b(g):null;for(const r of a['inputs']){if(r['$kind']!=='FundsWithdrawal'||!j)continue;if(a0d(r['FundsWithdrawal']['typeArg']['Balance'])!==a0i)continue;const s=r['FundsWithdrawal']['withdrawFrom']['Sender']?a['sender']:g;if(s&&a0b(s)===j&&r['FundsWithdrawal']['reservation']['$kind']==='MaxAmountU64')i+=BigInt(r['FundsWithdrawal']['reservation']['MaxAmountU64']);}const k=!b['onlyTransactionKind']&&!a['expiration']&&!a['gasData']['budget'],l=e||f&&h||k,m=f&&h||k,[,n,o,p,q]=await Promise['all']([normalizeInputs(a,d),l?d['core']['getCurrentSystemState']():null,f&&g?d['core']['getBalance']({'owner':g}):null,f&&g?d['core']['listCoins']({'owner':g,'coinType':a0i}):null,m?d['core']['getChainIdentifier']():null]);await resolveObjectReferences(a,d);if(!b['onlyTransactionKind']){const t=n?.['systemState']??null,u=q?.['chainIdentifier']??null;if(t&&!a['gasData']['price'])a['gasData']['price']=t['referenceGasPrice'];await setGasBudget(a,d,k&&t&&u?buildValidDuringExpiration(t,u):void 0x0);if(f){if(!o||!p)throw new Error('Could\x20not\x20resolve\x20gas\x20payment:\x20a\x20gas\x20owner\x20or\x20sender\x20must\x20be\x20set\x20to\x20fetch\x20balance\x20and\x20coins.');setGasPayment({'transactionData':a,'balance':o,'coins':p,'usesGasCoin':h,'withdrawals':i,'gasPayer':g,'chainIdentifier':u,'epoch':t?.['epoch']??null});}if(!a['expiration']&&a['gasData']['payment']?.['length']===0x0)await setExpiration(a,d,t,u);}return await c();}async function setGasBudget(a,b,c){if(a['gasData']['budget'])return;const d=await b['core']['simulateTransaction']({'transaction':a['build']({'overrides':{'gasData':{'budget':String(MAX_GAS),'payment':[]},...c&&{'expiration':c}}}),'include':{'effects':!![]}});if(d['$kind']==='FailedTransaction'){const e=d['FailedTransaction']['status']['error']??void 0x0;throw new SimulationError('Transaction\x20resolution\x20failed:\x20'+(e?.['message']??'Unknown\x20error'),{'cause':d,'executionError':e});}a['gasData']['budget']=computeGasBudget(d['Transaction']['effects']['gasUsed'],a['gasData']['price']?String(a['gasData']['price']):void 0x0);}function setGasPayment({transactionData:a,balance:b,coins:c,usesGasCoin:d,withdrawals:e,gasPayer:f,chainIdentifier:g,epoch:h}){const i=BigInt(a['gasData']['budget']),j=BigInt(b['balance']['addressBalance']);if(i===0x0n||!d&&j>=i+e){a['gasData']['payment']=[];return;}const k=c['objects']['filter'](n=>{return!a['inputs']['find'](o=>{if(o['Object']?.['ImmOrOwnedObject'])return n['objectId']===o['Object']['ImmOrOwnedObject']['objectId'];return![];});}),l=k['map'](n=>({'objectId':n['objectId'],'digest':n['digest'],'version':n['version']})),m=j-e;if(d&&m>0x0n&&g&&h)a['gasData']['payment']=[createCoinReservationRef(m,f,g,h),...l];else{if(!k['length'])throw new Error('No\x20valid\x20gas\x20coins\x20found\x20for\x20the\x20transaction.');else a['gasData']['payment']=l;}}async function setExpiration(a,b,c,d=null){const [e,f]=await Promise['all']([d??b['core']['getChainIdentifier']()['then'](g=>g['chainIdentifier']),c??b['core']['getCurrentSystemState']()['then'](g=>g['systemState'])]);a['expiration']=buildValidDuringExpiration(f,e);}function buildValidDuringExpiration(a,b){const c=BigInt(a['epoch']);return{'$kind':'ValidDuring','ValidDuring':{'minEpoch':String(c),'maxEpoch':String(c+0x1n),'minTimestamp':null,'maxTimestamp':null,'chain':b,'nonce':Math['random']()*0x100000000>>>0x0}};}async function resolveObjectReferences(a,b){const c=a['inputs']['filter'](k=>{return k['UnresolvedObject']&&!(k['UnresolvedObject']['version']||k['UnresolvedObject']?.['initialSharedVersion']);}),d=[...new Set(c['map'](k=>a0c(k['UnresolvedObject']['objectId'])))],e=d['length']?chunk(d,MAX_OBJECTS_PER_FETCH):[],f=(await Promise['all'](e['map'](k=>b['core']['getObjects']({'objectIds':k}))))['flatMap'](k=>k['objects']),g=new Map(d['map']((k,l)=>{return[k,f[l]];})),h=Array['from'](g)['filter'](([k,l])=>l instanceof Error)['map'](([k,l])=>l['message']);if(h['length'])throw new Error('The\x20following\x20input\x20objects\x20are\x20invalid:\x20'+h['join'](',\x20'));const i=f['map'](k=>{if(k instanceof Error)throw new Error('Failed\x20to\x20fetch\x20object:\x20'+k['message']);const l=k['owner'],m=l&&typeof l==='object'?l['$kind']==='Shared'?l['Shared']['initialSharedVersion']:l['$kind']==='ConsensusAddressOwner'?l['ConsensusAddressOwner']['startVersion']:null:null;return{'objectId':k['objectId'],'digest':k['digest'],'version':k['version'],'initialSharedVersion':m};}),j=new Map(d['map']((k,l)=>{return[k,i[l]];}));for(const [k,l]of a['inputs']['entries']()){if(!l['UnresolvedObject'])continue;let m;const n=a0b(l['UnresolvedObject']['objectId']),o=j['get'](n);if(l['UnresolvedObject']['initialSharedVersion']??o?.['initialSharedVersion'])m=Inputs['SharedObjectRef']({'objectId':n,'initialSharedVersion':l['UnresolvedObject']['initialSharedVersion']||o?.['initialSharedVersion'],'mutable':l['UnresolvedObject']['mutable']||isUsedAsMutable(a,k)});else{if(isUsedAsReceiving(a,k))m=Inputs['ReceivingRef']({'objectId':n,'digest':l['UnresolvedObject']['digest']??o?.['digest'],'version':l['UnresolvedObject']['version']??o?.['version']});}a['inputs'][a['inputs']['indexOf'](l)]=m??Inputs['ObjectRef']({'objectId':n,'digest':l['UnresolvedObject']['digest']??o?.['digest'],'version':l['UnresolvedObject']['version']??o?.['version']});}}async function normalizeInputs(a,b){const {inputs:c,commands:d}=a,e=[],f=new Set();d['forEach'](h=>{if(h['MoveCall']){if(h['MoveCall']['_argumentTypes'])return;if(h['MoveCall']['arguments']['map'](i=>{if(i['$kind']==='Input')return a['inputs'][i['Input']];return null;})['some'](i=>i?.['UnresolvedPure']||i?.['UnresolvedObject']&&typeof i?.['UnresolvedObject']['mutable']!=='boolean')){const i=h['MoveCall']['package']+'::'+h['MoveCall']['module']+'::'+h['MoveCall']['function'];f['add'](i),e['push'](h['MoveCall']);}}});const g=new Map();if(f['size']>0x0)await Promise['all']([...f]['map'](async h=>{const [i,j,k]=h['split']('::'),{function:l}=await b['core']['getMoveFunction']({'packageId':i,'moduleName':j,'name':k});g['set'](h,l['parameters']);}));if(e['length'])await Promise['all'](e['map'](async h=>{const i=g['get'](h['package']+'::'+h['module']+'::'+h['function']);if(!i)return;h['_argumentTypes']=i['length']>0x0&&isTxContext(i['at'](-0x1))?i['slice'](0x0,i['length']-0x1):i;}));d['forEach'](h=>{if(!h['MoveCall'])return;const i=h['MoveCall'],j=i['package']+'::'+i['module']+'::'+i['function'],k=i['_argumentTypes'];if(!k)return;if(k['length']!==h['MoveCall']['arguments']['length'])throw new Error('Incorrect\x20number\x20of\x20arguments\x20for\x20'+j);k['forEach']((l,m)=>{const n=i['arguments'][m];if(n['$kind']!=='Input')return;const o=c[n['Input']];if(!o['UnresolvedPure']&&!o['UnresolvedObject'])return;const p=o['UnresolvedPure']?.['value']??o['UnresolvedObject']?.['objectId'],q=getPureBcsSchema(l['body']);if(q){n['type']='pure',c[c['indexOf'](o)]=Inputs['Pure'](q['serialize'](p));return;}if(typeof p!=='string')throw new Error('Expect\x20the\x20argument\x20to\x20be\x20an\x20object\x20id\x20string,\x20got\x20'+JSON['stringify'](p,null,0x2));n['type']='object';const r=o['UnresolvedPure']?{'$kind':'UnresolvedObject','UnresolvedObject':{'objectId':p}}:o;c[n['Input']]=r;});});}function isUsedAsMutable(a,b){let c=![];return a['getInputUses'](b,(d,e)=>{if(e['MoveCall']&&e['MoveCall']['_argumentTypes']){const f=e['MoveCall']['arguments']['indexOf'](d);c=e['MoveCall']['_argumentTypes'][f]['reference']!=='immutable'||c;}if(e['$kind']==='MakeMoveVec'||e['$kind']==='MergeCoins'||e['$kind']==='SplitCoins'||e['$kind']==='TransferObjects')c=!![];}),c;}function isUsedAsReceiving(a,b){let c=![];return a['getInputUses'](b,(d,e)=>{if(e['MoveCall']&&e['MoveCall']['_argumentTypes']){const f=e['MoveCall']['arguments']['indexOf'](d);c=isReceivingType(e['MoveCall']['_argumentTypes'][f])||c;}}),c;}const RECEIVING_TYPE='0x0000000000000000000000000000000000000000000000000000000000000002::transfer::Receiving';function isReceivingType(a){if(a['body']['$kind']!=='datatype')return![];return a['body']['datatype']['typeName']===RECEIVING_TYPE;}function needsTransactionResolution(a,b){if(a['inputs']['some'](c=>{return c['UnresolvedObject']||c['UnresolvedPure'];}))return!![];if(!b['onlyTransactionKind']){if(!a['gasData']['price']||!a['gasData']['budget']||!a['gasData']['payment'])return!![];if(a['gasData']['payment']['length']===0x0&&!a['expiration'])return!![];}return![];}async function resolveTransactionPlugin(a,b,c){normalizeRawArguments(a);if(!needsTransactionResolution(a,b))return await validate(a),c();return(getClient(b)['core']?.['resolveTransactionPlugin']()??coreClientResolveTransactionPlugin)(a,b,async()=>{await validate(a),await c();});}function validate(a){a['inputs']['forEach']((b,c)=>{if(b['$kind']!=='Object'&&b['$kind']!=='Pure'&&b['$kind']!=='FundsWithdrawal')throw new Error('Input\x20at\x20index\x20'+c+'\x20has\x20not\x20been\x20resolved.\x20\x20Expected\x20a\x20Pure,\x20Object,\x20or\x20FundsWithdrawal\x20input,\x20but\x20found\x20'+JSON['stringify'](b));});}function getClient(a){if(!a['client'])throw new Error('No\x20wow\x20client\x20passed\x20to\x20Transaction#build,\x20but\x20transaction\x20data\x20was\x20not\x20sufficient\x20to\x20build\x20offline.');return a['client'];}function normalizeRawArguments(a){for(const b of a['commands'])switch(b['$kind']){case'SplitCoins':b['SplitCoins']['amounts']['forEach'](c=>{normalizeRawArgument(c,a0e['U64'],a);});break;case'TransferObjects':normalizeRawArgument(b['TransferObjects']['address'],a0e['Address'],a);break;}}function normalizeRawArgument(a,b,c){if(a['$kind']!=='Input')return;const d=c['inputs'][a['Input']];if(d['$kind']!=='UnresolvedPure')return;c['inputs'][a['Input']]=Inputs['Pure'](b['serialize'](d['UnresolvedPure']['value']));}function createObjectMethods(a){function b(c){return a(c);}return b['system']=c=>{const d=c?.['mutable'];if(d!==void 0x0)return b(Inputs['SharedObjectRef']({'objectId':a0o,'initialSharedVersion':0x1,'mutable':d}));return b({'$kind':'UnresolvedObject','UnresolvedObject':{'objectId':a0o,'initialSharedVersion':0x1}});},b['clock']=()=>b(Inputs['SharedObjectRef']({'objectId':a0l,'initialSharedVersion':0x1,'mutable':![]})),b['random']=()=>b({'$kind':'UnresolvedObject','UnresolvedObject':{'objectId':a0k,'mutable':![]}}),b['denyList']=c=>{return b({'$kind':'UnresolvedObject','UnresolvedObject':{'objectId':a0j,'mutable':c?.['mutable']}});},b['registrar']=c=>{return b({'$kind':'UnresolvedObject','UnresolvedObject':{'objectId':a0p,'mutable':c?.['mutable']}});},b['mutRegistrar']=()=>{return b({'$kind':'UnresolvedObject','UnresolvedObject':{'objectId':a0p,'mutable':!![]}});},b['entity']=c=>{return b({'$kind':'UnresolvedObject','UnresolvedObject':{'objectId':a0n,'mutable':c?.['mutable']}});},b['mutEntity']=()=>{return b({'$kind':'UnresolvedObject','UnresolvedObject':{'objectId':a0n,'mutable':!![]}});},b['option']=({type:c,value:d})=>e=>e['moveCall']({'typeArguments':[c],'target':a0m+'::option::'+(d===null?'none':'some'),'arguments':d===null?[]:[e['object'](d)]}),b;}function createPure(a){function b(c,d){if(typeof c==='string')return a(a0f(c)['serialize'](d));if(c instanceof Uint8Array||isSerializedBcs(c))return a(c);throw new Error('tx.pure\x20must\x20be\x20called\x20either\x20a\x20bcs\x20type\x20name,\x20or\x20a\x20serialized\x20bcs\x20value');}return b['u8']=c=>a(a0e['U8']['serialize'](c)),b['u16']=c=>a(a0e['U16']['serialize'](c)),b['u32']=c=>a(a0e['U32']['serialize'](c)),b['u64']=c=>a(a0e['U64']['serialize'](c)),b['u128']=c=>a(a0e['U128']['serialize'](c)),b['u256']=c=>a(a0e['U256']['serialize'](c)),b['bool']=c=>a(a0e['Bool']['serialize'](c)),b['string']=c=>a(a0e['String']['serialize'](c)),b['address']=c=>a(a0e['Address']['serialize'](c)),b['id']=b['address'],b['vector']=(c,d)=>{return a(a0e['vector'](a0f(c))['serialize'](d));},b['option']=(c,d)=>{return a(a0e['option'](a0f(c))['serialize'](d));},b;}function namedPackagesPlugin(){return async(a,b,c)=>{await c();};}const COIN_WITH_BALANCE='CoinWithBalance',WOW_TYPE=a0d('0x2::wow::WOW');function coinWithBalance({type:type=WOW_TYPE,balance:a,useGasCoin:useGasCoin=!![]}){let b=null;return c=>{if(b)return b;c['addIntentResolver'](COIN_WITH_BALANCE,resolveCoinBalance);const d=type==='gas'?type:a0d(type);return b=c['add'](TransactionCommands['Intent']({'name':COIN_WITH_BALANCE,'inputs':{},'data':{'type':d===WOW_TYPE&&useGasCoin?'gas':d,'balance':BigInt(a),'outputKind':'coin'}})),b;};}function createBalance({type:type=WOW_TYPE,balance:a,useGasCoin:useGasCoin=!![]}){let b=null;return c=>{if(b)return b;c['addIntentResolver'](COIN_WITH_BALANCE,resolveCoinBalance);const d=type==='gas'?type:a0d(type);return b=c['add'](TransactionCommands['Intent']({'name':COIN_WITH_BALANCE,'inputs':{},'data':{'type':d===WOW_TYPE&&useGasCoin?'gas':d,'balance':BigInt(a),'outputKind':'balance'}})),b;};}const CoinWithBalanceData=object({'type':string(),'balance':bigint(),'outputKind':optional(picklist(['coin','balance']))});async function resolveCoinBalance(a,b,c){const d=new Set(),e=new Map(),f=new Map();if(!a['sender'])throw new Error('Sender\x20must\x20be\x20set\x20to\x20resolve\x20CoinWithBalance');for(const [q,r]of a['commands']['entries']()){if(r['$kind']!=='$Intent'||r['$Intent']['name']!=='CoinWithBalance')continue;const {type:s,balance:t,outputKind:u}=parse(CoinWithBalanceData,r['$Intent']['data']);if(t===0x0n){const v=s==='gas'?WOW_TYPE:s;a['replaceCommand'](q,TransactionCommands['MoveCall']({'target':(u??'coin')==='balance'?'0x2::balance::zero':'0x2::coin::zero','typeArguments':[v]}));continue;}if(s!=='gas')d['add'](s);e['set'](s,(e['get'](s)??0x0n)+t);if(!f['has'](s))f['set'](s,[]);f['get'](s)['push']({'balance':t,'outputKind':u??'coin'});}if(e['has']('gas')&&e['has'](WOW_TYPE))throw new Error('Cannot\x20mix\x20WOW\x20CoinWithBalance\x20intents\x20that\x20use\x20the\x20gas\x20coin\x20with\x20ones\x20that\x20do\x20not\x20(useGasCoin:\x20false).\x20Use\x20one\x20or\x20the\x20other.');const g=new Set();for(const w of a['inputs']){if(w['Object']?.['ImmOrOwnedObject'])g['add'](w['Object']['ImmOrOwnedObject']['objectId']);if(w['UnresolvedObject']?.['objectId'])g['add'](w['UnresolvedObject']['objectId']);}const h=new Map(),j=new Map(),k=b['client'];if(!k)throw new Error('Client\x20must\x20be\x20provided\x20to\x20build\x20or\x20serialize\x20transactions\x20with\x20CoinWithBalance\x20intents');await Promise['all']([...[...d]['map'](async x=>{const {coins:y,addressBalance:z}=await getCoinsAndBalanceOfType({'coinType':x,'balance':e['get'](x),'client':k,'owner':a['sender'],'usedIds':g});h['set'](x,y),j['set'](x,z);}),e['has']('gas')?await k['core']['getBalance']({'owner':a['sender'],'coinType':WOW_TYPE})['then'](({balance:x})=>{j['set']('gas',BigInt(x['addressBalance']));}):null]);const l=new Map(),m=new Map(),n=new Set(),o=new Map();let p=0x0;while(p<a['commands']['length']){const x=a['commands'][p];if(x['$kind']!=='$Intent'||x['$Intent']['name']!=='CoinWithBalance'){p++;continue;}const {type:y,balance:z}=x['$Intent']['data'],A=y==='gas'?WOW_TYPE:y,B=e['get'](y),C=j['get'](y)??0x0n,D=[];let E;const F=f['get'](y)??[];if(F['every'](G=>G['outputKind']==='balance')&&C>=B)D['push'](TransactionCommands['MoveCall']({'target':'0x2::balance::redeem_funds','typeArguments':[A],'arguments':[a['addInput']('withdrawal',Inputs['FundsWithdrawal']({'reservation':{'$kind':'MaxAmountU64','MaxAmountU64':String(z)},'typeArg':{'$kind':'Balance','Balance':A},'withdrawFrom':{'$kind':'Sender','Sender':!![]}}))]})),E={'$kind':'NestedResult','NestedResult':[p+D['length']-0x1,0x0]};else{if(!o['has'](y)){const H=F,I=[];if(C>=B)n['add'](y),D['push'](TransactionCommands['MoveCall']({'target':'0x2::coin::redeem_funds','typeArguments':[A],'arguments':[a['addInput']('withdrawal',Inputs['FundsWithdrawal']({'reservation':{'$kind':'MaxAmountU64','MaxAmountU64':String(B)},'typeArg':{'$kind':'Balance','Balance':A},'withdrawFrom':{'$kind':'Sender','Sender':!![]}}))]})),I['push']({'$kind':'Result','Result':p+D['length']-0x1});else{if(y==='gas')I['push']({'$kind':'GasCoin','GasCoin':!![]});else{const N=h['get'](y),O=N['reduce']((Q,R)=>Q+BigInt(R['balance']),0x0n),P=B>O?B-O:0x0n;m['set'](y,O+P===B);for(const Q of N)I['push'](a['addInput']('object',Inputs['ObjectRef']({'objectId':Q['objectId'],'digest':Q['digest'],'version':Q['version']})));P>0x0n&&(n['add'](y),D['push'](TransactionCommands['MoveCall']({'target':'0x2::coin::redeem_funds','typeArguments':[A],'arguments':[a['addInput']('withdrawal',Inputs['FundsWithdrawal']({'reservation':{'$kind':'MaxAmountU64','MaxAmountU64':String(P)},'typeArg':{'$kind':'Balance','Balance':A},'withdrawFrom':{'$kind':'Sender','Sender':!![]}}))]})),I['push']({'$kind':'Result','Result':p+D['length']-0x1}));}}const J=I[0x0],K=I['slice'](0x1);for(let R=0x0;R<K['length'];R+=0x1f4)D['push'](TransactionCommands['MergeCoins'](J,K['slice'](R,R+0x1f4)));l['set'](y,J);const L=p+D['length'];D['push'](TransactionCommands['SplitCoins'](J,H['map'](S=>a['addInput']('pure',Inputs['Pure'](a0e['u64']()['serialize'](S['balance']))))));const M=[];for(let S=0x0;S<H['length'];S++){const T={'$kind':'NestedResult','NestedResult':[L,S]};if(H[S]['outputKind']==='balance')D['push'](TransactionCommands['MoveCall']({'target':'0x2::coin::into_balance','typeArguments':[A],'arguments':[T]})),M['push']({'$kind':'NestedResult','NestedResult':[p+D['length']-0x1,0x0]});else M['push'](T);}o['set'](y,{'results':M,'nextIntent':0x0});}const G=o['get'](y);E=G['results'][G['nextIntent']++];}a['replaceCommand'](p,D,E),p+=D['length'];}for(const [U,V]of l){if(U==='gas'&&!n['has'](U))continue;const W=U==='gas'?WOW_TYPE:U,X=f['get'](U)?.['some'](Z=>Z['outputKind']==='balance'),Y=n['has'](U);if(X||Y)a['commands']['push'](TransactionCommands['MoveCall']({'target':'0x2::coin::send_funds','typeArguments':[W],'arguments':[V,a['addInput']('pure',Inputs['Pure'](a0e['Address']['serialize'](a['sender'])))]}));else{if(m['get'](U))a['commands']['push'](TransactionCommands['MoveCall']({'target':'0x2::coin::destroy_zero','typeArguments':[W],'arguments':[V]}));}}return c();}async function getCoinsAndBalanceOfType({coinType:a,balance:b,client:c,owner:d,usedIds:e}){let f=b;const g=[],h=c['core']['getBalance']({'owner':d,'coinType':a})['then'](({balance:l})=>{return f-=BigInt(l['addressBalance']),l;}),[i,j]=await Promise['all']([k(),h]);if(BigInt(j['balance'])<b)throw new Error('Insufficient\x20balance\x20of\x20'+a+'\x20for\x20owner\x20'+d+'.\x20Required:\x20'+b+',\x20Available:\x20'+(b-f));return{'coins':i,'balance':BigInt(j['coinBalance']),'addressBalance':BigInt(j['addressBalance']),'coinBalance':BigInt(j['coinBalance'])};async function k(l=null){const {objects:m,hasNextPage:n,cursor:o}=await c['core']['listCoins']({'owner':d,'coinType':a,'cursor':l});await h;for(const p of m){if(e['has'](p['objectId']))continue;g['push'](p),f-=BigInt(p['balance']);}if(f>0x0n&&n)return k(o);return g;}}function createTransactionResult(a,b=Infinity){const c={'$kind':'Result',get 'Result'(){return typeof a==='function'?a():a;}},d=[],e=f=>d[f]??={'$kind':'NestedResult',get 'NestedResult'(){return[typeof a==='function'?a():a,f];}};return new Proxy(c,{'set'(){throw new Error('The\x20transaction\x20result\x20is\x20a\x20proxy,\x20and\x20does\x20not\x20support\x20setting\x20properties\x20directly');},'get'(f,g){if(g in f)return Reflect['get'](f,g);if(g===Symbol['iterator'])return function*(){let j=0x0;while(j<b){yield e(j),j++;}};if(typeof g==='symbol')return;const h=parseInt(g,0xa);if(Number['isNaN'](h)||h<0x0)return;return e(h);}});}const TRANSACTION_BRAND=Symbol['for']('@mysten/transaction');function isTransaction(a){return!!a&&typeof a==='object'&&a[TRANSACTION_BRAND]===!![];}var Transaction=class Transaction{#serializationPlugins;#buildPlugins;#intentResolvers;#inputSection;#commandSection;#availableResults;#pendingPromises;#added;static['fromKind'](a){const b=new Transaction();return b.#data=TransactionDataBuilder['fromKindBytes'](typeof a==='string'?fromBase64(a):a),b.#inputSection=b.#data['inputs']['slice'](),b.#commandSection=b.#data['commands']['slice'](),b.#availableResults=new Set(b.#commandSection['map']((c,d)=>d)),b;}static['from'](a){const b=new Transaction();if(isTransaction(a))b.#data=TransactionDataBuilder['restore'](a['getData']());else{if(typeof a!=='string'||!a['startsWith']('{'))b.#data=TransactionDataBuilder['fromBytes'](typeof a==='string'?fromBase64(a):a);else b.#data=TransactionDataBuilder['restore'](JSON['parse'](a));}b.#inputSection=b.#data['inputs']['slice'](),b.#commandSection=b.#data['commands']['slice'](),b.#availableResults=new Set(b.#commandSection['map']((c,d)=>d));if(!b['isPreparedForSerialization']({'supportedIntents':['CoinWithBalance']}))throw new Error('Transaction\x20has\x20unresolved\x20intents\x20or\x20async\x20thunks.\x20Call\x20`prepareForSerialization`\x20before\x20copying.');if(b.#data['commands']['some'](c=>c['$Intent']?.['name']==='CoinWithBalance'))b['addIntentResolver'](COIN_WITH_BALANCE,resolveCoinBalance);return b;}['addSerializationPlugin'](a){this.#serializationPlugins['push'](a);}['addBuildPlugin'](a){this.#buildPlugins['push'](a);}['addIntentResolver'](a,b){if(this.#intentResolvers['has'](a)&&this.#intentResolvers['get'](a)!==b)throw new Error('Intent\x20resolver\x20for\x20'+a+'\x20already\x20exists');this.#intentResolvers['set'](a,b);}['setSender'](a){this.#data['sender']=a;}['setSenderIfNotSet'](a){if(!this.#data['sender'])this.#data['sender']=a;}['setExpiration'](a){this.#data['expiration']=a?parse(TransactionExpiration$2,a):null;}['setGasPrice'](a){this.#data['gasData']['price']=String(a);}['setGasBudget'](a){this.#data['gasData']['budget']=String(a);}['setGasBudgetIfNotSet'](a){if(this.#data['gasData']['budget']==null)this.#data['gasData']['budget']=String(a);}['setGasOwner'](a){this.#data['gasData']['owner']=a;}['setGasPayment'](a){this.#data['gasData']['payment']=a['map'](b=>parse(ObjectRefSchema,b));}#data;['getData'](){return this.#data['snapshot']();}get[TRANSACTION_BRAND](){return!![];}get['pure'](){return Object['defineProperty'](this,'pure',{'enumerable':![],'value':createPure(a=>{if(isSerializedBcs(a))return this.#addInput('pure',{'$kind':'Pure','Pure':{'bytes':a['toBase64']()}});return this.#addInput('pure',is(NormalizedCallArg$1,a)?parse(NormalizedCallArg$1,a):a instanceof Uint8Array?Inputs['Pure'](a):{'$kind':'UnresolvedPure','UnresolvedPure':{'value':a}});})}),this['pure'];}constructor(){this.#intentResolvers=new Map(),this.#inputSection=[],this.#commandSection=[],this.#availableResults=new Set(),this.#pendingPromises=new Set(),this.#added=new Map(),this['object']=createObjectMethods(a=>{if(typeof a==='function')return this['object'](this['add'](a));if(typeof a==='object'&&is(ArgumentSchema,a))return a;const b=getIdFromCallArg(a),c=this.#data['inputs']['find'](d=>b===getIdFromCallArg(d));if(c?.['Object']?.['SharedObject']&&typeof a==='object'&&a['Object']?.['SharedObject'])c['Object']['SharedObject']['mutable']=c['Object']['SharedObject']['mutable']||a['Object']['SharedObject']['mutable'];return c?{'$kind':'Input','Input':this.#data['inputs']['indexOf'](c),'type':'object'}:this.#addInput('object',typeof a==='string'?{'$kind':'UnresolvedObject','UnresolvedObject':{'objectId':a0b(a)}}:a);}),this.#data=new TransactionDataBuilder(),this.#buildPlugins=[],this.#serializationPlugins=[];}get['gas'](){return{'$kind':'GasCoin','GasCoin':!![]};}['coin']({type:a,balance:b,useGasCoin:c}){return this['add'](coinWithBalance({'type':a,'balance':b,'useGasCoin':c}));}['balance']({type:a,balance:b,useGasCoin:c}){return this['add'](createBalance({'type':a,'balance':b,'useGasCoin':c}));}['objectRef'](...a){return this['object'](Inputs['ObjectRef'](...a));}['receivingRef'](...a){return this['object'](Inputs['ReceivingRef'](...a));}['sharedObjectRef'](...a){return this['object'](Inputs['SharedObjectRef'](...a));}#fork(){const a=new Transaction();return a.#data=this.#data,a.#serializationPlugins=this.#serializationPlugins,a.#buildPlugins=this.#buildPlugins,a.#intentResolvers=this.#intentResolvers,a.#pendingPromises=this.#pendingPromises,a.#availableResults=new Set(this.#availableResults),a.#added=this.#added,this.#inputSection['push'](a.#inputSection),this.#commandSection['push'](a.#commandSection),a;}['add'](a){if(typeof a==='function'){if(this.#added['has'](a))return this.#added['get'](a);const b=this.#fork(),c=a(b);if(!(c&&typeof c==='object'&&'then'in c))return this.#availableResults=b.#availableResults,this.#added['set'](a,c),c;const d=this.#addCommand({'$kind':'$Intent','$Intent':{'name':'AsyncTransactionThunk','inputs':{},'data':{'resultIndex':this.#data['commands']['length'],'result':null}}});this.#pendingPromises['add'](Promise['resolve'](c)['then'](f=>{d['$Intent']['data']['result']=f;}));const e=createTransactionResult(()=>d['$Intent']['data']['resultIndex']);return this.#added['set'](a,e),e;}else this.#addCommand(a);return createTransactionResult(this.#data['commands']['length']-0x1);}#addCommand(a){const b=this.#data['commands']['length'];return this.#commandSection['push'](a),this.#availableResults['add'](b),this.#data['commands']['push'](a),this.#data['mapCommandArguments'](b,c=>{if(c['$kind']==='Result'&&!this.#availableResults['has'](c['Result']))throw new Error('Result\x20{\x20Result:\x20'+c['Result']+'\x20}\x20is\x20not\x20available\x20to\x20use\x20in\x20the\x20current\x20transaction');if(c['$kind']==='NestedResult'&&!this.#availableResults['has'](c['NestedResult'][0x0]))throw new Error('Result\x20{\x20NestedResult:\x20['+c['NestedResult'][0x0]+',\x20'+c['NestedResult'][0x1]+']\x20}\x20is\x20not\x20available\x20to\x20use\x20in\x20the\x20current\x20transaction');if(c['$kind']==='Input'&&c['Input']>=this.#data['inputs']['length'])throw new Error('Input\x20{\x20Input:\x20'+c['Input']+'\x20}\x20references\x20an\x20input\x20that\x20does\x20not\x20exist\x20in\x20the\x20current\x20transaction');return c;}),a;}#addInput(a,b){return this.#inputSection['push'](b),this.#data['addInput'](a,b);}#normalizeTransactionArgument(a){if(isSerializedBcs(a))return this['pure'](a);return this.#resolveArgument(a);}#resolveArgument(a){if(typeof a==='function'){const b=this['add'](a);if(typeof b==='function')return this.#resolveArgument(b);return parse(ArgumentSchema,b);}return parse(ArgumentSchema,a);}['splitCoins'](a,b){const c=TransactionCommands['SplitCoins'](typeof a==='string'?this['object'](a):this.#resolveArgument(a),b['map'](d=>typeof d==='number'||typeof d==='bigint'||typeof d==='string'?this['pure']['u64'](d):this.#normalizeTransactionArgument(d)));return this.#addCommand(c),createTransactionResult(this.#data['commands']['length']-0x1,b['length']);}['mergeCoins'](a,b){return this['add'](TransactionCommands['MergeCoins'](this['object'](a),b['map'](c=>this['object'](c))));}['publish']({modules:a,dependencies:b}){return this['add'](TransactionCommands['Publish']({'modules':a,'dependencies':b}));}['upgrade']({modules:a,dependencies:b,package:c,ticket:d}){return this['add'](TransactionCommands['Upgrade']({'modules':a,'dependencies':b,'package':c,'ticket':this['object'](d)}));}['moveCall']({arguments:a,...b}){return this['add'](TransactionCommands['MoveCall']({...b,'arguments':a?.['map'](c=>this.#normalizeTransactionArgument(c))}));}['transferObjects'](a,b){return this['add'](TransactionCommands['TransferObjects'](a['map'](c=>this['object'](c)),typeof b==='string'?this['pure']['address'](b):this.#normalizeTransactionArgument(b)));}['makeMoveVec']({type:a,elements:b}){return this['add'](TransactionCommands['MakeMoveVec']({'type':a,'elements':b['map'](c=>this['object'](c))}));}['withdrawal']({amount:a,type:b}){const c={'$kind':'FundsWithdrawal','FundsWithdrawal':{'reservation':{'$kind':'MaxAmountU64','MaxAmountU64':String(a)},'typeArg':{'$kind':'Balance','Balance':b??'0x2::wow::WOW'},'withdrawFrom':{'$kind':'Sender','Sender':!![]}}};return this.#addInput('object',c);}['serialize'](){return JSON['stringify'](serializeV1TransactionData(this.#data['snapshot']()));}async['toJSON'](a={}){await this['prepareForSerialization'](a);const b=this['isFullyResolved']();return JSON['stringify'](parse(SerializedTransactionDataV2Schema,b?{...this.#data['snapshot'](),'digest':this.#data['getDigest']()}:this.#data['snapshot']()),(c,d)=>typeof d==='bigint'?d['toString']():d,0x2);}async['sign'](a){const {signer:b,...c}=a,d=await this['build'](c);return b['signTransaction'](d);}['isPreparedForSerialization'](a={}){if(this.#pendingPromises['size']>0x0)return![];if(this.#data['commands']['some'](b=>b['$Intent']&&!a['supportedIntents']?.['includes'](b['$Intent']['name'])))return![];return!![];}['isFullyResolved'](){if(!this['isPreparedForSerialization']())return![];if(!this.#data['sender'])return![];if(needsTransactionResolution(this.#data,{}))return![];return!![];}async['build'](a={}){return await this['prepareForSerialization'](a),await this.#prepareBuild(a),this.#data['build']({'onlyTransactionKind':a['onlyTransactionKind']});}async['getDigest'](a={}){return await this['prepareForSerialization'](a),await this.#prepareBuild(a),this.#data['getDigest']();}async #prepareBuild(a){if(!a['onlyTransactionKind']&&!this.#data['sender'])throw new Error('Missing\x20transaction\x20sender');await this.#runPlugins([...this.#buildPlugins,resolveTransactionPlugin],a);}async #runPlugins(a,b){try{const c=d=>{if(d>=a['length'])return()=>{};const e=a[d];return async()=>{const f=c(d+0x1);let g=![],h=![];await e(this.#data,b,async()=>{if(g)throw new Error('next()\x20was\x20call\x20multiple\x20times\x20in\x20TransactionPlugin\x20'+d);g=!![],await f(),h=!![];});if(!g)throw new Error('next()\x20was\x20not\x20called\x20in\x20TransactionPlugin\x20'+d);if(!h)throw new Error('next()\x20was\x20not\x20awaited\x20in\x20TransactionPlugin\x20'+d);};};await c(0x0)();}finally{this.#inputSection=this.#data['inputs']['slice'](),this.#commandSection=this.#data['commands']['slice'](),this.#availableResults=new Set(this.#commandSection['map']((d,e)=>e));}}async #waitForPendingTasks(){while(this.#pendingPromises['size']>0x0){const a=Promise['all'](this.#pendingPromises);this.#pendingPromises['clear'](),this.#pendingPromises['add'](a),await a,this.#pendingPromises['delete'](a);}}#sortCommandsAndInputs(){const a=this.#data['commands'],b=this.#data['inputs'],c=this.#commandSection['flat'](Infinity),d=this.#inputSection['flat'](Infinity);if(c['length']!==a['length'])throw new Error('Unexpected\x20number\x20of\x20commands\x20found\x20in\x20transaction\x20data');if(d['length']!==b['length'])throw new Error('Unexpected\x20number\x20of\x20inputs\x20found\x20in\x20transaction\x20data');const e=c['filter'](g=>g['$Intent']?.['name']!=='AsyncTransactionThunk');this.#data['commands']=e,this.#data['inputs']=d,this.#commandSection=e,this.#inputSection=d,this.#availableResults=new Set(e['map']((g,h)=>h));function f(g){const h=a[g];if(h['$Intent']?.['name']==='AsyncTransactionThunk'){const k=h['$Intent']['data']['result'];if(k==null)throw new Error('AsyncTransactionThunk\x20has\x20not\x20been\x20resolved');return f(k['Result']);}const j=e['indexOf'](h);if(j===-0x1)throw new Error('Unable\x20to\x20find\x20original\x20index\x20for\x20command');return j;}this.#data['mapArguments'](g=>{if(g['$kind']==='Input'){const h=d['indexOf'](b[g['Input']]);if(h===-0x1)throw new Error('Input\x20has\x20not\x20been\x20resolved');return{...g,'Input':h};}else{if(g['$kind']==='Result'){const j=f(g['Result']);return{...g,'Result':j};}else{if(g['$kind']==='NestedResult'){const k=f(g['NestedResult'][0x0]);return{...g,'NestedResult':[k,g['NestedResult'][0x1]]};}}}return g;});for(const [g,h]of a['entries']())if(h['$Intent']?.['name']==='AsyncTransactionThunk')try{h['$Intent']['data']['resultIndex']=f(g);}catch{}}async['prepareForSerialization'](a){await this.#waitForPendingTasks(),this.#sortCommandsAndInputs();const b=new Set();for(const d of this.#data['commands'])if(d['$Intent'])b['add'](d['$Intent']['name']);const c=[...this.#serializationPlugins];for(const e of b){if(a['supportedIntents']?.['includes'](e))continue;if(!this.#intentResolvers['has'](e))throw new Error('Missing\x20intent\x20resolver\x20for\x20'+e);c['push'](this.#intentResolvers['get'](e));}c['push'](namedPackagesPlugin()),await this.#runPlugins(c,a);}};export{isArgument as _,createObjectMethods as a,getPureBcsSchema as c,TransactionCommands as d,UpgradePolicy as f,TransactionDataBuilder as g,SimulationError as h,createPure as i,normalizedTypeToMoveTypeSignature as l,ObjectError as m,isTransaction as n,computeGasBudget as o,isCoinReservationDigest as p,coinWithBalance as r,coreClientResolveTransactionPlugin as s,Transaction as t,Inputs as u};
@@ -1 +0,0 @@
1
- import{B as a1a,H as a1b,f as a1c,g as a1d,lt as a1e,z as a1f}from'./common-fDv-Cuzq.mjs';import{_ as a1g}from'./local-c-Tbdkfa.mjs';import{st as a1h}from'./object-DzsQI-0e.mjs';function arbFn(a){return'0x2::arb::'+a;}function create(a,b,c){a1h([b]);if(!a1c(c))a1g('invalid\x20parameter','Arb\x20type\x20'+c+'\x20is\x20not\x20valid');return a['moveCall']({'target':arbFn('create'),'arguments':[a1e(a,b)],'typeArguments':[c]});}function proposition_change(a,b,c,d,e,f,g){a1h([b,d]);if(!a1c(c))a1g('invalid\x20parameter','Arb\x20type\x20'+c+'\x20is\x20not\x20valid');if(!a1f(e,h=>{if(!a1b(h))a1g('invalid\x20parameter','Proposition\x20name\x20'+h+'\x20exceeds\x20maximum\x20length\x20256');return!![];}))a1g('invalid\x20parameter','Proposition\x20is\x20not\x20valid');if(e['length']>0x14)a1g('invalid\x20parameter','Proposition\x20count\x20exceeds\x20maximum\x20count\x2020');if(typeof f==='string'&&!a1a(f))a1g('invalid\x20description','Description\x20exceeds\x20maximum\x20length\x20'+a1d);a['moveCall']({'target':arbFn('proposition_change'),'arguments':[a1e(a,b),a1e(a,d),a['pure']['vector']('string',e),a['pure']['option']('string',f??null),a['pure']['bool'](g)],'typeArguments':[c]});}function description_change(a,b,c,d,e,f){a1h([b,d]);if(!a1c(c))a1g('invalid\x20parameter','Arb\x20type\x20'+c+'\x20is\x20not\x20valid');if(typeof e==='string'&&!a1a(e))a1g('invalid\x20description','Description\x20exceeds\x20maximum\x20length\x20'+a1d);a['moveCall']({'target':arbFn('description_change'),'arguments':[a1e(a,b),a1e(a,d),a['pure']['string'](e),a['pure']['bool'](f)],'typeArguments':[c]});}function principal_confirm(a,b,c,d,e){a1h([b,d]);if(!a1c(c))a1g('invalid\x20parameter','Arb\x20type\x20'+c+'\x20is\x20not\x20valid');a['moveCall']({'target':arbFn('principal_confirm'),'arguments':[a1e(a,b),a1e(a,d),a['pure']['bool'](e)],'typeArguments':[c]});}function objection(a,b,c,d,e){a1h([b,d]);if(!a1c(c))a1g('invalid\x20parameter','Arb\x20type\x20'+c+'\x20is\x20not\x20valid');if(typeof e==='string'&&!a1a(e))a1g('invalid\x20description','Objection\x20exceeds\x20maximum\x20length\x20'+a1d);a['moveCall']({'target':arbFn('objection'),'arguments':[a1e(a,b),a1e(a,d),a['pure']['string'](e)],'typeArguments':[c]});}export{proposition_change as a,principal_confirm as i,description_change as n,objection as r,create as t};
@@ -1 +0,0 @@
1
- import{a as a2a}from'./sui-types-CuBKFvrd.mjs';import{t as a2b}from'./client-VxiBQfen.mjs';import{t as a2c}from'./Transaction-YosVjNZA.mjs';import{n as a2d}from'./network-DOe6BgcD.mjs';import{B as a2e,J as a2f,U as a2g,g as a2h,lt as a2i,rt as a2j,st as a2k,ut as a2l}from'./common-fDv-Cuzq.mjs';import{_ as a2m,s as a2n}from'./local-c-Tbdkfa.mjs';import{Config}from'./w/local/config.mjs';import{Account}from'./w/local/account.mjs';import{A as a2o,G as a2p,K as a2q,L as a2r,M as a2s,U as a2t,ct as a2u,st as a2v}from'./object-DzsQI-0e.mjs';import{destroy,freeze,get_guardSubmissions,guardAdd,newPassport,verify}from'./w/call/passport.mjs';import a2w from'lodash';function resourceFn(a){return'0x2::resource::'+a;}function addObjectTags(a,b,c){if(c['tags']['length']>0x64)a2m('resource\x20tag\x20count\x20exceeded','Tags\x20count\x20exceeds\x20maximum\x20limit\x20100');c['tags']['forEach'](f=>{if(!a2g(f))a2m('invalid\x20name','Tag\x20name\x20exceeds\x20maximum\x20length\x2064');});if(c['nick']!=null&&typeof c['nick']==='string'){if(!a2g(c['nick']))a2m('invalid\x20name','Nick\x20name\x20exceeds\x20maximum\x20length\x2064');}const d=a['pure']['option']('string',c['nick']??null),e=a['pure']['vector']('string',c['tags']);a['moveCall']({'target':resourceFn('add_object_tags'),'arguments':[a2i(a,b),a2k(a,c['address']),d,e]});}function removeObjectTags(a,b,c){if(typeof c['nick']==='string'&&!a2g(c['nick']))a2m('invalid\x20name','Nick\x20name\x20exceeds\x20maximum\x20length\x2064');const d=a['pure']['option']('string',c['nick']??null),e=a['pure']['vector']('string',c['tags']);a['moveCall']({'target':resourceFn('remove_object_tags'),'arguments':[a2i(a,b),a2k(a,c['address']),d,e]});}function removeObject(a,b,c){a['moveCall']({'target':resourceFn('remove_object'),'arguments':[a2i(a,b),a2k(a,c)]});}function create(a,b){a['moveCall']({'target':resourceFn('create'),'arguments':[a2i(a,b)]});}const MAX_RECORD_COUNT=0x3e8,MAX_RECORD_LENGTH=0xfa0;function registrarFn(a){return'0x2::registrar::'+a;}function register_with_resource_forced(a,b){return b=b&&a2a(b)?b:null,a['moveCall']({'target':registrarFn('entity_register_with_resource_forced'),'arguments':[a['object']['mutEntity'],a['pure']['option']('address',b??null),a['object']['clock']]});}function resource_destroy(a,b){a2v([b]),a['moveCall']({'target':registrarFn('entity_resource_destroy'),'arguments':[a['object']['mutEntity'],a2i(a,b)]});}function resource_use(a,b,c){a2v([b]),c=c&&a2a(c)?c:null,a['moveCall']({'target':registrarFn('entity_resource_use'),'arguments':[a['object']['mutEntity'],a2i(a,b),a['pure']['option']('address',c??null),a['object']['clock']]});}function resource_transfer(a,b,c){a2v([b,c]),a['moveCall']({'target':registrarFn('entity_resource_transfer'),'arguments':[a['object']['mutEntity'],a2i(a,b),a2k(a,c)]});}async function record(a,b){if(typeof b['name']==='string'&&!a2g(b['name']))a2m('invalid\x20name','name\x20'+b['name']+'\x20is\x20exceeded\x20max\x20length\x2064');const c=await a2u(a2j(b['value_type']),b['value']);if(c['length']>0xfa0)a2m('invalid\x20parameter','value_bytes\x20length\x20'+c['length']+'\x20is\x20greater\x20than\x20max\x20'+MAX_RECORD_LENGTH);return a['moveCall']({'target':registrarFn('record'),'arguments':[a2l(a,b['name']),a['pure']['vector']('u8',Array['from'](c))]});}async function description_set(a,b,c){if(!a2e(b))a2m('invalid\x20parameter','description\x20length\x20'+b['length']+'\x20is\x20greater\x20than\x20max\x20'+a2h);c=c&&a2a(c)?c:null,a['moveCall']({'target':registrarFn('entity_description_set'),'arguments':[a['object']['mutEntity'],a['pure']['string'](b),a['pure']['option']('address',c??null),a['object']['clock']]});}async function info_add(a,b,c,d){d=d&&a2a(d)?d:null;const e=b['map'](g=>record(a,g)),f=await Promise['all'](e);if(f['length']>0x3e8)a2m('invalid\x20parameter','records\x20count\x20'+f['length']+'\x20is\x20greater\x20than\x20max\x20'+MAX_RECORD_COUNT);if(c&&!a2e(c))a2m('invalid\x20parameter','description\x20length\x20'+c['length']+'\x20is\x20greater\x20than\x20max\x20'+a2h);a['moveCall']({'target':registrarFn('entity_info_add'),'arguments':[a['object']['mutEntity'],a['pure']['option']('string',c??null),a['makeMoveVec']({'elements':f,'type':'0x2::registrar::Record'}),a['pure']['option']('address',d??null),a['object']['clock']]});}function info_remove(a,b){if(b['length']===0x0)return;if(b['length']>0x3e8)a2m('invalid\x20parameter','recordNames\x20count\x20'+b['length']+'\x20is\x20greater\x20than\x20max\x20'+MAX_RECORD_COUNT);a['moveCall']({'target':registrarFn('entity_info_remove'),'arguments':[a['object']['mutEntity'],a['pure']['vector']('string',b)]});}function info_clear(a){a['moveCall']({'target':registrarFn('entity_info_clear'),'arguments':[a['object']['mutEntity']]});}function isCallResultSubmission(a){return a?.['submission']&&a?.['submission']?.['length']>0x0;}function ResponseData(a){if(a?.['digest']){const b=[];return a?.['objectChanges']?.['forEach'](c=>{const d=c?.['objectType'],e=a2t(d);if(e)b['push']({'type':e,'type_raw':d,'object':c?.['objectId'],'version':c?.['version'],'owner':c?.['owner'],'change':c['type']});}),b;}return[];}var CallBase=class{constructor(){this['traceMarkNew']=new Map(),this['content']=void 0x0,this['env_ready']=![],this['env_prepare_promise']=null;}async['operate'](a,b,c,d){}async['prepare'](a){await this['env_prepare'](a);}async['call'](a){}async['env_prepare'](a){if(this['env_ready'])return;if(this['env_prepare_promise'])return this['env_prepare_promise'];return this['env_prepare_promise']=a2q(a)['then'](()=>{this['env_ready']=!![],this['env_prepare_promise']=null;}),this['env_prepare_promise'];}async['call_with_submission'](a,b,c){b['guard']['length']>0x0&&(await this['prepare'](a),await this['check_passport'](a,b,c));}async['check_guard_and_call'](a,b){a['permission_guard']?.['forEach'](c=>{if(!a2a(c))a2m('invalid\x20address','env\x20permission_guard:\x20'+c);b['push'](c);});if(b['length']>0x0){const c=await get_guardSubmissions(a,b);if(c['submission']['length']>0x0)return{'type':'submission','guard':c['guard'],'submission':c['submission']};return await this['check_passport'](a,c);}else return await this['exec'](a);}async['check_permission_and_call'](a,b,c,d,e,f){let g=![];const h=await a2r({'objects':[b],'no_cache':a['no_cache'],'network':a['network']});if(!h['objects']?.[0x0]||h['objects']?.[0x0]['type']!=='Permission')a2m('no\x20permission','permission\x20object\x20not\x20found');const i=h['objects']?.[0x0],j=await a2p(a);g=i['admin']['includes'](j);if(e&&i['builder']!==j)a2m('no\x20permission',j+'\x20owner\x20permission\x20required');if(f&&!g)a2m('no\x20permission',j+'\x20admin\x20permission\x20required');a['permission_guard']?.['forEach'](k=>{if(!a2a(k))a2m('invalid\x20address','env\x20permission_guard\x20'+k);d['push'](k);});if(c['length']>0x0&&!g){const k=[j,...a['permission_guard']??[]]['map'](async o=>{const q=await a2s({'parent':b,'address':o,'no_cache':a['no_cache'],'network':a['network']});if(q&&q['type']==='TableItem_PermissionPerm')return{'address':o,'permissions':q['perm']};return{'address':o,'permissions':[]};}),l=await Promise['all'](k),m=new Set();l['forEach'](o=>{o['permissions']['forEach'](q=>m['add'](q));});const n=c['filter'](o=>!m['has'](o));if(n['length']>0x0)a2m('no\x20permission','Missing\x20permissions\x20'+n['join'](',\x20')+'\x20in\x20'+b);}if(d['length']>0x0){const o=await get_guardSubmissions(a,d);if(o['submission']['length']>0x0)return{'type':'submission','guard':o['guard'],'submission':o['submission']};return await this['check_passport'](a,o);}else return await this['exec'](a);}async['check_passport'](a,b,c){const d=new a2c(),e=newPassport(d);for(const f of b['guard'])await guardAdd(d,e,f['object'],b['submission']['find'](g=>g['guard']===f['object'])?.['submission']??[],f['impack']);verify(d,e),await this['operate'](a,d,e,b['submission']);if(c)freeze(d,e);else destroy(d,e);return await this['sign_and_commit'](a,d);}async['exec'](a){const b=new a2c();return await this['operate'](a,b),await this['sign_and_commit'](a,b);}async['new_with_mark'](a,b,c,d,f,g=['launch']){const h=f?.['tags']?a2w['uniq']([...f['tags'],...g]):a2w['uniq']([...g]);f&&(f['tags']=h,this['traceMarkNew']['set'](c,f));if(!f?.['onChain'])return;if(!this['newResource']){let i;try{i=await a2o({'address':await a2p(a),'no_cache':a['no_cache'],'network':a['network']});}catch(j){}if(i&&i['type']!=='TableItem_EntityRegistrar')a2m('no\x20permission','no\x20entity\x20registrar\x20found');if(i?.['mark_object']){addObjectTags(b,i['mark_object'],{'address':d,'tags':h});return;}else this['newResource']=register_with_resource_forced(b,typeof a['referrer']==='string'?a['referrer']:null);}if(this['newResource'])addObjectTags(b,this['newResource'],{'address':d,'tags':h});}async['update_content'](a,b,c){if(this['content']||!c)return;const d=await a2r({'objects':[c],'no_cache':a['no_cache'],'network':a['network']});if(!d['objects']||d?.['objects']?.['length']!==0x1||d?.['objects'][0x0]?.['type']!==b)a2m('fail','Fetch\x20'+b+'\x20object\x20'+c+'\x20failed');this['content']=d?.['objects'][0x0];}async['sign_and_commit'](a,b){this['newResource']&&(create(b,this['newResource']),this['newResource']=void 0x0);let c=await Account['Instance']()['sign_and_commit'](b,await a2p(a),a['network']);if(!c)a2m('fail','sign\x20and\x20commit\x20failed');if(c?.['digest']&&!c?.['objectChanges']){const e=await Config['Instance']()['network_get'](a['network']);c=await new a2b({'url':a2d(e),'network':e})['getTransactionBlock']({'digest':c?.['digest'],'options':{'showObjectChanges':!![]}});}const d=ResponseData(c);for(let f=0x0;f<d['length'];++f){const g=d[f];if(g['type']&&g['change']==='created'){const h=this['traceMarkNew']['get'](g['type']);if(h)await a2n['Instance']()['put']([{'name':h['name']?{'value':h['name'],'replaceExistName':h['replaceExistName']}:void 0x0,'address':g['object'],'tags':h?.['tags']?[...h['tags'],g['type']]:[g['type']]}]);}}return c;}};async function getCoinParam(a,b,c,d){let e;if('balance'in c&&c['balance']!=null){if(!a2f(c['balance']))a2m('invalid\x20u64','Total\x20pay\x20balance\x20'+c['balance']+'\x20is\x20not\x20valid');e=await Account['Instance']()['get_coin_object'](b,c['balance'],d,await a2p(a),a['network']);}else{if('coin'in c&&c['coin']!=null){if(typeof c['coin']==='string')e=await a2n['Instance']()['get_address'](c['coin']);else e=c['coin'];}}if(!e)a2m('invalid\x20parameter','Total\x20pay\x20'+JSON['stringify'](c)+'\x20is\x20allocated\x20failed');return a2i(b,e);}export{description_set as a,info_remove as c,resource_transfer as d,resource_use as f,removeObjectTags as g,removeObject as h,isCallResultSubmission as i,register_with_resource_forced as l,create as m,ResponseData as n,info_add as o,addObjectTags as p,getCoinParam as r,info_clear as s,CallBase as t,resource_destroy as u};
@@ -1 +0,0 @@
1
- import{t as a5a}from'./rolldown-runtime-DkIiUugF.mjs';import{_ as a5b}from'./local-c-Tbdkfa.mjs';import{Account}from'./w/local/account.mjs';import{G as a5c}from'./object-DzsQI-0e.mjs';import{t as a5d}from'./base-fdHKX-jS.mjs';function isEvmChain(a){return a===0xa;}function isWowChain(a){return a===0x0;}var BridgeChainId,BridgeVersion,TransferStatus,init_types=a5a(()=>{BridgeChainId=function(a){return a[a['WowMainnet']=0x0]='WowMainnet',a[a['EthMainnet']=0xa]='EthMainnet',a;}({}),BridgeVersion=function(a){return a[a['V1']=0x1]='V1',a[a['V2']=0x2]='V2',a;}({}),TransferStatus=function(a){return a['Pending']='pending',a['Approved']='approved',a['Claimed']='claimed',a['Failed']='failed',a['NotFound']='not_found',a;}({});});const BRIDGE_PACKAGE='0xb',BRIDGE_OBJECT_ID='0x9',CLOCK_OBJECT_ID='0x6',EVM_ADDRESS_LENGTH=0x14,TOKEN_DEPOSITED_EVENT_V2_TYPE=BRIDGE_PACKAGE+'::bridge::TokenDepositedEventV2';var CallBridge_DepositWow=class extends a5d{constructor(a){super(),this['data']=a;}async['call'](a){const b=await this['exec'](a);return this['lastDigest']=b['digest'],this['lastSeqNum']=parseSeqNumFromReceipt(b),this['lastReceipt']=b,b;}async['operate'](a,b,c,e){const f=this['data'];if(!f['tokenType']||f['tokenType']['split']('::')['length']<0x3)a5b('invalid\x20parameter','Invalid\x20tokenType:\x20'+f['tokenType']);if(f['amount']<=0x0n)a5b('invalid\x20parameter','amount\x20must\x20be\x20positive');const g=parseEvmAddress(f['recipientEthAddress']),h=f['destinationChainId']??0xa,i=await Account['Instance']()['get_coin_object'](b,f['amount'],f['tokenType'],await a5c(a),a['network']);if(!i)a5b('fail','Failed\x20to\x20get\x20coin\x20object');b['moveCall']({'target':BRIDGE_PACKAGE+'::bridge::send_token_v2','arguments':[b['object'](BRIDGE_OBJECT_ID),b['pure']['u8'](h),b['pure']['vector']('u8',g),i,b['object'](CLOCK_OBJECT_ID)],'typeArguments':[f['tokenType']]});}},CallBridge_ClaimWow=class extends a5d{constructor(a){super(),this['data']=a;}async['call'](a){const b=await this['exec'](a);return this['lastDigest']=b['digest'],this['lastReceipt']=b,b;}async['operate'](a,b,c,e){const f=this['data'];if(!f['tokenType']||f['tokenType']['split']('::')['length']<0x3)a5b('invalid\x20parameter','Invalid\x20tokenType:\x20'+f['tokenType']);if(f['bridgeSeqNum']<0x0n)a5b('invalid\x20parameter','bridgeSeqNum\x20must\x20be\x20non-negative');const g=f['sourceChainId']??0xa;b['moveCall']({'target':BRIDGE_PACKAGE+'::bridge::claim_and_transfer_token','arguments':[b['object'](BRIDGE_OBJECT_ID),b['object'](CLOCK_OBJECT_ID),b['pure']['u8'](g),b['pure']['u64'](f['bridgeSeqNum'])],'typeArguments':[f['tokenType']]});}};function parseEvmAddress(a){let b=a;if(b['startsWith']('0x')||b['startsWith']('0X'))b=b['slice'](0x2);if(b['length']!==EVM_ADDRESS_LENGTH*0x2)a5b('invalid\x20parameter','Invalid\x20EVM\x20address:\x20'+a+'\x20(expected\x2020\x20bytes)');const c=new Uint8Array(EVM_ADDRESS_LENGTH);for(let d=0x0;d<EVM_ADDRESS_LENGTH;d++)c[d]=parseInt(b['slice'](d*0x2,d*0x2+0x2),0x10);return c;}function parseSeqNumFromReceipt(a){const b=a['events'];if(!b||b['length']===0x0)return void 0x0;for(const c of b){if(c['type']!==TOKEN_DEPOSITED_EVENT_V2_TYPE)continue;const d=c['parsedJson'];if(!d)continue;const e=d['seq_num'];if(typeof e==='string'||typeof e==='number')return BigInt(e);}}export{TransferStatus as a,isWowChain as c,BridgeVersion as i,CallBridge_DepositWow as n,init_types as o,BridgeChainId as r,isEvmChain as s,CallBridge_ClaimWow as t};
@@ -1 +0,0 @@
1
- import{a as a6a}from'./sui-types-CuBKFvrd.mjs';import{B as a6b,H as a6c,P as a6d,U as a6e,c as a6f,ct as a6g,g as a6h,l as a6i,lt as a6j,st as a6k,u as a6l,ut as a6m,z as a6n}from'./common-fDv-Cuzq.mjs';import{_ as a6o,s as a6p}from'./local-c-Tbdkfa.mjs';import{Account}from'./w/local/account.mjs';import{GetAccountOrMark_Address,GetManyAccountOrMark_Address}from'./w/local/index.mjs';import{A as a6q,G as a6r,st as a6s,tt as a6t}from'./object-DzsQI-0e.mjs';import{t as a6u}from'./received-D7jEPxlE.mjs';import{a as a6v,c as a6w,d as a6x,f as a6y,g as a6z,h as a6A,l as a6B,m as a6C,o as a6D,p as a6E,s as a6F,t as a6G,u as a6H}from'./base-fdHKX-jS.mjs';import{create as a6I,newPermission}from'./w/call/permission.mjs';var CallPersonal=class extends a6G{constructor(a){super(),this['data']=a;}async['call'](a){return await this['exec'](a);}async['operate'](a,b,c,d){await super['prepare'](a);let e;if(this['data']['referrer']!=null)e=await GetAccountOrMark_Address(this['data']['referrer']);if(this['data']['description']!=null){if(!a6b(this['data']['description']))a6o('invalid\x20description','CallPersonal_Data\x20description\x20excceed\x20max\x20length\x20'+a6h);}if(this['data']?.['information']!=null)switch(this['data']['information']['op']){case'add':await a6D(b,this['data']['information']['data'],this['data']['description'],e);break;case'remove':a6w(b,this['data']['information']['name']);break;case'clear':a6F(b);break;}else{if(this['data']['description']!=null)a6v(b,this['data']['description'],e);}if(this['data']['mark']!=null){if(this['data']['mark']['op']==='destroy'||this['data']['mark']['op']==='transfer'){const f=await a6q({'address':await a6r(a),'no_cache':a['no_cache'],'network':a['network']});if(this['data']['mark']['op']==='destroy'&&f&&f['mark_object'])a6H(b,f['mark_object']);if(this['data']['mark']['op']==='transfer'&&f&&f['mark_object']){const g=await GetAccountOrMark_Address(this['data']['mark']['to']);if(g)a6x(b,f['mark_object'],g);else a6o('invalid\x20address','CallPersonal_Data\x20mark\x20transfer\x20to\x20address\x20'+this['data']['mark']['to']+'\x20is\x20invalid');}}else{if(this['data']['mark']['op']==='replace'){const h=await a6p['Instance']()['get_address'](this['data']['mark']['new_mark_object']);if(h)a6y(b,h,e??null);else a6o('invalid\x20address','CallPersonal_Data\x20mark\x20replace\x20to\x20address\x20'+this['data']['mark']['new_mark_object']+'\x20is\x20invalid');}else{const i=await a6q({'address':await a6r(a),'no_cache':a['no_cache'],'network':a['network']})['catch'](()=>void 0x0);let j=i?.['mark_object'];if(!j)j=a6B(b,e??null);if(!j)a6o('invalid\x20address','CallPersonal_Data\x20mark\x20fetch/launch\x20resource\x20failed');switch(this['data']['mark']['op']){case'add':{const k=this['data']['mark'];if('data'in k)for(const l of k['data']){const m=await GetAccountOrMark_Address(l['address']);a6E(b,j,{'address':m,'nick':l['name'],'tags':l['tags']??[]});}break;}case'remove':{const n=this['data']['mark'];if('data'in n)for(const o of n['data']){const p=await GetAccountOrMark_Address(o['address']);a6z(b,j,{'address':p,'tags':o['tags']??[]});}break;}case'clear':(await GetManyAccountOrMark_Address(this['data']['mark']['address']))['forEach'](q=>{a6A(b,j,q);});break;}if(!i?.['mark_object']&&j)a6C(b,j);}}}}},CallContact=class extends a6G{constructor(a){super(),this['object_address']=void 0x0,this['permission_address']=void 0x0,this['new_permission_description']=void 0x0,this['data']=a;}async['prepare'](a){await super['prepare'](a);if(!this['object_address'])this['object_address']=await a6l(this['data']?.['object']);if(this['object_address']){this['content']=void 0x0,await this['update_content'](a,'Contact',this['object_address']);if(!this['content'])a6o('invalid\x20parameter','CallContact_Data.data.object:'+this['object_address']);this['permission_address']=this['content']['permission'];}else{const b=a6f(this['data']['object']);this['permission_address']=await a6l(b?.['permission']),this['new_permission_description']=a6i(b?.['permission']);}}async['call'](a){await this['prepare'](a);const b=[],c=[],d=f=>{if(this['permission_address']&&!b['includes'](f))b['push'](f);},e=this['content'];if(this['data']?.['my_status']!=null){if(!e||!e['ims']['some'](f=>f['at']===a['account']))a6o('invalid\x20parameter','CallContact_Data.data.my_status:\x20your\x20account\x20not\x20in\x20im\x20list');}if(this['permission_address']&&!this['object_address'])d(0x1c2);if(this['permission_address']&&this['data']?.['description']!=null&&this['object_address'])d(0x1c3);if(this['permission_address']&&this['data']?.['location']!==void 0x0)d(0x1c4);if(this['permission_address']&&this['data']['ims']!=null)d(0x1c5);if(this['permission_address']&&this['data']?.['owner_receive'])d(0x1c6);if(this['permission_address']||c['length']>0x0)return await this['check_permission_and_call'](a,this['permission_address'],b,c);return await this['exec'](a);}async['operate'](a,b,c,d){let e=this['permission_address'],f=this['object_address'];const g=this['content'];if(!this['object_address']){if(!e)e=newPermission(b,this['new_permission_description']??'');if(e)f=newContact(b,e,this['data']?.['description']??'',c);}if(!f||!e)a6o('invalid\x20parameter','CallContact_Data.data.object:'+this['object_address']);if(this['data']?.['my_status']!=null)change_status(b,f,this['data']['my_status']);if(this['data']?.['description']!=null&&this['object_address'])description_set(b,f,e,this['data']['description'],c);if(this['data']?.['location']!=null)location_set(b,f,e,this['data']['location'],c);if(this['data']?.['ims']!=null)switch(this['data']['ims']['op']){case'add':case'set':{if(this['data']['ims']['im']['length']>0xc8-(g?.['ims']?.['length']??0x0))a6o('invalid\x20parameter','CallContact_Data.data.ims.im\x20exceeds\x20max\x20count:200');if(this['data']['ims']['op']==='set')im_clear(b,f,e,c);const h=await Account['Instance']()['get_many_address'](this['data']['ims']['im']['map'](k=>k['at'])),j=this['data']['ims']['im']['filter']((k,l)=>h[l]===void 0x0)['map'](k=>k['at']);if(j['length']>0x0)a6o('address\x20not\x20found','Address\x20not\x20found:\x20'+j['join'](',\x20'));for(let k=0x0;k<h['length'];k++){const l=h[k];if(l){const m=this['data']['ims']['im'][k];im_add(b,f,e,l,m?.['description'],c);}}break;}case'remove':{const n=await Account['Instance']()['get_many_address'](this['data']['ims']['im']),o=this['data']['ims']['im']['filter']((q,s)=>n[s]===void 0x0);if(o['length']>0x0)a6o('address\x20not\x20found','Address\x20not\x20found:\x20'+o['join'](',\x20'));im_remove(b,f,e,n['filter'](q=>q!=null),c);break;}case'clear':im_clear(b,f,e,c);break;}if(this['data']['owner_receive']!=null&&this['object_address']){if(this['data']['owner_receive']==='recently')this['data']['owner_receive']=await a6u({'name_or_address':{'name_or_address':this['object_address'],'local_mark_first':!![]},'no_cache':a['no_cache'],'network':a['network']});await a6t(b,f,e,this['data']['owner_receive'],void 0x0,q=>'0x2::contact::'+q,c);}if(!this['permission_address']){const q=a6f(this['data']?.['object']);await this['new_with_mark'](a,b,'Permission',a6I(b,e),a6f(q['permission']));}if(!this['object_address'])await this['new_with_mark'](a,b,'Contact',create(b,f),a6f(this['data']?.['object']));}};function create(a,b){return a['moveCall']({'target':a6d('create'),'arguments':[a6j(a,b)]});}function change_status(a,b,c){if(!a6e(c))a6o('invalid\x20parameter','Status\x20name('+c+')\x20exceeds\x20the\x20length\x20limit(64)');return a['moveCall']({'target':a6d('change_status'),'arguments':[a6j(a,b),a6m(a,c)]});}function newContact(a,b,c,d){a6s([b]);if(!a6b(c))a6o('invalid\x20description','Description\x20exceeds\x20maximum\x20length('+a6h+')');if(d)return a['moveCall']({'target':a6d('new_with_passport'),'arguments':[a6j(a,b),a6j(a,d),a6m(a,c),a['object']['mutRegistrar'](),a['object']['clock']()]});else return a['moveCall']({'target':a6d('new'),'arguments':[a6j(a,b),a6m(a,c),a['object']['mutRegistrar'](),a['object']['clock']()]});}function description_set(a,b,c,d,e){a6s([b,c]);if(!a6b(d))a6o('invalid\x20description','Description\x20exceeds\x20maximum\x20length('+a6h+')');if(e)a['moveCall']({'target':a6d('description_set_with_passport'),'arguments':[a6j(a,b),a6j(a,c),a6j(a,e),a6m(a,d)]});else a['moveCall']({'target':a6d('description_set'),'arguments':[a6j(a,b),a6j(a,c),a6m(a,d)]});}function location_set(a,b,c,d,e){a6s([b,c]);if(!a6c(d))a6o('invalid\x20location','Location\x20exceeds\x20maximum\x20length(256)');if(e)a['moveCall']({'target':a6d('location_set_with_passport'),'arguments':[a6j(a,b),a6j(a,c),a6j(a,e),a6m(a,d)]});else a['moveCall']({'target':a6d('location_set'),'arguments':[a6j(a,b),a6j(a,c),a6m(a,d)]});}function im_add(a,b,c,d,e,f){a6s([b,c]);if(!a6a(d))a6o('invalid\x20parameter','IM\x20address('+d+')\x20is\x20not\x20a\x20valid\x20address');if(e&&!a6b(e))a6o('invalid\x20description','Description\x20exceeds\x20maximum\x20length('+a6h+')');if(f)a['moveCall']({'target':a6d('im_add_with_passport'),'arguments':[a6j(a,b),a6j(a,c),a6j(a,f),a6k(a,d),a['pure']['option']('string',e),a['object']['clock']()]});else a['moveCall']({'target':a6d('im_add'),'arguments':[a6j(a,b),a6j(a,c),a6k(a,d),a['pure']['option']('string',e),a['object']['clock']()]});}function im_remove(a,b,c,d,e){if(d['length']===0x0)return;a6s([b,c]),a6n(d,f=>{if(!a6a(f))return a6o('invalid\x20parameter','IM\x20address('+f+')\x20is\x20not\x20a\x20valid\x20address'),![];return!![];});if(e)a['moveCall']({'target':a6d('im_remove_with_passport'),'arguments':[a6j(a,b),a6j(a,c),a6j(a,e),a6g(a,d,0x3e8)]});else a['moveCall']({'target':a6d('im_remove'),'arguments':[a6j(a,b),a6j(a,c),a6g(a,d,0x3e8)]});}function im_clear(a,b,c,d){a6s([b,c]);if(d)a['moveCall']({'target':a6d('im_clear_with_passport'),'arguments':[a6j(a,b),a6j(a,c),a6j(a,d)]});else a['moveCall']({'target':a6d('im_clear'),'arguments':[a6j(a,b),a6j(a,c)]});}export{CallPersonal as n,CallContact as t};
@@ -1 +0,0 @@
1
- import{c as a9a}from'./sui-types-CuBKFvrd.mjs';import{_ as a9b,s as a9c}from'./local-c-Tbdkfa.mjs';import{bcs}from'@mysten/bcs';import{fromHex as a9d,toHex as a9e}from'@mysten/utils';const _b=bcs,Address=bcs['bytes'](0x20)['transform']({'input':a=>typeof a==='string'?a9d(a9a(a)):a,'output':a=>a9a(a9e(a))});_b['U8']=bcs['u8'](),_b['U16']=bcs['u16'](),_b['U32']=bcs['u32'](),_b['U64']=bcs['u64'](),_b['U128']=bcs['u128'](),_b['U256']=bcs['u256'](),_b['Bool']=bcs['bool'](),_b['String']=bcs['string'](),_b['Address']=Address;const bcs$1=bcs;let ValueType=function(a){return a[a['Bool']=0x0]='Bool',a[a['Address']=0x1]='Address',a[a['String']=0x2]='String',a[a['U8']=0x3]='U8',a[a['U16']=0x4]='U16',a[a['U32']=0x5]='U32',a[a['U64']=0x6]='U64',a[a['U128']=0x7]='U128',a[a['U256']=0x8]='U256',a[a['VecBool']=0x9]='VecBool',a[a['VecAddress']=0xa]='VecAddress',a[a['VecString']=0xb]='VecString',a[a['VecU8']=0xc]='VecU8',a[a['VecU16']=0xd]='VecU16',a[a['VecU32']=0xe]='VecU32',a[a['VecU64']=0xf]='VecU64',a[a['VecU128']=0x10]='VecU128',a[a['VecU256']=0x11]='VecU256',a[a['VecVecU8']=0x12]='VecVecU8',a[a['Value']=0x13]='Value',a;}({});const createValueContainer=(a,b)=>{return{'valueType':a,'value':b};},parseValueType=a=>{if(typeof a==='number'){if(a>=0x0&&a<=0x13)return a;throw new Error('Invalid\x20ValueType\x20number:\x20'+a+'.\x20Valid\x20range:\x200-19');}const b=Object['keys'](ValueType)['filter'](e=>isNaN(Number(e))),c=a['toLowerCase'](),d=b['find'](e=>e['toLowerCase']()===c);if(d===void 0x0)throw new Error('Invalid\x20ValueType\x20string:\x20\x22'+a+'\x22.\x20Valid\x20values:\x20'+b['join'](',\x20'));return ValueType[d];},valueTypeToString=a=>{return ValueType[a];},isValidValueTypeInput=a=>{if(typeof a==='number')return a>=0x0&&a<=0x13;if(typeof a==='string')return typeof ValueType[a['toUpperCase']()]==='number';return![];};let OperatorType=function(a){return a[a['TypeQuery']=0x28]='TypeQuery',a[a['TypeNumberAdd']=0xc8]='TypeNumberAdd',a[a['TypeNumberSubtract']=0xc9]='TypeNumberSubtract',a[a['TypeNumberMultiply']=0xca]='TypeNumberMultiply',a[a['TypeNumberDivide']=0xcb]='TypeNumberDivide',a[a['TypeNumberMod']=0xcc]='TypeNumberMod',a[a['TypeNumberAddress']=0xcd]='TypeNumberAddress',a[a['TypeNumberString']=0xce]='TypeNumberString',a[a['TypeAddressNumber']=0xcf]='TypeAddressNumber',a[a['TypeStringNumber']=0xd0]='TypeStringNumber',a[a['TypeSafeU8']=0xdc]='TypeSafeU8',a[a['TypeSafeU16']=0xdd]='TypeSafeU16',a[a['TypeSafeU32']=0xde]='TypeSafeU32',a[a['TypeSafeU64']=0xdf]='TypeSafeU64',a[a['TypeSafeU128']=0xe0]='TypeSafeU128',a[a['TypeSafeU256']=0xe1]='TypeSafeU256',a[a['TypeStringLength']=0x3d]='TypeStringLength',a[a['TypeStringIndexof']=0x3e]='TypeStringIndexof',a[a['TypeStringNocaseIndexof']=0x3f]='TypeStringNocaseIndexof',a[a['TypeStringContains']=0x40]='TypeStringContains',a[a['TypeStringNocaseContains']=0x41]='TypeStringNocaseContains',a[a['TypeStringNocaseEqual']=0x42]='TypeStringNocaseEqual',a[a['TypedValueType']=0x46]='TypedValueType',a[a['TypedValueVecLength']=0x47]='TypedValueVecLength',a[a['TypedValueVecContains_Bool']=0x48]='TypedValueVecContains_Bool',a[a['TypedValueVecContains_Address']=0x49]='TypedValueVecContains_Address',a[a['TypedValueVecContains_String']=0x4a]='TypedValueVecContains_String',a[a['TypedValueVecContains_StringNoCase']=0x4b]='TypedValueVecContains_StringNoCase',a[a['TypedValueVecContains_Number']=0x4c]='TypedValueVecContains_Number',a[a['TypedValueVecContains_U8']=0x52]='TypedValueVecContains_U8',a[a['TypedValueVecContains_U16']=0x53]='TypedValueVecContains_U16',a[a['TypedValueVecContains_U32']=0x54]='TypedValueVecContains_U32',a[a['TypedValueVecContains_U64']=0x55]='TypedValueVecContains_U64',a[a['TypedValueVecContains_U128']=0x56]='TypedValueVecContains_U128',a[a['TypedValueVecContains_U256']=0x57]='TypedValueVecContains_U256',a[a['TypedValueVecIndexOf_Bool']=0x4d]='TypedValueVecIndexOf_Bool',a[a['TypedValueVecIndexOf_Address']=0x4e]='TypedValueVecIndexOf_Address',a[a['TypedValueVecIndexOf_String']=0x4f]='TypedValueVecIndexOf_String',a[a['TypedValueVecIndexOf_StringNoCase']=0x50]='TypedValueVecIndexOf_StringNoCase',a[a['TypedValueVecIndexOf_Number']=0x51]='TypedValueVecIndexOf_Number',a[a['TypeLogicEqual']=0x5a]='TypeLogicEqual',a[a['TypeLogicAsU256Greater']=0x5b]='TypeLogicAsU256Greater',a[a['TypeLogicAsU256GreaterEqual']=0x5c]='TypeLogicAsU256GreaterEqual',a[a['TypeLogicAsU256Lesser']=0x5d]='TypeLogicAsU256Lesser',a[a['TypeLogicAsU256LesserEqual']=0x5e]='TypeLogicAsU256LesserEqual',a[a['TypeLogicAsU256Equal']=0x5f]='TypeLogicAsU256Equal',a[a['TypeLogicAnd']=0x60]='TypeLogicAnd',a[a['TypeLogicOr']=0x61]='TypeLogicOr',a[a['TypeLogicNot']=0x62]='TypeLogicNot',a;}({}),WitnessType=function(a){return a[a['TypeOrderProgress']=0x64]='TypeOrderProgress',a[a['TypeOrderMachine']=0x65]='TypeOrderMachine',a[a['TypeOrderService']=0x66]='TypeOrderService',a[a['TypeProgressMachine']=0x67]='TypeProgressMachine',a[a['TypeArbOrder']=0x68]='TypeArbOrder',a[a['TypeArbArbitration']=0x69]='TypeArbArbitration',a[a['TypeArbProgress']=0x6a]='TypeArbProgress',a[a['TypeArbMachine']=0x6b]='TypeArbMachine',a[a['TypeArbService']=0x6c]='TypeArbService',a;}({});const isWitnessType=a=>{return a!=null&&a>=0x64&&a<=0x6c;};let ContextType=function(a){return a[a['TypeSigner']=0x2d]='TypeSigner',a[a['TypeClock']=0x2e]='TypeClock',a[a['TypeGuard']=0x2f]='TypeGuard',a[a['TypeConstant']=0x30]='TypeConstant',a;}({}),Modules=function(a){return a['Machine']='machine',a['Progress']='progress',a['Repository']='repository',a['Permission']='permission',a['Passport']='passport',a['Guard']='guard',a['Demand']='demand',a['Order']='order',a['Service']='service',a['Resource']='resource',a['Entity']='entity',a['Wowok']='wowok',a['Treasury']='treasury',a['Payment']='payment',a['Arbitration']='arbitration',a['Arb']='arb',a['Allocation']='allocation',a;}({});const PackageAddress='0x2',GasTokenType='0x2::wow::WOW',GasCoinType='0x2::coin::Coin<0x2::wow::WOW>',RegistrarAddress='0xaaa',EntityAddress='0xaab',MAX_ENV_PERMISSION_GUARD_COUNT=0x4,isGasTokenType=a=>{return a===GasTokenType;},isValidValueType=a=>{return a>=0x0&&a<=0x13;},isThisPackage=a=>{return a['startsWith']('0x2::');},isValidArray=(a,b)=>{if(!Array['isArray'](a))return![];return a['every'](c=>b(c));},isValidU8=a=>{if(typeof a==='string'){const b=parseInt(a,0xa);return!isNaN(b)&&Number['isInteger'](b)&&b>=0x0&&b<=0xff;}if(typeof a==='bigint')return a>=0x0n&&a<=0xffn;return Number['isInteger'](a)&&a>=0x0&&a<=0xff;},isValidU16=a=>{if(typeof a==='string'){const b=parseInt(a,0xa);return!isNaN(b)&&Number['isInteger'](b)&&b>=0x0&&b<=0xffff;}if(typeof a==='bigint')return a>=0x0n&&a<=0xffffn;return Number['isInteger'](a)&&a>=0x0&&a<=0xffff;},isValidU64=a=>{if(typeof a==='string'){if(a['length']>0xf)try{const b=BigInt(a);return b>=0x0n&&b<=0xffffffffffffffffn;}catch{return![];}else{const c=parseInt(a,0xa);return!isNaN(c)&&Number['isInteger'](c)&&c>=0x0&&c<=Number['MAX_SAFE_INTEGER'];}}if(typeof a==='bigint')return a>=0x0n&&a<=0xffffffffffffffffn;return Number['isInteger'](a)&&a>=0x0&&a<=Number['MAX_SAFE_INTEGER'];},isValidU128=a=>{if(typeof a==='string')try{const b=BigInt(a);return b>=0x0n&&b<=0xffffffffffffffffffffffffffffffffn;}catch{return![];}if(typeof a==='bigint')return a>=0x0n&&a<=0xffffffffffffffffffffffffffffffffn;return Number['isInteger'](a)&&a>=0x0&&a<=Number['MAX_SAFE_INTEGER'];},isValidU256=a=>{if(typeof a==='string')try{const b=BigInt(a);return b>=0x0n&&b<=0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn;}catch{return![];}if(typeof a==='bigint')return a>=0x0n&&a<=0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn;return Number['isInteger'](a)&&a>=0x0&&a<=Number['MAX_SAFE_INTEGER'];},isValidU32=a=>{if(typeof a==='string'){const b=parseInt(a,0xa);return!isNaN(b)&&Number['isInteger'](b)&&b>=0x0&&b<=0xffffffff;}if(typeof a==='bigint')return a>=0x0n&&a<=0xffffffffn;return Number['isInteger'](a)&&a>=0x0&&a<=0xffffffff;},IsBcsStringLength=(a,b)=>{return bcs$1['string']()['serialize'](a)['toBytes']()['length']<=b;},MAX_DESCRIPTION_LENGTH=0xfa0,MAX_NAME_LENGTH=0x40,MAX_LONG_NAME_LENGTH=0x100,MAX_GUARD_TABLE_ITEM_LENGTH=0x100,MAX_INPUT_SIZE=0x400,MAX_TABLE_SIZE=0x9c40,MAX_DEPENDED_COUNT=0x4,MAX_MULTI_OPERANDS=0x8,isValidDescription=a=>{return IsBcsStringLength(a,MAX_DESCRIPTION_LENGTH);},isValidName=a=>{return IsBcsStringLength(a,0x40)&&!a['toLowerCase']()['startsWith']('0x');},isValidLongName=a=>{return IsBcsStringLength(a,0x100);},isValidHttpUrl=a=>{try{const b=new URL(a);return b['protocol']==='http:'||b['protocol']==='https:'||b['protocol']==='ipfs:';}catch(c){return![];}},isValueTypeNumber=a=>{return a===0x3||a===0x4||a===0x5||a===0x6||a===0x7||a===0x8;},toTxObject=(a,b)=>{if(typeof b==='string')return a['object'](b);return b;},toTxString=(a,b)=>{if(b===void 0x0||b===null)return a['pure']['string']('');if(typeof b==='string')return a['pure']['string'](b);return b;},toTxU8=(a,b)=>{if(typeof b==='string'||typeof b==='number'||typeof b==='bigint'){if(!isValidU8(b))a9b('invalid\x20u8','Invalid\x20U8\x20value:\x20'+b);return a['pure']['u8'](Number(b));}return b;},toTxU16=(a,b)=>{if(typeof b==='string'||typeof b==='number'||typeof b==='bigint'){if(!isValidU16(b))a9b('invalid\x20u16','Invalid\x20U16\x20value:\x20'+b);return a['pure']['u16'](Number(b));}return b;},toTxU32=(a,b)=>{if(typeof b==='string'||typeof b==='number'||typeof b==='bigint'){if(!isValidU32(b))a9b('invalid\x20u32','Invalid\x20U32\x20value:\x20'+b);return a['pure']['u32'](Number(b));}return b;},toTxU128=(a,b)=>{if(typeof b==='string'||typeof b==='number'||typeof b==='bigint'){if(!isValidU128(b))a9b('invalid\x20u128','Invalid\x20U128\x20value:\x20'+b);return a['pure']['u128'](b);}return b;},toTxU256=(a,b)=>{if(typeof b==='string'||typeof b==='number'||typeof b==='bigint'){if(!isValidU256(b))a9b('invalid\x20u256','Invalid\x20U256\x20value:\x20'+b);return a['pure']['u256'](b);}return b;},toTxU64=(a,b)=>{if(typeof b==='string'||typeof b==='number'||typeof b==='bigint'){if(!isValidU64(b))a9b('invalid\x20u64','Invalid\x20U64\x20value:\x20'+b);return a['pure']['u64'](b);}return b;},toTxAddress=(a,b)=>{if(typeof b==='string')return a['pure']['address'](b);return b;},toTxAddressVec=(a,b,c)=>{if(Array['isArray'](b)){if(b['length']>c)a9b('address\x20count\x20exceeded','Invalid\x20AddressVec\x20length:\x20'+b['length']);return a['pure']['vector']('address',b);}return b;},toTxU16Vec=(a,b,c)=>{if(Array['isArray'](b)){if(b['length']>c)a9b('number\x20count\x20exceeded','Invalid\x20U16Vec\x20length:\x20'+b['length']);return a['pure']['vector']('u16',b['map'](d=>{if(!isValidU16(d))a9b('invalid\x20u16','Invalid\x20U16\x20value:\x20'+d);return Number(d);}));}return b;},object_name_from_type=a=>{if(!a)return void 0x0;let b=a['indexOf']('::');if(b>0x0&&a['slice'](0x0,b)==='0x2'){b=a['indexOf']('<');if(b>0x0)a=a['slice'](0x0,b);const c=a['lastIndexOf']('::');if(c>0x0)return a['slice'](c+0x2);}},object_module_and_name_from_type=a=>{if(!a)return void 0x0;let b=a['indexOf']('::');if(b>0x0&&a['slice'](0x0,b)==='0x2'){b=a['indexOf']('<');if(b>0x0)a=a['slice'](0x0,b);const c=a['lastIndexOf']('::');if(c>0x0)return{'module':a['slice'](b+0x2,c),'name':a['slice'](c+0x2)};}};function isTypeNamedObjectWithPermission(a){return a!=null&&typeof a==='object'&&'type_parameter'in a&&typeof a['type_parameter']==='string';}function isNamedObjectWithPermission(a){return a!=null&&typeof a==='object'&&'permission'in a;}function isNamedObject(a){return a!=null&&typeof a==='object';}function isNamedObjectWithDescription(a){return a!=null&&typeof a==='object'&&'description'in a;}function isTypeNamedObjectWithDescription(a){return a!=null&&typeof a==='object'&&'type_parameter'in a&&typeof a['type_parameter']==='string';}const GetObjectExisted=async a=>{if(typeof a==='string')return await a9c['Instance']()['get_address'](a);},GetObjectDescription=a=>{return isNamedObjectWithDescription(a)?a['description']:void 0x0;},GetObject=a=>{if(isTypeNamedObjectWithPermission(a))return a;else{if(isTypeNamedObjectWithDescription(a))return a;else{if(isNamedObjectWithPermission(a))return a;else{if(isNamedObject(a))return a;}}}},MAX_PERMISSION_GUARD_COUNT=0x4,CoinWrapPrefix='0x2::payment::CoinWrapper',IsValidBalance=a=>{return isValidU64(a);},IsValidEndpoint=a=>{return a&&IsBcsStringLength(a,0x400);},IsValidArgType=a=>{if(a){if(a['split']('::')['length']>=0x3)return!![];}return![];};let RecipientType=function(a){return a[a['GuardIdentifier']=0x0]='GuardIdentifier',a[a['Entity']=0x1]='Entity',a[a['Signer']=0x2]='Signer',a;}({});function serviceFn(a){return'0x2::service::'+a;}function demandFn(a){return'0x2::demand::'+a;}function machineFn(a){return'0x2::machine::'+a;}function contactFn(a){return'0x2::contact::'+a;}function treasuryFn(a){return'0x2::treasury::'+a;}function arbitrationFn(a){return'0x2::arbitration::'+a;}function repositoryFn(a){return'0x2::repository::'+a;}function rewardFn(a){return'0x2::reward::'+a;}let ObjectType=function(a){return a['Permission']='Permission',a['Repository']='Repository',a['Arb']='Arb',a['Arbitration']='Arbitration',a['Service']='Service',a['Machine']='Machine',a['Order']='Order',a['Progress']='Progress',a['Payment']='Payment',a['Treasury']='Treasury',a['Guard']='Guard',a['Demand']='Demand',a['Passport']='Passport',a['Allocation']='Allocation',a['Resource']='Resource',a['Reward']='Reward',a['Discount']='Discount',a['EntityRegistrar']='EntityRegistrar',a['EntityLinker']='EntityLinker',a['Proof']='Proof',a['Contact']='Contact',a['WReceivedObject']='WReceivedObject',a['TableItem_ProgressHistory']='TableItem_ProgressHistory',a['TableItem_PermissionPerm']='TableItem_PermissionPerm',a['TableItem_DemandPresenter']='TableItem_DemandPresenter',a['TableItem_MachineNode']='TableItem_MachineNode',a['TableItem_TreasuryHistory']='TableItem_TreasuryHistory',a['TableItem_RepositoryData']='TableItem_RepositoryData',a['TableItem_RewardRecord']='TableItem_RewardRecord',a['TableItem_EntityLinker']='TableItem_EntityLinker',a['TableItem_AddressMark']='TableItem_AddressMark',a['TableItem_EntityRegistrar']='TableItem_EntityRegistrar',a;}({});const ENTITY_LINKER_ADDRESS='0x0000000000000000000000000000000000000000000000000000000000000aaa',ENTITY_REGISTRAR_ADDRESS='0x0000000000000000000000000000000000000000000000000000000000000aab';export{isWitnessType as $,RegistrarAddress as A,isValidDescription as B,MAX_PERMISSION_GUARD_COUNT as C,OperatorType as D,ObjectType as E,createValueContainer as F,isValidU16 as G,isValidLongName as H,demandFn as I,isValidU64 as J,isValidU256 as K,isGasTokenType as L,WitnessType as M,arbitrationFn as N,PackageAddress as O,contactFn as P,isValueTypeNumber as Q,isThisPackage as R,MAX_NAME_LENGTH as S,Modules as T,isValidName as U,isValidHttpUrl as V,isValidU128 as W,isValidValueType as X,isValidU8 as Y,isValidValueTypeInput as Z,MAX_ENV_PERMISSION_GUARD_COUNT as _,toTxU8 as _t,EntityAddress as a,rewardFn as at,MAX_LONG_NAME_LENGTH as b,bcs$1 as bt,GetObject as c,toTxAddressVec as ct,IsBcsStringLength as d,toTxU128 as dt,machineFn as et,IsValidArgType as f,toTxU16 as ft,MAX_DESCRIPTION_LENGTH as g,toTxU64 as gt,MAX_DEPENDED_COUNT as h,toTxU32 as ht,ENTITY_REGISTRAR_ADDRESS as i,repositoryFn as it,ValueType as j,RecipientType as k,GetObjectDescription as l,toTxObject as lt,IsValidEndpoint as m,toTxU256 as mt,ContextType as n,object_name_from_type as nt,GasCoinType as o,serviceFn as ot,IsValidBalance as p,toTxU16Vec as pt,isValidU32 as q,ENTITY_LINKER_ADDRESS as r,parseValueType as rt,GasTokenType as s,toTxAddress as st,CoinWrapPrefix as t,object_module_and_name_from_type as tt,GetObjectExisted as u,toTxString as ut,MAX_GUARD_TABLE_ITEM_LENGTH as v,treasuryFn as vt,MAX_TABLE_SIZE as w,MAX_MULTI_OPERANDS as x,MAX_INPUT_SIZE as y,valueTypeToString as yt,isValidArray as z};