@wowok/wowok 2.7.0 → 2.7.2

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 (117) hide show
  1. package/dist/esm/{arb-DdsVJAQS.mjs → arb-CJF_EddE.mjs} +1 -1
  2. package/dist/esm/base-CYxSaUuJ.mjs +1 -0
  3. package/dist/esm/bcs/index.d.mts +1 -1
  4. package/dist/esm/{cache-DSTBqmVF.d.mts → cache-BMhtVd6c.d.mts} +16 -1
  5. package/dist/esm/{call-B2_VblCK.mjs → call-Cywvas5K.mjs} +1 -1
  6. package/dist/esm/client/index.d.mts +1 -1
  7. package/dist/esm/client/index.mjs +1 -1
  8. package/dist/esm/{client-DbLjWV0v.mjs → client-MC_bMJ87.mjs} +1 -1
  9. package/dist/esm/cryptography/index.d.mts +1 -1
  10. package/dist/esm/{evm-account-Bk7Axxmu.d.mts → evm-account-CNlXZf5j.d.mts} +2 -2
  11. package/dist/esm/graphql/index.d.mts +1 -1
  12. package/dist/esm/graphql/index.mjs +1 -1
  13. package/dist/esm/graphql-DyHgyFF1.mjs +1 -0
  14. package/dist/esm/grpc/index.d.mts +1 -1
  15. package/dist/esm/grpc/index.mjs +1 -1
  16. package/dist/esm/grpc-hXEJj4j2.mjs +1 -0
  17. package/dist/esm/{index-BeiKuYsk.d.mts → index-DKiDYAU7.d.mts} +241 -15
  18. package/dist/esm/{index-B-cxGU73.d.mts → index-o_aMVwsK.d.mts} +6 -6
  19. package/dist/esm/index.d.mts +8 -8
  20. package/dist/esm/index.mjs +1 -1
  21. package/dist/esm/jsonRpc/index.d.mts +1 -1
  22. package/dist/esm/jsonRpc/index.mjs +1 -1
  23. package/dist/esm/keypairs/ed25519/index.d.mts +1 -1
  24. package/dist/esm/keypairs/falcon512/index.d.mts +1 -1
  25. package/dist/esm/keypairs/passkey/index.d.mts +1 -1
  26. package/dist/esm/keypairs/secp256k1/index.d.mts +1 -1
  27. package/dist/esm/keypairs/secp256r1/index.d.mts +1 -1
  28. package/dist/esm/{messenger-CnEo2ENd.mjs → messenger-DWKpbHh_.mjs} +1 -1
  29. package/dist/esm/messenger-api-6SNwqUc9.mjs +1 -0
  30. package/dist/esm/multisig/index.d.mts +1 -1
  31. package/dist/esm/{network-Bgq9iuE4.mjs → network-y8yMus5q.mjs} +1 -1
  32. package/dist/esm/object-DNHdm1WB.mjs +1 -0
  33. package/dist/esm/{passport-DRaRa4Fd.mjs → passport-D9Eb_Lr_.mjs} +1 -1
  34. package/dist/esm/{proof-DT_n7Pdr.mjs → proof-DX_054JO.mjs} +1 -1
  35. package/dist/esm/query-jhhX2TCc.mjs +1 -0
  36. package/dist/esm/{received-Cfbf_dGN.mjs → received-CS8oPEsV.mjs} +1 -1
  37. package/dist/esm/{secure-storage-lI6ZR9sW.d.mts → secure-storage-BT8ZocZk.d.mts} +1 -1
  38. package/dist/esm/{service-70b2Ro-x.mjs → service-bSno0GBf.mjs} +1 -1
  39. package/dist/esm/{storage-B8nW4YTJ.d.mts → storage-BRIn6pWr.d.mts} +16 -0
  40. package/dist/esm/transactions/index.d.mts +1 -1
  41. package/dist/esm/{util-B-uD1Zk7.mjs → util-CFkiPbY7.mjs} +1 -1
  42. package/dist/esm/util-QEomrz8o.d.mts +60 -0
  43. package/dist/esm/verify/index.d.mts +1 -1
  44. package/dist/esm/w/call/allocation.d.mts +1 -1
  45. package/dist/esm/w/call/allocation.mjs +1 -1
  46. package/dist/esm/w/call/arbitration.d.mts +1 -1
  47. package/dist/esm/w/call/arbitration.mjs +1 -1
  48. package/dist/esm/w/call/base.d.mts +1 -1
  49. package/dist/esm/w/call/base.mjs +1 -1
  50. package/dist/esm/w/call/demand.d.mts +1 -1
  51. package/dist/esm/w/call/demand.mjs +1 -1
  52. package/dist/esm/w/call/guard.d.mts +1 -1
  53. package/dist/esm/w/call/guard.mjs +1 -1
  54. package/dist/esm/w/call/index.d.mts +1 -1
  55. package/dist/esm/w/call/index.mjs +1 -1
  56. package/dist/esm/w/call/machine.d.mts +1 -1
  57. package/dist/esm/w/call/machine.mjs +1 -1
  58. package/dist/esm/w/call/passport.d.mts +1 -1
  59. package/dist/esm/w/call/passport.mjs +1 -1
  60. package/dist/esm/w/call/payment.d.mts +1 -1
  61. package/dist/esm/w/call/payment.mjs +1 -1
  62. package/dist/esm/w/call/permission.d.mts +1 -1
  63. package/dist/esm/w/call/permission.mjs +1 -1
  64. package/dist/esm/w/call/progress.d.mts +1 -1
  65. package/dist/esm/w/call/progress.mjs +1 -1
  66. package/dist/esm/w/call/repository.d.mts +1 -1
  67. package/dist/esm/w/call/repository.mjs +1 -1
  68. package/dist/esm/w/call/reward.d.mts +1 -1
  69. package/dist/esm/w/call/reward.mjs +1 -1
  70. package/dist/esm/w/call/service.d.mts +1 -1
  71. package/dist/esm/w/call/service.mjs +1 -1
  72. package/dist/esm/w/call/treasury.d.mts +1 -1
  73. package/dist/esm/w/call/treasury.mjs +1 -1
  74. package/dist/esm/w/common.d.mts +1 -1
  75. package/dist/esm/w/index.d.mts +7 -7
  76. package/dist/esm/w/index.mjs +1 -1
  77. package/dist/esm/w/local/account.d.mts +2 -2
  78. package/dist/esm/w/local/account.mjs +1 -1
  79. package/dist/esm/w/local/cache.d.mts +1 -1
  80. package/dist/esm/w/local/cache.mjs +1 -1
  81. package/dist/esm/w/local/config.mjs +1 -1
  82. package/dist/esm/w/local/evm-account.d.mts +1 -1
  83. package/dist/esm/w/local/index.d.mts +7 -7
  84. package/dist/esm/w/local/index.mjs +1 -1
  85. package/dist/esm/w/local/secure-storage.d.mts +1 -1
  86. package/dist/esm/w/local/storage.d.mts +1 -1
  87. package/dist/esm/w/local/storage.mjs +1 -1
  88. package/dist/esm/w/local/token.d.mts +1 -1
  89. package/dist/esm/w/local/token.mjs +1 -1
  90. package/dist/esm/w/local/util.d.mts +2 -2
  91. package/dist/esm/w/local/util.mjs +1 -1
  92. package/dist/esm/w/local/wip.d.mts +1 -1
  93. package/dist/esm/w/local/wip.mjs +1 -1
  94. package/dist/esm/w/messenger/index.d.mts +1 -1
  95. package/dist/esm/w/messenger/index.mjs +1 -1
  96. package/dist/esm/w/messenger/messenger-api.d.mts +1 -1
  97. package/dist/esm/w/messenger/messenger-api.mjs +1 -1
  98. package/dist/esm/w/messenger/messenger.d.mts +1 -1
  99. package/dist/esm/w/messenger/messenger.mjs +1 -1
  100. package/dist/esm/w/messenger/reply.d.mts +1 -1
  101. package/dist/esm/w/messenger/storage.d.mts +1 -1
  102. package/dist/esm/w/messenger/types.d.mts +1 -1
  103. package/dist/esm/w/messenger/types.mjs +1 -1
  104. package/dist/esm/w/query/index.d.mts +2 -2
  105. package/dist/esm/w/query/index.mjs +1 -1
  106. package/dist/esm/w/query/object.d.mts +2 -2
  107. package/dist/esm/w/query/object.mjs +1 -1
  108. package/dist/esm/{w-s_ejdDrP.mjs → w-BTmXEhGc.mjs} +1 -1
  109. package/dist/esm/{wip-NbB1ChbI.d.mts → wip-Cq6OttmQ.d.mts} +1 -1
  110. package/package.json +1 -1
  111. package/dist/esm/base-Bem5gVfE.mjs +0 -1
  112. package/dist/esm/graphql-DBzTX0je.mjs +0 -1
  113. package/dist/esm/grpc-CJ97juzx.mjs +0 -1
  114. package/dist/esm/messenger-api-OFn2tErd.mjs +0 -1
  115. package/dist/esm/object-BaLfg7ui.mjs +0 -1
  116. package/dist/esm/query-CaWOlNHH.mjs +0 -1
  117. package/dist/esm/util-7R_TK4HK.d.mts +0 -18
