@reown/walletkit 1.1.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +1 -1
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +11 -11
- package/dist/index.umd.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/controllers/engine.d.ts.map +1 -1
- package/package.json +5 -5
package/dist/index.cjs.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var y=require("@walletconnect/sign-client"),m=require("@walletconnect/core"),l={exports:{}},h=typeof Reflect=="object"?Reflect:null,w=h&&typeof h.apply=="function"?h.apply:function(t,e,s){return Function.prototype.apply.call(t,e,s)},f;h&&typeof h.ownKeys=="function"?f=h.ownKeys:Object.getOwnPropertySymbols?f=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:f=function(t){return Object.getOwnPropertyNames(t)};function M(n){console&&console.warn&&console.warn(n)}var L=Number.isNaN||function(t){return t!==t};function o(){o.init.call(this)}l.exports=o,l.exports.once=F,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var _=10;function g(n){if(typeof n!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof n)}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return _},set:function(n){if(typeof n!="number"||n<0||L(n))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+n+".");_=n}}),o.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||L(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function S(n){return n._maxListeners===void 0?o.defaultMaxListeners:n._maxListeners}o.prototype.getMaxListeners=function(){return S(this)},o.prototype.emit=function(t){for(var e=[],s=1;s<arguments.length;s++)e.push(arguments[s]);var i=t==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var r;if(e.length>0&&(r=e[0]),r instanceof Error)throw r;var c=new Error("Unhandled error."+(r?" ("+r.message+")":""));throw c.context=r,c}var u=a[t];if(u===void 0)return!1;if(typeof u=="function")w(u,this,e);else for(var d=u.length,q=R(u,d),s=0;s<d;++s)w(q[s],this,e);return!0};function E(n,t,e,s){var i,a,r;if(g(e),a=n._events,a===void 0?(a=n._events=Object.create(null),n._eventsCount=0):(a.newListener!==void 0&&(n.emit("newListener",t,e.listener?e.listener:e),a=n._events),r=a[t]),r===void 0)r=a[t]=e,++n._eventsCount;else if(typeof r=="function"?r=a[t]=s?[e,r]:[r,e]:s?r.unshift(e):r.push(e),i=S(n),i>0&&r.length>i&&!r.warned){r.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+r.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=n,c.type=t,c.count=r.length,M(c)}return n}o.prototype.addListener=function(t,e){return E(this,t,e,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(t,e){return E(this,t,e,!0)};function K(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function O(n,t,e){var s={fired:!1,wrapFn:void 0,target:n,type:t,listener:e},i=K.bind(s);return i.listener=e,s.wrapFn=i,i}o.prototype.once=function(t,e){return g(e),this.on(t,O(this,t,e)),this},o.prototype.prependOnceListener=function(t,e){return g(e),this.prependListener(t,O(this,t,e)),this},o.prototype.removeListener=function(t,e){var s,i,a,r,c;if(g(e),i=this._events,i===void 0)return this;if(s=i[t],s===void 0)return this;if(s===e||s.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,s.listener||e));else if(typeof s!="function"){for(a=-1,r=s.length-1;r>=0;r--)if(s[r]===e||s[r].listener===e){c=s[r].listener,a=r;break}if(a<0)return this;a===0?s.shift():W(s,a),s.length===1&&(i[t]=s[0]),i.removeListener!==void 0&&this.emit("removeListener",t,c||e)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(t){var e,s,i;if(s=this._events,s===void 0)return this;if(s.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):s[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete s[t]),this;if(arguments.length===0){var a=Object.keys(s),r;for(i=0;i<a.length;++i)r=a[i],r!=="removeListener"&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=s[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(i=e.length-1;i>=0;i--)this.removeListener(t,e[i]);return this};function C(n,t,e){var s=n._events;if(s===void 0)return[];var i=s[t];return i===void 0?[]:typeof i=="function"?e?[i.listener||i]:[i]:e?k(i):R(i,i.length)}o.prototype.listeners=function(t){return C(this,t,!0)},o.prototype.rawListeners=function(t){return C(this,t,!1)},o.listenerCount=function(n,t){return typeof n.listenerCount=="function"?n.listenerCount(t):b.call(n,t)},o.prototype.listenerCount=b;function b(n){var t=this._events;if(t!==void 0){var e=t[n];if(typeof e=="function")return 1;if(e!==void 0)return e.length}return 0}o.prototype.eventNames=function(){return this._eventsCount>0?f(this._events):[]};function R(n,t){for(var e=new Array(t),s=0;s<t;++s)e[s]=n[s];return e}function W(n,t){for(;t+1<n.length;t++)n[t]=n[t+1];n.pop()}function k(n){for(var t=new Array(n.length),e=0;e<t.length;++e)t[e]=n[e].listener||n[e];return t}function F(n,t){return new Promise(function(e,s){function i(r){n.removeListener(t,a),s(r)}function a(){typeof n.removeListener=="function"&&n.removeListener("error",i),e([].slice.call(arguments))}x(n,t,a,{once:!0}),t!=="error"&&D(n,i,{once:!0})})}function D(n,t,e){typeof n.on=="function"&&x(n,"error",t,e)}function x(n,t,e,s){if(typeof n.on=="function")s.once?n.once(t,e):n.on(t,e);else if(typeof n.addEventListener=="function")n.addEventListener(t,function i(a){s.once&&n.removeEventListener(t,i),e(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof n)}const P="wc",X=2,p="WalletKit",z=`${P}@2:${p}:`,G={database:":memory:"},U="request";class $ extends l.exports{constructor(){super()}}class T{constructor(t){this.opts=t}}class A{constructor(t){this.client=t}}var Q=Object.defineProperty,V=Object.defineProperties,H=Object.getOwnPropertyDescriptors,j=Object.getOwnPropertySymbols,B=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,N=(n,t,e)=>t in n?Q(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,Y=(n,t)=>{for(var e in t||(t={}))B.call(t,e)&&N(n,e,t[e]);if(j)for(var e of j(t))J.call(t,e)&&N(n,e,t[e]);return n},Z=(n,t)=>V(n,H(t));class ee extends A{constructor(t){super(t),this.init=async()=>{this.signClient=await y.SignClient.init({core:this.client.core,metadata:this.client.metadata,signConfig:this.client.signConfig})},this.pair=async e=>{await this.client.core.pairing.pair(e)},this.approveSession=async e=>{const{topic:s,acknowledged:i}=await this.signClient.approve(Z(Y({},e),{id:e.id,namespaces:e.namespaces,sessionProperties:e.sessionProperties,sessionConfig:e.sessionConfig}));return await i(),this.signClient.session.get(s)},this.rejectSession=async e=>await this.signClient.reject(e),this.updateSession=async e=>await this.signClient.update(e),this.extendSession=async e=>await this.signClient.extend(e),this.respondSessionRequest=async e=>await this.signClient.respond(e),this.disconnectSession=async e=>await this.signClient.disconnect(e),this.emitSessionEvent=async e=>await this.signClient.emit(e),this.getActiveSessions=()=>this.signClient.session.getAll().reduce((e,s)=>(e[s.topic]=s,e),{}),this.getPendingSessionProposals=()=>this.signClient.proposal.getAll(),this.getPendingSessionRequests=()=>this.signClient.getPendingSessionRequests(),this.approveSessionAuthenticate=async e=>await this.signClient.approveSessionAuthenticate(e),this.rejectSessionAuthenticate=async e=>await this.signClient.rejectSessionAuthenticate(e),this.formatAuthMessage=e=>this.signClient.formatAuthMessage(e),this.registerDeviceToken=e=>this.client.core.echoClient.registerDeviceToken(e),this.on=(e,s)=>(this.setEvent(e,"off"),this.setEvent(e,"on"),this.client.events.on(e,s)),this.once=(e,s)=>(this.setEvent(e,"off"),this.setEvent(e,"once"),this.client.events.once(e,s)),this.off=(e,s)=>(this.setEvent(e,"off"),this.client.events.off(e,s)),this.removeListener=(e,s)=>(this.setEvent(e,"removeListener"),this.client.events.removeListener(e,s)),this.onSessionRequest=e=>{this.client.events.emit("session_request",e)},this.onSessionProposal=e=>{this.client.events.emit("session_proposal",e)},this.onSessionDelete=e=>{this.client.events.emit("session_delete",e)},this.onProposalExpire=e=>{this.client.events.emit("proposal_expire",e)},this.onSessionRequestExpire=e=>{this.client.events.emit("session_request_expire",e)},this.onSessionRequestAuthenticate=e=>{this.client.events.emit("session_authenticate",e)},this.setEvent=(e,s)=>{switch(e){case"session_request":this.signClient.events[s]("session_request",this.onSessionRequest);break;case"session_proposal":this.signClient.events[s]("session_proposal",this.onSessionProposal);break;case"session_delete":this.signClient.events[s]("session_delete",this.onSessionDelete);break;case"proposal_expire":this.signClient.events[s]("proposal_expire",this.onProposalExpire);break;case"session_request_expire":this.signClient.events[s]("session_request_expire",this.onSessionRequestExpire);break;case"session_authenticate":this.signClient.events[s]("session_authenticate",this.onSessionRequestAuthenticate);break}},this.signClient={}}}const te={decryptMessage:async n=>{const t={core:new m.Core({storageOptions:n.storageOptions,storage:n.storage})};await t.core.crypto.init();const e=t.core.crypto.decode(n.topic,n.encryptedMessage);return t.core=null,e},getMetadata:async n=>{const t={core:new m.Core({storageOptions:n.storageOptions,storage:n.storage}),sessionStore:null};t.sessionStore=new y.SessionStore(t.core,t.core.logger),await t.sessionStore.init();const e=t.sessionStore.get(n.topic),s=e?.peer.metadata;return t.core=null,t.sessionStore=null,s}},I=class extends T{constructor(n){super(n),this.events=new l.exports,this.on=(t,e)=>this.engine.on(t,e),this.once=(t,e)=>this.engine.once(t,e),this.off=(t,e)=>this.engine.off(t,e),this.removeListener=(t,e)=>this.engine.removeListener(t,e),this.pair=async t=>{try{return await this.engine.pair(t)}catch(e){throw this.logger.error(e.message),e}},this.approveSession=async t=>{try{return await this.engine.approveSession(t)}catch(e){throw this.logger.error(e.message),e}},this.rejectSession=async t=>{try{return await this.engine.rejectSession(t)}catch(e){throw this.logger.error(e.message),e}},this.updateSession=async t=>{try{return await this.engine.updateSession(t)}catch(e){throw this.logger.error(e.message),e}},this.extendSession=async t=>{try{return await this.engine.extendSession(t)}catch(e){throw this.logger.error(e.message),e}},this.respondSessionRequest=async t=>{try{return await this.engine.respondSessionRequest(t)}catch(e){throw this.logger.error(e.message),e}},this.disconnectSession=async t=>{try{return await this.engine.disconnectSession(t)}catch(e){throw this.logger.error(e.message),e}},this.emitSessionEvent=async t=>{try{return await this.engine.emitSessionEvent(t)}catch(e){throw this.logger.error(e.message),e}},this.getActiveSessions=()=>{try{return this.engine.getActiveSessions()}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionProposals=()=>{try{return this.engine.getPendingSessionProposals()}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(t){throw this.logger.error(t.message),t}},this.registerDeviceToken=t=>{try{return this.engine.registerDeviceToken(t)}catch(e){throw this.logger.error(e.message),e}},this.approveSessionAuthenticate=t=>{try{return this.engine.approveSessionAuthenticate(t)}catch(e){throw this.logger.error(e.message),e}},this.rejectSessionAuthenticate=t=>{try{return this.engine.rejectSessionAuthenticate(t)}catch(e){throw this.logger.error(e.message),e}},this.formatAuthMessage=t=>{try{return this.engine.formatAuthMessage(t)}catch(e){throw this.logger.error(e.message),e}},this.metadata=n.metadata,this.name=n.name||p,this.signConfig=n.signConfig,this.core=n.core,this.logger=this.core.logger,this.engine=new ee(this)}static async init(n){const t=new I(n);return await t.initialize(),t}async initialize(){this.logger.trace("Initialized");try{await this.engine.init(),this.logger.info("WalletKit Initialization Success")}catch(n){throw this.logger.info("WalletKit Initialization Failure"),this.logger.error(n.message),n}}};let v=I;v.notifications=te;const ne=v;exports.CLIENT_CONTEXT=p,exports.CLIENT_STORAGE_OPTIONS=G,exports.CLIENT_STORAGE_PREFIX=z,exports.IWalletKit=T,exports.IWalletKitEngine=A,exports.IWalletKitEvents=$,exports.PROTOCOL=P,exports.PROTOCOL_VERSION=X,exports.REQUEST_CONTEXT=U,exports.WalletKit=ne,exports.default=v;
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var y=require("@walletconnect/sign-client"),m=require("@walletconnect/core"),l={exports:{}},h=typeof Reflect=="object"?Reflect:null,w=h&&typeof h.apply=="function"?h.apply:function(t,e,s){return Function.prototype.apply.call(t,e,s)},f;h&&typeof h.ownKeys=="function"?f=h.ownKeys:Object.getOwnPropertySymbols?f=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:f=function(t){return Object.getOwnPropertyNames(t)};function M(n){console&&console.warn&&console.warn(n)}var L=Number.isNaN||function(t){return t!==t};function o(){o.init.call(this)}l.exports=o,l.exports.once=F,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var _=10;function g(n){if(typeof n!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof n)}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return _},set:function(n){if(typeof n!="number"||n<0||L(n))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+n+".");_=n}}),o.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||L(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function S(n){return n._maxListeners===void 0?o.defaultMaxListeners:n._maxListeners}o.prototype.getMaxListeners=function(){return S(this)},o.prototype.emit=function(t){for(var e=[],s=1;s<arguments.length;s++)e.push(arguments[s]);var i=t==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var r;if(e.length>0&&(r=e[0]),r instanceof Error)throw r;var c=new Error("Unhandled error."+(r?" ("+r.message+")":""));throw c.context=r,c}var u=a[t];if(u===void 0)return!1;if(typeof u=="function")w(u,this,e);else for(var d=u.length,q=R(u,d),s=0;s<d;++s)w(q[s],this,e);return!0};function E(n,t,e,s){var i,a,r;if(g(e),a=n._events,a===void 0?(a=n._events=Object.create(null),n._eventsCount=0):(a.newListener!==void 0&&(n.emit("newListener",t,e.listener?e.listener:e),a=n._events),r=a[t]),r===void 0)r=a[t]=e,++n._eventsCount;else if(typeof r=="function"?r=a[t]=s?[e,r]:[r,e]:s?r.unshift(e):r.push(e),i=S(n),i>0&&r.length>i&&!r.warned){r.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+r.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=n,c.type=t,c.count=r.length,M(c)}return n}o.prototype.addListener=function(t,e){return E(this,t,e,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(t,e){return E(this,t,e,!0)};function K(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function C(n,t,e){var s={fired:!1,wrapFn:void 0,target:n,type:t,listener:e},i=K.bind(s);return i.listener=e,s.wrapFn=i,i}o.prototype.once=function(t,e){return g(e),this.on(t,C(this,t,e)),this},o.prototype.prependOnceListener=function(t,e){return g(e),this.prependListener(t,C(this,t,e)),this},o.prototype.removeListener=function(t,e){var s,i,a,r,c;if(g(e),i=this._events,i===void 0)return this;if(s=i[t],s===void 0)return this;if(s===e||s.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,s.listener||e));else if(typeof s!="function"){for(a=-1,r=s.length-1;r>=0;r--)if(s[r]===e||s[r].listener===e){c=s[r].listener,a=r;break}if(a<0)return this;a===0?s.shift():W(s,a),s.length===1&&(i[t]=s[0]),i.removeListener!==void 0&&this.emit("removeListener",t,c||e)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(t){var e,s,i;if(s=this._events,s===void 0)return this;if(s.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):s[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete s[t]),this;if(arguments.length===0){var a=Object.keys(s),r;for(i=0;i<a.length;++i)r=a[i],r!=="removeListener"&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=s[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(i=e.length-1;i>=0;i--)this.removeListener(t,e[i]);return this};function O(n,t,e){var s=n._events;if(s===void 0)return[];var i=s[t];return i===void 0?[]:typeof i=="function"?e?[i.listener||i]:[i]:e?k(i):R(i,i.length)}o.prototype.listeners=function(t){return O(this,t,!0)},o.prototype.rawListeners=function(t){return O(this,t,!1)},o.listenerCount=function(n,t){return typeof n.listenerCount=="function"?n.listenerCount(t):b.call(n,t)},o.prototype.listenerCount=b;function b(n){var t=this._events;if(t!==void 0){var e=t[n];if(typeof e=="function")return 1;if(e!==void 0)return e.length}return 0}o.prototype.eventNames=function(){return this._eventsCount>0?f(this._events):[]};function R(n,t){for(var e=new Array(t),s=0;s<t;++s)e[s]=n[s];return e}function W(n,t){for(;t+1<n.length;t++)n[t]=n[t+1];n.pop()}function k(n){for(var t=new Array(n.length),e=0;e<t.length;++e)t[e]=n[e].listener||n[e];return t}function F(n,t){return new Promise(function(e,s){function i(r){n.removeListener(t,a),s(r)}function a(){typeof n.removeListener=="function"&&n.removeListener("error",i),e([].slice.call(arguments))}x(n,t,a,{once:!0}),t!=="error"&&D(n,i,{once:!0})})}function D(n,t,e){typeof n.on=="function"&&x(n,"error",t,e)}function x(n,t,e,s){if(typeof n.on=="function")s.once?n.once(t,e):n.on(t,e);else if(typeof n.addEventListener=="function")n.addEventListener(t,function i(a){s.once&&n.removeEventListener(t,i),e(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof n)}const P="wc",X=2,p="WalletKit",z=`${P}@2:${p}:`,G={database:":memory:"},U="request";class $ extends l.exports{constructor(){super()}}class T{constructor(t){this.opts=t}}class A{constructor(t){this.client=t}}var Q=Object.defineProperty,V=Object.defineProperties,H=Object.getOwnPropertyDescriptors,j=Object.getOwnPropertySymbols,B=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable,N=(n,t,e)=>t in n?Q(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,Y=(n,t)=>{for(var e in t||(t={}))B.call(t,e)&&N(n,e,t[e]);if(j)for(var e of j(t))J.call(t,e)&&N(n,e,t[e]);return n},Z=(n,t)=>V(n,H(t));class ee extends A{constructor(t){super(t),this.init=async()=>{this.signClient=await y.SignClient.init({core:this.client.core,metadata:this.client.metadata,signConfig:this.client.signConfig}),this.signClient.core.eventClient.init().catch(e=>{this.client.logger.warn(e)})},this.pair=async e=>{await this.client.core.pairing.pair(e)},this.approveSession=async e=>{const{topic:s,acknowledged:i}=await this.signClient.approve(Z(Y({},e),{id:e.id,namespaces:e.namespaces,sessionProperties:e.sessionProperties,sessionConfig:e.sessionConfig}));return await i(),this.signClient.session.get(s)},this.rejectSession=async e=>await this.signClient.reject(e),this.updateSession=async e=>await this.signClient.update(e),this.extendSession=async e=>await this.signClient.extend(e),this.respondSessionRequest=async e=>await this.signClient.respond(e),this.disconnectSession=async e=>await this.signClient.disconnect(e),this.emitSessionEvent=async e=>await this.signClient.emit(e),this.getActiveSessions=()=>this.signClient.session.getAll().reduce((e,s)=>(e[s.topic]=s,e),{}),this.getPendingSessionProposals=()=>this.signClient.proposal.getAll(),this.getPendingSessionRequests=()=>this.signClient.getPendingSessionRequests(),this.approveSessionAuthenticate=async e=>await this.signClient.approveSessionAuthenticate(e),this.rejectSessionAuthenticate=async e=>await this.signClient.rejectSessionAuthenticate(e),this.formatAuthMessage=e=>this.signClient.formatAuthMessage(e),this.registerDeviceToken=e=>this.client.core.echoClient.registerDeviceToken(e),this.on=(e,s)=>(this.setEvent(e,"off"),this.setEvent(e,"on"),this.client.events.on(e,s)),this.once=(e,s)=>(this.setEvent(e,"off"),this.setEvent(e,"once"),this.client.events.once(e,s)),this.off=(e,s)=>(this.setEvent(e,"off"),this.client.events.off(e,s)),this.removeListener=(e,s)=>(this.setEvent(e,"removeListener"),this.client.events.removeListener(e,s)),this.onSessionRequest=e=>{this.client.events.emit("session_request",e)},this.onSessionProposal=e=>{this.client.events.emit("session_proposal",e)},this.onSessionDelete=e=>{this.client.events.emit("session_delete",e)},this.onProposalExpire=e=>{this.client.events.emit("proposal_expire",e)},this.onSessionRequestExpire=e=>{this.client.events.emit("session_request_expire",e)},this.onSessionRequestAuthenticate=e=>{this.client.events.emit("session_authenticate",e)},this.setEvent=(e,s)=>{switch(e){case"session_request":this.signClient.events[s]("session_request",this.onSessionRequest);break;case"session_proposal":this.signClient.events[s]("session_proposal",this.onSessionProposal);break;case"session_delete":this.signClient.events[s]("session_delete",this.onSessionDelete);break;case"proposal_expire":this.signClient.events[s]("proposal_expire",this.onProposalExpire);break;case"session_request_expire":this.signClient.events[s]("session_request_expire",this.onSessionRequestExpire);break;case"session_authenticate":this.signClient.events[s]("session_authenticate",this.onSessionRequestAuthenticate);break}},this.signClient={}}}const te={decryptMessage:async n=>{const t={core:new m.Core({storageOptions:n.storageOptions,storage:n.storage})};await t.core.crypto.init();const e=t.core.crypto.decode(n.topic,n.encryptedMessage);return t.core=null,e},getMetadata:async n=>{const t={core:new m.Core({storageOptions:n.storageOptions,storage:n.storage}),sessionStore:null};t.sessionStore=new y.SessionStore(t.core,t.core.logger),await t.sessionStore.init();const e=t.sessionStore.get(n.topic),s=e?.peer.metadata;return t.core=null,t.sessionStore=null,s}},I=class extends T{constructor(n){super(n),this.events=new l.exports,this.on=(t,e)=>this.engine.on(t,e),this.once=(t,e)=>this.engine.once(t,e),this.off=(t,e)=>this.engine.off(t,e),this.removeListener=(t,e)=>this.engine.removeListener(t,e),this.pair=async t=>{try{return await this.engine.pair(t)}catch(e){throw this.logger.error(e.message),e}},this.approveSession=async t=>{try{return await this.engine.approveSession(t)}catch(e){throw this.logger.error(e.message),e}},this.rejectSession=async t=>{try{return await this.engine.rejectSession(t)}catch(e){throw this.logger.error(e.message),e}},this.updateSession=async t=>{try{return await this.engine.updateSession(t)}catch(e){throw this.logger.error(e.message),e}},this.extendSession=async t=>{try{return await this.engine.extendSession(t)}catch(e){throw this.logger.error(e.message),e}},this.respondSessionRequest=async t=>{try{return await this.engine.respondSessionRequest(t)}catch(e){throw this.logger.error(e.message),e}},this.disconnectSession=async t=>{try{return await this.engine.disconnectSession(t)}catch(e){throw this.logger.error(e.message),e}},this.emitSessionEvent=async t=>{try{return await this.engine.emitSessionEvent(t)}catch(e){throw this.logger.error(e.message),e}},this.getActiveSessions=()=>{try{return this.engine.getActiveSessions()}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionProposals=()=>{try{return this.engine.getPendingSessionProposals()}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(t){throw this.logger.error(t.message),t}},this.registerDeviceToken=t=>{try{return this.engine.registerDeviceToken(t)}catch(e){throw this.logger.error(e.message),e}},this.approveSessionAuthenticate=t=>{try{return this.engine.approveSessionAuthenticate(t)}catch(e){throw this.logger.error(e.message),e}},this.rejectSessionAuthenticate=t=>{try{return this.engine.rejectSessionAuthenticate(t)}catch(e){throw this.logger.error(e.message),e}},this.formatAuthMessage=t=>{try{return this.engine.formatAuthMessage(t)}catch(e){throw this.logger.error(e.message),e}},this.metadata=n.metadata,this.name=n.name||p,this.signConfig=n.signConfig,this.core=n.core,this.logger=this.core.logger,this.engine=new ee(this)}static async init(n){const t=new I(n);return await t.initialize(),t}async initialize(){this.logger.trace("Initialized");try{await this.engine.init(),this.logger.info("WalletKit Initialization Success")}catch(n){throw this.logger.info("WalletKit Initialization Failure"),this.logger.error(n.message),n}}};let v=I;v.notifications=te;const ne=v;exports.CLIENT_CONTEXT=p,exports.CLIENT_STORAGE_OPTIONS=G,exports.CLIENT_STORAGE_PREFIX=z,exports.IWalletKit=T,exports.IWalletKitEngine=A,exports.IWalletKitEvents=$,exports.PROTOCOL=P,exports.PROTOCOL_VERSION=X,exports.REQUEST_CONTEXT=U,exports.WalletKit=ne,exports.default=v;
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../../node_modules/events/events.js","../src/constants/client.ts","../src/constants/request.ts","../src/types/client.ts","../src/types/engine.ts","../src/controllers/engine.ts","../src/utils/notifications.ts","../src/client.ts","../src/index.ts"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","export const PROTOCOL = \"wc\";\nexport const PROTOCOL_VERSION = 2;\nexport const CLIENT_CONTEXT = \"WalletKit\";\n\nexport const CLIENT_STORAGE_PREFIX = `${PROTOCOL}@${PROTOCOL_VERSION}:${CLIENT_CONTEXT}:`;\n\nexport const CLIENT_STORAGE_OPTIONS = {\n database: \":memory:\",\n};\n","export const REQUEST_CONTEXT = \"request\";\n","import EventEmmiter, { EventEmitter } from \"events\";\nimport { ICore, CoreTypes, SignClientTypes } from \"@walletconnect/types\";\nimport { IWalletKitEngine } from \"./engine\";\nimport { Logger } from \"@walletconnect/logger\";\nimport { JsonRpcPayload } from \"@walletconnect/jsonrpc-utils\";\n\nexport declare namespace WalletKitTypes {\n type Event =\n | \"session_proposal\"\n | \"session_request\"\n | \"session_delete\"\n | \"proposal_expire\"\n | \"session_request_expire\"\n | \"session_authenticate\";\n\n interface BaseEventArgs<T = unknown> {\n id: number;\n topic: string;\n params: T;\n }\n\n type SessionRequest = SignClientTypes.EventArguments[\"session_request\"];\n\n type SessionProposal = SignClientTypes.EventArguments[\"session_proposal\"];\n\n type SessionDelete = Omit<BaseEventArgs, \"params\">;\n\n type ProposalExpire = { id: number };\n\n type SessionRequestExpire = { id: number };\n\n type SessionAuthenticate = SignClientTypes.EventArguments[\"session_authenticate\"];\n\n type SignConfig = SignClientTypes.Options[\"signConfig\"];\n\n interface EventArguments {\n session_proposal: SessionProposal;\n session_request: SessionRequest;\n session_delete: Omit<BaseEventArgs, \"params\">;\n proposal_expire: ProposalExpire;\n session_request_expire: SessionRequestExpire;\n session_authenticate: SessionAuthenticate;\n }\n\n interface Options {\n core: ICore;\n metadata: Metadata;\n name?: string;\n signConfig?: SignConfig;\n }\n\n type Metadata = CoreTypes.Metadata;\n\n interface INotifications {\n decryptMessage: (params: {\n topic: string;\n encryptedMessage: string;\n storageOptions?: CoreTypes.Options[\"storageOptions\"];\n storage?: CoreTypes.Options[\"storage\"];\n }) => Promise<JsonRpcPayload>;\n getMetadata: (params: {\n topic: string;\n storageOptions?: CoreTypes.Options[\"storageOptions\"];\n storage?: CoreTypes.Options[\"storage\"];\n }) => Promise<CoreTypes.Metadata>;\n }\n}\n\nexport abstract class IWalletKitEvents extends EventEmmiter {\n constructor() {\n super();\n }\n\n public abstract emit: <E extends WalletKitTypes.Event>(\n event: E,\n args: WalletKitTypes.EventArguments[E],\n ) => boolean;\n\n public abstract on: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => any,\n ) => this;\n\n public abstract once: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => any,\n ) => this;\n\n public abstract off: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => any,\n ) => this;\n\n public abstract removeListener: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => any,\n ) => this;\n}\n\nexport abstract class IWalletKit {\n public abstract readonly name: string;\n public abstract engine: IWalletKitEngine;\n public abstract events: EventEmitter;\n public abstract logger: Logger;\n public abstract core: ICore;\n public abstract metadata: WalletKitTypes.Metadata;\n public abstract signConfig?: WalletKitTypes.SignConfig;\n\n constructor(public opts: WalletKitTypes.Options) {}\n\n // ---------- Public Methods ----------------------------------------------- //\n\n public abstract pair: IWalletKitEngine[\"pair\"];\n\n // sign //\n public abstract approveSession: IWalletKitEngine[\"approveSession\"];\n public abstract rejectSession: IWalletKitEngine[\"rejectSession\"];\n public abstract updateSession: IWalletKitEngine[\"updateSession\"];\n public abstract extendSession: IWalletKitEngine[\"extendSession\"];\n public abstract respondSessionRequest: IWalletKitEngine[\"respondSessionRequest\"];\n public abstract disconnectSession: IWalletKitEngine[\"disconnectSession\"];\n public abstract emitSessionEvent: IWalletKitEngine[\"emitSessionEvent\"];\n public abstract getActiveSessions: IWalletKitEngine[\"getActiveSessions\"];\n public abstract getPendingSessionProposals: IWalletKitEngine[\"getPendingSessionProposals\"];\n public abstract getPendingSessionRequests: IWalletKitEngine[\"getPendingSessionRequests\"];\n // push\n public abstract registerDeviceToken: IWalletKitEngine[\"registerDeviceToken\"];\n // multi chain auth //\n public abstract approveSessionAuthenticate: IWalletKitEngine[\"approveSessionAuthenticate\"];\n public abstract formatAuthMessage: IWalletKitEngine[\"formatAuthMessage\"];\n public abstract rejectSessionAuthenticate: IWalletKitEngine[\"rejectSessionAuthenticate\"];\n\n // ---------- Event Handlers ----------------------------------------------- //\n public abstract on: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n\n public abstract once: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n\n public abstract off: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n\n public abstract removeListener: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n}\n","import { ErrorResponse, JsonRpcResponse } from \"@walletconnect/jsonrpc-utils\";\nimport {\n ISignClient,\n PendingRequestTypes,\n ProposalTypes,\n SessionTypes,\n EchoClientTypes,\n AuthTypes,\n} from \"@walletconnect/types\";\nimport { IWalletKit, WalletKitTypes } from \"./client\";\nimport EventEmitter from \"events\";\n\nexport abstract class IWalletKitEngine {\n public abstract signClient: ISignClient;\n\n constructor(public client: IWalletKit) {}\n // ---------- Public Methods ------------------------------------------------- //\n public abstract init(): Promise<void>;\n\n public abstract pair(params: { uri: string; activatePairing?: boolean }): Promise<void>;\n\n // ---------- Sign ------------------------------------------------- //\n // approve a session proposal (SIGN)\n public abstract approveSession(params: {\n id: number;\n namespaces: Record<string, SessionTypes.Namespace>;\n sessionProperties?: ProposalTypes.SessionProperties;\n sessionConfig?: SessionTypes.SessionConfig;\n relayProtocol?: string;\n }): Promise<SessionTypes.Struct>;\n\n // reject a session proposal (SIGN)\n public abstract rejectSession(params: {\n // proposerPublicKey: string;\n id: number;\n reason: ErrorResponse;\n }): Promise<void>;\n\n // update session namespaces (SIGN)\n public abstract updateSession(params: {\n topic: string;\n namespaces: SessionTypes.Namespaces;\n }): Promise<{ acknowledged: () => Promise<void> }>;\n\n // update session expiry (SIGN)\n public abstract extendSession(params: {\n topic: string;\n }): Promise<{ acknowledged: () => Promise<void> }>;\n\n // respond JSON-RPC request (SIGN)\n public abstract respondSessionRequest(params: {\n topic: string;\n response: JsonRpcResponse;\n }): Promise<void>;\n\n // emit session events (SIGN)\n public abstract emitSessionEvent(params: {\n topic: string;\n event: any; //SessionEvent;\n chainId: string;\n }): Promise<void>;\n\n // disconnect a session (SIGN)\n public abstract disconnectSession(params: {\n topic: string;\n reason: ErrorResponse;\n }): Promise<void>;\n\n // query all active sessions (SIGN)\n public abstract getActiveSessions(): Record<string, SessionTypes.Struct>;\n\n // query all pending session requests (SIGN)\n public abstract getPendingSessionProposals(): Record<number, ProposalTypes.Struct>;\n\n // query all pending session requests (SIGN)\n public abstract getPendingSessionRequests(): PendingRequestTypes.Struct[];\n\n // ---------- Multi chain Auth ------------------------------------------------- //\n\n public abstract approveSessionAuthenticate(\n params: AuthTypes.ApproveSessionAuthenticateParams,\n ): Promise<{ session: SessionTypes.Struct | undefined }>;\n\n public abstract formatAuthMessage: (params: {\n request: AuthTypes.BaseAuthRequestParams;\n iss: string;\n }) => string;\n\n public abstract rejectSessionAuthenticate(params: {\n id: number;\n reason: ErrorResponse;\n }): Promise<void>;\n\n // ---------- Push ------------------------------------------------- //\n public abstract registerDeviceToken(\n params: EchoClientTypes.RegisterDeviceTokenParams,\n ): Promise<void>;\n\n // ---------- Event Handlers ----------------------------------------------- //\n public abstract on: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n\n public abstract once: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n\n public abstract off: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n\n public abstract removeListener: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n}\n","import { SignClient } from \"@walletconnect/sign-client\";\nimport { ISignClient, SessionTypes } from \"@walletconnect/types\";\nimport { IWalletKitEngine, WalletKitTypes } from \"../types\";\n\nexport class Engine extends IWalletKitEngine {\n public signClient: ISignClient;\n\n constructor(client: IWalletKitEngine[\"client\"]) {\n super(client);\n // initialized in init()\n this.signClient = {} as any;\n }\n\n public init = async () => {\n this.signClient = await SignClient.init({\n core: this.client.core,\n metadata: this.client.metadata,\n signConfig: this.client.signConfig,\n });\n };\n\n public pair: IWalletKitEngine[\"pair\"] = async (params) => {\n await this.client.core.pairing.pair(params);\n };\n\n // Sign //\n public approveSession: IWalletKitEngine[\"approveSession\"] = async (sessionProposal) => {\n const { topic, acknowledged } = await this.signClient.approve({\n ...sessionProposal,\n id: sessionProposal.id,\n namespaces: sessionProposal.namespaces,\n sessionProperties: sessionProposal.sessionProperties,\n sessionConfig: sessionProposal.sessionConfig,\n });\n await acknowledged();\n return this.signClient.session.get(topic);\n };\n\n public rejectSession: IWalletKitEngine[\"rejectSession\"] = async (params) => {\n return await this.signClient.reject(params);\n };\n\n public updateSession: IWalletKitEngine[\"updateSession\"] = async (params) => {\n return await this.signClient.update(params);\n };\n\n public extendSession: IWalletKitEngine[\"extendSession\"] = async (params) => {\n return await this.signClient.extend(params);\n };\n\n public respondSessionRequest: IWalletKitEngine[\"respondSessionRequest\"] = async (params) => {\n const result = await this.signClient.respond(params);\n return result;\n };\n\n public disconnectSession: IWalletKitEngine[\"disconnectSession\"] = async (params) => {\n return await this.signClient.disconnect(params);\n };\n\n public emitSessionEvent: IWalletKitEngine[\"emitSessionEvent\"] = async (params) => {\n return await this.signClient.emit(params);\n };\n\n public getActiveSessions: IWalletKitEngine[\"getActiveSessions\"] = () => {\n const sessions = this.signClient.session.getAll();\n return sessions.reduce((sessions: Record<string, SessionTypes.Struct>, session) => {\n sessions[session.topic] = session;\n return sessions;\n }, {});\n };\n\n public getPendingSessionProposals: IWalletKitEngine[\"getPendingSessionProposals\"] = () => {\n return this.signClient.proposal.getAll();\n };\n\n public getPendingSessionRequests: IWalletKitEngine[\"getPendingSessionRequests\"] = () => {\n return this.signClient.getPendingSessionRequests();\n };\n\n // Multi chain Auth //\n public approveSessionAuthenticate: IWalletKitEngine[\"approveSessionAuthenticate\"] = async (\n params,\n ) => {\n return await this.signClient.approveSessionAuthenticate(params);\n };\n\n public rejectSessionAuthenticate: IWalletKitEngine[\"rejectSessionAuthenticate\"] = async (\n params,\n ) => {\n return await this.signClient.rejectSessionAuthenticate(params);\n };\n\n public formatAuthMessage: IWalletKitEngine[\"formatAuthMessage\"] = (params) => {\n return this.signClient.formatAuthMessage(params);\n };\n\n // Push //\n public registerDeviceToken: IWalletKitEngine[\"registerDeviceToken\"] = (params) => {\n return this.client.core.echoClient.registerDeviceToken(params);\n };\n\n // ---------- public events ----------------------------------------------- //\n public on: IWalletKitEngine[\"on\"] = (name, listener) => {\n this.setEvent(name, \"off\");\n this.setEvent(name, \"on\");\n return this.client.events.on(name, listener);\n };\n\n public once: IWalletKitEngine[\"once\"] = (name, listener) => {\n this.setEvent(name, \"off\");\n this.setEvent(name, \"once\");\n return this.client.events.once(name, listener);\n };\n\n public off: IWalletKitEngine[\"off\"] = (name, listener) => {\n this.setEvent(name, \"off\");\n return this.client.events.off(name, listener);\n };\n\n public removeListener: IWalletKitEngine[\"removeListener\"] = (name, listener) => {\n this.setEvent(name, \"removeListener\");\n return this.client.events.removeListener(name, listener);\n };\n\n // ---------- Private ----------------------------------------------- //\n\n private onSessionRequest = (event: WalletKitTypes.SessionRequest) => {\n this.client.events.emit(\"session_request\", event);\n };\n\n private onSessionProposal = (event: WalletKitTypes.SessionProposal) => {\n this.client.events.emit(\"session_proposal\", event);\n };\n\n private onSessionDelete = (event: WalletKitTypes.SessionDelete) => {\n this.client.events.emit(\"session_delete\", event);\n };\n\n private onProposalExpire = (event: WalletKitTypes.ProposalExpire) => {\n this.client.events.emit(\"proposal_expire\", event);\n };\n\n private onSessionRequestExpire = (event: WalletKitTypes.SessionRequestExpire) => {\n this.client.events.emit(\"session_request_expire\", event);\n };\n\n private onSessionRequestAuthenticate = (event: WalletKitTypes.SessionAuthenticate) => {\n this.client.events.emit(\"session_authenticate\", event);\n };\n\n private setEvent = (\n event: WalletKitTypes.Event,\n action: \"on\" | \"off\" | \"once\" | \"removeListener\",\n ) => {\n switch (event) {\n case \"session_request\":\n this.signClient.events[action](\"session_request\", this.onSessionRequest);\n break;\n case \"session_proposal\":\n this.signClient.events[action](\"session_proposal\", this.onSessionProposal);\n break;\n case \"session_delete\":\n this.signClient.events[action](\"session_delete\", this.onSessionDelete);\n break;\n case \"proposal_expire\":\n this.signClient.events[action](\"proposal_expire\", this.onProposalExpire);\n break;\n case \"session_request_expire\":\n this.signClient.events[action](\"session_request_expire\", this.onSessionRequestExpire);\n break;\n case \"session_authenticate\":\n this.signClient.events[action](\"session_authenticate\", this.onSessionRequestAuthenticate);\n break;\n }\n };\n}\n","import { Core } from \"@walletconnect/core\";\nimport { WalletKitTypes } from \"../types\";\nimport { SessionStore } from \"@walletconnect/sign-client\";\n\nexport const Notifications: WalletKitTypes.INotifications = {\n decryptMessage: async (params) => {\n const instance = {\n core: new Core({\n storageOptions: params.storageOptions,\n storage: params.storage,\n }),\n } as any;\n await instance.core.crypto.init();\n const decoded = instance.core.crypto.decode(params.topic, params.encryptedMessage);\n instance.core = null;\n return decoded;\n },\n getMetadata: async (params) => {\n const instances = {\n core: new Core({\n storageOptions: params.storageOptions,\n storage: params.storage,\n }),\n sessionStore: null,\n } as any;\n instances.sessionStore = new SessionStore(instances.core, instances.core.logger);\n await instances.sessionStore.init();\n const session = instances.sessionStore.get(params.topic);\n const metadata = session?.peer.metadata;\n instances.core = null;\n instances.sessionStore = null;\n return metadata;\n },\n};\n","import EventEmitter from \"events\";\nimport { CLIENT_CONTEXT } from \"./constants\";\nimport { Engine } from \"./controllers\";\nimport { IWalletKit, WalletKitTypes } from \"./types\";\nimport { Notifications } from \"./utils\";\n\nexport class WalletKit extends IWalletKit {\n public name: IWalletKit[\"name\"];\n public core: IWalletKit[\"core\"];\n public logger: IWalletKit[\"logger\"];\n public events: IWalletKit[\"events\"] = new EventEmitter();\n public engine: IWalletKit[\"engine\"];\n public metadata: IWalletKit[\"metadata\"];\n public static notifications: WalletKitTypes.INotifications = Notifications;\n public signConfig: IWalletKit[\"signConfig\"];\n\n static async init(opts: WalletKitTypes.Options) {\n const client = new WalletKit(opts);\n await client.initialize();\n\n return client;\n }\n\n constructor(opts: WalletKitTypes.Options) {\n super(opts);\n this.metadata = opts.metadata;\n this.name = opts.name || CLIENT_CONTEXT;\n this.signConfig = opts.signConfig;\n this.core = opts.core;\n this.logger = this.core.logger;\n this.engine = new Engine(this);\n }\n\n // ---------- Events ----------------------------------------------- //\n\n public on: IWalletKit[\"on\"] = (name, listener) => {\n return this.engine.on(name, listener);\n };\n\n public once: IWalletKit[\"once\"] = (name, listener) => {\n return this.engine.once(name, listener);\n };\n\n public off: IWalletKit[\"off\"] = (name, listener) => {\n return this.engine.off(name, listener);\n };\n\n public removeListener: IWalletKit[\"removeListener\"] = (name, listener) => {\n return this.engine.removeListener(name, listener);\n };\n\n // ---------- Engine ----------------------------------------------- //\n\n public pair: IWalletKit[\"pair\"] = async (params) => {\n try {\n return await this.engine.pair(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public approveSession: IWalletKit[\"approveSession\"] = async (params) => {\n try {\n return await this.engine.approveSession(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public rejectSession: IWalletKit[\"rejectSession\"] = async (params) => {\n try {\n return await this.engine.rejectSession(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public updateSession: IWalletKit[\"updateSession\"] = async (params) => {\n try {\n return await this.engine.updateSession(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public extendSession: IWalletKit[\"extendSession\"] = async (params) => {\n try {\n return await this.engine.extendSession(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public respondSessionRequest: IWalletKit[\"respondSessionRequest\"] = async (params) => {\n try {\n return await this.engine.respondSessionRequest(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public disconnectSession: IWalletKit[\"disconnectSession\"] = async (params) => {\n try {\n return await this.engine.disconnectSession(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public emitSessionEvent: IWalletKit[\"emitSessionEvent\"] = async (params) => {\n try {\n return await this.engine.emitSessionEvent(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public getActiveSessions: IWalletKit[\"getActiveSessions\"] = () => {\n try {\n return this.engine.getActiveSessions();\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public getPendingSessionProposals: IWalletKit[\"getPendingSessionProposals\"] = () => {\n try {\n return this.engine.getPendingSessionProposals();\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public getPendingSessionRequests: IWalletKit[\"getPendingSessionRequests\"] = () => {\n try {\n return this.engine.getPendingSessionRequests();\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public registerDeviceToken: IWalletKit[\"registerDeviceToken\"] = (params) => {\n try {\n return this.engine.registerDeviceToken(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public approveSessionAuthenticate: IWalletKit[\"approveSessionAuthenticate\"] = (params) => {\n try {\n return this.engine.approveSessionAuthenticate(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public rejectSessionAuthenticate: IWalletKit[\"rejectSessionAuthenticate\"] = (params) => {\n try {\n return this.engine.rejectSessionAuthenticate(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public formatAuthMessage: IWalletKit[\"formatAuthMessage\"] = (params) => {\n try {\n return this.engine.formatAuthMessage(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n // ---------- Private ----------------------------------------------- //\n\n private async initialize() {\n this.logger.trace(`Initialized`);\n try {\n await this.engine.init();\n this.logger.info(`WalletKit Initialization Success`);\n } catch (error: any) {\n this.logger.info(`WalletKit Initialization Failure`);\n this.logger.error(error.message);\n throw error;\n }\n }\n}\n","import { WalletKit as Client } from \"./client\";\n\nexport * from \"./constants\";\nexport * from \"./types\";\n\nexport const WalletKit = Client;\nexport default Client;\n"],"names":["eventsModule","events","EventEmmiter","opts","client","IWalletKitEngine","SignClient","params","sessionProposal","topic","acknowledged","__spreadProps","__spreadValues","sessions","session","name","listener","event","action","instance","Core","decoded","instances","SessionStore","metadata","_WalletKit","IWalletKit","EventEmitter","error","CLIENT_CONTEXT","Engine","WalletKit","Notifications","Client"],"mappings":";;;;;;;;;AAuBA,IAAI,CAAC,GAAG,OAAO,OAAO,KAAK,QAAQ,GAAG,OAAO,GAAG,KAAI;AACpD,IAAI,YAAY,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,UAAU;AACrD,IAAI,CAAC,CAAC,KAAK;AACX,IAAI,SAAS,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;AAClD,IAAI,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACjE,IAAG;AACH;AACA,IAAI,eAAc;AAClB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,EAAE;AAC1C,EAAE,cAAc,GAAG,CAAC,CAAC,QAAO;AAC5B,CAAC,MAAM,IAAI,MAAM,CAAC,qBAAqB,EAAE;AACzC,EAAE,cAAc,GAAG,SAAS,cAAc,CAAC,MAAM,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC;AAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;AACpD,GAAG,CAAC;AACJ,CAAC,MAAM;AACP,EAAE,cAAc,GAAG,SAAS,cAAc,CAAC,MAAM,EAAE;AACnD,IAAI,OAAO,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC9C,GAAG,CAAC;AACJ,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,OAAO,EAAE;AACrC,EAAE,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrD,CAAC;AACD;AACA,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,IAAI,SAAS,WAAW,CAAC,KAAK,EAAE;AAC9D,EAAE,OAAO,KAAK,KAAK,KAAK,CAAC;AACzB,EAAC;AACD;AACA,SAAS,YAAY,GAAG;AACxB,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AACDA,MAAc,CAAA,OAAA,GAAG,YAAY,CAAC;AACXC,cAAA,CAAA,IAAA,GAAG,KAAK;AAC3B;AACA;AACA,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC;AACA,YAAY,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC;AAC3C,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC;AACxC,YAAY,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC;AACjD;AACA;AACA;AACA,IAAI,mBAAmB,GAAG,EAAE,CAAC;AAC7B;AACA,SAAS,aAAa,CAAC,QAAQ,EAAE;AACjC,EAAE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACtC,IAAI,MAAM,IAAI,SAAS,CAAC,kEAAkE,GAAG,OAAO,QAAQ,CAAC,CAAC;AAC9G,GAAG;AACH,CAAC;AACD;AACA,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,qBAAqB,EAAE;AAC3D,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,GAAG,EAAE,WAAW;AAClB,IAAI,OAAO,mBAAmB,CAAC;AAC/B,GAAG;AACH,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE;AACrB,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;AAChE,MAAM,MAAM,IAAI,UAAU,CAAC,iGAAiG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAC1I,KAAK;AACL,IAAI,mBAAmB,GAAG,GAAG,CAAC;AAC9B,GAAG;AACH,CAAC,CAAC,CAAC;AACH;AACA,YAAY,CAAC,IAAI,GAAG,WAAW;AAC/B;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;AAChC,MAAM,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;AAC5D,IAAI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,SAAS,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA,YAAY,CAAC,SAAS,CAAC,eAAe,GAAG,SAAS,eAAe,CAAC,CAAC,EAAE;AACrE,EAAE,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;AACxD,IAAI,MAAM,IAAI,UAAU,CAAC,+EAA+E,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACpH,GAAG;AACH,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACzB,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,EAAE,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;AACtC,IAAI,OAAO,YAAY,CAAC,mBAAmB,CAAC;AAC5C,EAAE,OAAO,IAAI,CAAC,aAAa,CAAC;AAC5B,CAAC;AACD;AACA,YAAY,CAAC,SAAS,CAAC,eAAe,GAAG,SAAS,eAAe,GAAG;AACpE,EAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC;AACF;AACA,YAAY,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,CAAC,IAAI,EAAE;AAClD,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,EAAE,IAAI,OAAO,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC;AACnC;AACA,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAC5B,EAAE,IAAI,MAAM,KAAK,SAAS;AAC1B,IAAI,OAAO,IAAI,OAAO,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;AACtD,OAAO,IAAI,CAAC,OAAO;AACnB,IAAI,OAAO,KAAK,CAAC;AACjB;AACA;AACA,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;AACvB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,IAAI,IAAI,EAAE,YAAY,KAAK,EAAE;AAC7B;AACA;AACA,MAAM,MAAM,EAAE,CAAC;AACf,KAAK;AACL;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,kBAAkB,IAAI,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC,OAAO,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;AAClF,IAAI,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,MAAM,GAAG,CAAC;AACd,GAAG;AACH;AACA,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7B;AACA,EAAE,IAAI,OAAO,KAAK,SAAS;AAC3B,IAAI,OAAO,KAAK,CAAC;AACjB;AACA,EAAE,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACrC,IAAI,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,GAAG,MAAM;AACT,IAAI,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;AAC7B,IAAI,IAAI,SAAS,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC7C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC;AAChC,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA,SAAS,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;AACvD,EAAE,IAAI,CAAC,CAAC;AACR,EAAE,IAAI,MAAM,CAAC;AACb,EAAE,IAAI,QAAQ,CAAC;AACf;AACA,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC1B;AACA,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;AAC1B,EAAE,IAAI,MAAM,KAAK,SAAS,EAAE;AAC5B,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClD,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;AAC5B,GAAG,MAAM;AACT;AACA;AACA,IAAI,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE;AAC1C,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI;AACrC,kBAAkB,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;AACpE;AACA;AACA;AACA,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B,KAAK;AACL,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC9B;AACA,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;AACvC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC;AAC1B,GAAG,MAAM;AACT,IAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACxC;AACA,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;AAC7B,QAAQ,OAAO,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC9D;AACA,KAAK,MAAM,IAAI,OAAO,EAAE;AACxB,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,KAAK,MAAM;AACX,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,KAAK;AACL;AACA;AACA,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC1D,MAAM,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;AAC7B;AACA;AACA,MAAM,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,8CAA8C;AACtE,0BAA0B,QAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa;AAC9E,0BAA0B,0CAA0C;AACpE,0BAA0B,gBAAgB,CAAC,CAAC;AAC5C,MAAM,CAAC,CAAC,IAAI,GAAG,6BAA6B,CAAC;AAC7C,MAAM,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC;AACzB,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,MAAM,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;AAChC,MAAM,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC5B,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD;AACA,YAAY,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE;AAC1E,EAAE,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC,CAAC;AACF;AACA,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC;AAC/D;AACA,YAAY,CAAC,SAAS,CAAC,eAAe;AACtC,IAAI,SAAS,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE;AAC7C,MAAM,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtD,KAAK,CAAC;AACN;AACA,SAAS,WAAW,GAAG;AACvB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACvD,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;AAC9B,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7C,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACvD,GAAG;AACH,CAAC;AACD;AACA,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC3C,EAAE,IAAI,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAClG,EAAE,IAAI,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,EAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC9B,EAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC;AACzB,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC;AACD;AACA,YAAY,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE;AAC5D,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC1B,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AACjD,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA,YAAY,CAAC,SAAS,CAAC,mBAAmB;AAC1C,IAAI,SAAS,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE;AACjD,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAClE,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,CAAC;AACN;AACA;AACA,YAAY,CAAC,SAAS,CAAC,cAAc;AACrC,IAAI,SAAS,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;AAC5C,MAAM,IAAI,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,gBAAgB,CAAC;AACtD;AACA,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC9B;AACA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAC5B,MAAM,IAAI,MAAM,KAAK,SAAS;AAC9B,QAAQ,OAAO,IAAI,CAAC;AACpB;AACA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,IAAI,IAAI,KAAK,SAAS;AAC5B,QAAQ,OAAO,IAAI,CAAC;AACpB;AACA,MAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC3D,QAAQ,IAAI,EAAE,IAAI,CAAC,YAAY,KAAK,CAAC;AACrC,UAAU,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7C,aAAa;AACb,UAAU,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,UAAU,IAAI,MAAM,CAAC,cAAc;AACnC,YAAY,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;AACzE,SAAS;AACT,OAAO,MAAM,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AAC7C,QAAQ,QAAQ,GAAG,CAAC,CAAC,CAAC;AACtB;AACA,QAAQ,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACrE,YAAY,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChD,YAAY,QAAQ,GAAG,CAAC,CAAC;AACzB,YAAY,MAAM;AAClB,WAAW;AACX,SAAS;AACT;AACA,QAAQ,IAAI,QAAQ,GAAG,CAAC;AACxB,UAAU,OAAO,IAAI,CAAC;AACtB;AACA,QAAQ,IAAI,QAAQ,KAAK,CAAC;AAC1B,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;AACvB,aAAa;AACb,UAAU,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACpC,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAC7B,UAAU,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC;AACA,QAAQ,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;AAC/C,UAAU,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,QAAQ,CAAC,CAAC;AAC1E,OAAO;AACP;AACA,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,CAAC;AACN;AACA,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC;AACnE;AACA,YAAY,CAAC,SAAS,CAAC,kBAAkB;AACzC,IAAI,SAAS,kBAAkB,CAAC,IAAI,EAAE;AACtC,MAAM,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/B;AACA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAC5B,MAAM,IAAI,MAAM,KAAK,SAAS;AAC9B,QAAQ,OAAO,IAAI,CAAC;AACpB;AACA;AACA,MAAM,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE;AAC/C,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,UAAU,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7C,UAAU,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAChC,SAAS,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AAC/C,UAAU,IAAI,EAAE,IAAI,CAAC,YAAY,KAAK,CAAC;AACvC,YAAY,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/C;AACA,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AAChC,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP;AACA;AACA,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,QAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC,QAAQ,IAAI,GAAG,CAAC;AAChB,QAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC1C,UAAU,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,UAAU,IAAI,GAAG,KAAK,gBAAgB,EAAE,SAAS;AACjD,UAAU,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACvC,SAAS;AACT,QAAQ,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAC9B,QAAQ,OAAO,IAAI,CAAC;AACpB,OAAO;AACP;AACA,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B;AACA,MAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;AAC3C,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC7C,OAAO,MAAM,IAAI,SAAS,KAAK,SAAS,EAAE;AAC1C;AACA,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACpD,UAAU,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,SAAS;AACT,OAAO;AACP;AACA,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,CAAC;AACN;AACA,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AAC1C,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;AAC9B;AACA,EAAE,IAAI,MAAM,KAAK,SAAS;AAC1B,IAAI,OAAO,EAAE,CAAC;AACd;AACA,EAAE,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAChC,EAAE,IAAI,UAAU,KAAK,SAAS;AAC9B,IAAI,OAAO,EAAE,CAAC;AACd;AACA,EAAE,IAAI,OAAO,UAAU,KAAK,UAAU;AACtC,IAAI,OAAO,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACvE;AACA,EAAE,OAAO,MAAM;AACf,IAAI,eAAe,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5E,CAAC;AACD;AACA,YAAY,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,SAAS,CAAC,IAAI,EAAE;AAC5D,EAAE,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC;AACF;AACA,YAAY,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,CAAC,IAAI,EAAE;AAClE,EAAE,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC,CAAC;AACF;AACA,YAAY,CAAC,aAAa,GAAG,SAAS,OAAO,EAAE,IAAI,EAAE;AACrD,EAAE,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,EAAE;AACnD,IAAI,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACvC,GAAG,MAAM;AACT,IAAI,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7C,GAAG;AACH,CAAC,CAAC;AACF;AACA,YAAY,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC;AACrD,SAAS,aAAa,CAAC,IAAI,EAAE;AAC7B,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAC5B;AACA,EAAE,IAAI,MAAM,KAAK,SAAS,EAAE;AAC5B,IAAI,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC;AACA,IAAI,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;AAC1C,MAAM,OAAO,CAAC,CAAC;AACf,KAAK,MAAM,IAAI,UAAU,KAAK,SAAS,EAAE;AACzC,MAAM,OAAO,UAAU,CAAC,MAAM,CAAC;AAC/B,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC;AACX,CAAC;AACD;AACA,YAAY,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,GAAG;AAC1D,EAAE,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AACnE,CAAC,CAAC;AACF;AACA,SAAS,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE;AAC5B,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACrB,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;AAChC,EAAE,OAAO,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE;AACzC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAClC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AACb,CAAC;AACD;AACA,SAAS,eAAe,CAAC,GAAG,EAAE;AAC9B,EAAE,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACvC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD;AACA,SAAS,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;AAC7B,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE;AAChD,IAAI,SAAS,aAAa,CAAC,GAAG,EAAE;AAChC,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7C,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;AAClB,KAAK;AACL;AACA,IAAI,SAAS,QAAQ,GAAG;AACxB,MAAM,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU,EAAE;AACxD,QAAQ,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACvD,OAAO;AACP,MAAM,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACxC,KACA;AACA,IAAI,8BAA8B,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5E,IAAI,IAAI,IAAI,KAAK,OAAO,EAAE;AAC1B,MAAM,6BAA6B,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5E,KAAK;AACL,GAAG,CAAC,CAAC;AACL,CAAC;AACD;AACA,SAAS,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;AAChE,EAAE,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,UAAU,EAAE;AACxC,IAAI,8BAA8B,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACrE,GAAG;AACH,CAAC;AACD;AACA,SAAS,8BAA8B,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;AACxE,EAAE,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,UAAU,EAAE;AACxC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE;AACpB,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACnC,KAAK,MAAM;AACX,MAAM,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjC,KAAK;AACL,GAAG,MAAM,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,UAAU,EAAE;AAC7D;AACA;AACA,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,YAAY,CAAC,GAAG,EAAE;AAC9D;AACA;AACA,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE;AACtB,QAAQ,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACxD,OAAO;AACP,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;AACpB,KAAK,CAAC,CAAC;AACP,GAAG,MAAM;AACT,IAAI,MAAM,IAAI,SAAS,CAAC,qEAAqE,GAAG,OAAO,OAAO,CAAC,CAAC;AAChH,GAAG;AACH;;AChfO,MAAM,QAAW,CAAA,IAAA,CACX,gBAAmB,CAAA,CAAA,CACnB,cAAiB,CAAA,WAAA,CAEjB,qBAAwB,CAAA,CAAA,EAAG,QAAgC,CAAA,GAAA,EAAA,cAAA,CAAA,CAAA,CAAA,CAE3D,sBAAyB,CAAA,CACpC,SAAU,UACZ;;ACRO,MAAM,eAAkB,CAAA;;ACoET,MAAA,gBAAA,SAAyBC,cAAa,CAC1D,WAAA,EAAc,CACZ,KAAM,GACR,CA0BF,CAEO,MAAe,UAAW,CAS/B,WAAA,CAAmBC,EAA8B,CAA9B,IAAA,CAAA,IAAA,CAAAA,EAA+B,CA4CpD;;AC5IO,MAAe,gBAAiB,CAGrC,WAAA,CAAmBC,EAAoB,CAApB,IAAA,CAAA,MAAA,CAAAA,EAAqB,CAuG1C;;6aClHO,MAAM,MAAeC,SAAAA,gBAAiB,CAG3C,WAAA,CAAYD,EAAoC,CAC9C,KAAA,CAAMA,CAAM,CAAA,CAKd,IAAO,CAAA,IAAA,CAAO,SAAY,CACxB,IAAK,CAAA,UAAA,CAAa,MAAME,qBAAAA,CAAW,IAAK,CAAA,CACtC,KAAM,IAAK,CAAA,MAAA,CAAO,IAClB,CAAA,QAAA,CAAU,IAAK,CAAA,MAAA,CAAO,QACtB,CAAA,UAAA,CAAY,IAAK,CAAA,MAAA,CAAO,UAC1B,CAAC,EACH,CAAA,CAEA,KAAO,IAAiC,CAAA,MAAOC,CAAW,EAAA,CACxD,MAAM,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,OAAQ,CAAA,IAAA,CAAKA,CAAM,EAC5C,CAGA,CAAA,IAAA,CAAO,eAAqD,MAAOC,CAAAA,EAAoB,CACrF,KAAM,CAAE,KAAA,CAAAC,CAAO,CAAA,YAAA,CAAAC,CAAa,CAAA,CAAI,MAAM,IAAA,CAAK,UAAW,CAAA,OAAA,CAAQC,EAAAC,CAAA,CAAA,EAAA,CACzDJ,CADyD,CAAA,CAAA,CAE5D,EAAIA,CAAAA,CAAAA,CAAgB,EACpB,CAAA,UAAA,CAAYA,CAAgB,CAAA,UAAA,CAC5B,iBAAmBA,CAAAA,CAAAA,CAAgB,iBACnC,CAAA,aAAA,CAAeA,EAAgB,aACjC,CAAA,CAAC,CACD,CAAA,OAAA,MAAME,CAAa,EAAA,CACZ,IAAK,CAAA,UAAA,CAAW,OAAQ,CAAA,GAAA,CAAID,CAAK,CAC1C,CAEA,CAAA,IAAA,CAAO,cAAmD,MAAOF,CAAAA,EACxD,MAAM,IAAA,CAAK,UAAW,CAAA,MAAA,CAAOA,CAAM,CAAA,CAG5C,IAAO,CAAA,aAAA,CAAmD,MAAOA,CAAAA,EACxD,MAAM,IAAA,CAAK,WAAW,MAAOA,CAAAA,CAAM,CAG5C,CAAA,IAAA,CAAO,aAAmD,CAAA,MAAOA,GACxD,MAAM,IAAA,CAAK,UAAW,CAAA,MAAA,CAAOA,CAAM,CAAA,CAG5C,KAAO,qBAAmE,CAAA,MAAOA,CAChE,EAAA,MAAM,IAAK,CAAA,UAAA,CAAW,OAAQA,CAAAA,CAAM,CAIrD,CAAA,IAAA,CAAO,iBAA2D,CAAA,MAAOA,CAChE,EAAA,MAAM,KAAK,UAAW,CAAA,UAAA,CAAWA,CAAM,CAAA,CAGhD,IAAO,CAAA,gBAAA,CAAyD,MAAOA,CAAAA,EAC9D,MAAM,IAAA,CAAK,UAAW,CAAA,IAAA,CAAKA,CAAM,CAAA,CAG1C,KAAO,iBAA2D,CAAA,IAC/C,IAAK,CAAA,UAAA,CAAW,OAAQ,CAAA,MAAA,EACzB,CAAA,MAAA,CAAO,CAACM,CAAAA,CAA+CC,CACrED,IAAAA,CAAAA,CAASC,CAAQ,CAAA,KAAK,EAAIA,CACnBD,CAAAA,CAAAA,CAAAA,CACN,EAAE,CAGP,CAAA,IAAA,CAAO,0BAA6E,CAAA,IAC3E,IAAK,CAAA,UAAA,CAAW,QAAS,CAAA,MAAA,EAGlC,CAAA,IAAA,CAAO,0BAA2E,IACzE,IAAA,CAAK,UAAW,CAAA,yBAAA,EAIzB,CAAA,IAAA,CAAO,0BAA6E,CAAA,MAClFN,CAEO,EAAA,MAAM,IAAK,CAAA,UAAA,CAAW,0BAA2BA,CAAAA,CAAM,EAGhE,IAAO,CAAA,yBAAA,CAA2E,MAChFA,CAAAA,EAEO,MAAM,IAAA,CAAK,UAAW,CAAA,yBAAA,CAA0BA,CAAM,CAAA,CAG/D,IAAO,CAAA,iBAAA,CAA4DA,CAC1D,EAAA,IAAA,CAAK,WAAW,iBAAkBA,CAAAA,CAAM,CAIjD,CAAA,IAAA,CAAO,mBAAgEA,CAAAA,CAAAA,EAC9D,IAAK,CAAA,MAAA,CAAO,IAAK,CAAA,UAAA,CAAW,mBAAoBA,CAAAA,CAAM,CAI/D,CAAA,IAAA,CAAO,GAA6B,CAACQ,CAAAA,CAAMC,CACzC,IAAA,IAAA,CAAK,QAASD,CAAAA,CAAAA,CAAM,KAAK,CACzB,CAAA,IAAA,CAAK,QAASA,CAAAA,CAAAA,CAAM,IAAI,CAAA,CACjB,KAAK,MAAO,CAAA,MAAA,CAAO,EAAGA,CAAAA,CAAAA,CAAMC,CAAQ,CAAA,CAAA,CAG7C,IAAO,CAAA,IAAA,CAAiC,CAACD,CAAAA,CAAMC,CAC7C,IAAA,IAAA,CAAK,QAASD,CAAAA,CAAAA,CAAM,KAAK,CACzB,CAAA,IAAA,CAAK,QAASA,CAAAA,CAAAA,CAAM,MAAM,CAAA,CACnB,IAAK,CAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAKA,CAAMC,CAAAA,CAAQ,CAG/C,CAAA,CAAA,IAAA,CAAO,IAA+B,CAACD,CAAAA,CAAMC,CAC3C,IAAA,IAAA,CAAK,QAASD,CAAAA,CAAAA,CAAM,KAAK,CAAA,CAClB,IAAK,CAAA,MAAA,CAAO,MAAO,CAAA,GAAA,CAAIA,CAAMC,CAAAA,CAAQ,GAG9C,IAAO,CAAA,cAAA,CAAqD,CAACD,CAAAA,CAAMC,CACjE,IAAA,IAAA,CAAK,QAASD,CAAAA,CAAAA,CAAM,gBAAgB,CAAA,CAC7B,IAAK,CAAA,MAAA,CAAO,MAAO,CAAA,cAAA,CAAeA,EAAMC,CAAQ,CAAA,CAAA,CAKzD,IAAQ,CAAA,gBAAA,CAAoBC,CAAyC,EAAA,CACnE,IAAK,CAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAK,iBAAmBA,CAAAA,CAAK,EAClD,CAAA,CAEA,KAAQ,iBAAqBA,CAAAA,CAAAA,EAA0C,CACrE,IAAA,CAAK,MAAO,CAAA,MAAA,CAAO,IAAK,CAAA,kBAAA,CAAoBA,CAAK,EACnD,CAEA,CAAA,IAAA,CAAQ,eAAmBA,CAAAA,CAAAA,EAAwC,CACjE,IAAK,CAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAK,gBAAkBA,CAAAA,CAAK,EACjD,CAAA,CAEA,IAAQ,CAAA,gBAAA,CAAoBA,CAAyC,EAAA,CACnE,IAAK,CAAA,MAAA,CAAO,OAAO,IAAK,CAAA,iBAAA,CAAmBA,CAAK,EAClD,CAEA,CAAA,IAAA,CAAQ,uBAA0BA,CAA+C,EAAA,CAC/E,IAAK,CAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAK,yBAA0BA,CAAK,EACzD,CAEA,CAAA,IAAA,CAAQ,4BAAgCA,CAAAA,CAAAA,EAA8C,CACpF,IAAA,CAAK,MAAO,CAAA,MAAA,CAAO,IAAK,CAAA,sBAAA,CAAwBA,CAAK,EACvD,EAEA,IAAQ,CAAA,QAAA,CAAW,CACjBA,CAAAA,CACAC,CACG,GAAA,CACH,OAAQD,CAAAA,EACN,IAAK,iBACH,CAAA,IAAA,CAAK,UAAW,CAAA,MAAA,CAAOC,CAAM,CAAE,CAAA,iBAAA,CAAmB,IAAK,CAAA,gBAAgB,CACvE,CAAA,MACF,IAAK,kBAAA,CACH,IAAK,CAAA,UAAA,CAAW,MAAOA,CAAAA,CAAM,CAAE,CAAA,kBAAA,CAAoB,KAAK,iBAAiB,CAAA,CACzE,MACF,IAAK,gBACH,CAAA,IAAA,CAAK,UAAW,CAAA,MAAA,CAAOA,CAAM,CAAA,CAAE,gBAAkB,CAAA,IAAA,CAAK,eAAe,CAAA,CACrE,MACF,IAAK,iBAAA,CACH,IAAK,CAAA,UAAA,CAAW,MAAOA,CAAAA,CAAM,CAAE,CAAA,iBAAA,CAAmB,IAAK,CAAA,gBAAgB,CACvE,CAAA,MACF,IAAK,wBAAA,CACH,KAAK,UAAW,CAAA,MAAA,CAAOA,CAAM,CAAA,CAAE,wBAA0B,CAAA,IAAA,CAAK,sBAAsB,CAAA,CACpF,MACF,IAAK,sBACH,CAAA,IAAA,CAAK,UAAW,CAAA,MAAA,CAAOA,CAAM,CAAE,CAAA,sBAAA,CAAwB,IAAK,CAAA,4BAA4B,CACxF,CAAA,KACJ,CACF,CAAA,CApKE,IAAK,CAAA,UAAA,CAAa,GACpB,CAoKF;;AC3KO,MAAM,aAA+C,CAAA,CAC1D,cAAgB,CAAA,MAAOX,GAAW,CAChC,MAAMY,CAAW,CAAA,CACf,IAAM,CAAA,IAAIC,SAAK,CAAA,CACb,cAAgBb,CAAAA,CAAAA,CAAO,cACvB,CAAA,OAAA,CAASA,CAAO,CAAA,OAClB,CAAC,CACH,CAAA,CACA,MAAMY,CAAAA,CAAS,IAAK,CAAA,MAAA,CAAO,MAC3B,CAAA,MAAME,CAAUF,CAAAA,CAAAA,CAAS,IAAK,CAAA,MAAA,CAAO,OAAOZ,CAAO,CAAA,KAAA,CAAOA,CAAO,CAAA,gBAAgB,CACjF,CAAA,OAAAY,CAAS,CAAA,IAAA,CAAO,IACTE,CAAAA,CACT,CACA,CAAA,WAAA,CAAa,MAAOd,CAAAA,EAAW,CAC7B,MAAMe,CAAAA,CAAY,CAChB,IAAA,CAAM,IAAIF,SAAAA,CAAK,CACb,cAAgBb,CAAAA,CAAAA,CAAO,cACvB,CAAA,OAAA,CAASA,CAAO,CAAA,OAClB,CAAC,CACD,CAAA,YAAA,CAAc,IAChB,CAAA,CACAe,CAAU,CAAA,YAAA,CAAe,IAAIC,uBAAAA,CAAaD,CAAU,CAAA,IAAA,CAAMA,CAAU,CAAA,IAAA,CAAK,MAAM,CAAA,CAC/E,MAAMA,CAAU,CAAA,YAAA,CAAa,IAAK,EAAA,CAClC,MAAMR,CAAAA,CAAUQ,EAAU,YAAa,CAAA,GAAA,CAAIf,CAAO,CAAA,KAAK,CACjDiB,CAAAA,CAAAA,CAAWV,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAS,IAAK,CAAA,QAAA,CAC/B,OAAAQ,CAAAA,CAAU,IAAO,CAAA,IAAA,CACjBA,CAAU,CAAA,YAAA,CAAe,IAClBE,CAAAA,CACT,CACF,CAAA;;AC3BO,MAAMC,CAAAA,CAAN,cAAwBC,UAAW,CAiBxC,WAAA,CAAYvB,CAA8B,CAAA,CACxC,KAAMA,CAAAA,CAAI,EAdZ,IAAO,CAAA,MAAA,CAA+B,IAAIwB,cAAAA,CAyB1C,IAAO,CAAA,EAAA,CAAuB,CAACZ,CAAAA,CAAMC,CAC5B,GAAA,IAAA,CAAK,MAAO,CAAA,EAAA,CAAGD,CAAMC,CAAAA,CAAQ,CAGtC,CAAA,IAAA,CAAO,KAA2B,CAACD,CAAAA,CAAMC,CAChC,GAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAKD,CAAMC,CAAAA,CAAQ,CAGxC,CAAA,IAAA,CAAO,GAAyB,CAAA,CAACD,CAAMC,CAAAA,CAAAA,GAC9B,IAAK,CAAA,MAAA,CAAO,IAAID,CAAMC,CAAAA,CAAQ,CAGvC,CAAA,IAAA,CAAO,cAA+C,CAAA,CAACD,CAAMC,CAAAA,CAAAA,GACpD,IAAK,CAAA,MAAA,CAAO,cAAeD,CAAAA,CAAAA,CAAMC,CAAQ,CAAA,CAKlD,IAAO,CAAA,IAAA,CAA2B,MAAOT,CAAW,EAAA,CAClD,GAAI,CACF,OAAO,MAAM,IAAK,CAAA,MAAA,CAAO,IAAKA,CAAAA,CAAM,CACtC,CAAA,MAASqB,CAAP,CAAA,CACA,MAAK,IAAA,CAAA,MAAA,CAAO,MAAMA,CAAM,CAAA,OAAO,CACzBA,CAAAA,CACR,CACF,CAAA,CAEA,IAAO,CAAA,cAAA,CAA+C,MAAOrB,CAAAA,EAAW,CACtE,GAAI,CACF,OAAO,MAAM,IAAA,CAAK,OAAO,cAAeA,CAAAA,CAAM,CAChD,CAAA,MAASqB,CAAP,CAAA,CACA,MAAK,IAAA,CAAA,MAAA,CAAO,KAAMA,CAAAA,CAAAA,CAAM,OAAO,CAAA,CACzBA,CACR,CACF,CAEA,CAAA,IAAA,CAAO,cAA6C,MAAOrB,CAAAA,EAAW,CACpE,GAAI,CACF,OAAO,MAAM,IAAA,CAAK,MAAO,CAAA,aAAA,CAAcA,CAAM,CAC/C,CAASqB,MAAAA,CAAAA,CAAP,CACA,MAAA,IAAA,CAAK,MAAO,CAAA,KAAA,CAAMA,CAAM,CAAA,OAAO,CACzBA,CAAAA,CACR,CACF,CAAA,CAEA,IAAO,CAAA,aAAA,CAA6C,MAAOrB,CAAAA,EAAW,CACpE,GAAI,CACF,OAAO,MAAM,IAAK,CAAA,MAAA,CAAO,aAAcA,CAAAA,CAAM,CAC/C,CAAA,MAASqB,CAAP,CAAA,CACA,MAAK,IAAA,CAAA,MAAA,CAAO,KAAMA,CAAAA,CAAAA,CAAM,OAAO,CAAA,CACzBA,CACR,CACF,EAEA,IAAO,CAAA,aAAA,CAA6C,MAAOrB,CAAAA,EAAW,CACpE,GAAI,CACF,OAAO,MAAM,IAAA,CAAK,MAAO,CAAA,aAAA,CAAcA,CAAM,CAC/C,CAASqB,MAAAA,CAAAA,CAAP,CACA,MAAK,IAAA,CAAA,MAAA,CAAO,KAAMA,CAAAA,CAAAA,CAAM,OAAO,CAAA,CACzBA,CACR,CACF,CAEA,CAAA,IAAA,CAAO,qBAA6D,CAAA,MAAOrB,CAAW,EAAA,CACpF,GAAI,CACF,OAAO,MAAM,IAAA,CAAK,MAAO,CAAA,qBAAA,CAAsBA,CAAM,CACvD,CAASqB,MAAAA,CAAAA,CAAP,CACA,MAAA,IAAA,CAAK,MAAO,CAAA,KAAA,CAAMA,CAAM,CAAA,OAAO,CACzBA,CAAAA,CACR,CACF,CAEA,CAAA,IAAA,CAAO,iBAAqD,CAAA,MAAOrB,CAAW,EAAA,CAC5E,GAAI,CACF,OAAO,MAAM,IAAK,CAAA,MAAA,CAAO,iBAAkBA,CAAAA,CAAM,CACnD,CAAA,MAASqB,EAAP,CACA,MAAA,IAAA,CAAK,MAAO,CAAA,KAAA,CAAMA,CAAM,CAAA,OAAO,CACzBA,CAAAA,CACR,CACF,CAAA,CAEA,IAAO,CAAA,gBAAA,CAAmD,MAAOrB,CAAAA,EAAW,CAC1E,GAAI,CACF,OAAO,MAAM,IAAK,CAAA,MAAA,CAAO,gBAAiBA,CAAAA,CAAM,CAClD,CAAA,MAASqB,CAAP,CAAA,CACA,MAAK,IAAA,CAAA,MAAA,CAAO,KAAMA,CAAAA,CAAAA,CAAM,OAAO,CAAA,CACzBA,CACR,CACF,CAEA,CAAA,IAAA,CAAO,iBAAqD,CAAA,IAAM,CAChE,GAAI,CACF,OAAO,IAAK,CAAA,MAAA,CAAO,iBAAkB,EACvC,CAASA,MAAAA,CAAAA,CAAP,CACA,MAAK,IAAA,CAAA,MAAA,CAAO,KAAMA,CAAAA,CAAAA,CAAM,OAAO,CAAA,CACzBA,CACR,CACF,CAEA,CAAA,IAAA,CAAO,0BAAuE,CAAA,IAAM,CAClF,GAAI,CACF,OAAO,KAAK,MAAO,CAAA,0BAAA,EACrB,CAAA,MAASA,CAAP,CAAA,CACA,MAAK,IAAA,CAAA,MAAA,CAAO,KAAMA,CAAAA,CAAAA,CAAM,OAAO,CAAA,CACzBA,CACR,CACF,CAEA,CAAA,IAAA,CAAO,0BAAqE,IAAM,CAChF,GAAI,CACF,OAAO,IAAA,CAAK,MAAO,CAAA,yBAAA,EACrB,CAAA,MAASA,CAAP,CAAA,CACA,MAAK,IAAA,CAAA,MAAA,CAAO,KAAMA,CAAAA,CAAAA,CAAM,OAAO,CACzBA,CAAAA,CACR,CACF,CAAA,CAEA,IAAO,CAAA,mBAAA,CAA0DrB,CAAW,EAAA,CAC1E,GAAI,CACF,OAAO,IAAA,CAAK,MAAO,CAAA,mBAAA,CAAoBA,CAAM,CAC/C,OAASqB,CAAP,CAAA,CACA,MAAK,IAAA,CAAA,MAAA,CAAO,KAAMA,CAAAA,CAAAA,CAAM,OAAO,CAAA,CACzBA,CACR,CACF,CAEA,CAAA,IAAA,CAAO,0BAAwErB,CAAAA,CAAAA,EAAW,CACxF,GAAI,CACF,OAAO,IAAA,CAAK,MAAO,CAAA,0BAAA,CAA2BA,CAAM,CACtD,CAASqB,MAAAA,CAAAA,CAAP,CACA,MAAA,IAAA,CAAK,MAAO,CAAA,KAAA,CAAMA,CAAM,CAAA,OAAO,CACzBA,CAAAA,CACR,CACF,CAEA,CAAA,IAAA,CAAO,yBAAsErB,CAAAA,CAAAA,EAAW,CACtF,GAAI,CACF,OAAO,IAAK,CAAA,MAAA,CAAO,yBAA0BA,CAAAA,CAAM,CACrD,CAAA,MAASqB,CAAP,CAAA,CACA,WAAK,MAAO,CAAA,KAAA,CAAMA,CAAM,CAAA,OAAO,CACzBA,CAAAA,CACR,CACF,CAAA,CAEA,IAAO,CAAA,iBAAA,CAAsDrB,CAAW,EAAA,CACtE,GAAI,CACF,OAAO,IAAA,CAAK,OAAO,iBAAkBA,CAAAA,CAAM,CAC7C,CAAA,MAASqB,CAAP,CAAA,CACA,MAAK,IAAA,CAAA,MAAA,CAAO,KAAMA,CAAAA,CAAAA,CAAM,OAAO,CAAA,CACzBA,CACR,CACF,CAjKE,CAAA,IAAA,CAAK,SAAWzB,CAAK,CAAA,QAAA,CACrB,IAAK,CAAA,IAAA,CAAOA,CAAK,CAAA,IAAA,EAAQ0B,cACzB,CAAA,IAAA,CAAK,UAAa1B,CAAAA,CAAAA,CAAK,UACvB,CAAA,IAAA,CAAK,IAAOA,CAAAA,CAAAA,CAAK,IACjB,CAAA,IAAA,CAAK,OAAS,IAAK,CAAA,IAAA,CAAK,MACxB,CAAA,IAAA,CAAK,MAAS,CAAA,IAAI2B,MAAO,CAAA,IAAI,EAC/B,CAfA,aAAa,IAAA,CAAK3B,CAA8B,CAAA,CAC9C,MAAMC,CAAAA,CAAS,IAAIqB,CAAUtB,CAAAA,CAAI,CACjC,CAAA,OAAA,MAAMC,CAAO,CAAA,UAAA,EAENA,CAAAA,CACT,CAyKA,MAAc,UAAa,EAAA,CACzB,IAAK,CAAA,MAAA,CAAO,KAAM,CAAA,aAAa,EAC/B,GAAI,CACF,MAAM,IAAA,CAAK,MAAO,CAAA,IAAA,EAClB,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,kCAAkC,EACrD,CAASwB,MAAAA,CAAAA,CAAP,CACA,MAAA,IAAA,CAAK,OAAO,IAAK,CAAA,kCAAkC,CACnD,CAAA,IAAA,CAAK,MAAO,CAAA,KAAA,CAAMA,CAAM,CAAA,OAAO,CACzBA,CAAAA,CACR,CACF,CACF,CAnMO,CAAA,IAAMG,WAANN,CAAAA,EAAMM,YAOG,aAA+CC,CAAAA,aAAAA;;ACRxD,MAAM,SAAYC,CAAAA;;;;;;;;;;;;;;"}
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../../node_modules/events/events.js","../src/constants/client.ts","../src/constants/request.ts","../src/types/client.ts","../src/types/engine.ts","../src/controllers/engine.ts","../src/utils/notifications.ts","../src/client.ts","../src/index.ts"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","export const PROTOCOL = \"wc\";\nexport const PROTOCOL_VERSION = 2;\nexport const CLIENT_CONTEXT = \"WalletKit\";\n\nexport const CLIENT_STORAGE_PREFIX = `${PROTOCOL}@${PROTOCOL_VERSION}:${CLIENT_CONTEXT}:`;\n\nexport const CLIENT_STORAGE_OPTIONS = {\n database: \":memory:\",\n};\n","export const REQUEST_CONTEXT = \"request\";\n","import EventEmmiter, { EventEmitter } from \"events\";\nimport { ICore, CoreTypes, SignClientTypes } from \"@walletconnect/types\";\nimport { IWalletKitEngine } from \"./engine\";\nimport { Logger } from \"@walletconnect/logger\";\nimport { JsonRpcPayload } from \"@walletconnect/jsonrpc-utils\";\n\nexport declare namespace WalletKitTypes {\n type Event =\n | \"session_proposal\"\n | \"session_request\"\n | \"session_delete\"\n | \"proposal_expire\"\n | \"session_request_expire\"\n | \"session_authenticate\";\n\n interface BaseEventArgs<T = unknown> {\n id: number;\n topic: string;\n params: T;\n }\n\n type SessionRequest = SignClientTypes.EventArguments[\"session_request\"];\n\n type SessionProposal = SignClientTypes.EventArguments[\"session_proposal\"];\n\n type SessionDelete = Omit<BaseEventArgs, \"params\">;\n\n type ProposalExpire = { id: number };\n\n type SessionRequestExpire = { id: number };\n\n type SessionAuthenticate = SignClientTypes.EventArguments[\"session_authenticate\"];\n\n type SignConfig = SignClientTypes.Options[\"signConfig\"];\n\n interface EventArguments {\n session_proposal: SessionProposal;\n session_request: SessionRequest;\n session_delete: Omit<BaseEventArgs, \"params\">;\n proposal_expire: ProposalExpire;\n session_request_expire: SessionRequestExpire;\n session_authenticate: SessionAuthenticate;\n }\n\n interface Options {\n core: ICore;\n metadata: Metadata;\n name?: string;\n signConfig?: SignConfig;\n }\n\n type Metadata = CoreTypes.Metadata;\n\n interface INotifications {\n decryptMessage: (params: {\n topic: string;\n encryptedMessage: string;\n storageOptions?: CoreTypes.Options[\"storageOptions\"];\n storage?: CoreTypes.Options[\"storage\"];\n }) => Promise<JsonRpcPayload>;\n getMetadata: (params: {\n topic: string;\n storageOptions?: CoreTypes.Options[\"storageOptions\"];\n storage?: CoreTypes.Options[\"storage\"];\n }) => Promise<CoreTypes.Metadata>;\n }\n}\n\nexport abstract class IWalletKitEvents extends EventEmmiter {\n constructor() {\n super();\n }\n\n public abstract emit: <E extends WalletKitTypes.Event>(\n event: E,\n args: WalletKitTypes.EventArguments[E],\n ) => boolean;\n\n public abstract on: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => any,\n ) => this;\n\n public abstract once: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => any,\n ) => this;\n\n public abstract off: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => any,\n ) => this;\n\n public abstract removeListener: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => any,\n ) => this;\n}\n\nexport abstract class IWalletKit {\n public abstract readonly name: string;\n public abstract engine: IWalletKitEngine;\n public abstract events: EventEmitter;\n public abstract logger: Logger;\n public abstract core: ICore;\n public abstract metadata: WalletKitTypes.Metadata;\n public abstract signConfig?: WalletKitTypes.SignConfig;\n\n constructor(public opts: WalletKitTypes.Options) {}\n\n // ---------- Public Methods ----------------------------------------------- //\n\n public abstract pair: IWalletKitEngine[\"pair\"];\n\n // sign //\n public abstract approveSession: IWalletKitEngine[\"approveSession\"];\n public abstract rejectSession: IWalletKitEngine[\"rejectSession\"];\n public abstract updateSession: IWalletKitEngine[\"updateSession\"];\n public abstract extendSession: IWalletKitEngine[\"extendSession\"];\n public abstract respondSessionRequest: IWalletKitEngine[\"respondSessionRequest\"];\n public abstract disconnectSession: IWalletKitEngine[\"disconnectSession\"];\n public abstract emitSessionEvent: IWalletKitEngine[\"emitSessionEvent\"];\n public abstract getActiveSessions: IWalletKitEngine[\"getActiveSessions\"];\n public abstract getPendingSessionProposals: IWalletKitEngine[\"getPendingSessionProposals\"];\n public abstract getPendingSessionRequests: IWalletKitEngine[\"getPendingSessionRequests\"];\n // push\n public abstract registerDeviceToken: IWalletKitEngine[\"registerDeviceToken\"];\n // multi chain auth //\n public abstract approveSessionAuthenticate: IWalletKitEngine[\"approveSessionAuthenticate\"];\n public abstract formatAuthMessage: IWalletKitEngine[\"formatAuthMessage\"];\n public abstract rejectSessionAuthenticate: IWalletKitEngine[\"rejectSessionAuthenticate\"];\n\n // ---------- Event Handlers ----------------------------------------------- //\n public abstract on: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n\n public abstract once: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n\n public abstract off: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n\n public abstract removeListener: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n}\n","import { ErrorResponse, JsonRpcResponse } from \"@walletconnect/jsonrpc-utils\";\nimport {\n ISignClient,\n PendingRequestTypes,\n ProposalTypes,\n SessionTypes,\n EchoClientTypes,\n AuthTypes,\n} from \"@walletconnect/types\";\nimport { IWalletKit, WalletKitTypes } from \"./client\";\nimport EventEmitter from \"events\";\n\nexport abstract class IWalletKitEngine {\n public abstract signClient: ISignClient;\n\n constructor(public client: IWalletKit) {}\n // ---------- Public Methods ------------------------------------------------- //\n public abstract init(): Promise<void>;\n\n public abstract pair(params: { uri: string; activatePairing?: boolean }): Promise<void>;\n\n // ---------- Sign ------------------------------------------------- //\n // approve a session proposal (SIGN)\n public abstract approveSession(params: {\n id: number;\n namespaces: Record<string, SessionTypes.Namespace>;\n sessionProperties?: ProposalTypes.SessionProperties;\n sessionConfig?: SessionTypes.SessionConfig;\n relayProtocol?: string;\n }): Promise<SessionTypes.Struct>;\n\n // reject a session proposal (SIGN)\n public abstract rejectSession(params: {\n // proposerPublicKey: string;\n id: number;\n reason: ErrorResponse;\n }): Promise<void>;\n\n // update session namespaces (SIGN)\n public abstract updateSession(params: {\n topic: string;\n namespaces: SessionTypes.Namespaces;\n }): Promise<{ acknowledged: () => Promise<void> }>;\n\n // update session expiry (SIGN)\n public abstract extendSession(params: {\n topic: string;\n }): Promise<{ acknowledged: () => Promise<void> }>;\n\n // respond JSON-RPC request (SIGN)\n public abstract respondSessionRequest(params: {\n topic: string;\n response: JsonRpcResponse;\n }): Promise<void>;\n\n // emit session events (SIGN)\n public abstract emitSessionEvent(params: {\n topic: string;\n event: any; //SessionEvent;\n chainId: string;\n }): Promise<void>;\n\n // disconnect a session (SIGN)\n public abstract disconnectSession(params: {\n topic: string;\n reason: ErrorResponse;\n }): Promise<void>;\n\n // query all active sessions (SIGN)\n public abstract getActiveSessions(): Record<string, SessionTypes.Struct>;\n\n // query all pending session requests (SIGN)\n public abstract getPendingSessionProposals(): Record<number, ProposalTypes.Struct>;\n\n // query all pending session requests (SIGN)\n public abstract getPendingSessionRequests(): PendingRequestTypes.Struct[];\n\n // ---------- Multi chain Auth ------------------------------------------------- //\n\n public abstract approveSessionAuthenticate(\n params: AuthTypes.ApproveSessionAuthenticateParams,\n ): Promise<{ session: SessionTypes.Struct | undefined }>;\n\n public abstract formatAuthMessage: (params: {\n request: AuthTypes.BaseAuthRequestParams;\n iss: string;\n }) => string;\n\n public abstract rejectSessionAuthenticate(params: {\n id: number;\n reason: ErrorResponse;\n }): Promise<void>;\n\n // ---------- Push ------------------------------------------------- //\n public abstract registerDeviceToken(\n params: EchoClientTypes.RegisterDeviceTokenParams,\n ): Promise<void>;\n\n // ---------- Event Handlers ----------------------------------------------- //\n public abstract on: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n\n public abstract once: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n\n public abstract off: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n\n public abstract removeListener: <E extends WalletKitTypes.Event>(\n event: E,\n listener: (args: WalletKitTypes.EventArguments[E]) => void,\n ) => EventEmitter;\n}\n","import { SignClient } from \"@walletconnect/sign-client\";\nimport { ISignClient, SessionTypes } from \"@walletconnect/types\";\nimport { IWalletKitEngine, WalletKitTypes } from \"../types\";\n\nexport class Engine extends IWalletKitEngine {\n public signClient: ISignClient;\n\n constructor(client: IWalletKitEngine[\"client\"]) {\n super(client);\n // initialized in init()\n this.signClient = {} as any;\n }\n\n public init = async () => {\n this.signClient = await SignClient.init({\n core: this.client.core,\n metadata: this.client.metadata,\n signConfig: this.client.signConfig,\n });\n this.signClient.core.eventClient.init().catch((error) => {\n this.client.logger.warn(error);\n });\n };\n\n public pair: IWalletKitEngine[\"pair\"] = async (params) => {\n await this.client.core.pairing.pair(params);\n };\n\n // Sign //\n public approveSession: IWalletKitEngine[\"approveSession\"] = async (sessionProposal) => {\n const { topic, acknowledged } = await this.signClient.approve({\n ...sessionProposal,\n id: sessionProposal.id,\n namespaces: sessionProposal.namespaces,\n sessionProperties: sessionProposal.sessionProperties,\n sessionConfig: sessionProposal.sessionConfig,\n });\n await acknowledged();\n return this.signClient.session.get(topic);\n };\n\n public rejectSession: IWalletKitEngine[\"rejectSession\"] = async (params) => {\n return await this.signClient.reject(params);\n };\n\n public updateSession: IWalletKitEngine[\"updateSession\"] = async (params) => {\n return await this.signClient.update(params);\n };\n\n public extendSession: IWalletKitEngine[\"extendSession\"] = async (params) => {\n return await this.signClient.extend(params);\n };\n\n public respondSessionRequest: IWalletKitEngine[\"respondSessionRequest\"] = async (params) => {\n const result = await this.signClient.respond(params);\n return result;\n };\n\n public disconnectSession: IWalletKitEngine[\"disconnectSession\"] = async (params) => {\n return await this.signClient.disconnect(params);\n };\n\n public emitSessionEvent: IWalletKitEngine[\"emitSessionEvent\"] = async (params) => {\n return await this.signClient.emit(params);\n };\n\n public getActiveSessions: IWalletKitEngine[\"getActiveSessions\"] = () => {\n const sessions = this.signClient.session.getAll();\n return sessions.reduce((sessions: Record<string, SessionTypes.Struct>, session) => {\n sessions[session.topic] = session;\n return sessions;\n }, {});\n };\n\n public getPendingSessionProposals: IWalletKitEngine[\"getPendingSessionProposals\"] = () => {\n return this.signClient.proposal.getAll();\n };\n\n public getPendingSessionRequests: IWalletKitEngine[\"getPendingSessionRequests\"] = () => {\n return this.signClient.getPendingSessionRequests();\n };\n\n // Multi chain Auth //\n public approveSessionAuthenticate: IWalletKitEngine[\"approveSessionAuthenticate\"] = async (\n params,\n ) => {\n return await this.signClient.approveSessionAuthenticate(params);\n };\n\n public rejectSessionAuthenticate: IWalletKitEngine[\"rejectSessionAuthenticate\"] = async (\n params,\n ) => {\n return await this.signClient.rejectSessionAuthenticate(params);\n };\n\n public formatAuthMessage: IWalletKitEngine[\"formatAuthMessage\"] = (params) => {\n return this.signClient.formatAuthMessage(params);\n };\n\n // Push //\n public registerDeviceToken: IWalletKitEngine[\"registerDeviceToken\"] = (params) => {\n return this.client.core.echoClient.registerDeviceToken(params);\n };\n\n // ---------- public events ----------------------------------------------- //\n public on: IWalletKitEngine[\"on\"] = (name, listener) => {\n this.setEvent(name, \"off\");\n this.setEvent(name, \"on\");\n return this.client.events.on(name, listener);\n };\n\n public once: IWalletKitEngine[\"once\"] = (name, listener) => {\n this.setEvent(name, \"off\");\n this.setEvent(name, \"once\");\n return this.client.events.once(name, listener);\n };\n\n public off: IWalletKitEngine[\"off\"] = (name, listener) => {\n this.setEvent(name, \"off\");\n return this.client.events.off(name, listener);\n };\n\n public removeListener: IWalletKitEngine[\"removeListener\"] = (name, listener) => {\n this.setEvent(name, \"removeListener\");\n return this.client.events.removeListener(name, listener);\n };\n\n // ---------- Private ----------------------------------------------- //\n\n private onSessionRequest = (event: WalletKitTypes.SessionRequest) => {\n this.client.events.emit(\"session_request\", event);\n };\n\n private onSessionProposal = (event: WalletKitTypes.SessionProposal) => {\n this.client.events.emit(\"session_proposal\", event);\n };\n\n private onSessionDelete = (event: WalletKitTypes.SessionDelete) => {\n this.client.events.emit(\"session_delete\", event);\n };\n\n private onProposalExpire = (event: WalletKitTypes.ProposalExpire) => {\n this.client.events.emit(\"proposal_expire\", event);\n };\n\n private onSessionRequestExpire = (event: WalletKitTypes.SessionRequestExpire) => {\n this.client.events.emit(\"session_request_expire\", event);\n };\n\n private onSessionRequestAuthenticate = (event: WalletKitTypes.SessionAuthenticate) => {\n this.client.events.emit(\"session_authenticate\", event);\n };\n\n private setEvent = (\n event: WalletKitTypes.Event,\n action: \"on\" | \"off\" | \"once\" | \"removeListener\",\n ) => {\n switch (event) {\n case \"session_request\":\n this.signClient.events[action](\"session_request\", this.onSessionRequest);\n break;\n case \"session_proposal\":\n this.signClient.events[action](\"session_proposal\", this.onSessionProposal);\n break;\n case \"session_delete\":\n this.signClient.events[action](\"session_delete\", this.onSessionDelete);\n break;\n case \"proposal_expire\":\n this.signClient.events[action](\"proposal_expire\", this.onProposalExpire);\n break;\n case \"session_request_expire\":\n this.signClient.events[action](\"session_request_expire\", this.onSessionRequestExpire);\n break;\n case \"session_authenticate\":\n this.signClient.events[action](\"session_authenticate\", this.onSessionRequestAuthenticate);\n break;\n }\n };\n}\n","import { Core } from \"@walletconnect/core\";\nimport { WalletKitTypes } from \"../types\";\nimport { SessionStore } from \"@walletconnect/sign-client\";\n\nexport const Notifications: WalletKitTypes.INotifications = {\n decryptMessage: async (params) => {\n const instance = {\n core: new Core({\n storageOptions: params.storageOptions,\n storage: params.storage,\n }),\n } as any;\n await instance.core.crypto.init();\n const decoded = instance.core.crypto.decode(params.topic, params.encryptedMessage);\n instance.core = null;\n return decoded;\n },\n getMetadata: async (params) => {\n const instances = {\n core: new Core({\n storageOptions: params.storageOptions,\n storage: params.storage,\n }),\n sessionStore: null,\n } as any;\n instances.sessionStore = new SessionStore(instances.core, instances.core.logger);\n await instances.sessionStore.init();\n const session = instances.sessionStore.get(params.topic);\n const metadata = session?.peer.metadata;\n instances.core = null;\n instances.sessionStore = null;\n return metadata;\n },\n};\n","import EventEmitter from \"events\";\nimport { CLIENT_CONTEXT } from \"./constants\";\nimport { Engine } from \"./controllers\";\nimport { IWalletKit, WalletKitTypes } from \"./types\";\nimport { Notifications } from \"./utils\";\n\nexport class WalletKit extends IWalletKit {\n public name: IWalletKit[\"name\"];\n public core: IWalletKit[\"core\"];\n public logger: IWalletKit[\"logger\"];\n public events: IWalletKit[\"events\"] = new EventEmitter();\n public engine: IWalletKit[\"engine\"];\n public metadata: IWalletKit[\"metadata\"];\n public static notifications: WalletKitTypes.INotifications = Notifications;\n public signConfig: IWalletKit[\"signConfig\"];\n\n static async init(opts: WalletKitTypes.Options) {\n const client = new WalletKit(opts);\n await client.initialize();\n\n return client;\n }\n\n constructor(opts: WalletKitTypes.Options) {\n super(opts);\n this.metadata = opts.metadata;\n this.name = opts.name || CLIENT_CONTEXT;\n this.signConfig = opts.signConfig;\n this.core = opts.core;\n this.logger = this.core.logger;\n this.engine = new Engine(this);\n }\n\n // ---------- Events ----------------------------------------------- //\n\n public on: IWalletKit[\"on\"] = (name, listener) => {\n return this.engine.on(name, listener);\n };\n\n public once: IWalletKit[\"once\"] = (name, listener) => {\n return this.engine.once(name, listener);\n };\n\n public off: IWalletKit[\"off\"] = (name, listener) => {\n return this.engine.off(name, listener);\n };\n\n public removeListener: IWalletKit[\"removeListener\"] = (name, listener) => {\n return this.engine.removeListener(name, listener);\n };\n\n // ---------- Engine ----------------------------------------------- //\n\n public pair: IWalletKit[\"pair\"] = async (params) => {\n try {\n return await this.engine.pair(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public approveSession: IWalletKit[\"approveSession\"] = async (params) => {\n try {\n return await this.engine.approveSession(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public rejectSession: IWalletKit[\"rejectSession\"] = async (params) => {\n try {\n return await this.engine.rejectSession(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public updateSession: IWalletKit[\"updateSession\"] = async (params) => {\n try {\n return await this.engine.updateSession(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public extendSession: IWalletKit[\"extendSession\"] = async (params) => {\n try {\n return await this.engine.extendSession(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public respondSessionRequest: IWalletKit[\"respondSessionRequest\"] = async (params) => {\n try {\n return await this.engine.respondSessionRequest(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public disconnectSession: IWalletKit[\"disconnectSession\"] = async (params) => {\n try {\n return await this.engine.disconnectSession(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public emitSessionEvent: IWalletKit[\"emitSessionEvent\"] = async (params) => {\n try {\n return await this.engine.emitSessionEvent(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public getActiveSessions: IWalletKit[\"getActiveSessions\"] = () => {\n try {\n return this.engine.getActiveSessions();\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public getPendingSessionProposals: IWalletKit[\"getPendingSessionProposals\"] = () => {\n try {\n return this.engine.getPendingSessionProposals();\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public getPendingSessionRequests: IWalletKit[\"getPendingSessionRequests\"] = () => {\n try {\n return this.engine.getPendingSessionRequests();\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public registerDeviceToken: IWalletKit[\"registerDeviceToken\"] = (params) => {\n try {\n return this.engine.registerDeviceToken(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public approveSessionAuthenticate: IWalletKit[\"approveSessionAuthenticate\"] = (params) => {\n try {\n return this.engine.approveSessionAuthenticate(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public rejectSessionAuthenticate: IWalletKit[\"rejectSessionAuthenticate\"] = (params) => {\n try {\n return this.engine.rejectSessionAuthenticate(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n public formatAuthMessage: IWalletKit[\"formatAuthMessage\"] = (params) => {\n try {\n return this.engine.formatAuthMessage(params);\n } catch (error: any) {\n this.logger.error(error.message);\n throw error;\n }\n };\n\n // ---------- Private ----------------------------------------------- //\n\n private async initialize() {\n this.logger.trace(`Initialized`);\n try {\n await this.engine.init();\n this.logger.info(`WalletKit Initialization Success`);\n } catch (error: any) {\n this.logger.info(`WalletKit Initialization Failure`);\n this.logger.error(error.message);\n throw error;\n }\n }\n}\n","import { WalletKit as Client } from \"./client\";\n\nexport * from \"./constants\";\nexport * from \"./types\";\n\nexport const WalletKit = Client;\nexport default Client;\n"],"names":["eventsModule","events","EventEmmiter","opts","client","IWalletKitEngine","SignClient","error","params","sessionProposal","topic","acknowledged","__spreadProps","__spreadValues","sessions","session","name","listener","event","action","instance","Core","decoded","instances","SessionStore","metadata","_WalletKit","IWalletKit","EventEmitter","CLIENT_CONTEXT","Engine","WalletKit","Notifications","Client"],"mappings":"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"}
|
package/dist/index.es.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
import{SignClient as I,SessionStore as M}from"@walletconnect/sign-client";import{Core as m}from"@walletconnect/core";var l={exports:{}},h=typeof Reflect=="object"?Reflect:null,y=h&&typeof h.apply=="function"?h.apply:function(t,e,s){return Function.prototype.apply.call(t,e,s)},f;h&&typeof h.ownKeys=="function"?f=h.ownKeys:Object.getOwnPropertySymbols?f=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:f=function(t){return Object.getOwnPropertyNames(t)};function K(n){console&&console.warn&&console.warn(n)}var w=Number.isNaN||function(t){return t!==t};function o(){o.init.call(this)}l.exports=o,l.exports.once=F,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var L=10;function g(n){if(typeof n!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof n)}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return L},set:function(n){if(typeof n!="number"||n<0||w(n))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+n+".");L=n}}),o.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||w(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function S(n){return n._maxListeners===void 0?o.defaultMaxListeners:n._maxListeners}o.prototype.getMaxListeners=function(){return S(this)},o.prototype.emit=function(t){for(var e=[],s=1;s<arguments.length;s++)e.push(arguments[s]);var i=t==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var r;if(e.length>0&&(r=e[0]),r instanceof Error)throw r;var c=new Error("Unhandled error."+(r?" ("+r.message+")":""));throw c.context=r,c}var u=a[t];if(u===void 0)return!1;if(typeof u=="function")y(u,this,e);else for(var d=u.length,q=b(u,d),s=0;s<d;++s)y(q[s],this,e);return!0};function _(n,t,e,s){var i,a,r;if(g(e),a=n._events,a===void 0?(a=n._events=Object.create(null),n._eventsCount=0):(a.newListener!==void 0&&(n.emit("newListener",t,e.listener?e.listener:e),a=n._events),r=a[t]),r===void 0)r=a[t]=e,++n._eventsCount;else if(typeof r=="function"?r=a[t]=s?[e,r]:[r,e]:s?r.unshift(e):r.push(e),i=S(n),i>0&&r.length>i&&!r.warned){r.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+r.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=n,c.type=t,c.count=r.length,K(c)}return n}o.prototype.addListener=function(t,e){return _(this,t,e,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(t,e){return _(this,t,e,!0)};function k(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function C(n,t,e){var s={fired:!1,wrapFn:void 0,target:n,type:t,listener:e},i=k.bind(s);return i.listener=e,s.wrapFn=i,i}o.prototype.once=function(t,e){return g(e),this.on(t,C(this,t,e)),this},o.prototype.prependOnceListener=function(t,e){return g(e),this.prependListener(t,C(this,t,e)),this},o.prototype.removeListener=function(t,e){var s,i,a,r,c;if(g(e),i=this._events,i===void 0)return this;if(s=i[t],s===void 0)return this;if(s===e||s.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,s.listener||e));else if(typeof s!="function"){for(a=-1,r=s.length-1;r>=0;r--)if(s[r]===e||s[r].listener===e){c=s[r].listener,a=r;break}if(a<0)return this;a===0?s.shift():W(s,a),s.length===1&&(i[t]=s[0]),i.removeListener!==void 0&&this.emit("removeListener",t,c||e)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(t){var e,s,i;if(s=this._events,s===void 0)return this;if(s.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):s[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete s[t]),this;if(arguments.length===0){var a=Object.keys(s),r;for(i=0;i<a.length;++i)r=a[i],r!=="removeListener"&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=s[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(i=e.length-1;i>=0;i--)this.removeListener(t,e[i]);return this};function E(n,t,e){var s=n._events;if(s===void 0)return[];var i=s[t];return i===void 0?[]:typeof i=="function"?e?[i.listener||i]:[i]:e?D(i):b(i,i.length)}o.prototype.listeners=function(t){return E(this,t,!0)},o.prototype.rawListeners=function(t){return E(this,t,!1)},o.listenerCount=function(n,t){return typeof n.listenerCount=="function"?n.listenerCount(t):O.call(n,t)},o.prototype.listenerCount=O;function O(n){var t=this._events;if(t!==void 0){var e=t[n];if(typeof e=="function")return 1;if(e!==void 0)return e.length}return 0}o.prototype.eventNames=function(){return this._eventsCount>0?f(this._events):[]};function b(n,t){for(var e=new Array(t),s=0;s<t;++s)e[s]=n[s];return e}function W(n,t){for(;t+1<n.length;t++)n[t]=n[t+1];n.pop()}function D(n){for(var t=new Array(n.length),e=0;e<t.length;++e)t[e]=n[e].listener||n[e];return t}function F(n,t){return new Promise(function(e,s){function i(r){n.removeListener(t,a),s(r)}function a(){typeof n.removeListener=="function"&&n.removeListener("error",i),e([].slice.call(arguments))}x(n,t,a,{once:!0}),t!=="error"&&z(n,i,{once:!0})})}function z(n,t,e){typeof n.on=="function"&&x(n,"error",t,e)}function x(n,t,e,s){if(typeof n.on=="function")s.once?n.once(t,e):n.on(t,e);else if(typeof n.addEventListener=="function")n.addEventListener(t,function i(a){s.once&&n.removeEventListener(t,i),e(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof n)}const P="wc",U=2,p="WalletKit",X=`${P}@2:${p}:`,$={database:":memory:"},G="request";class H extends l.exports{constructor(){super()}}class R{constructor(t){this.opts=t}}class A{constructor(t){this.client=t}}var Q=Object.defineProperty,V=Object.defineProperties,B=Object.getOwnPropertyDescriptors,j=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,T=(n,t,e)=>t in n?Q(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,Z=(n,t)=>{for(var e in t||(t={}))J.call(t,e)&&T(n,e,t[e]);if(j)for(var e of j(t))Y.call(t,e)&&T(n,e,t[e]);return n},ee=(n,t)=>V(n,B(t));class te extends A{constructor(t){super(t),this.init=async()=>{this.signClient=await I.init({core:this.client.core,metadata:this.client.metadata,signConfig:this.client.signConfig})},this.pair=async e=>{await this.client.core.pairing.pair(e)},this.approveSession=async e=>{const{topic:s,acknowledged:i}=await this.signClient.approve(ee(Z({},e),{id:e.id,namespaces:e.namespaces,sessionProperties:e.sessionProperties,sessionConfig:e.sessionConfig}));return await i(),this.signClient.session.get(s)},this.rejectSession=async e=>await this.signClient.reject(e),this.updateSession=async e=>await this.signClient.update(e),this.extendSession=async e=>await this.signClient.extend(e),this.respondSessionRequest=async e=>await this.signClient.respond(e),this.disconnectSession=async e=>await this.signClient.disconnect(e),this.emitSessionEvent=async e=>await this.signClient.emit(e),this.getActiveSessions=()=>this.signClient.session.getAll().reduce((e,s)=>(e[s.topic]=s,e),{}),this.getPendingSessionProposals=()=>this.signClient.proposal.getAll(),this.getPendingSessionRequests=()=>this.signClient.getPendingSessionRequests(),this.approveSessionAuthenticate=async e=>await this.signClient.approveSessionAuthenticate(e),this.rejectSessionAuthenticate=async e=>await this.signClient.rejectSessionAuthenticate(e),this.formatAuthMessage=e=>this.signClient.formatAuthMessage(e),this.registerDeviceToken=e=>this.client.core.echoClient.registerDeviceToken(e),this.on=(e,s)=>(this.setEvent(e,"off"),this.setEvent(e,"on"),this.client.events.on(e,s)),this.once=(e,s)=>(this.setEvent(e,"off"),this.setEvent(e,"once"),this.client.events.once(e,s)),this.off=(e,s)=>(this.setEvent(e,"off"),this.client.events.off(e,s)),this.removeListener=(e,s)=>(this.setEvent(e,"removeListener"),this.client.events.removeListener(e,s)),this.onSessionRequest=e=>{this.client.events.emit("session_request",e)},this.onSessionProposal=e=>{this.client.events.emit("session_proposal",e)},this.onSessionDelete=e=>{this.client.events.emit("session_delete",e)},this.onProposalExpire=e=>{this.client.events.emit("proposal_expire",e)},this.onSessionRequestExpire=e=>{this.client.events.emit("session_request_expire",e)},this.onSessionRequestAuthenticate=e=>{this.client.events.emit("session_authenticate",e)},this.setEvent=(e,s)=>{switch(e){case"session_request":this.signClient.events[s]("session_request",this.onSessionRequest);break;case"session_proposal":this.signClient.events[s]("session_proposal",this.onSessionProposal);break;case"session_delete":this.signClient.events[s]("session_delete",this.onSessionDelete);break;case"proposal_expire":this.signClient.events[s]("proposal_expire",this.onProposalExpire);break;case"session_request_expire":this.signClient.events[s]("session_request_expire",this.onSessionRequestExpire);break;case"session_authenticate":this.signClient.events[s]("session_authenticate",this.onSessionRequestAuthenticate);break}},this.signClient={}}}const ne={decryptMessage:async n=>{const t={core:new m({storageOptions:n.storageOptions,storage:n.storage})};await t.core.crypto.init();const e=t.core.crypto.decode(n.topic,n.encryptedMessage);return t.core=null,e},getMetadata:async n=>{const t={core:new m({storageOptions:n.storageOptions,storage:n.storage}),sessionStore:null};t.sessionStore=new M(t.core,t.core.logger),await t.sessionStore.init();const e=t.sessionStore.get(n.topic),s=e?.peer.metadata;return t.core=null,t.sessionStore=null,s}},N=class extends R{constructor(n){super(n),this.events=new l.exports,this.on=(t,e)=>this.engine.on(t,e),this.once=(t,e)=>this.engine.once(t,e),this.off=(t,e)=>this.engine.off(t,e),this.removeListener=(t,e)=>this.engine.removeListener(t,e),this.pair=async t=>{try{return await this.engine.pair(t)}catch(e){throw this.logger.error(e.message),e}},this.approveSession=async t=>{try{return await this.engine.approveSession(t)}catch(e){throw this.logger.error(e.message),e}},this.rejectSession=async t=>{try{return await this.engine.rejectSession(t)}catch(e){throw this.logger.error(e.message),e}},this.updateSession=async t=>{try{return await this.engine.updateSession(t)}catch(e){throw this.logger.error(e.message),e}},this.extendSession=async t=>{try{return await this.engine.extendSession(t)}catch(e){throw this.logger.error(e.message),e}},this.respondSessionRequest=async t=>{try{return await this.engine.respondSessionRequest(t)}catch(e){throw this.logger.error(e.message),e}},this.disconnectSession=async t=>{try{return await this.engine.disconnectSession(t)}catch(e){throw this.logger.error(e.message),e}},this.emitSessionEvent=async t=>{try{return await this.engine.emitSessionEvent(t)}catch(e){throw this.logger.error(e.message),e}},this.getActiveSessions=()=>{try{return this.engine.getActiveSessions()}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionProposals=()=>{try{return this.engine.getPendingSessionProposals()}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(t){throw this.logger.error(t.message),t}},this.registerDeviceToken=t=>{try{return this.engine.registerDeviceToken(t)}catch(e){throw this.logger.error(e.message),e}},this.approveSessionAuthenticate=t=>{try{return this.engine.approveSessionAuthenticate(t)}catch(e){throw this.logger.error(e.message),e}},this.rejectSessionAuthenticate=t=>{try{return this.engine.rejectSessionAuthenticate(t)}catch(e){throw this.logger.error(e.message),e}},this.formatAuthMessage=t=>{try{return this.engine.formatAuthMessage(t)}catch(e){throw this.logger.error(e.message),e}},this.metadata=n.metadata,this.name=n.name||p,this.signConfig=n.signConfig,this.core=n.core,this.logger=this.core.logger,this.engine=new te(this)}static async init(n){const t=new N(n);return await t.initialize(),t}async initialize(){this.logger.trace("Initialized");try{await this.engine.init(),this.logger.info("WalletKit Initialization Success")}catch(n){throw this.logger.info("WalletKit Initialization Failure"),this.logger.error(n.message),n}}};let v=N;v.notifications=ne;const se=v;export{p as CLIENT_CONTEXT,$ as CLIENT_STORAGE_OPTIONS,X as CLIENT_STORAGE_PREFIX,R as IWalletKit,A as IWalletKitEngine,H as IWalletKitEvents,P as PROTOCOL,U as PROTOCOL_VERSION,G as REQUEST_CONTEXT,se as WalletKit,v as default};
|
1
|
+
import{SignClient as I,SessionStore as M}from"@walletconnect/sign-client";import{Core as m}from"@walletconnect/core";var l={exports:{}},h=typeof Reflect=="object"?Reflect:null,y=h&&typeof h.apply=="function"?h.apply:function(t,e,s){return Function.prototype.apply.call(t,e,s)},f;h&&typeof h.ownKeys=="function"?f=h.ownKeys:Object.getOwnPropertySymbols?f=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:f=function(t){return Object.getOwnPropertyNames(t)};function K(n){console&&console.warn&&console.warn(n)}var w=Number.isNaN||function(t){return t!==t};function o(){o.init.call(this)}l.exports=o,l.exports.once=F,o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var L=10;function g(n){if(typeof n!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof n)}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return L},set:function(n){if(typeof n!="number"||n<0||w(n))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+n+".");L=n}}),o.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||w(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function S(n){return n._maxListeners===void 0?o.defaultMaxListeners:n._maxListeners}o.prototype.getMaxListeners=function(){return S(this)},o.prototype.emit=function(t){for(var e=[],s=1;s<arguments.length;s++)e.push(arguments[s]);var i=t==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var r;if(e.length>0&&(r=e[0]),r instanceof Error)throw r;var c=new Error("Unhandled error."+(r?" ("+r.message+")":""));throw c.context=r,c}var u=a[t];if(u===void 0)return!1;if(typeof u=="function")y(u,this,e);else for(var d=u.length,q=b(u,d),s=0;s<d;++s)y(q[s],this,e);return!0};function _(n,t,e,s){var i,a,r;if(g(e),a=n._events,a===void 0?(a=n._events=Object.create(null),n._eventsCount=0):(a.newListener!==void 0&&(n.emit("newListener",t,e.listener?e.listener:e),a=n._events),r=a[t]),r===void 0)r=a[t]=e,++n._eventsCount;else if(typeof r=="function"?r=a[t]=s?[e,r]:[r,e]:s?r.unshift(e):r.push(e),i=S(n),i>0&&r.length>i&&!r.warned){r.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+r.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=n,c.type=t,c.count=r.length,K(c)}return n}o.prototype.addListener=function(t,e){return _(this,t,e,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(t,e){return _(this,t,e,!0)};function k(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function C(n,t,e){var s={fired:!1,wrapFn:void 0,target:n,type:t,listener:e},i=k.bind(s);return i.listener=e,s.wrapFn=i,i}o.prototype.once=function(t,e){return g(e),this.on(t,C(this,t,e)),this},o.prototype.prependOnceListener=function(t,e){return g(e),this.prependListener(t,C(this,t,e)),this},o.prototype.removeListener=function(t,e){var s,i,a,r,c;if(g(e),i=this._events,i===void 0)return this;if(s=i[t],s===void 0)return this;if(s===e||s.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,s.listener||e));else if(typeof s!="function"){for(a=-1,r=s.length-1;r>=0;r--)if(s[r]===e||s[r].listener===e){c=s[r].listener,a=r;break}if(a<0)return this;a===0?s.shift():W(s,a),s.length===1&&(i[t]=s[0]),i.removeListener!==void 0&&this.emit("removeListener",t,c||e)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(t){var e,s,i;if(s=this._events,s===void 0)return this;if(s.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):s[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete s[t]),this;if(arguments.length===0){var a=Object.keys(s),r;for(i=0;i<a.length;++i)r=a[i],r!=="removeListener"&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=s[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(i=e.length-1;i>=0;i--)this.removeListener(t,e[i]);return this};function E(n,t,e){var s=n._events;if(s===void 0)return[];var i=s[t];return i===void 0?[]:typeof i=="function"?e?[i.listener||i]:[i]:e?D(i):b(i,i.length)}o.prototype.listeners=function(t){return E(this,t,!0)},o.prototype.rawListeners=function(t){return E(this,t,!1)},o.listenerCount=function(n,t){return typeof n.listenerCount=="function"?n.listenerCount(t):O.call(n,t)},o.prototype.listenerCount=O;function O(n){var t=this._events;if(t!==void 0){var e=t[n];if(typeof e=="function")return 1;if(e!==void 0)return e.length}return 0}o.prototype.eventNames=function(){return this._eventsCount>0?f(this._events):[]};function b(n,t){for(var e=new Array(t),s=0;s<t;++s)e[s]=n[s];return e}function W(n,t){for(;t+1<n.length;t++)n[t]=n[t+1];n.pop()}function D(n){for(var t=new Array(n.length),e=0;e<t.length;++e)t[e]=n[e].listener||n[e];return t}function F(n,t){return new Promise(function(e,s){function i(r){n.removeListener(t,a),s(r)}function a(){typeof n.removeListener=="function"&&n.removeListener("error",i),e([].slice.call(arguments))}x(n,t,a,{once:!0}),t!=="error"&&z(n,i,{once:!0})})}function z(n,t,e){typeof n.on=="function"&&x(n,"error",t,e)}function x(n,t,e,s){if(typeof n.on=="function")s.once?n.once(t,e):n.on(t,e);else if(typeof n.addEventListener=="function")n.addEventListener(t,function i(a){s.once&&n.removeEventListener(t,i),e(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof n)}const P="wc",U=2,p="WalletKit",X=`${P}@2:${p}:`,$={database:":memory:"},G="request";class H extends l.exports{constructor(){super()}}class R{constructor(t){this.opts=t}}class A{constructor(t){this.client=t}}var Q=Object.defineProperty,V=Object.defineProperties,B=Object.getOwnPropertyDescriptors,j=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,T=(n,t,e)=>t in n?Q(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,Z=(n,t)=>{for(var e in t||(t={}))J.call(t,e)&&T(n,e,t[e]);if(j)for(var e of j(t))Y.call(t,e)&&T(n,e,t[e]);return n},ee=(n,t)=>V(n,B(t));class te extends A{constructor(t){super(t),this.init=async()=>{this.signClient=await I.init({core:this.client.core,metadata:this.client.metadata,signConfig:this.client.signConfig}),this.signClient.core.eventClient.init().catch(e=>{this.client.logger.warn(e)})},this.pair=async e=>{await this.client.core.pairing.pair(e)},this.approveSession=async e=>{const{topic:s,acknowledged:i}=await this.signClient.approve(ee(Z({},e),{id:e.id,namespaces:e.namespaces,sessionProperties:e.sessionProperties,sessionConfig:e.sessionConfig}));return await i(),this.signClient.session.get(s)},this.rejectSession=async e=>await this.signClient.reject(e),this.updateSession=async e=>await this.signClient.update(e),this.extendSession=async e=>await this.signClient.extend(e),this.respondSessionRequest=async e=>await this.signClient.respond(e),this.disconnectSession=async e=>await this.signClient.disconnect(e),this.emitSessionEvent=async e=>await this.signClient.emit(e),this.getActiveSessions=()=>this.signClient.session.getAll().reduce((e,s)=>(e[s.topic]=s,e),{}),this.getPendingSessionProposals=()=>this.signClient.proposal.getAll(),this.getPendingSessionRequests=()=>this.signClient.getPendingSessionRequests(),this.approveSessionAuthenticate=async e=>await this.signClient.approveSessionAuthenticate(e),this.rejectSessionAuthenticate=async e=>await this.signClient.rejectSessionAuthenticate(e),this.formatAuthMessage=e=>this.signClient.formatAuthMessage(e),this.registerDeviceToken=e=>this.client.core.echoClient.registerDeviceToken(e),this.on=(e,s)=>(this.setEvent(e,"off"),this.setEvent(e,"on"),this.client.events.on(e,s)),this.once=(e,s)=>(this.setEvent(e,"off"),this.setEvent(e,"once"),this.client.events.once(e,s)),this.off=(e,s)=>(this.setEvent(e,"off"),this.client.events.off(e,s)),this.removeListener=(e,s)=>(this.setEvent(e,"removeListener"),this.client.events.removeListener(e,s)),this.onSessionRequest=e=>{this.client.events.emit("session_request",e)},this.onSessionProposal=e=>{this.client.events.emit("session_proposal",e)},this.onSessionDelete=e=>{this.client.events.emit("session_delete",e)},this.onProposalExpire=e=>{this.client.events.emit("proposal_expire",e)},this.onSessionRequestExpire=e=>{this.client.events.emit("session_request_expire",e)},this.onSessionRequestAuthenticate=e=>{this.client.events.emit("session_authenticate",e)},this.setEvent=(e,s)=>{switch(e){case"session_request":this.signClient.events[s]("session_request",this.onSessionRequest);break;case"session_proposal":this.signClient.events[s]("session_proposal",this.onSessionProposal);break;case"session_delete":this.signClient.events[s]("session_delete",this.onSessionDelete);break;case"proposal_expire":this.signClient.events[s]("proposal_expire",this.onProposalExpire);break;case"session_request_expire":this.signClient.events[s]("session_request_expire",this.onSessionRequestExpire);break;case"session_authenticate":this.signClient.events[s]("session_authenticate",this.onSessionRequestAuthenticate);break}},this.signClient={}}}const ne={decryptMessage:async n=>{const t={core:new m({storageOptions:n.storageOptions,storage:n.storage})};await t.core.crypto.init();const e=t.core.crypto.decode(n.topic,n.encryptedMessage);return t.core=null,e},getMetadata:async n=>{const t={core:new m({storageOptions:n.storageOptions,storage:n.storage}),sessionStore:null};t.sessionStore=new M(t.core,t.core.logger),await t.sessionStore.init();const e=t.sessionStore.get(n.topic),s=e?.peer.metadata;return t.core=null,t.sessionStore=null,s}},N=class extends R{constructor(n){super(n),this.events=new l.exports,this.on=(t,e)=>this.engine.on(t,e),this.once=(t,e)=>this.engine.once(t,e),this.off=(t,e)=>this.engine.off(t,e),this.removeListener=(t,e)=>this.engine.removeListener(t,e),this.pair=async t=>{try{return await this.engine.pair(t)}catch(e){throw this.logger.error(e.message),e}},this.approveSession=async t=>{try{return await this.engine.approveSession(t)}catch(e){throw this.logger.error(e.message),e}},this.rejectSession=async t=>{try{return await this.engine.rejectSession(t)}catch(e){throw this.logger.error(e.message),e}},this.updateSession=async t=>{try{return await this.engine.updateSession(t)}catch(e){throw this.logger.error(e.message),e}},this.extendSession=async t=>{try{return await this.engine.extendSession(t)}catch(e){throw this.logger.error(e.message),e}},this.respondSessionRequest=async t=>{try{return await this.engine.respondSessionRequest(t)}catch(e){throw this.logger.error(e.message),e}},this.disconnectSession=async t=>{try{return await this.engine.disconnectSession(t)}catch(e){throw this.logger.error(e.message),e}},this.emitSessionEvent=async t=>{try{return await this.engine.emitSessionEvent(t)}catch(e){throw this.logger.error(e.message),e}},this.getActiveSessions=()=>{try{return this.engine.getActiveSessions()}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionProposals=()=>{try{return this.engine.getPendingSessionProposals()}catch(t){throw this.logger.error(t.message),t}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(t){throw this.logger.error(t.message),t}},this.registerDeviceToken=t=>{try{return this.engine.registerDeviceToken(t)}catch(e){throw this.logger.error(e.message),e}},this.approveSessionAuthenticate=t=>{try{return this.engine.approveSessionAuthenticate(t)}catch(e){throw this.logger.error(e.message),e}},this.rejectSessionAuthenticate=t=>{try{return this.engine.rejectSessionAuthenticate(t)}catch(e){throw this.logger.error(e.message),e}},this.formatAuthMessage=t=>{try{return this.engine.formatAuthMessage(t)}catch(e){throw this.logger.error(e.message),e}},this.metadata=n.metadata,this.name=n.name||p,this.signConfig=n.signConfig,this.core=n.core,this.logger=this.core.logger,this.engine=new te(this)}static async init(n){const t=new N(n);return await t.initialize(),t}async initialize(){this.logger.trace("Initialized");try{await this.engine.init(),this.logger.info("WalletKit Initialization Success")}catch(n){throw this.logger.info("WalletKit Initialization Failure"),this.logger.error(n.message),n}}};let v=N;v.notifications=ne;const se=v;export{p as CLIENT_CONTEXT,$ as CLIENT_STORAGE_OPTIONS,X as CLIENT_STORAGE_PREFIX,R as IWalletKit,A as IWalletKitEngine,H as IWalletKitEvents,P as PROTOCOL,U as PROTOCOL_VERSION,G as REQUEST_CONTEXT,se as WalletKit,v as default};
|
2
2
|
//# sourceMappingURL=index.es.js.map
|