@human.tech/waap-sdk 2.4.2-staging-416db8 → 2.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/dist/{SolanaProvider-BKWKXTWh.mjs → SolanaProvider-BcOLwJrt.mjs} +1 -1
- package/dist/{SolanaProvider-Uv3q1b0H.js → SolanaProvider-DqkLbM2y.js} +1 -1
- package/dist/UIMessageManager-BSJdvCEF.mjs +1 -0
- package/dist/UIMessageManager-Bzrjl7s7.js +1 -0
- package/dist/bridge.js +1 -1
- package/dist/bridge.mjs +1 -1
- package/dist/{evm-BbSgL_Hv.mjs → evm-dDrPUbNZ.mjs} +1 -1
- package/dist/{evm-_ReyhrCP.js → evm-xQ1FQAuX.js} +1 -1
- package/dist/evm.js +1 -1
- package/dist/evm.mjs +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{init-BljRyI7Q.mjs → init-BYobdGXZ.mjs} +1 -1
- package/dist/{init-IB0dPXBp.js → init-DDxhKxVn.js} +1 -1
- package/dist/register-B_aOj8Br.js +1 -0
- package/dist/{register-CpvrhMCx.js → register-BaLxudob.js} +1 -1
- package/dist/register-BwS4tW5-.mjs +1 -0
- package/dist/register-DpX4UMxA.mjs +1 -0
- package/dist/solana.js +1 -1
- package/dist/solana.mjs +1 -1
- package/dist/stellar.js +1 -1
- package/dist/stellar.mjs +1 -1
- package/dist/sui.js +1 -1
- package/dist/sui.mjs +1 -1
- package/dist/{ui-D4wp1W_E.js → ui-CltYKydI.js} +1 -1
- package/dist/{ui-DSsOjby7.mjs → ui-Dc4medG1.mjs} +1 -1
- package/package.json +1 -1
- package/dist/UIMessageManager-CPw6PggC.js +0 -1
- package/dist/UIMessageManager-D3VN9vM8.mjs +0 -1
- package/dist/register-CLsRV5W0.mjs +0 -1
- package/dist/register-DN1lfMSy.mjs +0 -1
- package/dist/register-DpEJlZIw.js +0 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./UIMessageManager-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./UIMessageManager-Bzrjl7s7.js"),t=require("./asyncSigning-B0KrmKk7.js"),n=require("./ui-CltYKydI.js"),r=require("./SolanaProvider-DqkLbM2y.js"),i=require("./init-DDxhKxVn.js"),a=require("./evm-xQ1FQAuX.js"),o=require("./WalletConnect-B21f4Vvh.js"),s=require("./register-BaLxudob.js"),c=require("./register-B_aOj8Br.js"),l=require("./useWaapAuth-C9Cwu4XG.js");let u=require("events");var d=class extends u.EventEmitter{constructor(e){super(),this.isSilk=!0,this.connected=!1,this.config={...a.i,...e||{}}}sendToExtension(e){return new Promise((t,n)=>{window.postMessage({type:`FROM_PAGE`,request:e},`*`),window.addEventListener(`message`,e=>{e.data.type===`FROM_EXTENSION`&&(e.data.error?n(e.data.error):t(e.data.result))})})}async request(t){if(!Object.keys(e.C).includes(t.method))return Promise.reject({error:`Not implemented (${t.method})`});let n=await this.sendToExtension(t);return(t.method===e.C.wallet_switchEthereumChain||t.method===e.C.wallet_addEthereumChain)&&n===null&&this.emit(`chainChanged`,t.params?.[0]?.chainId),n}async enable(){return this.request({method:`eth_requestAccounts`})}isConnected(){return this.connected}async login(){return this.sendToExtension({method:e.w.login})}async requestSBT(t){return this.sendToExtension({method:e.w.silk_requestSbt,params:[t]})}async toggleDarkMode(){this.config.styles.darkMode=!this.config.styles.darkMode,await this.sendToExtension({method:e.w.set_custom_config,params:[this.config]})}async safe(){return this.sendToExtension({method:e.w.safe})}};
|
|
2
2
|
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
3
3
|
function f(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function p(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function m(e,...t){if(!f(e))throw Error(`Uint8Array expected`);if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length `+t+`, got length=`+e.length)}function h(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function ee(e,t){m(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function te(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function g(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function _(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function v(e,t){return e<<32-t|e>>>t}const ne=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function re(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function ie(e){for(let t=0;t<e.length;t++)e[t]=re(e[t]);return e}const ae=ne?e=>e:ie,oe=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,se=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function ce(e){if(m(e),oe)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=se[e[n]];return t}function y(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function b(e){return typeof e==`string`&&(e=y(e)),m(e),e}var x=class{};function S(e){let t=t=>e().update(b(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function le(e){if(e.length>=255)throw TypeError(`Alphabet too long`);let t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let n=0;n<e.length;n++){let r=e.charAt(n),i=r.charCodeAt(0);if(t[i]!==255)throw TypeError(r+` is ambiguous`);t[i]=n}let n=e.length,r=e.charAt(0),i=Math.log(n)/Math.log(256),a=Math.log(256)/Math.log(n);function o(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw TypeError(`Expected Uint8Array`);if(t.length===0)return``;let i=0,o=0,s=0,c=t.length;for(;s!==c&&t[s]===0;)s++,i++;let l=(c-s)*a+1>>>0,u=new Uint8Array(l);for(;s!==c;){let e=t[s],r=0;for(let t=l-1;(e!==0||r<o)&&t!==-1;t--,r++)e+=256*u[t]>>>0,u[t]=e%n>>>0,e=e/n>>>0;if(e!==0)throw Error(`Non-zero carry`);o=r,s++}let d=l-o;for(;d!==l&&u[d]===0;)d++;let f=r.repeat(i);for(;d<l;++d)f+=e.charAt(u[d]);return f}function s(e){if(typeof e!=`string`)throw TypeError(`Expected String`);if(e.length===0)return new Uint8Array;let a=0,o=0,s=0;for(;e[a]===r;)o++,a++;let c=(e.length-a)*i+1>>>0,l=new Uint8Array(c);for(;a<e.length;){let r=e.charCodeAt(a);if(r>255)return;let i=t[r];if(i===255)return;let o=0;for(let e=c-1;(i!==0||o<s)&&e!==-1;e--,o++)i+=n*l[e]>>>0,l[e]=i%256>>>0,i=i/256>>>0;if(i!==0)throw Error(`Non-zero carry`);s=o,a++}let u=c-s;for(;u!==c&&l[u]===0;)u++;let d=new Uint8Array(o+(c-u)),f=o;for(;u!==c;)d[f++]=l[u++];return d}function c(e){let t=s(e);if(t)return t;throw Error(`Non-base`+n+` character`)}return{encode:o,decodeUnsafe:s,decode:c}}var C=le(`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`);function ue(e,t,n,r){if(typeof e.setBigUint64==`function`)return e.setBigUint64(t,n,r);let i=BigInt(32),a=BigInt(4294967295),o=Number(n>>i&a),s=Number(n&a),c=r?4:0,l=r?0:4;e.setUint32(t+c,o,r),e.setUint32(t+l,s,r)}function de(e,t,n){return e&t^~e&n}function fe(e,t,n){return e&t^e&n^t&n}var pe=class extends x{constructor(e,t,n,r){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=_(this.buffer)}update(e){h(this),e=b(e),m(e);let{view:t,buffer:n,blockLen:r}=this,i=e.length;for(let a=0;a<i;){let o=Math.min(r-this.pos,i-a);if(o===r){let t=_(e);for(;r<=i-a;a+=r)this.process(t,a);continue}n.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){h(this),ee(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:r,isLE:i}=this,{pos:a}=this;t[a++]=128,g(this.buffer.subarray(a)),this.padOffset>r-a&&(this.process(n,0),a=0);for(let e=a;e<r;e++)t[e]=0;ue(n,r-8,BigInt(this.length*8),i),this.process(n,0);let o=_(e),s=this.outputLen;if(s%4)throw Error(`_sha2: outputLen should be aligned to 32bit`);let c=s/4,l=this.get();if(c>l.length)throw Error(`_sha2: outputLen bigger than state`);for(let e=0;e<c;e++)o.setUint32(4*e,l[e],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:n,length:r,finished:i,destroyed:a,pos:o}=this;return e.destroyed=a,e.finished=i,e.length=r,e.pos=o,r%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}};const w=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),T=BigInt(2**32-1),E=BigInt(32);function me(e,t=!1){return t?{h:Number(e&T),l:Number(e>>E&T)}:{h:Number(e>>E&T)|0,l:Number(e&T)|0}}function he(e,t=!1){let n=e.length,r=new Uint32Array(n),i=new Uint32Array(n);for(let a=0;a<n;a++){let{h:n,l:o}=me(e[a],t);[r[a],i[a]]=[n,o]}return[r,i]}const ge=(e,t,n)=>e<<n|t>>>32-n,_e=(e,t,n)=>t<<n|e>>>32-n,ve=(e,t,n)=>t<<n-32|e>>>64-n,ye=(e,t,n)=>e<<n-32|t>>>64-n,be=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),D=new Uint32Array(64);var xe=class extends pe{constructor(e=32){super(64,e,8,!1),this.A=w[0]|0,this.B=w[1]|0,this.C=w[2]|0,this.D=w[3]|0,this.E=w[4]|0,this.F=w[5]|0,this.G=w[6]|0,this.H=w[7]|0}get(){let{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}process(e,t){for(let n=0;n<16;n++,t+=4)D[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=D[e-15],n=D[e-2],r=v(t,7)^v(t,18)^t>>>3,i=v(n,17)^v(n,19)^n>>>10;D[e]=i+D[e-7]+r+D[e-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:c,H:l}=this;for(let e=0;e<64;e++){let t=v(o,6)^v(o,11)^v(o,25),u=l+t+de(o,s,c)+be[e]+D[e]|0,d=(v(n,2)^v(n,13)^v(n,22))+fe(n,r,i)|0;l=c,c=s,s=o,o=a+u|0,a=i,i=r,r=n,n=u+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,i,a,o,s,c,l)}roundClean(){g(D)}destroy(){this.set(0,0,0,0,0,0,0,0),g(this.buffer)}};const Se=S(()=>new xe);function Ce(e,t){return e.exec(t)?.groups}const we=/^tuple(?<array>(\[(\d*)\])*)$/;function O(e){let t=e.type;if(we.test(e.type)&&`components`in e){t=`(`;let n=e.components.length;for(let r=0;r<n;r++){let i=e.components[r];t+=O(i),r<n-1&&(t+=`, `)}let r=Ce(we,e.type);return t+=`)${r?.array||``}`,O({...e,type:t})}return`indexed`in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}function k(e){let t=``,n=e.length;for(let r=0;r<n;r++){let i=e[r];t+=O(i),r!==n-1&&(t+=`, `)}return t}function Te(e){return e.type===`function`?`function ${e.name}(${k(e.inputs)})${e.stateMutability&&e.stateMutability!==`nonpayable`?` ${e.stateMutability}`:``}${e.outputs?.length?` returns (${k(e.outputs)})`:``}`:e.type===`event`?`event ${e.name}(${k(e.inputs)})`:e.type===`error`?`error ${e.name}(${k(e.inputs)})`:e.type===`constructor`?`constructor(${k(e.inputs)})${e.stateMutability===`payable`?` payable`:``}`:e.type===`fallback`?`fallback() external${e.stateMutability===`payable`?` payable`:``}`:`receive() external payable`}function A(e,{strict:t=!0}={}){return!e||typeof e!=`string`?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith(`0x`)}function j(e){return A(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}const Ee=`2.55.2`;let M={getDocsUrl:({docsBaseUrl:e,docsPath:t=``,docsSlug:n})=>t?`${e??`https://viem.sh`}${t}${n?`#${n}`:``}`:void 0,version:`viem@${Ee}`};var N=class e extends Error{constructor(t,n={}){let r=n.cause instanceof e?n.cause.details:n.cause?.message?n.cause.message:n.details,i=n.cause instanceof e&&n.cause.docsPath||n.docsPath,a=M.getDocsUrl?.({...n,docsPath:i}),o=[t||`An error occurred.`,``,...n.metaMessages?[...n.metaMessages,``]:[],...a?[`Docs: ${a}`]:[],...r?[`Details: ${r}`]:[],...M.version?[`Version: ${M.version}`]:[]].join(`
|
|
4
4
|
`);super(o,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`BaseError`}),this.details=r,this.docsPath=i,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=t,this.version=Ee}walk(e){return P(this,e)}};function P(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause!==void 0?P(e.cause,t):t?null:e}var F=class extends N{constructor({offset:e,position:t,size:n}){super(`Slice ${t===`start`?`starting`:`ending`} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:`SliceOffsetOutOfBoundsError`})}},I=class extends N{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:`SizeExceedsPaddingSizeError`})}};function L(e,{dir:t,size:n=32}={}){return typeof e==`string`?De(e,{dir:t,size:n}):Oe(e,{dir:t,size:n})}function De(e,{dir:t,size:n=32}={}){if(n===null)return e;let r=e.replace(`0x`,``);if(r.length>n*2)throw new I({size:Math.ceil(r.length/2),targetSize:n,type:`hex`});return`0x${r[t===`right`?`padEnd`:`padStart`](n*2,`0`)}`}function Oe(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new I({size:e.length,targetSize:n,type:`bytes`});let r=new Uint8Array(n);for(let i=0;i<n;i++){let a=t===`right`;r[a?i:n-i-1]=e[a?i:e.length-i-1]}return r}var ke=class extends N{constructor({max:e,min:t,signed:n,size:r,value:i}){super(`Number "${i}" is not in safe ${r?`${r*8}-bit ${n?`signed`:`unsigned`} `:``}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:`IntegerOutOfRangeError`})}},Ae=class extends N{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:`SizeOverflowError`})}};function R(e,{size:t}){if(j(e)>t)throw new Ae({givenSize:j(e),maxSize:t})}const je=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function Me(e,t={}){return typeof e==`number`||typeof e==`bigint`?B(e,t):typeof e==`string`?Fe(e,t):typeof e==`boolean`?Ne(e,t):z(e,t)}function Ne(e,t={}){let n=`0x${Number(e)}`;return typeof t.size==`number`?(R(n,{size:t.size}),L(n,{size:t.size})):n}function z(e,t={}){let n=``;for(let t=0;t<e.length;t++)n+=je[e[t]];let r=`0x${n}`;return typeof t.size==`number`?(R(r,{size:t.size}),L(r,{dir:`right`,size:t.size})):r}function B(e,t={}){let{signed:n,size:r}=t,i=BigInt(e),a;r?a=n?(1n<<BigInt(r)*8n-1n)-1n:2n**(BigInt(r)*8n)-1n:typeof e==`number`&&(a=BigInt(2**53-1));let o=typeof a==`bigint`&&n?-a-1n:0;if(a&&i>a||i<o){let t=typeof e==`bigint`?`n`:``;throw new ke({max:a?`${a}${t}`:void 0,min:`${o}${t}`,signed:n,size:r,value:`${e}${t}`})}let s=`0x${(n&&i<0?(1n<<BigInt(r*8))+BigInt(i):i).toString(16)}`;return r?L(s,{size:r}):s}const Pe=new TextEncoder;function Fe(e,t={}){return z(Pe.encode(e),t)}const Ie=new TextEncoder;function V(e,t={}){return typeof e==`number`||typeof e==`bigint`?Re(e,t):typeof e==`boolean`?Le(e,t):A(e)?W(e,t):G(e,t)}function Le(e,t={}){let n=new Uint8Array(1);return n[0]=Number(e),typeof t.size==`number`?(R(n,{size:t.size}),L(n,{size:t.size})):n}const H={zero:48,nine:57,A:65,F:70,a:97,f:102};function U(e){if(e>=H.zero&&e<=H.nine)return e-H.zero;if(e>=H.A&&e<=H.F)return e-(H.A-10);if(e>=H.a&&e<=H.f)return e-(H.a-10)}function W(e,t={}){let n=e;t.size&&(R(n,{size:t.size}),n=L(n,{dir:`right`,size:t.size}));let r=n.slice(2);r.length%2&&(r=`0${r}`);let i=r.length/2,a=new Uint8Array(i);for(let e=0,t=0;e<i;e++){let n=U(r.charCodeAt(t++)),i=U(r.charCodeAt(t++));if(n===void 0||i===void 0)throw new N(`Invalid byte sequence ("${r[t-2]}${r[t-1]}" in "${r}").`);a[e]=n*16+i}return a}function Re(e,t){return W(B(e,t))}function G(e,t={}){let n=Ie.encode(e);return typeof t.size==`number`?(R(n,{size:t.size}),L(n,{dir:`right`,size:t.size})):n}const ze=BigInt(0),K=BigInt(1),Be=BigInt(2),Ve=BigInt(7),He=BigInt(256),Ue=BigInt(113),q=[],We=[],J=[];for(let e=0,t=K,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],q.push(2*(5*r+n)),We.push((e+1)*(e+2)/2%64);let i=ze;for(let e=0;e<7;e++)t=(t<<K^(t>>Ve)*Ue)%He,t&Be&&(i^=K<<(K<<BigInt(e))-K);J.push(i)}const Y=he(J,!0),Ge=Y[0],Ke=Y[1],qe=(e,t,n)=>n>32?ve(e,t,n):ge(e,t,n),Je=(e,t,n)=>n>32?ye(e,t,n):_e(e,t,n);function Ye(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let r=(t+8)%10,i=(t+2)%10,a=n[i],o=n[i+1],s=qe(a,o,1)^n[r],c=Je(a,o,1)^n[r+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],i=e[3];for(let n=0;n<24;n++){let r=We[n],a=qe(t,i,r),o=Je(t,i,r),s=q[n];t=e[s],i=e[s+1],e[s]=a,e[s+1]=o}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)n[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~n[(r+2)%10]&n[(r+4)%10]}e[0]^=Ge[r],e[1]^=Ke[r]}g(n)}var Xe=class e extends x{constructor(e,t,n,r=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=i,p(n),!(0<e&&e<200))throw Error(`only keccak-f1600 function is supported`);this.state=new Uint8Array(200),this.state32=te(this.state)}clone(){return this._cloneInto()}keccak(){ae(this.state32),Ye(this.state32,this.rounds),ae(this.state32),this.posOut=0,this.pos=0}update(e){h(this),e=b(e),m(e);let{blockLen:t,state:n}=this,r=e.length;for(let i=0;i<r;){let a=Math.min(t-this.pos,r-i);for(let t=0;t<a;t++)n[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:n,blockLen:r}=this;e[n]^=t,t&128&&n===r-1&&this.keccak(),e[r-1]^=128,this.keccak()}writeInto(e){h(this,!1),m(e),this.finish();let t=this.state,{blockLen:n}=this;for(let r=0,i=e.length;r<i;){this.posOut>=n&&this.keccak();let a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible for this instance`);return this.writeInto(e)}xof(e){return p(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(ee(e,this),this.finished)throw Error(`digest() was already called`);return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,g(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:i,rounds:a,enableXOF:o}=this;return t||=new e(n,r,i,o,a),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}};const Ze=((e,t,n)=>S(()=>new Xe(t,e,n)))(1,136,256/8);function Qe(e,t){let n=t||`hex`,r=Ze(A(e,{strict:!1})?V(e):e);return n===`bytes`?r:Me(r)}const $e=e=>Qe(V(e));function et(e){return $e(e)}function tt(e){let t=!0,n=``,r=0,i=``,a=!1;for(let o=0;o<e.length;o++){let s=e[o];if([`(`,`)`,`,`].includes(s)&&(t=!0),s===`(`&&r++,s===`)`&&r--,t){if(r===0){if(s===` `&&[`event`,`function`,``].includes(i))i=``;else if(i+=s,s===`)`){a=!0;break}continue}if(s===` `){e[o-1]!==`,`&&n!==`,`&&n!==`,(`&&(n=``,t=!1);continue}i+=s,n+=s}}if(!a)throw new N(`Unable to normalize signature.`);return i}const nt=e=>tt(typeof e==`string`?e:Te(e));function rt(e){return et(nt(e))}var X=class extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){let t=super.get(e);return super.has(e)&&(super.delete(e),super.set(e,t)),t}set(e,t){if(super.has(e)&&super.delete(e),super.set(e,t),this.maxSize&&this.size>this.maxSize){let e=super.keys().next().value;e!==void 0&&super.delete(e)}return this}};const Z=new X(8192);function it(e,t){if(Z.has(`${e}.${t}`))return Z.get(`${e}.${t}`);let n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),r=Qe(G(n),`bytes`),i=(t?n.substring(`${t}0x`.length):n).split(``);for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&i[e]&&(i[e]=i[e].toUpperCase()),(r[e>>1]&15)>=8&&i[e+1]&&(i[e+1]=i[e+1].toUpperCase());let a=`0x${i.join(``)}`;return Z.set(`${e}.${t}`,a),a}const at=/^0x[a-fA-F0-9]{40}$/,Q=new X(8192);function ot(e,t){let{strict:n=!0}=t??{},r=`${e}.${n}`;if(Q.has(r))return Q.get(r);let i=at.test(e)?e.toLowerCase()===e||!n||it(e)===e:!1;return Q.set(r,i),i}function st(e,t,n,{strict:r}={}){return A(e,{strict:!1})?dt(e,t,n,{strict:r}):ut(e,t,n,{strict:r})}function ct(e,t){if(typeof t==`number`&&t>0&&t>j(e)-1)throw new F({offset:t,position:`start`,size:j(e)})}function lt(e,t,n){if(typeof t==`number`&&typeof n==`number`&&j(e)!==n-t)throw new F({offset:n,position:`end`,size:j(e)})}function ut(e,t,n,{strict:r}={}){ct(e,t);let i=e.slice(t,n);return r&<(i,t,n),i}function dt(e,t,n,{strict:r}={}){ct(e,t);let i=`0x${e.replace(`0x`,``).slice((t??0)*2,(n??e.length)*2)}`;return r&<(i,t,n),i}const ft=e=>st(rt(e),0,4),pt=/^0x[0-9a-fA-F]{1,64}$/,mt=/^[A-Za-z_][A-Za-z0-9_]*$/;function ht(e){return`0x${e.slice(2).toLowerCase().padStart(64,`0`)}`}function gt(e){return e.indexOf(`:`)}function _t(e){try{let t=C.decode(e);return t.length===32?C.encode(t):null}catch{return null}}function vt(e,t){if(t.length===0||new TextEncoder().encode(t).length>512||t.trim()!==t)return null;let n=gt(t),r=n===-1?t:t.slice(0,n),i=n===-1?null:t.slice(n+1);if(i===``)return null;if(e.startsWith(`evm:`)){if(!ot(r))return null;let e=r.toLowerCase();if(i===null)return{kind:`recipient`,address:e,canonical:e};if(i===`*`)return{kind:`application`,target:e,action:{kind:`all`},canonical:`${e}:*`};if(!/^0x[0-9a-fA-F]{8}$/.test(i))return null;let t=i.toLowerCase();return{kind:`application`,target:e,action:{kind:`evm-selector`,selector:t},canonical:`${e}:${t}`}}if(e.startsWith(`sui:`)){if(!pt.test(r))return null;let e=ht(r);if(i===null)return{kind:`recipient`,address:e,canonical:e};if(i===`*`)return{kind:`application`,target:e,action:{kind:`all`},canonical:`${e}:*`};let t=i.split(`::`);return t.length!==2||!mt.test(t[0])||t[1]!==`*`&&!mt.test(t[1])?null:{kind:`application`,target:e,action:{kind:`sui-function`,module:t[0],function:t[1]},canonical:`${e}:${t[0]}::${t[1]}`}}let a=_t(r);if(!a)return null;if(i===null)return{kind:`recipient`,address:a,canonical:a};if(i===`*`)return{kind:`application`,target:a,action:{kind:`all`},canonical:`${a}:*`};let o=i.match(/^disc:(0x[0-9a-fA-F]{2,64})$/)?.[1];if(o&&o.length%2==0){let e=o.toLowerCase();return{kind:`application`,target:a,action:{kind:`solana-discriminator`,discriminator:e},canonical:`${a}:disc:${e}`}}let s=i.match(/^data-sha256:(0x[0-9a-fA-F]{64})$/)?.[1];if(s){let e=s.toLowerCase();return{kind:`application`,target:a,action:{kind:`solana-data-hash`,hash:e},canonical:`${a}:data-sha256:${e}`}}return null}function $(e,t){let n=vt(e,t);if(!n)throw Error(`Invalid permission-token scope: ${t}`);return n.canonical}function yt(e){return`0x${ce(e)}`}function bt(e,t){let n=vt(e,t);if(!n||n.kind!==`recipient`)throw Error(`Invalid ${e} permission-token recipient: ${t}`);return n.canonical}function xt(e){return $(`evm:1`,`${e}:*`)}function St(e,t){return $(`evm:1`,`${e}:${/^0x[0-9a-fA-F]{8}$/.test(t)?t:ft(t)}`)}function Ct(e){return $(`sui:mainnet`,`${e}:*`)}function wt(e,t,n=`*`){return $(`sui:mainnet`,`${e}:${t}::${n}`)}function Tt(e){return $(`solana:mainnet`,`${e}:*`)}function Et(e,t){return $(`solana:mainnet`,`${e}:disc:${typeof t==`string`?t:yt(t)}`)}function Dt(e,t){return $(`solana:mainnet`,`${e}:data-sha256:${yt(Se(t))}`)}function Ot(e){return e.replace(/([a-z0-9])([A-Z])/g,`$1_$2`).replace(/[-\s]+/g,`_`).toLowerCase()}function kt(e,t){return Et(e,t.discriminator?Uint8Array.from(t.discriminator):Se(y(`global:${Ot(t.name)}`)).slice(0,8))}exports.EthereumProvider=a.r,exports.EthereumProviderExtension=d,Object.defineProperty(exports,"SILK_METHOD",{enumerable:!0,get:function(){return e.w}}),Object.defineProperty(exports,"WAAP_METHOD",{enumerable:!0,get:function(){return e.w}}),exports.SilkWalletConnect=o.t,exports.WaaPWalletConnect=o.t,exports.UIMessageManager=e.t,exports.UI_EVENT_NAMES=e.n,exports.WAAP_EVENTS=t.t,Object.defineProperty(exports,"WaaP",{enumerable:!0,get:function(){return e.b}}),exports.WaaPError=e.x,exports.WaaPSolanaProvider=r.t,exports.WaaPStellarProvider=i.n,exports.WaaPSuiWallet=n.c,exports.WalletMessageManager=e.d,exports.getWaaPIframeDiagnostics=e.s,exports.handleWalletRequestAndResponse=e.i,exports.initWaaP=n.t,exports.initWaaPMulti=n.n,exports.initWaaPSolana=n.r,exports.initWaaPSquid=n.i,exports.initWaaPStellar=i.t,exports.initWaaPSui=n.a,exports.initWaaPTap=n.o,exports.normalizeWaaPError=e.S,exports.permissionTokenEvmContract=xt,exports.permissionTokenEvmFunction=St,exports.permissionTokenRecipient=bt,exports.permissionTokenSolanaAnchorInstruction=kt,exports.permissionTokenSolanaDiscriminator=Et,exports.permissionTokenSolanaInstruction=Dt,exports.permissionTokenSolanaProgram=Tt,exports.permissionTokenSuiFunction=wt,exports.permissionTokenSuiPackage=Ct,exports.preloadWaaPOnIdle=e.r,exports.registerWaaPSolanaWallet=c.t,exports.registerWaaPSuiWallet=s.t,exports.resolveWalletOrigin=e.v,exports.rpcMethodRequiresUI=e.a,exports.subscribeWaaPIframeLifecycle=e.u,exports.useWaapAuth=l.t,exports.useWaapTransaction=l.n,exports.validateWalletOrigin=e.y;
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{C as e,S as t,a as n,b as r,d as i,i as a,n as o,r as s,s as c,t as l,u,v as d,w as f,x as ee,y as te}from"./UIMessageManager-
|
|
1
|
+
import{C as e,S as t,a as n,b as r,d as i,i as a,n as o,r as s,s as c,t as l,u,v as d,w as f,x as ee,y as te}from"./UIMessageManager-BSJdvCEF.mjs";import{t as ne}from"./asyncSigning-CzqBbYDP.mjs";import{a as re,c as ie,i as ae,n as oe,o as se,r as ce,t as le}from"./ui-Dc4medG1.mjs";import{t as ue}from"./SolanaProvider-BcOLwJrt.mjs";import{n as de,t as fe}from"./init-BYobdGXZ.mjs";import{i as pe,r as me}from"./evm-dDrPUbNZ.mjs";import{t as he}from"./WalletConnect-DXiTxC-F.mjs";import{t as ge}from"./register-DpX4UMxA.mjs";import{t as _e}from"./register-BwS4tW5-.mjs";import{n as ve,t as ye}from"./useWaapAuth-Vh8gUs6Y.mjs";import{EventEmitter as be}from"events";var xe=class extends be{constructor(e){super(),this.isSilk=!0,this.connected=!1,this.config={...pe,...e||{}}}sendToExtension(e){return new Promise((t,n)=>{window.postMessage({type:`FROM_PAGE`,request:e},`*`),window.addEventListener(`message`,e=>{e.data.type===`FROM_EXTENSION`&&(e.data.error?n(e.data.error):t(e.data.result))})})}async request(t){if(!Object.keys(e).includes(t.method))return Promise.reject({error:`Not implemented (${t.method})`});let n=await this.sendToExtension(t);return(t.method===e.wallet_switchEthereumChain||t.method===e.wallet_addEthereumChain)&&n===null&&this.emit(`chainChanged`,t.params?.[0]?.chainId),n}async enable(){return this.request({method:`eth_requestAccounts`})}isConnected(){return this.connected}async login(){return this.sendToExtension({method:f.login})}async requestSBT(e){return this.sendToExtension({method:f.silk_requestSbt,params:[e]})}async toggleDarkMode(){this.config.styles.darkMode=!this.config.styles.darkMode,await this.sendToExtension({method:f.set_custom_config,params:[this.config]})}async safe(){return this.sendToExtension({method:f.safe})}};
|
|
2
2
|
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
3
3
|
function Se(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function p(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function m(e,...t){if(!Se(e))throw Error(`Uint8Array expected`);if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length `+t+`, got length=`+e.length)}function h(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function g(e,t){m(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function Ce(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function _(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function v(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function y(e,t){return e<<32-t|e>>>t}const we=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Te(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Ee(e){for(let t=0;t<e.length;t++)e[t]=Te(e[t]);return e}const b=we?e=>e:Ee,De=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,Oe=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function ke(e){if(m(e),De)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=Oe[e[n]];return t}function Ae(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function x(e){return typeof e==`string`&&(e=Ae(e)),m(e),e}var je=class{};function Me(e){let t=t=>e().update(x(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Ne(e){if(e.length>=255)throw TypeError(`Alphabet too long`);let t=new Uint8Array(256);for(let e=0;e<t.length;e++)t[e]=255;for(let n=0;n<e.length;n++){let r=e.charAt(n),i=r.charCodeAt(0);if(t[i]!==255)throw TypeError(r+` is ambiguous`);t[i]=n}let n=e.length,r=e.charAt(0),i=Math.log(n)/Math.log(256),a=Math.log(256)/Math.log(n);function o(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw TypeError(`Expected Uint8Array`);if(t.length===0)return``;let i=0,o=0,s=0,c=t.length;for(;s!==c&&t[s]===0;)s++,i++;let l=(c-s)*a+1>>>0,u=new Uint8Array(l);for(;s!==c;){let e=t[s],r=0;for(let t=l-1;(e!==0||r<o)&&t!==-1;t--,r++)e+=256*u[t]>>>0,u[t]=e%n>>>0,e=e/n>>>0;if(e!==0)throw Error(`Non-zero carry`);o=r,s++}let d=l-o;for(;d!==l&&u[d]===0;)d++;let f=r.repeat(i);for(;d<l;++d)f+=e.charAt(u[d]);return f}function s(e){if(typeof e!=`string`)throw TypeError(`Expected String`);if(e.length===0)return new Uint8Array;let a=0,o=0,s=0;for(;e[a]===r;)o++,a++;let c=(e.length-a)*i+1>>>0,l=new Uint8Array(c);for(;a<e.length;){let r=e.charCodeAt(a);if(r>255)return;let i=t[r];if(i===255)return;let o=0;for(let e=c-1;(i!==0||o<s)&&e!==-1;e--,o++)i+=n*l[e]>>>0,l[e]=i%256>>>0,i=i/256>>>0;if(i!==0)throw Error(`Non-zero carry`);s=o,a++}let u=c-s;for(;u!==c&&l[u]===0;)u++;let d=new Uint8Array(o+(c-u)),f=o;for(;u!==c;)d[f++]=l[u++];return d}function c(e){let t=s(e);if(t)return t;throw Error(`Non-base`+n+` character`)}return{encode:o,decodeUnsafe:s,decode:c}}var S=Ne(`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`);function Pe(e,t,n,r){if(typeof e.setBigUint64==`function`)return e.setBigUint64(t,n,r);let i=BigInt(32),a=BigInt(4294967295),o=Number(n>>i&a),s=Number(n&a),c=r?4:0,l=r?0:4;e.setUint32(t+c,o,r),e.setUint32(t+l,s,r)}function Fe(e,t,n){return e&t^~e&n}function Ie(e,t,n){return e&t^e&n^t&n}var Le=class extends je{constructor(e,t,n,r){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=v(this.buffer)}update(e){h(this),e=x(e),m(e);let{view:t,buffer:n,blockLen:r}=this,i=e.length;for(let a=0;a<i;){let o=Math.min(r-this.pos,i-a);if(o===r){let t=v(e);for(;r<=i-a;a+=r)this.process(t,a);continue}n.set(e.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){h(this),g(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:r,isLE:i}=this,{pos:a}=this;t[a++]=128,_(this.buffer.subarray(a)),this.padOffset>r-a&&(this.process(n,0),a=0);for(let e=a;e<r;e++)t[e]=0;Pe(n,r-8,BigInt(this.length*8),i),this.process(n,0);let o=v(e),s=this.outputLen;if(s%4)throw Error(`_sha2: outputLen should be aligned to 32bit`);let c=s/4,l=this.get();if(c>l.length)throw Error(`_sha2: outputLen bigger than state`);for(let e=0;e<c;e++)o.setUint32(4*e,l[e],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:n,length:r,finished:i,destroyed:a,pos:o}=this;return e.destroyed=a,e.finished=i,e.length=r,e.pos=o,r%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}};const C=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),w=BigInt(2**32-1),T=BigInt(32);function Re(e,t=!1){return t?{h:Number(e&w),l:Number(e>>T&w)}:{h:Number(e>>T&w)|0,l:Number(e&w)|0}}function ze(e,t=!1){let n=e.length,r=new Uint32Array(n),i=new Uint32Array(n);for(let a=0;a<n;a++){let{h:n,l:o}=Re(e[a],t);[r[a],i[a]]=[n,o]}return[r,i]}const Be=(e,t,n)=>e<<n|t>>>32-n,Ve=(e,t,n)=>t<<n|e>>>32-n,He=(e,t,n)=>t<<n-32|e>>>64-n,Ue=(e,t,n)=>e<<n-32|t>>>64-n,We=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),E=new Uint32Array(64);var Ge=class extends Le{constructor(e=32){super(64,e,8,!1),this.A=C[0]|0,this.B=C[1]|0,this.C=C[2]|0,this.D=C[3]|0,this.E=C[4]|0,this.F=C[5]|0,this.G=C[6]|0,this.H=C[7]|0}get(){let{A:e,B:t,C:n,D:r,E:i,F:a,G:o,H:s}=this;return[e,t,n,r,i,a,o,s]}set(e,t,n,r,i,a,o,s){this.A=e|0,this.B=t|0,this.C=n|0,this.D=r|0,this.E=i|0,this.F=a|0,this.G=o|0,this.H=s|0}process(e,t){for(let n=0;n<16;n++,t+=4)E[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=E[e-15],n=E[e-2],r=y(t,7)^y(t,18)^t>>>3,i=y(n,17)^y(n,19)^n>>>10;E[e]=i+E[e-7]+r+E[e-16]|0}let{A:n,B:r,C:i,D:a,E:o,F:s,G:c,H:l}=this;for(let e=0;e<64;e++){let t=y(o,6)^y(o,11)^y(o,25),u=l+t+Fe(o,s,c)+We[e]+E[e]|0,d=(y(n,2)^y(n,13)^y(n,22))+Ie(n,r,i)|0;l=c,c=s,s=o,o=a+u|0,a=i,i=r,r=n,n=u+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,a=a+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,l=l+this.H|0,this.set(n,r,i,a,o,s,c,l)}roundClean(){_(E)}destroy(){this.set(0,0,0,0,0,0,0,0),_(this.buffer)}};const D=Me(()=>new Ge);function Ke(e,t){return e.exec(t)?.groups}const qe=/^tuple(?<array>(\[(\d*)\])*)$/;function O(e){let t=e.type;if(qe.test(e.type)&&`components`in e){t=`(`;let n=e.components.length;for(let r=0;r<n;r++){let i=e.components[r];t+=O(i),r<n-1&&(t+=`, `)}let r=Ke(qe,e.type);return t+=`)${r?.array||``}`,O({...e,type:t})}return`indexed`in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}function k(e){let t=``,n=e.length;for(let r=0;r<n;r++){let i=e[r];t+=O(i),r!==n-1&&(t+=`, `)}return t}function Je(e){return e.type===`function`?`function ${e.name}(${k(e.inputs)})${e.stateMutability&&e.stateMutability!==`nonpayable`?` ${e.stateMutability}`:``}${e.outputs?.length?` returns (${k(e.outputs)})`:``}`:e.type===`event`?`event ${e.name}(${k(e.inputs)})`:e.type===`error`?`error ${e.name}(${k(e.inputs)})`:e.type===`constructor`?`constructor(${k(e.inputs)})${e.stateMutability===`payable`?` payable`:``}`:e.type===`fallback`?`fallback() external${e.stateMutability===`payable`?` payable`:``}`:`receive() external payable`}function A(e,{strict:t=!0}={}){return!e||typeof e!=`string`?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith(`0x`)}function j(e){return A(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}const M=`2.55.2`;let N={getDocsUrl:({docsBaseUrl:e,docsPath:t=``,docsSlug:n})=>t?`${e??`https://viem.sh`}${t}${n?`#${n}`:``}`:void 0,version:`viem@${M}`};var P=class e extends Error{constructor(t,n={}){let r=n.cause instanceof e?n.cause.details:n.cause?.message?n.cause.message:n.details,i=n.cause instanceof e&&n.cause.docsPath||n.docsPath,a=N.getDocsUrl?.({...n,docsPath:i}),o=[t||`An error occurred.`,``,...n.metaMessages?[...n.metaMessages,``]:[],...a?[`Docs: ${a}`]:[],...r?[`Details: ${r}`]:[],...N.version?[`Version: ${N.version}`]:[]].join(`
|
|
4
4
|
`);super(o,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:`BaseError`}),this.details=r,this.docsPath=i,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=t,this.version=M}walk(e){return F(this,e)}};function F(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause!==void 0?F(e.cause,t):t?null:e}var I=class extends P{constructor({offset:e,position:t,size:n}){super(`Slice ${t===`start`?`starting`:`ending`} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:`SliceOffsetOutOfBoundsError`})}},L=class extends P{constructor({size:e,targetSize:t,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${e}) exceeds padding size (${t}).`,{name:`SizeExceedsPaddingSizeError`})}};function R(e,{dir:t,size:n=32}={}){return typeof e==`string`?Ye(e,{dir:t,size:n}):Xe(e,{dir:t,size:n})}function Ye(e,{dir:t,size:n=32}={}){if(n===null)return e;let r=e.replace(`0x`,``);if(r.length>n*2)throw new L({size:Math.ceil(r.length/2),targetSize:n,type:`hex`});return`0x${r[t===`right`?`padEnd`:`padStart`](n*2,`0`)}`}function Xe(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new L({size:e.length,targetSize:n,type:`bytes`});let r=new Uint8Array(n);for(let i=0;i<n;i++){let a=t===`right`;r[a?i:n-i-1]=e[a?i:e.length-i-1]}return r}var Ze=class extends P{constructor({max:e,min:t,signed:n,size:r,value:i}){super(`Number "${i}" is not in safe ${r?`${r*8}-bit ${n?`signed`:`unsigned`} `:``}integer range ${e?`(${t} to ${e})`:`(above ${t})`}`,{name:`IntegerOutOfRangeError`})}},Qe=class extends P{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:`SizeOverflowError`})}};function z(e,{size:t}){if(j(e)>t)throw new Qe({givenSize:j(e),maxSize:t})}const $e=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function et(e,t={}){return typeof e==`number`||typeof e==`bigint`?V(e,t):typeof e==`string`?rt(e,t):typeof e==`boolean`?tt(e,t):B(e,t)}function tt(e,t={}){let n=`0x${Number(e)}`;return typeof t.size==`number`?(z(n,{size:t.size}),R(n,{size:t.size})):n}function B(e,t={}){let n=``;for(let t=0;t<e.length;t++)n+=$e[e[t]];let r=`0x${n}`;return typeof t.size==`number`?(z(r,{size:t.size}),R(r,{dir:`right`,size:t.size})):r}function V(e,t={}){let{signed:n,size:r}=t,i=BigInt(e),a;r?a=n?(1n<<BigInt(r)*8n-1n)-1n:2n**(BigInt(r)*8n)-1n:typeof e==`number`&&(a=BigInt(2**53-1));let o=typeof a==`bigint`&&n?-a-1n:0;if(a&&i>a||i<o){let t=typeof e==`bigint`?`n`:``;throw new Ze({max:a?`${a}${t}`:void 0,min:`${o}${t}`,signed:n,size:r,value:`${e}${t}`})}let s=`0x${(n&&i<0?(1n<<BigInt(r*8))+BigInt(i):i).toString(16)}`;return r?R(s,{size:r}):s}const nt=new TextEncoder;function rt(e,t={}){return B(nt.encode(e),t)}const it=new TextEncoder;function H(e,t={}){return typeof e==`number`||typeof e==`bigint`?ot(e,t):typeof e==`boolean`?at(e,t):A(e)?G(e,t):K(e,t)}function at(e,t={}){let n=new Uint8Array(1);return n[0]=Number(e),typeof t.size==`number`?(z(n,{size:t.size}),R(n,{size:t.size})):n}const U={zero:48,nine:57,A:65,F:70,a:97,f:102};function W(e){if(e>=U.zero&&e<=U.nine)return e-U.zero;if(e>=U.A&&e<=U.F)return e-(U.A-10);if(e>=U.a&&e<=U.f)return e-(U.a-10)}function G(e,t={}){let n=e;t.size&&(z(n,{size:t.size}),n=R(n,{dir:`right`,size:t.size}));let r=n.slice(2);r.length%2&&(r=`0${r}`);let i=r.length/2,a=new Uint8Array(i);for(let e=0,t=0;e<i;e++){let n=W(r.charCodeAt(t++)),i=W(r.charCodeAt(t++));if(n===void 0||i===void 0)throw new P(`Invalid byte sequence ("${r[t-2]}${r[t-1]}" in "${r}").`);a[e]=n*16+i}return a}function ot(e,t){return G(V(e,t))}function K(e,t={}){let n=it.encode(e);return typeof t.size==`number`?(z(n,{size:t.size}),R(n,{dir:`right`,size:t.size})):n}const st=BigInt(0),q=BigInt(1),ct=BigInt(2),lt=BigInt(7),ut=BigInt(256),dt=BigInt(113),ft=[],J=[],Y=[];for(let e=0,t=q,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],ft.push(2*(5*r+n)),J.push((e+1)*(e+2)/2%64);let i=st;for(let e=0;e<7;e++)t=(t<<q^(t>>lt)*dt)%ut,t&ct&&(i^=q<<(q<<BigInt(e))-q);Y.push(i)}const pt=ze(Y,!0),mt=pt[0],ht=pt[1],gt=(e,t,n)=>n>32?He(e,t,n):Be(e,t,n),_t=(e,t,n)=>n>32?Ue(e,t,n):Ve(e,t,n);function vt(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let t=0;t<10;t++)n[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let r=(t+8)%10,i=(t+2)%10,a=n[i],o=n[i+1],s=gt(a,o,1)^n[r],c=_t(a,o,1)^n[r+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],i=e[3];for(let n=0;n<24;n++){let r=J[n],a=gt(t,i,r),o=_t(t,i,r),s=ft[n];t=e[s],i=e[s+1],e[s]=a,e[s+1]=o}for(let t=0;t<50;t+=10){for(let r=0;r<10;r++)n[r]=e[t+r];for(let r=0;r<10;r++)e[t+r]^=~n[(r+2)%10]&n[(r+4)%10]}e[0]^=mt[r],e[1]^=ht[r]}_(n)}var yt=class e extends je{constructor(e,t,n,r=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=r,this.rounds=i,p(n),!(0<e&&e<200))throw Error(`only keccak-f1600 function is supported`);this.state=new Uint8Array(200),this.state32=Ce(this.state)}clone(){return this._cloneInto()}keccak(){b(this.state32),vt(this.state32,this.rounds),b(this.state32),this.posOut=0,this.pos=0}update(e){h(this),e=x(e),m(e);let{blockLen:t,state:n}=this,r=e.length;for(let i=0;i<r;){let a=Math.min(t-this.pos,r-i);for(let t=0;t<a;t++)n[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:n,blockLen:r}=this;e[n]^=t,t&128&&n===r-1&&this.keccak(),e[r-1]^=128,this.keccak()}writeInto(e){h(this,!1),m(e),this.finish();let t=this.state,{blockLen:n}=this;for(let r=0,i=e.length;r<i;){this.posOut>=n&&this.keccak();let a=Math.min(n-this.posOut,i-r);e.set(t.subarray(this.posOut,this.posOut+a),r),this.posOut+=a,r+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible for this instance`);return this.writeInto(e)}xof(e){return p(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(g(e,this),this.finished)throw Error(`digest() was already called`);return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,_(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:i,rounds:a,enableXOF:o}=this;return t||=new e(n,r,i,o,a),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}};const bt=((e,t,n)=>Me(()=>new yt(t,e,n)))(1,136,256/8);function xt(e,t){let n=t||`hex`,r=bt(A(e,{strict:!1})?H(e):e);return n===`bytes`?r:et(r)}const St=e=>xt(H(e));function Ct(e){return St(e)}function wt(e){let t=!0,n=``,r=0,i=``,a=!1;for(let o=0;o<e.length;o++){let s=e[o];if([`(`,`)`,`,`].includes(s)&&(t=!0),s===`(`&&r++,s===`)`&&r--,t){if(r===0){if(s===` `&&[`event`,`function`,``].includes(i))i=``;else if(i+=s,s===`)`){a=!0;break}continue}if(s===` `){e[o-1]!==`,`&&n!==`,`&&n!==`,(`&&(n=``,t=!1);continue}i+=s,n+=s}}if(!a)throw new P(`Unable to normalize signature.`);return i}const Tt=e=>wt(typeof e==`string`?e:Je(e));function Et(e){return Ct(Tt(e))}var Dt=class extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){let t=super.get(e);return super.has(e)&&(super.delete(e),super.set(e,t)),t}set(e,t){if(super.has(e)&&super.delete(e),super.set(e,t),this.maxSize&&this.size>this.maxSize){let e=super.keys().next().value;e!==void 0&&super.delete(e)}return this}};const X=new Dt(8192);function Ot(e,t){if(X.has(`${e}.${t}`))return X.get(`${e}.${t}`);let n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),r=xt(K(n),`bytes`),i=(t?n.substring(`${t}0x`.length):n).split(``);for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&i[e]&&(i[e]=i[e].toUpperCase()),(r[e>>1]&15)>=8&&i[e+1]&&(i[e+1]=i[e+1].toUpperCase());let a=`0x${i.join(``)}`;return X.set(`${e}.${t}`,a),a}const kt=/^0x[a-fA-F0-9]{40}$/,Z=new Dt(8192);function At(e,t){let{strict:n=!0}=t??{},r=`${e}.${n}`;if(Z.has(r))return Z.get(r);let i=kt.test(e)?e.toLowerCase()===e||!n||Ot(e)===e:!1;return Z.set(r,i),i}function jt(e,t,n,{strict:r}={}){return A(e,{strict:!1})?Pt(e,t,n,{strict:r}):Nt(e,t,n,{strict:r})}function Mt(e,t){if(typeof t==`number`&&t>0&&t>j(e)-1)throw new I({offset:t,position:`start`,size:j(e)})}function Q(e,t,n){if(typeof t==`number`&&typeof n==`number`&&j(e)!==n-t)throw new I({offset:n,position:`end`,size:j(e)})}function Nt(e,t,n,{strict:r}={}){Mt(e,t);let i=e.slice(t,n);return r&&Q(i,t,n),i}function Pt(e,t,n,{strict:r}={}){Mt(e,t);let i=`0x${e.replace(`0x`,``).slice((t??0)*2,(n??e.length)*2)}`;return r&&Q(i,t,n),i}const Ft=e=>jt(Et(e),0,4),It=/^0x[0-9a-fA-F]{1,64}$/,Lt=/^[A-Za-z_][A-Za-z0-9_]*$/;function Rt(e){return`0x${e.slice(2).toLowerCase().padStart(64,`0`)}`}function zt(e){return e.indexOf(`:`)}function Bt(e){try{let t=S.decode(e);return t.length===32?S.encode(t):null}catch{return null}}function Vt(e,t){if(t.length===0||new TextEncoder().encode(t).length>512||t.trim()!==t)return null;let n=zt(t),r=n===-1?t:t.slice(0,n),i=n===-1?null:t.slice(n+1);if(i===``)return null;if(e.startsWith(`evm:`)){if(!At(r))return null;let e=r.toLowerCase();if(i===null)return{kind:`recipient`,address:e,canonical:e};if(i===`*`)return{kind:`application`,target:e,action:{kind:`all`},canonical:`${e}:*`};if(!/^0x[0-9a-fA-F]{8}$/.test(i))return null;let t=i.toLowerCase();return{kind:`application`,target:e,action:{kind:`evm-selector`,selector:t},canonical:`${e}:${t}`}}if(e.startsWith(`sui:`)){if(!It.test(r))return null;let e=Rt(r);if(i===null)return{kind:`recipient`,address:e,canonical:e};if(i===`*`)return{kind:`application`,target:e,action:{kind:`all`},canonical:`${e}:*`};let t=i.split(`::`);return t.length!==2||!Lt.test(t[0])||t[1]!==`*`&&!Lt.test(t[1])?null:{kind:`application`,target:e,action:{kind:`sui-function`,module:t[0],function:t[1]},canonical:`${e}:${t[0]}::${t[1]}`}}let a=Bt(r);if(!a)return null;if(i===null)return{kind:`recipient`,address:a,canonical:a};if(i===`*`)return{kind:`application`,target:a,action:{kind:`all`},canonical:`${a}:*`};let o=i.match(/^disc:(0x[0-9a-fA-F]{2,64})$/)?.[1];if(o&&o.length%2==0){let e=o.toLowerCase();return{kind:`application`,target:a,action:{kind:`solana-discriminator`,discriminator:e},canonical:`${a}:disc:${e}`}}let s=i.match(/^data-sha256:(0x[0-9a-fA-F]{64})$/)?.[1];if(s){let e=s.toLowerCase();return{kind:`application`,target:a,action:{kind:`solana-data-hash`,hash:e},canonical:`${a}:data-sha256:${e}`}}return null}function $(e,t){let n=Vt(e,t);if(!n)throw Error(`Invalid permission-token scope: ${t}`);return n.canonical}function Ht(e){return`0x${ke(e)}`}function Ut(e,t){let n=Vt(e,t);if(!n||n.kind!==`recipient`)throw Error(`Invalid ${e} permission-token recipient: ${t}`);return n.canonical}function Wt(e){return $(`evm:1`,`${e}:*`)}function Gt(e,t){return $(`evm:1`,`${e}:${/^0x[0-9a-fA-F]{8}$/.test(t)?t:Ft(t)}`)}function Kt(e){return $(`sui:mainnet`,`${e}:*`)}function qt(e,t,n=`*`){return $(`sui:mainnet`,`${e}:${t}::${n}`)}function Jt(e){return $(`solana:mainnet`,`${e}:*`)}function Yt(e,t){return $(`solana:mainnet`,`${e}:disc:${typeof t==`string`?t:Ht(t)}`)}function Xt(e,t){return $(`solana:mainnet`,`${e}:data-sha256:${Ht(D(t))}`)}function Zt(e){return e.replace(/([a-z0-9])([A-Z])/g,`$1_$2`).replace(/[-\s]+/g,`_`).toLowerCase()}function Qt(e,t){return Yt(e,t.discriminator?Uint8Array.from(t.discriminator):D(Ae(`global:${Zt(t.name)}`)).slice(0,8))}export{me as EthereumProvider,xe as EthereumProviderExtension,f as SILK_METHOD,f as WAAP_METHOD,he as SilkWalletConnect,he as WaaPWalletConnect,l as UIMessageManager,o as UI_EVENT_NAMES,ne as WAAP_EVENTS,r as WaaP,ee as WaaPError,ue as WaaPSolanaProvider,de as WaaPStellarProvider,ie as WaaPSuiWallet,i as WalletMessageManager,c as getWaaPIframeDiagnostics,a as handleWalletRequestAndResponse,le as initWaaP,oe as initWaaPMulti,ce as initWaaPSolana,ae as initWaaPSquid,fe as initWaaPStellar,re as initWaaPSui,se as initWaaPTap,t as normalizeWaaPError,Wt as permissionTokenEvmContract,Gt as permissionTokenEvmFunction,Ut as permissionTokenRecipient,Qt as permissionTokenSolanaAnchorInstruction,Yt as permissionTokenSolanaDiscriminator,Xt as permissionTokenSolanaInstruction,Jt as permissionTokenSolanaProgram,qt as permissionTokenSuiFunction,Kt as permissionTokenSuiPackage,s as preloadWaaPOnIdle,_e as registerWaaPSolanaWallet,ge as registerWaaPSuiWallet,d as resolveWalletOrigin,n as rpcMethodRequiresUI,u as subscribeWaaPIframeLifecycle,ye as useWaapAuth,ve as useWaapTransaction,te as validateWalletOrigin};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as e,_ as t,c as n,d as r,f as i,g as a,h as o,l as s,m as c,o as l,r as u,t as d,v as f,w as p}from"./UIMessageManager-
|
|
1
|
+
import{S as e,_ as t,c as n,d as r,f as i,g as a,h as o,l as s,m as c,o as l,r as u,t as d,v as f,w as p}from"./UIMessageManager-BSJdvCEF.mjs";import{EventEmitter as m}from"events";const h={PUBLIC:`Public Global Stellar Network ; September 2015`,TESTNET:`Test SDF Network ; September 2015`},g=(e,t,n)=>({error:{code:e,message:t,...n?{ext:n}:{}}});function _(e){let t=e instanceof Error?e.message:String(e),n=t.toLowerCase();return n.includes(`reject`)||n.includes(`cancel`)||n.includes(`denied`)||n.includes(`closed`)?g(-4,`The user rejected this request.`,[t]):n.includes(`horizon`)||n.includes(`network`)?g(-2,`An error occurred with the Stellar network. Please try again.`,[t]):g(-1,`The wallet encountered an internal error. Please try again or contact support if the problem persists.`,[t])}var v=class{constructor(e,t={},n,i=t){this.name=`WaaP`,this.version=`1.0.0`,this.address=null,this.accountMode=`tap`,this.loginMethod=null,this.internalEventEmitter=new m,this.initializerPromise=null,this.initializedIframeWindow=null,this.network=t.network??`PUBLIC`,this.walletMessageManager=new r(e,f(t)),this.ensureIframe=n,this.iframeMounted=!n,this.initializerOptions=i,this.uiMessageManager=new d,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:e=>{e.method===p.show_modal?this.uiMessageManager.emit(`show_modal`):e.method===p.hide_modal&&this.uiMessageManager.emit(`hide_modal`)},onAccountChanged:async()=>{this.address=null}})}destroy(){this.walletMessageManager.dispose(),this.internalEventEmitter.removeAllListeners(),this.uiMessageManager.removeAllListeners(),this.address=null}get ui(){return this.uiMessageManager}ensureIframeMounted(){if(this.iframeMounted||!this.ensureIframe)return;let e=this.ensureIframe();if(!e)throw Error(`Failed to create WaaP iframe`);this.iframeMounted=!0,this.walletMessageManager.setIframeWindow(e)}async preload(){if(!this.ensureIframe)return;this.ensureIframeMounted();let e=this.walletMessageManager.getIframeWindow();if(!e)throw Error(`WaaP iframe is not mounted`);if(this.initializedIframeWindow===e&&this.initializerPromise)return this.initializerPromise;this.initializedIframeWindow=e,this.initializerPromise=c(e,()=>this.selectAccountMode(this.accountMode,this.initializerOptions));try{await this.initializerPromise}catch(e){throw this.initializerPromise=null,this.initializedIframeWindow=null,e}}async ensureInitialized(){await this.preload()}setAccountMode(e){this.accountMode=e,this.initializerPromise=null,this.initializedIframeWindow=null}async selectAccountMode(e,t={}){await this.walletMessageManager.pingIframe(),await this.postRequestAndWait({method:p.set_signing_mode,params:[i(e,t)],interactionRequired:!1})}setLoginMethod(e){this.loginMethod=e,e===null&&(this.address=null)}getLoginMethod(){return this.loginMethod}async login(){await this.ensureInitialized();let e=(await this.postRequestAndWait({method:p.login,params:[],interactionRequired:!0})).data;return e!==`waap`&&e!==`human`&&e!==`injected`&&e!==`walletconnect`?(this.loginMethod=null,null):(this.loginMethod=e,e)}async logout(){await this.ensureInitialized(),await this.postRequestAndWait({method:p.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this.address=null}async disconnect(){await this.ensureInitialized(),await this.postRequestAndWait({method:p.stellar_disconnect,params:[],interactionRequired:!1}),this.address=null}async getAccountStatus(){await this.ensureInitialized();let e=await this.postRequestAndWait({method:p.waap_getAccountStatus,params:[],interactionRequired:!1});if(e.error)throw Error(e.error.message||`Failed to read WaaP status`);return e.data}async getNetwork(){return{network:this.network,networkPassphrase:h[this.network]}}async getAddress(){try{if(this.address)return{address:this.address};await this.ensureInitialized();let e=(await this.postRequestAndWait({method:p.stellar_connect,params:[{}],interactionRequired:!this.loginMethod})).data?.address;return e?(this.address=e,{address:e}):g(-1,`The wallet has no Stellar address for this account.`)}catch(e){return _(e)}}async signTransaction(e,t){try{if(typeof e!=`string`||e.length===0)return g(-3,`Request is invalid. Please check the details.`,[`Missing transaction XDR`]);let n=this.networkMismatch(t?.networkPassphrase);if(n)return n;if(t?.submitUrl)return g(-3,`This wallet submits through its own Stellar network connection and cannot submit to a supplied URL.`,[`submitUrl is not supported`]);let r=await this.requireAddress(t?.address);if(`error`in r)return r;let i=(await this.postRequestAndWait({method:t?.submit?p.stellar_signAndSendTransaction:p.stellar_signTransaction,params:[{xdr:e,account:r.address,network:this.network}],interactionRequired:!0})).data;return i?.signedTxXdr?{signedTxXdr:i.signedTxXdr,signerAddress:r.address}:g(-1,`The wallet did not return a signed transaction.`)}catch(e){return _(e)}}async signMessage(e,t){try{if(typeof e!=`string`||e.length===0)return g(-3,`Request is invalid. Please check the details.`,[`Missing message`]);let n=this.networkMismatch(t?.networkPassphrase);if(n)return n;let r=await this.requireAddress(t?.address);if(`error`in r)return r;let i=(await this.postRequestAndWait({method:p.stellar_signMessage,params:[{message:e,account:r.address,network:this.network}],interactionRequired:!0})).data;return i?.signedMessage?{signedMessage:i.signedMessage,signerAddress:r.address}:g(-1,`The wallet did not return a signature.`)}catch(e){return _(e)}}async signAuthEntry(){return g(-1,`This wallet does not support Soroban authorization entries yet.`)}networkMismatch(e){if(!(!e||e===h[this.network]))return g(-3,`This wallet is connected to Stellar ${this.network}. Reconnect it to the network this transaction was built for.`,[`expected ${h[this.network]}`])}async requireAddress(e){let t=await this.getAddress();if(t.error)return{error:t.error};let n=t.address;return e&&e!==n?g(-3,`This wallet is not signing for the requested address.`,[`requested ${e}`]):{address:n}}async postRequestAndWait(t){let r;try{t.interactionRequired&&s({layout:t.method===p.login?`auth`:`signing`}),r=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let e=await l({eventEmitter:this.internalEventEmitter,id:r,method:t.method,interactionRequired:t.interactionRequired,signal:t.signal,timeoutMs:t.timeoutMs,onCancel:()=>{this.walletMessageManager.cancelSilkRequest(r,t.method),t.interactionRequired&&n()}});if(e.error)throw Error(e.error.message);return e}catch(i){throw t.interactionRequired&&r===void 0&&n(),e(i,{chain:`stellar`,method:String(t.method),requestId:r})}}};function y(e={}){let r=()=>(a(e),o(`tap`).contentWindow),i=e.deferIframe===!1,c=e.deferIframe===void 0,l=i?r():null;if(i&&!l)throw Error(`Failed to create WaaP iframe`);let d=new v(l,e,r,{...e,chains:[`stellar`]});i&&d.preload().catch(()=>void 0);let f=d.destroy.bind(d);if(d.destroy=()=>{f(),t()},c){let e=u(d),t=d.destroy.bind(d);d.destroy=()=>{e(),t()}}return d.ui.on(`show_modal`,()=>{s()}),d.ui.on(`hide_modal`,()=>{n()}),d}export{v as n,y as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./UIMessageManager-
|
|
1
|
+
const e=require("./UIMessageManager-Bzrjl7s7.js");let t=require("events");const n={PUBLIC:`Public Global Stellar Network ; September 2015`,TESTNET:`Test SDF Network ; September 2015`},r=(e,t,n)=>({error:{code:e,message:t,...n?{ext:n}:{}}});function i(e){let t=e instanceof Error?e.message:String(e),n=t.toLowerCase();return n.includes(`reject`)||n.includes(`cancel`)||n.includes(`denied`)||n.includes(`closed`)?r(-4,`The user rejected this request.`,[t]):n.includes(`horizon`)||n.includes(`network`)?r(-2,`An error occurred with the Stellar network. Please try again.`,[t]):r(-1,`The wallet encountered an internal error. Please try again or contact support if the problem persists.`,[t])}var a=class{constructor(n,r={},i,a=r){this.name=`WaaP`,this.version=`1.0.0`,this.address=null,this.accountMode=`tap`,this.loginMethod=null,this.internalEventEmitter=new t.EventEmitter,this.initializerPromise=null,this.initializedIframeWindow=null,this.network=r.network??`PUBLIC`,this.walletMessageManager=new e.d(n,e.v(r)),this.ensureIframe=i,this.iframeMounted=!i,this.initializerOptions=a,this.uiMessageManager=new e.t,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:t=>{t.method===e.w.show_modal?this.uiMessageManager.emit(`show_modal`):t.method===e.w.hide_modal&&this.uiMessageManager.emit(`hide_modal`)},onAccountChanged:async()=>{this.address=null}})}destroy(){this.walletMessageManager.dispose(),this.internalEventEmitter.removeAllListeners(),this.uiMessageManager.removeAllListeners(),this.address=null}get ui(){return this.uiMessageManager}ensureIframeMounted(){if(this.iframeMounted||!this.ensureIframe)return;let e=this.ensureIframe();if(!e)throw Error(`Failed to create WaaP iframe`);this.iframeMounted=!0,this.walletMessageManager.setIframeWindow(e)}async preload(){if(!this.ensureIframe)return;this.ensureIframeMounted();let t=this.walletMessageManager.getIframeWindow();if(!t)throw Error(`WaaP iframe is not mounted`);if(this.initializedIframeWindow===t&&this.initializerPromise)return this.initializerPromise;this.initializedIframeWindow=t,this.initializerPromise=e.m(t,()=>this.selectAccountMode(this.accountMode,this.initializerOptions));try{await this.initializerPromise}catch(e){throw this.initializerPromise=null,this.initializedIframeWindow=null,e}}async ensureInitialized(){await this.preload()}setAccountMode(e){this.accountMode=e,this.initializerPromise=null,this.initializedIframeWindow=null}async selectAccountMode(t,n={}){await this.walletMessageManager.pingIframe(),await this.postRequestAndWait({method:e.w.set_signing_mode,params:[e.f(t,n)],interactionRequired:!1})}setLoginMethod(e){this.loginMethod=e,e===null&&(this.address=null)}getLoginMethod(){return this.loginMethod}async login(){await this.ensureInitialized();let t=(await this.postRequestAndWait({method:e.w.login,params:[],interactionRequired:!0})).data;return t!==`waap`&&t!==`human`&&t!==`injected`&&t!==`walletconnect`?(this.loginMethod=null,null):(this.loginMethod=t,t)}async logout(){await this.ensureInitialized(),await this.postRequestAndWait({method:e.w.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this.address=null}async disconnect(){await this.ensureInitialized(),await this.postRequestAndWait({method:e.w.stellar_disconnect,params:[],interactionRequired:!1}),this.address=null}async getAccountStatus(){await this.ensureInitialized();let t=await this.postRequestAndWait({method:e.w.waap_getAccountStatus,params:[],interactionRequired:!1});if(t.error)throw Error(t.error.message||`Failed to read WaaP status`);return t.data}async getNetwork(){return{network:this.network,networkPassphrase:n[this.network]}}async getAddress(){try{if(this.address)return{address:this.address};await this.ensureInitialized();let t=(await this.postRequestAndWait({method:e.w.stellar_connect,params:[{}],interactionRequired:!this.loginMethod})).data?.address;return t?(this.address=t,{address:t}):r(-1,`The wallet has no Stellar address for this account.`)}catch(e){return i(e)}}async signTransaction(t,n){try{if(typeof t!=`string`||t.length===0)return r(-3,`Request is invalid. Please check the details.`,[`Missing transaction XDR`]);let i=this.networkMismatch(n?.networkPassphrase);if(i)return i;if(n?.submitUrl)return r(-3,`This wallet submits through its own Stellar network connection and cannot submit to a supplied URL.`,[`submitUrl is not supported`]);let a=await this.requireAddress(n?.address);if(`error`in a)return a;let o=(await this.postRequestAndWait({method:n?.submit?e.w.stellar_signAndSendTransaction:e.w.stellar_signTransaction,params:[{xdr:t,account:a.address,network:this.network}],interactionRequired:!0})).data;return o?.signedTxXdr?{signedTxXdr:o.signedTxXdr,signerAddress:a.address}:r(-1,`The wallet did not return a signed transaction.`)}catch(e){return i(e)}}async signMessage(t,n){try{if(typeof t!=`string`||t.length===0)return r(-3,`Request is invalid. Please check the details.`,[`Missing message`]);let i=this.networkMismatch(n?.networkPassphrase);if(i)return i;let a=await this.requireAddress(n?.address);if(`error`in a)return a;let o=(await this.postRequestAndWait({method:e.w.stellar_signMessage,params:[{message:t,account:a.address,network:this.network}],interactionRequired:!0})).data;return o?.signedMessage?{signedMessage:o.signedMessage,signerAddress:a.address}:r(-1,`The wallet did not return a signature.`)}catch(e){return i(e)}}async signAuthEntry(){return r(-1,`This wallet does not support Soroban authorization entries yet.`)}networkMismatch(e){if(!(!e||e===n[this.network]))return r(-3,`This wallet is connected to Stellar ${this.network}. Reconnect it to the network this transaction was built for.`,[`expected ${n[this.network]}`])}async requireAddress(e){let t=await this.getAddress();if(t.error)return{error:t.error};let n=t.address;return e&&e!==n?r(-3,`This wallet is not signing for the requested address.`,[`requested ${e}`]):{address:n}}async postRequestAndWait(t){let n;try{t.interactionRequired&&e.l({layout:t.method===e.w.login?`auth`:`signing`}),n=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let r=await e.o({eventEmitter:this.internalEventEmitter,id:n,method:t.method,interactionRequired:t.interactionRequired,signal:t.signal,timeoutMs:t.timeoutMs,onCancel:()=>{this.walletMessageManager.cancelSilkRequest(n,t.method),t.interactionRequired&&e.c()}});if(r.error)throw Error(r.error.message);return r}catch(r){throw t.interactionRequired&&n===void 0&&e.c(),e.S(r,{chain:`stellar`,method:String(t.method),requestId:n})}}};function o(t={}){let n=()=>(e.g(t),e.h(`tap`).contentWindow),r=t.deferIframe===!1,i=t.deferIframe===void 0,o=r?n():null;if(r&&!o)throw Error(`Failed to create WaaP iframe`);let s=new a(o,t,n,{...t,chains:[`stellar`]});r&&s.preload().catch(()=>void 0);let c=s.destroy.bind(s);if(s.destroy=()=>{c(),e._()},i){let t=e.r(s),n=s.destroy.bind(s);s.destroy=()=>{t(),n()}}return s.ui.on(`show_modal`,()=>{e.l()}),s.ui.on(`hide_modal`,()=>{e.c()}),s}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./ui-CltYKydI.js"),t=require("./SolanaProvider-DqkLbM2y.js");function n(n,r={}){let i=new t.t(n,r);return i.setAccountMode(`tap`),i.selectAccountMode(`tap`).catch(()=>void 0),e.s(i),i}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return n}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./ui-
|
|
1
|
+
const e=require("./ui-CltYKydI.js");let t=require("@mysten/wallet-standard");function n(n,r={}){let i=new e.c(n,r);return(0,t.registerWallet)(i),i}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return n}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e}from"./ui-Dc4medG1.mjs";import{t}from"./SolanaProvider-BcOLwJrt.mjs";function n(n,r={}){let i=new t(n,r);return i.setAccountMode(`tap`),i.selectAccountMode(`tap`).catch(()=>void 0),e(i),i}export{n as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e}from"./ui-Dc4medG1.mjs";import{registerWallet as t}from"@mysten/wallet-standard";function n(n,r={}){let i=new e(n,r);return t(i),i}export{n as t};
|
package/dist/solana.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./UIMessageManager-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./UIMessageManager-Bzrjl7s7.js"),t=require("./ui-CltYKydI.js"),n=require("./SolanaProvider-DqkLbM2y.js"),r=require("./register-B_aOj8Br.js");exports.WaaPError=e.x,exports.WaaPSolanaProvider=n.t,exports.getWaaPIframeDiagnostics=e.s,exports.initWaaP=t.r,exports.initWaaPSolana=t.r,exports.normalizeWaaPError=e.S,exports.preloadWaaPOnIdle=e.r,exports.registerWaaPSolanaWallet=r.t,exports.resolveWalletOrigin=e.v,exports.subscribeWaaPIframeLifecycle=e.u,exports.validateWalletOrigin=e.y;
|
package/dist/solana.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as e,r as t,s as n,u as r,v as i,x as a,y as o}from"./UIMessageManager-
|
|
1
|
+
import{S as e,r as t,s as n,u as r,v as i,x as a,y as o}from"./UIMessageManager-BSJdvCEF.mjs";import{r as s}from"./ui-Dc4medG1.mjs";import{t as c}from"./SolanaProvider-BcOLwJrt.mjs";import{t as l}from"./register-BwS4tW5-.mjs";export{a as WaaPError,c as WaaPSolanaProvider,n as getWaaPIframeDiagnostics,s as initWaaP,s as initWaaPSolana,e as normalizeWaaPError,t as preloadWaaPOnIdle,l as registerWaaPSolanaWallet,i as resolveWalletOrigin,r as subscribeWaaPIframeLifecycle,o as validateWalletOrigin};
|
package/dist/stellar.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./UIMessageManager-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./UIMessageManager-Bzrjl7s7.js"),t=require("./init-DDxhKxVn.js");exports.WaaPError=e.x,exports.WaaPStellarProvider=t.n,exports.getWaaPIframeDiagnostics=e.s,exports.initWaaP=t.t,exports.initWaaPStellar=t.t,exports.preloadWaaPOnIdle=e.r,exports.resolveWalletOrigin=e.v,exports.subscribeWaaPIframeLifecycle=e.u,exports.validateWalletOrigin=e.y;
|
package/dist/stellar.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,s as t,u as n,v as r,x as i,y as a}from"./UIMessageManager-
|
|
1
|
+
import{r as e,s as t,u as n,v as r,x as i,y as a}from"./UIMessageManager-BSJdvCEF.mjs";import{n as o,t as s}from"./init-BYobdGXZ.mjs";export{i as WaaPError,o as WaaPStellarProvider,t as getWaaPIframeDiagnostics,s as initWaaP,s as initWaaPStellar,e as preloadWaaPOnIdle,r as resolveWalletOrigin,n as subscribeWaaPIframeLifecycle,a as validateWalletOrigin};
|
package/dist/sui.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./UIMessageManager-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./UIMessageManager-Bzrjl7s7.js"),t=require("./ui-CltYKydI.js"),n=require("./register-BaLxudob.js");exports.WaaPError=e.x,exports.WaaPSuiWallet=t.c,exports.getWaaPIframeDiagnostics=e.s,exports.initWaaP=t.a,exports.initWaaPSui=t.a,exports.normalizeWaaPError=e.S,exports.preloadWaaPOnIdle=e.r,exports.registerWaaPSuiWallet=n.t,exports.resolveWalletOrigin=e.v,exports.subscribeWaaPIframeLifecycle=e.u,exports.validateWalletOrigin=e.y;
|
package/dist/sui.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as e,r as t,s as n,u as r,v as i,x as a,y as o}from"./UIMessageManager-
|
|
1
|
+
import{S as e,r as t,s as n,u as r,v as i,x as a,y as o}from"./UIMessageManager-BSJdvCEF.mjs";import{a as s,c}from"./ui-Dc4medG1.mjs";import{t as l}from"./register-DpX4UMxA.mjs";export{a as WaaPError,c as WaaPSuiWallet,n as getWaaPIframeDiagnostics,s as initWaaP,s as initWaaPSui,e as normalizeWaaPError,t as preloadWaaPOnIdle,l as registerWaaPSuiWallet,i as resolveWalletOrigin,r as subscribeWaaPIframeLifecycle,o as validateWalletOrigin};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./UIMessageManager-CPw6PggC.js"),t=require("./asyncSigning-B0KrmKk7.js"),n=require("./SolanaProvider-Uv3q1b0H.js"),r=require("./init-IB0dPXBp.js"),i=require("./evm-_ReyhrCP.js");let a=require("events"),o=require("@wallet-standard/app");function s(){try{if(typeof process<`u`&&process.env)return(process.env.NEXT_PUBLIC_WAAP_MAINTENANCE||process.env.VITE_WAAP_MAINTENANCE||process.env.REACT_APP_WAAP_MAINTENANCE||process.env.WAAP_MAINTENANCE)===`true`}catch{return!1}return!1}function c(){try{return typeof localStorage<`u`&&localStorage.getItem(`waap_maintenance_override`)===`1`}catch{return!1}}function l(){if(s()&&!c())throw new e.x(`maintenance`,`WaaP is temporarily unavailable for maintenance.`)}const u={"sui:mainnet":`https://sui-rpc.publicnode.com`,"sui:testnet":`https://sui-testnet-rpc.publicnode.com`,"sui:devnet":`https://fullnode.devnet.sui.io`,"sui:localnet":`http://127.0.0.1:9000`},d=e=>u[e],f=e=>e.slice(4);var p=class{constructor(t,n={},r,i=n){this.lastKnownConversion=`pending`,this.name=`WaaP`,this.version=`1.0.0`,this.icon=`data:image/webp;base64,UklGRpoDAABXRUJQVlA4WAoAAAAQAAAAYwAAYwAAQUxQSDMDAAABJyAQSOFmFxERA8TatqpGoimANbEAxlBAPhSgQP9FyXv3vkcFEf134EZS5DREhGvTM8z0ki8stMRvK4cm8bk5rIu3xNbvkgPk4K6ti5IHquRQnLi6KrdBb81hdyF1jTLM1CW425943iba38/djOcG+dg85p/KXGd/g7+xAzJ2VPWTS8R+q65uA1ZcwG3iZ4urjw9Lh4xn83n3gZmQQ3VMVGEO6D403jdr81Ml1OISAAf7RGImBHISwQ5zCJonTuEyOyP7Sga4cDcjMPgXuiK9cUpaGrIDJtH4iAB25utB8O0DDztOKTr8u9hpX0jrx6k8UM5eAlqsynNxlX9tPRLQEtySKwcDOIDnMqEcek1UnylVNac4r0mlypNvhmCNODlhUXuT4fxTQyrDKY0uyV+gi0iiLLpY76A08C/IX8GQoYb8PcVxK7HkZkT5IjAF4gZicOfJW1ovJjyAlYVPlM6BkkHGI0fniAIZIXC0CbAM92BB8SBznU0ITYLr9XkfnKlDgV8170HGMWwitY51+zxcgkftLD4RLh4HSTIa3QzRWKxlaHZTz21s6GLxnBmjogkVilW4kuaMMMGUfgkZ1JhrBSEANrEDMwucAXgbTqIExY3FYRMdtkQRDFjD6BKtJ2GWTopGRY4P9DBkdE4rp9LJHuYhju45oeVZVv3zNmVdZiIOffHDppOz0Q34p0e/+nXy7JmF1846lmF2ZombLt8pgZpbPNeqpJSVJ0bGd4cH8dUNflNPfdQVXUkC95UQS0ZGfDmOJgjs3IyVOExZBEsxONd080gYK/ftQ2nbYaqGW89Hu7M6avmzXEjhO4G8O8ae8gwWtwZsyp8v8j/ys5H7bM+unOfurO4bbbL4v865Nb8s98Ld2X9yg6tLBQanMP8fhplOMMN8fiNDzTvNOMXGuYzejo12vY7s3clhXwgDPuBIcxi9QZftbKVxAjLCcVQdRxGR1QknhCs3GuieMLzfrrC9RhfJgVpcXRn71nZfEjsiYy/Ca1J7ch0clK64ReH3G/s2cekpP+BIx2YteMvSoLy6G9FCgd1nvF/VoVRtJoNJNLQ0RM3BXY9WgPbcHF78swAAVlA4IEAAAACwBQCdASpkAGQAPpFIoUylpCMiIKgAsBIJaW7hc+AAY2upvcReWAa6m9xF5YBrqb3EXlgGngAA/v81aVcAAAAA`,this._accounts=[],this.accountMode=`tap`,this.loginMethod=null,this._chains=[`sui:mainnet`,`sui:testnet`,`sui:devnet`],this.internalEventEmitter=new a.EventEmitter,this.changeListeners=new Set,this.initializerPromise=null,this.initializedIframeWindow=null,this.walletMessageManager=new e.d(t,e.v(n)),this.ensureIframe=r,this.iframeMounted=!r,this.initializerOptions=i,this.uiMessageManager=new e.t,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:t=>{t.method===e.w.show_modal?this.uiMessageManager.emit(`show_modal`):t.method===e.w.hide_modal&&this.uiMessageManager.emit(`hide_modal`)},onAccountChanged:async e=>{try{let e=await this.refreshAccounts();this.notifyChange({accounts:e.accounts})}catch(e){console.error(`Failed to refresh Sui accounts:`,e),this._accounts=[],this.notifyChange({accounts:[]})}}})}destroy(){this.walletMessageManager.dispose(),this.internalEventEmitter.removeAllListeners(),this.uiMessageManager.removeAllListeners(),this.changeListeners.clear(),this._accounts=[]}ensureIframeMounted(){if(this.iframeMounted||!this.ensureIframe)return;let e=this.ensureIframe();if(!e)throw Error(`Failed to create WaaP iframe`);this.iframeMounted=!0,this.walletMessageManager.setIframeWindow(e)}async preload(){if(!this.ensureIframe)return;this.ensureIframeMounted();let t=this.walletMessageManager.getIframeWindow();if(!t)throw Error(`WaaP iframe is not mounted`);if(this.initializedIframeWindow===t&&this.initializerPromise)return this.initializerPromise;this.initializedIframeWindow=t,this.initializerPromise=e.m(t,()=>this.selectAccountMode(this.accountMode,this.initializerOptions));try{await this.initializerPromise}catch(e){throw this.initializerPromise=null,this.initializedIframeWindow=null,e}}async ensureInitialized(){await this.preload()}async refreshAccounts(){try{await this.ensureInitialized();let e=await this.postRequestAndWait({method:`sui_connect`,params:[{silent:!0}],interactionRequired:!1});if(e.error)return this._accounts=[],{accounts:[]};let t=e.data?.accounts||[];return this._accounts=t,{accounts:this._accounts}}catch{return this._accounts=[],{accounts:[]}}}get chains(){return this._chains}get accounts(){return this._accounts}get ui(){return this.uiMessageManager}getAccountStatus(){return{authenticated:this.loginMethod!==null,loginMethod:this.loginMethod,activeMode:this.loginMethod?this.accountMode:null,mode:this.accountMode,conversion:this.loginMethod?this.lastKnownConversion:`not_required`,tap:null,squid:null,accounts:this._accounts[0]?{sui:this._accounts[0].address}:{}}}get session(){return{login:()=>this.login(),logout:()=>this.logout(),getLoginMethod:()=>this.getLoginMethod(),getAccountStatus:()=>this.getCanonicalAccountStatus()}}async getCanonicalAccountStatus(){await this.ensureInitialized();let t=await this.postRequestAndWait({method:e.w.waap_getAccountStatus,params:[],interactionRequired:!1});if(t.error)throw Error(t.error.message||`Failed to read WaaP status`);let n=t.data;return this.syncLoginMethodFromCanonicalStatus(n),n?.conversion&&(this.lastKnownConversion=n.conversion),n}setAccountMode(e){this.accountMode=e,this.initializerPromise=null,this.initializedIframeWindow=null}async selectAccountMode(t,n={}){await this.walletMessageManager.pingIframe(),await this.postRequestAndWait({method:e.w.set_signing_mode,params:[e.f(t,n)],interactionRequired:!1})}setLoginMethod(e){this.loginMethod=e,e===null&&(this._accounts=[],this.notifyChange({accounts:[]}))}getLoginMethod(){return this.loginMethod}async login(){await this.ensureInitialized();let t=await this.restoreSession();if(t)return t;let n=(await this.postRequestAndWait({method:e.w.login,params:[],interactionRequired:!0})).data;return n!==`waap`&&n!==`human`&&n!==`injected`&&n!==`walletconnect`?(this.loginMethod=null,null):(this.loginMethod=n,n)}async logout(){this.lastKnownConversion=`pending`,await this.ensureInitialized(),await this.postRequestAndWait({method:e.w.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this._accounts=[],this.notifyChange({accounts:[]})}async connect(t){if(!this.loginMethod){if(t?.silent)throw new e.x(`not_authenticated`,`Not authenticated: a silent connect cannot open login.`,{operation:{chain:`sui`,method:`sui_connect`}});if(!await this.login())throw new e.x(`user_rejected`,`User rejected WaaP login during connect().`,{operation:{chain:`sui`,method:`sui_connect`}})}await this.ensureInitialized();let n=await this.postRequestAndWait({method:`sui_connect`,params:[t||{}],interactionRequired:!t?.silent,signal:t?.signal,timeoutMs:t?.timeoutMs});if(n.error)throw Error(n.error.message||`Failed to connect`);let r=n.data?.accounts||[];return this._accounts=r,this.notifyChange({accounts:this._accounts}),t?.silent||this.internalEventEmitter.emit(`connect`),this.internalEventEmitter.emit(`accountsChanged`,this._accounts.map(e=>e.address)),{accounts:this._accounts}}async restoreSession(){try{let e=await this.getCanonicalAccountStatus();if(e.authenticated&&(e.loginMethod===`waap`||e.loginMethod===`human`||e.loginMethod===`injected`||e.loginMethod===`walletconnect`))return this.loginMethod=e.loginMethod,e.loginMethod}catch{}return null}syncLoginMethodFromCanonicalStatus(e){let t=e.authenticated&&(e.loginMethod===`waap`||e.loginMethod===`human`||e.loginMethod===`injected`||e.loginMethod===`walletconnect`)?e.loginMethod:null;t!==this.loginMethod&&this.setLoginMethod(t)}async disconnect(){await this.ensureInitialized(),await this.postRequestAndWait({method:`sui_disconnect`,params:[],interactionRequired:!1}),this._accounts=[],this.notifyChange({accounts:[]})}async signPersonalMessage(e){await this.ensureInitialized();let t=e.account.address;if(!this._accounts.some(e=>e.address===t))throw Error(`Account ${t} is not connected`);let n=await this.postRequestAndWait({method:`sui_signPersonalMessage`,params:[{message:Array.from(e.message),account:t,chain:e.chain}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(n.error)throw Error(n.error.message||`Failed to sign message`);return{bytes:n.data.bytes,signature:n.data.signature}}async extractTransferAddresses(e,t=!1){try{let{Transaction:n}=await import(`@mysten/sui/transactions`),r=(t?n.fromKind(e):n.from(e)).getData(),i=[];for(let e of r.commands){if(e.$kind!==`TransferObjects`)continue;let t=e.TransferObjects.address;if(t.$kind!==`Input`)continue;let n=t.Input,a=r.inputs[n];if(!a||a.$kind!==`Pure`)continue;let o=Uint8Array.from(atob(a.Pure.bytes),e=>e.charCodeAt(0));if(o.length!==32)continue;let s=`0x`+Array.from(o).map(e=>e.toString(16).padStart(2,`0`)).join(``);i.push(s)}return i}catch{return[]}}async resolveTransactionBytes(e,t=`sui:mainnet`){if(e instanceof Uint8Array)return{bytes:e,kind:`transaction-data`};if(Array.isArray(e))return{bytes:new Uint8Array(e),kind:`transaction-data`};if(typeof e==`string`)try{return{bytes:Uint8Array.from(atob(e),e=>e.charCodeAt(0)),kind:`transaction-data`}}catch{throw Error(`Transaction string must be base64 encoded bytes. If you have a serialized transaction JSON, please build it to bytes first.`)}else if(e&&typeof e==`object`){if(typeof e.build==`function`)try{let{SuiJsonRpcClient:n}=await import(`@mysten/sui/jsonRpc`),r=f(t),i=new n({url:d(t),network:r});return{bytes:await e.build({client:i,onlyTransactionKind:!0}),kind:`transaction-kind`}}catch(e){throw console.warn(`[SuiWallet] Failed to build transaction object:`,e),Error(`Failed to build transaction: ${e instanceof Error?e.message:String(e)}`)}if(typeof e.serialize==`function`)try{let t=await e.serialize();if(typeof t==`string`)return{bytes:Uint8Array.from(atob(t),e=>e.charCodeAt(0)),kind:`transaction-data`};if(t instanceof Uint8Array)return{bytes:t,kind:`transaction-data`}}catch(e){console.warn(`[SuiWallet] serialize() failed:`,e)}if(typeof e.toJSON==`function`)try{let t=await e.toJSON();if(typeof t==`string`)try{return{bytes:Uint8Array.from(atob(t),e=>e.charCodeAt(0)),kind:`transaction-data`}}catch{try{let e=JSON.parse(t);if(e.bytes&&typeof e.bytes==`string`)return{bytes:Uint8Array.from(atob(e.bytes),e=>e.charCodeAt(0)),kind:`transaction-data`}}catch{}}}catch(e){console.warn(`[SuiWallet] toJSON() failed:`,e)}if(typeof e.getData==`function`)try{let t=e.getData();if(t instanceof Uint8Array)return{bytes:t,kind:`transaction-data`}}catch(e){console.warn(`[SuiWallet] getData() failed:`,e)}throw Error(`Unsupported transaction format. Keys: ${Object.keys(e).join(`, `)}`)}else throw Error(`Unsupported transaction format: ${typeof e}. Please pass Uint8Array bytes or a Transaction object.`)}async signTransaction(e){await this.ensureInitialized();let t=e.account.address;if(!this._accounts.some(e=>e.address===t))throw Error(`Account ${t} is not connected`);let n=await this.resolveTransactionBytes(e.transaction,e.chain),r=await this.postRequestAndWait({method:`sui_signTransaction`,params:[{...n.kind===`transaction-kind`?{transactionKind:Array.from(n.bytes)}:{transaction:Array.from(n.bytes)},account:t,chain:e.chain,withPT:e.withPT}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(r.error)throw Error(r.error.message||`Failed to sign transaction`);return{bytes:r.data.bytes,signature:r.data.signature}}async signAndExecuteTransaction(e){await this.ensureInitialized();let t=e.account.address;if(!this._accounts.some(e=>e.address===t))throw Error(`Account ${t} is not connected`);let n=await this.resolveTransactionBytes(e.transaction,e.chain),r=await this.extractTransferAddresses(n.bytes,n.kind===`transaction-kind`),i=await this.postRequestAndWait({method:`sui_signAndExecuteTransaction`,params:[{...n.kind===`transaction-kind`?{transactionKind:Array.from(n.bytes)}:{transaction:Array.from(n.bytes)},account:t,chain:e.chain,options:e.options,requestType:e.requestType,withPT:e.withPT,toAddresses:r.length>0?r:void 0}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(i.error)throw Error(i.error.message||`Failed to sign and execute transaction`);return i.data}async switchChain(e){if(await this.ensureInitialized(),!this._chains.includes(e.chain))throw Error(`Chain ${e.chain} is not supported`);let t=await this.postRequestAndWait({method:`sui_switchChain`,params:[e],interactionRequired:!1});if(t.error)throw Error(t.error.message||`Failed to switch chain`);this.notifyChange({chains:this._chains,accounts:this._accounts})}on(e,t){return e===`change`?(this.changeListeners.add(t),()=>{this.changeListeners.delete(t)}):(this.internalEventEmitter.on(e,t),()=>{this.internalEventEmitter.removeListener(e,t)})}removeListener(e,t){if(e===`change`){this.changeListeners.delete(t);return}this.internalEventEmitter.removeListener(e,t)}get features(){return{"standard:connect":{version:`1.0.0`,connect:this.connect.bind(this)},"standard:disconnect":{version:`1.0.0`,disconnect:this.disconnect.bind(this)},"standard:events":{version:`1.0.0`,on:this.on.bind(this)},"sui:signPersonalMessage":{version:`1.1.0`,signPersonalMessage:this.signPersonalMessage.bind(this)},"sui:signTransaction":{version:`2.0.0`,signTransaction:this.signTransaction.bind(this)},"sui:signAndExecuteTransaction":{version:`1.0.0`,signAndExecuteTransaction:this.signAndExecuteTransaction.bind(this)},"sui:signTransactionBlock":{version:`2.0.0`,signTransactionBlock:this.signTransactionBlock.bind(this)},"sui:signAndExecuteTransactionBlock":{version:`1.0.0`,signAndExecuteTransactionBlock:this.signAndExecuteTransactionBlock.bind(this)},"sui:switchChain":{version:`1.0.0`,switchChain:this.switchChain.bind(this)}}}async signTransactionBlock(e){return this.signTransaction({transaction:e.transactionBlock,account:e.account,chain:e.chain,signal:e.signal,timeoutMs:e.timeoutMs,withPT:e.withPT})}async signAndExecuteTransactionBlock(e){return this.signAndExecuteTransaction({transaction:e.transactionBlock,account:e.account,chain:e.chain,options:e.options,requestType:e.requestType,signal:e.signal,timeoutMs:e.timeoutMs,withPT:e.withPT})}async requestPermissionToken(t){await this.ensureInitialized();let n={...t,walletMode:this.accountMode},r=await this.postRequestAndWait({method:e.w.waap_requestPermissionToken,params:[n],interactionRequired:!0});if(r.error)throw Error(r.error.message||`Failed to request permission token`);return r.data}async getPermissionTokenStatus(t){return await this.ensureInitialized(),(await this.postRequestAndWait({method:e.w.waap_getPermissionTokenStatus,params:[t],interactionRequired:!1})).data}async clearPermissionToken(t){return await this.ensureInitialized(),(await this.postRequestAndWait({method:e.w.waap_clearPermissionToken,params:[t],interactionRequired:!1})).data}async requestEmail(){await this.ensureInitialized();let t=await this.postRequestAndWait({method:e.w.silk_requestEmail,params:[],interactionRequired:!0});if(t.error)throw Error(t.error.message||`Failed to request email`);return t.data}async postRequestAndWait(t){let n;try{t.interactionRequired&&e.l({layout:t.method===e.w.login?`auth`:`signing`}),n=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let r=await e.o({eventEmitter:this.internalEventEmitter,id:n,method:t.method,interactionRequired:t.interactionRequired,signal:t.signal,timeoutMs:t.timeoutMs,onCancel:()=>{this.walletMessageManager.cancelSilkRequest(n,t.method),t.interactionRequired&&e.c()}});if(r.error)throw Error(r.error.message);return r}catch(r){throw t.interactionRequired&&n===void 0&&e.c(),e.S(r,{chain:`sui`,method:String(t.method),requestId:n})}}notifyChange(e){Array.from(this.changeListeners).forEach(t=>{t(e)})}};function m(t,n,r=!0){let i=()=>(e.g(t),e.h(n).contentWindow),a=t.deferIframe===!1,o=t.deferIframe===void 0,s=a?i():null;if(a&&!s)throw Error(`Failed to create WaaP iframe`);let c=new p(s,t,i,{...t,chains:[`sui`]});c.setAccountMode(n),r&&a&&c.preload().catch(()=>void 0);let l=c.destroy.bind(c);if(c.destroy=()=>{l(),e._()},r&&o){let t=e.r(c),n=c.destroy.bind(c);c.destroy=()=>{t(),n()}}return c.ui.on(`show_modal`,()=>{e.l(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=`none`})}),c.ui.on(`hide_modal`,()=>{e.c(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=``})}),c}function h(e){if(typeof window>`u`)return;let t=e.destroy.bind(e),n=new Set,r=new Set,i=!1,a=t=>{if(i||n.has(t.register))return;n.add(t.register);let a=t.register(e);i?a():r.add(a)},s=e=>{a(e.detail)};e.destroy=()=>{if(!i){i=!0,window.removeEventListener(`wallet-standard:app-ready`,s);for(let e of r)try{e()}catch(e){console.error(`Failed to unregister WaaP from a wallet registry`,e)}r.clear(),n.clear(),t()}},window.addEventListener(`wallet-standard:app-ready`,s),a((0,o.getWallets)()),!i&&window.dispatchEvent(new CustomEvent(`wallet-standard:register-wallet`,{detail:a}))}function g(t={}){let r=()=>(e.g(t),e.h(`tap`).contentWindow),i=t.deferIframe===!1,a=t.deferIframe===void 0,o=i?r():null;if(i&&!o)throw Error(`Failed to create WaaP iframe`);let s=new n.t(o,t,r,{...t,chains:[`solana`]});i&&s.preload().catch(()=>void 0);let c=s.destroy.bind(s);if(s.destroy=()=>{c(),e._()},a){let t=e.r(s),n=s.destroy.bind(s);s.destroy=()=>{t(),n()}}return s.ui.on(`show_modal`,()=>{e.l()}),s.ui.on(`hide_modal`,()=>{e.c()}),h(s),s}function _(e={}){if(l(),`chains`in e)throw Error("initWaaP accepts one `chain`; use initWaaPMulti({ chains }) for TAP.");switch(e.chain){case`sui`:return m(e,`tap`);case`solana`:return g(e);case`stellar`:return r.t(e);case void 0:case`evm`:return i.t(e);default:throw Error(`initWaaP received an unsupported chain: ${String(e.chain)}`)}}const v=[`evm`,`sui`,`solana`],y=[`evm`,`sui`,`solana`];function b(r){l();let a=Array.from(new Set(r.chains??[]));if(a.length===0)throw Error(`initWaaPSquid requires at least one chain facade`);if(a.some(e=>!v.includes(e)))throw Error(`initWaaPSquid received an unsupported chain facade`);let o=a.includes(`evm`),s=a.includes(`sui`),c=a.includes(`solana`),u=i.n({referralCode:r.referralCode,config:r.config,project:r.project,environment:r.environment,walletOrigin:r.walletOrigin,useStaging:r.useStaging,walletConnectProjectId:r.walletConnectProjectId,asyncTxs:r.asyncTxs,deferIframe:r.deferIframe},`squid`,!1,a,o),d=s?m(r,`squid`,!1):void 0,f=()=>(e.g(r),e.h(`squid`).contentWindow),p=c?new n.t(r.deferIframe===!1?f():null,{useStaging:r.useStaging,environment:r.environment,walletOrigin:r.walletOrigin,referralCode:r.referralCode,project:r.project,config:r.config,deferIframe:r.deferIframe},f,{...r,chains:[`solana`]},!1):void 0;p?.setAccountMode(`squid`);let h;r.deferIframe===!1?u.preload().catch(()=>void 0):r.deferIframe===void 0&&(h=e.r(u));let g={state:`absent`},_=null,y=0,b=null,x=()=>{b!==null&&(clearTimeout(b),b=null)},S=()=>{x(),b=setTimeout(()=>{b=null,_&&u.emit(t.t.squidFailed,{lifecycleId:_,error:`Squid provisioning stalled; call onboard() to try again.`})},18e4),b.unref?.()},C=()=>{x(),_=null,g={state:`absent`}},w=e=>!e.lifecycleId||e.lifecycleId===_,T=()=>g.state===`active`;u.on(t.t.squidPending,e=>{if(!w(e))return;S();let t=e?.transactionDigest;g={state:t?`awaiting-network`:`provisioning`,...t?{operationId:t,transactionDigest:t}:{},...e?.message?{message:e.message}:{}}}),u.on(t.t.squidReady,e=>{w(e)&&(x(),g={state:`active`})}),u.on(t.t.squidFailed,e=>{w(e)&&(x(),g={state:`failed`,...e?.error?{message:e.error}:{}},_=null)});let E=t=>{if(u.getLoginMethod()===null)throw new e.x(`not_authenticated`,`Not authenticated: call login() before connecting or signing.`,{operation:{chain:t,method:`connect`}});if(!T())throw new e.x(`not_connected`,`Squid is not ready: call onboard() after login before connecting or signing.`)},D=u.request.bind(u);if(u.request=async e=>([`eth_requestAccounts`,`eth_accounts`,`eth_sendTransaction`,`eth_signTransaction`,`personal_sign`,`eth_signTypedData_v4`].includes(e.method)&&E(`evm`),D(e)),d){let e=d.connect.bind(d);d.connect=async t=>(E(`sui`),e(t))}if(p){let e=p.connect.bind(p);p.connect=async t=>(E(`solana`),e(t))}let O=async()=>{if(u.getLoginMethod()===null)throw new e.x(`not_authenticated`,`Not authenticated: call login() before onboarding Squid.`);if(T()||_)return;let t=`squid-${++y}`;_=t,g={state:`provisioning`},S();try{await u.walletMessageManager.pingIframe(),await e.i({method:e.w.enter_lite_mode,params:[window.location.origin,t]},!1,u.walletMessageManager,u.internalEventEmitter)}catch(e){throw _===t&&(x(),_=null,g={state:`failed`,message:e instanceof Error?e.message:String(e)}),e}},k=()=>({...g}),A=e=>{if(g.state===`active`||!e.authenticated||e.activeMode!==`squid`||!e.squid)return;let n={..._?{lifecycleId:_}:{},evm:e.squid.sqd1.evm,sui:e.squid.sqd2.sui,solana:e.squid.sqd2.solana};x(),g={state:`active`},_=null,u.emit(t.t.squidReady,n)},j=async()=>(await O(),k()),M=u.login.bind(u),N=async e=>{let t=await M(e);return d?.setLoginMethod(t),p?.setLoginMethod(t),(t?await u.session.getAccountStatus().catch(()=>null):null)?.squid&&(await u.reassertIframeAccountMode().catch(()=>void 0),await O()),t&&u.emit(`connect`),t},P=u.logout.bind(u),F=async()=>{await P(),d?.setLoginMethod(null),p?.setLoginMethod(null),C()},I;I={login:N,logout:F,getLoginMethod:()=>u.getLoginMethod(),getAccountStatus:async()=>{let e=await u.session.getAccountStatus();return A(e),e},getSquidStatus:k,on:(e,t)=>(u.on(e,t),I),removeListener:(e,t)=>(u.removeListener(e,t),I)},u.login=I.login,u.logout=I.logout,d&&(d.login=()=>I.login(),d.logout=()=>I.logout()),p&&(p.login=()=>I.login(),p.logout=()=>I.logout());let L={onboard:O,squid:{onboard:O,getStatus:k,onboardWithStatus:j},getSquidStatus:k,session:I,getAccountStatus:()=>{let e=u.getAccountStatus(),t=d?.getAccountStatus(),n=p?.getAccountStatus();return{authenticated:e.authenticated||!!t?.authenticated||!!n?.authenticated,loginMethod:e.loginMethod??t?.loginMethod??n?.loginMethod??null,activeMode:e.authenticated||t?.authenticated||n?.authenticated?`squid`:null,mode:`squid`,conversion:e.conversion,tap:e.tap,squid:e.squid,accounts:{...e.accounts,...t?.accounts,...n?.accounts}}},preload:()=>u.preload(),destroy:()=>{h?.(),C(),u.destroy(),d?.destroy(),p?.destroy(),e._()}};return o&&Object.assign(L,{evm:u,ethereum:u}),d&&Object.assign(L,{sui:d}),p&&Object.assign(L,{solana:p}),v.every(e=>a.includes(e))&&Object.assign(L,{auth:u}),L}function x(t){l();let r=Array.from(new Set(t.chains));if(r.length===0)throw Error(`initWaaPMulti requires at least one chain facade`);if(r.some(e=>!y.includes(e)))throw Error(`initWaaPMulti received an unsupported chain facade`);let a=r.includes(`evm`),o=r.includes(`sui`),s=r.includes(`solana`),c=i.n({referralCode:t.referralCode,config:t.config,project:t.project,environment:t.environment,walletOrigin:t.walletOrigin,useStaging:t.useStaging,walletConnectProjectId:t.walletConnectProjectId,asyncTxs:t.asyncTxs,deferIframe:t.deferIframe},`tap`,!1,r,a),u=o?m({...t,config:t.config},`tap`,!1):void 0,d=()=>(e.g(t),e.h(`tap`).contentWindow),f=s?new n.t(t.deferIframe===!1?d():null,{useStaging:t.useStaging,environment:t.environment,walletOrigin:t.walletOrigin,referralCode:t.referralCode,project:t.project,config:t.config,deferIframe:t.deferIframe},d,{...t,chains:[`solana`]},!1):void 0;f?.setAccountMode(`tap`);let p;t.deferIframe===!1?c.preload().catch(()=>void 0):t.deferIframe===void 0&&(p=e.r(c));let h=c.login.bind(c),g=async e=>{let t=await h(e);return u?.setLoginMethod(t),f?.setLoginMethod(t),t&&c.emit(`connect`),t},_=c.logout.bind(c),v=async()=>{await _(),u?.setLoginMethod(null),f?.setLoginMethod(null)},b;b={login:g,logout:v,getLoginMethod:()=>c.getLoginMethod(),getAccountStatus:()=>c.session.getAccountStatus(),on:(e,t)=>(c.on(e,t),b),removeListener:(e,t)=>(c.removeListener(e,t),b)},c.login=b.login,c.logout=b.logout,u&&(u.login=()=>b.login(),u.logout=()=>b.logout()),f&&(f.login=()=>b.login(),f.logout=()=>b.logout());let x=()=>{let e=c.getAccountStatus(),t=u?.getAccountStatus(),n=f?.getAccountStatus();return{authenticated:e.authenticated||!!t?.authenticated||!!n?.authenticated,loginMethod:e.loginMethod??t?.loginMethod??n?.loginMethod??null,activeMode:e.authenticated||t?.authenticated||n?.authenticated?`tap`:null,mode:`tap`,conversion:e.conversion,tap:e.tap,squid:e.squid,accounts:{...e.accounts,...t?.accounts,...n?.accounts}}},S=c.destroy.bind(c),C=u?.destroy.bind(u),w=f?.destroy.bind(f),T=()=>{p?.(),S(),C?.(),w?.(),e._()},E={session:b,getAccountStatus:x,preload:()=>c.preload(),destroy:T};return a&&(c.destroy=T,Object.assign(E,{evm:c,ethereum:c})),u&&(u.destroy=T,Object.assign(E,{sui:u})),f&&(f.destroy=T,Object.assign(E,{solana:f})),E}function S(e={}){return console.warn("[WaaP SDK] `initWaaPSui()` is deprecated. Use `initWaaP({ chain: 'sui' })` instead."),_({...e,chain:`sui`})}function C(e={}){return _({...e,chain:`solana`})}function w(e={}){return x({...e,chains:e.chains??y})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return _}});
|
|
1
|
+
const e=require("./UIMessageManager-Bzrjl7s7.js"),t=require("./asyncSigning-B0KrmKk7.js"),n=require("./SolanaProvider-DqkLbM2y.js"),r=require("./init-DDxhKxVn.js"),i=require("./evm-xQ1FQAuX.js");let a=require("events"),o=require("@wallet-standard/app");function s(){try{if(typeof process<`u`&&process.env)return(process.env.NEXT_PUBLIC_WAAP_MAINTENANCE||process.env.VITE_WAAP_MAINTENANCE||process.env.REACT_APP_WAAP_MAINTENANCE||process.env.WAAP_MAINTENANCE)===`true`}catch{return!1}return!1}function c(){try{return typeof localStorage<`u`&&localStorage.getItem(`waap_maintenance_override`)===`1`}catch{return!1}}function l(){if(s()&&!c())throw new e.x(`maintenance`,`WaaP is temporarily unavailable for maintenance.`)}const u={"sui:mainnet":`https://sui-rpc.publicnode.com`,"sui:testnet":`https://sui-testnet-rpc.publicnode.com`,"sui:devnet":`https://fullnode.devnet.sui.io`,"sui:localnet":`http://127.0.0.1:9000`},d=e=>u[e],f=e=>e.slice(4);var p=class{constructor(t,n={},r,i=n){this.lastKnownConversion=`pending`,this.name=`WaaP`,this.version=`1.0.0`,this.icon=`data:image/webp;base64,UklGRpoDAABXRUJQVlA4WAoAAAAQAAAAYwAAYwAAQUxQSDMDAAABJyAQSOFmFxERA8TatqpGoimANbEAxlBAPhSgQP9FyXv3vkcFEf134EZS5DREhGvTM8z0ki8stMRvK4cm8bk5rIu3xNbvkgPk4K6ti5IHquRQnLi6KrdBb81hdyF1jTLM1CW425943iba38/djOcG+dg85p/KXGd/g7+xAzJ2VPWTS8R+q65uA1ZcwG3iZ4urjw9Lh4xn83n3gZmQQ3VMVGEO6D403jdr81Ml1OISAAf7RGImBHISwQ5zCJonTuEyOyP7Sga4cDcjMPgXuiK9cUpaGrIDJtH4iAB25utB8O0DDztOKTr8u9hpX0jrx6k8UM5eAlqsynNxlX9tPRLQEtySKwcDOIDnMqEcek1UnylVNac4r0mlypNvhmCNODlhUXuT4fxTQyrDKY0uyV+gi0iiLLpY76A08C/IX8GQoYb8PcVxK7HkZkT5IjAF4gZicOfJW1ovJjyAlYVPlM6BkkHGI0fniAIZIXC0CbAM92BB8SBznU0ITYLr9XkfnKlDgV8170HGMWwitY51+zxcgkftLD4RLh4HSTIa3QzRWKxlaHZTz21s6GLxnBmjogkVilW4kuaMMMGUfgkZ1JhrBSEANrEDMwucAXgbTqIExY3FYRMdtkQRDFjD6BKtJ2GWTopGRY4P9DBkdE4rp9LJHuYhju45oeVZVv3zNmVdZiIOffHDppOz0Q34p0e/+nXy7JmF1846lmF2ZombLt8pgZpbPNeqpJSVJ0bGd4cH8dUNflNPfdQVXUkC95UQS0ZGfDmOJgjs3IyVOExZBEsxONd080gYK/ftQ2nbYaqGW89Hu7M6avmzXEjhO4G8O8ae8gwWtwZsyp8v8j/ys5H7bM+unOfurO4bbbL4v865Nb8s98Ld2X9yg6tLBQanMP8fhplOMMN8fiNDzTvNOMXGuYzejo12vY7s3clhXwgDPuBIcxi9QZftbKVxAjLCcVQdRxGR1QknhCs3GuieMLzfrrC9RhfJgVpcXRn71nZfEjsiYy/Ca1J7ch0clK64ReH3G/s2cekpP+BIx2YteMvSoLy6G9FCgd1nvF/VoVRtJoNJNLQ0RM3BXY9WgPbcHF78swAAVlA4IEAAAACwBQCdASpkAGQAPpFIoUylpCMiIKgAsBIJaW7hc+AAY2upvcReWAa6m9xF5YBrqb3EXlgGngAA/v81aVcAAAAA`,this._accounts=[],this.accountMode=`tap`,this.loginMethod=null,this._chains=[`sui:mainnet`,`sui:testnet`,`sui:devnet`],this.internalEventEmitter=new a.EventEmitter,this.changeListeners=new Set,this.initializerPromise=null,this.initializedIframeWindow=null,this.walletMessageManager=new e.d(t,e.v(n)),this.ensureIframe=r,this.iframeMounted=!r,this.initializerOptions=i,this.uiMessageManager=new e.t,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:t=>{t.method===e.w.show_modal?this.uiMessageManager.emit(`show_modal`):t.method===e.w.hide_modal&&this.uiMessageManager.emit(`hide_modal`)},onAccountChanged:async e=>{try{let e=await this.refreshAccounts();this.notifyChange({accounts:e.accounts})}catch(e){console.error(`Failed to refresh Sui accounts:`,e),this._accounts=[],this.notifyChange({accounts:[]})}}})}destroy(){this.walletMessageManager.dispose(),this.internalEventEmitter.removeAllListeners(),this.uiMessageManager.removeAllListeners(),this.changeListeners.clear(),this._accounts=[]}ensureIframeMounted(){if(this.iframeMounted||!this.ensureIframe)return;let e=this.ensureIframe();if(!e)throw Error(`Failed to create WaaP iframe`);this.iframeMounted=!0,this.walletMessageManager.setIframeWindow(e)}async preload(){if(!this.ensureIframe)return;this.ensureIframeMounted();let t=this.walletMessageManager.getIframeWindow();if(!t)throw Error(`WaaP iframe is not mounted`);if(this.initializedIframeWindow===t&&this.initializerPromise)return this.initializerPromise;this.initializedIframeWindow=t,this.initializerPromise=e.m(t,()=>this.selectAccountMode(this.accountMode,this.initializerOptions));try{await this.initializerPromise}catch(e){throw this.initializerPromise=null,this.initializedIframeWindow=null,e}}async ensureInitialized(){await this.preload()}async refreshAccounts(){try{await this.ensureInitialized();let e=await this.postRequestAndWait({method:`sui_connect`,params:[{silent:!0}],interactionRequired:!1});if(e.error)return this._accounts=[],{accounts:[]};let t=e.data?.accounts||[];return this._accounts=t,{accounts:this._accounts}}catch{return this._accounts=[],{accounts:[]}}}get chains(){return this._chains}get accounts(){return this._accounts}get ui(){return this.uiMessageManager}getAccountStatus(){return{authenticated:this.loginMethod!==null,loginMethod:this.loginMethod,activeMode:this.loginMethod?this.accountMode:null,mode:this.accountMode,conversion:this.loginMethod?this.lastKnownConversion:`not_required`,tap:null,squid:null,accounts:this._accounts[0]?{sui:this._accounts[0].address}:{}}}get session(){return{login:()=>this.login(),logout:()=>this.logout(),getLoginMethod:()=>this.getLoginMethod(),getAccountStatus:()=>this.getCanonicalAccountStatus()}}async getCanonicalAccountStatus(){await this.ensureInitialized();let t=await this.postRequestAndWait({method:e.w.waap_getAccountStatus,params:[],interactionRequired:!1});if(t.error)throw Error(t.error.message||`Failed to read WaaP status`);let n=t.data;return this.syncLoginMethodFromCanonicalStatus(n),n?.conversion&&(this.lastKnownConversion=n.conversion),n}setAccountMode(e){this.accountMode=e,this.initializerPromise=null,this.initializedIframeWindow=null}async selectAccountMode(t,n={}){await this.walletMessageManager.pingIframe(),await this.postRequestAndWait({method:e.w.set_signing_mode,params:[e.f(t,n)],interactionRequired:!1})}setLoginMethod(e){this.loginMethod=e,e===null&&(this._accounts=[],this.notifyChange({accounts:[]}))}getLoginMethod(){return this.loginMethod}async login(){await this.ensureInitialized();let t=await this.restoreSession();if(t)return t;let n=(await this.postRequestAndWait({method:e.w.login,params:[],interactionRequired:!0})).data;return n!==`waap`&&n!==`human`&&n!==`injected`&&n!==`walletconnect`?(this.loginMethod=null,null):(this.loginMethod=n,n)}async logout(){this.lastKnownConversion=`pending`,await this.ensureInitialized(),await this.postRequestAndWait({method:e.w.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this._accounts=[],this.notifyChange({accounts:[]})}async connect(t){if(!this.loginMethod){if(t?.silent)throw new e.x(`not_authenticated`,`Not authenticated: a silent connect cannot open login.`,{operation:{chain:`sui`,method:`sui_connect`}});if(!await this.login())throw new e.x(`user_rejected`,`User rejected WaaP login during connect().`,{operation:{chain:`sui`,method:`sui_connect`}})}await this.ensureInitialized();let n=await this.postRequestAndWait({method:`sui_connect`,params:[t||{}],interactionRequired:!t?.silent,signal:t?.signal,timeoutMs:t?.timeoutMs});if(n.error)throw Error(n.error.message||`Failed to connect`);let r=n.data?.accounts||[];return this._accounts=r,this.notifyChange({accounts:this._accounts}),t?.silent||this.internalEventEmitter.emit(`connect`),this.internalEventEmitter.emit(`accountsChanged`,this._accounts.map(e=>e.address)),{accounts:this._accounts}}async restoreSession(){try{let e=await this.getCanonicalAccountStatus();if(e.authenticated&&(e.loginMethod===`waap`||e.loginMethod===`human`||e.loginMethod===`injected`||e.loginMethod===`walletconnect`))return this.loginMethod=e.loginMethod,e.loginMethod}catch{}return null}syncLoginMethodFromCanonicalStatus(e){let t=e.authenticated&&(e.loginMethod===`waap`||e.loginMethod===`human`||e.loginMethod===`injected`||e.loginMethod===`walletconnect`)?e.loginMethod:null;t!==this.loginMethod&&this.setLoginMethod(t)}async disconnect(){await this.ensureInitialized(),await this.postRequestAndWait({method:`sui_disconnect`,params:[],interactionRequired:!1}),this._accounts=[],this.notifyChange({accounts:[]})}async signPersonalMessage(e){await this.ensureInitialized();let t=e.account.address;if(!this._accounts.some(e=>e.address===t))throw Error(`Account ${t} is not connected`);let n=await this.postRequestAndWait({method:`sui_signPersonalMessage`,params:[{message:Array.from(e.message),account:t,chain:e.chain}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(n.error)throw Error(n.error.message||`Failed to sign message`);return{bytes:n.data.bytes,signature:n.data.signature}}async extractTransferAddresses(e,t=!1){try{let{Transaction:n}=await import(`@mysten/sui/transactions`),r=(t?n.fromKind(e):n.from(e)).getData(),i=[];for(let e of r.commands){if(e.$kind!==`TransferObjects`)continue;let t=e.TransferObjects.address;if(t.$kind!==`Input`)continue;let n=t.Input,a=r.inputs[n];if(!a||a.$kind!==`Pure`)continue;let o=Uint8Array.from(atob(a.Pure.bytes),e=>e.charCodeAt(0));if(o.length!==32)continue;let s=`0x`+Array.from(o).map(e=>e.toString(16).padStart(2,`0`)).join(``);i.push(s)}return i}catch{return[]}}async resolveTransactionBytes(e,t=`sui:mainnet`){if(e instanceof Uint8Array)return{bytes:e,kind:`transaction-data`};if(Array.isArray(e))return{bytes:new Uint8Array(e),kind:`transaction-data`};if(typeof e==`string`)try{return{bytes:Uint8Array.from(atob(e),e=>e.charCodeAt(0)),kind:`transaction-data`}}catch{throw Error(`Transaction string must be base64 encoded bytes. If you have a serialized transaction JSON, please build it to bytes first.`)}else if(e&&typeof e==`object`){if(typeof e.build==`function`)try{let{SuiJsonRpcClient:n}=await import(`@mysten/sui/jsonRpc`),r=f(t),i=new n({url:d(t),network:r});return{bytes:await e.build({client:i,onlyTransactionKind:!0}),kind:`transaction-kind`}}catch(e){throw console.warn(`[SuiWallet] Failed to build transaction object:`,e),Error(`Failed to build transaction: ${e instanceof Error?e.message:String(e)}`)}if(typeof e.serialize==`function`)try{let t=await e.serialize();if(typeof t==`string`)return{bytes:Uint8Array.from(atob(t),e=>e.charCodeAt(0)),kind:`transaction-data`};if(t instanceof Uint8Array)return{bytes:t,kind:`transaction-data`}}catch(e){console.warn(`[SuiWallet] serialize() failed:`,e)}if(typeof e.toJSON==`function`)try{let t=await e.toJSON();if(typeof t==`string`)try{return{bytes:Uint8Array.from(atob(t),e=>e.charCodeAt(0)),kind:`transaction-data`}}catch{try{let e=JSON.parse(t);if(e.bytes&&typeof e.bytes==`string`)return{bytes:Uint8Array.from(atob(e.bytes),e=>e.charCodeAt(0)),kind:`transaction-data`}}catch{}}}catch(e){console.warn(`[SuiWallet] toJSON() failed:`,e)}if(typeof e.getData==`function`)try{let t=e.getData();if(t instanceof Uint8Array)return{bytes:t,kind:`transaction-data`}}catch(e){console.warn(`[SuiWallet] getData() failed:`,e)}throw Error(`Unsupported transaction format. Keys: ${Object.keys(e).join(`, `)}`)}else throw Error(`Unsupported transaction format: ${typeof e}. Please pass Uint8Array bytes or a Transaction object.`)}async signTransaction(e){await this.ensureInitialized();let t=e.account.address;if(!this._accounts.some(e=>e.address===t))throw Error(`Account ${t} is not connected`);let n=await this.resolveTransactionBytes(e.transaction,e.chain),r=await this.postRequestAndWait({method:`sui_signTransaction`,params:[{...n.kind===`transaction-kind`?{transactionKind:Array.from(n.bytes)}:{transaction:Array.from(n.bytes)},account:t,chain:e.chain,withPT:e.withPT}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(r.error)throw Error(r.error.message||`Failed to sign transaction`);return{bytes:r.data.bytes,signature:r.data.signature}}async signAndExecuteTransaction(e){await this.ensureInitialized();let t=e.account.address;if(!this._accounts.some(e=>e.address===t))throw Error(`Account ${t} is not connected`);let n=await this.resolveTransactionBytes(e.transaction,e.chain),r=await this.extractTransferAddresses(n.bytes,n.kind===`transaction-kind`),i=await this.postRequestAndWait({method:`sui_signAndExecuteTransaction`,params:[{...n.kind===`transaction-kind`?{transactionKind:Array.from(n.bytes)}:{transaction:Array.from(n.bytes)},account:t,chain:e.chain,options:e.options,requestType:e.requestType,withPT:e.withPT,toAddresses:r.length>0?r:void 0}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(i.error)throw Error(i.error.message||`Failed to sign and execute transaction`);return i.data}async switchChain(e){if(await this.ensureInitialized(),!this._chains.includes(e.chain))throw Error(`Chain ${e.chain} is not supported`);let t=await this.postRequestAndWait({method:`sui_switchChain`,params:[e],interactionRequired:!1});if(t.error)throw Error(t.error.message||`Failed to switch chain`);this.notifyChange({chains:this._chains,accounts:this._accounts})}on(e,t){return e===`change`?(this.changeListeners.add(t),()=>{this.changeListeners.delete(t)}):(this.internalEventEmitter.on(e,t),()=>{this.internalEventEmitter.removeListener(e,t)})}removeListener(e,t){if(e===`change`){this.changeListeners.delete(t);return}this.internalEventEmitter.removeListener(e,t)}get features(){return{"standard:connect":{version:`1.0.0`,connect:this.connect.bind(this)},"standard:disconnect":{version:`1.0.0`,disconnect:this.disconnect.bind(this)},"standard:events":{version:`1.0.0`,on:this.on.bind(this)},"sui:signPersonalMessage":{version:`1.1.0`,signPersonalMessage:this.signPersonalMessage.bind(this)},"sui:signTransaction":{version:`2.0.0`,signTransaction:this.signTransaction.bind(this)},"sui:signAndExecuteTransaction":{version:`1.0.0`,signAndExecuteTransaction:this.signAndExecuteTransaction.bind(this)},"sui:signTransactionBlock":{version:`2.0.0`,signTransactionBlock:this.signTransactionBlock.bind(this)},"sui:signAndExecuteTransactionBlock":{version:`1.0.0`,signAndExecuteTransactionBlock:this.signAndExecuteTransactionBlock.bind(this)},"sui:switchChain":{version:`1.0.0`,switchChain:this.switchChain.bind(this)}}}async signTransactionBlock(e){return this.signTransaction({transaction:e.transactionBlock,account:e.account,chain:e.chain,signal:e.signal,timeoutMs:e.timeoutMs,withPT:e.withPT})}async signAndExecuteTransactionBlock(e){return this.signAndExecuteTransaction({transaction:e.transactionBlock,account:e.account,chain:e.chain,options:e.options,requestType:e.requestType,signal:e.signal,timeoutMs:e.timeoutMs,withPT:e.withPT})}async requestPermissionToken(t){await this.ensureInitialized();let n={...t,walletMode:this.accountMode},r=await this.postRequestAndWait({method:e.w.waap_requestPermissionToken,params:[n],interactionRequired:!0});if(r.error)throw Error(r.error.message||`Failed to request permission token`);return r.data}async getPermissionTokenStatus(t){return await this.ensureInitialized(),(await this.postRequestAndWait({method:e.w.waap_getPermissionTokenStatus,params:[t],interactionRequired:!1})).data}async clearPermissionToken(t){return await this.ensureInitialized(),(await this.postRequestAndWait({method:e.w.waap_clearPermissionToken,params:[t],interactionRequired:!1})).data}async requestEmail(){await this.ensureInitialized();let t=await this.postRequestAndWait({method:e.w.silk_requestEmail,params:[],interactionRequired:!0});if(t.error)throw Error(t.error.message||`Failed to request email`);return t.data}async postRequestAndWait(t){let n;try{t.interactionRequired&&e.l({layout:t.method===e.w.login?`auth`:`signing`}),n=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let r=await e.o({eventEmitter:this.internalEventEmitter,id:n,method:t.method,interactionRequired:t.interactionRequired,signal:t.signal,timeoutMs:t.timeoutMs,onCancel:()=>{this.walletMessageManager.cancelSilkRequest(n,t.method),t.interactionRequired&&e.c()}});if(r.error)throw Error(r.error.message);return r}catch(r){throw t.interactionRequired&&n===void 0&&e.c(),e.S(r,{chain:`sui`,method:String(t.method),requestId:n})}}notifyChange(e){Array.from(this.changeListeners).forEach(t=>{t(e)})}};function m(t,n,r=!0){let i=()=>(e.g(t),e.h(n).contentWindow),a=t.deferIframe===!1,o=t.deferIframe===void 0,s=a?i():null;if(a&&!s)throw Error(`Failed to create WaaP iframe`);let c=new p(s,t,i,{...t,chains:[`sui`]});c.setAccountMode(n),r&&a&&c.preload().catch(()=>void 0);let l=c.destroy.bind(c);if(c.destroy=()=>{l(),e._()},r&&o){let t=e.r(c),n=c.destroy.bind(c);c.destroy=()=>{t(),n()}}return c.ui.on(`show_modal`,()=>{e.l(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=`none`})}),c.ui.on(`hide_modal`,()=>{e.c(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=``})}),c}function h(e){if(typeof window>`u`)return;let t=e.destroy.bind(e),n=new Set,r=new Set,i=!1,a=t=>{if(i||n.has(t.register))return;n.add(t.register);let a=t.register(e);i?a():r.add(a)},s=e=>{a(e.detail)};e.destroy=()=>{if(!i){i=!0,window.removeEventListener(`wallet-standard:app-ready`,s);for(let e of r)try{e()}catch(e){console.error(`Failed to unregister WaaP from a wallet registry`,e)}r.clear(),n.clear(),t()}},window.addEventListener(`wallet-standard:app-ready`,s),a((0,o.getWallets)()),!i&&window.dispatchEvent(new CustomEvent(`wallet-standard:register-wallet`,{detail:a}))}function g(t={}){let r=()=>(e.g(t),e.h(`tap`).contentWindow),i=t.deferIframe===!1,a=t.deferIframe===void 0,o=i?r():null;if(i&&!o)throw Error(`Failed to create WaaP iframe`);let s=new n.t(o,t,r,{...t,chains:[`solana`]});i&&s.preload().catch(()=>void 0);let c=s.destroy.bind(s);if(s.destroy=()=>{c(),e._()},a){let t=e.r(s),n=s.destroy.bind(s);s.destroy=()=>{t(),n()}}return s.ui.on(`show_modal`,()=>{e.l()}),s.ui.on(`hide_modal`,()=>{e.c()}),h(s),s}function _(e={}){if(l(),`chains`in e)throw Error("initWaaP accepts one `chain`; use initWaaPMulti({ chains }) for TAP.");switch(e.chain){case`sui`:return m(e,`tap`);case`solana`:return g(e);case`stellar`:return r.t(e);case void 0:case`evm`:return i.t(e);default:throw Error(`initWaaP received an unsupported chain: ${String(e.chain)}`)}}const v=[`evm`,`sui`,`solana`],y=[`evm`,`sui`,`solana`];function b(r){l();let a=Array.from(new Set(r.chains??[]));if(a.length===0)throw Error(`initWaaPSquid requires at least one chain facade`);if(a.some(e=>!v.includes(e)))throw Error(`initWaaPSquid received an unsupported chain facade`);let o=a.includes(`evm`),s=a.includes(`sui`),c=a.includes(`solana`),u=i.n({referralCode:r.referralCode,config:r.config,project:r.project,environment:r.environment,walletOrigin:r.walletOrigin,useStaging:r.useStaging,walletConnectProjectId:r.walletConnectProjectId,asyncTxs:r.asyncTxs,deferIframe:r.deferIframe},`squid`,!1,a,o),d=s?m(r,`squid`,!1):void 0,f=()=>(e.g(r),e.h(`squid`).contentWindow),p=c?new n.t(r.deferIframe===!1?f():null,{useStaging:r.useStaging,environment:r.environment,walletOrigin:r.walletOrigin,referralCode:r.referralCode,project:r.project,config:r.config,deferIframe:r.deferIframe},f,{...r,chains:[`solana`]},!1):void 0;p?.setAccountMode(`squid`);let h;r.deferIframe===!1?u.preload().catch(()=>void 0):r.deferIframe===void 0&&(h=e.r(u));let g={state:`absent`},_=null,y=0,b=null,x=()=>{b!==null&&(clearTimeout(b),b=null)},S=()=>{x(),b=setTimeout(()=>{b=null,_&&u.emit(t.t.squidFailed,{lifecycleId:_,error:`Squid provisioning stalled; call onboard() to try again.`})},18e4),b.unref?.()},C=()=>{x(),_=null,g={state:`absent`}},w=e=>!e.lifecycleId||e.lifecycleId===_,T=()=>g.state===`active`;u.on(t.t.squidPending,e=>{if(!w(e))return;S();let t=e?.transactionDigest;g={state:t?`awaiting-network`:`provisioning`,...t?{operationId:t,transactionDigest:t}:{},...e?.message?{message:e.message}:{}}}),u.on(t.t.squidReady,e=>{w(e)&&(x(),g={state:`active`})}),u.on(t.t.squidFailed,e=>{w(e)&&(x(),g={state:`failed`,...e?.error?{message:e.error}:{}},_=null)});let E=t=>{if(u.getLoginMethod()===null)throw new e.x(`not_authenticated`,`Not authenticated: call login() before connecting or signing.`,{operation:{chain:t,method:`connect`}});if(!T())throw new e.x(`not_connected`,`Squid is not ready: call onboard() after login before connecting or signing.`)},D=u.request.bind(u);if(u.request=async e=>([`eth_requestAccounts`,`eth_accounts`,`eth_sendTransaction`,`eth_signTransaction`,`personal_sign`,`eth_signTypedData_v4`].includes(e.method)&&E(`evm`),D(e)),d){let e=d.connect.bind(d);d.connect=async t=>(E(`sui`),e(t))}if(p){let e=p.connect.bind(p);p.connect=async t=>(E(`solana`),e(t))}let O=async()=>{if(u.getLoginMethod()===null)throw new e.x(`not_authenticated`,`Not authenticated: call login() before onboarding Squid.`);if(T()||_)return;let t=`squid-${++y}`;_=t,g={state:`provisioning`},S();try{await u.walletMessageManager.pingIframe(),await e.i({method:e.w.enter_lite_mode,params:[window.location.origin,t]},!1,u.walletMessageManager,u.internalEventEmitter)}catch(e){throw _===t&&(x(),_=null,g={state:`failed`,message:e instanceof Error?e.message:String(e)}),e}},k=()=>({...g}),A=e=>{if(g.state===`active`||!e.authenticated||e.activeMode!==`squid`||!e.squid)return;let n={..._?{lifecycleId:_}:{},evm:e.squid.sqd1.evm,sui:e.squid.sqd2.sui,solana:e.squid.sqd2.solana};x(),g={state:`active`},_=null,u.emit(t.t.squidReady,n)},j=async()=>(await O(),k()),M=u.login.bind(u),N=async e=>{let t=await M(e);return d?.setLoginMethod(t),p?.setLoginMethod(t),(t?await u.session.getAccountStatus().catch(()=>null):null)?.squid&&(await u.reassertIframeAccountMode().catch(()=>void 0),await O()),t&&u.emit(`connect`),t},P=u.logout.bind(u),F=async()=>{await P(),d?.setLoginMethod(null),p?.setLoginMethod(null),C()},I;I={login:N,logout:F,getLoginMethod:()=>u.getLoginMethod(),getAccountStatus:async()=>{let e=await u.session.getAccountStatus();return A(e),e},getSquidStatus:k,on:(e,t)=>(u.on(e,t),I),removeListener:(e,t)=>(u.removeListener(e,t),I)},u.login=I.login,u.logout=I.logout,d&&(d.login=()=>I.login(),d.logout=()=>I.logout()),p&&(p.login=()=>I.login(),p.logout=()=>I.logout());let L={onboard:O,squid:{onboard:O,getStatus:k,onboardWithStatus:j},getSquidStatus:k,session:I,getAccountStatus:()=>{let e=u.getAccountStatus(),t=d?.getAccountStatus(),n=p?.getAccountStatus();return{authenticated:e.authenticated||!!t?.authenticated||!!n?.authenticated,loginMethod:e.loginMethod??t?.loginMethod??n?.loginMethod??null,activeMode:e.authenticated||t?.authenticated||n?.authenticated?`squid`:null,mode:`squid`,conversion:e.conversion,tap:e.tap,squid:e.squid,accounts:{...e.accounts,...t?.accounts,...n?.accounts}}},preload:()=>u.preload(),destroy:()=>{h?.(),C(),u.destroy(),d?.destroy(),p?.destroy(),e._()}};return o&&Object.assign(L,{evm:u,ethereum:u}),d&&Object.assign(L,{sui:d}),p&&Object.assign(L,{solana:p}),v.every(e=>a.includes(e))&&Object.assign(L,{auth:u}),L}function x(t){l();let r=Array.from(new Set(t.chains));if(r.length===0)throw Error(`initWaaPMulti requires at least one chain facade`);if(r.some(e=>!y.includes(e)))throw Error(`initWaaPMulti received an unsupported chain facade`);let a=r.includes(`evm`),o=r.includes(`sui`),s=r.includes(`solana`),c=i.n({referralCode:t.referralCode,config:t.config,project:t.project,environment:t.environment,walletOrigin:t.walletOrigin,useStaging:t.useStaging,walletConnectProjectId:t.walletConnectProjectId,asyncTxs:t.asyncTxs,deferIframe:t.deferIframe},`tap`,!1,r,a),u=o?m({...t,config:t.config},`tap`,!1):void 0,d=()=>(e.g(t),e.h(`tap`).contentWindow),f=s?new n.t(t.deferIframe===!1?d():null,{useStaging:t.useStaging,environment:t.environment,walletOrigin:t.walletOrigin,referralCode:t.referralCode,project:t.project,config:t.config,deferIframe:t.deferIframe},d,{...t,chains:[`solana`]},!1):void 0;f?.setAccountMode(`tap`);let p;t.deferIframe===!1?c.preload().catch(()=>void 0):t.deferIframe===void 0&&(p=e.r(c));let h=c.login.bind(c),g=async e=>{let t=await h(e);return u?.setLoginMethod(t),f?.setLoginMethod(t),t&&c.emit(`connect`),t},_=c.logout.bind(c),v=async()=>{await _(),u?.setLoginMethod(null),f?.setLoginMethod(null)},b;b={login:g,logout:v,getLoginMethod:()=>c.getLoginMethod(),getAccountStatus:()=>c.session.getAccountStatus(),on:(e,t)=>(c.on(e,t),b),removeListener:(e,t)=>(c.removeListener(e,t),b)},c.login=b.login,c.logout=b.logout,u&&(u.login=()=>b.login(),u.logout=()=>b.logout()),f&&(f.login=()=>b.login(),f.logout=()=>b.logout());let x=()=>{let e=c.getAccountStatus(),t=u?.getAccountStatus(),n=f?.getAccountStatus();return{authenticated:e.authenticated||!!t?.authenticated||!!n?.authenticated,loginMethod:e.loginMethod??t?.loginMethod??n?.loginMethod??null,activeMode:e.authenticated||t?.authenticated||n?.authenticated?`tap`:null,mode:`tap`,conversion:e.conversion,tap:e.tap,squid:e.squid,accounts:{...e.accounts,...t?.accounts,...n?.accounts}}},S=c.destroy.bind(c),C=u?.destroy.bind(u),w=f?.destroy.bind(f),T=()=>{p?.(),S(),C?.(),w?.(),e._()},E={session:b,getAccountStatus:x,preload:()=>c.preload(),destroy:T};return a&&(c.destroy=T,Object.assign(E,{evm:c,ethereum:c})),u&&(u.destroy=T,Object.assign(E,{sui:u})),f&&(f.destroy=T,Object.assign(E,{solana:f})),E}function S(e={}){return console.warn("[WaaP SDK] `initWaaPSui()` is deprecated. Use `initWaaP({ chain: 'sui' })` instead."),_({...e,chain:`sui`})}function C(e={}){return _({...e,chain:`solana`})}function w(e={}){return x({...e,chains:e.chains??y})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return _}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as e,_ as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,o as u,r as d,t as f,v as p,w as m,x as h}from"./UIMessageManager-D3VN9vM8.mjs";import{t as g}from"./asyncSigning-CzqBbYDP.mjs";import{t as _}from"./SolanaProvider-BKWKXTWh.mjs";import{t as v}from"./init-BljRyI7Q.mjs";import{n as y,t as b}from"./evm-BbSgL_Hv.mjs";import{EventEmitter as x}from"events";import{getWallets as S}from"@wallet-standard/app";function C(){try{if(typeof process<`u`&&process.env)return(process.env.NEXT_PUBLIC_WAAP_MAINTENANCE||process.env.VITE_WAAP_MAINTENANCE||process.env.REACT_APP_WAAP_MAINTENANCE||process.env.WAAP_MAINTENANCE)===`true`}catch{return!1}return!1}function w(){try{return typeof localStorage<`u`&&localStorage.getItem(`waap_maintenance_override`)===`1`}catch{return!1}}function T(){if(C()&&!w())throw new h(`maintenance`,`WaaP is temporarily unavailable for maintenance.`)}const E={"sui:mainnet":`https://sui-rpc.publicnode.com`,"sui:testnet":`https://sui-testnet-rpc.publicnode.com`,"sui:devnet":`https://fullnode.devnet.sui.io`,"sui:localnet":`http://127.0.0.1:9000`},D=e=>E[e],O=e=>e.slice(4);var k=class{constructor(e,t={},n,i=t){this.lastKnownConversion=`pending`,this.name=`WaaP`,this.version=`1.0.0`,this.icon=`data:image/webp;base64,UklGRpoDAABXRUJQVlA4WAoAAAAQAAAAYwAAYwAAQUxQSDMDAAABJyAQSOFmFxERA8TatqpGoimANbEAxlBAPhSgQP9FyXv3vkcFEf134EZS5DREhGvTM8z0ki8stMRvK4cm8bk5rIu3xNbvkgPk4K6ti5IHquRQnLi6KrdBb81hdyF1jTLM1CW425943iba38/djOcG+dg85p/KXGd/g7+xAzJ2VPWTS8R+q65uA1ZcwG3iZ4urjw9Lh4xn83n3gZmQQ3VMVGEO6D403jdr81Ml1OISAAf7RGImBHISwQ5zCJonTuEyOyP7Sga4cDcjMPgXuiK9cUpaGrIDJtH4iAB25utB8O0DDztOKTr8u9hpX0jrx6k8UM5eAlqsynNxlX9tPRLQEtySKwcDOIDnMqEcek1UnylVNac4r0mlypNvhmCNODlhUXuT4fxTQyrDKY0uyV+gi0iiLLpY76A08C/IX8GQoYb8PcVxK7HkZkT5IjAF4gZicOfJW1ovJjyAlYVPlM6BkkHGI0fniAIZIXC0CbAM92BB8SBznU0ITYLr9XkfnKlDgV8170HGMWwitY51+zxcgkftLD4RLh4HSTIa3QzRWKxlaHZTz21s6GLxnBmjogkVilW4kuaMMMGUfgkZ1JhrBSEANrEDMwucAXgbTqIExY3FYRMdtkQRDFjD6BKtJ2GWTopGRY4P9DBkdE4rp9LJHuYhju45oeVZVv3zNmVdZiIOffHDppOz0Q34p0e/+nXy7JmF1846lmF2ZombLt8pgZpbPNeqpJSVJ0bGd4cH8dUNflNPfdQVXUkC95UQS0ZGfDmOJgjs3IyVOExZBEsxONd080gYK/ftQ2nbYaqGW89Hu7M6avmzXEjhO4G8O8ae8gwWtwZsyp8v8j/ys5H7bM+unOfurO4bbbL4v865Nb8s98Ld2X9yg6tLBQanMP8fhplOMMN8fiNDzTvNOMXGuYzejo12vY7s3clhXwgDPuBIcxi9QZftbKVxAjLCcVQdRxGR1QknhCs3GuieMLzfrrC9RhfJgVpcXRn71nZfEjsiYy/Ca1J7ch0clK64ReH3G/s2cekpP+BIx2YteMvSoLy6G9FCgd1nvF/VoVRtJoNJNLQ0RM3BXY9WgPbcHF78swAAVlA4IEAAAACwBQCdASpkAGQAPpFIoUylpCMiIKgAsBIJaW7hc+AAY2upvcReWAa6m9xF5YBrqb3EXlgGngAA/v81aVcAAAAA`,this._accounts=[],this.accountMode=`tap`,this.loginMethod=null,this._chains=[`sui:mainnet`,`sui:testnet`,`sui:devnet`],this.internalEventEmitter=new x,this.changeListeners=new Set,this.initializerPromise=null,this.initializedIframeWindow=null,this.walletMessageManager=new r(e,p(t)),this.ensureIframe=n,this.iframeMounted=!n,this.initializerOptions=i,this.uiMessageManager=new f,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:e=>{e.method===m.show_modal?this.uiMessageManager.emit(`show_modal`):e.method===m.hide_modal&&this.uiMessageManager.emit(`hide_modal`)},onAccountChanged:async e=>{try{let e=await this.refreshAccounts();this.notifyChange({accounts:e.accounts})}catch(e){console.error(`Failed to refresh Sui accounts:`,e),this._accounts=[],this.notifyChange({accounts:[]})}}})}destroy(){this.walletMessageManager.dispose(),this.internalEventEmitter.removeAllListeners(),this.uiMessageManager.removeAllListeners(),this.changeListeners.clear(),this._accounts=[]}ensureIframeMounted(){if(this.iframeMounted||!this.ensureIframe)return;let e=this.ensureIframe();if(!e)throw Error(`Failed to create WaaP iframe`);this.iframeMounted=!0,this.walletMessageManager.setIframeWindow(e)}async preload(){if(!this.ensureIframe)return;this.ensureIframeMounted();let e=this.walletMessageManager.getIframeWindow();if(!e)throw Error(`WaaP iframe is not mounted`);if(this.initializedIframeWindow===e&&this.initializerPromise)return this.initializerPromise;this.initializedIframeWindow=e,this.initializerPromise=l(e,()=>this.selectAccountMode(this.accountMode,this.initializerOptions));try{await this.initializerPromise}catch(e){throw this.initializerPromise=null,this.initializedIframeWindow=null,e}}async ensureInitialized(){await this.preload()}async refreshAccounts(){try{await this.ensureInitialized();let e=await this.postRequestAndWait({method:`sui_connect`,params:[{silent:!0}],interactionRequired:!1});if(e.error)return this._accounts=[],{accounts:[]};let t=e.data?.accounts||[];return this._accounts=t,{accounts:this._accounts}}catch{return this._accounts=[],{accounts:[]}}}get chains(){return this._chains}get accounts(){return this._accounts}get ui(){return this.uiMessageManager}getAccountStatus(){return{authenticated:this.loginMethod!==null,loginMethod:this.loginMethod,activeMode:this.loginMethod?this.accountMode:null,mode:this.accountMode,conversion:this.loginMethod?this.lastKnownConversion:`not_required`,tap:null,squid:null,accounts:this._accounts[0]?{sui:this._accounts[0].address}:{}}}get session(){return{login:()=>this.login(),logout:()=>this.logout(),getLoginMethod:()=>this.getLoginMethod(),getAccountStatus:()=>this.getCanonicalAccountStatus()}}async getCanonicalAccountStatus(){await this.ensureInitialized();let e=await this.postRequestAndWait({method:m.waap_getAccountStatus,params:[],interactionRequired:!1});if(e.error)throw Error(e.error.message||`Failed to read WaaP status`);let t=e.data;return this.syncLoginMethodFromCanonicalStatus(t),t?.conversion&&(this.lastKnownConversion=t.conversion),t}setAccountMode(e){this.accountMode=e,this.initializerPromise=null,this.initializedIframeWindow=null}async selectAccountMode(e,t={}){await this.walletMessageManager.pingIframe(),await this.postRequestAndWait({method:m.set_signing_mode,params:[i(e,t)],interactionRequired:!1})}setLoginMethod(e){this.loginMethod=e,e===null&&(this._accounts=[],this.notifyChange({accounts:[]}))}getLoginMethod(){return this.loginMethod}async login(){await this.ensureInitialized();let e=await this.restoreSession();if(e)return e;let t=(await this.postRequestAndWait({method:m.login,params:[],interactionRequired:!0})).data;return t!==`waap`&&t!==`human`&&t!==`injected`&&t!==`walletconnect`?(this.loginMethod=null,null):(this.loginMethod=t,t)}async logout(){this.lastKnownConversion=`pending`,await this.ensureInitialized(),await this.postRequestAndWait({method:m.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this._accounts=[],this.notifyChange({accounts:[]})}async connect(e){if(!this.loginMethod){if(e?.silent)throw new h(`not_authenticated`,`Not authenticated: a silent connect cannot open login.`,{operation:{chain:`sui`,method:`sui_connect`}});if(!await this.login())throw new h(`user_rejected`,`User rejected WaaP login during connect().`,{operation:{chain:`sui`,method:`sui_connect`}})}await this.ensureInitialized();let t=await this.postRequestAndWait({method:`sui_connect`,params:[e||{}],interactionRequired:!e?.silent,signal:e?.signal,timeoutMs:e?.timeoutMs});if(t.error)throw Error(t.error.message||`Failed to connect`);let n=t.data?.accounts||[];return this._accounts=n,this.notifyChange({accounts:this._accounts}),e?.silent||this.internalEventEmitter.emit(`connect`),this.internalEventEmitter.emit(`accountsChanged`,this._accounts.map(e=>e.address)),{accounts:this._accounts}}async restoreSession(){try{let e=await this.getCanonicalAccountStatus();if(e.authenticated&&(e.loginMethod===`waap`||e.loginMethod===`human`||e.loginMethod===`injected`||e.loginMethod===`walletconnect`))return this.loginMethod=e.loginMethod,e.loginMethod}catch{}return null}syncLoginMethodFromCanonicalStatus(e){let t=e.authenticated&&(e.loginMethod===`waap`||e.loginMethod===`human`||e.loginMethod===`injected`||e.loginMethod===`walletconnect`)?e.loginMethod:null;t!==this.loginMethod&&this.setLoginMethod(t)}async disconnect(){await this.ensureInitialized(),await this.postRequestAndWait({method:`sui_disconnect`,params:[],interactionRequired:!1}),this._accounts=[],this.notifyChange({accounts:[]})}async signPersonalMessage(e){await this.ensureInitialized();let t=e.account.address;if(!this._accounts.some(e=>e.address===t))throw Error(`Account ${t} is not connected`);let n=await this.postRequestAndWait({method:`sui_signPersonalMessage`,params:[{message:Array.from(e.message),account:t,chain:e.chain}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(n.error)throw Error(n.error.message||`Failed to sign message`);return{bytes:n.data.bytes,signature:n.data.signature}}async extractTransferAddresses(e,t=!1){try{let{Transaction:n}=await import(`@mysten/sui/transactions`),r=(t?n.fromKind(e):n.from(e)).getData(),i=[];for(let e of r.commands){if(e.$kind!==`TransferObjects`)continue;let t=e.TransferObjects.address;if(t.$kind!==`Input`)continue;let n=t.Input,a=r.inputs[n];if(!a||a.$kind!==`Pure`)continue;let o=Uint8Array.from(atob(a.Pure.bytes),e=>e.charCodeAt(0));if(o.length!==32)continue;let s=`0x`+Array.from(o).map(e=>e.toString(16).padStart(2,`0`)).join(``);i.push(s)}return i}catch{return[]}}async resolveTransactionBytes(e,t=`sui:mainnet`){if(e instanceof Uint8Array)return{bytes:e,kind:`transaction-data`};if(Array.isArray(e))return{bytes:new Uint8Array(e),kind:`transaction-data`};if(typeof e==`string`)try{return{bytes:Uint8Array.from(atob(e),e=>e.charCodeAt(0)),kind:`transaction-data`}}catch{throw Error(`Transaction string must be base64 encoded bytes. If you have a serialized transaction JSON, please build it to bytes first.`)}else if(e&&typeof e==`object`){if(typeof e.build==`function`)try{let{SuiJsonRpcClient:n}=await import(`@mysten/sui/jsonRpc`),r=O(t),i=new n({url:D(t),network:r});return{bytes:await e.build({client:i,onlyTransactionKind:!0}),kind:`transaction-kind`}}catch(e){throw console.warn(`[SuiWallet] Failed to build transaction object:`,e),Error(`Failed to build transaction: ${e instanceof Error?e.message:String(e)}`)}if(typeof e.serialize==`function`)try{let t=await e.serialize();if(typeof t==`string`)return{bytes:Uint8Array.from(atob(t),e=>e.charCodeAt(0)),kind:`transaction-data`};if(t instanceof Uint8Array)return{bytes:t,kind:`transaction-data`}}catch(e){console.warn(`[SuiWallet] serialize() failed:`,e)}if(typeof e.toJSON==`function`)try{let t=await e.toJSON();if(typeof t==`string`)try{return{bytes:Uint8Array.from(atob(t),e=>e.charCodeAt(0)),kind:`transaction-data`}}catch{try{let e=JSON.parse(t);if(e.bytes&&typeof e.bytes==`string`)return{bytes:Uint8Array.from(atob(e.bytes),e=>e.charCodeAt(0)),kind:`transaction-data`}}catch{}}}catch(e){console.warn(`[SuiWallet] toJSON() failed:`,e)}if(typeof e.getData==`function`)try{let t=e.getData();if(t instanceof Uint8Array)return{bytes:t,kind:`transaction-data`}}catch(e){console.warn(`[SuiWallet] getData() failed:`,e)}throw Error(`Unsupported transaction format. Keys: ${Object.keys(e).join(`, `)}`)}else throw Error(`Unsupported transaction format: ${typeof e}. Please pass Uint8Array bytes or a Transaction object.`)}async signTransaction(e){await this.ensureInitialized();let t=e.account.address;if(!this._accounts.some(e=>e.address===t))throw Error(`Account ${t} is not connected`);let n=await this.resolveTransactionBytes(e.transaction,e.chain),r=await this.postRequestAndWait({method:`sui_signTransaction`,params:[{...n.kind===`transaction-kind`?{transactionKind:Array.from(n.bytes)}:{transaction:Array.from(n.bytes)},account:t,chain:e.chain,withPT:e.withPT}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(r.error)throw Error(r.error.message||`Failed to sign transaction`);return{bytes:r.data.bytes,signature:r.data.signature}}async signAndExecuteTransaction(e){await this.ensureInitialized();let t=e.account.address;if(!this._accounts.some(e=>e.address===t))throw Error(`Account ${t} is not connected`);let n=await this.resolveTransactionBytes(e.transaction,e.chain),r=await this.extractTransferAddresses(n.bytes,n.kind===`transaction-kind`),i=await this.postRequestAndWait({method:`sui_signAndExecuteTransaction`,params:[{...n.kind===`transaction-kind`?{transactionKind:Array.from(n.bytes)}:{transaction:Array.from(n.bytes)},account:t,chain:e.chain,options:e.options,requestType:e.requestType,withPT:e.withPT,toAddresses:r.length>0?r:void 0}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(i.error)throw Error(i.error.message||`Failed to sign and execute transaction`);return i.data}async switchChain(e){if(await this.ensureInitialized(),!this._chains.includes(e.chain))throw Error(`Chain ${e.chain} is not supported`);let t=await this.postRequestAndWait({method:`sui_switchChain`,params:[e],interactionRequired:!1});if(t.error)throw Error(t.error.message||`Failed to switch chain`);this.notifyChange({chains:this._chains,accounts:this._accounts})}on(e,t){return e===`change`?(this.changeListeners.add(t),()=>{this.changeListeners.delete(t)}):(this.internalEventEmitter.on(e,t),()=>{this.internalEventEmitter.removeListener(e,t)})}removeListener(e,t){if(e===`change`){this.changeListeners.delete(t);return}this.internalEventEmitter.removeListener(e,t)}get features(){return{"standard:connect":{version:`1.0.0`,connect:this.connect.bind(this)},"standard:disconnect":{version:`1.0.0`,disconnect:this.disconnect.bind(this)},"standard:events":{version:`1.0.0`,on:this.on.bind(this)},"sui:signPersonalMessage":{version:`1.1.0`,signPersonalMessage:this.signPersonalMessage.bind(this)},"sui:signTransaction":{version:`2.0.0`,signTransaction:this.signTransaction.bind(this)},"sui:signAndExecuteTransaction":{version:`1.0.0`,signAndExecuteTransaction:this.signAndExecuteTransaction.bind(this)},"sui:signTransactionBlock":{version:`2.0.0`,signTransactionBlock:this.signTransactionBlock.bind(this)},"sui:signAndExecuteTransactionBlock":{version:`1.0.0`,signAndExecuteTransactionBlock:this.signAndExecuteTransactionBlock.bind(this)},"sui:switchChain":{version:`1.0.0`,switchChain:this.switchChain.bind(this)}}}async signTransactionBlock(e){return this.signTransaction({transaction:e.transactionBlock,account:e.account,chain:e.chain,signal:e.signal,timeoutMs:e.timeoutMs,withPT:e.withPT})}async signAndExecuteTransactionBlock(e){return this.signAndExecuteTransaction({transaction:e.transactionBlock,account:e.account,chain:e.chain,options:e.options,requestType:e.requestType,signal:e.signal,timeoutMs:e.timeoutMs,withPT:e.withPT})}async requestPermissionToken(e){await this.ensureInitialized();let t={...e,walletMode:this.accountMode},n=await this.postRequestAndWait({method:m.waap_requestPermissionToken,params:[t],interactionRequired:!0});if(n.error)throw Error(n.error.message||`Failed to request permission token`);return n.data}async getPermissionTokenStatus(e){return await this.ensureInitialized(),(await this.postRequestAndWait({method:m.waap_getPermissionTokenStatus,params:[e],interactionRequired:!1})).data}async clearPermissionToken(e){return await this.ensureInitialized(),(await this.postRequestAndWait({method:m.waap_clearPermissionToken,params:[e],interactionRequired:!1})).data}async requestEmail(){await this.ensureInitialized();let e=await this.postRequestAndWait({method:m.silk_requestEmail,params:[],interactionRequired:!0});if(e.error)throw Error(e.error.message||`Failed to request email`);return e.data}async postRequestAndWait(t){let r;try{t.interactionRequired&&c({layout:t.method===m.login?`auth`:`signing`}),r=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let e=await u({eventEmitter:this.internalEventEmitter,id:r,method:t.method,interactionRequired:t.interactionRequired,signal:t.signal,timeoutMs:t.timeoutMs,onCancel:()=>{this.walletMessageManager.cancelSilkRequest(r,t.method),t.interactionRequired&&n()}});if(e.error)throw Error(e.error.message);return e}catch(i){throw t.interactionRequired&&r===void 0&&n(),e(i,{chain:`sui`,method:String(t.method),requestId:r})}}notifyChange(e){Array.from(this.changeListeners).forEach(t=>{t(e)})}};function A(e,r,i=!0){let s=()=>(a(e),o(r).contentWindow),l=e.deferIframe===!1,u=e.deferIframe===void 0,f=l?s():null;if(l&&!f)throw Error(`Failed to create WaaP iframe`);let p=new k(f,e,s,{...e,chains:[`sui`]});p.setAccountMode(r),i&&l&&p.preload().catch(()=>void 0);let m=p.destroy.bind(p);if(p.destroy=()=>{m(),t()},i&&u){let e=d(p),t=p.destroy.bind(p);p.destroy=()=>{e(),t()}}return p.ui.on(`show_modal`,()=>{c(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=`none`})}),p.ui.on(`hide_modal`,()=>{n(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=``})}),p}function j(e){if(typeof window>`u`)return;let t=e.destroy.bind(e),n=new Set,r=new Set,i=!1,a=t=>{if(i||n.has(t.register))return;n.add(t.register);let a=t.register(e);i?a():r.add(a)},o=e=>{a(e.detail)};e.destroy=()=>{if(!i){i=!0,window.removeEventListener(`wallet-standard:app-ready`,o);for(let e of r)try{e()}catch(e){console.error(`Failed to unregister WaaP from a wallet registry`,e)}r.clear(),n.clear(),t()}},window.addEventListener(`wallet-standard:app-ready`,o),a(S()),!i&&window.dispatchEvent(new CustomEvent(`wallet-standard:register-wallet`,{detail:a}))}function M(e={}){let r=()=>(a(e),o(`tap`).contentWindow),i=e.deferIframe===!1,s=e.deferIframe===void 0,l=i?r():null;if(i&&!l)throw Error(`Failed to create WaaP iframe`);let u=new _(l,e,r,{...e,chains:[`solana`]});i&&u.preload().catch(()=>void 0);let f=u.destroy.bind(u);if(u.destroy=()=>{f(),t()},s){let e=d(u),t=u.destroy.bind(u);u.destroy=()=>{e(),t()}}return u.ui.on(`show_modal`,()=>{c()}),u.ui.on(`hide_modal`,()=>{n()}),j(u),u}function N(e={}){if(T(),`chains`in e)throw Error("initWaaP accepts one `chain`; use initWaaPMulti({ chains }) for TAP.");switch(e.chain){case`sui`:return A(e,`tap`);case`solana`:return M(e);case`stellar`:return v(e);case void 0:case`evm`:return b(e);default:throw Error(`initWaaP received an unsupported chain: ${String(e.chain)}`)}}const P=[`evm`,`sui`,`solana`],F=[`evm`,`sui`,`solana`];function I(e){T();let n=Array.from(new Set(e.chains??[]));if(n.length===0)throw Error(`initWaaPSquid requires at least one chain facade`);if(n.some(e=>!P.includes(e)))throw Error(`initWaaPSquid received an unsupported chain facade`);let r=n.includes(`evm`),i=n.includes(`sui`),c=n.includes(`solana`),l=y({referralCode:e.referralCode,config:e.config,project:e.project,environment:e.environment,walletOrigin:e.walletOrigin,useStaging:e.useStaging,walletConnectProjectId:e.walletConnectProjectId,asyncTxs:e.asyncTxs,deferIframe:e.deferIframe},`squid`,!1,n,r),u=i?A(e,`squid`,!1):void 0,f=()=>(a(e),o(`squid`).contentWindow),p=c?new _(e.deferIframe===!1?f():null,{useStaging:e.useStaging,environment:e.environment,walletOrigin:e.walletOrigin,referralCode:e.referralCode,project:e.project,config:e.config,deferIframe:e.deferIframe},f,{...e,chains:[`solana`]},!1):void 0;p?.setAccountMode(`squid`);let v;e.deferIframe===!1?l.preload().catch(()=>void 0):e.deferIframe===void 0&&(v=d(l));let b={state:`absent`},x=null,S=0,C=null,w=()=>{C!==null&&(clearTimeout(C),C=null)},E=()=>{w(),C=setTimeout(()=>{C=null,x&&l.emit(g.squidFailed,{lifecycleId:x,error:`Squid provisioning stalled; call onboard() to try again.`})},18e4),C.unref?.()},D=()=>{w(),x=null,b={state:`absent`}},O=e=>!e.lifecycleId||e.lifecycleId===x,k=()=>b.state===`active`;l.on(g.squidPending,e=>{if(!O(e))return;E();let t=e?.transactionDigest;b={state:t?`awaiting-network`:`provisioning`,...t?{operationId:t,transactionDigest:t}:{},...e?.message?{message:e.message}:{}}}),l.on(g.squidReady,e=>{O(e)&&(w(),b={state:`active`})}),l.on(g.squidFailed,e=>{O(e)&&(w(),b={state:`failed`,...e?.error?{message:e.error}:{}},x=null)});let j=e=>{if(l.getLoginMethod()===null)throw new h(`not_authenticated`,`Not authenticated: call login() before connecting or signing.`,{operation:{chain:e,method:`connect`}});if(!k())throw new h(`not_connected`,`Squid is not ready: call onboard() after login before connecting or signing.`)},M=l.request.bind(l);if(l.request=async e=>([`eth_requestAccounts`,`eth_accounts`,`eth_sendTransaction`,`eth_signTransaction`,`personal_sign`,`eth_signTypedData_v4`].includes(e.method)&&j(`evm`),M(e)),u){let e=u.connect.bind(u);u.connect=async t=>(j(`sui`),e(t))}if(p){let e=p.connect.bind(p);p.connect=async t=>(j(`solana`),e(t))}let N=async()=>{if(l.getLoginMethod()===null)throw new h(`not_authenticated`,`Not authenticated: call login() before onboarding Squid.`);if(k()||x)return;let e=`squid-${++S}`;x=e,b={state:`provisioning`},E();try{await l.walletMessageManager.pingIframe(),await s({method:m.enter_lite_mode,params:[window.location.origin,e]},!1,l.walletMessageManager,l.internalEventEmitter)}catch(t){throw x===e&&(w(),x=null,b={state:`failed`,message:t instanceof Error?t.message:String(t)}),t}},F=()=>({...b}),I=e=>{if(b.state===`active`||!e.authenticated||e.activeMode!==`squid`||!e.squid)return;let t={...x?{lifecycleId:x}:{},evm:e.squid.sqd1.evm,sui:e.squid.sqd2.sui,solana:e.squid.sqd2.solana};w(),b={state:`active`},x=null,l.emit(g.squidReady,t)},L=async()=>(await N(),F()),R=l.login.bind(l),z=async e=>{let t=await R(e);return u?.setLoginMethod(t),p?.setLoginMethod(t),(t?await l.session.getAccountStatus().catch(()=>null):null)?.squid&&(await l.reassertIframeAccountMode().catch(()=>void 0),await N()),t&&l.emit(`connect`),t},B=l.logout.bind(l),V=async()=>{await B(),u?.setLoginMethod(null),p?.setLoginMethod(null),D()},H;H={login:z,logout:V,getLoginMethod:()=>l.getLoginMethod(),getAccountStatus:async()=>{let e=await l.session.getAccountStatus();return I(e),e},getSquidStatus:F,on:(e,t)=>(l.on(e,t),H),removeListener:(e,t)=>(l.removeListener(e,t),H)},l.login=H.login,l.logout=H.logout,u&&(u.login=()=>H.login(),u.logout=()=>H.logout()),p&&(p.login=()=>H.login(),p.logout=()=>H.logout());let U={onboard:N,squid:{onboard:N,getStatus:F,onboardWithStatus:L},getSquidStatus:F,session:H,getAccountStatus:()=>{let e=l.getAccountStatus(),t=u?.getAccountStatus(),n=p?.getAccountStatus();return{authenticated:e.authenticated||!!t?.authenticated||!!n?.authenticated,loginMethod:e.loginMethod??t?.loginMethod??n?.loginMethod??null,activeMode:e.authenticated||t?.authenticated||n?.authenticated?`squid`:null,mode:`squid`,conversion:e.conversion,tap:e.tap,squid:e.squid,accounts:{...e.accounts,...t?.accounts,...n?.accounts}}},preload:()=>l.preload(),destroy:()=>{v?.(),D(),l.destroy(),u?.destroy(),p?.destroy(),t()}};return r&&Object.assign(U,{evm:l,ethereum:l}),u&&Object.assign(U,{sui:u}),p&&Object.assign(U,{solana:p}),P.every(e=>n.includes(e))&&Object.assign(U,{auth:l}),U}function L(e){T();let n=Array.from(new Set(e.chains));if(n.length===0)throw Error(`initWaaPMulti requires at least one chain facade`);if(n.some(e=>!F.includes(e)))throw Error(`initWaaPMulti received an unsupported chain facade`);let r=n.includes(`evm`),i=n.includes(`sui`),s=n.includes(`solana`),c=y({referralCode:e.referralCode,config:e.config,project:e.project,environment:e.environment,walletOrigin:e.walletOrigin,useStaging:e.useStaging,walletConnectProjectId:e.walletConnectProjectId,asyncTxs:e.asyncTxs,deferIframe:e.deferIframe},`tap`,!1,n,r),l=i?A({...e,config:e.config},`tap`,!1):void 0,u=()=>(a(e),o(`tap`).contentWindow),f=s?new _(e.deferIframe===!1?u():null,{useStaging:e.useStaging,environment:e.environment,walletOrigin:e.walletOrigin,referralCode:e.referralCode,project:e.project,config:e.config,deferIframe:e.deferIframe},u,{...e,chains:[`solana`]},!1):void 0;f?.setAccountMode(`tap`);let p;e.deferIframe===!1?c.preload().catch(()=>void 0):e.deferIframe===void 0&&(p=d(c));let m=c.login.bind(c),h=async e=>{let t=await m(e);return l?.setLoginMethod(t),f?.setLoginMethod(t),t&&c.emit(`connect`),t},g=c.logout.bind(c),v=async()=>{await g(),l?.setLoginMethod(null),f?.setLoginMethod(null)},b;b={login:h,logout:v,getLoginMethod:()=>c.getLoginMethod(),getAccountStatus:()=>c.session.getAccountStatus(),on:(e,t)=>(c.on(e,t),b),removeListener:(e,t)=>(c.removeListener(e,t),b)},c.login=b.login,c.logout=b.logout,l&&(l.login=()=>b.login(),l.logout=()=>b.logout()),f&&(f.login=()=>b.login(),f.logout=()=>b.logout());let x=()=>{let e=c.getAccountStatus(),t=l?.getAccountStatus(),n=f?.getAccountStatus();return{authenticated:e.authenticated||!!t?.authenticated||!!n?.authenticated,loginMethod:e.loginMethod??t?.loginMethod??n?.loginMethod??null,activeMode:e.authenticated||t?.authenticated||n?.authenticated?`tap`:null,mode:`tap`,conversion:e.conversion,tap:e.tap,squid:e.squid,accounts:{...e.accounts,...t?.accounts,...n?.accounts}}},S=c.destroy.bind(c),C=l?.destroy.bind(l),w=f?.destroy.bind(f),E=()=>{p?.(),S(),C?.(),w?.(),t()},D={session:b,getAccountStatus:x,preload:()=>c.preload(),destroy:E};return r&&(c.destroy=E,Object.assign(D,{evm:c,ethereum:c})),l&&(l.destroy=E,Object.assign(D,{sui:l})),f&&(f.destroy=E,Object.assign(D,{solana:f})),D}function R(e={}){return console.warn("[WaaP SDK] `initWaaPSui()` is deprecated. Use `initWaaP({ chain: 'sui' })` instead."),N({...e,chain:`sui`})}function z(e={}){return N({...e,chain:`solana`})}function B(e={}){return L({...e,chains:e.chains??F})}export{R as a,k as c,I as i,L as n,B as o,z as r,j as s,N as t};
|
|
1
|
+
import{S as e,_ as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,o as u,r as d,t as f,v as p,w as m,x as h}from"./UIMessageManager-BSJdvCEF.mjs";import{t as g}from"./asyncSigning-CzqBbYDP.mjs";import{t as _}from"./SolanaProvider-BcOLwJrt.mjs";import{t as v}from"./init-BYobdGXZ.mjs";import{n as y,t as b}from"./evm-dDrPUbNZ.mjs";import{EventEmitter as x}from"events";import{getWallets as S}from"@wallet-standard/app";function C(){try{if(typeof process<`u`&&process.env)return(process.env.NEXT_PUBLIC_WAAP_MAINTENANCE||process.env.VITE_WAAP_MAINTENANCE||process.env.REACT_APP_WAAP_MAINTENANCE||process.env.WAAP_MAINTENANCE)===`true`}catch{return!1}return!1}function w(){try{return typeof localStorage<`u`&&localStorage.getItem(`waap_maintenance_override`)===`1`}catch{return!1}}function T(){if(C()&&!w())throw new h(`maintenance`,`WaaP is temporarily unavailable for maintenance.`)}const E={"sui:mainnet":`https://sui-rpc.publicnode.com`,"sui:testnet":`https://sui-testnet-rpc.publicnode.com`,"sui:devnet":`https://fullnode.devnet.sui.io`,"sui:localnet":`http://127.0.0.1:9000`},D=e=>E[e],O=e=>e.slice(4);var k=class{constructor(e,t={},n,i=t){this.lastKnownConversion=`pending`,this.name=`WaaP`,this.version=`1.0.0`,this.icon=`data:image/webp;base64,UklGRpoDAABXRUJQVlA4WAoAAAAQAAAAYwAAYwAAQUxQSDMDAAABJyAQSOFmFxERA8TatqpGoimANbEAxlBAPhSgQP9FyXv3vkcFEf134EZS5DREhGvTM8z0ki8stMRvK4cm8bk5rIu3xNbvkgPk4K6ti5IHquRQnLi6KrdBb81hdyF1jTLM1CW425943iba38/djOcG+dg85p/KXGd/g7+xAzJ2VPWTS8R+q65uA1ZcwG3iZ4urjw9Lh4xn83n3gZmQQ3VMVGEO6D403jdr81Ml1OISAAf7RGImBHISwQ5zCJonTuEyOyP7Sga4cDcjMPgXuiK9cUpaGrIDJtH4iAB25utB8O0DDztOKTr8u9hpX0jrx6k8UM5eAlqsynNxlX9tPRLQEtySKwcDOIDnMqEcek1UnylVNac4r0mlypNvhmCNODlhUXuT4fxTQyrDKY0uyV+gi0iiLLpY76A08C/IX8GQoYb8PcVxK7HkZkT5IjAF4gZicOfJW1ovJjyAlYVPlM6BkkHGI0fniAIZIXC0CbAM92BB8SBznU0ITYLr9XkfnKlDgV8170HGMWwitY51+zxcgkftLD4RLh4HSTIa3QzRWKxlaHZTz21s6GLxnBmjogkVilW4kuaMMMGUfgkZ1JhrBSEANrEDMwucAXgbTqIExY3FYRMdtkQRDFjD6BKtJ2GWTopGRY4P9DBkdE4rp9LJHuYhju45oeVZVv3zNmVdZiIOffHDppOz0Q34p0e/+nXy7JmF1846lmF2ZombLt8pgZpbPNeqpJSVJ0bGd4cH8dUNflNPfdQVXUkC95UQS0ZGfDmOJgjs3IyVOExZBEsxONd080gYK/ftQ2nbYaqGW89Hu7M6avmzXEjhO4G8O8ae8gwWtwZsyp8v8j/ys5H7bM+unOfurO4bbbL4v865Nb8s98Ld2X9yg6tLBQanMP8fhplOMMN8fiNDzTvNOMXGuYzejo12vY7s3clhXwgDPuBIcxi9QZftbKVxAjLCcVQdRxGR1QknhCs3GuieMLzfrrC9RhfJgVpcXRn71nZfEjsiYy/Ca1J7ch0clK64ReH3G/s2cekpP+BIx2YteMvSoLy6G9FCgd1nvF/VoVRtJoNJNLQ0RM3BXY9WgPbcHF78swAAVlA4IEAAAACwBQCdASpkAGQAPpFIoUylpCMiIKgAsBIJaW7hc+AAY2upvcReWAa6m9xF5YBrqb3EXlgGngAA/v81aVcAAAAA`,this._accounts=[],this.accountMode=`tap`,this.loginMethod=null,this._chains=[`sui:mainnet`,`sui:testnet`,`sui:devnet`],this.internalEventEmitter=new x,this.changeListeners=new Set,this.initializerPromise=null,this.initializedIframeWindow=null,this.walletMessageManager=new r(e,p(t)),this.ensureIframe=n,this.iframeMounted=!n,this.initializerOptions=i,this.uiMessageManager=new f,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:e=>{e.method===m.show_modal?this.uiMessageManager.emit(`show_modal`):e.method===m.hide_modal&&this.uiMessageManager.emit(`hide_modal`)},onAccountChanged:async e=>{try{let e=await this.refreshAccounts();this.notifyChange({accounts:e.accounts})}catch(e){console.error(`Failed to refresh Sui accounts:`,e),this._accounts=[],this.notifyChange({accounts:[]})}}})}destroy(){this.walletMessageManager.dispose(),this.internalEventEmitter.removeAllListeners(),this.uiMessageManager.removeAllListeners(),this.changeListeners.clear(),this._accounts=[]}ensureIframeMounted(){if(this.iframeMounted||!this.ensureIframe)return;let e=this.ensureIframe();if(!e)throw Error(`Failed to create WaaP iframe`);this.iframeMounted=!0,this.walletMessageManager.setIframeWindow(e)}async preload(){if(!this.ensureIframe)return;this.ensureIframeMounted();let e=this.walletMessageManager.getIframeWindow();if(!e)throw Error(`WaaP iframe is not mounted`);if(this.initializedIframeWindow===e&&this.initializerPromise)return this.initializerPromise;this.initializedIframeWindow=e,this.initializerPromise=l(e,()=>this.selectAccountMode(this.accountMode,this.initializerOptions));try{await this.initializerPromise}catch(e){throw this.initializerPromise=null,this.initializedIframeWindow=null,e}}async ensureInitialized(){await this.preload()}async refreshAccounts(){try{await this.ensureInitialized();let e=await this.postRequestAndWait({method:`sui_connect`,params:[{silent:!0}],interactionRequired:!1});if(e.error)return this._accounts=[],{accounts:[]};let t=e.data?.accounts||[];return this._accounts=t,{accounts:this._accounts}}catch{return this._accounts=[],{accounts:[]}}}get chains(){return this._chains}get accounts(){return this._accounts}get ui(){return this.uiMessageManager}getAccountStatus(){return{authenticated:this.loginMethod!==null,loginMethod:this.loginMethod,activeMode:this.loginMethod?this.accountMode:null,mode:this.accountMode,conversion:this.loginMethod?this.lastKnownConversion:`not_required`,tap:null,squid:null,accounts:this._accounts[0]?{sui:this._accounts[0].address}:{}}}get session(){return{login:()=>this.login(),logout:()=>this.logout(),getLoginMethod:()=>this.getLoginMethod(),getAccountStatus:()=>this.getCanonicalAccountStatus()}}async getCanonicalAccountStatus(){await this.ensureInitialized();let e=await this.postRequestAndWait({method:m.waap_getAccountStatus,params:[],interactionRequired:!1});if(e.error)throw Error(e.error.message||`Failed to read WaaP status`);let t=e.data;return this.syncLoginMethodFromCanonicalStatus(t),t?.conversion&&(this.lastKnownConversion=t.conversion),t}setAccountMode(e){this.accountMode=e,this.initializerPromise=null,this.initializedIframeWindow=null}async selectAccountMode(e,t={}){await this.walletMessageManager.pingIframe(),await this.postRequestAndWait({method:m.set_signing_mode,params:[i(e,t)],interactionRequired:!1})}setLoginMethod(e){this.loginMethod=e,e===null&&(this._accounts=[],this.notifyChange({accounts:[]}))}getLoginMethod(){return this.loginMethod}async login(){await this.ensureInitialized();let e=await this.restoreSession();if(e)return e;let t=(await this.postRequestAndWait({method:m.login,params:[],interactionRequired:!0})).data;return t!==`waap`&&t!==`human`&&t!==`injected`&&t!==`walletconnect`?(this.loginMethod=null,null):(this.loginMethod=t,t)}async logout(){this.lastKnownConversion=`pending`,await this.ensureInitialized(),await this.postRequestAndWait({method:m.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this._accounts=[],this.notifyChange({accounts:[]})}async connect(e){if(!this.loginMethod){if(e?.silent)throw new h(`not_authenticated`,`Not authenticated: a silent connect cannot open login.`,{operation:{chain:`sui`,method:`sui_connect`}});if(!await this.login())throw new h(`user_rejected`,`User rejected WaaP login during connect().`,{operation:{chain:`sui`,method:`sui_connect`}})}await this.ensureInitialized();let t=await this.postRequestAndWait({method:`sui_connect`,params:[e||{}],interactionRequired:!e?.silent,signal:e?.signal,timeoutMs:e?.timeoutMs});if(t.error)throw Error(t.error.message||`Failed to connect`);let n=t.data?.accounts||[];return this._accounts=n,this.notifyChange({accounts:this._accounts}),e?.silent||this.internalEventEmitter.emit(`connect`),this.internalEventEmitter.emit(`accountsChanged`,this._accounts.map(e=>e.address)),{accounts:this._accounts}}async restoreSession(){try{let e=await this.getCanonicalAccountStatus();if(e.authenticated&&(e.loginMethod===`waap`||e.loginMethod===`human`||e.loginMethod===`injected`||e.loginMethod===`walletconnect`))return this.loginMethod=e.loginMethod,e.loginMethod}catch{}return null}syncLoginMethodFromCanonicalStatus(e){let t=e.authenticated&&(e.loginMethod===`waap`||e.loginMethod===`human`||e.loginMethod===`injected`||e.loginMethod===`walletconnect`)?e.loginMethod:null;t!==this.loginMethod&&this.setLoginMethod(t)}async disconnect(){await this.ensureInitialized(),await this.postRequestAndWait({method:`sui_disconnect`,params:[],interactionRequired:!1}),this._accounts=[],this.notifyChange({accounts:[]})}async signPersonalMessage(e){await this.ensureInitialized();let t=e.account.address;if(!this._accounts.some(e=>e.address===t))throw Error(`Account ${t} is not connected`);let n=await this.postRequestAndWait({method:`sui_signPersonalMessage`,params:[{message:Array.from(e.message),account:t,chain:e.chain}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(n.error)throw Error(n.error.message||`Failed to sign message`);return{bytes:n.data.bytes,signature:n.data.signature}}async extractTransferAddresses(e,t=!1){try{let{Transaction:n}=await import(`@mysten/sui/transactions`),r=(t?n.fromKind(e):n.from(e)).getData(),i=[];for(let e of r.commands){if(e.$kind!==`TransferObjects`)continue;let t=e.TransferObjects.address;if(t.$kind!==`Input`)continue;let n=t.Input,a=r.inputs[n];if(!a||a.$kind!==`Pure`)continue;let o=Uint8Array.from(atob(a.Pure.bytes),e=>e.charCodeAt(0));if(o.length!==32)continue;let s=`0x`+Array.from(o).map(e=>e.toString(16).padStart(2,`0`)).join(``);i.push(s)}return i}catch{return[]}}async resolveTransactionBytes(e,t=`sui:mainnet`){if(e instanceof Uint8Array)return{bytes:e,kind:`transaction-data`};if(Array.isArray(e))return{bytes:new Uint8Array(e),kind:`transaction-data`};if(typeof e==`string`)try{return{bytes:Uint8Array.from(atob(e),e=>e.charCodeAt(0)),kind:`transaction-data`}}catch{throw Error(`Transaction string must be base64 encoded bytes. If you have a serialized transaction JSON, please build it to bytes first.`)}else if(e&&typeof e==`object`){if(typeof e.build==`function`)try{let{SuiJsonRpcClient:n}=await import(`@mysten/sui/jsonRpc`),r=O(t),i=new n({url:D(t),network:r});return{bytes:await e.build({client:i,onlyTransactionKind:!0}),kind:`transaction-kind`}}catch(e){throw console.warn(`[SuiWallet] Failed to build transaction object:`,e),Error(`Failed to build transaction: ${e instanceof Error?e.message:String(e)}`)}if(typeof e.serialize==`function`)try{let t=await e.serialize();if(typeof t==`string`)return{bytes:Uint8Array.from(atob(t),e=>e.charCodeAt(0)),kind:`transaction-data`};if(t instanceof Uint8Array)return{bytes:t,kind:`transaction-data`}}catch(e){console.warn(`[SuiWallet] serialize() failed:`,e)}if(typeof e.toJSON==`function`)try{let t=await e.toJSON();if(typeof t==`string`)try{return{bytes:Uint8Array.from(atob(t),e=>e.charCodeAt(0)),kind:`transaction-data`}}catch{try{let e=JSON.parse(t);if(e.bytes&&typeof e.bytes==`string`)return{bytes:Uint8Array.from(atob(e.bytes),e=>e.charCodeAt(0)),kind:`transaction-data`}}catch{}}}catch(e){console.warn(`[SuiWallet] toJSON() failed:`,e)}if(typeof e.getData==`function`)try{let t=e.getData();if(t instanceof Uint8Array)return{bytes:t,kind:`transaction-data`}}catch(e){console.warn(`[SuiWallet] getData() failed:`,e)}throw Error(`Unsupported transaction format. Keys: ${Object.keys(e).join(`, `)}`)}else throw Error(`Unsupported transaction format: ${typeof e}. Please pass Uint8Array bytes or a Transaction object.`)}async signTransaction(e){await this.ensureInitialized();let t=e.account.address;if(!this._accounts.some(e=>e.address===t))throw Error(`Account ${t} is not connected`);let n=await this.resolveTransactionBytes(e.transaction,e.chain),r=await this.postRequestAndWait({method:`sui_signTransaction`,params:[{...n.kind===`transaction-kind`?{transactionKind:Array.from(n.bytes)}:{transaction:Array.from(n.bytes)},account:t,chain:e.chain,withPT:e.withPT}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(r.error)throw Error(r.error.message||`Failed to sign transaction`);return{bytes:r.data.bytes,signature:r.data.signature}}async signAndExecuteTransaction(e){await this.ensureInitialized();let t=e.account.address;if(!this._accounts.some(e=>e.address===t))throw Error(`Account ${t} is not connected`);let n=await this.resolveTransactionBytes(e.transaction,e.chain),r=await this.extractTransferAddresses(n.bytes,n.kind===`transaction-kind`),i=await this.postRequestAndWait({method:`sui_signAndExecuteTransaction`,params:[{...n.kind===`transaction-kind`?{transactionKind:Array.from(n.bytes)}:{transaction:Array.from(n.bytes)},account:t,chain:e.chain,options:e.options,requestType:e.requestType,withPT:e.withPT,toAddresses:r.length>0?r:void 0}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(i.error)throw Error(i.error.message||`Failed to sign and execute transaction`);return i.data}async switchChain(e){if(await this.ensureInitialized(),!this._chains.includes(e.chain))throw Error(`Chain ${e.chain} is not supported`);let t=await this.postRequestAndWait({method:`sui_switchChain`,params:[e],interactionRequired:!1});if(t.error)throw Error(t.error.message||`Failed to switch chain`);this.notifyChange({chains:this._chains,accounts:this._accounts})}on(e,t){return e===`change`?(this.changeListeners.add(t),()=>{this.changeListeners.delete(t)}):(this.internalEventEmitter.on(e,t),()=>{this.internalEventEmitter.removeListener(e,t)})}removeListener(e,t){if(e===`change`){this.changeListeners.delete(t);return}this.internalEventEmitter.removeListener(e,t)}get features(){return{"standard:connect":{version:`1.0.0`,connect:this.connect.bind(this)},"standard:disconnect":{version:`1.0.0`,disconnect:this.disconnect.bind(this)},"standard:events":{version:`1.0.0`,on:this.on.bind(this)},"sui:signPersonalMessage":{version:`1.1.0`,signPersonalMessage:this.signPersonalMessage.bind(this)},"sui:signTransaction":{version:`2.0.0`,signTransaction:this.signTransaction.bind(this)},"sui:signAndExecuteTransaction":{version:`1.0.0`,signAndExecuteTransaction:this.signAndExecuteTransaction.bind(this)},"sui:signTransactionBlock":{version:`2.0.0`,signTransactionBlock:this.signTransactionBlock.bind(this)},"sui:signAndExecuteTransactionBlock":{version:`1.0.0`,signAndExecuteTransactionBlock:this.signAndExecuteTransactionBlock.bind(this)},"sui:switchChain":{version:`1.0.0`,switchChain:this.switchChain.bind(this)}}}async signTransactionBlock(e){return this.signTransaction({transaction:e.transactionBlock,account:e.account,chain:e.chain,signal:e.signal,timeoutMs:e.timeoutMs,withPT:e.withPT})}async signAndExecuteTransactionBlock(e){return this.signAndExecuteTransaction({transaction:e.transactionBlock,account:e.account,chain:e.chain,options:e.options,requestType:e.requestType,signal:e.signal,timeoutMs:e.timeoutMs,withPT:e.withPT})}async requestPermissionToken(e){await this.ensureInitialized();let t={...e,walletMode:this.accountMode},n=await this.postRequestAndWait({method:m.waap_requestPermissionToken,params:[t],interactionRequired:!0});if(n.error)throw Error(n.error.message||`Failed to request permission token`);return n.data}async getPermissionTokenStatus(e){return await this.ensureInitialized(),(await this.postRequestAndWait({method:m.waap_getPermissionTokenStatus,params:[e],interactionRequired:!1})).data}async clearPermissionToken(e){return await this.ensureInitialized(),(await this.postRequestAndWait({method:m.waap_clearPermissionToken,params:[e],interactionRequired:!1})).data}async requestEmail(){await this.ensureInitialized();let e=await this.postRequestAndWait({method:m.silk_requestEmail,params:[],interactionRequired:!0});if(e.error)throw Error(e.error.message||`Failed to request email`);return e.data}async postRequestAndWait(t){let r;try{t.interactionRequired&&c({layout:t.method===m.login?`auth`:`signing`}),r=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let e=await u({eventEmitter:this.internalEventEmitter,id:r,method:t.method,interactionRequired:t.interactionRequired,signal:t.signal,timeoutMs:t.timeoutMs,onCancel:()=>{this.walletMessageManager.cancelSilkRequest(r,t.method),t.interactionRequired&&n()}});if(e.error)throw Error(e.error.message);return e}catch(i){throw t.interactionRequired&&r===void 0&&n(),e(i,{chain:`sui`,method:String(t.method),requestId:r})}}notifyChange(e){Array.from(this.changeListeners).forEach(t=>{t(e)})}};function A(e,r,i=!0){let s=()=>(a(e),o(r).contentWindow),l=e.deferIframe===!1,u=e.deferIframe===void 0,f=l?s():null;if(l&&!f)throw Error(`Failed to create WaaP iframe`);let p=new k(f,e,s,{...e,chains:[`sui`]});p.setAccountMode(r),i&&l&&p.preload().catch(()=>void 0);let m=p.destroy.bind(p);if(p.destroy=()=>{m(),t()},i&&u){let e=d(p),t=p.destroy.bind(p);p.destroy=()=>{e(),t()}}return p.ui.on(`show_modal`,()=>{c(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=`none`})}),p.ui.on(`hide_modal`,()=>{n(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=``})}),p}function j(e){if(typeof window>`u`)return;let t=e.destroy.bind(e),n=new Set,r=new Set,i=!1,a=t=>{if(i||n.has(t.register))return;n.add(t.register);let a=t.register(e);i?a():r.add(a)},o=e=>{a(e.detail)};e.destroy=()=>{if(!i){i=!0,window.removeEventListener(`wallet-standard:app-ready`,o);for(let e of r)try{e()}catch(e){console.error(`Failed to unregister WaaP from a wallet registry`,e)}r.clear(),n.clear(),t()}},window.addEventListener(`wallet-standard:app-ready`,o),a(S()),!i&&window.dispatchEvent(new CustomEvent(`wallet-standard:register-wallet`,{detail:a}))}function M(e={}){let r=()=>(a(e),o(`tap`).contentWindow),i=e.deferIframe===!1,s=e.deferIframe===void 0,l=i?r():null;if(i&&!l)throw Error(`Failed to create WaaP iframe`);let u=new _(l,e,r,{...e,chains:[`solana`]});i&&u.preload().catch(()=>void 0);let f=u.destroy.bind(u);if(u.destroy=()=>{f(),t()},s){let e=d(u),t=u.destroy.bind(u);u.destroy=()=>{e(),t()}}return u.ui.on(`show_modal`,()=>{c()}),u.ui.on(`hide_modal`,()=>{n()}),j(u),u}function N(e={}){if(T(),`chains`in e)throw Error("initWaaP accepts one `chain`; use initWaaPMulti({ chains }) for TAP.");switch(e.chain){case`sui`:return A(e,`tap`);case`solana`:return M(e);case`stellar`:return v(e);case void 0:case`evm`:return b(e);default:throw Error(`initWaaP received an unsupported chain: ${String(e.chain)}`)}}const P=[`evm`,`sui`,`solana`],F=[`evm`,`sui`,`solana`];function I(e){T();let n=Array.from(new Set(e.chains??[]));if(n.length===0)throw Error(`initWaaPSquid requires at least one chain facade`);if(n.some(e=>!P.includes(e)))throw Error(`initWaaPSquid received an unsupported chain facade`);let r=n.includes(`evm`),i=n.includes(`sui`),c=n.includes(`solana`),l=y({referralCode:e.referralCode,config:e.config,project:e.project,environment:e.environment,walletOrigin:e.walletOrigin,useStaging:e.useStaging,walletConnectProjectId:e.walletConnectProjectId,asyncTxs:e.asyncTxs,deferIframe:e.deferIframe},`squid`,!1,n,r),u=i?A(e,`squid`,!1):void 0,f=()=>(a(e),o(`squid`).contentWindow),p=c?new _(e.deferIframe===!1?f():null,{useStaging:e.useStaging,environment:e.environment,walletOrigin:e.walletOrigin,referralCode:e.referralCode,project:e.project,config:e.config,deferIframe:e.deferIframe},f,{...e,chains:[`solana`]},!1):void 0;p?.setAccountMode(`squid`);let v;e.deferIframe===!1?l.preload().catch(()=>void 0):e.deferIframe===void 0&&(v=d(l));let b={state:`absent`},x=null,S=0,C=null,w=()=>{C!==null&&(clearTimeout(C),C=null)},E=()=>{w(),C=setTimeout(()=>{C=null,x&&l.emit(g.squidFailed,{lifecycleId:x,error:`Squid provisioning stalled; call onboard() to try again.`})},18e4),C.unref?.()},D=()=>{w(),x=null,b={state:`absent`}},O=e=>!e.lifecycleId||e.lifecycleId===x,k=()=>b.state===`active`;l.on(g.squidPending,e=>{if(!O(e))return;E();let t=e?.transactionDigest;b={state:t?`awaiting-network`:`provisioning`,...t?{operationId:t,transactionDigest:t}:{},...e?.message?{message:e.message}:{}}}),l.on(g.squidReady,e=>{O(e)&&(w(),b={state:`active`})}),l.on(g.squidFailed,e=>{O(e)&&(w(),b={state:`failed`,...e?.error?{message:e.error}:{}},x=null)});let j=e=>{if(l.getLoginMethod()===null)throw new h(`not_authenticated`,`Not authenticated: call login() before connecting or signing.`,{operation:{chain:e,method:`connect`}});if(!k())throw new h(`not_connected`,`Squid is not ready: call onboard() after login before connecting or signing.`)},M=l.request.bind(l);if(l.request=async e=>([`eth_requestAccounts`,`eth_accounts`,`eth_sendTransaction`,`eth_signTransaction`,`personal_sign`,`eth_signTypedData_v4`].includes(e.method)&&j(`evm`),M(e)),u){let e=u.connect.bind(u);u.connect=async t=>(j(`sui`),e(t))}if(p){let e=p.connect.bind(p);p.connect=async t=>(j(`solana`),e(t))}let N=async()=>{if(l.getLoginMethod()===null)throw new h(`not_authenticated`,`Not authenticated: call login() before onboarding Squid.`);if(k()||x)return;let e=`squid-${++S}`;x=e,b={state:`provisioning`},E();try{await l.walletMessageManager.pingIframe(),await s({method:m.enter_lite_mode,params:[window.location.origin,e]},!1,l.walletMessageManager,l.internalEventEmitter)}catch(t){throw x===e&&(w(),x=null,b={state:`failed`,message:t instanceof Error?t.message:String(t)}),t}},F=()=>({...b}),I=e=>{if(b.state===`active`||!e.authenticated||e.activeMode!==`squid`||!e.squid)return;let t={...x?{lifecycleId:x}:{},evm:e.squid.sqd1.evm,sui:e.squid.sqd2.sui,solana:e.squid.sqd2.solana};w(),b={state:`active`},x=null,l.emit(g.squidReady,t)},L=async()=>(await N(),F()),R=l.login.bind(l),z=async e=>{let t=await R(e);return u?.setLoginMethod(t),p?.setLoginMethod(t),(t?await l.session.getAccountStatus().catch(()=>null):null)?.squid&&(await l.reassertIframeAccountMode().catch(()=>void 0),await N()),t&&l.emit(`connect`),t},B=l.logout.bind(l),V=async()=>{await B(),u?.setLoginMethod(null),p?.setLoginMethod(null),D()},H;H={login:z,logout:V,getLoginMethod:()=>l.getLoginMethod(),getAccountStatus:async()=>{let e=await l.session.getAccountStatus();return I(e),e},getSquidStatus:F,on:(e,t)=>(l.on(e,t),H),removeListener:(e,t)=>(l.removeListener(e,t),H)},l.login=H.login,l.logout=H.logout,u&&(u.login=()=>H.login(),u.logout=()=>H.logout()),p&&(p.login=()=>H.login(),p.logout=()=>H.logout());let U={onboard:N,squid:{onboard:N,getStatus:F,onboardWithStatus:L},getSquidStatus:F,session:H,getAccountStatus:()=>{let e=l.getAccountStatus(),t=u?.getAccountStatus(),n=p?.getAccountStatus();return{authenticated:e.authenticated||!!t?.authenticated||!!n?.authenticated,loginMethod:e.loginMethod??t?.loginMethod??n?.loginMethod??null,activeMode:e.authenticated||t?.authenticated||n?.authenticated?`squid`:null,mode:`squid`,conversion:e.conversion,tap:e.tap,squid:e.squid,accounts:{...e.accounts,...t?.accounts,...n?.accounts}}},preload:()=>l.preload(),destroy:()=>{v?.(),D(),l.destroy(),u?.destroy(),p?.destroy(),t()}};return r&&Object.assign(U,{evm:l,ethereum:l}),u&&Object.assign(U,{sui:u}),p&&Object.assign(U,{solana:p}),P.every(e=>n.includes(e))&&Object.assign(U,{auth:l}),U}function L(e){T();let n=Array.from(new Set(e.chains));if(n.length===0)throw Error(`initWaaPMulti requires at least one chain facade`);if(n.some(e=>!F.includes(e)))throw Error(`initWaaPMulti received an unsupported chain facade`);let r=n.includes(`evm`),i=n.includes(`sui`),s=n.includes(`solana`),c=y({referralCode:e.referralCode,config:e.config,project:e.project,environment:e.environment,walletOrigin:e.walletOrigin,useStaging:e.useStaging,walletConnectProjectId:e.walletConnectProjectId,asyncTxs:e.asyncTxs,deferIframe:e.deferIframe},`tap`,!1,n,r),l=i?A({...e,config:e.config},`tap`,!1):void 0,u=()=>(a(e),o(`tap`).contentWindow),f=s?new _(e.deferIframe===!1?u():null,{useStaging:e.useStaging,environment:e.environment,walletOrigin:e.walletOrigin,referralCode:e.referralCode,project:e.project,config:e.config,deferIframe:e.deferIframe},u,{...e,chains:[`solana`]},!1):void 0;f?.setAccountMode(`tap`);let p;e.deferIframe===!1?c.preload().catch(()=>void 0):e.deferIframe===void 0&&(p=d(c));let m=c.login.bind(c),h=async e=>{let t=await m(e);return l?.setLoginMethod(t),f?.setLoginMethod(t),t&&c.emit(`connect`),t},g=c.logout.bind(c),v=async()=>{await g(),l?.setLoginMethod(null),f?.setLoginMethod(null)},b;b={login:h,logout:v,getLoginMethod:()=>c.getLoginMethod(),getAccountStatus:()=>c.session.getAccountStatus(),on:(e,t)=>(c.on(e,t),b),removeListener:(e,t)=>(c.removeListener(e,t),b)},c.login=b.login,c.logout=b.logout,l&&(l.login=()=>b.login(),l.logout=()=>b.logout()),f&&(f.login=()=>b.login(),f.logout=()=>b.logout());let x=()=>{let e=c.getAccountStatus(),t=l?.getAccountStatus(),n=f?.getAccountStatus();return{authenticated:e.authenticated||!!t?.authenticated||!!n?.authenticated,loginMethod:e.loginMethod??t?.loginMethod??n?.loginMethod??null,activeMode:e.authenticated||t?.authenticated||n?.authenticated?`tap`:null,mode:`tap`,conversion:e.conversion,tap:e.tap,squid:e.squid,accounts:{...e.accounts,...t?.accounts,...n?.accounts}}},S=c.destroy.bind(c),C=l?.destroy.bind(l),w=f?.destroy.bind(f),E=()=>{p?.(),S(),C?.(),w?.(),t()},D={session:b,getAccountStatus:x,preload:()=>c.preload(),destroy:E};return r&&(c.destroy=E,Object.assign(D,{evm:c,ethereum:c})),l&&(l.destroy=E,Object.assign(D,{sui:l})),f&&(f.destroy=E,Object.assign(D,{solana:f})),D}function R(e={}){return console.warn("[WaaP SDK] `initWaaPSui()` is deprecated. Use `initWaaP({ chain: 'sui' })` instead."),N({...e,chain:`sui`})}function z(e={}){return N({...e,chain:`solana`})}function B(e={}){return L({...e,chains:e.chains??F})}export{R as a,k as c,I as i,L as n,B as o,z as r,j as s,N as t};
|