@@ -1 +0,0 @@
1
- import{t as a47a}from'./client-DbLjWV0v.mjs';import{n as a47b}from'./network-Bgq9iuE4.mjs';import{A as a47c,D as a47d,E as a47e,M as a47f,a as a47g,j as a47h,n as a47i,o as a47j,s as a47k}from'./common-BDlb-AoC.mjs';import{o as a47l}from'./exception-C6IYkBi6.mjs';import{Cache}from'./w/local/cache.mjs';import{Config}from'./w/local/config.mjs';import{LocalMark}from'./w/local/local.mjs';import{compressedPubKeyToAddress}from'./w/local/evm/rlp.mjs';import{GetAccountOrMark_Address}from'./w/local/index.mjs';import{B as a47m,L as a47n,Q as a47o,X as a47p}from'./object-BaLfg7ui.mjs';import{query_permissions}from'./w/call/permission.mjs';const isValidObjectAddr=a=>typeof a==='string'&&a['length']>0x2&&a!=='0x0',MAX_NODE_LIST_PAGES=0x5,query_serviceContext=async a=>{const b=await Config['Instance']()['network_get'](a['network']),c=a47o(b)?'graphql':'json-rpc';let d;if(typeof a['service']==='string'){const j=(await a47n({'objects':[a['service']],'no_cache':a['no_cache'],'network':b}))['objects']?.['find'](k=>k['type']==='Service');if(!j)a47l('fail','query_serviceContext:\x20service\x20'+a['service']+'\x20not\x20found');d=j;}else d=a['service'];const e=new Map(),f=(k,l)=>{if(isValidObjectAddr(l))e['set'](k,l);};f('machine',d['machine']),f('buy_guard',d['buy_guard']),f('permission',d['permission']),f('um',d['um']);for(const k of d['arbitrations']??[])f('arbitrations:'+k,k);for(const l of d['rewards']??[])f('rewards:'+l,l);for(const m of d['repositories']??[])f('repositories:'+m,m);for(const n of d['order_allocators']?.['allocators']??[])f('allocator_guard:'+n['guard'],n['guard']);const g={};if(e['size']>0x0){const o=await a47n({'objects':[...e['values']()],'no_cache':a['no_cache'],'network':b});for(const p of o['objects']??[])if(p?.['object'])g[p['object']]=p;}const h=q=>q?g[q]:void 0x0;let i;if(a['include_machine_nodes']&&isValidObjectAddr(d['machine']))i=await fetchMachineNodes(d['machine'],a);return{'service':d,'machine':h(d['machine']),'buy_guard':h(d['buy_guard']),'permission':h(d['permission']),'allocator_guards':(d['order_allocators']?.['allocators']??[])['map'](q=>h(q['guard']))['filter'](q=>q?.['type']==='Guard'),'referenced':g,'machine_nodes':i,'transport':c};},fetchMachineNodes=async(a,b)=>{const c=await Config['Instance']()['network_get'](b['network']),d=[];let e;for(let f=0x0;f<MAX_NODE_LIST_PAGES;f++){let g;try{g=await a47m({'parent':a,'cursor':e,'limit':null,'no_cache':b['no_cache'],'network':c});}catch{break;}if(!g?.['items']?.['length'])break;for(const h of g['items'])if(h['object'])d['push'](h['object']);e=g['nextCursor'];if(!e||!g['hasNextPage'])break;}if(d['length']===0x0)return[];return((await a47n({'objects':d,'no_cache':b['no_cache'],'network':c}))['objects']??[])['filter'](i=>i?.['type']==='TableItem_MachineNode');},query_events_json=async a=>{try{const b=JSON['parse'](a);return JSON['stringify']({'data':await query_events(b)});}catch(c){return JSON['stringify']({'error':c?.['toString']()});}},query_events=async a=>{const b=await Config['Instance']()['network_get'](a['network']),c=a['cursor']?a['cursor']['eventSeq']+':'+a['cursor']['txDigest']:'',e=a['limit']?.['toString']()??'',f=a['order']??'',g=await Cache['read'](['event',a['type'],c,e,f,b],async()=>{const h=await events(a['type'],a);return{'expire':Cache['DefaultExpireTime'](),'data':h};},a['no_cache']);if(g){const h=g['data'];return h['cache_expire']=g['expire'],h;}},events=async(a,b)=>{const c=await Config['Instance']()['network_get'](b['network']),d=new a47a({'url':a47b(c),'network':c}),e=a==='ArbEvent'||a==='NewOrderEvent'||a==='ProgressEvent'||a==='DemandPresentEvent'||a==='DemandFeedbackEvent'||a==='NewEntityEvent';let f;if(e)f='0x2'+{'ArbEvent':'::arb::ArbEvent','NewOrderEvent':'::order::NewOrderEvent','ProgressEvent':'::progress::ProgressEvent','DemandPresentEvent':'::demand::PresentEvent','DemandFeedbackEvent':'::demand::DemandEvent','NewEntityEvent':'::registrar::NewEntityEvent'}[a];else f=a;const g=await d['queryEvents']({'query':{'MoveEventType':f},'cursor':b['cursor'],'limit':b['limit'],'order':b['order']==='descending'?'descending':'ascending'});return{'data':g?.['data']?.['map'](h=>{if(h?.['packageId']==='0x2'){if(h?.['type']?.['includes']('::order::NewOrderEvent'))return{'id':h?.['id'],'time':h?.['timestampMs'],'type_raw':h?.['type'],'sender':h?.['sender'],'type':'NewOrderEvent','order':h?.['parsedJson']?.['object'],'service':h?.['parsedJson']?.['service'],'progress':h?.['parsedJson']?.['progress']?.['some']??null,'amount':h?.['parsedJson']?.['amount'],'discount':h?.['parsedJson']?.['discount']?.['some']??null,'allocation':h?.['parsedJson']?.['allocation']?.['some']??null};else{if(h?.['type']?.['includes']('::demand::PresentEvent'))return{'id':h?.['id'],'time':h?.['timestampMs'],'type_raw':h?.['type'],'sender':h?.['sender'],'type':'DemandPresentEvent','demand':h?.['parsedJson']?.['object'],'service':h?.['parsedJson']?.['service']?.['some']??null,'recommend':h?.['parsedJson']?.['tips']};else{if(h?.['type']?.['includes']('::demand::DemandEvent'))return{'id':h?.['id'],'time':h?.['timestampMs'],'type_raw':h?.['type'],'sender':h?.['sender'],'type':'DemandFeedbackEvent','demand':h?.['parsedJson']?.['object'],'service':h?.['parsedJson']?.['service']?.['some']??null,'feedback':h?.['parsedJson']?.['feedback'],'acceptance_score':h?.['parsedJson']?.['acceptance_score']?.['some']??null};else{if(h?.['type']?.['includes']('::progress::ProgressEvent'))return{'id':h?.['id'],'time':h?.['timestampMs'],'type_raw':h?.['type'],'sender':h?.['sender'],'type':'ProgressEvent','progress':h?.['parsedJson']?.['object'],'machine':h?.['parsedJson']?.['machine'],'task':h?.['parsedJson']?.['task'],'node':h?.['parsedJson']?.['node'],'forward':h?.['parsedJson']?.['forward'],'hold':h?.['parsedJson']?.['hold']};else{if(h?.['type']?.['includes']('::arb::ArbEvent'))return{'id':h?.['id'],'time':h?.['timestampMs'],'type_raw':h?.['type'],'sender':h?.['sender'],'type':'ArbEvent','arb':h?.['parsedJson']?.['object'],'arbitration':h?.['parsedJson']?.['arbitration'],'order':h?.['parsedJson']?.['order'],'status':h?.['parsedJson']?.['status']};else{if(h?.['type']?.['includes']('::registrar::NewEntityEvent'))return{'id':h?.['id'],'time':h?.['timestampMs'],'type_raw':h?.['type'],'sender':h?.['sender'],'type':'NewEntityEvent','resource':h?.['parsedJson']?.['resource'],'address':h?.['sender'],'referrer':h?.['parsedJson']?.['referrer']?.['some']??null};}}}}}}return{'id':h?.['id'],'time':h?.['timestampMs'],'type_raw':h?.['type'],'sender':h?.['sender'],'type':h?.['type'],'parsedJson_raw':h?.['parsedJson']};}),'hasNextPage':g?.['hasNextPage'],'nextCursor':g?.['nextCursor']};};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['AlreadyProcessed']='ALREADY_PROCESSED',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':'https://eth.drpc.org','bridgeProxyAddress':'0xA8d914Cc121CB2d2179Ca540bC0B8213F224aa00','bridgeVaultAddress':'0xC9A6EF1A3dC6f0681d39C318c4882FB7704a7848','bridgeCommitteeAddress':'0x822779c4183ed69bdd38e0454ec1826d2ae186a5','bridgeConfigAddress':'0xaf9414c8ab0a0905a6b9ad24c927416ac765a4ce'},'bridgeNodeUrls':['http://bridge.mainnet.wowok.net:9211','http://150.158.76.254:9211','http://110.40.159.14:9211'],'defaultVersion':0x2,'tokens':[{'tokenId':0x1,'symbol':'WBTC','wowTypeTag':'0x184a37e507991cfc8ee32c536cb7f6839fc836c8d36f928274f4fada795c101a::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':'0x107c69d91b57f5f8b1b877bf9228101784bc7dfda6b63956a40f8d2bddb01bcb::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':'0x107c69d91b57f5f8b1b877bf9228101784bc7dfda6b63956a40f8d2bddb01bcb::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':'0x694b2b1ee343434e921f87259ee959274ff250dc67990e93114022d55801d472::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':'0x999f4614ee484a263e8e02b55d0ba1fd63c82fb796370e614ccb9e7343573c76::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 INFO_CONSTANT={'type':'constants','constants':[{'name':'Protocol\x20Package\x20ID','value':'0x2','description':'Protocol\x20package\x20ID'},{'name':'Gas\x20Token\x20Type','value':a47k,'description':'Gas\x20token\x20type'},{'name':'Gas\x20Coin\x20Type','value':a47j,'description':'Gas\x20coin\x20type'},{'name':'Entity\x20Linker\x20ID','value':a47c,'description':'Entity\x20Linker\x20ID'},{'name':'Entity\x20Registrar\x20ID','value':a47g,'description':'Entity\x20registrar\x20ID'}],'value_types':Object['entries'](a47h)['filter'](([a,b])=>isNaN(Number(a))&&a!=='Value')['map'](([a,b])=>({'name':a,'value':a,'description':'Value\x20type\x20'+a+'\x20=\x20'+b})),'object_types':Object['values'](a47e)['map'](a=>({'name':a,'value':a,'description':'Object\x20type\x20'+a})),'guard_instructions':Object['values'](a47d)['map'](a=>({'name':a,'value':a,'description':'Guard\x20instruction\x20'+a})),'guard_contexts':Object['values'](a47i)['map'](a=>({'name':a,'value':a,'description':'Guard\x20context\x20'+a})),'guard_witnesses':Object['values'](a47f)['map'](a=>({'name':a,'value':a,'description':'Guard\x20witness\x20'+a}))},COMMON_MISTAKES=[{'object_type':'Service','operation':'compensation_fund_add','category':'field_name','mistake':'Using\x20{amount:\x20...}\x20or\x20{amount:\x20...,\x20type:\x20\x27WOW\x27}\x20instead\x20of\x20{balance:\x20...}.\x20The\x20correct\x20field\x20name\x20is\x20\x27balance\x27,\x20and\x20the\x20token\x20type\x20is\x20inferred\x20from\x20the\x20Service\x27s\x20type_parameter\x20(generic\x20type).','correct_usage':'{balance:\x20<amount_in_smallest_unit>}.\x20The\x20smallest\x20unit\x20depends\x20on\x20the\x20Service\x27s\x20type_parameter:\x20WOW/SUI\x20use\x209\x20decimals\x20(10^9\x20=\x201\x20token),\x20USDC\x20uses\x206\x20decimals\x20(10^6\x20=\x201\x20token).','wrong_example':'{\x22compensation_fund_add\x22:\x20{\x22amount\x22:\x201000000000,\x20\x22type\x22:\x20\x22WOW\x22}}','correct_example':'{\x22compensation_fund_add\x22:\x20{\x22balance\x22:\x201000000000}}\x20(1\x20WOW\x20or\x201\x20SUI,\x20assuming\x209-decimal\x20token\x20type)'},{'object_type':'Service','operation':'compensation_fund_add','category':'workflow','mistake':'Calling\x20compensation_fund_add\x20without\x20first\x20granting\x20permission\x20315\x20(SERVICE_COMPENSATION_FUND_DEPOSIT)\x20to\x20the\x20calling\x20account.\x20The\x20Move\x20layer\x20will\x20reject\x20with\x20\x27Missing\x20permissions\x20315\x27.','correct_usage':'Grant\x20permission\x20315\x20to\x20the\x20funder\x20account\x20via\x20permission.table\x20{op:\x20\x27add\x20perm\x20by\x20index\x27,\x20index:\x20315,\x20entity:\x20[funder_account]}\x20BEFORE\x20calling\x20compensation_fund_add.','wrong_example':'{\x22compensation_fund_add\x22:\x20{\x22balance\x22:\x201000000000}}\x20(without\x20permission\x20315\x20granted)','correct_example':'Step\x201:\x20permission.table\x20{op:\x20\x22add\x20perm\x20by\x20index\x22,\x20index:\x20315,\x20entity:\x20[\x22funder\x22]}\x20→\x20Step\x202:\x20{\x22compensation_fund_add\x22:\x20{\x22balance\x22:\x201000000000}}'},{'object_type':'Service','operation':'setting_lock_duration_add','category':'unit','mistake':'Passing\x20seconds\x20instead\x20of\x20milliseconds.\x20The\x20field\x20is\x20in\x20MILLISECONDS,\x20not\x20seconds.\x20Multiply\x20seconds\x20by\x201000.','correct_usage':'Value\x20in\x20milliseconds.\x2086400000\x20=\x201\x20day,\x202592000000\x20=\x2030\x20days\x20(default),\x207776000000\x20=\x2090\x20days.','wrong_example':'{\x22setting_lock_duration_add\x22:\x202592000}\x20(30\x20days\x20in\x20SECONDS\x20—\x20actually\x20only\x2025.92\x20seconds!)','correct_example':'{\x22setting_lock_duration_add\x22:\x202592000000}\x20(30\x20days\x20in\x20milliseconds)'},{'object_type':'Service','operation':'setting_lock_duration_add','category':'value_range','mistake':'Expecting\x20the\x20default\x20to\x20be\x2090\x20days.\x20The\x20actual\x20default\x20(DEFAULT_LOCK_DURATION)\x20is\x2030\x20days\x20(2592000000\x20ms).\x20This\x20is\x20the\x20value\x20set\x20when\x20a\x20Service\x20is\x20created\x20without\x20explicitly\x20setting\x20setting_lock_duration_add.','correct_usage':'If\x20you\x20need\x2090\x20days,\x20explicitly\x20set\x20setting_lock_duration_add\x20to\x207776000000\x20(90\x20days\x20in\x20ms).\x20Note:\x20setting_lock_duration_add\x20is\x20ADDITIVE\x20—\x20it\x20only\x20increases\x20the\x20duration.','wrong_example':'Creating\x20a\x20Service\x20and\x20expecting\x20setting_lock_duration\x20=\x207776000000\x20(90\x20days)\x20without\x20setting\x20setting_lock_duration_add.','correct_example':'{\x22setting_lock_duration_add\x22:\x207776000000}\x20(90\x20days\x20in\x20ms)\x20—\x20set\x20during\x20Service\x20creation.'},{'object_type':'Service','operation':'order_allocators','category':'workflow','mistake':'Setting\x20order_allocators\x20AFTER\x20publish.\x20order_allocators\x20is\x20L1\x20immutable\x20after\x20publish\x20(Move:\x20assert!(!bPublished)).\x20It\x20MUST\x20be\x20set\x20BEFORE\x20publish=true.','correct_usage':'Set\x20order_allocators\x20in\x20Phase\x201\x20(Service\x20creation,\x20before\x20publish).\x20Phase\x202\x20(publish=true)\x20only\x20flips\x20the\x20publish\x20flag.','wrong_example':'Step\x201:\x20create\x20+\x20publish\x20Service\x20→\x20Step\x202:\x20set\x20order_allocators\x20(FAILS:\x20assert!(!bPublished))','correct_example':'Step\x201:\x20create\x20Service\x20(no\x20publish)\x20+\x20set\x20order_allocators\x20→\x20Step\x202:\x20publish=true'},{'object_type':'Service','operation':'machine','category':'workflow','mistake':'Setting\x20machine\x20AFTER\x20publish.\x20machine\x20is\x20L1\x20immutable\x20after\x20publish\x20(Move:\x20assert!(!bPublished)).\x20It\x20MUST\x20be\x20set\x20BEFORE\x20publish=true.','correct_usage':'Set\x20machine\x20in\x20Phase\x201\x20(Service\x20creation,\x20before\x20publish).','wrong_example':'Step\x201:\x20create\x20+\x20publish\x20Service\x20→\x20Step\x202:\x20set\x20machine\x20(FAILS)','correct_example':'Step\x201:\x20create\x20Service\x20(no\x20publish)\x20+\x20set\x20machine\x20→\x20Step\x202:\x20publish=true'},{'object_type':'Arbitration','operation':'voting_deadline','category':'unit','mistake':'Passing\x20seconds\x20instead\x20of\x20milliseconds.\x20voting_deadline\x20is\x20a\x20Unix\x20timestamp\x20in\x20MILLISECONDS,\x20not\x20seconds.\x20Multiply\x20seconds\x20by\x201000.','correct_usage':'Unix\x20timestamp\x20in\x20milliseconds.\x20Use\x20Date.now()\x20+\x20<duration_ms>\x20for\x20a\x20future\x20deadline.\x20Example:\x20Date.now()\x20+\x20259200000\x20for\x203\x20days.','wrong_example':'{\x22voting_deadline\x22:\x201785190000}\x20(seconds\x20—\x20this\x20is\x20in\x202026-05\x20but\x20in\x20seconds,\x20which\x20is\x20actually\x201970-01-21)','correct_example':'{\x22voting_deadline\x22:\x201785190000000}\x20(milliseconds\x20—\x20correct\x20Unix\x20timestamp\x20in\x20ms)'},{'object_type':'Arbitration','operation':'voting_deadline','category':'timing','mistake':'Setting\x20voting_deadline\x20to\x20a\x20past\x20time.\x20The\x20deadline\x20MUST\x20be\x20in\x20the\x20future\x20(recommended:\x20now\x20+\x20at\x20least\x2086400000\x20ms\x20=\x2024\x20hours).\x20Past\x20deadlines\x20prevent\x20voting.','correct_usage':'Use\x20Date.now()\x20+\x20<duration_ms>.\x20Minimum\x20recommended:\x2086400000\x20ms\x20(24\x20hours).\x203\x20days\x20=\x20259200000\x20ms.','wrong_example':'{\x22voting_deadline\x22:\x201785190000000}\x20(if\x20this\x20is\x20in\x20the\x20past,\x20voting\x20will\x20fail)','correct_example':'{\x22voting_deadline\x22:\x20Date.now()\x20+\x20259200000}\x20(3\x20days\x20from\x20now)'},{'object_type':'Arbitration','operation':'dispute','category':'field_name','mistake':'Using\x20{amount:\x20...}\x20for\x20the\x20dispute\x20fee\x20instead\x20of\x20{balance:\x20...}.\x20The\x20fee\x20field\x20uses\x20CoinParamSchema\x20which\x20requires\x20\x27balance\x27,\x20not\x20\x27amount\x27.','correct_usage':'{balance:\x20<amount_in_smallest_unit>}.\x20The\x20smallest\x20unit\x20depends\x20on\x20the\x20Arbitration\x27s\x20type_parameter:\x20WOW/SUI\x20use\x209\x20decimals,\x20USDC\x20uses\x206\x20decimals.','wrong_example':'{\x22fee\x22:\x20{\x22amount\x22:\x2050000000}}','correct_example':'{\x22fee\x22:\x20{\x22balance\x22:\x2050000000}}\x20(0.05\x20WOW\x20or\x200.05\x20SUI,\x20assuming\x209-decimal\x20token\x20type)'},{'object_type':'Order','operation':'order_new','category':'workflow','mistake':'Not\x20setting\x20namedNewOrder/namedNewAllocation/namedNewProgress\x20when\x20creating\x20an\x20Order.\x20Without\x20names,\x20subsequent\x20operations\x20must\x20use\x20on-chain\x20addresses,\x20which\x20are\x20hard\x20to\x20reference.','correct_usage':'Set\x20namedNewOrder,\x20namedNewAllocation,\x20and\x20namedNewProgress\x20to\x20local\x20names\x20for\x20easy\x20reference\x20in\x20subsequent\x20operations.','wrong_example':'{\x22order_new\x22:\x20{\x22buy\x22:\x20{...}}}\x20(no\x20namedNewOrder\x20—\x20must\x20use\x20address\x20for\x20all\x20subsequent\x20operations)','correct_example':'{\x22order_new\x22:\x20{\x22buy\x22:\x20{...},\x20\x22namedNewOrder\x22:\x20{\x22name\x22:\x20\x22my_order\x22},\x20\x22namedNewAllocation\x22:\x20{\x22name\x22:\x20\x22my_alloc\x22},\x20\x22namedNewProgress\x22:\x20{\x22name\x22:\x20\x22my_progress\x22}}}'},{'object_type':'ALL','operation':'create_with_reference','category':'workflow','mistake':'Creating\x20an\x20object\x20that\x20references\x20another\x20object\x20by\x20name\x20(LocalMark)\x20when\x20the\x20referenced\x20object\x20does\x20not\x20exist\x20yet.\x20This\x20causes\x20BCS\x20serialization\x20error:\x20\x27failed\x20to\x20resolve\x20string:\x20<name>\x27.\x20The\x20general\x20pattern\x20is:\x20create\x20object\x20A\x20(no\x20publish,\x20establishes\x20LocalMark)\x20→\x20create\x20object\x20B\x20that\x20references\x20A\x20→\x20update\x20A\x20with\x20references\x20to\x20B\x20→\x20publish\x20A.','correct_usage':'GENERAL\x20DEPLOYMENT\x20ORDER\x20RULE:\x20(1)\x20Create\x20all\x20objects\x20with\x20basic\x20config,\x20no\x20publish\x20—\x20addresses\x20are\x20determined\x20and\x20LocalMark\x20names\x20are\x20registered.\x20(2)\x20Create\x20Guards\x20and\x20other\x20objects\x20that\x20reference\x20the\x20first\x20batch\x20—\x20LocalMark\x20names\x20now\x20resolve.\x20(3)\x20Update\x20objects\x20with\x20cross-references\x20(order_allocators,\x20buy_guard,\x20etc.).\x20(4)\x20Publish\x20objects.\x20This\x20avoids\x20all\x20circular\x20dependencies.','wrong_example':'Step\x201:\x20create\x20Guard\x20referencing\x20\x22my_service\x22\x20(my_service\x20does\x20not\x20exist)\x20→\x20BCS\x20error','correct_example':'Step\x201:\x20create\x20Service\x20(no\x20publish,\x20establishes\x20\x22my_service\x22\x20LocalMark)\x20→\x20Step\x202:\x20create\x20Guard\x20referencing\x20\x22my_service\x22\x20→\x20Step\x203:\x20update\x20Service\x20with\x20order_allocators\x20referencing\x20Guard\x20→\x20Step\x204:\x20publish\x20Service'},{'object_type':'Machine','operation':'add|set','category':'architecture','mistake':'Including\x20arbitration/dispute\x20nodes\x20in\x20a\x20Machine\x20workflow.\x20CORE\x20PRINCIPLE:\x20A\x20merchant\x27s\x20business\x20flow\x20cannot\x20handle\x20disputes\x20fairly\x20because\x20the\x20merchant\x20would\x20be\x20\x27both\x20player\x20and\x20referee\x27\x20(既当球员又当裁判).\x20The\x20WoWok\x20smart\x20contract\x20design\x20enforces\x20this\x20by\x20making\x20Arbitration\x20a\x20completely\x20separate\x20object\x20—\x20it\x20has\x20its\x20own\x20Permission,\x20voting_guard,\x20usage_guard,\x20and\x20balance,\x20with\x20NO\x20reference\x20from\x20Machine/Progress\x20to\x20Arbitration.\x20The\x20Order\x20object\x20is\x20the\x20bridge:\x20it\x20has\x20both\x20`progress`\x20(Machine)\x20and\x20`dispute`\x20(list\x20of\x20Arb\x20addresses)\x20fields,\x20but\x20the\x20Arb\x20lifecycle\x20(7\x20states:\x20Principal_confirming\x20→\x20Arbitrator_confirming\x20→\x20Voting\x20→\x20Arbitrated\x20→\x20Objectionable\x20→\x20Finished\x20→\x20Withdrawn)\x20is\x20managed\x20entirely\x20by\x20the\x20Arbitration\x20object,\x20not\x20by\x20the\x20Machine.','correct_usage':'ARBITRATION\x20SEPARATION\x20RULE:\x20(1)\x20Machine\x20workflows\x20model\x20BUSINESS\x20states\x20only\x20(e.g.,\x20ordered\x20→\x20shipped\x20→\x20delivered\x20→\x20refunded\x20→\x20completed).\x20(2)\x20Arbitration\x20is\x20a\x20separate\x20object\x20with\x20its\x20own\x20Permission\x20—\x20create\x20it\x20independently.\x20(3)\x20When\x20a\x20dispute\x20arises,\x20an\x20Arb\x20instance\x20is\x20created\x20referencing\x20the\x20Order;\x20the\x20Arb\x20goes\x20through\x20its\x207-state\x20lifecycle\x20in\x20the\x20Arbitration\x20object.\x20(4)\x20If\x20the\x20Arb\x20rules\x20in\x20favor\x20of\x20the\x20customer,\x20`indemnity`\x20is\x20set\x20and\x20`order::compensate()`\x20is\x20called\x20—\x20this\x20is\x20the\x20ONLY\x20connection\x20between\x20Arb\x20and\x20Order.\x20(5)\x20The\x20Machine\x20can\x20have\x20\x27refunded\x27/\x27cancelled\x27\x20nodes\x20for\x20the\x20BUSINESS\x20OUTCOME\x20of\x20a\x20dispute,\x20but\x20the\x20dispute\x20PROCESS\x20is\x20entirely\x20in\x20Arb.\x20(6)\x20Arbitration\x27s\x20Permission\x20MUST\x20be\x20separate\x20from\x20Service\x27s\x20Permission\x20—\x20never\x20share.','wrong_example':'Machine\x20nodes:\x20[ordered,\x20shipped,\x20delivered,\x20disputed,\x20resolved,\x20completed]\x20—\x20\x22disputed\x22\x20and\x20\x22resolved\x22\x20are\x20Arb\x20lifecycle\x20states,\x20not\x20business\x20states.\x20The\x20merchant\x20would\x20control\x20the\x20dispute\x20process,\x20making\x20it\x20unfair.','correct_example':'Machine\x20nodes:\x20[ordered,\x20shipped,\x20delivered,\x20refunded,\x20completed]\x20(business\x20states\x20only)\x20+\x20separate\x20Arbitration\x20object\x20(with\x20own\x20Permission,\x20voting_guard)\x20+\x20Arb\x20instances\x20(7-state\x20lifecycle)\x20that\x20call\x20order::compensate()\x20when\x20ruled'},{'object_type':'ALL','operation':'multi_tier_allocation','category':'architecture','mistake':'Thinking\x20Allocation\x20cannot\x20support\x20multi-level\x20fund\x20distribution.\x20WoWok\x20supports\x20multi-tier\x20allocation\x20through\x20SUB-ORDERS:\x20each\x20tier\x20is\x20an\x20independent\x20Service\x20with\x20its\x20own\x20order_allocators.\x20The\x20main\x20Order\x20pays\x20the\x20Tier-1\x20Service;\x20the\x20Tier-1\x20Service\x27s\x20Allocation\x20distributes\x20funds\x20to\x20Tier-2\x20sub-orders\x20(each\x20a\x20separate\x20Service\x20with\x20its\x20own\x20Allocation).\x20Additionally,\x20Allocation\x20can\x20run\x20as\x20a\x20standalone\x20independent\x20object,\x20not\x20just\x20as\x20a\x20Service\x20field.','correct_usage':'MULTI-TIER\x20ALLOCATION\x20PATTERN:\x20(1)\x20Main\x20Service\x20has\x20order_allocators\x20that\x20distribute\x20to\x20Tier-1\x20recipients\x20(e.g.,\x20platform\x20+\x20agency).\x20(2)\x20Each\x20Tier-1\x20recipient\x20can\x20be\x20a\x20separate\x20Service\x20with\x20its\x20own\x20order_allocators\x20for\x20Tier-2\x20distribution\x20(e.g.,\x20agency\x20→\x20operators).\x20(3)\x20Each\x20tier\x27s\x20Order\x20is\x20independent\x20—\x20Tier-1\x20payment\x20triggers\x20Tier-2\x20order\x20creation.\x20(4)\x20For\x20standalone\x20allocation:\x20create\x20an\x20Allocation\x20object\x20independently\x20and\x20transfer\x20funds\x20to\x20it,\x20then\x20use\x20Guard-driven\x20allocation\x20to\x20distribute.\x20(5)\x20Do\x20NOT\x20try\x20to\x20put\x20all\x20tiers\x20in\x20a\x20single\x20Order\x27s\x20order_allocators\x20—\x20use\x20separate\x20Services/Orders\x20per\x20tier.','wrong_example':'Single\x20Service\x20with\x208\x20order_allocators\x20trying\x20to\x20handle\x203\x20tiers\x20of\x20distribution\x20in\x20one\x20Order','correct_example':'Tier-1\x20Service\x20(allocators:\x20platform\x2025%,\x20agency\x2075%)\x20→\x20agency\x20creates\x20Tier-2\x20Service\x20(allocators:\x20operator1\x2050%,\x20operator2\x2050%)\x20→\x20each\x20tier\x20is\x20independent'},{'object_type':'ALL','operation':'transfer','category':'fund_flow','mistake':'Not\x20understanding\x20that\x20the\x20signing\x20account\x20determines\x20whose\x20assets\x20are\x20used.\x20The\x20env.account\x20field\x20in\x20every\x20operation\x20specifies\x20the\x20signer\x20—\x20whoever\x20signs\x20the\x20transaction,\x20their\x20assets\x20are\x20used.\x20The\x20name_or_address_from\x20field\x20in\x20account_operation.transfer\x20is\x20OPTIONAL\x20—\x20if\x20omitted,\x20the\x20default\x20account\x20(env.account)\x20signs\x20and\x20its\x20assets\x20are\x20transferred.','correct_usage':'SIGNING\x20ACCOUNT\x20RULE:\x20(1)\x20Every\x20operation\x20has\x20env.account\x20—\x20this\x20is\x20the\x20signer.\x20(2)\x20For\x20transfers:\x20if\x20name_or_address_from\x20is\x20omitted,\x20the\x20env.account\x27s\x20assets\x20are\x20used.\x20(3)\x20To\x20transfer\x20from\x20a\x20DIFFERENT\x20account,\x20set\x20name_or_address_from\x20to\x20that\x20account\x27s\x20name/address.\x20(4)\x20The\x20signer\x20(env.account)\x20must\x20have\x20permission\x20to\x20spend\x20the\x20from\x20account\x27s\x20assets\x20(or\x20be\x20the\x20same\x20account).\x20(5)\x20This\x20is\x20NOT\x20a\x20limitation\x20—\x20it\x27s\x20how\x20blockchain\x20transactions\x20work:\x20the\x20signer\x20pays\x20gas\x20and\x20authorizes\x20asset\x20movement.','wrong_example':'Thinking\x20transfer\x20requires\x20a\x20special\x20source\x20account\x20field\x20separate\x20from\x20the\x20signing\x20account','correct_example':'env:\x20{account:\x20\x22my_account\x22}\x20→\x20transfer\x20{name_or_address_to:\x20\x22recipient\x22,\x20amount:\x20\x221000000000\x22}\x20→\x20my_account\x20signs\x20and\x20its\x20WOW\x20is\x20transferred'}];function query_common_mistakes(a){if(!a)return COMMON_MISTAKES;return COMMON_MISTAKES['filter'](b=>{if(a['object_type']&&b['object_type']!==a['object_type'])return![];if(a['operation']&&b['operation']!==a['operation'])return![];if(a['category']&&b['category']!==a['category'])return![];return!![];});}const FUNDING_GUIDANCE={'overview':'How\x20to\x20obtain\x20WOW\x20gas\x20and\x20payment\x20tokens.\x20Testnet\x20uses\x20a\x20faucet;\x20mainnet\x20uses\x20the\x20ETH\x20mainnet\x20cross-chain\x20bridge;\x20a\x20WOW\x20airdrop\x20is\x20under\x20construction.','testnet':{'token':'WOW','method':'faucet','faucet_url':'https://faucet.testnet.wowok.net','note':'Claim\x20WOW\x20from\x20the\x20testnet\x20faucet.\x20All\x20merchant\x20and\x20order\x20testing\x20can\x20use\x20WOW\x20as\x20the\x20payment\x20token.'},'mainnet':{'method':'eth_bridge','supported_tokens':['ETH','USDT','USDC','WBTC'],'steps':['Query\x20the\x20active\x20EVM\x20account\x20via\x20bridge_operation\x20(query_active_evm_account).\x20It\x20is\x20auto-generated\x20on\x20first\x20use.','From\x20an\x20external\x20wallet\x20(e.g.\x20MetaMask),\x20transfer\x20ETH\x20/\x20USDT\x20/\x20USDC\x20/\x20WBTC\x20to\x20the\x20active\x20EVM\x20account\x20address\x20on\x20Ethereum\x20mainnet.','Query\x20the\x20active\x20EVM\x20account\x20balance\x20to\x20confirm\x20the\x20funds\x20arrived.','Cross-chain\x20the\x20funds\x20to\x20the\x20WOW\x20mainnet\x20account\x20via\x20bridge_operation\x20(cross_chain_evm_to_wow).']},'airdrop':{'url':'https://airdrop.wowok.net','status':'under\x20construction'},'payment_token':{'testnet_default':'WOW\x20(default\x20gas\x20+\x20payment\x20token)','mainnet_option':'USDT\x20and\x20other\x20stablecoins\x20via\x20the\x20ETH\x20mainnet\x20bridge','migration_note':'When\x20migrating\x20a\x20merchant\x20project\x20from\x20testnet\x20to\x20mainnet,\x20ask\x20whether\x20to\x20switch\x20the\x20payment\x20token\x20from\x20WOW\x20to\x20a\x20stablecoin\x20such\x20as\x20USDT.'}};async function queryProtocolInfo(a){switch(a['info']){case'constants':return{'info':'constants','result':INFO_CONSTANT['constants']};case'built-in\x20permissions':return{'info':'built-in\x20permissions','result':queryPermissions(a['filter']||{})};case'common\x20mistakes':return{'info':'common\x20mistakes','result':query_common_mistakes(a['filter'])};case'guard\x20instructions':return{'info':'guard\x20instructions','result':a47p(a['filter']||{})};case'current\x20network':return{'info':'current\x20network','result':await Config['Instance']()['network_get']()};case'value\x20types':return{'info':'value\x20types','result':INFO_CONSTANT['value_types']};case'mainnet\x20bridge\x20tokens':return{'info':'mainnet\x20bridge\x20tokens','result':MAINNET_BRIDGE_CONFIG['tokens']};case'funding\x20guidance':return{'info':'funding\x20guidance','result':FUNDING_GUIDANCE};default:throw new Error('Unsupported\x20info\x20type:\x20\x22'+a['info']+'\x22.\x20Valid\x20are:\x20\x22constants\x22,\x20\x22built-in\x20permissions\x22,\x20\x22common\x20mistakes\x22,\x20\x22guard\x20instructions\x22,\x20\x22current\x20network\x22,\x20\x22value\x20types\x22,\x20\x22mainnet\x20bridge\x20tokens\x22,\x20\x22funding\x20guidance\x22');}}function queryPermissions(a){return query_permissions(a);}const query_transaction_json=async a=>{try{const b=JSON['parse'](a);return JSON['stringify']({'data':await query_transaction(b)});}catch(c){return JSON['stringify']({'error':c?.['toString']()});}},query_transaction=async a=>{const b=await Config['Instance']()['network_get'](a['network']),c=a['digest'],d=await Cache['read'](['tx','detail',c,b],async()=>{const e=await new a47a({'url':a47b(b),'network':b})['getTransactionBlock']({'digest':c,'options':{'showEffects':!![],'showEvents':!![],'showBalanceChanges':!![],'showInput':!![],'showObjectChanges':!![]}}),f=parseTransactionBlock(e);return{'expire':Cache['DefaultExpireTime'](),'data':f};},a['no_cache']);if(d)return d['data']['cache_expire']=d['expire'],d['data'];},query_object_history_json=async a=>{try{const b=JSON['parse'](a);return JSON['stringify']({'data':await query_object_history(b)});}catch(c){return JSON['stringify']({'error':c?.['toString']()});}},query_object_history=async a=>{const b=await Config['Instance']()['network_get'](a['network']),c=(await LocalMark['Instance']()['get_many_address']([a['object']]))[0x0];if(!c)return{'transactions':[],'next_cursor':null,'has_next_page':![]};const d=a['cursor']??'',e=(a['limit']??0x14)['toString'](),f=a['order']??'descending',g=await Cache['read'](['tx','obj_history',c,d,e,f,b],async()=>{const h=await fetchTransactionHistory(b,{'InputObject':c},a['cursor'],a['limit']??0x14,a['order']??'descending');return{'expire':Cache['DefaultExpireTime'](),'data':h};},a['no_cache']);if(g)return g['data']['cache_expire']=g['expire'],g['data'];},query_address_activity_json=async a=>{try{const b=JSON['parse'](a);return JSON['stringify']({'data':await query_address_activity(b)});}catch(c){return JSON['stringify']({'error':c?.['toString']()});}},query_address_activity=async a=>{const b=await Config['Instance']()['network_get'](a['network']),c=await GetAccountOrMark_Address(a['name_or_address']);if(!c)return{'transactions':[],'next_cursor':null,'has_next_page':![]};const d=a['cursor']??'',e=(a['limit']??0x14)['toString'](),f=a['order']??'descending',g=await Cache['read'](['tx','addr_activity',c,d,e,f,b],async()=>{const h=await fetchTransactionHistory(b,{'FromAddress':c},a['cursor'],a['limit']??0x14,a['order']??'descending');return{'expire':Cache['DefaultExpireTime'](),'data':h};},a['no_cache']);if(g)return g['data']['cache_expire']=g['expire'],g['data'];},fetchTransactionHistory=async(a,b,c,d,e)=>{const f=await new a47a({'url':a47b(a),'network':a})['queryTransactionBlocks']({'filter':b,'options':{'showEffects':!![],'showInput':!![]},'cursor':c??void 0x0,'limit':Math['min'](d,0x32),'order':e});return{'transactions':(f?.['data']??[])['map'](g=>{const h=extractObjectsFromEffects(g?.['effects']);return{'digest':g?.['digest']??'','status':g?.['effects']?.['status']?.['status']==='success'?'success':'failed','timestamp_ms':g?.['timestampMs'],'sender':g?.['transaction']?.['data']?.['sender'],'kind':g?.['transaction']?.['data']?.['transaction']?.['kind']?Object['keys'](g['transaction']['data']['transaction'])[0x0]:void 0x0,'gas_used':g?.['effects']?.['gasUsed']?.['computationCost']?''+g['effects']['gasUsed']['computationCost']:void 0x0,'objects_touched':h,'has_object_changes':h['length']>0x0};}),'next_cursor':f?.['nextCursor']??null,'has_next_page':f?.['hasNextPage']??![]};},parseTransactionBlock=a=>{const b=a?.['effects'],c=b?.['status']?.['status']==='success'?'success':'failed',d=c==='failed'?b?.['status']?.['error']:void 0x0,e=(a?.['objectChanges']??[])['map'](j=>({'id':j?.['objectId']??'','type':j?.['type']??'mutated','object_type':j?.['objectType'],'sender':j?.['sender'],'version':j?.['version'],'previous_version':j?.['previousVersion'],'digest':j?.['digest']})),f=(a?.['balanceChanges']??[])['map'](j=>({'owner':typeof j?.['owner']==='string'?j['owner']:j?.['owner']?.['AddressOwner']??'','coin_type':j?.['coinType']??'','amount':j?.['amount']??'0'})),g=(a?.['events']??[])['map'](j=>({'type':j?.['type']??'','package_id':j?.['packageId'],'module':j?.['transactionModule'],'sender':j?.['sender'],'parsed_json':j?.['parsedJson'],'bcs':j?.['bcs']})),h=b?.['gasUsed'],i=h?''+(BigInt(h['computationCost']??0x0)+BigInt(h['storageCost']??0x0)-BigInt(h['storageRebate']??0x0)):void 0x0;return{'digest':a?.['digest']??'','status':c,'error':d,'timestamp_ms':a?.['timestampMs'],'sender':a?.['transaction']?.['data']?.['sender'],'gas_used':i,'gas_budget':a?.['transaction']?.['data']?.['gasData']?.['budget']?.['toString'](),'kind':a?.['transaction']?.['data']?.['transaction']?Object['keys'](a['transaction']['data']['transaction'])[0x0]:void 0x0,'object_changes':e,'balance_changes':f,'event_count':g['length'],'events':g,'epoch':b?.['epoch'],'is_system_tx':a?.['transaction']?.['data']?.['transaction']?.['kind']==='ConsensusCommitPrologue'};},extractObjectsFromEffects=a=>{if(!a)return[];const b=[],c=d=>{if(Array['isArray'](d)){for(const e of d)if(e?.['reference']?.['objectId'])b['push'](e['reference']['objectId']);else{if(e?.['objectId'])b['push'](e['objectId']);}}};return c(a['created']),c(a['mutated']),c(a['deleted']),c(a['wrapped']),c(a['unwrapped']),[...new Set(b)];};export{query_events_json as A,BridgeErrorCode as C,isEvmChain as D,TransferStatus as E,isWowChain as O,BridgeChainId as S,BridgeVersion as T,findEvmChainConfig as _,query_transaction as a,findTokenBySymbol as b,FUNDING_GUIDANCE as c,queryProtocolInfo as d,query_common_mistakes as f,MAINNET_COMMITTEE_WEIGHTS as g,MAINNET_COMMITTEE_PUBKEYS as h,query_object_history_json as i,query_serviceContext as j,query_events as k,INFO_CONSTANT as l,MAINNET_COMMITTEE_MEMBER_ADDRESSES as m,query_address_activity_json as n,query_transaction_json as o,MAINNET_BRIDGE_CONFIG as p,query_object_history as r,COMMON_MISTAKES as s,query_address_activity as t,queryPermissions as u,findEvmChainConfigByBridgeChainId as v,BridgeTokenId as w,verifyCommitteeConsistency as x,findToken as y};
@@ -1,18 +0,0 @@
1
- //#region src/w/local/util.d.ts
2
- /**
3
- * 获取跨平台的 .wow 目录路径
4
- * 支持通过 WOWOK_DATA_DIR 环境变量覆盖默认路径(主要用于测试隔离)
5
- * 默认使用 V1 子目录以隔离抗量子账号数据
6
- */
7
- declare function getWowDir(): string;
8
- /**
9
- * 获取 MCP 运行时数据目录路径(与 getWowDir() 同级,在其父目录下的 mcp/ 子目录)
10
- * - Windows: %USERPROFILE%\.wow\mcp
11
- * - macOS: ~/Library/Application Support/.wow/mcp
12
- * - Linux: ~/.config/.wow/mcp 或 ~/.local/share/.wow/mcp
13
- *
14
- * 支持 WOWOK_DATA_DIR 环境变量覆盖(与 getWowDir() 共用,覆盖时 MCP 数据在 <WOWOK_DATA_DIR>/../mcp/)
15
- */
16
- declare function getWowMcpDir(): string;
17
- //#endregion
18
- export { getWowMcpDir as n, getWowDir as t };