@avalabs/evm-module 3.7.3 → 3.8.1

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.
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var chunkTKL4UUHE_cjs = require('../chunk-TKL4UUHE.cjs');
3
+ var chunkVYIKXRYZ_cjs = require('../chunk-VYIKXRYZ.cjs');
4
4
  var rpcErrors = require('@metamask/rpc-errors');
5
- var b = require('events');
5
+ var L = require('events');
6
6
  var vmModuleTypes = require('@avalabs/vm-module-types');
7
7
 
8
8
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
9
 
10
- var b__default = /*#__PURE__*/_interopDefault(b);
10
+ var L__default = /*#__PURE__*/_interopDefault(L);
11
11
 
12
- var d,l,E=class{constructor(a){chunkTKL4UUHE_cjs.c(this,d,new Map);chunkTKL4UUHE_cjs.c(this,l,[]);chunkTKL4UUHE_cjs.a(this,"check",a=>{chunkTKL4UUHE_cjs.b(this,d).has(a)&&chunkTKL4UUHE_cjs.b(this,d).delete(a),this._proceed();});chunkTKL4UUHE_cjs.a(this,"uncheck",a=>{chunkTKL4UUHE_cjs.b(this,d).set(a,!0);});chunkTKL4UUHE_cjs.a(this,"_proceed",()=>{if(!chunkTKL4UUHE_cjs.b(this,d).size)for(;chunkTKL4UUHE_cjs.b(this,l).length;){let a=chunkTKL4UUHE_cjs.b(this,l).shift();a?.resolve(a?.fn());}});chunkTKL4UUHE_cjs.a(this,"call",a=>new Promise(e=>{chunkTKL4UUHE_cjs.b(this,l).push({fn:a,resolve:e}),this._proceed();}));a.map(e=>chunkTKL4UUHE_cjs.b(this,d).set(e,!0));}};d=new WeakMap,l=new WeakMap;var p,c,v,S,A,m,y,P,u,C,I,_,f,D=class extends b__default.default{constructor({maxListeners:e=100,info:s,walletVersion:r}){super();chunkTKL4UUHE_cjs.c(this,v);chunkTKL4UUHE_cjs.c(this,p,new E(["provider_state_loaded"]));chunkTKL4UUHE_cjs.c(this,c,void 0);chunkTKL4UUHE_cjs.a(this,"info");chunkTKL4UUHE_cjs.a(this,"chainId",null);chunkTKL4UUHE_cjs.a(this,"selectedAddress",null);chunkTKL4UUHE_cjs.a(this,"networkVersion",null);chunkTKL4UUHE_cjs.a(this,"isAvalanche",!0);chunkTKL4UUHE_cjs.a(this,"isMetaMask",!0);chunkTKL4UUHE_cjs.a(this,"walletVersion",null);chunkTKL4UUHE_cjs.a(this,"_isReady",!1);chunkTKL4UUHE_cjs.a(this,"_isConnected",!1);chunkTKL4UUHE_cjs.a(this,"_initialized",!1);chunkTKL4UUHE_cjs.a(this,"_isUnlocked",!1);chunkTKL4UUHE_cjs.a(this,"_sessionId",crypto.randomUUID());chunkTKL4UUHE_cjs.a(this,"_state",{accounts:null,isConnected:!1,isUnlocked:!1,initialized:!1});chunkTKL4UUHE_cjs.a(this,"_metamask",{isUnlocked:()=>Promise.resolve(this._isUnlocked)});chunkTKL4UUHE_cjs.c(this,A,async()=>{try{let e=await chunkTKL4UUHE_cjs.b(this,m).call(this,{method:"avalanche_getProviderState"}),{chainId:s,accounts:r,networkVersion:o,isUnlocked:g}=e??{};g&&(this._isUnlocked=!0,this._state.isUnlocked=!0),s&&s!=="0x0"&&o&&o!=="loading"&&(this.chainId=s,this.networkVersion=o,chunkTKL4UUHE_cjs.b(this,u).call(this,{chainId:s}),chunkTKL4UUHE_cjs.b(this,f).call(this,{chainId:s,networkVersion:o})),chunkTKL4UUHE_cjs.b(this,_).call(this,r||[]),chunkTKL4UUHE_cjs.b(this,p).check("provider_state_loaded");}catch{}finally{this._initialized=!0,this._state.initialized=!0,this._isReady=!0,this.emit("_initialized");}});chunkTKL4UUHE_cjs.c(this,m,async e=>e.method==="eth_chainId"?this.chainId:chunkTKL4UUHE_cjs.b(this,c)?.request({data:e,scope:`eip155:${this.chainId}`,sessionId:this._sessionId}));chunkTKL4UUHE_cjs.c(this,y,e=>({connect:chunkTKL4UUHE_cjs.b(this,u),disconnect:chunkTKL4UUHE_cjs.b(this,I),accountsChanged:chunkTKL4UUHE_cjs.b(this,_),chainChanged:chunkTKL4UUHE_cjs.b(this,f),avalanche_unlockStateChanged:chunkTKL4UUHE_cjs.b(this,C)})[e]);chunkTKL4UUHE_cjs.c(this,P,({method:e,params:s})=>{let r=chunkTKL4UUHE_cjs.b(this,y).call(this,e);if(r)return r(s);this.emit(e,s);});chunkTKL4UUHE_cjs.a(this,"isConnected",()=>!0);chunkTKL4UUHE_cjs.a(this,"request",async e=>chunkTKL4UUHE_cjs.b(this,p).call(()=>chunkTKL4UUHE_cjs.b(this,m).call(this,e)));chunkTKL4UUHE_cjs.a(this,"sendAsync",(e,s)=>{if(Array.isArray(e))return Promise.all(e.map(h=>new Promise(U=>{this.sendAsync(h,(V,q)=>{U(q);});}))).then(h=>s(null,h));let{method:r,params:o,...g}=e;this.request({method:r,params:o}).then(h=>s(null,{...g,method:r,result:h})).catch(h=>s(h,{...g,method:r,error:h}));});chunkTKL4UUHE_cjs.a(this,"send",(e,s)=>{if(typeof e=="string"&&(!s||Array.isArray(s)))return this.request({method:e,params:s}).then(o=>({id:void 0,jsonrpc:"2.0",result:o}));if(typeof e=="object"&&typeof s=="function")return this.sendAsync(e,s);let r;switch(e.method){case"eth_chainId":r=this.chainId;break;case"eth_accounts":r=this.selectedAddress?[this.selectedAddress]:[];break;case"eth_coinbase":r=this.selectedAddress||null;break;default:throw new Error("Sync method not supported. Please provide a callback or use the `request` function.")}return {id:e.id,jsonrpc:e.jsonrpc,result:r}});chunkTKL4UUHE_cjs.a(this,"enable",()=>this.request({method:"eth_requestAccounts"}));chunkTKL4UUHE_cjs.a(this,"net_version",()=>this.request({method:"net_version"}));chunkTKL4UUHE_cjs.c(this,u,e=>{this._isConnected||(this._isConnected=!0,this._state.isConnected=!0,this.emit("connect",e));});chunkTKL4UUHE_cjs.c(this,C,({accounts:e,isUnlocked:s})=>{s?(this._isUnlocked=!0,this._state.isUnlocked=!0,chunkTKL4UUHE_cjs.b(this,_).call(this,e)):this._isUnlocked=!1;});chunkTKL4UUHE_cjs.c(this,I,()=>{this._isConnected=!1,this._state.isConnected=!1,this._state.accounts=null,this.selectedAddress=null;let e=rpcErrors.providerErrors.disconnected();this.emit("accountsChanged",[]),this.emit("disconnect",e),this.emit("close",e);});chunkTKL4UUHE_cjs.c(this,_,e=>{e?.[0]!==this.selectedAddress&&(this.selectedAddress=e?.[0]??null,this._state.accounts=e,this.emit("accountsChanged",e));});chunkTKL4UUHE_cjs.c(this,f,({chainId:e,networkVersion:s})=>{chunkTKL4UUHE_cjs.b(this,u).call(this,{chainId:e}),e!==this.chainId&&(this.chainId=e,this.emit("chainChanged",e)),s!==this.networkVersion&&(this.networkVersion=s,this.emit("networkChanged",s));});this.info=s,this.walletVersion=r??null,this.setMaxListeners(e),chunkTKL4UUHE_cjs.e(this,v,S).call(this);}};p=new WeakMap,c=new WeakMap,v=new WeakSet,S=function(){window.addEventListener(vmModuleTypes.EventNames.CORE_WALLET_ANNOUNCE_PROVIDER,e=>{chunkTKL4UUHE_cjs.b(this,c)||(chunkTKL4UUHE_cjs.d(this,c,e.detail.provider),chunkTKL4UUHE_cjs.b(this,c)?.subscribeToMessage(chunkTKL4UUHE_cjs.b(this,P)),chunkTKL4UUHE_cjs.b(this,A).call(this));}),window.dispatchEvent(new Event(vmModuleTypes.EventNames.CORE_WALLET_REQUEST_PROVIDER));},A=new WeakMap,m=new WeakMap,y=new WeakMap,P=new WeakMap,u=new WeakMap,C=new WeakMap,I=new WeakMap,_=new WeakMap,f=new WeakMap;
12
+ var d,u,w=class w{constructor(o){chunkVYIKXRYZ_cjs.d(this,d,new Map);chunkVYIKXRYZ_cjs.d(this,u,[]);chunkVYIKXRYZ_cjs.b(this,"check",chunkVYIKXRYZ_cjs.a(o=>{chunkVYIKXRYZ_cjs.c(this,d).has(o)&&chunkVYIKXRYZ_cjs.c(this,d).delete(o),this._proceed();},"check"));chunkVYIKXRYZ_cjs.b(this,"uncheck",chunkVYIKXRYZ_cjs.a(o=>{chunkVYIKXRYZ_cjs.c(this,d).set(o,!0);},"uncheck"));chunkVYIKXRYZ_cjs.b(this,"_proceed",chunkVYIKXRYZ_cjs.a(()=>{if(!chunkVYIKXRYZ_cjs.c(this,d).size)for(;chunkVYIKXRYZ_cjs.c(this,u).length;){let o=chunkVYIKXRYZ_cjs.c(this,u).shift();o?.resolve(o?.fn());}},"_proceed"));chunkVYIKXRYZ_cjs.b(this,"call",chunkVYIKXRYZ_cjs.a(o=>new Promise(e=>{chunkVYIKXRYZ_cjs.c(this,u).push({fn:o,resolve:e}),this._proceed();}),"call"));o.map(e=>chunkVYIKXRYZ_cjs.c(this,d).set(e,!0));}};d=new WeakMap,u=new WeakMap,chunkVYIKXRYZ_cjs.a(w,"ProviderReadyPromise");var v=w;var f,l,A,q,y,m,C,I,_,P,k,p,g,D=class D extends L__default.default{constructor({maxListeners:e=100,info:s,walletVersion:a}){super();chunkVYIKXRYZ_cjs.d(this,A);chunkVYIKXRYZ_cjs.d(this,f,new v(["provider_state_loaded"]));chunkVYIKXRYZ_cjs.d(this,l,void 0);chunkVYIKXRYZ_cjs.b(this,"info");chunkVYIKXRYZ_cjs.b(this,"chainId",null);chunkVYIKXRYZ_cjs.b(this,"selectedAddress",null);chunkVYIKXRYZ_cjs.b(this,"networkVersion",null);chunkVYIKXRYZ_cjs.b(this,"isAvalanche",!0);chunkVYIKXRYZ_cjs.b(this,"isMetaMask",!0);chunkVYIKXRYZ_cjs.b(this,"walletVersion",null);chunkVYIKXRYZ_cjs.b(this,"_isReady",!1);chunkVYIKXRYZ_cjs.b(this,"_isConnected",!1);chunkVYIKXRYZ_cjs.b(this,"_initialized",!1);chunkVYIKXRYZ_cjs.b(this,"_isUnlocked",!1);chunkVYIKXRYZ_cjs.b(this,"_sessionId",crypto.randomUUID());chunkVYIKXRYZ_cjs.b(this,"_state",{accounts:null,isConnected:!1,isUnlocked:!1,initialized:!1});chunkVYIKXRYZ_cjs.b(this,"_metamask",{isUnlocked:()=>Promise.resolve(this._isUnlocked)});chunkVYIKXRYZ_cjs.d(this,y,chunkVYIKXRYZ_cjs.a(async()=>{try{let e=await chunkVYIKXRYZ_cjs.c(this,m).call(this,{method:"avalanche_getProviderState"}),{chainId:s,accounts:a,networkVersion:h,isUnlocked:E}=e??{};E&&(this._isUnlocked=!0,this._state.isUnlocked=!0),s&&s!=="0x0"&&h&&h!=="loading"&&(this.chainId=s,this.networkVersion=h,chunkVYIKXRYZ_cjs.c(this,_).call(this,{chainId:s}),chunkVYIKXRYZ_cjs.c(this,g).call(this,{chainId:s,networkVersion:h})),chunkVYIKXRYZ_cjs.c(this,p).call(this,a||[]),chunkVYIKXRYZ_cjs.c(this,f).check("provider_state_loaded");}catch{}finally{this._initialized=!0,this._state.initialized=!0,this._isReady=!0,this.emit("_initialized");}},"#init"));chunkVYIKXRYZ_cjs.d(this,m,chunkVYIKXRYZ_cjs.a(async e=>e.method==="eth_chainId"?this.chainId:chunkVYIKXRYZ_cjs.c(this,l)?.request({data:e,scope:`eip155:${this.chainId}`,sessionId:this._sessionId}),"#request"));chunkVYIKXRYZ_cjs.d(this,C,chunkVYIKXRYZ_cjs.a(e=>({connect:chunkVYIKXRYZ_cjs.c(this,_),disconnect:chunkVYIKXRYZ_cjs.c(this,k),accountsChanged:chunkVYIKXRYZ_cjs.c(this,p),chainChanged:chunkVYIKXRYZ_cjs.c(this,g),avalanche_unlockStateChanged:chunkVYIKXRYZ_cjs.c(this,P)})[e],"#getEventHandler"));chunkVYIKXRYZ_cjs.d(this,I,chunkVYIKXRYZ_cjs.a(({method:e,params:s})=>{let a=chunkVYIKXRYZ_cjs.c(this,C).call(this,e);if(a)return a(s);this.emit(e,s);},"#handleBackgroundMessage"));chunkVYIKXRYZ_cjs.b(this,"isConnected",chunkVYIKXRYZ_cjs.a(()=>!0,"isConnected"));chunkVYIKXRYZ_cjs.b(this,"request",chunkVYIKXRYZ_cjs.a(async e=>chunkVYIKXRYZ_cjs.c(this,f).call(()=>chunkVYIKXRYZ_cjs.c(this,m).call(this,e)),"request"));chunkVYIKXRYZ_cjs.b(this,"sendAsync",chunkVYIKXRYZ_cjs.a((e,s)=>{if(Array.isArray(e))return Promise.all(e.map(c=>new Promise(O=>{this.sendAsync(c,(V,b)=>{O(b);});}))).then(c=>s(null,c));let{method:a,params:h,...E}=e;this.request({method:a,params:h}).then(c=>s(null,{...E,method:a,result:c})).catch(c=>s(c,{...E,method:a,error:c}));},"sendAsync"));chunkVYIKXRYZ_cjs.b(this,"send",chunkVYIKXRYZ_cjs.a((e,s)=>{if(typeof e=="string"&&(!s||Array.isArray(s)))return this.request({method:e,params:s}).then(h=>({id:void 0,jsonrpc:"2.0",result:h}));if(typeof e=="object"&&typeof s=="function")return this.sendAsync(e,s);let a;switch(e.method){case"eth_chainId":a=this.chainId;break;case"eth_accounts":a=this.selectedAddress?[this.selectedAddress]:[];break;case"eth_coinbase":a=this.selectedAddress||null;break;default:throw new Error("Sync method not supported. Please provide a callback or use the `request` function.")}return {id:e.id,jsonrpc:e.jsonrpc,result:a}},"send"));chunkVYIKXRYZ_cjs.b(this,"enable",chunkVYIKXRYZ_cjs.a(()=>this.request({method:"eth_requestAccounts"}),"enable"));chunkVYIKXRYZ_cjs.b(this,"net_version",chunkVYIKXRYZ_cjs.a(()=>this.request({method:"net_version"}),"net_version"));chunkVYIKXRYZ_cjs.d(this,_,chunkVYIKXRYZ_cjs.a(e=>{this._isConnected||(this._isConnected=!0,this._state.isConnected=!0,this.emit("connect",e));},"#connect"));chunkVYIKXRYZ_cjs.d(this,P,chunkVYIKXRYZ_cjs.a(({accounts:e,isUnlocked:s})=>{s?(this._isUnlocked=!0,this._state.isUnlocked=!0,chunkVYIKXRYZ_cjs.c(this,p).call(this,e)):this._isUnlocked=!1;},"#unlockStateChanged"));chunkVYIKXRYZ_cjs.d(this,k,chunkVYIKXRYZ_cjs.a(()=>{this._isConnected=!1,this._state.isConnected=!1,this._state.accounts=null,this.selectedAddress=null;let e=rpcErrors.providerErrors.disconnected();this.emit("accountsChanged",[]),this.emit("disconnect",e),this.emit("close",e);},"#disconnect"));chunkVYIKXRYZ_cjs.d(this,p,chunkVYIKXRYZ_cjs.a(e=>{e?.[0]!==this.selectedAddress&&(this.selectedAddress=e?.[0]??null,this._state.accounts=e,this.emit("accountsChanged",e));},"#accountsChanged"));chunkVYIKXRYZ_cjs.d(this,g,chunkVYIKXRYZ_cjs.a(({chainId:e,networkVersion:s})=>{chunkVYIKXRYZ_cjs.c(this,_).call(this,{chainId:e}),e!==this.chainId&&(this.chainId=e,this.emit("chainChanged",e)),s!==this.networkVersion&&(this.networkVersion=s,this.emit("networkChanged",s));},"#chainChanged"));this.info=s,this.walletVersion=a??null,this.setMaxListeners(e),chunkVYIKXRYZ_cjs.f(this,A,q).call(this);}};f=new WeakMap,l=new WeakMap,A=new WeakSet,q=chunkVYIKXRYZ_cjs.a(function(){window.addEventListener(vmModuleTypes.EventNames.CORE_WALLET_ANNOUNCE_PROVIDER,e=>{chunkVYIKXRYZ_cjs.c(this,l)||(chunkVYIKXRYZ_cjs.e(this,l,e.detail.provider),chunkVYIKXRYZ_cjs.c(this,l)?.subscribeToMessage(chunkVYIKXRYZ_cjs.c(this,I)),chunkVYIKXRYZ_cjs.c(this,y).call(this));}),window.dispatchEvent(new Event(vmModuleTypes.EventNames.CORE_WALLET_REQUEST_PROVIDER));},"#subscribe"),y=new WeakMap,m=new WeakMap,C=new WeakMap,I=new WeakMap,_=new WeakMap,P=new WeakMap,k=new WeakMap,p=new WeakMap,g=new WeakMap,chunkVYIKXRYZ_cjs.a(D,"EVMProvider");var U=D;
13
13
 
