@wowok/wowok 2.3.7 → 2.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/Transaction-B_HAG_T7.mjs +1 -0
- package/dist/esm/arb-Be5KiDXS.mjs +1 -0
- package/dist/esm/base-CiXs-ApK.mjs +1 -0
- package/dist/esm/bcs/index.d.mts +1 -1
- package/dist/esm/{cache-DTr3MtXv.d.mts → cache-CWB_UDG2.d.mts} +6 -0
- package/dist/esm/call-BjhpVeiy.mjs +1 -0
- package/dist/esm/client/index.d.mts +1 -1
- package/dist/esm/client/index.mjs +1 -1
- package/dist/esm/{client-VxiBQfen.mjs → client-D6nQHb4K.mjs} +1 -1
- package/dist/esm/common-CQggZ8z4.mjs +1 -0
- package/dist/esm/cryptography/index.d.mts +1 -1
- package/dist/esm/cryptography/index.mjs +1 -1
- package/dist/esm/ed25519-BrJWQ45w.mjs +1 -1
- package/dist/esm/evm-account-BPYk6EpK.d.mts +259 -0
- package/dist/esm/exception--UEPnygY.mjs +1 -0
- package/dist/esm/{falcon512-J8Pe5emy.mjs → falcon512-B4y-EH2f.mjs} +1 -1
- package/dist/esm/graphql/index.d.mts +1 -1
- package/dist/esm/graphql/index.mjs +1 -1
- package/dist/esm/{graphql-BXSiG4J0.mjs → graphql-nv5poiC5.mjs} +1 -1
- package/dist/esm/grpc/index.d.mts +1 -1
- package/dist/esm/grpc/index.mjs +1 -1
- package/dist/esm/{grpc-clMX5Wo0.mjs → grpc-BffnRW4z.mjs} +1 -1
- package/dist/esm/{index-o_aMVwsK.d.mts → index-B-cxGU73.d.mts} +6 -6
- package/dist/esm/{index-Q3W63gcw.d.mts → index-D5-7_Kub.d.mts} +719 -297
- package/dist/esm/index.d.mts +8 -6
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/jsonRpc/index.d.mts +1 -1
- package/dist/esm/jsonRpc/index.mjs +1 -1
- package/dist/esm/keypairs/ed25519/index.d.mts +1 -1
- package/dist/esm/keypairs/falcon512/index.d.mts +1 -1
- package/dist/esm/keypairs/falcon512/index.mjs +1 -1
- package/dist/esm/keypairs/passkey/index.d.mts +1 -1
- package/dist/esm/keypairs/passkey/index.mjs +1 -1
- package/dist/esm/keypairs/secp256k1/index.d.mts +1 -1
- package/dist/esm/keypairs/secp256k1/index.mjs +1 -1
- package/dist/esm/keypairs/secp256r1/index.d.mts +1 -1
- package/dist/esm/keypairs/secp256r1/index.mjs +1 -1
- package/dist/esm/messenger-api-BEWdcJrA.mjs +1 -0
- package/dist/esm/{messenger-Bokr4-T2.mjs → messenger-loQQ45UB.mjs} +1 -1
- package/dist/esm/multisig/index.d.mts +1 -1
- package/dist/esm/multisig/index.mjs +1 -1
- package/dist/esm/{network-DOe6BgcD.mjs → network-CeDd07Hg.mjs} +1 -1
- package/dist/esm/{networks-DhrBVvu6.d.mts → networks-CEYOA-1U.d.mts} +95 -16
- package/dist/esm/object-BTDJEtwG.mjs +1 -0
- package/dist/esm/passkey-D0XCtEYg.mjs +1 -0
- package/dist/esm/proof-CnI3UU0l.mjs +1 -0
- package/dist/esm/publickey-BPT9QiGv.mjs +1 -1
- package/dist/esm/{publickey-S1fGFYJX.mjs → publickey-Bkjn-YAu.mjs} +1 -1
- package/dist/esm/publickey-qLbcTInT.mjs +1 -1
- package/dist/esm/publickey-zB4h0HOi.mjs +1 -1
- package/dist/esm/received-CJvBDSIl.mjs +1 -0
- package/dist/esm/{rlp-BcIAoIV4.d.mts → rlp-Do3rPWRV.d.mts} +9 -1
- package/dist/esm/rolldown-runtime-D7D4PA-g.mjs +1 -0
- package/dist/esm/secp256k1-B-8mI0dI.mjs +1 -0
- package/dist/esm/secp256r1-B3O6jSlP.mjs +1 -0
- package/dist/esm/secure-storage-DRwhPVz3.d.mts +95 -0
- package/dist/esm/service-BLRHy6cG.mjs +1 -0
- package/dist/esm/storage-Ct2mZnD0.d.mts +69 -0
- package/dist/esm/transactions/index.d.mts +1 -1
- package/dist/esm/transactions/index.mjs +1 -1
- package/dist/esm/{transactions-CDWnTSTU.mjs → transactions-rYyItYOR.mjs} +1 -1
- package/dist/esm/util-YC562UOE.mjs +1 -0
- package/dist/esm/utils/index.mjs +1 -1
- package/dist/esm/utils-IlS3fpdQ.mjs +1 -1
- package/dist/esm/verify/index.d.mts +1 -1
- package/dist/esm/verify/index.mjs +1 -1
- package/dist/esm/w/call/allocation.d.mts +1 -1
- package/dist/esm/w/call/allocation.mjs +1 -1
- package/dist/esm/w/call/arbitration.d.mts +1 -1
- package/dist/esm/w/call/arbitration.mjs +1 -1
- package/dist/esm/w/call/base.d.mts +1 -1
- package/dist/esm/w/call/base.mjs +1 -1
- package/dist/esm/w/call/demand.d.mts +1 -1
- package/dist/esm/w/call/demand.mjs +1 -1
- package/dist/esm/w/call/guard.d.mts +1 -1
- package/dist/esm/w/call/guard.mjs +1 -1
- package/dist/esm/w/call/index.d.mts +2 -2
- package/dist/esm/w/call/index.mjs +1 -1
- package/dist/esm/w/call/machine.d.mts +1 -1
- package/dist/esm/w/call/machine.mjs +1 -1
- package/dist/esm/w/call/passport.d.mts +1 -1
- package/dist/esm/w/call/passport.mjs +1 -1
- package/dist/esm/w/call/payment.d.mts +1 -1
- package/dist/esm/w/call/payment.mjs +1 -1
- package/dist/esm/w/call/permission.d.mts +1 -1
- package/dist/esm/w/call/permission.mjs +1 -1
- package/dist/esm/w/call/progress.d.mts +1 -1
- package/dist/esm/w/call/progress.mjs +1 -1
- package/dist/esm/w/call/repository.d.mts +1 -1
- package/dist/esm/w/call/repository.mjs +1 -1
- package/dist/esm/w/call/reward.d.mts +1 -1
- package/dist/esm/w/call/reward.mjs +1 -1
- package/dist/esm/w/call/service.d.mts +1 -1
- package/dist/esm/w/call/service.mjs +1 -1
- package/dist/esm/w/call/treasury.d.mts +1 -1
- package/dist/esm/w/call/treasury.mjs +1 -1
- package/dist/esm/w/common.d.mts +1 -1
- package/dist/esm/w/common.mjs +1 -1
- package/dist/esm/w/index.d.mts +7 -5
- package/dist/esm/w/index.mjs +1 -1
- package/dist/esm/w/local/account.d.mts +3 -2
- package/dist/esm/w/local/account.mjs +1 -1
- package/dist/esm/w/local/cache.d.mts +1 -1
- package/dist/esm/w/local/cache.mjs +1 -1
- package/dist/esm/w/local/config.mjs +1 -1
- package/dist/esm/w/local/evm/networks.d.mts +1 -1
- package/dist/esm/w/local/evm/networks.mjs +1 -1
- package/dist/esm/w/local/evm/rlp.d.mts +2 -2
- package/dist/esm/w/local/evm/rlp.mjs +1 -1
- package/dist/esm/w/local/evm-account.d.mts +3 -3
- package/dist/esm/w/local/evm-account.mjs +1 -1
- package/dist/esm/w/local/index.d.mts +7 -5
- package/dist/esm/w/local/index.mjs +1 -1
- package/dist/esm/w/local/local.mjs +1 -1
- package/dist/esm/w/local/secure-storage.d.mts +2 -0
- package/dist/esm/w/local/secure-storage.mjs +1 -0
- package/dist/esm/w/local/storage.d.mts +2 -53
- package/dist/esm/w/local/storage.mjs +1 -1
- package/dist/esm/w/local/token.d.mts +1 -1
- package/dist/esm/w/local/token.mjs +1 -1
- package/dist/esm/w/local/util.mjs +1 -1
- package/dist/esm/w/local/wip.mjs +1 -1
- package/dist/esm/w/messenger/index.d.mts +1 -1
- package/dist/esm/w/messenger/index.mjs +1 -1
- package/dist/esm/w/messenger/messenger-api.d.mts +1 -1
- package/dist/esm/w/messenger/messenger-api.mjs +1 -1
- package/dist/esm/w/messenger/messenger.d.mts +1 -1
- package/dist/esm/w/messenger/messenger.mjs +1 -1
- package/dist/esm/w/messenger/pq/crypto.mjs +1 -1
- package/dist/esm/w/messenger/pq/erasure.mjs +1 -1
- package/dist/esm/w/messenger/storage.d.mts +1 -1
- package/dist/esm/w/messenger/storage.mjs +1 -1
- package/dist/esm/w/messenger/types.d.mts +1 -1
- package/dist/esm/w/messenger/types.mjs +1 -1
- package/dist/esm/w/query/index.d.mts +1 -1
- package/dist/esm/w/query/index.mjs +1 -1
- package/dist/esm/w/query/object.d.mts +1 -1
- package/dist/esm/w/query/object.mjs +1 -1
- package/dist/esm/w-ChCuDlfz.mjs +1 -0
- package/package.json +4 -4
- package/dist/esm/Transaction-YosVjNZA.mjs +0 -1
- package/dist/esm/arb-NYOQp2oH.mjs +0 -1
- package/dist/esm/base-fdHKX-jS.mjs +0 -1
- package/dist/esm/bridge-AHnWGzN1.mjs +0 -1
- package/dist/esm/call-7FZbEsRl.mjs +0 -1
- package/dist/esm/common-fDv-Cuzq.mjs +0 -1
- package/dist/esm/evm-account-XzrSThfS.d.mts +0 -185
- package/dist/esm/local-c-Tbdkfa.mjs +0 -1
- package/dist/esm/messenger-api-1m7Lp85p.mjs +0 -1
- package/dist/esm/object-DzsQI-0e.mjs +0 -1
- package/dist/esm/passkey-Dh6btBAD.mjs +0 -1
- package/dist/esm/proof-DER5SXw4.mjs +0 -1
- package/dist/esm/received-D7jEPxlE.mjs +0 -1
- package/dist/esm/rolldown-runtime-DkIiUugF.mjs +0 -1
- package/dist/esm/secp256k1-BZUdTK1D.mjs +0 -1
- package/dist/esm/secp256r1-COXOSFIF.mjs +0 -1
- package/dist/esm/service-W7-dgV57.mjs +0 -1
- package/dist/esm/util-B3X9acB0.mjs +0 -1
- package/dist/esm/w/call/bridge.d.mts +0 -2
- package/dist/esm/w/call/bridge.mjs +0 -1
- package/dist/esm/w-5GiAI3sP.mjs +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as registerBridgeEvmNetworks, n as EvmNetworkConfig, r as EvmNetworkRegistry, t as ETH_MAINNET } from "../../../networks-
|
|
1
|
+
import { i as registerBridgeEvmNetworks, n as EvmNetworkConfig, r as EvmNetworkRegistry, t as ETH_MAINNET } from "../../../networks-CEYOA-1U.mjs";
|
|
2
2
|
export { ETH_MAINNET, EvmNetworkConfig, EvmNetworkRegistry, registerBridgeEvmNetworks };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const ETH_MAINNET={'name':'mainnet','chainId':0x1,'rpcUrls':['https://eth.llamarpc.com'],'explorerUrl':'https://etherscan.io','confirmations':0x1,'gasLimitMultiplier':1.2,'minPriorityFee':0x3b9aca00n,'rpcTimeoutMs':0x7530,'txConfirmTimeoutMs':0x1d4c0,'pollIntervalMs':0xbb8};var EvmNetworkRegistry=class EvmNetworkRegistry{constructor(){this['byChainId']=new Map(),this['byName']=new Map(),this['chainIdCache']=new Map(),this['unhealthyRpc']=new Map(),this['register'](ETH_MAINNET),this['defaultChainId']=ETH_MAINNET['chainId'];}static['Instance'](){if(!EvmNetworkRegistry['_instance'])EvmNetworkRegistry['_instance']=new EvmNetworkRegistry();return EvmNetworkRegistry['_instance'];}['register'](a){const b=a['name']['toLowerCase']();this['byChainId']['set'](a['chainId'],a),this['byName']['set'](b,a);}['unregister'](a){const b=this['get'](a);if(!b)return;this['byChainId']['delete'](b['chainId']),this['byName']['delete'](b['name']['toLowerCase']());if(this['defaultChainId']===b['chainId'])this['defaultChainId']=this['byChainId']['size']>0x0?this['byChainId']['keys']()['next']()['value']:void 0x0;}['setDefault'](a){const b=this['get'](a);if(!b)throw new Error('EVM\x20network\x20not\x20found:\x20'+a);this['defaultChainId']=b['chainId'];}['get'](a){if(a===void 0x0||a===null)return this['defaultChainId']!==void 0x0?this['byChainId']['get'](this['defaultChainId']):void 0x0;if(typeof a==='number')return this['byChainId']['get'](a);return this['byName']['get'](a['toLowerCase']());}['list'](){return Array['from'](this['byChainId']['values']());}['getDefault'](){const a=this['get'](this['defaultChainId']);if(!a)throw new Error('No\x20default\x20EVM\x20network\x20registered.\x20Call\x20register()\x20and\x20setDefault()\x20first.');return a;}async['resolve'](a){if(typeof a==='number'){const b=this['byChainId']['get'](a);if(b)return b;throw new Error('EVM\x20network\x20not\x20registered\x20for\x20chainId\x20'+a);}if(typeof a==='string'){const c=this['byName']['get'](a['toLowerCase']());if(c)return c;const d=await this['queryChainIdFromRpc'](a),e=this['byChainId']['get'](d);if(e)return e;return this['buildTempConfig'](a,d);}return this['getDefault']();}['pickHealthyRpc'](a){const b=Date['now']()
|
|
1
|
+
import{SQLiteAccountStorage}from'../storage.mjs';const ETH_MAINNET={'name':'mainnet','chainId':0x1,'rpcUrls':['https://ethereum-rpc.publicnode.com','https://eth.drpc.org','https://eth.llamarpc.com','https://rpc.mevblocker.io','https://rpc.flashbots.net','https://cloudflare-eth.com','https://ethereum.blockpi.network/v1/rpc/public','https://eth.merkle.io','https://0xrpc.io/eth','https://api.zan.top/eth/mainnet'],'explorerUrl':'https://etherscan.io','confirmations':0x1,'gasLimitMultiplier':1.2,'minPriorityFee':0x3b9aca00n,'rpcTimeoutMs':0x7530,'txConfirmTimeoutMs':0x1d4c0,'pollIntervalMs':0xbb8};var EvmNetworkRegistry=class EvmNetworkRegistry{static{this['DEFAULT_UNHEALTHY_RETRY_MS']=0x5*0xea60;}constructor(){this['byChainId']=new Map(),this['byName']=new Map(),this['chainIdCache']=new Map(),this['unhealthyRpc']=new Map(),this['unhealthyCounter']=new Map(),this['register'](ETH_MAINNET),this['defaultChainId']=ETH_MAINNET['chainId'],this['_loadAllRpcs']();}static['Instance'](){if(!EvmNetworkRegistry['_instance'])EvmNetworkRegistry['_instance']=new EvmNetworkRegistry();return EvmNetworkRegistry['_instance'];}['register'](a){const b=a['name']['toLowerCase']();this['byChainId']['set'](a['chainId'],a),this['byName']['set'](b,a);}['unregister'](a){const b=this['get'](a);if(!b)return;this['byChainId']['delete'](b['chainId']),this['byName']['delete'](b['name']['toLowerCase']());if(this['defaultChainId']===b['chainId'])this['defaultChainId']=this['byChainId']['size']>0x0?this['byChainId']['keys']()['next']()['value']:void 0x0;}['setDefault'](a){const b=this['get'](a);if(!b)throw new Error('EVM\x20network\x20not\x20found:\x20'+a);this['defaultChainId']=b['chainId'];}['get'](a){if(a===void 0x0||a===null)return this['defaultChainId']!==void 0x0?this['byChainId']['get'](this['defaultChainId']):void 0x0;if(typeof a==='number')return this['byChainId']['get'](a);return this['byName']['get'](a['toLowerCase']());}['list'](){return Array['from'](this['byChainId']['values']());}['getDefault'](){const a=this['get'](this['defaultChainId']);if(!a)throw new Error('No\x20default\x20EVM\x20network\x20registered.\x20Call\x20register()\x20and\x20setDefault()\x20first.');return a;}async['resolve'](a){if(typeof a==='number'){const b=this['byChainId']['get'](a);if(b)return b;throw new Error('EVM\x20network\x20not\x20registered\x20for\x20chainId\x20'+a);}if(typeof a==='string'){const c=this['byName']['get'](a['toLowerCase']());if(c)return c;const d=await this['queryChainIdFromRpc'](a),e=this['byChainId']['get'](d);if(e)return e;return this['buildTempConfig'](a,d);}return this['getDefault']();}['pickHealthyRpc'](a){const b=Date['now'](),c=a['rpcUrls']['map'](e=>{const f=this['unhealthyRpc']['get'](e),g=this['unhealthyCounter']['get'](e)??0x0,h=f===void 0x0||f<b;if(f!==void 0x0&&f<b)this['unhealthyRpc']['delete'](e);return{'url':e,'isExpired':h,'failCount':g};}),d=c['filter'](e=>e['isExpired']);if(d['length']>0x0)return d['sort']((e,f)=>e['failCount']-f['failCount']),d[0x0]['url'];return c['sort']((e,f)=>e['failCount']-f['failCount']),c[0x0]['url'];}['markUnhealthy'](a,b){const c=(this['unhealthyCounter']['get'](a)??0x0)+0x1;this['unhealthyCounter']['set'](a,c);const d=b??(c<=0x1?0x5*0xea60:c===0x2?0xf*0xea60:c===0x3?0x1e*0xea60:0x3c*0xea60);this['unhealthyRpc']['set'](a,Date['now']()+d);}['markHealthy'](a){this['unhealthyRpc']['delete'](a),this['unhealthyCounter']['delete'](a);}['isUnhealthy'](a){const b=this['unhealthyRpc']['get'](a);if(b===void 0x0)return![];if(b<Date['now']())return this['unhealthyRpc']['delete'](a),![];return!![];}['listRpcStatus'](a){const b=this['get'](a);if(!b)return[];const c=Date['now']();return b['rpcUrls']['map'](d=>{const e=this['unhealthyRpc']['get'](d),f=this['unhealthyCounter']['get'](d)??0x0;if(e===void 0x0||e<c){if(e!==void 0x0&&e<c)this['unhealthyRpc']['delete'](d);return{'url':d,'healthy':!![],'failCount':f};}return{'url':d,'healthy':![],'retryInMs':e-c,'failCount':f};});}['addRpc'](a,b){const c=this['get'](a);if(!c)return![];if(c['rpcUrls']['includes'](b))return![];return c['rpcUrls']['unshift'](b),this['_saveAllRpcs'](),!![];}['removeRpc'](a,b){const c=this['get'](a);if(!c)return![];if(c['rpcUrls']['length']<=0x1)return![];const d=c['rpcUrls']['indexOf'](b);if(d===-0x1)return![];return c['rpcUrls']['splice'](d,0x1),this['unhealthyRpc']['delete'](b),this['_saveAllRpcs'](),!![];}['setRpcs'](a,b){if(!b||b['length']===0x0)return![];const c=this['get'](a);if(!c)return![];for(const d of c['rpcUrls'])this['unhealthyRpc']['delete'](d);return c['rpcUrls']=[...new Set(b)],this['_saveAllRpcs'](),!![];}async['ping'](a,b=0x1388){try{const c=new AbortController(),d=setTimeout(()=>c['abort'](),b),e=await fetch(a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'jsonrpc':'2.0','id':0x1,'method':'eth_chainId','params':[]}),'signal':c['signal']});return clearTimeout(d),e['ok'];}catch{return![];}}async['queryChainIdFromRpc'](a){const b=this['chainIdCache']['get'](a);if(b!==void 0x0)return b;const c=await(await fetch(a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'jsonrpc':'2.0','id':0x1,'method':'eth_chainId','params':[]})}))['json']();if(c['error'])throw new Error('RPC\x20error:\x20'+c['error']['message']);const d=parseInt(c['result'],0x10);return this['chainIdCache']['set'](a,d),d;}['clearChainIdCache'](){this['chainIdCache']['clear']();}['_getPersistStore'](){if(!this['_persistStore'])this['_persistStore']=new SQLiteAccountStorage(void 0x0,'evm_network_rpcs');return this['_persistStore'];}async['_saveAllRpcs'](){try{const a={};for(const [b,c]of this['byChainId']['entries']())a[String(b)]=c['rpcUrls'];await this['_getPersistStore']()['put'](JSON['stringify'](a));}catch{}}async['_loadAllRpcs'](){try{const a=await this['_getPersistStore']()['get']();if(!a)return;const b=JSON['parse'](a);for(const [c,d]of Object['entries'](b)){const e=Number(c),f=this['byChainId']['get'](e);if(f&&Array['isArray'](d)&&d['length']>0x0)f['rpcUrls']=d;}}catch{}}['addRpcs'](a,b){const c=this['get'](a);if(!c)return 0x0;let d=0x0;for(const e of b['slice']()['reverse']())!c['rpcUrls']['includes'](e)&&(c['rpcUrls']['unshift'](e),d++);if(d>0x0)this['_saveAllRpcs']();return d;}['removeRpcs'](a,b){const c=this['get'](a);if(!c)return 0x0;let d=0x0;for(const e of b){const f=c['rpcUrls']['indexOf'](e);f!==-0x1&&c['rpcUrls']['length']>0x1&&(c['rpcUrls']['splice'](f,0x1),this['unhealthyRpc']['delete'](e),d++);}if(d>0x0)this['_saveAllRpcs']();return d;}['buildTempConfig'](a,b){return{'name':'chain-'+b,'chainId':b,'rpcUrls':[a],'confirmations':0x1,'gasLimitMultiplier':1.2,'minPriorityFee':0x3b9aca00n,'rpcTimeoutMs':0x7530,'txConfirmTimeoutMs':0x1d4c0,'pollIntervalMs':0xbb8};}};function registerBridgeEvmNetworks(a){const b=EvmNetworkRegistry['Instance'](),c=b['get'](a['evmChain']['chainId']);if(c){if(a['evmChain']['rpcUrl']&&!c['rpcUrls']['includes'](a['evmChain']['rpcUrl']))c['rpcUrls']['unshift'](a['evmChain']['rpcUrl']);if(a['setAsDefault'])b['setDefault'](c['chainId']);return c;}const d={'name':(a['name']??'chain-'+a['evmChain']['chainId'])['toLowerCase'](),'chainId':a['evmChain']['chainId'],'rpcUrls':a['evmChain']['rpcUrl']?[a['evmChain']['rpcUrl']]:[],'confirmations':0x1,'gasLimitMultiplier':1.2,'minPriorityFee':0x3b9aca00n,'rpcTimeoutMs':0x7530,'txConfirmTimeoutMs':0x1d4c0,'pollIntervalMs':0xbb8};b['register'](d);if(a['setAsDefault'])b['setDefault'](d['chainId']);return d;}export{ETH_MAINNET,EvmNetworkRegistry,registerBridgeEvmNetworks};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as bigIntToBytes, c as bytesToHex, d as
|
|
2
|
-
export { AccessListItem, EIP1559Transaction, LegacyTransaction, RLPItem, bigIntToBytes, bigIntToHex, bytesToBigInt, bytesToHex, encodeRLP, hexToBytes, isChecksumAddress, isValidEvmAddress, privateKeyToAddress, signEIP1559, signLegacy, toChecksumAddress };
|
|
1
|
+
import { _ as toChecksumAddress, a as bigIntToBytes, c as bytesToHex, d as hexToBytes, f as isChecksumAddress, g as signLegacy, h as signEIP1559, i as RLPItem, l as compressedPubKeyToAddress, m as privateKeyToAddress, n as EIP1559Transaction, o as bigIntToHex, p as isValidEvmAddress, r as LegacyTransaction, s as bytesToBigInt, t as AccessListItem, u as encodeRLP } from "../../../rlp-Do3rPWRV.mjs";
|
|
2
|
+
export { AccessListItem, EIP1559Transaction, LegacyTransaction, RLPItem, bigIntToBytes, bigIntToHex, bytesToBigInt, bytesToHex, compressedPubKeyToAddress, encodeRLP, hexToBytes, isChecksumAddress, isValidEvmAddress, privateKeyToAddress, signEIP1559, signLegacy, toChecksumAddress };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{secp256k1}from'@noble/curves/secp256k1.js';import{keccak_256}from'@noble/hashes/sha3.js';function bytesToHex(a){let b='';for(let c=0x0;c<a['length'];c++)b+=a[c]['toString'](0x10)['padStart'](0x2,'0');return b;}function hexToBytes(a){if(a['startsWith']('0x')||a['startsWith']('0X'))a=a['slice'](0x2);if(a['length']%0x2!==0x0)a='0'+a;const b=new Uint8Array(a['length']/0x2);for(let c=0x0;c<b['length'];c++)b[c]=parseInt(a['slice'](c*0x2,c*0x2+0x2),0x10);return b;}function bigIntToHex(a){return a['toString'](0x10);}function bigIntToBytes(a){if(a===0x0n)return new Uint8Array(0x0);let b=a['toString'](0x10);if(b['length']%0x2!==0x0)b='0'+b;return hexToBytes(b);}function bytesToBigInt(a){if(a['length']===0x0)return 0x0n;return BigInt('0x'+bytesToHex(a));}function encodeBytes(a){if(a['length']===0x1&&a[0x0]<0x80)return a;const b=encodeLength(a['length'],0x80),c=new Uint8Array(b['length']+a['length']);return c['set'](b,0x0),c['set'](a,b['length']),c;}function encodeLength(a,b){if(a<0x38)return new Uint8Array([a+b]);const c=bigIntToBytes(BigInt(a)),d=new Uint8Array([b+0x37+c['length']]),e=new Uint8Array(d['length']+c['length']);return e['set'](d,0x0),e['set'](c,d['length']),e;}function encodeRLP(a){if(a instanceof Uint8Array)return encodeBytes(a);if(typeof a==='bigint')return encodeBytes(bigIntToBytes(a));if(typeof a==='string')return encodeBytes(hexToBytes(a));if(Array['isArray'](a)){const b=a['map'](encodeRLP),c=b['reduce']((g,h)=>g+h['length'],0x0),d=encodeLength(c,0xc0),e=new Uint8Array(d['length']+c);e['set'](d,0x0);let f=d['length'];for(const g of b){e['set'](g,f),f+=g['length'];}return e;}throw new Error('Unsupported\x20RLP\x20item\x20type:\x20'+typeof a);}const EIP1559_TX_TYPE=0x2,LEGACY_CHAINID_OFFSET=0x23n;function accessListToRLP(a){if(!a||a['length']===0x0)return[];return a['map'](b=>[b['address'],b['storageKeys']]);}function encodeEIP1559Unsigned(a){const b=encodeRLP([BigInt(a['chainId']),BigInt(a['nonce']),a['maxPriorityFeePerGas'],a['maxFeePerGas'],a['gasLimit'],a['to'],a['value'],a['data'],accessListToRLP(a['accessList'])]),c=new Uint8Array(0x1+b['length']);return c[0x0]=EIP1559_TX_TYPE,c['set'](b,0x1),c;}function signEIP1559(a,b){const c=keccak_256(encodeEIP1559Unsigned(a)),d=secp256k1['sign'](c,b,{'format':'recovered'}),e=d[0x0],f=bytesToBigInt(d['subarray'](0x1,0x21)),g=bytesToBigInt(d['subarray'](0x21,0x41)),h=BigInt(e),i=encodeRLP([BigInt(a['chainId']),BigInt(a['nonce']),a['maxPriorityFeePerGas'],a['maxFeePerGas'],a['gasLimit'],a['to'],a['value'],a['data'],accessListToRLP(a['accessList']),
|
|
1
|
+
import{secp256k1}from'@noble/curves/secp256k1.js';import{keccak_256}from'@noble/hashes/sha3.js';function bytesToHex(a){let b='';for(let c=0x0;c<a['length'];c++)b+=a[c]['toString'](0x10)['padStart'](0x2,'0');return b;}function hexToBytes(a){if(a['startsWith']('0x')||a['startsWith']('0X'))a=a['slice'](0x2);if(a['length']%0x2!==0x0)a='0'+a;const b=new Uint8Array(a['length']/0x2);for(let c=0x0;c<b['length'];c++)b[c]=parseInt(a['slice'](c*0x2,c*0x2+0x2),0x10);return b;}function bigIntToHex(a){return a['toString'](0x10);}function bigIntToBytes(a){if(a===0x0n)return new Uint8Array(0x0);let b=a['toString'](0x10);if(b['length']%0x2!==0x0)b='0'+b;return hexToBytes(b);}function bytesToBigInt(a){if(a['length']===0x0)return 0x0n;return BigInt('0x'+bytesToHex(a));}function encodeBytes(a){if(a['length']===0x1&&a[0x0]<0x80)return a;const b=encodeLength(a['length'],0x80),c=new Uint8Array(b['length']+a['length']);return c['set'](b,0x0),c['set'](a,b['length']),c;}function encodeLength(a,b){if(a<0x38)return new Uint8Array([a+b]);const c=bigIntToBytes(BigInt(a)),d=new Uint8Array([b+0x37+c['length']]),e=new Uint8Array(d['length']+c['length']);return e['set'](d,0x0),e['set'](c,d['length']),e;}function encodeRLP(a){if(a instanceof Uint8Array)return encodeBytes(a);if(typeof a==='bigint')return encodeBytes(bigIntToBytes(a));if(typeof a==='string')return encodeBytes(hexToBytes(a));if(Array['isArray'](a)){const b=a['map'](encodeRLP),c=b['reduce']((g,h)=>g+h['length'],0x0),d=encodeLength(c,0xc0),e=new Uint8Array(d['length']+c);e['set'](d,0x0);let f=d['length'];for(const g of b){e['set'](g,f),f+=g['length'];}return e;}throw new Error('Unsupported\x20RLP\x20item\x20type:\x20'+typeof a);}const EIP1559_TX_TYPE=0x2,LEGACY_CHAINID_OFFSET=0x23n;function accessListToRLP(a){if(!a||a['length']===0x0)return[];return a['map'](b=>[b['address'],b['storageKeys']]);}function encodeEIP1559Unsigned(a){const b=encodeRLP([BigInt(a['chainId']),BigInt(a['nonce']),a['maxPriorityFeePerGas'],a['maxFeePerGas'],a['gasLimit'],a['to'],a['value'],a['data'],accessListToRLP(a['accessList'])]),c=new Uint8Array(0x1+b['length']);return c[0x0]=EIP1559_TX_TYPE,c['set'](b,0x1),c;}function signEIP1559(a,b){const c=keccak_256(encodeEIP1559Unsigned(a)),d=secp256k1['sign'](c,b,{'format':'recovered','prehash':![]}),e=d[0x0],f=bytesToBigInt(d['subarray'](0x1,0x21)),g=bytesToBigInt(d['subarray'](0x21,0x41)),h=BigInt(e),i=encodeRLP([BigInt(a['chainId']),BigInt(a['nonce']),a['maxPriorityFeePerGas'],a['maxFeePerGas'],a['gasLimit'],a['to'],a['value'],a['data'],accessListToRLP(a['accessList']),h,f,g]),j=new Uint8Array(0x1+i['length']);return j[0x0]=EIP1559_TX_TYPE,j['set'](i,0x1),'0x'+bytesToHex(j);}function encodeLegacyUnsigned(a){return encodeRLP([BigInt(a['nonce']),a['gasPrice'],a['gasLimit'],a['to'],a['value'],a['data'],BigInt(a['chainId']),0x0n,0x0n]);}function signLegacy(a,b){const c=keccak_256(encodeLegacyUnsigned(a)),d=secp256k1['sign'](c,b,{'format':'recovered','prehash':![]}),e=d[0x0],f=bytesToBigInt(d['subarray'](0x1,0x21)),g=bytesToBigInt(d['subarray'](0x21,0x41)),h=BigInt(e)+BigInt(a['chainId'])*0x2n+LEGACY_CHAINID_OFFSET;return'0x'+bytesToHex(encodeRLP([BigInt(a['nonce']),a['gasPrice'],a['gasLimit'],a['to'],a['value'],a['data'],f,g,h]));}function privateKeyToAddress(a){return toChecksumAddress(keccak_256(secp256k1['getPublicKey'](a,![])['slice'](0x1,0x41))['slice'](-0x14));}function compressedPubKeyToAddress(a){const b=typeof a==='string'?hexToBytes(a['startsWith']('0x')?a:'0x'+a):a;if(b['length']!==0x21)throw new Error('compressedPubKeyToAddress:\x20expected\x2033\x20bytes,\x20got\x20'+b['length']);return toChecksumAddress(keccak_256(secp256k1['Point']['fromBytes'](b)['toBytes'](![])['slice'](0x1,0x41))['slice'](-0x14));}function toChecksumAddress(a){const b=bytesToHex(a)['toLowerCase'](),c=bytesToHex(keccak_256(new TextEncoder()['encode'](b)));let d='0x';for(let e=0x0;e<b['length'];e++){const f=c[e],g=b[e];if(/[0-9]/['test'](g))d+=g;else{if(parseInt(f,0x10)>=0x8)d+=g['toUpperCase']();else d+=g['toLowerCase']();}}return d;}function isValidEvmAddress(a){return/^0x[0-9a-fA-F]{40}$/['test'](a);}function isChecksumAddress(a){if(!isValidEvmAddress(a))return![];return toChecksumAddress(hexToBytes(a))===a;}export{bigIntToBytes,bigIntToHex,bytesToBigInt,bytesToHex,compressedPubKeyToAddress,encodeRLP,hexToBytes,isChecksumAddress,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { c as bytesToHex,
|
|
2
|
-
import { a as
|
|
3
|
-
export {
|
|
1
|
+
import { _ as toChecksumAddress, c as bytesToHex, d as hexToBytes, g as signLegacy, h as signEIP1559, m as privateKeyToAddress, p as isValidEvmAddress, s as bytesToBigInt } from "../../rlp-Do3rPWRV.mjs";
|
|
2
|
+
import { a as EvmTransactionRequest, i as EvmTransactionReceipt, n as EvmAccountData, r as EvmLog, t as EvmAccount } from "../../evm-account-BPYk6EpK.mjs";
|
|
3
|
+
export { EvmAccount, EvmAccountData, EvmLog, EvmTransactionReceipt, EvmTransactionRequest, bytesToBigInt, bytesToHex, hexToBytes, isValidEvmAddress, privateKeyToAddress, signEIP1559, signLegacy, toChecksumAddress };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{U as a80a}from'../../common-fDv-Cuzq.mjs';import{_ as a80b}from'../../local-c-Tbdkfa.mjs';import{getWowDir}from'./util.mjs';import{bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress}from'./evm/rlp.mjs';import{EvmNetworkRegistry}from'./evm/networks.mjs';import{secp256k1}from'@noble/curves/secp256k1.js';import a80c from'libsql';import*as a80d from'path';import{keccak_256}from'@noble/hashes/sha3.js';const ETH_MAINNET_CHAIN_ID=0x1,DEFAULT_ETH_RPC_URL='https://eth.llamarpc.com',DEFAULT_CHAIN_ID=0x1,WOW_DIR=getWowDir(),ACCOUNT_DB_PATH=a80d['join'](WOW_DIR,'account.db');function getEvmAccountDatabase(){const a=new a80c(ACCOUNT_DB_PATH);return a['pragma']('journal_mode\x20=\x20WAL'),a['pragma']('synchronous\x20=\x20NORMAL'),a['exec']('\x0a\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20evm_accounts\x20(\x0a\x09\x09\x09id\x20INTEGER\x20PRIMARY\x20KEY\x20CHECK\x20(id\x20=\x201),\x0a\x09\x09\x09data\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09);\x0a\x09'),a;}let evmAccountDbInstance=null;function getEvmAccountDb(){if(!evmAccountDbInstance)evmAccountDbInstance=getEvmAccountDatabase();return evmAccountDbInstance;}var SQLiteEvmAccountStorage=class{constructor(a){this['_db']=a??void 0x0;}get['db'](){if(this['_db'])return this['_db'];return getEvmAccountDb();}async['get'](){return this['db']['prepare']('SELECT\x20data\x20FROM\x20evm_accounts\x20WHERE\x20id\x20=\x201')['get']()?.['data'];}async['put'](a){this['db']['prepare']('\x0a\x09\x09\x09INSERT\x20INTO\x20evm_accounts\x20(id,\x20data,\x20updated_at)\x20\x0a\x09\x09\x09VALUES\x20(1,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09ON\x20CONFLICT(id)\x20DO\x20UPDATE\x20SET\x20data\x20=\x20excluded.data,\x20updated_at\x20=\x20excluded.updated_at\x0a\x09\x09')['run'](a);}async['clear'](){this['db']['exec']('DELETE\x20FROM\x20evm_accounts');}},AsyncLock=class{constructor(){this['_locked']=![],this['_queue']=[];}async['acquire'](){if(!this['_locked']){this['_locked']=!![];return;}return new Promise(a=>{this['_queue']['push'](a);});}['release'](){if(this['_queue']['length']>0x0)this['_queue']['shift']()();else this['_locked']=![];}async['run'](a){await this['acquire']();try{return await a();}finally{this['release']();}}};let rpcRequestId=0x0;async function ethRpcWithAbort(a,b,c,d){const e={'jsonrpc':'2.0','id':++rpcRequestId,'method':b,'params':c},f=await fetch(a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](e),'signal':d});if(!f['ok'])throw new Error('EVM\x20RPC\x20HTTP\x20'+f['status']+':\x20'+await f['text']());const g=await f['json']();if(g['error'])throw new Error('EVM\x20RPC\x20error:\x20'+g['error']['message']+'\x20(code\x20'+g['error']['code']+')');return g['result'];}const DEFAULT_EVM_ACCOUNT_NAME='';var EvmAccount=class EvmAccount{static{this['_lock']=new AsyncLock();}['setStorage'](a){EvmAccount['storage']=a;}async['getStorage'](){if(!EvmAccount['storage'])EvmAccount['storage']=new SQLiteEvmAccountStorage();return EvmAccount['storage'];}static['Instance'](){if(!EvmAccount['_instance'])EvmAccount['_instance']=new EvmAccount();return EvmAccount['_instance'];}['accountData'](a){if(!a)return void 0x0;return a;}static['nameMatch'](a,b){if(a==null)return![];return a['toLowerCase']()===b['toLowerCase']();}['name_resolve'](a){return a||'';}async['resolveNetwork'](a,b){const c=EvmNetworkRegistry['Instance']();if(b){const e=await c['resolve'](b);return{'cfg':e,'url':c['pickHealthyRpc'](e)||b};}const d=await c['resolve'](a);return{'cfg':d,'url':c['pickHealthyRpc'](d)};}async['rpcWithFailover'](a,b,c){const d=EvmNetworkRegistry['Instance']();let f;const g=a['rpcTimeoutMs']??0x7530;for(const h of a['rpcUrls'])try{const i=new AbortController(),j=setTimeout(()=>i['abort'](),g);try{return await ethRpcWithAbort(h,b,c,i['signal']);}finally{clearTimeout(j);}}catch(k){f=k,d['markUnhealthy'](h);}throw f instanceof Error?f:new Error('All\x20RPCs\x20failed\x20for\x20'+b);}async['gen'](a,b,c){return EvmAccount['_lock']['run'](async()=>{a=this['name_resolve'](a);if(a&&!a80a(a))a80b('invalid\x20name','Name\x20'+a+'\x20exceeds\x20max\x2064');const d=secp256k1['utils']['randomSecretKey'](),e='0x'+bytesToHex(d),f=privateKeyToAddress(d),g=Date['now'](),h={'name':a,'address':f,'secret':e,'createdAt':g,'updatedAt':g,'chainId':c??EvmNetworkRegistry['Instance']()['getDefault']()['chainId']},i=await this['getStorage'](),j=await i['get'](),k=j?JSON['parse'](j):[],l=k['findIndex'](o=>EvmAccount['nameMatch'](o['name'],a));if(l!==-0x1){if(b)k[l]['name']=void 0x0;else a80b('account\x20name\x20exist','Name\x20'+(a||'')+'\x20already\x20exist');}k['push'](h),await i['put'](JSON['stringify'](k));const {secret:m,...n}=h;return n;});}async['default'](){return this['accountData'](await this['get_imp'](''));}async['get'](a,b){if(!b)return this['accountData'](await this['get_imp'](a));return this['gen'](a);}async['get_address'](a){if(a&&isValidEvmAddress(a))return a;return(await this['get_imp'](a))?.['address'];}async['get_imp'](a){a=this['name_resolve'](a);const b=await(await this['getStorage']())['get']();if(b){const c=a['toLowerCase']();return JSON['parse'](b)['find'](e=>EvmAccount['nameMatch'](e['name'],a)||e['address']['toLowerCase']()===c);}}async['list'](a){const b=await(await this['getStorage']())['get']();if(!b)return[];let c=JSON['parse'](b);if(a?.['suspended']!==void 0x0)c=c['filter'](d=>a['suspended']?d['suspended']===!![]:!d['suspended']);else c=c['filter'](d=>!d['suspended']);if(a?.['name']!=null){const d=a['name']['toLowerCase']();c=c['filter'](e=>e['name']?.['toLowerCase']()['includes'](d));}if(a?.['address']){const e=a['address']['toLowerCase']();c=c['filter'](f=>f['address']['toLowerCase']()['includes'](e));}if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0)c=c['filter'](f=>f['createdAt']&&f['createdAt']>=a['createdAt']['gte']);if(a['createdAt']['lte']!==void 0x0)c=c['filter'](f=>f['createdAt']&&f['createdAt']<=a['createdAt']['lte']);}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0)c=c['filter'](f=>f['updatedAt']&&f['updatedAt']>=a['updatedAt']['gte']);if(a['updatedAt']['lte']!==void 0x0)c=c['filter'](f=>f['updatedAt']&&f['updatedAt']<=a['updatedAt']['lte']);}return c['map'](({secret:f,...g})=>g);}async['rename'](a,b){return EvmAccount['_lock']['run'](async()=>{if(b&&!a80a(b))a80b('invalid\x20name','Invalid\x20new\x20name:\x20\x22'+b+'\x22');const c=this['name_resolve'](a);if(c===b)return!![];const d=await this['getStorage'](),e=await d['get']();if(!e)return![];const g=JSON['parse'](e);if(g['find'](i=>EvmAccount['nameMatch'](i['name'],b)))a80b('account\x20name\x20exist','Name\x20\x22'+b+'\x22\x20already\x20exists');const h=g['find'](i=>EvmAccount['nameMatch'](i['name'],c)||i['address']['toLowerCase']()===c['toLowerCase']());if(!h)a80b('account\x20not\x20found','Account\x20\x22'+a+'\x22\x20not\x20found');return h['name']=b,h['updatedAt']=Date['now'](),await d['put'](JSON['stringify'](g)),!![];});}async['suspend'](a){return EvmAccount['_lock']['run'](async()=>{const b=this['name_resolve'](a),c=await this['getStorage'](),d=await c['get']();if(!d)return![];const e=JSON['parse'](d),g=e['find'](h=>h['address']['toLowerCase']()===b['toLowerCase']()||EvmAccount['nameMatch'](h['name'],b));if(!g)return![];return g['suspended']=!![],g['name']=void 0x0,g['updatedAt']=Date['now'](),await c['put'](JSON['stringify'](e)),!![];});}async['resume'](a,b){return EvmAccount['_lock']['run'](async()=>{b=this['name_resolve'](b);if(b&&!a80a(b))a80b('invalid\x20name','Name\x20'+b+'\x20exceeds\x20max\x2064');const c=await this['getStorage'](),d=await c['get']();if(!d)return![];const e=JSON['parse'](d);if(e['find'](h=>EvmAccount['nameMatch'](h['name'],b)))a80b('account\x20name\x20exist','Name\x20\x22'+b+'\x22\x20exists');const g=e['find'](h=>h['address']['toLowerCase']()===a['toLowerCase']());if(!g)return![];return g['suspended']=![],g['name']=b,g['updatedAt']=Date['now'](),await c['put'](JSON['stringify'](e)),!![];});}async['balance'](b,c,d){const e=await this['get_imp'](b);if(!e)return void 0x0;const {cfg:f}=await this['resolveNetwork'](c,d),g=await this['rpcWithFailover'](f,'eth_getBalance',[e['address'],'latest']);return BigInt(g);}async['balanceOf'](b,c,d,e){const f=await this['get_imp'](c);if(!f)return void 0x0;const {cfg:g}=await this['resolveNetwork'](d,e),h='0x70a08231'+f['address']['slice'](0x2)['toLowerCase']()['padStart'](0x40,'0'),i=await this['rpcWithFailover'](g,'eth_call',[{'to':b,'data':h},'latest']);return BigInt(i);}async['getNonce'](b,c,d){const e=await this['get_imp'](b);if(!e)return void 0x0;const {cfg:f}=await this['resolveNetwork'](c,d),g=await this['rpcWithFailover'](f,'eth_getTransactionCount',[e['address'],'pending']);return parseInt(g,0x10);}async['getChainId'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_chainId',[]);return parseInt(d,0x10);}async['getBlockNumber'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_blockNumber',[]);return BigInt(d);}async['estimateGas'](b,c,d,e){const f=await this['get_imp'](c);if(!f)a80b('account\x20not\x20found','Account\x20not\x20found');const g=b['network']??d,{cfg:h}=await this['resolveNetwork'](g,e??b['rpcUrl']),i=await this['rpcWithFailover'](h,'eth_estimateGas',[{'from':f['address'],'to':b['to'],'data':b['data']??'0x','value':'0x'+(b['value']??0x0n)['toString'](0x10)}]);return BigInt(i);}async['getFeeData'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_feeHistory',['0x5','latest',[0x32]]),e=BigInt(d['baseFeePerGas'][0x0]),f=BigInt(d['reward'][0x0][0x0]),g=c['minPriorityFee']??0x0n,h=f<g?g:f;return{'maxFeePerGas':e*0x2n+h,'maxPriorityFeePerGas':h};}async['sign_and_send'](b,c,d){const e=await this['get_imp'](c);if(!e||!e['secret'])a80b('account\x20not\x20found','EVM\x20account\x20not\x20found\x20or\x20no\x20secret:\x20'+(c??'<default>'));const {cfg:f,url:g}=await this['resolveNetwork'](b['network'],d??b['rpcUrl']),h=b['chainId']??f['chainId'],i=hexToBytes(e['secret']['slice'](0x2)),j=b['nonce']??await this['getNonce'](e['address'],f['chainId'],g);let {maxFeePerGas:k,maxPriorityFeePerGas:l,gasPrice:m}=b;f['useLegacy']&&!m&&(m=(await this['getFeeData'](f['chainId'],g))['maxFeePerGas'],k=void 0x0,l=void 0x0);if(!k&&!l&&!m){const s=await this['getFeeData'](f['chainId'],g);k=s['maxFeePerGas'],l=s['maxPriorityFeePerGas'];}let n=b['gasLimit'];if(!n){const t=await this['estimateGas'](b,c,f['chainId'],g),u=f['gasLimitMultiplier']??1.2;n=BigInt(Math['ceil'](Number(t)*u));}const o=hexToBytes(b['to']['slice'](0x2)),p=b['data']?hexToBytes(b['data']['slice'](0x2)):new Uint8Array(0x0);let q;if(m)q=signLegacy({'to':o,'data':p,'value':b['value']??0x0n,'nonce':j,'chainId':h,'gasPrice':m,'gasLimit':n},i);else q=signEIP1559({'to':o,'data':p,'value':b['value']??0x0n,'nonce':j,'chainId':h,'maxFeePerGas':k,'maxPriorityFeePerGas':l,'gasLimit':n},i);const r=await this['rpcWithFailover'](f,'eth_sendRawTransaction',[q]);return await this['waitForReceipt'](r,f['chainId'],g);}async['waitForReceipt'](a,b,c,d){const {cfg:e,url:f}=await this['resolveNetwork'](b,c),g=d??e['txConfirmTimeoutMs']??0x1d4c0,h=e['pollIntervalMs']??0xbb8,i=Date['now']()+g;while(Date['now']()<i){const j=await this['rpcWithFailover'](e,'eth_getTransactionReceipt',[a]);if(j)return this['parseReceipt'](j);await new Promise(k=>setTimeout(k,h));}a80b('fail','Transaction\x20'+a+'\x20not\x20confirmed\x20within\x20'+g+'ms');}['parseReceipt'](a){return{'transactionHash':a['transactionHash'],'blockNumber':BigInt(a['blockNumber']),'blockHash':a['blockHash'],'status':a['status']??'0x0','gasUsed':BigInt(a['gasUsed']),'effectiveGasPrice':BigInt(a['effectiveGasPrice']),'from':a['from'],'to':a['to'],'contractAddress':a['contractAddress']??void 0x0,'logs':(a['logs']??[])['map'](b=>({'address':b['address'],'topics':b['topics']??[],'data':b['data']??'0x','blockNumber':BigInt(b['blockNumber']),'transactionHash':b['transactionHash'],'transactionIndex':b['transactionIndex'],'logIndex':b['logIndex'],'removed':b['removed']??![]}))};}async['signData'](a,b){const c=await this['get_imp'](a);if(!c?.['secret'])a80b('account\x20not\x20found','EVM\x20account\x20not\x20found:\x20'+a);const d=hexToBytes(c['secret']['slice'](0x2)),e=typeof b==='string'?new TextEncoder()['encode'](b):b,f='\x19Ethereum\x20Signed\x20Message:\x0a'+e['length'],g=new Uint8Array(f['length']+e['length']);g['set'](new TextEncoder()['encode'](f),0x0),g['set'](e,f['length']);const h=keccak_256(g),i=secp256k1['sign'](h,d,{'format':'recovered'}),j=0x1b+i[0x0],k=new Uint8Array(0x41);k['set'](i['subarray'](0x1,0x21),0x0),k['set'](i['subarray'](0x21,0x41),0x20),k[0x40]=j;const l=secp256k1['getPublicKey'](d,!![]);return{'signature':'0x'+bytesToHex(k),'publicKey':'0x'+bytesToHex(l),'address':c['address']};}};export{DEFAULT_CHAIN_ID,DEFAULT_ETH_RPC_URL,DEFAULT_EVM_ACCOUNT_NAME,ETH_MAINNET_CHAIN_ID,EvmAccount,SQLiteEvmAccountStorage,bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress};
|
|
1
|
+
import{o as a78a}from'../../exception--UEPnygY.mjs';import{SQLiteAccountStorage}from'./storage.mjs';import{SecureAccountStorage}from'./secure-storage.mjs';import{bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress}from'./evm/rlp.mjs';import{EvmNetworkRegistry}from'./evm/networks.mjs';import{secp256k1}from'@noble/curves/secp256k1.js';import{keccak_256}from'@noble/hashes/sha3.js';var AsyncLock=class{constructor(){this['_locked']=![],this['_queue']=[];}async['acquire'](){if(!this['_locked']){this['_locked']=!![];return;}return new Promise(a=>{this['_queue']['push'](a);});}['release'](){if(this['_queue']['length']>0x0)this['_queue']['shift']()();else this['_locked']=![];}async['run'](a){await this['acquire']();try{return await a();}finally{this['release']();}}};let rpcRequestId=0x0;async function ethRpcWithAbort(a,b,c,d){const e={'jsonrpc':'2.0','id':++rpcRequestId,'method':b,'params':c},f=await fetch(a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](e),'signal':d});if(!f['ok'])throw new Error('EVM\x20RPC\x20HTTP\x20'+f['status']+':\x20'+await f['text']());const g=await f['json']();if(g['error'])throw new Error('EVM\x20RPC\x20error:\x20'+g['error']['message']+'\x20(code\x20'+g['error']['code']+')');return g['result'];}var EvmAccount=class EvmAccount{static{this['_lock']=new AsyncLock();}['setStorage'](a){EvmAccount['storage']=a;}['setEncryptedStorage'](a){EvmAccount['storage']=new SecureAccountStorage(a);}async['_getStorage'](){if(!EvmAccount['storage'])EvmAccount['storage']=new SecureAccountStorage(new SQLiteAccountStorage(void 0x0,'evm_accounts'));return EvmAccount['storage'];}async['unlock'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');b['setSessionPassword'](a),await b['get']();}async['lock'](){const a=await this['_getStorage']();if(a instanceof SecureAccountStorage)a['setSessionPassword'](void 0x0);}async['setEncryptionPassword'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['setPassword'](a);}async['changeEncryptionPassword'](a,b){const c=await this['_getStorage']();if(!(c instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await c['changePassword'](a,b);}async['removeEncryptionPassword'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['removePassword'](a);}static['Instance'](){if(!EvmAccount['_instance'])EvmAccount['_instance']=new EvmAccount();return EvmAccount['_instance'];}async['_get'](){const a=await this['_getStorage'](),b=await a['get']();if(!b)return void 0x0;const c=JSON['parse'](b);if(Array['isArray'](c)){const f=c,g=f['find'](h=>!h['suspended'])||f[0x0];if(g){const h={'address':g['address'],'pubkey':g['pubkey'],'secret':g['secret'],'createdAt':g['createdAt'],'updatedAt':g['updatedAt']};await a['put'](JSON['stringify'](h));const {secret:i,...j}=h;return j;}return;}const {secret:d,...e}=c;return e;}async['_getWithSecret'](){const a=await this['_getStorage'](),b=await a['get']();if(!b)a78a('account\x20not\x20found','No\x20active\x20EVM\x20account.\x20Call\x20active()\x20first\x20to\x20auto-generate\x20one.');const c=JSON['parse'](b);if(Array['isArray'](c)){const e=c,f=e['find'](h=>!h['suspended'])||e[0x0];if(!f||!f['secret'])a78a('account\x20not\x20found','No\x20active\x20EVM\x20account\x20with\x20secret\x20found\x20in\x20storage.');const g={'address':f['address'],'pubkey':f['pubkey'],'secret':f['secret'],'createdAt':f['createdAt'],'updatedAt':f['updatedAt']};return await a['put'](JSON['stringify'](g)),g;}const d=c;if(!d['secret'])a78a('account\x20not\x20found','EVM\x20account\x20found\x20but\x20has\x20no\x20secret.');return d;}async['_save'](a){await(await this['_getStorage']())['put'](JSON['stringify'](a));}async['resolveNetwork'](a,b){const c=EvmNetworkRegistry['Instance']();if(b){const e=await c['resolve'](b);return{'cfg':e,'url':c['pickHealthyRpc'](e)||b};}const d=await c['resolve'](a);return{'cfg':d,'url':c['pickHealthyRpc'](d)};}async['rpcWithFailover'](a,b,c){const d=EvmNetworkRegistry['Instance']();let f;const g=a['rpcTimeoutMs']??0x2710;for(const h of a['rpcUrls'])try{const i=new AbortController(),j=setTimeout(()=>i['abort'](),g);try{const k=await ethRpcWithAbort(h,b,c,i['signal']);return d['markHealthy'](h),k;}finally{clearTimeout(j);}}catch(l){f=l,d['markUnhealthy'](h);}throw f instanceof Error?f:new Error('All\x20RPCs\x20failed\x20for\x20'+b);}async['gen'](){return EvmAccount['_lock']['run'](async()=>{const a=secp256k1['utils']['randomSecretKey'](),b='0x'+bytesToHex(a),c=privateKeyToAddress(a),d=Date['now'](),e={'address':c,'secret':b,'createdAt':d,'updatedAt':d};await this['_save'](e);const {secret:f,...g}=e;return g;});}async['importPrivateKey'](a){return EvmAccount['_lock']['run'](async()=>{const b=a['startsWith']('0x')?a['slice'](0x2):a;if(b['length']!==0x40)a78a('invalid\x20parameter','Private\x20key\x20must\x20be\x2032\x20bytes\x20(64\x20hex\x20chars),\x20got\x20'+b['length']+'\x20chars');const c='0x'+b,d=privateKeyToAddress(hexToBytes(c)),e=Date['now'](),f={'address':d,'secret':c,'createdAt':e,'updatedAt':e};await this['_save'](f);const {secret:g,...h}=f;return h;});}async['active'](){const a=await this['_get']();if(a)return a;return this['gen']();}async['balance'](b,c){const d=await this['_get']();if(!d)return void 0x0;const {cfg:e}=await this['resolveNetwork'](b,c),f=await this['rpcWithFailover'](e,'eth_getBalance',[d['address'],'latest']);return BigInt(f);}async['balanceOf'](b,c,d){const e=await this['_get']();if(!e)return void 0x0;const {cfg:f}=await this['resolveNetwork'](c,d),g='0x70a08231'+e['address']['slice'](0x2)['toLowerCase']()['padStart'](0x40,'0'),h=await this['rpcWithFailover'](f,'eth_call',[{'to':b,'data':g},'latest']);return BigInt(h);}async['getNonce'](b,c){const d=await this['_get']();if(!d)return void 0x0;const {cfg:e}=await this['resolveNetwork'](b,c),f=await this['rpcWithFailover'](e,'eth_getTransactionCount',[d['address'],'pending']);return parseInt(f,0x10);}async['getChainId'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_chainId',[]);return parseInt(d,0x10);}async['getBlockNumber'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_blockNumber',[]);return BigInt(d);}async['ethCall'](b,c,d){const e=await this['_get']();if(!e)a78a('account\x20not\x20found','No\x20active\x20EVM\x20account');const f=b['network']??c,{cfg:g}=await this['resolveNetwork'](f,d??b['rpcUrl']);return await this['rpcWithFailover'](g,'eth_call',[{'from':e['address'],'to':b['to'],'data':b['data']??'0x','value':'0x'+(b['value']??0x0n)['toString'](0x10)},'latest']);}['guessGasLimit'](a){const b=a['data']??'';if(b['startsWith']('0x9c3ecefb'))return 0x927c0n;if(b['startsWith']('0x095ea7b3'))return 0x186a0n;if(b['startsWith']('0xb4b7068c'))return 0x3d090n;if(b['startsWith']('0x0bdba58b'))return 0x493e0n;return 0x61a80n;}async['estimateGas'](b,c,d){const e=await this['_get']();if(!e)a78a('account\x20not\x20found','No\x20active\x20EVM\x20account');const f=b['network']??c,{cfg:g}=await this['resolveNetwork'](f,d??b['rpcUrl']),h=await this['rpcWithFailover'](g,'eth_estimateGas',[{'from':e['address'],'to':b['to'],'data':b['data']??'0x','value':'0x'+(b['value']??0x0n)['toString'](0x10)}]);return BigInt(h);}async['safeEstimateGas'](a){if(!await this['_get']())a78a('account\x20not\x20found','No\x20active\x20EVM\x20account');const {cfg:b}=await this['resolveNetwork'](a['network'],a['rpcUrl']);let c;try{await this['ethCall'](a);}catch(d){return c=extractRevertReason(d),{'gasLimit':this['guessGasLimit'](a),'revertReason':c||'eth_call\x20failed'};}try{const f=await this['estimateGas'](a),g=b['gasLimitMultiplier']??1.2;return{'gasLimit':BigInt(Math['ceil'](Number(f)*g))};}catch(h){return c=extractRevertReason(h),console['warn']('[safeEstimateGas]\x20estimateGas\x20failed,\x20using\x20fallback\x20gasLimit='+this['guessGasLimit'](a),c?'revert:\x20'+c:''),{'gasLimit':this['guessGasLimit'](a),'revertReason':c};}}async['getFeeData'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_feeHistory',['0x5','latest',[0x32]]),e=BigInt(d['baseFeePerGas'][0x0]),f=BigInt(d['reward'][0x0][0x0]),g=c['minPriorityFee']??0x0n,h=f<g?g:f;return{'maxFeePerGas':e*0x2n+h,'maxPriorityFeePerGas':h};}async['sign_and_send'](b,c){const d=await this['_getWithSecret']();if(!d||!d['secret'])a78a('account\x20not\x20found','No\x20active\x20EVM\x20account\x20with\x20secret');const {cfg:e,url:f}=await this['resolveNetwork'](b['network'],c??b['rpcUrl']),g=b['chainId']??e['chainId'],h=hexToBytes(d['secret']['slice'](0x2)),i=b['nonce']??await this['getNonce'](e['chainId'],f);let {maxFeePerGas:j,maxPriorityFeePerGas:k,gasPrice:l}=b;e['useLegacy']&&!l&&(l=(await this['getFeeData'](e['chainId'],f))['maxFeePerGas'],j=void 0x0,k=void 0x0);if(!j&&!k&&!l){const r=await this['getFeeData'](e['chainId'],f);j=r['maxFeePerGas'],k=r['maxPriorityFeePerGas'];}let m=b['gasLimit'];if(!m){const s=await this['safeEstimateGas'](b);m=s['gasLimit'],s['revertReason'];}const n=hexToBytes(b['to']['slice'](0x2)),o=b['data']?hexToBytes(b['data']['slice'](0x2)):new Uint8Array(0x0);let p;if(l)p=signLegacy({'to':n,'data':o,'value':b['value']??0x0n,'nonce':i,'chainId':g,'gasPrice':l,'gasLimit':m},h);else p=signEIP1559({'to':n,'data':o,'value':b['value']??0x0n,'nonce':i,'chainId':g,'maxFeePerGas':j,'maxPriorityFeePerGas':k,'gasLimit':m},h);const q=await this['rpcWithFailover'](e,'eth_sendRawTransaction',[p]);return await this['waitForReceipt'](q,e['chainId'],f);}async['waitForReceipt'](a,b,c,d){const {cfg:e,url:f}=await this['resolveNetwork'](b,c),g=d??e['txConfirmTimeoutMs']??0x1d4c0,h=e['pollIntervalMs']??0xbb8,i=Date['now']()+g;while(Date['now']()<i){const j=await this['rpcWithFailover'](e,'eth_getTransactionReceipt',[a]);if(j)return this['parseReceipt'](j);await new Promise(k=>setTimeout(k,h));}a78a('fail','Transaction\x20'+a+'\x20not\x20confirmed\x20within\x20'+g+'ms');}['parseReceipt'](a){return{'transactionHash':a['transactionHash'],'blockNumber':BigInt(a['blockNumber']),'blockHash':a['blockHash'],'status':a['status']??'0x0','gasUsed':BigInt(a['gasUsed']),'effectiveGasPrice':BigInt(a['effectiveGasPrice']),'from':a['from'],'to':a['to'],'contractAddress':a['contractAddress']??void 0x0,'logs':(a['logs']??[])['map'](b=>({'address':b['address'],'topics':b['topics']??[],'data':b['data']??'0x','blockNumber':BigInt(b['blockNumber']),'transactionHash':b['transactionHash'],'transactionIndex':b['transactionIndex'],'logIndex':b['logIndex'],'removed':b['removed']??![]}))};}async['signData'](a){const b=await this['_getWithSecret'](),c=hexToBytes(b['secret']['slice'](0x2)),d=typeof a==='string'?new TextEncoder()['encode'](a):a,e='\x19Ethereum\x20Signed\x20Message:\x0a'+d['length'],f=new Uint8Array(e['length']+d['length']);f['set'](new TextEncoder()['encode'](e),0x0),f['set'](d,e['length']);const g=keccak_256(f),h=secp256k1['sign'](g,c,{'format':'recovered','prehash':![]}),i=0x1b+h[0x0],j=new Uint8Array(0x41);j['set'](h['subarray'](0x1,0x21),0x0),j['set'](h['subarray'](0x21,0x41),0x20),j[0x40]=i;const k=secp256k1['getPublicKey'](c,!![]);return{'signature':'0x'+bytesToHex(j),'publicKey':'0x'+bytesToHex(k),'address':b['address']};}async['transfer'](a){await this['_getWithSecret']();if(!isValidEvmAddress(a['to']))a78a('invalid\x20parameter','Invalid\x20EVM\x20recipient\x20address:\x20'+a['to']);if(a['amount']<=0x0n)a78a('invalid\x20parameter','amount\x20must\x20be\x20positive');const b=!!a['tokenAddress'];if(b){const e=await this['balanceOf'](a['tokenAddress'],a['network'],a['rpcUrl']);if(e===void 0x0||e<a['amount'])a78a('fail','Insufficient\x20ERC20\x20balance:\x20have\x20'+(e??0x0n)+',\x20need\x20'+a['amount']);}else{const f=await this['balance'](a['network'],a['rpcUrl']);if(f===void 0x0||f<a['amount'])a78a('fail','Insufficient\x20ETH\x20balance:\x20have\x20'+(f??0x0n)+',\x20need\x20'+a['amount']);}let c;if(b){const g='0xa9059cbb'+a['to']['slice'](0x2)['toLowerCase']()['padStart'](0x40,'0')+a['amount']['toString'](0x10)['padStart'](0x40,'0');c={'to':a['tokenAddress'],'value':0x0n,'data':g,'network':a['network'],'rpcUrl':a['rpcUrl']};}else c={'to':a['to'],'value':a['amount'],'data':'0x','network':a['network'],'rpcUrl':a['rpcUrl']};const d=await this['sign_and_send'](c,a['rpcUrl']);if(d['status']!=='0x1')a78a('fail','EVM\x20transfer\x20reverted:\x20txHash='+d['transactionHash']);return d;}async['withdrawFromActive'](a){return this['transfer']({...a});}};function extractRevertReason(a){if(!a)return void 0x0;const b=typeof a==='string'?a:a?.['message']??a?.['toString']?.()??'',c=b['match'](/execution reverted:\s*(.+?)(?:\.|$)/i);if(c)return c[0x1]['trim']();const d=b['match'](/reverted with reason string\s*'([^']+)'/i);if(d)return d[0x1];const e=b['match'](/reverted with panic code\s*(0x[0-9a-f]+)/i);if(e)return'panic:\x20'+e[0x1];if(/stack underflow/i['test'](b))return'stack\x20underflow\x20(calldata\x20encoding\x20error)';if(/stack overflow/i['test'](b))return'stack\x20overflow';if(/out of gas/i['test'](b))return'out\x20of\x20gas';return b['length']>0xc8?b['slice'](0x0,0xc8)+'...':b;}export{EvmAccount,bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { A_ as
|
|
1
|
+
import { $_ as TokenTypeInfo, A_ as GetManyAccountOrMark_Address, B_ as fetch_token_info_operation, C_ as AccountOperation, D_ as FetchTokenInfoOperation, E_ as FaucetNetwork, F_ as LocalNameByAddress, G_ as query_local_info, H_ as local_mark_operation, I_ as ManyAccountOrMark_Address, J_ as query_local_mark, K_ as query_local_info_default, L_ as QueryAccount, M_ as LocalInfoOperationResult, N_ as LocalMarkOperation, O_ as GetAccountOrMark_Address, P_ as LocalMarkOperationResult, Q_ as TokenInfo, R_ as QueryAccountResult, T_ as AccountOrMark_Address, U_ as query_account, V_ as local_info_operation, W_ as query_account_list, X_ as query_local_token_list, Y_ as query_local_mark_list, Z_ as TokenDataFilter, av as MAX_MESSENGER_ACCOUNTS, ev as Account, iv as FaucetCoinInfo, j_ as LocalInfoOperation, k_ as GetLocalNamesByAddresses, nv as AccountFilter, q_ as query_local_info_list, rv as DEFAULT_ACCOUNT_NAME, tv as AccountData, w_ as AccountOperationResult, z_ as account_operation } from "../../index-D5-7_Kub.mjs";
|
|
2
2
|
import { n as ConfigData, t as Config } from "../../config-Bdlw4pMJ.mjs";
|
|
3
|
+
import { t as IAccountStorage } from "../../storage-Ct2mZnD0.mjs";
|
|
3
4
|
import { _ as isValidAddress, a as LocalInfoContentMaxCount, c as LocalInfoNameDefault, d as LocalMarkFilter, f as LocalMarkNameMaxLength, g as MarkParam, h as MarkData, i as LocalInfo, l as LocalInfoNameMaxLength, m as LocalMarkTagMaxLength, n as InfoData, o as LocalInfoContentMaxLength, p as LocalMarkTagMaxCount, r as InfoDataInner, s as LocalInfoFilter, t as BUITIN_IDS, u as LocalMark } from "../../local-CtSmnSPu.mjs";
|
|
4
|
-
import { c as bytesToHex,
|
|
5
|
-
import { a as
|
|
6
|
-
import { i as registerBridgeEvmNetworks, n as EvmNetworkConfig, r as EvmNetworkRegistry, t as ETH_MAINNET } from "../../networks-
|
|
5
|
+
import { _ as toChecksumAddress, c as bytesToHex, d as hexToBytes, g as signLegacy, h as signEIP1559, m as privateKeyToAddress, p as isValidEvmAddress, s as bytesToBigInt } from "../../rlp-Do3rPWRV.mjs";
|
|
6
|
+
import { a as EvmTransactionRequest, i as EvmTransactionReceipt, n as EvmAccountData, r as EvmLog, t as EvmAccount } from "../../evm-account-BPYk6EpK.mjs";
|
|
7
|
+
import { i as registerBridgeEvmNetworks, n as EvmNetworkConfig, r as EvmNetworkRegistry, t as ETH_MAINNET } from "../../networks-CEYOA-1U.mjs";
|
|
7
8
|
import { A as wipToHtml, C as createWip, D as verifyWip, E as sign_wip, O as verify_wip, S as WipVerificationResult, T as loadWip, _ as WipSignature, a as SignatureAlgorithm, b as WipToHtmlOptions, c as WipContent, d as WipFile, f as WipGenerationOptions, g as WipPayload, h as WipMeta, i as ImageSource, k as wip2html, l as WipCreateOptions, m as WipMedia, n as HashAlgorithm, o as TextFormat, p as WipLimits, r as ImageMimeType, s as WIP, t as DEFAULT_LIMITS, u as WipError, v as WipSignatureVerification, w as generate_wip, x as WipValidationError, y as WipSizeError } from "../../wip-NbB1ChbI.mjs";
|
|
8
|
-
|
|
9
|
+
import { a as SecureEnvelope, i as SecureAccountStorage, n as EncryptionMode, r as KeyMetadata, t as CryptoVault } from "../../secure-storage-DRwhPVz3.mjs";
|
|
10
|
+
export { Account, AccountData, AccountFilter, AccountOperation, AccountOperationResult, AccountOrMark_Address, BUITIN_IDS, Config, ConfigData, CryptoVault, DEFAULT_ACCOUNT_NAME, DEFAULT_LIMITS, ETH_MAINNET, EncryptionMode, EvmAccount, EvmAccountData, EvmLog, EvmNetworkConfig, EvmNetworkRegistry, EvmTransactionReceipt, EvmTransactionRequest, FaucetCoinInfo, FaucetNetwork, FetchTokenInfoOperation, GetAccountOrMark_Address, GetLocalNamesByAddresses, GetManyAccountOrMark_Address, HashAlgorithm, type IAccountStorage, ImageMimeType, ImageSource, InfoData, InfoDataInner, KeyMetadata, LocalInfo, LocalInfoContentMaxCount, LocalInfoContentMaxLength, LocalInfoFilter, LocalInfoNameDefault, LocalInfoNameMaxLength, LocalInfoOperation, LocalInfoOperationResult, LocalMark, LocalMarkFilter, LocalMarkNameMaxLength, LocalMarkOperation, LocalMarkOperationResult, LocalMarkTagMaxCount, LocalMarkTagMaxLength, LocalNameByAddress, MAX_MESSENGER_ACCOUNTS, ManyAccountOrMark_Address, MarkData, MarkParam, QueryAccount, QueryAccountResult, SecureAccountStorage, SecureEnvelope, SignatureAlgorithm, TextFormat, TokenDataFilter, TokenInfo, TokenTypeInfo, WIP, WipContent, WipCreateOptions, WipError, WipFile, WipGenerationOptions, WipLimits, WipMedia, WipMeta, WipPayload, WipSignature, WipSignatureVerification, WipSizeError, WipToHtmlOptions, WipValidationError, WipVerificationResult, account_operation, bytesToBigInt, bytesToHex, createWip, fetch_token_info_operation, generate_wip, hexToBytes, isValidAddress, isValidEvmAddress, loadWip, local_info_operation, local_mark_operation, privateKeyToAddress, query_account, query_account_list, query_local_info, query_local_info_default, query_local_info_list, query_local_mark, query_local_mark_list, query_local_token_list, registerBridgeEvmNetworks, signEIP1559, signLegacy, sign_wip, toChecksumAddress, verifyWip, verify_wip, wip2html, wipToHtml };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as a79a}from'../../sui-types-CuBKFvrd.mjs';import{i as a79b,r as a79c}from'../../common-CQggZ8z4.mjs';import{o as a79d}from'../../exception--UEPnygY.mjs';import{Config}from'./config.mjs';import{BUITIN_IDS,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,isValidAddress}from'./local.mjs';import{CryptoVault,SecureAccountStorage}from'./secure-storage.mjs';import{Account,DEFAULT_ACCOUNT_NAME,MAX_MESSENGER_ACCOUNTS}from'./account.mjs';import{TokenInfo}from'./token.mjs';import{bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress}from'./evm/rlp.mjs';import{ETH_MAINNET,EvmNetworkRegistry,registerBridgeEvmNetworks}from'./evm/networks.mjs';import{EvmAccount}from'./evm-account.mjs';import{DEFAULT_LIMITS,WIP,WipError,WipSizeError,WipValidationError,createWip,generate_wip,loadWip,sign_wip,verifyWip,verify_wip,wip2html,wipToHtml}from'./wip.mjs';const GetAccountOrMark_Address=async a=>{if(!a)return await Account['Instance']()['get_address'](void 0x0);const b=typeof a==='string'?a:a['name_or_address'];if(!b)return await Account['Instance']()['get_address'](void 0x0);if(b['toLowerCase']()==='0xaaa')return a79c;if(b['toLowerCase']()==='0xaab')return a79b;if(a79a(b))return b;if(typeof a==='object'&&a?.['local_mark_first']){const c=await LocalMark['Instance']()['get_address'](b);if(!c)return await Account['Instance']()['get_address'](b);return c;}else{const d=await Account['Instance']()['get_address'](b);if(!d)return await LocalMark['Instance']()['get_address'](b);return d;}},GetLocalNamesByAddresses=async a=>{const [b,c]=await Promise['all']([Account['Instance']()['get_many'](a),LocalMark['Instance']()['get_many'](a)]);return a['map']((d,e)=>({'account':b[e]?.['name'],'local_mark':c[e]?.['name'],'address':d}));},GetManyAccountOrMark_Address=async a=>{const b=[];for(let c=0x0;c<a['entities']['length'];++c){const d=await GetAccountOrMark_Address(a['entities'][c]);if(!d&&a['check_all_founded'])a79d('invalid\x20parameter','entity\x20'+a['entities'][c]?.['name_or_address']+'\x20is\x20not\x20a\x20valid\x20address,\x20account\x20or\x20mark');if(d)b['push'](d);}return b;},query_local_mark_list=async a=>{return await LocalMark['Instance']()['list'](a);},query_account_list=async a=>{return await Account['Instance']()['list'](a);},query_local_info_list=async a=>{return await LocalInfo['Instance']()['list'](a);},query_local_token_list=async a=>{return await TokenInfo['Instance']()['list'](a);},query_local_mark=async a=>{if(typeof a==='string')return await LocalMark['Instance']()['get'](a);else{if(Array['isArray'](a))return await LocalMark['Instance']()['get_many'](a);}},query_local_info=async(a=LocalInfoNameDefault)=>{if(typeof a==='string')return await LocalInfo['Instance']()['get'](a);else{if(Array['isArray'](a))return await LocalInfo['Instance']()['get_many'](a);}},query_local_info_default=async(a=LocalInfoNameDefault)=>{if(typeof a==='string')return await LocalInfo['Instance']()['get_default'](a);else{if(Array['isArray'](a))return(await LocalInfo['Instance']()['get_many'](a))['map'](b=>b?.['default']);}},query_account=async a=>{const b=await Account['Instance']()['get'](a['name_or_address']);if(!b)return{'name_or_address':a['name_or_address']};const c={'address':b['address'],'name_or_address':b['name']},d=a['token_type']??'0x2::wow::WOW';if(a?.['balance'])c['balance']=await Account['Instance']()['balance'](d,b['address'],a['network']);else{if(a?.['coin'])c['coin']=await Account['Instance']()['coin'](d,a['coin']['cursor'],a['coin']['limit'],b['address'],a['network']);}return c;},account_operation=async a=>{var b={};if(a['gen']!=null){const c=await Account['Instance']()['gen'](a['gen']?.['name'],a['gen']?.['replaceExistName'],a['gen']?.['m']);b['gen']={'address':c?.['address'],'name':c?.['name'],'m':c?.['m']};}if(a['faucet']!=null)b['faucet']={'name_or_address':a['faucet']['name_or_address'],'result':await Account['Instance']()['faucet'](a['faucet']['name_or_address'],a['faucet']['network']),'network':a['faucet']['network']};if(a['suspend']!=null)b['suspend']={'name_or_address':a['suspend']['name_or_address'],'success':await Account['Instance']()['suspend'](a['suspend']['name_or_address'])};if(a['resume']!=null)b['resume']={'address':a['resume']['address'],'name':a['resume']['name'],'success':await Account['Instance']()['resume'](a['resume']['address'],a['resume']['name'])};if(a['rename']!=null)b['rename']={'name_or_address':a['rename']['name_or_address'],'new_name':a['rename']['new_name'],'success':await Account['Instance']()['rename'](a['rename']['name_or_address'],a['rename']['new_name'])};if(a['swap_name']!=null)b['swap_name']={'name_or_address1':a['swap_name']['name_or_address1'],'name_or_address2':a['swap_name']['name_or_address2'],'success':await Account['Instance']()['swap_name'](a['swap_name']['name_or_address1'],a['swap_name']['name_or_address2'])};if(a['transfer']!=null){const {name_or_address_from:d,name_or_address_to:e,amount:f,token_type:g,network:h}=a['transfer'];b['transfer']=await Account['Instance']()['transfer'](f,g,e,d,h);}if(a['get']!=null){const {balance_required:i,token_type:j,name_or_address:k,network:l}=a['get'];b['get']={'name_or_address':k,'balance_required':i,'token_type':j,'network':l,'coin_address':await Account['Instance']()['coinObject_with_balance'](i,j,k,l)};}if(a['signData']!=null){const {name_or_address:n,data:o,data_encoding:p}=a['signData'];let q=o;if(typeof o==='string'&&p)switch(p){case'base64':q=Uint8Array['from'](Buffer['from'](o,'base64'));break;case'hex':q=Uint8Array['from'](Buffer['from'](o['replace'](/^0x/,''),'hex'));break;default:q=o;break;}const r=await Account['Instance']()['signData'](n,q);b['signData']={'name_or_address':n,'signature':r['signature'],'publicKey':r['publicKey'],'address':r['address']};}if(a['messenger']!=null){const {name_or_account:s,m:t}=a['messenger'];await Account['Instance']()['set_messenger'](s,t),b['messenger']={'name_or_account':s,'m':t};}return b;},local_mark_operation=async a=>{const b={};if(a['clear'])b['clear']=await LocalMark['Instance']()['clear']();else{if(a['add'])b['add']=await LocalMark['Instance']()['put'](a['add']['data']);else{if(a['remove'])b['remove']=await LocalMark['Instance']()['del'](a['remove']['names']);}}return b;},local_info_operation=async a=>{if(a['clear'])await LocalInfo['Instance']()['clear']();else{if(a['add'])await LocalInfo['Instance']()['add'](a['add']['data']);else{if(a['remove'])await Promise['all'](a['remove']['data']['map'](b=>LocalInfo['Instance']()['del'](b)));else{if(a['reset'])await LocalInfo['Instance']()['reset_contents'](a['reset']['name'],a['reset']['contents']);}}}return{'success':!![]};},fetch_token_info_operation=async a=>{return await TokenInfo['Instance']()['fetch'](a['tokenType'],a?.['alias'],a?.['network']);};export{Account,BUITIN_IDS,Config,CryptoVault,DEFAULT_ACCOUNT_NAME,DEFAULT_LIMITS,ETH_MAINNET,EvmAccount,EvmNetworkRegistry,GetAccountOrMark_Address,GetLocalNamesByAddresses,GetManyAccountOrMark_Address,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,MAX_MESSENGER_ACCOUNTS,SecureAccountStorage,TokenInfo,WIP,WipError,WipSizeError,WipValidationError,account_operation,bytesToBigInt,bytesToHex,createWip,fetch_token_info_operation,generate_wip,hexToBytes,isValidAddress,isValidEvmAddress,loadWip,local_info_operation,local_mark_operation,privateKeyToAddress,query_account,query_account_list,query_local_info,query_local_info_default,query_local_info_list,query_local_mark,query_local_mark_list,query_local_token_list,registerBridgeEvmNetworks,signEIP1559,signLegacy,sign_wip,toChecksumAddress,verifyWip,verify_wip,wip2html,wipToHtml};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as a82a,c as a82b,d as a82c,i as a82d,l as a82e,n as a82f,o as a82g,r as a82h,s as a82i,t as a82j,u as a82k}from'../../local-c-Tbdkfa.mjs';export{a82j as BUITIN_IDS,a82f as LocalInfo,a82h as LocalInfoContentMaxCount,a82d as LocalInfoContentMaxLength,a82a as LocalInfoNameDefault,a82g as LocalInfoNameMaxLength,a82i as LocalMark,a82b as LocalMarkNameMaxLength,a82e as LocalMarkTagMaxCount,a82k as LocalMarkTagMaxLength,a82c as isValidAddress};
|
|
1
|
+
import{a as a80a}from'../../sui-types-CuBKFvrd.mjs';import{o as a80b}from'../../exception--UEPnygY.mjs';import{Cache}from'./cache.mjs';import{Config}from'./config.mjs';const BUITIN_IDS=['0x5','0x6','0x7','0x8','0x9','0xc','0xd','0xa','@0xaaa','@0xaab','@0x403','@0xacc','@0xc'],isValidAddress=a=>{return a&&(a80a(a)||BUITIN_IDS['includes'](a));},LocalMarkNameMaxLength=0x40,LocalMarkTagMaxLength=0x40,LocalMarkTagMaxCount=0x32,LocalInfoNameMaxLength=0x40,LocalInfoContentMaxLength=0x12c,LocalInfoContentMaxCount=0x32,LocalInfoNameDefault='Address\x20of\x20delivery';var LocalMark=class LocalMark{constructor(){this['config']=Config['Instance']();}async['getCacheKey'](){return['mark',await this['config']['network_get']()];}static['Instance'](){if(!LocalMark['_instance'])LocalMark['_instance']=new LocalMark();return LocalMark['_instance'];}static['nameMatch'](a,b){if(a==null||b==null)return![];return a['toLowerCase']()===b['toLowerCase']();}['resolve_tags'](a){return a=a?.['slice'](0x0,0x32),a=a?.['filter'](b=>b!==''&&b)?.['map'](b=>{return b['slice'](0x0,0x40);}),a;}['resolve_name'](a){return a['slice'](0x0,0x40);}async['put'](a){const b=await this['getCacheKey'](),c=(await Cache['read'](b,async()=>{return{'expire':'INFINITE','data':[]};}))?.['data']||[],d=[...c],e=[];for(const f of a){f['address']=f['address']['toLowerCase']();if(!isValidAddress(f['address']))a80b('invalid\x20address','LocalMark.put.mark.address:\x20'+f['address']);if(f?.['name']?.['value'])f['name']['value']=this['resolve_name'](f?.['name']?.['value']);f['tags']=this['resolve_tags'](f?.['tags']);if(f?.['name']?.['value']!=null)d['forEach'](i=>{if(LocalMark['nameMatch'](i['name'],f['name']['value'])){if(f?.['name']?.['replaceExistName'])i['name']=void 0x0;else a80b('local\x20mark\x20name\x20exist','LocalMark.put.mark.name:\x20'+f['name']['value']);}});const g=Date['now'](),h={'name':f?.['name']?.['value'],'address':f['address'],'tags':f['tags'],'createdAt':g,'updatedAt':g};c['push'](h),e['push'](h);}return await Cache['read'](b,async()=>({'expire':'INFINITE','data':c}),!![]),e;}async['get'](a){if(a===void 0x0||a===null)return;const b=await this['getCacheKey']();return(await Cache['read'](b,async c=>{return{'expire':'INFINITE','data':[]};}))?.['data']?.['find'](c=>LocalMark['nameMatch'](c['name'],a)||c['address']['toLowerCase']()===a['toLowerCase']());}async['get_address'](a){if(a&&isValidAddress(a))return a['toLowerCase']();return(await this['get'](a))?.['address'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=await this['getCacheKey'](),c=(await Cache['read'](b,async d=>{return{'expire':'INFINITE','data':[]};}))?.['data']||[];return a['map'](d=>{return c['find'](e=>LocalMark['nameMatch'](e['name'],d)||e['address']['toLowerCase']()===d?.['toLowerCase']());});}async['get_many_address'](a){const b=new Array(a['length'])['fill'](void 0x0),c=new Map();a['forEach']((g,h)=>{if(g===null||g===void 0x0)b[h]=void 0x0;else{if(isValidAddress(g))b[h]=g['toLowerCase']();else c['set'](h,g);}});const d=Array['from'](c['values']());if(d['length']===0x0)return b;const e=await this['get_many'](d);let f=0x0;return c['forEach']((g,h)=>{const i=e[f];b[h]=i?.['address'],f++;}),b;}async['get_many_address_availables'](a){return(await this['get_many_address'](a))['filter'](b=>b!=null);}async['del'](a,b=![]){const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['filter'](g=>{const h=a['map'](m=>m['toLowerCase']()),i=g['name']!==void 0x0&&g['name']!==null&&a['some'](m=>LocalMark['nameMatch'](g['name'],m)),j=h['includes'](g['address']['toLowerCase']()),k=i||j,l=g['name']===void 0x0||g['name']===null;if(b)return!k&&!l;else return!k;}),f=d['filter'](g=>!e['includes'](g));if(e['length']!==d['length'])await Cache['read'](c,async()=>({'expire':'INFINITE','data':e}),!![]);return f;}async['clear'](){const a=await this['getCacheKey']();return await Cache['read'](a,async()=>({'expire':'INFINITE','data':[]}),!![]),!![];}async['rename'](a,b){b=this['resolve_name'](b);if(a===b)return!![];const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](f=>LocalMark['nameMatch'](f['name'],a));if(e&&d['findIndex'](f=>LocalMark['nameMatch'](f['name'],b))===-0x1){const f=Date['now']();return e['name']=b,e['updatedAt']=f,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['swap_name'](a,b){if(a===b)return!![];const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](g=>LocalMark['nameMatch'](g['name'],a)),f=d['find'](g=>LocalMark['nameMatch'](g['name'],b));if(e&&f){const g=Date['now']();return e['name']=b,e['updatedAt']=g,f['name']=a,f['updatedAt']=g,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['set_tags'](a,b){b=this['resolve_tags'](b);const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](f=>LocalMark['nameMatch'](f['name'],a));if(e){const f=Date['now']();return e['tags']=b,e['updatedAt']=f,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['list'](a){if(a&&a['tags'])a['tags']=a['tags']['filter'](c=>c!==''&&c);const b=await this['getCacheKey']();return((await Cache['read'](b,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[])['filter'](c=>{if(a?.['address']&&c['address']['toLowerCase']()!==a['address']['toLowerCase']())return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0&&(!c['createdAt']||c['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==void 0x0&&(!c['createdAt']||c['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0&&(!c['updatedAt']||c['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==void 0x0&&(!c['updatedAt']||c['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['map'](c=>{let d=0x0;const e=c['name']?.['toLowerCase']()||'',f=a?.['name']?.['toLowerCase']()||'';if(a?.['name']){if(e===f)d+=0x64;else{if(e['startsWith'](f))d+=0x32;else{if(e['includes'](f))d+=0x19;}}}if(a?.['tags']&&a['tags']['length']>0x0)a['tags']['forEach'](g=>{const h=g['toLowerCase']();if(c['tags'])c['tags']['forEach'](i=>{const j=i['toLowerCase']();if(j===h)d+=0x14;else{if(j['startsWith'](h))d+=0xf;else{if(j['includes'](h))d+=0xa;}}});});if((a?.['name']||a?.['tags'])&&d===0x0)d=-0x1;return{'mark':c,'score':d};})['filter'](({score:c})=>c>=0x0)['sort']((c,d)=>{if(d['score']!==c['score'])return d['score']-c['score'];const e=(c['mark']['name']||'')['length'],f=(d['mark']['name']||'')['length'];if(e!==f)return e-f;return(c['mark']['name']||'')['localeCompare'](d['mark']['name']||'');})['map'](({mark:c})=>c);}},LocalInfoAsyncLock=class{constructor(){this['_locked']=![],this['_queue']=[];}async['acquire'](){if(!this['_locked']){this['_locked']=!![];return;}return new Promise(a=>{this['_queue']['push'](a);});}['release'](){if(this['_queue']['length']>0x0)this['_queue']['shift']()();else this['_locked']=![];}async['run'](a){await this['acquire']();try{return await a();}finally{this['release']();}}},LocalInfo=class LocalInfo{constructor(){this['cacheKey']=['info'];}static{this['_lock']=new LocalInfoAsyncLock();}static['Instance'](){if(!LocalInfo['_instance'])LocalInfo['_instance']=new LocalInfo();return LocalInfo['_instance'];}static['nameMatch'](a,b){if(a==null||b==null)return![];return a['toLowerCase']()===b['toLowerCase']();}['resolve_contents'](a){return a=a['slice'](0x0,0x32),a['map'](b=>b['slice'](0x0,0x12c));}['resolve_name'](a){return a['slice'](0x0,0x40);}async['add'](a){return LocalInfo['_lock']['run'](async()=>{const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};for(const c of a){const d=this['resolve_name'](c['name']),e=c['default']['slice'](0x0,0x12c);if(b[d]){const f=Date['now'](),g=b[d];g['default']=e;if(c['contents']!==void 0x0)g['contents']=this['resolve_contents'](c['contents']);g['updatedAt']=f;}else{const h=Date['now']();b[d]={'default':e,'contents':c['contents']?this['resolve_contents'](c['contents']):[],'createdAt':h,'updatedAt':h};}}return await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':b}),!![]),!![];});}async['get'](a=LocalInfoNameDefault){const b=((await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{})[a];return b?{'name':a,...b}:void 0x0;}async['get_default'](a=LocalInfoNameDefault){return(await this['get'](a))?.['default'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};return a['map'](c=>{const d=b[c];return d?{'name':c,...d}:void 0x0;});}async['del'](a=LocalInfoNameDefault){return LocalInfo['_lock']['run'](async()=>{const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};delete b[a],await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':b}),!![]);});}async['reset_contents'](a=LocalInfoNameDefault,b){return LocalInfo['_lock']['run'](async()=>{const c=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{},d=c[a];if(d){const e=Date['now']();return d['contents']=this['resolve_contents'](b),d['updatedAt']=e,await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':c}),!![]),!![];}return![];});}async['clear'](){return LocalInfo['_lock']['run'](async()=>{await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}}),!![]);});}async['list'](a){const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};return Object['entries'](b)['map'](([c,d])=>{let e=0x0;const f={'name':c,...d};if(a?.['name']){const g=c['toLowerCase'](),h=a['name']['toLowerCase']();if(g===h)e+=0x64;else{if(g['startsWith'](h))e+=0x32;else{if(g['includes'](h))e+=0x19;}}}if(a?.['default']){const i=d['default']['toLowerCase'](),j=a['default']['toLowerCase']();if(i===j)e+=0x5a;else{if(i['startsWith'](j))e+=0x2d;else{if(i['includes'](j))e+=0x16;}}}if(a?.['contents']&&a['contents']['length']>0x0)a['contents']['forEach'](k=>{const l=k['toLowerCase']();if(d['contents'])d['contents']['forEach'](m=>{const n=m['toLowerCase']();if(n===l)e+=0x14;else{if(n['startsWith'](l))e+=0xf;else{if(n['includes'](l))e+=0xa;}}});});if((a?.['name']||a?.['default']||a?.['contents'])&&e===0x0)e=-0x1;return{'info':f,'score':e};})['filter'](({score:c,info:d})=>{if(c<0x0)return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0&&(!d['createdAt']||d['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==void 0x0&&(!d['createdAt']||d['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0&&(!d['updatedAt']||d['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==void 0x0&&(!d['updatedAt']||d['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['sort']((c,d)=>{if(d['score']!==c['score'])return d['score']-c['score'];const e=c['info']['name']['length'],f=d['info']['name']['length'];if(e!==f)return e-f;return c['info']['name']['localeCompare'](d['info']['name']);})['map'](({info:c})=>c);}};export{BUITIN_IDS,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,isValidAddress};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getAccountDb}from'./storage.mjs';import{sha256}from'@noble/hashes/sha2.js';import{randomBytes}from'@noble/hashes/utils.js';import{hkdf}from'@noble/hashes/hkdf.js';const ENVELOPE_VERSION=0x1,KEY_METADATA_TABLE='key_metadata',DEFAULT_MASTER_SECRET=new TextEncoder()['encode']('WowokAccountDefaultEncryptionKey_v1_a7f3e9d2c8b10564'),PBKDF2_ITERATIONS=0x927c0,IV_LENGTH=0xc,KEK_INFO=new TextEncoder()['encode']('wowok-account-kek');function bytesToBase64(a){if(typeof Buffer!=='undefined')return Buffer['from'](a)['toString']('base64');const b=Array['from'](a,c=>String['fromCharCode'](c))['join']('');return btoa(b);}function base64ToBytes(a){if(typeof Buffer!=='undefined')return new Uint8Array(Buffer['from'](a,'base64'));return Uint8Array['from'](atob(a),b=>b['charCodeAt'](0x0));}let subtleCache;async function getSubtle(){if(subtleCache)return subtleCache;if(typeof globalThis!=='undefined'&&globalThis['crypto']&&globalThis['crypto']['subtle'])return subtleCache=globalThis['crypto']['subtle'],subtleCache;return subtleCache=(await import('crypto'))['webcrypto']['subtle'],subtleCache;}function concatBytes(c,d){const e=new Uint8Array(c['length']+d['length']);return e['set'](c,0x0),e['set'](d,c['length']),e;}function toArrayBuffer(a){return a['buffer']['slice'](a['byteOffset'],a['byteOffset']+a['byteLength']);}function splitIvTagCt(a){if(a['length']<0x1c)throw new Error('Invalid\x20encrypted\x20blob:\x20too\x20short');return{'iv':a['slice'](0x0,IV_LENGTH),'ct':a['slice'](IV_LENGTH)};}var CryptoVault=class{constructor(a){this['_dbSource']=a;}get['db'](){return this['_dbSource']??getAccountDb();}['ensureTable'](){this['db']['exec']('\x0a\x09\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20'+KEY_METADATA_TABLE+'\x20(\x0a\x09\x09\x09\x09id\x20INTEGER\x20PRIMARY\x20KEY\x20CHECK\x20(id\x20=\x201),\x0a\x09\x09\x09\x09data\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09);\x0a\x09\x09');}['loadMetadata'](){this['ensureTable']();const a=this['db']['prepare']('SELECT\x20data\x20FROM\x20'+KEY_METADATA_TABLE+'\x20WHERE\x20id\x20=\x201')['get']();if(!a)return void 0x0;return JSON['parse'](a['data']);}['saveMetadata'](a){this['ensureTable'](),this['db']['prepare']('\x0a\x09\x09\x09INSERT\x20INTO\x20'+KEY_METADATA_TABLE+'\x20(id,\x20data,\x20updated_at)\x0a\x09\x09\x09VALUES\x20(1,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09ON\x20CONFLICT(id)\x20DO\x20UPDATE\x20SET\x20data\x20=\x20excluded.data,\x20updated_at\x20=\x20excluded.updated_at\x0a\x09\x09\x09')['run'](JSON['stringify'](a));}get['initialized'](){if(this['_metadata'])return!![];return this['loadMetadata']()!==void 0x0;}async['ensureInitialized'](){if(this['_metadata'])return this['_metadata'];const a=this['loadMetadata']();if(a)return this['_metadata']=a,a;return await this['initializeDefault'](),this['_metadata'];}async['initializeDefault'](){if(this['_metadata'])return;const a=this['loadMetadata']();if(a){this['_metadata']=a;return;}const b=randomBytes(0x10),c=randomBytes(0x20),d=this['deriveDefaultKek'](b),e=await this['wrapDek'](d,c),f={'v':ENVELOPE_VERSION,'mode':'default','kdf':'hkdf-sha256','salt':bytesToBase64(b),'wrappedKey':bytesToBase64(e)};try{this['saveMetadata'](f);}catch{}const g=this['loadMetadata']();if(g)this['_metadata']=g;else this['_metadata']=f;}['deriveDefaultKek'](a){return hkdf(sha256,DEFAULT_MASTER_SECRET,a,KEK_INFO,0x20);}async['derivePasswordKek'](a,b){const c=await getSubtle(),d=await c['importKey']('raw',new TextEncoder()['encode'](a),{'name':'PBKDF2'},![],['deriveBits']),e=await c['deriveBits']({'name':'PBKDF2','salt':toArrayBuffer(b),'iterations':PBKDF2_ITERATIONS,'hash':'SHA-256'},d,0x100);return new Uint8Array(e);}async['wrapDek'](a,b){const c=await getSubtle(),d=crypto['getRandomValues'](new Uint8Array(IV_LENGTH)),e=await c['importKey']('raw',toArrayBuffer(a),{'name':'AES-GCM'},![],['encrypt']);return concatBytes(d,new Uint8Array(await c['encrypt']({'name':'AES-GCM','iv':toArrayBuffer(d)},e,toArrayBuffer(b))));}async['unwrapDek'](a,b){const c=await getSubtle(),{iv:d,ct:e}=splitIvTagCt(b),f=await c['importKey']('raw',toArrayBuffer(a),{'name':'AES-GCM'},![],['decrypt']),g=await c['decrypt']({'name':'AES-GCM','iv':toArrayBuffer(d)},f,toArrayBuffer(e));return new Uint8Array(g);}async['getDek'](a){if(this['_dek'])return this['_dek'];const b=await this['ensureInitialized'](),c=base64ToBytes(b['salt']);let d;if(b['mode']==='password'){if(!a)throw new Error('Account\x20data\x20is\x20protected\x20by\x20a\x20password.\x20Please\x20set\x20the\x20encryption\x20password\x20first.');d=await this['derivePasswordKek'](a,c);}else{if(a)d=await this['derivePasswordKek'](a,c);else d=this['deriveDefaultKek'](c);}const e=base64ToBytes(b['wrappedKey']),f=await this['unwrapDek'](d,e),g=await getSubtle();return this['_dek']=await g['importKey']('raw',toArrayBuffer(f),{'name':'AES-GCM'},![],['encrypt','decrypt']),this['_dek'];}['clearDekCache'](){this['_dek']=void 0x0;}async['encrypt'](a,b){const c=await this['ensureInitialized'](),d=await this['getDek'](b),e=await getSubtle(),f=crypto['getRandomValues'](new Uint8Array(IV_LENGTH)),g=new Uint8Array(await e['encrypt']({'name':'AES-GCM','iv':toArrayBuffer(f)},d,toArrayBuffer(new TextEncoder()['encode'](a))));return{'v':ENVELOPE_VERSION,'mode':c['mode'],'kdf':c['kdf'],'salt':c['salt'],'iterations':c['iterations'],'wrappedKey':c['wrappedKey'],'iv':bytesToBase64(f),'ct':bytesToBase64(g)};}async['decrypt'](a,b){const c=await this['getDek'](b),d=await getSubtle(),e=base64ToBytes(a['iv']),f=base64ToBytes(a['ct']),g=await d['decrypt']({'name':'AES-GCM','iv':toArrayBuffer(e)},c,toArrayBuffer(f));return new TextDecoder()['decode'](g);}['getMode'](){if(this['_metadata'])return this['_metadata']['mode'];return this['loadMetadata']()?.['mode'];}async['setPassword'](a){const b=await this['ensureInitialized'](),c=await this['unwrapDek'](this['deriveDefaultKek'](base64ToBytes(b['salt'])),base64ToBytes(b['wrappedKey'])),d=randomBytes(0x10),e=await this['derivePasswordKek'](a,d),f=await this['wrapDek'](e,c),g={'v':ENVELOPE_VERSION,'mode':'password','kdf':'pbkdf2-sha256','salt':bytesToBase64(d),'iterations':PBKDF2_ITERATIONS,'wrappedKey':bytesToBase64(f)};this['saveMetadata'](g),this['_metadata']=g,this['clearDekCache']();}async['changePassword'](a,b){const c=await this['ensureInitialized']();if(c['mode']!=='password')throw new Error('Account\x20data\x20is\x20not\x20protected\x20by\x20a\x20password.\x20Call\x20setPassword\x20first.');const d=await this['derivePasswordKek'](a,base64ToBytes(c['salt'])),e=await this['unwrapDek'](d,base64ToBytes(c['wrappedKey'])),f=randomBytes(0x10),g=await this['derivePasswordKek'](b,f),h=await this['wrapDek'](g,e),i={'v':ENVELOPE_VERSION,'mode':'password','kdf':'pbkdf2-sha256','salt':bytesToBase64(f),'iterations':PBKDF2_ITERATIONS,'wrappedKey':bytesToBase64(h)};this['saveMetadata'](i),this['_metadata']=i,this['clearDekCache']();}async['removePassword'](a){const b=await this['ensureInitialized']();if(b['mode']!=='password')throw new Error('Account\x20data\x20is\x20already\x20in\x20default\x20encryption\x20mode.');const c=await this['derivePasswordKek'](a,base64ToBytes(b['salt'])),d=await this['unwrapDek'](c,base64ToBytes(b['wrappedKey'])),e=randomBytes(0x10),f=this['deriveDefaultKek'](e),g=await this['wrapDek'](f,d),h={'v':ENVELOPE_VERSION,'mode':'default','kdf':'hkdf-sha256','salt':bytesToBase64(e),'wrappedKey':bytesToBase64(g)};this['saveMetadata'](h),this['_metadata']=h,this['clearDekCache']();}},SecureAccountStorage=class{constructor(a,b){this['_backend']=a,this['_vault']=b??new CryptoVault();}['setSessionPassword'](a){this['_sessionPassword']=a,this['_vault']['clearDekCache']();}['getSessionPassword'](){return this['_sessionPassword'];}['isSecureEnvelope'](a){return a&&typeof a==='object'&&a['v']===ENVELOPE_VERSION&&typeof a['ct']==='string'&&typeof a['wrappedKey']==='string'&&(a['kdf']==='hkdf-sha256'||a['kdf']==='pbkdf2-sha256');}async['get'](){const a=await this['_backend']['get']();if(!a)return void 0x0;let b;try{b=JSON['parse'](a);}catch{return a;}if(this['isSecureEnvelope'](b))return this['_vault']['decrypt'](b,this['_sessionPassword']);return a;}async['put'](a){const b=await this['_vault']['encrypt'](a,this['_sessionPassword']);await this['_backend']['put'](JSON['stringify'](b));}async['clear'](){await this['_backend']['clear']();}['getMode'](){return this['_vault']['getMode']();}async['setPassword'](a){await this['_vault']['setPassword'](a),this['_sessionPassword']=a;if(await this['_backend']['get']()){const b=await this['get']();if(b!==void 0x0)await this['put'](b);}}async['changePassword'](a,b){await this['_vault']['changePassword'](a,b),this['_sessionPassword']=b;if(await this['_backend']['get']()){const c=await this['get']();if(c!==void 0x0)await this['put'](c);}}async['removePassword'](a){await this['_vault']['removePassword'](a),this['_sessionPassword']=void 0x0;if(await this['_backend']['get']()){const b=await this['get']();if(b!==void 0x0)await this['put'](b);}}};export{CryptoVault,SecureAccountStorage};
|
|
@@ -1,53 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
//#region src/w/local/storage.d.ts
|
|
4
|
-
interface IStorage {
|
|
5
|
-
put(key: string, value: string): Promise<void>;
|
|
6
|
-
get(key: string): Promise<string | undefined>;
|
|
7
|
-
getMany(keys: string[]): Promise<(string | undefined)[]>;
|
|
8
|
-
del(key: string): Promise<void>;
|
|
9
|
-
clear(): Promise<void>;
|
|
10
|
-
}
|
|
11
|
-
interface IAccountStorage {
|
|
12
|
-
get(): Promise<string | undefined>;
|
|
13
|
-
put(data: string): Promise<void>;
|
|
14
|
-
clear(): Promise<void>;
|
|
15
|
-
}
|
|
16
|
-
declare class SQLiteStorage implements IStorage {
|
|
17
|
-
private _db;
|
|
18
|
-
private _dbSource;
|
|
19
|
-
constructor(db?: Database.Database);
|
|
20
|
-
private get db();
|
|
21
|
-
get(key: string): Promise<string | undefined>;
|
|
22
|
-
getMany(keys: string[]): Promise<(string | undefined)[]>;
|
|
23
|
-
put(key: string, value: string): Promise<void>;
|
|
24
|
-
putMany(items: {
|
|
25
|
-
key: string;
|
|
26
|
-
value: string;
|
|
27
|
-
}[]): Promise<void>;
|
|
28
|
-
del(key: string): Promise<void>;
|
|
29
|
-
clear(): Promise<void>;
|
|
30
|
-
}
|
|
31
|
-
declare class SQLiteAccountStorage implements IAccountStorage {
|
|
32
|
-
private _db;
|
|
33
|
-
private _dbSource;
|
|
34
|
-
constructor(db?: Database.Database);
|
|
35
|
-
private get db();
|
|
36
|
-
get(): Promise<string | undefined>;
|
|
37
|
-
put(data: string): Promise<void>;
|
|
38
|
-
clear(): Promise<void>;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* 关闭并重置所有数据库连接
|
|
42
|
-
* 用于测试时清理数据
|
|
43
|
-
*/
|
|
44
|
-
declare function resetAllDbConnections(): void;
|
|
45
|
-
/**
|
|
46
|
-
* 重置所有存储实例和数据库连接
|
|
47
|
-
* 用于测试时完全清理数据
|
|
48
|
-
*/
|
|
49
|
-
declare function resetAllStorage(): void;
|
|
50
|
-
declare const defaultStorage: SQLiteStorage;
|
|
51
|
-
declare const defaultAccountStorage: SQLiteAccountStorage;
|
|
52
|
-
//#endregion
|
|
53
|
-
export { IAccountStorage, IStorage, SQLiteAccountStorage, SQLiteStorage, defaultAccountStorage, defaultStorage, resetAllDbConnections, resetAllStorage };
|
|
1
|
+
import { a as SQLiteStorage, c as defaultStorage, d as resetAllStorage, i as SQLiteAccountStorage, l as getAccountDb, n as IStorage, o as clearKeyMetadata, r as KEY_METADATA_TABLE, s as defaultAccountStorage, t as IAccountStorage, u as resetAllDbConnections } from "../../storage-Ct2mZnD0.mjs";
|
|
2
|
+
export { IAccountStorage, IStorage, KEY_METADATA_TABLE, SQLiteAccountStorage, SQLiteStorage, clearKeyMetadata, defaultAccountStorage, defaultStorage, getAccountDb, resetAllDbConnections, resetAllStorage };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getWowDir}from'./util.mjs';import
|
|
1
|
+
import{getWowDir}from'./util.mjs';import a82a from'libsql';import*as a82b from'path';import*as a82c from'fs';const WOW_DIR=getWowDir(),CACHE_DB_PATH=a82b['join'](WOW_DIR,'cache.db'),ACCOUNT_DB_PATH=a82b['join'](WOW_DIR,'account.db');function ensureWowDirExists(){if(!a82c['existsSync'](WOW_DIR))a82c['mkdirSync'](WOW_DIR,{'recursive':!![]});}ensureWowDirExists();function getCacheDatabase(){ensureWowDirExists();const a=new a82a(CACHE_DB_PATH);return a['pragma']('journal_mode\x20=\x20WAL'),a['pragma']('synchronous\x20=\x20NORMAL'),a['exec']('\x0a\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20cache\x20(\x0a\x09\x09\x09key\x20TEXT\x20PRIMARY\x20KEY,\x0a\x09\x09\x09value\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09);\x0a\x09'),a;}let cacheDbInstance=null;function getCacheDb(){if(!cacheDbInstance)cacheDbInstance=getCacheDatabase();return cacheDbInstance;}function getAccountDatabase(){ensureWowDirExists();const a=new a82a(ACCOUNT_DB_PATH);a['pragma']('journal_mode\x20=\x20WAL'),a['pragma']('synchronous\x20=\x20NORMAL');try{a82c['chmodSync'](ACCOUNT_DB_PATH,0x180);}catch{}return a['exec']('\x0a\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20accounts\x20(\x0a\x09\x09\x09id\x20INTEGER\x20PRIMARY\x20KEY\x20CHECK\x20(id\x20=\x201),\x0a\x09\x09\x09data\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09);\x0a\x09'),a;}let accountDbInstance=null;function getAccountDb(){if(!accountDbInstance)accountDbInstance=getAccountDatabase();return accountDbInstance;}const KEY_METADATA_TABLE='key_metadata';var SQLiteStorage=class{constructor(a){this['_dbSource']=a;}get['db'](){if(this['_dbSource'])return this['_dbSource'];if(!this['_db'])this['_db']=getCacheDb();return this['_db'];}async['get'](a){return this['db']['prepare']('SELECT\x20value\x20FROM\x20cache\x20WHERE\x20key\x20=\x20?')['get'](a)?.['value'];}async['getMany'](a){const b=a['map'](()=>'?')['join'](','),c=this['db']['prepare']('SELECT\x20key,\x20value\x20FROM\x20cache\x20WHERE\x20key\x20IN\x20('+b+')')['all'](...a),d=new Map(c['map'](e=>[e['key'],e['value']]));return a['map'](e=>d['get'](e));}async['put'](a,b){this['db']['prepare']('\x0a\x09\x09\x09INSERT\x20INTO\x20cache\x20(key,\x20value,\x20updated_at)\x20\x0a\x09\x09\x09VALUES\x20(?,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09ON\x20CONFLICT(key)\x20DO\x20UPDATE\x20SET\x20value\x20=\x20excluded.value,\x20updated_at\x20=\x20excluded.updated_at\x0a\x09\x09')['run'](a,b);}async['putMany'](a){const b=this['db']['prepare']('\x0a\x09\x09\x09INSERT\x20INTO\x20cache\x20(key,\x20value,\x20updated_at)\x20\x0a\x09\x09\x09VALUES\x20(?,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09ON\x20CONFLICT(key)\x20DO\x20UPDATE\x20SET\x20value\x20=\x20excluded.value,\x20updated_at\x20=\x20excluded.updated_at\x0a\x09\x09');this['db']['transaction'](c=>{for(const d of c)b['run'](d['key'],d['value']);})(a);}async['del'](a){this['db']['prepare']('DELETE\x20FROM\x20cache\x20WHERE\x20key\x20=\x20?')['run'](a);}async['clear'](){this['db']['exec']('DELETE\x20FROM\x20cache');}},SQLiteAccountStorage=class{constructor(a,b='accounts'){this['_tableName']=b,this['_tableInitialized']=![],this['_dbSource']=a;}get['db'](){if(this['_dbSource'])return this['_dbSource'];if(!this['_db'])this['_db']=getAccountDb();return!this['_tableInitialized']&&this['_tableName']!=='accounts'&&(this['_db']['exec']('\x0a\x09\x09\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20'+this['_tableName']+'\x20(\x0a\x09\x09\x09\x09\x09id\x20INTEGER\x20PRIMARY\x20KEY\x20CHECK\x20(id\x20=\x201),\x0a\x09\x09\x09\x09\x09data\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09\x09updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09\x09);\x0a\x09\x09\x09'),this['_tableInitialized']=!![]),this['_db'];}async['get'](){return this['db']['prepare']('SELECT\x20data\x20FROM\x20'+this['_tableName']+'\x20WHERE\x20id\x20=\x201')['get']()?.['data'];}async['put'](a){this['db']['prepare']('\x0a\x09\x09\x09INSERT\x20INTO\x20'+this['_tableName']+'\x20(id,\x20data,\x20updated_at)\x20\x0a\x09\x09\x09VALUES\x20(1,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09ON\x20CONFLICT(id)\x20DO\x20UPDATE\x20SET\x20data\x20=\x20excluded.data,\x20updated_at\x20=\x20excluded.updated_at\x0a\x09\x09')['run'](a);}async['clear'](){this['db']['exec']('DELETE\x20FROM\x20'+this['_tableName']);}};function resetAllDbConnections(){if(cacheDbInstance){try{cacheDbInstance['close']();}catch(a){}cacheDbInstance=null;}if(accountDbInstance){try{accountDbInstance['close']();}catch(b){}accountDbInstance=null;}}process['on']('exit',()=>{resetAllDbConnections();}),process['on']('SIGINT',()=>{resetAllDbConnections(),process['exit'](0x0);}),process['on']('SIGTERM',()=>{resetAllDbConnections(),process['exit'](0x0);});function clearKeyMetadata(){try{getAccountDb()['exec']('DELETE\x20FROM\x20'+KEY_METADATA_TABLE);}catch{}}function resetAllStorage(){clearKeyMetadata(),resetAllDbConnections();}const defaultStorage=new SQLiteStorage(),defaultAccountStorage=new SQLiteAccountStorage();export{KEY_METADATA_TABLE,SQLiteAccountStorage,SQLiteStorage,clearKeyMetadata,defaultAccountStorage,defaultStorage,getAccountDb,resetAllDbConnections,resetAllStorage};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { $_ as TokenTypeInfo, Q_ as TokenInfo, Z_ as TokenDataFilter } from "../../index-D5-7_Kub.mjs";
|
|
2
2
|
export { TokenDataFilter, TokenInfo, TokenTypeInfo };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as
|
|
1
|
+
import{t as a83a}from'../../client-D6nQHb4K.mjs';import{n as a83b}from'../../network-CeDd07Hg.mjs';import'../../common-CQggZ8z4.mjs';import{o as a83c}from'../../exception--UEPnygY.mjs';import{Cache}from'./cache.mjs';import{Config}from'./config.mjs';var TokenInfo=class TokenInfo{constructor(){this['cacheKey']=['token'];}static['Instance'](){if(!TokenInfo['_instance'])TokenInfo['_instance']=new TokenInfo();return TokenInfo['_instance'];}async['fetch_imp'](a,b,c){const d=await new a83a({'url':a83b(a),'network':a})['getCoinMetadata']({'coinType':b});if(d)return{'alias':c,'type':b,...d};}async['fetch'](a,b,c){a=a??'0x2::wow::WOW';const d=await Config['Instance']()['network_get'](c),e=await Cache['read']([...this['cacheKey'],d],async g=>{return{'expire':'INFINITE','data':[]};});let f=e?.['data']?.['find'](g=>g['type']===a);if(!f){f=await this['fetch_imp'](d,a,b);if(!f){a83c('token\x20not\x20found','token\x20type:\x20'+a);return;}const g=[...e?.['data']||[],f];await Cache['read']([...this['cacheKey'],d],async h=>({'expire':'INFINITE','data':g}),!![]);}else{if(b&&f['alias']!==b){f['alias']=b;const h=e?.['data']?.['map'](i=>i['type']===a?f:i)||[];await Cache['read']([...this['cacheKey'],d],async i=>({'expire':'INFINITE','data':h}),!![]);}}return f;}async['list'](a,b){const c=await Config['Instance']()['network_get'](b);let d=await Cache['read']([...this['cacheKey'],c],async h=>{return{'expire':'INFINITE','data':[]};}),e=d?.['data']||[];const f=a?.['type']??'0x2::wow::WOW',g=a?.['type']?a?.['alias_or_name']:void 0x0;if(!e['find'](h=>h['type']===f)){const h=await this['fetch_imp'](c,f,g);if(h){const i=[...e,h];await Cache['read']([...this['cacheKey'],c],async j=>({'expire':'INFINITE','data':i}),!![]),d=await Cache['read']([...this['cacheKey'],c],async j=>({'expire':'INFINITE','data':i})),e=d?.['data']||[];}}if(a){e=e['filter'](j=>{let k=!![];if(a['symbol']&&k)k=j['symbol']===a['symbol'];if(a['type']&&k)k=j['type']===f;return k;});if(a['alias_or_name']){const j=a['alias_or_name']['toLowerCase']();e=e['map'](k=>{let l=0x0;const m=k['alias']?.['toLowerCase']()||'',n=k['name']?.['toLowerCase']()||'';if(m===j||n===j)l=0x3;else{if(m['startsWith'](j)||n['startsWith'](j))l=0x2;else{if(m['includes'](j)||n['includes'](j))l=0x1;}}return{...k,'_score':l};}),e=e['filter'](k=>k['_score']>0x0)['sort']((k,l)=>{const m=l['_score']-k['_score'];if(m!==0x0)return m;return(k['alias']?.['length']||0x0)+(k['name']?.['length']||0x0)-((l['alias']?.['length']||0x0)+(l['name']?.['length']||0x0));}),e=e['map'](k=>{const {_score:l,...m}=k;return m;});}}return e;}};export{TokenInfo};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as
|
|
1
|
+
import*as a84a from'path';import*as a84b from'os';function getWowDir(){if(process['env']['WOWOK_DATA_DIR'])return process['env']['WOWOK_DATA_DIR'];const a=a84b['homedir'](),b=a84b['platform']();if(b==='win32')return a84a['join'](a,'.wow','V1');else{if(b==='darwin')return a84a['join'](a,'Library','Application\x20Support','.wow','V1');else{const c=process['env']['XDG_CONFIG_HOME'];if(c)return a84a['join'](c,'.wow','V1');const d=process['env']['XDG_DATA_HOME'];if(d)return a84a['join'](d,'.wow','V1');return a84a['join'](a,'.wow','V1');}}}export{getWowDir};
|