14
- exports.EVMProvider = D;
14
+ exports.EVMProvider = U;
15
15
  //# sourceMappingURL=out.js.map
16
16
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/provider/provider.ts","../../src/utils/provider-ready-promise.ts"],"names":["providerErrors","EventEmitter","EventNames","_unpreparedSteps","_inflightRequests","ProviderReadyPromise","steps","__privateAdd","__publicField","step","__privateGet","request","fn","resolve","_providerReadyPromise","_chainagnosticProvider","_subscribe","subscribe_fn","_init","_request","_getEventHandler","_handleBackgroundMessage","_connect","_unlockStateChanged","_disconnect","_accountsChanged","_chainChanged","EVMProvider","maxListeners","info","walletVersion","response","chainId","accounts","networkVersion","isUnlocked","data","method","params","eventHandler","payload","callback","item","_","res","result","rest","error","disconnectError","__privateMethod","event","__privateSet"],"mappings":"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","sourcesContent":["import { providerErrors } from '@metamask/rpc-errors';\nimport EventEmitter from 'events';\nimport {\n EventNames,\n type AccountsChangedEventData,\n type ChainAgnosticProvider,\n type ChainChangedEventData,\n type JsonRpcRequestPayload,\n type PartialBy,\n type UnlockStateChangedEventData,\n type EIP6963ProviderInfo,\n} from '@avalabs/vm-module-types';\nimport { InitializationStep, ProviderReadyPromise } from '../utils/provider-ready-promise';\n\ninterface ProviderState {\n accounts: string[] | null;\n isConnected: boolean;\n isUnlocked: boolean;\n initialized: boolean;\n}\n\nenum DAppProviderRequest {\n INIT_DAPP_STATE = 'avalanche_getProviderState',\n}\n\nexport class EVMProvider extends EventEmitter {\n #providerReadyPromise = new ProviderReadyPromise([InitializationStep.PROVIDER_STATE_LOADED]);\n #chainagnosticProvider?: ChainAgnosticProvider;\n\n readonly info: EIP6963ProviderInfo;\n\n chainId: string | null = null;\n selectedAddress: string | null = null;\n /**\n * The network ID of the currently connected Ethereum chain.\n * @deprecated\n */\n networkVersion: string | null = null;\n isAvalanche = true;\n isMetaMask = true;\n walletVersion: string | null = null;\n\n _isReady = false;\n _isConnected = false;\n _initialized = false;\n _isUnlocked = false;\n _sessionId = crypto.randomUUID();\n\n _state: ProviderState = {\n accounts: null,\n isConnected: false,\n isUnlocked: false,\n initialized: false,\n };\n\n // Metamask compatibility\n _metamask = {\n isUnlocked: () => Promise.resolve(this._isUnlocked),\n };\n\n constructor({\n maxListeners = 100,\n info,\n walletVersion,\n }: {\n maxListeners?: number;\n info: EIP6963ProviderInfo;\n walletVersion?: string;\n }) {\n super();\n this.info = info;\n this.walletVersion = walletVersion ?? null;\n this.setMaxListeners(maxListeners);\n this.#subscribe();\n }\n\n #subscribe() {\n window.addEventListener(EventNames.CORE_WALLET_ANNOUNCE_PROVIDER, (event) => {\n if (this.#chainagnosticProvider) {\n return;\n }\n this.#chainagnosticProvider = (<CustomEvent>event).detail.provider;\n\n this.#chainagnosticProvider?.subscribeToMessage(this.#handleBackgroundMessage);\n\n this.#init();\n });\n\n window.dispatchEvent(new Event(EventNames.CORE_WALLET_REQUEST_PROVIDER));\n }\n /**\n * Initializes provider state, and collects dApp information\n */\n #init = async () => {\n try {\n const response = await this.#request({\n method: DAppProviderRequest.INIT_DAPP_STATE,\n });\n\n const { chainId, accounts, networkVersion, isUnlocked } =\n (response as {\n isUnlocked: boolean;\n chainId: string | null;\n networkVersion: string | null;\n accounts: string[];\n }) ?? {};\n\n if (isUnlocked) {\n this._isUnlocked = true;\n this._state.isUnlocked = true;\n }\n\n if (chainId && chainId !== '0x0' && networkVersion && networkVersion !== 'loading') {\n this.chainId = chainId;\n this.networkVersion = networkVersion;\n this.#connect({ chainId });\n this.#chainChanged({\n chainId,\n networkVersion,\n });\n }\n\n this.#accountsChanged(accounts || []);\n\n this.#providerReadyPromise.check(InitializationStep.PROVIDER_STATE_LOADED);\n } catch (e) {\n // the provider will have a partial state, but still should be able to function\n } finally {\n this._initialized = true;\n this._state.initialized = true;\n this._isReady = true;\n this.emit('_initialized');\n }\n };\n\n #request = async (data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>) => {\n // Intercept eth_chainId requests, we know where we are.\n if (data.method === 'eth_chainId') {\n return this.chainId;\n }\n\n return this.#chainagnosticProvider?.request({\n data,\n scope: `eip155:${this.chainId}`,\n sessionId: this._sessionId,\n });\n };\n\n #getEventHandler = (method: string): ((params: unknown) => void) => {\n const handlerMap = {\n connect: this.#connect,\n disconnect: this.#disconnect,\n accountsChanged: this.#accountsChanged,\n chainChanged: this.#chainChanged,\n avalanche_unlockStateChanged: this.#unlockStateChanged,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any;\n return handlerMap[method];\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #handleBackgroundMessage = ({ method, params }: any) => {\n const eventHandler = this.#getEventHandler(method);\n if (eventHandler) {\n return eventHandler(params);\n }\n\n this.emit(method, params);\n };\n\n isConnected = () => {\n return true;\n };\n\n request = async (data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>) => {\n return this.#providerReadyPromise.call(() => {\n return this.#request(data);\n });\n };\n\n // shim to matamask legacy api\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sendAsync = (payload: any, callback: any) => {\n if (Array.isArray(payload)) {\n return Promise.all(\n payload.map(\n (item) =>\n new Promise((resolve) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.sendAsync(item, (_: any, res: any) => {\n // ignore error\n resolve(res);\n });\n }),\n ),\n ).then((result) => callback(null, result));\n }\n const { method, params, ...rest } = payload;\n this.request({ method, params })\n .then((result) => callback(null, { ...rest, method, result }))\n .catch((error) => callback(error, { ...rest, method, error }));\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n send = (payload: any, callback?: any) => {\n if (typeof payload === 'string' && (!callback || Array.isArray(callback))) {\n return this.request({\n method: payload,\n params: callback,\n }).then((result) => ({\n id: undefined,\n jsonrpc: '2.0',\n result,\n }));\n }\n\n if (typeof payload === 'object' && typeof callback === 'function') {\n return this.sendAsync(payload, callback);\n }\n\n let result;\n switch (payload.method) {\n case 'eth_chainId':\n result = this.chainId;\n break;\n\n case 'eth_accounts':\n result = this.selectedAddress ? [this.selectedAddress] : [];\n break;\n\n case 'eth_coinbase':\n result = this.selectedAddress || null;\n break;\n\n default:\n throw new Error('Sync method not supported. Please provide a callback or use the `request` function.');\n }\n\n return {\n id: payload.id,\n jsonrpc: payload.jsonrpc,\n result,\n };\n };\n\n enable = () => {\n return this.request({ method: 'eth_requestAccounts' });\n };\n\n net_version = () => {\n return this.request({ method: 'net_version' });\n };\n\n #connect = (data: { chainId: string }) => {\n if (!this._isConnected) {\n this._isConnected = true;\n this._state.isConnected = true;\n this.emit('connect', data);\n }\n };\n\n #unlockStateChanged = ({ accounts, isUnlocked }: UnlockStateChangedEventData) => {\n if (isUnlocked) {\n this._isUnlocked = true;\n this._state.isUnlocked = true;\n this.#accountsChanged(accounts);\n } else {\n this._isUnlocked = false;\n }\n };\n\n #disconnect = () => {\n this._isConnected = false;\n this._state.isConnected = false;\n this._state.accounts = null;\n this.selectedAddress = null;\n const disconnectError = providerErrors.disconnected();\n\n this.emit('accountsChanged', []);\n this.emit('disconnect', disconnectError);\n this.emit('close', disconnectError);\n };\n\n #accountsChanged = (accounts: AccountsChangedEventData) => {\n if (accounts?.[0] === this.selectedAddress) {\n return;\n }\n\n this.selectedAddress = accounts?.[0] ?? null;\n this._state.accounts = accounts;\n this.emit('accountsChanged', accounts);\n };\n\n #chainChanged = ({ chainId, networkVersion }: ChainChangedEventData) => {\n this.#connect({ chainId });\n\n if (chainId !== this.chainId) {\n this.chainId = chainId;\n this.emit('chainChanged', chainId);\n }\n\n if (networkVersion !== this.networkVersion) {\n this.networkVersion = networkVersion;\n this.emit('networkChanged', networkVersion);\n }\n };\n}\n","export enum InitializationStep {\n DOMAIN_METADATA_SENT = 'domain_metadata_sent',\n PROVIDER_STATE_LOADED = 'provider_state_loaded',\n}\n\nexport class ProviderReadyPromise {\n #unpreparedSteps: Map<InitializationStep, boolean> = new Map();\n #inflightRequests: {\n resolve(value: unknown): void;\n fn(): Promise<unknown>;\n }[] = [];\n\n constructor(steps: InitializationStep[]) {\n steps.map((step) => this.#unpreparedSteps.set(step, true));\n }\n\n check = (step: InitializationStep) => {\n const hasStep = this.#unpreparedSteps.has(step);\n\n if (hasStep) {\n this.#unpreparedSteps.delete(step);\n }\n\n this._proceed();\n };\n\n uncheck = (step: InitializationStep) => {\n this.#unpreparedSteps.set(step, true);\n };\n\n private _proceed = () => {\n if (this.#unpreparedSteps.size) {\n return;\n }\n\n while (this.#inflightRequests.length) {\n const request = this.#inflightRequests.shift();\n request?.resolve(request?.fn());\n }\n };\n\n call = (fn: () => Promise<unknown>) => {\n return new Promise((resolve) => {\n this.#inflightRequests.push({\n fn,\n resolve,\n });\n\n this._proceed();\n });\n };\n}\n"]}
1
+ {"version":3,"sources":["../../src/provider/provider.ts","../../src/utils/provider-ready-promise.ts"],"names":["providerErrors","EventEmitter","EventNames","_unpreparedSteps","_inflightRequests","_ProviderReadyPromise","steps","__privateAdd","__publicField","__name","step","__privateGet","request","fn","resolve","ProviderReadyPromise","_providerReadyPromise","_chainagnosticProvider","_subscribe","subscribe_fn","_init","_request","_getEventHandler","_handleBackgroundMessage","_connect","_unlockStateChanged","_disconnect","_accountsChanged","_chainChanged","_EVMProvider","maxListeners","info","walletVersion","response","chainId","accounts","networkVersion","isUnlocked","data","method","params","eventHandler","payload","callback","item","_","res","result","rest","error","disconnectError","__privateMethod","event","__privateSet","EVMProvider"],"mappings":"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","sourcesContent":["import { providerErrors } from '@metamask/rpc-errors';\nimport EventEmitter from 'events';\nimport {\n EventNames,\n type AccountsChangedEventData,\n type ChainAgnosticProvider,\n type ChainChangedEventData,\n type JsonRpcRequestPayload,\n type PartialBy,\n type UnlockStateChangedEventData,\n type EIP6963ProviderInfo,\n} from '@avalabs/vm-module-types';\nimport { InitializationStep, ProviderReadyPromise } from '../utils/provider-ready-promise';\n\ninterface ProviderState {\n accounts: string[] | null;\n isConnected: boolean;\n isUnlocked: boolean;\n initialized: boolean;\n}\n\nenum DAppProviderRequest {\n INIT_DAPP_STATE = 'avalanche_getProviderState',\n}\n\nexport class EVMProvider extends EventEmitter {\n #providerReadyPromise = new ProviderReadyPromise([InitializationStep.PROVIDER_STATE_LOADED]);\n #chainagnosticProvider?: ChainAgnosticProvider;\n\n readonly info: EIP6963ProviderInfo;\n\n chainId: string | null = null;\n selectedAddress: string | null = null;\n /**\n * The network ID of the currently connected Ethereum chain.\n * @deprecated\n */\n networkVersion: string | null = null;\n isAvalanche = true;\n isMetaMask = true;\n walletVersion: string | null = null;\n\n _isReady = false;\n _isConnected = false;\n _initialized = false;\n _isUnlocked = false;\n _sessionId = crypto.randomUUID();\n\n _state: ProviderState = {\n accounts: null,\n isConnected: false,\n isUnlocked: false,\n initialized: false,\n };\n\n // Metamask compatibility\n _metamask = {\n isUnlocked: () => Promise.resolve(this._isUnlocked),\n };\n\n constructor({\n maxListeners = 100,\n info,\n walletVersion,\n }: {\n maxListeners?: number;\n info: EIP6963ProviderInfo;\n walletVersion?: string;\n }) {\n super();\n this.info = info;\n this.walletVersion = walletVersion ?? null;\n this.setMaxListeners(maxListeners);\n this.#subscribe();\n }\n\n #subscribe() {\n window.addEventListener(EventNames.CORE_WALLET_ANNOUNCE_PROVIDER, (event) => {\n if (this.#chainagnosticProvider) {\n return;\n }\n this.#chainagnosticProvider = (<CustomEvent>event).detail.provider;\n\n this.#chainagnosticProvider?.subscribeToMessage(this.#handleBackgroundMessage);\n\n this.#init();\n });\n\n window.dispatchEvent(new Event(EventNames.CORE_WALLET_REQUEST_PROVIDER));\n }\n /**\n * Initializes provider state, and collects dApp information\n */\n #init = async () => {\n try {\n const response = await this.#request({\n method: DAppProviderRequest.INIT_DAPP_STATE,\n });\n\n const { chainId, accounts, networkVersion, isUnlocked } =\n (response as {\n isUnlocked: boolean;\n chainId: string | null;\n networkVersion: string | null;\n accounts: string[];\n }) ?? {};\n\n if (isUnlocked) {\n this._isUnlocked = true;\n this._state.isUnlocked = true;\n }\n\n if (chainId && chainId !== '0x0' && networkVersion && networkVersion !== 'loading') {\n this.chainId = chainId;\n this.networkVersion = networkVersion;\n this.#connect({ chainId });\n this.#chainChanged({\n chainId,\n networkVersion,\n });\n }\n\n this.#accountsChanged(accounts || []);\n\n this.#providerReadyPromise.check(InitializationStep.PROVIDER_STATE_LOADED);\n } catch (e) {\n // the provider will have a partial state, but still should be able to function\n } finally {\n this._initialized = true;\n this._state.initialized = true;\n this._isReady = true;\n this.emit('_initialized');\n }\n };\n\n #request = async (data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>) => {\n // Intercept eth_chainId requests, we know where we are.\n if (data.method === 'eth_chainId') {\n return this.chainId;\n }\n\n return this.#chainagnosticProvider?.request({\n data,\n scope: `eip155:${this.chainId}`,\n sessionId: this._sessionId,\n });\n };\n\n #getEventHandler = (method: string): ((params: unknown) => void) => {\n const handlerMap = {\n connect: this.#connect,\n disconnect: this.#disconnect,\n accountsChanged: this.#accountsChanged,\n chainChanged: this.#chainChanged,\n avalanche_unlockStateChanged: this.#unlockStateChanged,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any;\n return handlerMap[method];\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #handleBackgroundMessage = ({ method, params }: any) => {\n const eventHandler = this.#getEventHandler(method);\n if (eventHandler) {\n return eventHandler(params);\n }\n\n this.emit(method, params);\n };\n\n isConnected = () => {\n return true;\n };\n\n request = async (data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>) => {\n return this.#providerReadyPromise.call(() => {\n return this.#request(data);\n });\n };\n\n // shim to matamask legacy api\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sendAsync = (payload: any, callback: any) => {\n if (Array.isArray(payload)) {\n return Promise.all(\n payload.map(\n (item) =>\n new Promise((resolve) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.sendAsync(item, (_: any, res: any) => {\n // ignore error\n resolve(res);\n });\n }),\n ),\n ).then((result) => callback(null, result));\n }\n const { method, params, ...rest } = payload;\n this.request({ method, params })\n .then((result) => callback(null, { ...rest, method, result }))\n .catch((error) => callback(error, { ...rest, method, error }));\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n send = (payload: any, callback?: any) => {\n if (typeof payload === 'string' && (!callback || Array.isArray(callback))) {\n return this.request({\n method: payload,\n params: callback,\n }).then((result) => ({\n id: undefined,\n jsonrpc: '2.0',\n result,\n }));\n }\n\n if (typeof payload === 'object' && typeof callback === 'function') {\n return this.sendAsync(payload, callback);\n }\n\n let result;\n switch (payload.method) {\n case 'eth_chainId':\n result = this.chainId;\n break;\n\n case 'eth_accounts':\n result = this.selectedAddress ? [this.selectedAddress] : [];\n break;\n\n case 'eth_coinbase':\n result = this.selectedAddress || null;\n break;\n\n default:\n throw new Error('Sync method not supported. Please provide a callback or use the `request` function.');\n }\n\n return {\n id: payload.id,\n jsonrpc: payload.jsonrpc,\n result,\n };\n };\n\n enable = () => {\n return this.request({ method: 'eth_requestAccounts' });\n };\n\n net_version = () => {\n return this.request({ method: 'net_version' });\n };\n\n #connect = (data: { chainId: string }) => {\n if (!this._isConnected) {\n this._isConnected = true;\n this._state.isConnected = true;\n this.emit('connect', data);\n }\n };\n\n #unlockStateChanged = ({ accounts, isUnlocked }: UnlockStateChangedEventData) => {\n if (isUnlocked) {\n this._isUnlocked = true;\n this._state.isUnlocked = true;\n this.#accountsChanged(accounts);\n } else {\n this._isUnlocked = false;\n }\n };\n\n #disconnect = () => {\n this._isConnected = false;\n this._state.isConnected = false;\n this._state.accounts = null;\n this.selectedAddress = null;\n const disconnectError = providerErrors.disconnected();\n\n this.emit('accountsChanged', []);\n this.emit('disconnect', disconnectError);\n this.emit('close', disconnectError);\n };\n\n #accountsChanged = (accounts: AccountsChangedEventData) => {\n if (accounts?.[0] === this.selectedAddress) {\n return;\n }\n\n this.selectedAddress = accounts?.[0] ?? null;\n this._state.accounts = accounts;\n this.emit('accountsChanged', accounts);\n };\n\n #chainChanged = ({ chainId, networkVersion }: ChainChangedEventData) => {\n this.#connect({ chainId });\n\n if (chainId !== this.chainId) {\n this.chainId = chainId;\n this.emit('chainChanged', chainId);\n }\n\n if (networkVersion !== this.networkVersion) {\n this.networkVersion = networkVersion;\n this.emit('networkChanged', networkVersion);\n }\n };\n}\n","export enum InitializationStep {\n DOMAIN_METADATA_SENT = 'domain_metadata_sent',\n PROVIDER_STATE_LOADED = 'provider_state_loaded',\n}\n\nexport class ProviderReadyPromise {\n #unpreparedSteps: Map<InitializationStep, boolean> = new Map();\n #inflightRequests: {\n resolve(value: unknown): void;\n fn(): Promise<unknown>;\n }[] = [];\n\n constructor(steps: InitializationStep[]) {\n steps.map((step) => this.#unpreparedSteps.set(step, true));\n }\n\n check = (step: InitializationStep) => {\n const hasStep = this.#unpreparedSteps.has(step);\n\n if (hasStep) {\n this.#unpreparedSteps.delete(step);\n }\n\n this._proceed();\n };\n\n uncheck = (step: InitializationStep) => {\n this.#unpreparedSteps.set(step, true);\n };\n\n private _proceed = () => {\n if (this.#unpreparedSteps.size) {\n return;\n }\n\n while (this.#inflightRequests.length) {\n const request = this.#inflightRequests.shift();\n request?.resolve(request?.fn());\n }\n };\n\n call = (fn: () => Promise<unknown>) => {\n return new Promise((resolve) => {\n this.#inflightRequests.push({\n fn,\n resolve,\n });\n\n this._proceed();\n });\n };\n}\n"]}
@@ -1,10 +1,10 @@
1
- import { c as c$1, a, b as b$1, e, d as d$1 } from '../chunk-7VP42LRT.js';
1
+ import { a, c, e, d as d$1, b, f as f$1 } from '../chunk-F6EK5R7B.js';
2
2
  import { providerErrors } from '@metamask/rpc-errors';
3
- import b from 'events';
3
+ import L from 'events';
4
4
  import { EventNames } from '@avalabs/vm-module-types';
5
5
 
6
- var d,l,E=class{constructor(a$1){c$1(this,d,new Map);c$1(this,l,[]);a(this,"check",a=>{b$1(this,d).has(a)&&b$1(this,d).delete(a),this._proceed();});a(this,"uncheck",a=>{b$1(this,d).set(a,!0);});a(this,"_proceed",()=>{if(!b$1(this,d).size)for(;b$1(this,l).length;){let a=b$1(this,l).shift();a?.resolve(a?.fn());}});a(this,"call",a=>new Promise(e=>{b$1(this,l).push({fn:a,resolve:e}),this._proceed();}));a$1.map(e=>b$1(this,d).set(e,!0));}};d=new WeakMap,l=new WeakMap;var p,c,v,S,A,m,y,P,u,C,I,_,f,D=class extends b{constructor({maxListeners:e$1=100,info:s,walletVersion:r}){super();c$1(this,v);c$1(this,p,new E(["provider_state_loaded"]));c$1(this,c,void 0);a(this,"info");a(this,"chainId",null);a(this,"selectedAddress",null);a(this,"networkVersion",null);a(this,"isAvalanche",!0);a(this,"isMetaMask",!0);a(this,"walletVersion",null);a(this,"_isReady",!1);a(this,"_isConnected",!1);a(this,"_initialized",!1);a(this,"_isUnlocked",!1);a(this,"_sessionId",crypto.randomUUID());a(this,"_state",{accounts:null,isConnected:!1,isUnlocked:!1,initialized:!1});a(this,"_metamask",{isUnlocked:()=>Promise.resolve(this._isUnlocked)});c$1(this,A,async()=>{try{let e=await b$1(this,m).call(this,{method:"avalanche_getProviderState"}),{chainId:s,accounts:r,networkVersion:o,isUnlocked:g}=e??{};g&&(this._isUnlocked=!0,this._state.isUnlocked=!0),s&&s!=="0x0"&&o&&o!=="loading"&&(this.chainId=s,this.networkVersion=o,b$1(this,u).call(this,{chainId:s}),b$1(this,f).call(this,{chainId:s,networkVersion:o})),b$1(this,_).call(this,r||[]),b$1(this,p).check("provider_state_loaded");}catch{}finally{this._initialized=!0,this._state.initialized=!0,this._isReady=!0,this.emit("_initialized");}});c$1(this,m,async e=>e.method==="eth_chainId"?this.chainId:b$1(this,c)?.request({data:e,scope:`eip155:${this.chainId}`,sessionId:this._sessionId}));c$1(this,y,e=>({connect:b$1(this,u),disconnect:b$1(this,I),accountsChanged:b$1(this,_),chainChanged:b$1(this,f),avalanche_unlockStateChanged:b$1(this,C)})[e]);c$1(this,P,({method:e,params:s})=>{let r=b$1(this,y).call(this,e);if(r)return r(s);this.emit(e,s);});a(this,"isConnected",()=>!0);a(this,"request",async e=>b$1(this,p).call(()=>b$1(this,m).call(this,e)));a(this,"sendAsync",(e,s)=>{if(Array.isArray(e))return Promise.all(e.map(h=>new Promise(U=>{this.sendAsync(h,(V,q)=>{U(q);});}))).then(h=>s(null,h));let{method:r,params:o,...g}=e;this.request({method:r,params:o}).then(h=>s(null,{...g,method:r,result:h})).catch(h=>s(h,{...g,method:r,error:h}));});a(this,"send",(e,s)=>{if(typeof e=="string"&&(!s||Array.isArray(s)))return this.request({method:e,params:s}).then(o=>({id:void 0,jsonrpc:"2.0",result:o}));if(typeof e=="object"&&typeof s=="function")return this.sendAsync(e,s);let r;switch(e.method){case"eth_chainId":r=this.chainId;break;case"eth_accounts":r=this.selectedAddress?[this.selectedAddress]:[];break;case"eth_coinbase":r=this.selectedAddress||null;break;default:throw new Error("Sync method not supported. Please provide a callback or use the `request` function.")}return {id:e.id,jsonrpc:e.jsonrpc,result:r}});a(this,"enable",()=>this.request({method:"eth_requestAccounts"}));a(this,"net_version",()=>this.request({method:"net_version"}));c$1(this,u,e=>{this._isConnected||(this._isConnected=!0,this._state.isConnected=!0,this.emit("connect",e));});c$1(this,C,({accounts:e,isUnlocked:s})=>{s?(this._isUnlocked=!0,this._state.isUnlocked=!0,b$1(this,_).call(this,e)):this._isUnlocked=!1;});c$1(this,I,()=>{this._isConnected=!1,this._state.isConnected=!1,this._state.accounts=null,this.selectedAddress=null;let e=providerErrors.disconnected();this.emit("accountsChanged",[]),this.emit("disconnect",e),this.emit("close",e);});c$1(this,_,e=>{e?.[0]!==this.selectedAddress&&(this.selectedAddress=e?.[0]??null,this._state.accounts=e,this.emit("accountsChanged",e));});c$1(this,f,({chainId:e,networkVersion:s})=>{b$1(this,u).call(this,{chainId:e}),e!==this.chainId&&(this.chainId=e,this.emit("chainChanged",e)),s!==this.networkVersion&&(this.networkVersion=s,this.emit("networkChanged",s));});this.info=s,this.walletVersion=r??null,this.setMaxListeners(e$1),e(this,v,S).call(this);}};p=new WeakMap,c=new WeakMap,v=new WeakSet,S=function(){window.addEventListener(EventNames.CORE_WALLET_ANNOUNCE_PROVIDER,e=>{b$1(this,c)||(d$1(this,c,e.detail.provider),b$1(this,c)?.subscribeToMessage(b$1(this,P)),b$1(this,A).call(this));}),window.dispatchEvent(new Event(EventNames.CORE_WALLET_REQUEST_PROVIDER));},A=new WeakMap,m=new WeakMap,y=new WeakMap,P=new WeakMap,u=new WeakMap,C=new WeakMap,I=new WeakMap,_=new WeakMap,f=new WeakMap;
6
+ var d,u,w=class w{constructor(o){d$1(this,d,new Map);d$1(this,u,[]);b(this,"check",a(o=>{c(this,d).has(o)&&c(this,d).delete(o),this._proceed();},"check"));b(this,"uncheck",a(o=>{c(this,d).set(o,!0);},"uncheck"));b(this,"_proceed",a(()=>{if(!c(this,d).size)for(;c(this,u).length;){let o=c(this,u).shift();o?.resolve(o?.fn());}},"_proceed"));b(this,"call",a(o=>new Promise(e=>{c(this,u).push({fn:o,resolve:e}),this._proceed();}),"call"));o.map(e=>c(this,d).set(e,!0));}};d=new WeakMap,u=new WeakMap,a(w,"ProviderReadyPromise");var v=w;var f,l,A,q,y,m,C,I,_,P,k,p,g,D=class D extends L{constructor({maxListeners:e=100,info:s,walletVersion:a$1}){super();d$1(this,A);d$1(this,f,new v(["provider_state_loaded"]));d$1(this,l,void 0);b(this,"info");b(this,"chainId",null);b(this,"selectedAddress",null);b(this,"networkVersion",null);b(this,"isAvalanche",!0);b(this,"isMetaMask",!0);b(this,"walletVersion",null);b(this,"_isReady",!1);b(this,"_isConnected",!1);b(this,"_initialized",!1);b(this,"_isUnlocked",!1);b(this,"_sessionId",crypto.randomUUID());b(this,"_state",{accounts:null,isConnected:!1,isUnlocked:!1,initialized:!1});b(this,"_metamask",{isUnlocked:()=>Promise.resolve(this._isUnlocked)});d$1(this,y,a(async()=>{try{let e=await c(this,m).call(this,{method:"avalanche_getProviderState"}),{chainId:s,accounts:a,networkVersion:h,isUnlocked:E}=e??{};E&&(this._isUnlocked=!0,this._state.isUnlocked=!0),s&&s!=="0x0"&&h&&h!=="loading"&&(this.chainId=s,this.networkVersion=h,c(this,_).call(this,{chainId:s}),c(this,g).call(this,{chainId:s,networkVersion:h})),c(this,p).call(this,a||[]),c(this,f).check("provider_state_loaded");}catch{}finally{this._initialized=!0,this._state.initialized=!0,this._isReady=!0,this.emit("_initialized");}},"#init"));d$1(this,m,a(async e=>e.method==="eth_chainId"?this.chainId:c(this,l)?.request({data:e,scope:`eip155:${this.chainId}`,sessionId:this._sessionId}),"#request"));d$1(this,C,a(e=>({connect:c(this,_),disconnect:c(this,k),accountsChanged:c(this,p),chainChanged:c(this,g),avalanche_unlockStateChanged:c(this,P)})[e],"#getEventHandler"));d$1(this,I,a(({method:e,params:s})=>{let a=c(this,C).call(this,e);if(a)return a(s);this.emit(e,s);},"#handleBackgroundMessage"));b(this,"isConnected",a(()=>!0,"isConnected"));b(this,"request",a(async e=>c(this,f).call(()=>c(this,m).call(this,e)),"request"));b(this,"sendAsync",a((e,s)=>{if(Array.isArray(e))return Promise.all(e.map(c=>new Promise(O=>{this.sendAsync(c,(V,b)=>{O(b);});}))).then(c=>s(null,c));let{method:a,params:h,...E}=e;this.request({method:a,params:h}).then(c=>s(null,{...E,method:a,result:c})).catch(c=>s(c,{...E,method:a,error:c}));},"sendAsync"));b(this,"send",a((e,s)=>{if(typeof e=="string"&&(!s||Array.isArray(s)))return this.request({method:e,params:s}).then(h=>({id:void 0,jsonrpc:"2.0",result:h}));if(typeof e=="object"&&typeof s=="function")return this.sendAsync(e,s);let a;switch(e.method){case"eth_chainId":a=this.chainId;break;case"eth_accounts":a=this.selectedAddress?[this.selectedAddress]:[];break;case"eth_coinbase":a=this.selectedAddress||null;break;default:throw new Error("Sync method not supported. Please provide a callback or use the `request` function.")}return {id:e.id,jsonrpc:e.jsonrpc,result:a}},"send"));b(this,"enable",a(()=>this.request({method:"eth_requestAccounts"}),"enable"));b(this,"net_version",a(()=>this.request({method:"net_version"}),"net_version"));d$1(this,_,a(e=>{this._isConnected||(this._isConnected=!0,this._state.isConnected=!0,this.emit("connect",e));},"#connect"));d$1(this,P,a(({accounts:e,isUnlocked:s})=>{s?(this._isUnlocked=!0,this._state.isUnlocked=!0,c(this,p).call(this,e)):this._isUnlocked=!1;},"#unlockStateChanged"));d$1(this,k,a(()=>{this._isConnected=!1,this._state.isConnected=!1,this._state.accounts=null,this.selectedAddress=null;let e=providerErrors.disconnected();this.emit("accountsChanged",[]),this.emit("disconnect",e),this.emit("close",e);},"#disconnect"));d$1(this,p,a(e=>{e?.[0]!==this.selectedAddress&&(this.selectedAddress=e?.[0]??null,this._state.accounts=e,this.emit("accountsChanged",e));},"#accountsChanged"));d$1(this,g,a(({chainId:e,networkVersion:s})=>{c(this,_).call(this,{chainId:e}),e!==this.chainId&&(this.chainId=e,this.emit("chainChanged",e)),s!==this.networkVersion&&(this.networkVersion=s,this.emit("networkChanged",s));},"#chainChanged"));this.info=s,this.walletVersion=a$1??null,this.setMaxListeners(e),f$1(this,A,q).call(this);}};f=new WeakMap,l=new WeakMap,A=new WeakSet,q=a(function(){window.addEventListener(EventNames.CORE_WALLET_ANNOUNCE_PROVIDER,e$1=>{c(this,l)||(e(this,l,e$1.detail.provider),c(this,l)?.subscribeToMessage(c(this,I)),c(this,y).call(this));}),window.dispatchEvent(new Event(EventNames.CORE_WALLET_REQUEST_PROVIDER));},"#subscribe"),y=new WeakMap,m=new WeakMap,C=new WeakMap,I=new WeakMap,_=new WeakMap,P=new WeakMap,k=new WeakMap,p=new WeakMap,g=new WeakMap,a(D,"EVMProvider");var U=D;
7
7
 
8
- export { D as EVMProvider };
8
+ export { U as EVMProvider };
9
9
  //# sourceMappingURL=out.js.map
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/provider/provider.ts","../../src/utils/provider-ready-promise.ts"],"names":["providerErrors","EventEmitter","EventNames","_unpreparedSteps","_inflightRequests","ProviderReadyPromise","steps","__privateAdd","__publicField","step","__privateGet","request","fn","resolve","_providerReadyPromise","_chainagnosticProvider","_subscribe","subscribe_fn","_init","_request","_getEventHandler","_handleBackgroundMessage","_connect","_unlockStateChanged","_disconnect","_accountsChanged","_chainChanged","EVMProvider","maxListeners","info","walletVersion","response","chainId","accounts","networkVersion","isUnlocked","data","method","params","eventHandler","payload","callback","item","_","res","result","rest","error","disconnectError","__privateMethod","event","__privateSet"],"mappings":"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","sourcesContent":["import { providerErrors } from '@metamask/rpc-errors';\nimport EventEmitter from 'events';\nimport {\n EventNames,\n type AccountsChangedEventData,\n type ChainAgnosticProvider,\n type ChainChangedEventData,\n type JsonRpcRequestPayload,\n type PartialBy,\n type UnlockStateChangedEventData,\n type EIP6963ProviderInfo,\n} from '@avalabs/vm-module-types';\nimport { InitializationStep, ProviderReadyPromise } from '../utils/provider-ready-promise';\n\ninterface ProviderState {\n accounts: string[] | null;\n isConnected: boolean;\n isUnlocked: boolean;\n initialized: boolean;\n}\n\nenum DAppProviderRequest {\n INIT_DAPP_STATE = 'avalanche_getProviderState',\n}\n\nexport class EVMProvider extends EventEmitter {\n #providerReadyPromise = new ProviderReadyPromise([InitializationStep.PROVIDER_STATE_LOADED]);\n #chainagnosticProvider?: ChainAgnosticProvider;\n\n readonly info: EIP6963ProviderInfo;\n\n chainId: string | null = null;\n selectedAddress: string | null = null;\n /**\n * The network ID of the currently connected Ethereum chain.\n * @deprecated\n */\n networkVersion: string | null = null;\n isAvalanche = true;\n isMetaMask = true;\n walletVersion: string | null = null;\n\n _isReady = false;\n _isConnected = false;\n _initialized = false;\n _isUnlocked = false;\n _sessionId = crypto.randomUUID();\n\n _state: ProviderState = {\n accounts: null,\n isConnected: false,\n isUnlocked: false,\n initialized: false,\n };\n\n // Metamask compatibility\n _metamask = {\n isUnlocked: () => Promise.resolve(this._isUnlocked),\n };\n\n constructor({\n maxListeners = 100,\n info,\n walletVersion,\n }: {\n maxListeners?: number;\n info: EIP6963ProviderInfo;\n walletVersion?: string;\n }) {\n super();\n this.info = info;\n this.walletVersion = walletVersion ?? null;\n this.setMaxListeners(maxListeners);\n this.#subscribe();\n }\n\n #subscribe() {\n window.addEventListener(EventNames.CORE_WALLET_ANNOUNCE_PROVIDER, (event) => {\n if (this.#chainagnosticProvider) {\n return;\n }\n this.#chainagnosticProvider = (<CustomEvent>event).detail.provider;\n\n this.#chainagnosticProvider?.subscribeToMessage(this.#handleBackgroundMessage);\n\n this.#init();\n });\n\n window.dispatchEvent(new Event(EventNames.CORE_WALLET_REQUEST_PROVIDER));\n }\n /**\n * Initializes provider state, and collects dApp information\n */\n #init = async () => {\n try {\n const response = await this.#request({\n method: DAppProviderRequest.INIT_DAPP_STATE,\n });\n\n const { chainId, accounts, networkVersion, isUnlocked } =\n (response as {\n isUnlocked: boolean;\n chainId: string | null;\n networkVersion: string | null;\n accounts: string[];\n }) ?? {};\n\n if (isUnlocked) {\n this._isUnlocked = true;\n this._state.isUnlocked = true;\n }\n\n if (chainId && chainId !== '0x0' && networkVersion && networkVersion !== 'loading') {\n this.chainId = chainId;\n this.networkVersion = networkVersion;\n this.#connect({ chainId });\n this.#chainChanged({\n chainId,\n networkVersion,\n });\n }\n\n this.#accountsChanged(accounts || []);\n\n this.#providerReadyPromise.check(InitializationStep.PROVIDER_STATE_LOADED);\n } catch (e) {\n // the provider will have a partial state, but still should be able to function\n } finally {\n this._initialized = true;\n this._state.initialized = true;\n this._isReady = true;\n this.emit('_initialized');\n }\n };\n\n #request = async (data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>) => {\n // Intercept eth_chainId requests, we know where we are.\n if (data.method === 'eth_chainId') {\n return this.chainId;\n }\n\n return this.#chainagnosticProvider?.request({\n data,\n scope: `eip155:${this.chainId}`,\n sessionId: this._sessionId,\n });\n };\n\n #getEventHandler = (method: string): ((params: unknown) => void) => {\n const handlerMap = {\n connect: this.#connect,\n disconnect: this.#disconnect,\n accountsChanged: this.#accountsChanged,\n chainChanged: this.#chainChanged,\n avalanche_unlockStateChanged: this.#unlockStateChanged,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any;\n return handlerMap[method];\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #handleBackgroundMessage = ({ method, params }: any) => {\n const eventHandler = this.#getEventHandler(method);\n if (eventHandler) {\n return eventHandler(params);\n }\n\n this.emit(method, params);\n };\n\n isConnected = () => {\n return true;\n };\n\n request = async (data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>) => {\n return this.#providerReadyPromise.call(() => {\n return this.#request(data);\n });\n };\n\n // shim to matamask legacy api\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sendAsync = (payload: any, callback: any) => {\n if (Array.isArray(payload)) {\n return Promise.all(\n payload.map(\n (item) =>\n new Promise((resolve) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.sendAsync(item, (_: any, res: any) => {\n // ignore error\n resolve(res);\n });\n }),\n ),\n ).then((result) => callback(null, result));\n }\n const { method, params, ...rest } = payload;\n this.request({ method, params })\n .then((result) => callback(null, { ...rest, method, result }))\n .catch((error) => callback(error, { ...rest, method, error }));\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n send = (payload: any, callback?: any) => {\n if (typeof payload === 'string' && (!callback || Array.isArray(callback))) {\n return this.request({\n method: payload,\n params: callback,\n }).then((result) => ({\n id: undefined,\n jsonrpc: '2.0',\n result,\n }));\n }\n\n if (typeof payload === 'object' && typeof callback === 'function') {\n return this.sendAsync(payload, callback);\n }\n\n let result;\n switch (payload.method) {\n case 'eth_chainId':\n result = this.chainId;\n break;\n\n case 'eth_accounts':\n result = this.selectedAddress ? [this.selectedAddress] : [];\n break;\n\n case 'eth_coinbase':\n result = this.selectedAddress || null;\n break;\n\n default:\n throw new Error('Sync method not supported. Please provide a callback or use the `request` function.');\n }\n\n return {\n id: payload.id,\n jsonrpc: payload.jsonrpc,\n result,\n };\n };\n\n enable = () => {\n return this.request({ method: 'eth_requestAccounts' });\n };\n\n net_version = () => {\n return this.request({ method: 'net_version' });\n };\n\n #connect = (data: { chainId: string }) => {\n if (!this._isConnected) {\n this._isConnected = true;\n this._state.isConnected = true;\n this.emit('connect', data);\n }\n };\n\n #unlockStateChanged = ({ accounts, isUnlocked }: UnlockStateChangedEventData) => {\n if (isUnlocked) {\n this._isUnlocked = true;\n this._state.isUnlocked = true;\n this.#accountsChanged(accounts);\n } else {\n this._isUnlocked = false;\n }\n };\n\n #disconnect = () => {\n this._isConnected = false;\n this._state.isConnected = false;\n this._state.accounts = null;\n this.selectedAddress = null;\n const disconnectError = providerErrors.disconnected();\n\n this.emit('accountsChanged', []);\n this.emit('disconnect', disconnectError);\n this.emit('close', disconnectError);\n };\n\n #accountsChanged = (accounts: AccountsChangedEventData) => {\n if (accounts?.[0] === this.selectedAddress) {\n return;\n }\n\n this.selectedAddress = accounts?.[0] ?? null;\n this._state.accounts = accounts;\n this.emit('accountsChanged', accounts);\n };\n\n #chainChanged = ({ chainId, networkVersion }: ChainChangedEventData) => {\n this.#connect({ chainId });\n\n if (chainId !== this.chainId) {\n this.chainId = chainId;\n this.emit('chainChanged', chainId);\n }\n\n if (networkVersion !== this.networkVersion) {\n this.networkVersion = networkVersion;\n this.emit('networkChanged', networkVersion);\n }\n };\n}\n","export enum InitializationStep {\n DOMAIN_METADATA_SENT = 'domain_metadata_sent',\n PROVIDER_STATE_LOADED = 'provider_state_loaded',\n}\n\nexport class ProviderReadyPromise {\n #unpreparedSteps: Map<InitializationStep, boolean> = new Map();\n #inflightRequests: {\n resolve(value: unknown): void;\n fn(): Promise<unknown>;\n }[] = [];\n\n constructor(steps: InitializationStep[]) {\n steps.map((step) => this.#unpreparedSteps.set(step, true));\n }\n\n check = (step: InitializationStep) => {\n const hasStep = this.#unpreparedSteps.has(step);\n\n if (hasStep) {\n this.#unpreparedSteps.delete(step);\n }\n\n this._proceed();\n };\n\n uncheck = (step: InitializationStep) => {\n this.#unpreparedSteps.set(step, true);\n };\n\n private _proceed = () => {\n if (this.#unpreparedSteps.size) {\n return;\n }\n\n while (this.#inflightRequests.length) {\n const request = this.#inflightRequests.shift();\n request?.resolve(request?.fn());\n }\n };\n\n call = (fn: () => Promise<unknown>) => {\n return new Promise((resolve) => {\n this.#inflightRequests.push({\n fn,\n resolve,\n });\n\n this._proceed();\n });\n };\n}\n"]}
1
+ {"version":3,"sources":["../../src/provider/provider.ts","../../src/utils/provider-ready-promise.ts"],"names":["providerErrors","EventEmitter","EventNames","_unpreparedSteps","_inflightRequests","_ProviderReadyPromise","steps","__privateAdd","__publicField","__name","step","__privateGet","request","fn","resolve","ProviderReadyPromise","_providerReadyPromise","_chainagnosticProvider","_subscribe","subscribe_fn","_init","_request","_getEventHandler","_handleBackgroundMessage","_connect","_unlockStateChanged","_disconnect","_accountsChanged","_chainChanged","_EVMProvider","maxListeners","info","walletVersion","response","chainId","accounts","networkVersion","isUnlocked","data","method","params","eventHandler","payload","callback","item","_","res","result","rest","error","disconnectError","__privateMethod","event","__privateSet","EVMProvider"],"mappings":"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","sourcesContent":["import { providerErrors } from '@metamask/rpc-errors';\nimport EventEmitter from 'events';\nimport {\n EventNames,\n type AccountsChangedEventData,\n type ChainAgnosticProvider,\n type ChainChangedEventData,\n type JsonRpcRequestPayload,\n type PartialBy,\n type UnlockStateChangedEventData,\n type EIP6963ProviderInfo,\n} from '@avalabs/vm-module-types';\nimport { InitializationStep, ProviderReadyPromise } from '../utils/provider-ready-promise';\n\ninterface ProviderState {\n accounts: string[] | null;\n isConnected: boolean;\n isUnlocked: boolean;\n initialized: boolean;\n}\n\nenum DAppProviderRequest {\n INIT_DAPP_STATE = 'avalanche_getProviderState',\n}\n\nexport class EVMProvider extends EventEmitter {\n #providerReadyPromise = new ProviderReadyPromise([InitializationStep.PROVIDER_STATE_LOADED]);\n #chainagnosticProvider?: ChainAgnosticProvider;\n\n readonly info: EIP6963ProviderInfo;\n\n chainId: string | null = null;\n selectedAddress: string | null = null;\n /**\n * The network ID of the currently connected Ethereum chain.\n * @deprecated\n */\n networkVersion: string | null = null;\n isAvalanche = true;\n isMetaMask = true;\n walletVersion: string | null = null;\n\n _isReady = false;\n _isConnected = false;\n _initialized = false;\n _isUnlocked = false;\n _sessionId = crypto.randomUUID();\n\n _state: ProviderState = {\n accounts: null,\n isConnected: false,\n isUnlocked: false,\n initialized: false,\n };\n\n // Metamask compatibility\n _metamask = {\n isUnlocked: () => Promise.resolve(this._isUnlocked),\n };\n\n constructor({\n maxListeners = 100,\n info,\n walletVersion,\n }: {\n maxListeners?: number;\n info: EIP6963ProviderInfo;\n walletVersion?: string;\n }) {\n super();\n this.info = info;\n this.walletVersion = walletVersion ?? null;\n this.setMaxListeners(maxListeners);\n this.#subscribe();\n }\n\n #subscribe() {\n window.addEventListener(EventNames.CORE_WALLET_ANNOUNCE_PROVIDER, (event) => {\n if (this.#chainagnosticProvider) {\n return;\n }\n this.#chainagnosticProvider = (<CustomEvent>event).detail.provider;\n\n this.#chainagnosticProvider?.subscribeToMessage(this.#handleBackgroundMessage);\n\n this.#init();\n });\n\n window.dispatchEvent(new Event(EventNames.CORE_WALLET_REQUEST_PROVIDER));\n }\n /**\n * Initializes provider state, and collects dApp information\n */\n #init = async () => {\n try {\n const response = await this.#request({\n method: DAppProviderRequest.INIT_DAPP_STATE,\n });\n\n const { chainId, accounts, networkVersion, isUnlocked } =\n (response as {\n isUnlocked: boolean;\n chainId: string | null;\n networkVersion: string | null;\n accounts: string[];\n }) ?? {};\n\n if (isUnlocked) {\n this._isUnlocked = true;\n this._state.isUnlocked = true;\n }\n\n if (chainId && chainId !== '0x0' && networkVersion && networkVersion !== 'loading') {\n this.chainId = chainId;\n this.networkVersion = networkVersion;\n this.#connect({ chainId });\n this.#chainChanged({\n chainId,\n networkVersion,\n });\n }\n\n this.#accountsChanged(accounts || []);\n\n this.#providerReadyPromise.check(InitializationStep.PROVIDER_STATE_LOADED);\n } catch (e) {\n // the provider will have a partial state, but still should be able to function\n } finally {\n this._initialized = true;\n this._state.initialized = true;\n this._isReady = true;\n this.emit('_initialized');\n }\n };\n\n #request = async (data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>) => {\n // Intercept eth_chainId requests, we know where we are.\n if (data.method === 'eth_chainId') {\n return this.chainId;\n }\n\n return this.#chainagnosticProvider?.request({\n data,\n scope: `eip155:${this.chainId}`,\n sessionId: this._sessionId,\n });\n };\n\n #getEventHandler = (method: string): ((params: unknown) => void) => {\n const handlerMap = {\n connect: this.#connect,\n disconnect: this.#disconnect,\n accountsChanged: this.#accountsChanged,\n chainChanged: this.#chainChanged,\n avalanche_unlockStateChanged: this.#unlockStateChanged,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } as any;\n return handlerMap[method];\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n #handleBackgroundMessage = ({ method, params }: any) => {\n const eventHandler = this.#getEventHandler(method);\n if (eventHandler) {\n return eventHandler(params);\n }\n\n this.emit(method, params);\n };\n\n isConnected = () => {\n return true;\n };\n\n request = async (data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>) => {\n return this.#providerReadyPromise.call(() => {\n return this.#request(data);\n });\n };\n\n // shim to matamask legacy api\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sendAsync = (payload: any, callback: any) => {\n if (Array.isArray(payload)) {\n return Promise.all(\n payload.map(\n (item) =>\n new Promise((resolve) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.sendAsync(item, (_: any, res: any) => {\n // ignore error\n resolve(res);\n });\n }),\n ),\n ).then((result) => callback(null, result));\n }\n const { method, params, ...rest } = payload;\n this.request({ method, params })\n .then((result) => callback(null, { ...rest, method, result }))\n .catch((error) => callback(error, { ...rest, method, error }));\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n send = (payload: any, callback?: any) => {\n if (typeof payload === 'string' && (!callback || Array.isArray(callback))) {\n return this.request({\n method: payload,\n params: callback,\n }).then((result) => ({\n id: undefined,\n jsonrpc: '2.0',\n result,\n }));\n }\n\n if (typeof payload === 'object' && typeof callback === 'function') {\n return this.sendAsync(payload, callback);\n }\n\n let result;\n switch (payload.method) {\n case 'eth_chainId':\n result = this.chainId;\n break;\n\n case 'eth_accounts':\n result = this.selectedAddress ? [this.selectedAddress] : [];\n break;\n\n case 'eth_coinbase':\n result = this.selectedAddress || null;\n break;\n\n default:\n throw new Error('Sync method not supported. Please provide a callback or use the `request` function.');\n }\n\n return {\n id: payload.id,\n jsonrpc: payload.jsonrpc,\n result,\n };\n };\n\n enable = () => {\n return this.request({ method: 'eth_requestAccounts' });\n };\n\n net_version = () => {\n return this.request({ method: 'net_version' });\n };\n\n #connect = (data: { chainId: string }) => {\n if (!this._isConnected) {\n this._isConnected = true;\n this._state.isConnected = true;\n this.emit('connect', data);\n }\n };\n\n #unlockStateChanged = ({ accounts, isUnlocked }: UnlockStateChangedEventData) => {\n if (isUnlocked) {\n this._isUnlocked = true;\n this._state.isUnlocked = true;\n this.#accountsChanged(accounts);\n } else {\n this._isUnlocked = false;\n }\n };\n\n #disconnect = () => {\n this._isConnected = false;\n this._state.isConnected = false;\n this._state.accounts = null;\n this.selectedAddress = null;\n const disconnectError = providerErrors.disconnected();\n\n this.emit('accountsChanged', []);\n this.emit('disconnect', disconnectError);\n this.emit('close', disconnectError);\n };\n\n #accountsChanged = (accounts: AccountsChangedEventData) => {\n if (accounts?.[0] === this.selectedAddress) {\n return;\n }\n\n this.selectedAddress = accounts?.[0] ?? null;\n this._state.accounts = accounts;\n this.emit('accountsChanged', accounts);\n };\n\n #chainChanged = ({ chainId, networkVersion }: ChainChangedEventData) => {\n this.#connect({ chainId });\n\n if (chainId !== this.chainId) {\n this.chainId = chainId;\n this.emit('chainChanged', chainId);\n }\n\n if (networkVersion !== this.networkVersion) {\n this.networkVersion = networkVersion;\n this.emit('networkChanged', networkVersion);\n }\n };\n}\n","export enum InitializationStep {\n DOMAIN_METADATA_SENT = 'domain_metadata_sent',\n PROVIDER_STATE_LOADED = 'provider_state_loaded',\n}\n\nexport class ProviderReadyPromise {\n #unpreparedSteps: Map<InitializationStep, boolean> = new Map();\n #inflightRequests: {\n resolve(value: unknown): void;\n fn(): Promise<unknown>;\n }[] = [];\n\n constructor(steps: InitializationStep[]) {\n steps.map((step) => this.#unpreparedSteps.set(step, true));\n }\n\n check = (step: InitializationStep) => {\n const hasStep = this.#unpreparedSteps.has(step);\n\n if (hasStep) {\n this.#unpreparedSteps.delete(step);\n }\n\n this._proceed();\n };\n\n uncheck = (step: InitializationStep) => {\n this.#unpreparedSteps.set(step, true);\n };\n\n private _proceed = () => {\n if (this.#unpreparedSteps.size) {\n return;\n }\n\n while (this.#inflightRequests.length) {\n const request = this.#inflightRequests.shift();\n request?.resolve(request?.fn());\n }\n };\n\n call = (fn: () => Promise<unknown>) => {\n return new Promise((resolve) => {\n this.#inflightRequests.push({\n fn,\n resolve,\n });\n\n this._proceed();\n });\n };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@avalabs/evm-module",
3
- "version": "3.7.3",
3
+ "version": "3.8.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ava-labs/core-vm-modules",
@@ -16,13 +16,13 @@
16
16
  ],
17
17
  "license": "Limited Ecosystem License",
18
18
  "dependencies": {
19
- "@avalabs/core-coingecko-sdk": "3.1.0-alpha.85",
20
- "@avalabs/core-etherscan-sdk": "3.1.0-alpha.85",
21
- "@avalabs/core-utils-sdk": "3.1.0-alpha.85",
22
- "@avalabs/core-chains-sdk": "3.1.0-alpha.85",
23
- "@avalabs/core-wallets-sdk": "3.1.0-alpha.85",
24
- "@avalabs/glacier-sdk": "3.1.0-alpha.85",
25
- "@avalabs/types": "3.1.0-alpha.85",
19
+ "@avalabs/core-coingecko-sdk": "3.1.0-alpha.87",
20
+ "@avalabs/core-etherscan-sdk": "3.1.0-alpha.87",
21
+ "@avalabs/core-utils-sdk": "3.1.0-alpha.87",
22
+ "@avalabs/core-chains-sdk": "3.1.0-alpha.87",
23
+ "@avalabs/core-wallets-sdk": "3.1.0-alpha.87",
24
+ "@avalabs/glacier-sdk": "3.1.0-alpha.87",
25
+ "@avalabs/types": "3.1.0-alpha.87",
26
26
  "@blockaid/client": "0.48.0",
27
27
  "@metamask/rpc-errors": "6.3.0",
28
28
  "@openzeppelin/contracts": "4.9.6",
@@ -30,7 +30,7 @@
30
30
  "lodash.startcase": "4.4.0",
31
31
  "xss": "1.0.13",
32
32
  "zod": "3.23.8",
33
- "@avalabs/vm-module-types": "3.7.3"
33
+ "@avalabs/vm-module-types": "3.8.1"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@typechain/ethers-v6": "0.5.0",
@@ -44,8 +44,8 @@
44
44
  "tsup": "7.2.0",
45
45
  "typechain": "8.3.1",
46
46
  "wait-for-expect": "4.0.0",
47
- "@internal/tsup-config": "0.1.0",
48
- "@internal/utils": "0.7.2",
47
+ "@internal/tsup-config": "0.1.1",
48
+ "@internal/utils": "0.8.0",
49
49
  "eslint-config-custom": "0.1.0"
50
50
  },
51
51
  "peerDependencies": {
@@ -1,5 +0,0 @@
1
- var f=Object.defineProperty;var g=(b,a,c)=>a in b?f(b,a,{enumerable:!0,configurable:!0,writable:!0,value:c}):b[a]=c;var h=(b,a,c)=>(g(b,typeof a!="symbol"?a+"":a,c),c),d=(b,a,c)=>{if(!a.has(b))throw TypeError("Cannot "+c)};var i=(b,a,c)=>(d(b,a,"read from private field"),c?c.call(b):a.get(b)),j=(b,a,c)=>{if(a.has(b))throw TypeError("Cannot add the same private member more than once");a instanceof WeakSet?a.add(b):a.set(b,c);},k=(b,a,c,e)=>(d(b,a,"write to private field"),e?e.call(b,c):a.set(b,c),c);var l=(b,a,c)=>(d(b,a,"access private method"),c);
2
-
3
- export { h as a, i as b, j as c, k as d, l as e };
4
- //# sourceMappingURL=out.js.map
5
- //# sourceMappingURL=chunk-7VP42LRT.js.map
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- var f=Object.defineProperty;var g=(b,a,c)=>a in b?f(b,a,{enumerable:!0,configurable:!0,writable:!0,value:c}):b[a]=c;var h=(b,a,c)=>(g(b,typeof a!="symbol"?a+"":a,c),c),d=(b,a,c)=>{if(!a.has(b))throw TypeError("Cannot "+c)};var i=(b,a,c)=>(d(b,a,"read from private field"),c?c.call(b):a.get(b)),j=(b,a,c)=>{if(a.has(b))throw TypeError("Cannot add the same private member more than once");a instanceof WeakSet?a.add(b):a.set(b,c);},k=(b,a,c,e)=>(d(b,a,"write to private field"),e?e.call(b,c):a.set(b,c),c);var l=(b,a,c)=>(d(b,a,"access private method"),c);
4
-
5
- exports.a = h;
6
- exports.b = i;
7
- exports.c = j;
8
- exports.d = k;
9
- exports.e = l;
10
- //# sourceMappingURL=out.js.map
11
- //# sourceMappingURL=chunk-TKL4UUHE.cjs.map