@human.tech/waap-sdk 2.2.0-staging-ac3dde → 2.2.0
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/{WaaPError-DCJ9WDaR.d.ts → WaaPError-D64X-oFe.d.ts} +1 -1
- package/dist/{WaaPError-DgDAQQKF.d.mts → WaaPError-QHdMfZW7.d.mts} +1 -1
- package/dist/evm.d.mts +1 -1
- package/dist/evm.d.ts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/register-CdhMOOIi.mjs +1 -0
- package/dist/{register-oYvnB41B.js → register-DEhrbVMU.js} +1 -1
- package/dist/{register-Bg4jW_HM.mjs → register-DfLqs9vQ.mjs} +1 -1
- package/dist/{register-CRhge1wE.js → register-jgVHbdqY.js} +1 -1
- package/dist/solana.d.mts +1 -1
- package/dist/solana.d.ts +1 -1
- package/dist/solana.js +1 -1
- package/dist/solana.mjs +1 -1
- package/dist/sui.d.mts +1 -1
- package/dist/sui.d.ts +1 -1
- package/dist/sui.js +1 -1
- package/dist/sui.mjs +1 -1
- package/dist/ui-9HR3zyVP.mjs +1 -0
- package/dist/ui-BHIqqJWQ.js +1 -0
- package/package.json +1 -1
- package/dist/register-BXqcetNF.mjs +0 -1
- package/dist/ui-Co16lVSp.mjs +0 -1
- package/dist/ui-lJmATPTt.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -144,7 +144,7 @@ declare const preloadWaaPOnIdle: (target: WaaPPreloadTarget, options?: WaaPIdleP
|
|
|
144
144
|
//#endregion
|
|
145
145
|
//#region src/lib/WaaPError.d.ts
|
|
146
146
|
/** Stable, safe error vocabulary for non-EIP-1193 SDK facades. */
|
|
147
|
-
type WaaPErrorCode = 'cancelled' | 'timeout' | 'user_rejected' | 'policy_rejected' | 'not_authenticated' | 'not_connected' | 'unsupported_input' | 'wallet_error' | 'unknown';
|
|
147
|
+
type WaaPErrorCode = 'cancelled' | 'timeout' | 'user_rejected' | 'policy_rejected' | 'not_authenticated' | 'not_connected' | 'unsupported_input' | 'wallet_error' | 'maintenance' | 'unknown';
|
|
148
148
|
type WaaPOperationMetadata = {
|
|
149
149
|
/**
|
|
150
150
|
* The chain the failed operation targeted. Declared structurally rather than
|
|
@@ -144,7 +144,7 @@ declare const preloadWaaPOnIdle: (target: WaaPPreloadTarget, options?: WaaPIdleP
|
|
|
144
144
|
//#endregion
|
|
145
145
|
//#region src/lib/WaaPError.d.ts
|
|
146
146
|
/** Stable, safe error vocabulary for non-EIP-1193 SDK facades. */
|
|
147
|
-
type WaaPErrorCode = 'cancelled' | 'timeout' | 'user_rejected' | 'policy_rejected' | 'not_authenticated' | 'not_connected' | 'unsupported_input' | 'wallet_error' | 'unknown';
|
|
147
|
+
type WaaPErrorCode = 'cancelled' | 'timeout' | 'user_rejected' | 'policy_rejected' | 'not_authenticated' | 'not_connected' | 'unsupported_input' | 'wallet_error' | 'maintenance' | 'unknown';
|
|
148
148
|
type WaaPOperationMetadata = {
|
|
149
149
|
/**
|
|
150
150
|
* The chain the failed operation targeted. Declared structurally rather than
|
package/dist/evm.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { P as WaaPSessionProtection, _ as validateWalletOrigin, a as PermissionTokenQuery, c as SilkEthereumProviderInterface, d as WaaPAccountStatus, f as WaaPLoginOptions, g as resolveWalletOrigin, h as WaaPWalletTargetOptions, i as PermissionTokenClearResult, l as SilkProvider, m as WaaPEnvironment, n as InitSilkOptions, o as PermissionTokenStatus, u as WaaPAccountMode } from "./types-BmCqyQtu.mjs";
|
|
2
|
-
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, i as normalizeWaaPError, l as WaaPIframeDiagnostics, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-
|
|
2
|
+
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, i as normalizeWaaPError, l as WaaPIframeDiagnostics, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-QHdMfZW7.mjs";
|
|
3
3
|
//#region src/ui/evm.d.ts
|
|
4
4
|
/** Initialize the TAP t1 EVM EIP-1193 provider. */
|
|
5
5
|
declare const initWaaP: (params?: InitSilkOptions) => SilkEthereumProviderInterface;
|
package/dist/evm.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { P as WaaPSessionProtection, _ as validateWalletOrigin, a as PermissionTokenQuery, c as SilkEthereumProviderInterface, d as WaaPAccountStatus, f as WaaPLoginOptions, g as resolveWalletOrigin, h as WaaPWalletTargetOptions, i as PermissionTokenClearResult, l as SilkProvider, m as WaaPEnvironment, n as InitSilkOptions, o as PermissionTokenStatus, u as WaaPAccountMode } from "./types-BmCqyQtu.js";
|
|
2
|
-
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, i as normalizeWaaPError, l as WaaPIframeDiagnostics, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-
|
|
2
|
+
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, i as normalizeWaaPError, l as WaaPIframeDiagnostics, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-D64X-oFe.js";
|
|
3
3
|
//#region src/ui/evm.d.ts
|
|
4
4
|
/** Initialize the TAP t1 EVM EIP-1193 provider. */
|
|
5
5
|
declare const initWaaP: (params?: InitSilkOptions) => SilkEthereumProviderInterface;
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { A as StylesConfig, C as ProjectConfig, M as SILK_METHOD, P as WaaPSessionProtection, S as LinkedAddressesResult, T as RequestPermissionTokenResult, _ as validateWalletOrigin, a as PermissionTokenQuery, b as CustomConfig, c as SilkEthereumProviderInterface, d as WaaPAccountStatus, f as WaaPLoginOptions, g as resolveWalletOrigin, h as WaaPWalletTargetOptions, i as PermissionTokenClearResult, j as JSON_RPC_METHOD, k as SocialProvider, l as SilkProvider, m as WaaPEnvironment, n as InitSilkOptions, o as PermissionTokenStatus, p as WaaPSessionExtension, r as LoginResponse, s as RequestArguments, t as EthereumProviderInterface, u as WaaPAccountMode, v as AuthenticationMethod, w as RequestPermissionTokenParams, x as LinkAddressNonceResult, y as CredentialType } from "./types-BmCqyQtu.mjs";
|
|
2
2
|
import { _ as WAAP_EVENTS, a as useWaapTransaction, c as AsyncEventType, d as AsyncSignPendingEvent, f as AsyncTxConfirmedEvent, g as SilkOptions, h as AsyncTxResponse, i as UseWaapTransactionReturn, l as AsyncSignCompleteEvent, m as AsyncTxPendingEvent, n as TxState, o as Async2faRequiredEvent, p as AsyncTxFailedEvent, r as UseWaapTransactionOptions, s as AsyncEvent, t as useWaapAuth, u as AsyncSignFailedEvent } from "./useWaapAuth-vJAk2n_I.mjs";
|
|
3
|
-
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, h as WalletMessageManager, i as normalizeWaaPError, l as WaaPIframeDiagnostics, m as PostSilkRequestArgs, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-
|
|
3
|
+
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, h as WalletMessageManager, i as normalizeWaaPError, l as WaaPIframeDiagnostics, m as PostSilkRequestArgs, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-QHdMfZW7.mjs";
|
|
4
4
|
import { $ as SuiSignTransactionInput, A as SolanaSignTransactionOutput, B as InitWaaPSuiOptions, C as SolanaConnectInput, D as SolanaSignMessageInput, E as SolanaSignAndSendTransactionOutput, F as SolanaStandardSignTransactionInput, H as SuiChain, I as SolanaStandardSignTransactionOutput, J as SuiSignAndExecuteTransactionOutput, M as SolanaStandardSignAndSendTransactionOutput, N as SolanaStandardSignMessageInput, O as SolanaSignMessageOutput, P as SolanaStandardSignMessageOutput, R as WaaPSolanaProviderInterface, S as SolanaChain, T as SolanaSignAndSendTransactionInput, U as SuiConnectInput, V as SuiAccount, W as SuiConnectOutput, X as SuiSignPersonalMessageOutput, Y as SuiSignPersonalMessageInput, _ as initWaaPSquid, a as WaaPChain, b as InitWaaPSolanaOptions, c as WaaPSquidLifecycle, d as WaaPSquidStatusState, et as SuiSignTransactionOutput, f as WaaPTap, g as initWaaPSolana, h as initWaaPMulti, i as InitWaaPTapOptions, it as WaaPSuiWalletInterface, j as SolanaStandardSignAndSendTransactionInput, k as SolanaSignTransactionInput, l as WaaPSquidSession, m as initWaaP, n as InitWaaPOptions, o as WaaPSquid, p as WaaPTapSession, q as SuiSignAndExecuteTransactionInput, r as InitWaaPSquidOptions, rt as WaaPSuiWalletFeatures, s as WaaPSquidChain, t as InitWaaPMultiOptions, tt as SuiTransactionInput, u as WaaPSquidStatus, v as initWaaPSui, w as SolanaConnectOutput, x as SolanaAccount, y as initWaaPTap, z as WaaPSolanaWalletFeatures } from "./index-C0mLQs_a.mjs";
|
|
5
5
|
import { t as SilkWalletConnect } from "./WalletConnect-BTT6LtUu.mjs";
|
|
6
6
|
import { n as UIMessageManager, r as UI_EVENT_NAMES } from "./initializerContext-_YjbVTiL.mjs";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { A as StylesConfig, C as ProjectConfig, M as SILK_METHOD, P as WaaPSessionProtection, S as LinkedAddressesResult, T as RequestPermissionTokenResult, _ as validateWalletOrigin, a as PermissionTokenQuery, b as CustomConfig, c as SilkEthereumProviderInterface, d as WaaPAccountStatus, f as WaaPLoginOptions, g as resolveWalletOrigin, h as WaaPWalletTargetOptions, i as PermissionTokenClearResult, j as JSON_RPC_METHOD, k as SocialProvider, l as SilkProvider, m as WaaPEnvironment, n as InitSilkOptions, o as PermissionTokenStatus, p as WaaPSessionExtension, r as LoginResponse, s as RequestArguments, t as EthereumProviderInterface, u as WaaPAccountMode, v as AuthenticationMethod, w as RequestPermissionTokenParams, x as LinkAddressNonceResult, y as CredentialType } from "./types-BmCqyQtu.js";
|
|
2
2
|
import { _ as WAAP_EVENTS, a as useWaapTransaction, c as AsyncEventType, d as AsyncSignPendingEvent, f as AsyncTxConfirmedEvent, g as SilkOptions, h as AsyncTxResponse, i as UseWaapTransactionReturn, l as AsyncSignCompleteEvent, m as AsyncTxPendingEvent, n as TxState, o as Async2faRequiredEvent, p as AsyncTxFailedEvent, r as UseWaapTransactionOptions, s as AsyncEvent, t as useWaapAuth, u as AsyncSignFailedEvent } from "./useWaapAuth-DgYO5KxO.js";
|
|
3
|
-
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, h as WalletMessageManager, i as normalizeWaaPError, l as WaaPIframeDiagnostics, m as PostSilkRequestArgs, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-
|
|
3
|
+
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, h as WalletMessageManager, i as normalizeWaaPError, l as WaaPIframeDiagnostics, m as PostSilkRequestArgs, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-D64X-oFe.js";
|
|
4
4
|
import { $ as SuiSignTransactionInput, A as SolanaSignTransactionOutput, B as InitWaaPSuiOptions, C as SolanaConnectInput, D as SolanaSignMessageInput, E as SolanaSignAndSendTransactionOutput, F as SolanaStandardSignTransactionInput, H as SuiChain, I as SolanaStandardSignTransactionOutput, J as SuiSignAndExecuteTransactionOutput, M as SolanaStandardSignAndSendTransactionOutput, N as SolanaStandardSignMessageInput, O as SolanaSignMessageOutput, P as SolanaStandardSignMessageOutput, R as WaaPSolanaProviderInterface, S as SolanaChain, T as SolanaSignAndSendTransactionInput, U as SuiConnectInput, V as SuiAccount, W as SuiConnectOutput, X as SuiSignPersonalMessageOutput, Y as SuiSignPersonalMessageInput, _ as initWaaPSquid, a as WaaPChain, b as InitWaaPSolanaOptions, c as WaaPSquidLifecycle, d as WaaPSquidStatusState, et as SuiSignTransactionOutput, f as WaaPTap, g as initWaaPSolana, h as initWaaPMulti, i as InitWaaPTapOptions, it as WaaPSuiWalletInterface, j as SolanaStandardSignAndSendTransactionInput, k as SolanaSignTransactionInput, l as WaaPSquidSession, m as initWaaP, n as InitWaaPOptions, o as WaaPSquid, p as WaaPTapSession, q as SuiSignAndExecuteTransactionInput, r as InitWaaPSquidOptions, rt as WaaPSuiWalletFeatures, s as WaaPSquidChain, t as InitWaaPMultiOptions, tt as SuiTransactionInput, u as WaaPSquidStatus, v as initWaaPSui, w as SolanaConnectOutput, x as SolanaAccount, y as initWaaPTap, z as WaaPSolanaWalletFeatures } from "./index-DOIss_GK.js";
|
|
5
5
|
import { t as SilkWalletConnect } from "./WalletConnect-BTT6LtUu.js";
|
|
6
6
|
import { n as UIMessageManager, r as UI_EVENT_NAMES } from "./initializerContext-DIrqEE6B.js";
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./esm-DFwVZkjo.js"),t=require("./asyncSigning-B0KrmKk7.js"),n=require("./evm-BXkH-I90.js"),r=require("./ui-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./esm-DFwVZkjo.js"),t=require("./asyncSigning-B0KrmKk7.js"),n=require("./evm-BXkH-I90.js"),r=require("./ui-BHIqqJWQ.js"),i=require("./WalletConnect-Dn40Omgo.js"),a=require("./register-jgVHbdqY.js"),o=require("./register-DEhrbVMU.js"),s=require("./useWaapAuth-BPvve-_3.js");let c=require("events");var l=class extends c.EventEmitter{constructor(e){super(),this.isSilk=!0,this.connected=!1,this.config={...n.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.t).includes(t.method))return Promise.reject({error:`Not implemented (${t.method})`});let n=await this.sendToExtension(t);return(t.method===e.t.wallet_switchEthereumChain||t.method===e.t.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.r.login})}async requestSBT(t){return this.sendToExtension({method:e.r.silk_requestSbt,params:[t]})}async toggleDarkMode(){this.config.styles.darkMode=!this.config.styles.darkMode,await this.sendToExtension({method:e.r.set_custom_config,params:[this.config]})}async safe(){return this.sendToExtension({method:e.r.safe})}};
|
|
2
2
|
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
3
3
|
function u(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function d(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function f(e,...t){if(!u(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 p(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 m(e,t){f(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function ee(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function h(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function g(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function _(e,t){return e<<32-t|e>>>t}const te=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ne(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function re(e){for(let t=0;t<e.length;t++)e[t]=ne(e[t]);return e}const v=te?e=>e:re,ie=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,ae=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function oe(e){if(f(e),ie)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=ae[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)),f(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 se(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=se(`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`);function ce(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 le(e,t,n){return e&t^~e&n}function ue(e,t,n){return e&t^e&n^t&n}var de=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=g(this.buffer)}update(e){p(this),e=b(e),f(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=g(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){p(this),m(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:r,isLE:i}=this,{pos:a}=this;t[a++]=128,h(this.buffer.subarray(a)),this.padOffset>r-a&&(this.process(n,0),a=0);for(let e=a;e<r;e++)t[e]=0;ce(n,r-8,BigInt(this.length*8),i),this.process(n,0);let o=g(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 fe(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 pe(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}=fe(e[a],t);[r[a],i[a]]=[n,o]}return[r,i]}const me=(e,t,n)=>e<<n|t>>>32-n,he=(e,t,n)=>t<<n|e>>>32-n,ge=(e,t,n)=>t<<n-32|e>>>64-n,_e=(e,t,n)=>e<<n-32|t>>>64-n,ve=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 ye=class extends de{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=_(t,7)^_(t,18)^t>>>3,i=_(n,17)^_(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=_(o,6)^_(o,11)^_(o,25),u=l+t+le(o,s,c)+ve[e]+D[e]|0,d=(_(n,2)^_(n,13)^_(n,22))+ue(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(){h(D)}destroy(){this.set(0,0,0,0,0,0,0,0),h(this.buffer)}};const O=S(()=>new ye);function be(e,t){return e.exec(t)?.groups}const k=/^tuple(?<array>(\[(\d*)\])*)$/;function A(e){let t=e.type;if(k.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+=A(i),r<n-1&&(t+=`, `)}let r=be(k,e.type);return t+=`)${r?.array||``}`,A({...e,type:t})}return`indexed`in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}function j(e){let t=``,n=e.length;for(let r=0;r<n;r++){let i=e[r];t+=A(i),r!==n-1&&(t+=`, `)}return t}function xe(e){return e.type===`function`?`function ${e.name}(${j(e.inputs)})${e.stateMutability&&e.stateMutability!==`nonpayable`?` ${e.stateMutability}`:``}${e.outputs?.length?` returns (${j(e.outputs)})`:``}`:e.type===`event`?`event ${e.name}(${j(e.inputs)})`:e.type===`error`?`error ${e.name}(${j(e.inputs)})`:e.type===`constructor`?`constructor(${j(e.inputs)})${e.stateMutability===`payable`?` payable`:``}`:e.type===`fallback`?`fallback() external${e.stateMutability===`payable`?` payable`:``}`:`receive() external payable`}function M(e,{strict:t=!0}={}){return!e||typeof e!=`string`?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith(`0x`)}function N(e){return M(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}const P=`2.55.2`;let F={getDocsUrl:({docsBaseUrl:e,docsPath:t=``,docsSlug:n})=>t?`${e??`https://viem.sh`}${t}${n?`#${n}`:``}`:void 0,version:`viem@${P}`};var I=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=F.getDocsUrl?.({...n,docsPath:i}),o=[t||`An error occurred.`,``,...n.metaMessages?[...n.metaMessages,``]:[],...a?[`Docs: ${a}`]:[],...r?[`Details: ${r}`]:[],...F.version?[`Version: ${F.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=P}walk(e){return L(this,e)}};function L(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause!==void 0?L(e.cause,t):t?null:e}var R=class extends I{constructor({offset:e,position:t,size:n}){super(`Slice ${t===`start`?`starting`:`ending`} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:`SliceOffsetOutOfBoundsError`})}},z=class extends I{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 B(e,{dir:t,size:n=32}={}){return typeof e==`string`?Se(e,{dir:t,size:n}):Ce(e,{dir:t,size:n})}function Se(e,{dir:t,size:n=32}={}){if(n===null)return e;let r=e.replace(`0x`,``);if(r.length>n*2)throw new z({size:Math.ceil(r.length/2),targetSize:n,type:`hex`});return`0x${r[t===`right`?`padEnd`:`padStart`](n*2,`0`)}`}function Ce(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new z({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 we=class extends I{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`})}},Te=class extends I{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:`SizeOverflowError`})}};function V(e,{size:t}){if(N(e)>t)throw new Te({givenSize:N(e),maxSize:t})}const Ee=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function De(e,t={}){return typeof e==`number`||typeof e==`bigint`?U(e,t):typeof e==`string`?Ae(e,t):typeof e==`boolean`?Oe(e,t):H(e,t)}function Oe(e,t={}){let n=`0x${Number(e)}`;return typeof t.size==`number`?(V(n,{size:t.size}),B(n,{size:t.size})):n}function H(e,t={}){let n=``;for(let t=0;t<e.length;t++)n+=Ee[e[t]];let r=`0x${n}`;return typeof t.size==`number`?(V(r,{size:t.size}),B(r,{dir:`right`,size:t.size})):r}function U(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 we({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?B(s,{size:r}):s}const ke=new TextEncoder;function Ae(e,t={}){return H(ke.encode(e),t)}const je=new TextEncoder;function W(e,t={}){return typeof e==`number`||typeof e==`bigint`?Ne(e,t):typeof e==`boolean`?Me(e,t):M(e)?q(e,t):J(e,t)}function Me(e,t={}){let n=new Uint8Array(1);return n[0]=Number(e),typeof t.size==`number`?(V(n,{size:t.size}),B(n,{size:t.size})):n}const G={zero:48,nine:57,A:65,F:70,a:97,f:102};function K(e){if(e>=G.zero&&e<=G.nine)return e-G.zero;if(e>=G.A&&e<=G.F)return e-(G.A-10);if(e>=G.a&&e<=G.f)return e-(G.a-10)}function q(e,t={}){let n=e;t.size&&(V(n,{size:t.size}),n=B(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=K(r.charCodeAt(t++)),i=K(r.charCodeAt(t++));if(n===void 0||i===void 0)throw new I(`Invalid byte sequence ("${r[t-2]}${r[t-1]}" in "${r}").`);a[e]=n*16+i}return a}function Ne(e,t){return q(U(e,t))}function J(e,t={}){let n=je.encode(e);return typeof t.size==`number`?(V(n,{size:t.size}),B(n,{dir:`right`,size:t.size})):n}const Pe=BigInt(0),Y=BigInt(1),Fe=BigInt(2),Ie=BigInt(7),Le=BigInt(256),Re=BigInt(113),X=[],ze=[],Be=[];for(let e=0,t=Y,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],X.push(2*(5*r+n)),ze.push((e+1)*(e+2)/2%64);let i=Pe;for(let e=0;e<7;e++)t=(t<<Y^(t>>Ie)*Re)%Le,t&Fe&&(i^=Y<<(Y<<BigInt(e))-Y);Be.push(i)}const Ve=pe(Be,!0),He=Ve[0],Ue=Ve[1],We=(e,t,n)=>n>32?ge(e,t,n):me(e,t,n),Ge=(e,t,n)=>n>32?_e(e,t,n):he(e,t,n);function Ke(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=We(a,o,1)^n[r],c=Ge(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=ze[n],a=We(t,i,r),o=Ge(t,i,r),s=X[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]^=He[r],e[1]^=Ue[r]}h(n)}var qe=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,d(n),!(0<e&&e<200))throw Error(`only keccak-f1600 function is supported`);this.state=new Uint8Array(200),this.state32=ee(this.state)}clone(){return this._cloneInto()}keccak(){v(this.state32),Ke(this.state32,this.rounds),v(this.state32),this.posOut=0,this.pos=0}update(e){p(this),e=b(e),f(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){p(this,!1),f(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 d(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(m(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,h(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 Je=((e,t,n)=>S(()=>new qe(t,e,n)))(1,136,256/8);function Ye(e,t){let n=t||`hex`,r=Je(M(e,{strict:!1})?W(e):e);return n===`bytes`?r:De(r)}const Xe=e=>Ye(W(e));function Ze(e){return Xe(e)}function Qe(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 I(`Unable to normalize signature.`);return i}const $e=e=>Qe(typeof e==`string`?e:xe(e));function et(e){return Ze($e(e))}var tt=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 tt(8192);function nt(e,t){if(Z.has(`${e}.${t}`))return Z.get(`${e}.${t}`);let n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),r=Ye(J(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 rt=/^0x[a-fA-F0-9]{40}$/,Q=new tt(8192);function it(e,t){let{strict:n=!0}=t??{},r=`${e}.${n}`;if(Q.has(r))return Q.get(r);let i=rt.test(e)?e.toLowerCase()===e||!n||nt(e)===e:!1;return Q.set(r,i),i}function at(e,t,n,{strict:r}={}){return M(e,{strict:!1})?lt(e,t,n,{strict:r}):ct(e,t,n,{strict:r})}function ot(e,t){if(typeof t==`number`&&t>0&&t>N(e)-1)throw new R({offset:t,position:`start`,size:N(e)})}function st(e,t,n){if(typeof t==`number`&&typeof n==`number`&&N(e)!==n-t)throw new R({offset:n,position:`end`,size:N(e)})}function ct(e,t,n,{strict:r}={}){ot(e,t);let i=e.slice(t,n);return r&&st(i,t,n),i}function lt(e,t,n,{strict:r}={}){ot(e,t);let i=`0x${e.replace(`0x`,``).slice((t??0)*2,(n??e.length)*2)}`;return r&&st(i,t,n),i}const ut=e=>at(et(e),0,4),dt=/^0x[0-9a-fA-F]{1,64}$/,ft=/^[A-Za-z_][A-Za-z0-9_]*$/;function pt(e){return`0x${e.slice(2).toLowerCase().padStart(64,`0`)}`}function mt(e){return e.indexOf(`:`)}function ht(e){try{let t=C.decode(e);return t.length===32?C.encode(t):null}catch{return null}}function gt(e,t){if(t.length===0||new TextEncoder().encode(t).length>512||t.trim()!==t)return null;let n=mt(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(!it(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(!dt.test(r))return null;let e=pt(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||!ft.test(t[0])||t[1]!==`*`&&!ft.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=ht(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=gt(e,t);if(!n)throw Error(`Invalid permission-token scope: ${t}`);return n.canonical}function _t(e){return`0x${oe(e)}`}function vt(e,t){let n=gt(e,t);if(!n||n.kind!==`recipient`)throw Error(`Invalid ${e} permission-token recipient: ${t}`);return n.canonical}function yt(e){return $(`evm:1`,`${e}:*`)}function bt(e,t){return $(`evm:1`,`${e}:${/^0x[0-9a-fA-F]{8}$/.test(t)?t:ut(t)}`)}function xt(e){return $(`sui:mainnet`,`${e}:*`)}function St(e,t,n=`*`){return $(`sui:mainnet`,`${e}:${t}::${n}`)}function Ct(e){return $(`solana:mainnet`,`${e}:*`)}function wt(e,t){return $(`solana:mainnet`,`${e}:disc:${typeof t==`string`?t:_t(t)}`)}function Tt(e,t){return $(`solana:mainnet`,`${e}:data-sha256:${_t(O(t))}`)}function Et(e){return e.replace(/([a-z0-9])([A-Z])/g,`$1_$2`).replace(/[-\s]+/g,`_`).toLowerCase()}function Dt(e,t){return wt(e,t.discriminator?Uint8Array.from(t.discriminator):O(y(`global:${Et(t.name)}`)).slice(0,8))}exports.EthereumProvider=n.r,exports.EthereumProviderExtension=l,Object.defineProperty(exports,"SILK_METHOD",{enumerable:!0,get:function(){return e.r}}),Object.defineProperty(exports,"WAAP_METHOD",{enumerable:!0,get:function(){return e.r}}),exports.SilkWalletConnect=i.t,exports.WaaPWalletConnect=i.t,exports.UIMessageManager=n.a,exports.UI_EVENT_NAMES=n.o,exports.WAAP_EVENTS=t.t,Object.defineProperty(exports,"WaaP",{enumerable:!0,get:function(){return n.C}}),exports.WaaPError=n.w,exports.WaaPSolanaProvider=r.s,exports.WaaPSuiWallet=r.c,exports.WalletMessageManager=n.h,exports.getWaaPIframeDiagnostics=n.d,exports.handleWalletRequestAndResponse=n.c,exports.initWaaP=r.t,exports.initWaaPMulti=r.n,exports.initWaaPSolana=r.r,exports.initWaaPSquid=r.i,exports.initWaaPSui=r.a,exports.initWaaPTap=r.o,exports.normalizeWaaPError=n.T,exports.permissionTokenEvmContract=yt,exports.permissionTokenEvmFunction=bt,exports.permissionTokenRecipient=vt,exports.permissionTokenSolanaAnchorInstruction=Dt,exports.permissionTokenSolanaDiscriminator=wt,exports.permissionTokenSolanaInstruction=Tt,exports.permissionTokenSolanaProgram=Ct,exports.permissionTokenSuiFunction=St,exports.permissionTokenSuiPackage=xt,exports.preloadWaaPOnIdle=n.s,exports.registerWaaPSolanaWallet=o.t,exports.registerWaaPSuiWallet=a.t,exports.resolveWalletOrigin=n.x,exports.rpcMethodRequiresUI=n.l,exports.subscribeWaaPIframeLifecycle=n.m,exports.useWaapAuth=s.t,exports.useWaapTransaction=s.n,exports.validateWalletOrigin=n.S;
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e,t}from"./esm-BUfmyWbN.mjs";import{t as n}from"./asyncSigning-CzqBbYDP.mjs";import{C as r,S as i,T as a,a as o,c as s,d as c,h as l,i as u,l as d,m as f,o as ee,r as te,s as ne,w as re,x as ie}from"./evm-BINU4e1N.mjs";import{a as ae,c as oe,i as se,n as ce,o as le,r as ue,s as de,t as fe}from"./ui-
|
|
1
|
+
import{r as e,t}from"./esm-BUfmyWbN.mjs";import{t as n}from"./asyncSigning-CzqBbYDP.mjs";import{C as r,S as i,T as a,a as o,c as s,d as c,h as l,i as u,l as d,m as f,o as ee,r as te,s as ne,w as re,x as ie}from"./evm-BINU4e1N.mjs";import{a as ae,c as oe,i as se,n as ce,o as le,r as ue,s as de,t as fe}from"./ui-9HR3zyVP.mjs";import{t as pe}from"./WalletConnect-UfxGn2M_.mjs";import{t as me}from"./register-CdhMOOIi.mjs";import{t as he}from"./register-DfLqs9vQ.mjs";import{n as ge,t as _e}from"./useWaapAuth-BcmVGb-D.mjs";import{EventEmitter as ve}from"events";var ye=class extends ve{constructor(e){super(),this.isSilk=!0,this.connected=!1,this.config={...u,...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(e){if(!Object.keys(t).includes(e.method))return Promise.reject({error:`Not implemented (${e.method})`});let n=await this.sendToExtension(e);return(e.method===t.wallet_switchEthereumChain||e.method===t.wallet_addEthereumChain)&&n===null&&this.emit(`chainChanged`,e.params?.[0]?.chainId),n}async enable(){return this.request({method:`eth_requestAccounts`})}isConnected(){return this.connected}async login(){return this.sendToExtension({method:e.login})}async requestSBT(t){return this.sendToExtension({method:e.silk_requestSbt,params:[t]})}async toggleDarkMode(){this.config.styles.darkMode=!this.config.styles.darkMode,await this.sendToExtension({method:e.set_custom_config,params:[this.config]})}async safe(){return this.sendToExtension({method:e.safe})}};
|
|
2
2
|
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
3
3
|
function be(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(!be(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 xe(e,t){m(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function Se(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 Ce=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function we(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Te(e){for(let t=0;t<e.length;t++)e[t]=we(e[t]);return e}const y=Ce?e=>e:Te,Ee=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,De=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function Oe(e){if(m(e),Ee)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=De[e[n]];return t}function b(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function x(e){return typeof e==`string`&&(e=b(e)),m(e),e}var S=class{};function C(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 ke(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 w=ke(`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`);function Ae(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 je(e,t,n){return e&t^~e&n}function Me(e,t,n){return e&t^e&n^t&n}var Ne=class extends S{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=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=_(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),xe(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;Ae(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 T=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),E=BigInt(2**32-1),D=BigInt(32);function Pe(e,t=!1){return t?{h:Number(e&E),l:Number(e>>D&E)}:{h:Number(e>>D&E)|0,l:Number(e&E)|0}}function Fe(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}=Pe(e[a],t);[r[a],i[a]]=[n,o]}return[r,i]}const Ie=(e,t,n)=>e<<n|t>>>32-n,Le=(e,t,n)=>t<<n|e>>>32-n,Re=(e,t,n)=>t<<n-32|e>>>64-n,ze=(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]),O=new Uint32Array(64);var Ve=class extends Ne{constructor(e=32){super(64,e,8,!1),this.A=T[0]|0,this.B=T[1]|0,this.C=T[2]|0,this.D=T[3]|0,this.E=T[4]|0,this.F=T[5]|0,this.G=T[6]|0,this.H=T[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)O[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=O[e-15],n=O[e-2],r=v(t,7)^v(t,18)^t>>>3,i=v(n,17)^v(n,19)^n>>>10;O[e]=i+O[e-7]+r+O[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+je(o,s,c)+Be[e]+O[e]|0,d=(v(n,2)^v(n,13)^v(n,22))+Me(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(O)}destroy(){this.set(0,0,0,0,0,0,0,0),g(this.buffer)}};const k=C(()=>new Ve);function He(e,t){return e.exec(t)?.groups}const A=/^tuple(?<array>(\[(\d*)\])*)$/;function j(e){let t=e.type;if(A.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+=j(i),r<n-1&&(t+=`, `)}let r=He(A,e.type);return t+=`)${r?.array||``}`,j({...e,type:t})}return`indexed`in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}function M(e){let t=``,n=e.length;for(let r=0;r<n;r++){let i=e[r];t+=j(i),r!==n-1&&(t+=`, `)}return t}function Ue(e){return e.type===`function`?`function ${e.name}(${M(e.inputs)})${e.stateMutability&&e.stateMutability!==`nonpayable`?` ${e.stateMutability}`:``}${e.outputs?.length?` returns (${M(e.outputs)})`:``}`:e.type===`event`?`event ${e.name}(${M(e.inputs)})`:e.type===`error`?`error ${e.name}(${M(e.inputs)})`:e.type===`constructor`?`constructor(${M(e.inputs)})${e.stateMutability===`payable`?` payable`:``}`:e.type===`fallback`?`fallback() external${e.stateMutability===`payable`?` payable`:``}`:`receive() external payable`}function N(e,{strict:t=!0}={}){return!e||typeof e!=`string`?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith(`0x`)}function P(e){return N(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}const F=`2.55.2`;let I={getDocsUrl:({docsBaseUrl:e,docsPath:t=``,docsSlug:n})=>t?`${e??`https://viem.sh`}${t}${n?`#${n}`:``}`:void 0,version:`viem@${F}`};var L=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=I.getDocsUrl?.({...n,docsPath:i}),o=[t||`An error occurred.`,``,...n.metaMessages?[...n.metaMessages,``]:[],...a?[`Docs: ${a}`]:[],...r?[`Details: ${r}`]:[],...I.version?[`Version: ${I.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=F}walk(e){return R(this,e)}};function R(e,t){return t?.(e)?e:e&&typeof e==`object`&&`cause`in e&&e.cause!==void 0?R(e.cause,t):t?null:e}var z=class extends L{constructor({offset:e,position:t,size:n}){super(`Slice ${t===`start`?`starting`:`ending`} at offset "${e}" is out-of-bounds (size: ${n}).`,{name:`SliceOffsetOutOfBoundsError`})}},B=class extends L{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 V(e,{dir:t,size:n=32}={}){return typeof e==`string`?We(e,{dir:t,size:n}):Ge(e,{dir:t,size:n})}function We(e,{dir:t,size:n=32}={}){if(n===null)return e;let r=e.replace(`0x`,``);if(r.length>n*2)throw new B({size:Math.ceil(r.length/2),targetSize:n,type:`hex`});return`0x${r[t===`right`?`padEnd`:`padStart`](n*2,`0`)}`}function Ge(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new B({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 L{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 L{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed ${t} bytes. Given size: ${e} bytes.`,{name:`SizeOverflowError`})}};function H(e,{size:t}){if(P(e)>t)throw new qe({givenSize:P(e),maxSize:t})}const Je=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function Ye(e,t={}){return typeof e==`number`||typeof e==`bigint`?W(e,t):typeof e==`string`?Qe(e,t):typeof e==`boolean`?Xe(e,t):U(e,t)}function Xe(e,t={}){let n=`0x${Number(e)}`;return typeof t.size==`number`?(H(n,{size:t.size}),V(n,{size:t.size})):n}function U(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`?(H(r,{size:t.size}),V(r,{dir:`right`,size:t.size})):r}function W(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?V(s,{size:r}):s}const Ze=new TextEncoder;function Qe(e,t={}){return U(Ze.encode(e),t)}const $e=new TextEncoder;function G(e,t={}){return typeof e==`number`||typeof e==`bigint`?tt(e,t):typeof e==`boolean`?et(e,t):N(e)?J(e,t):nt(e,t)}function et(e,t={}){let n=new Uint8Array(1);return n[0]=Number(e),typeof t.size==`number`?(H(n,{size:t.size}),V(n,{size:t.size})):n}const K={zero:48,nine:57,A:65,F:70,a:97,f:102};function q(e){if(e>=K.zero&&e<=K.nine)return e-K.zero;if(e>=K.A&&e<=K.F)return e-(K.A-10);if(e>=K.a&&e<=K.f)return e-(K.a-10)}function J(e,t={}){let n=e;t.size&&(H(n,{size:t.size}),n=V(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=q(r.charCodeAt(t++)),i=q(r.charCodeAt(t++));if(n===void 0||i===void 0)throw new L(`Invalid byte sequence ("${r[t-2]}${r[t-1]}" in "${r}").`);a[e]=n*16+i}return a}function tt(e,t){return J(W(e,t))}function nt(e,t={}){let n=$e.encode(e);return typeof t.size==`number`?(H(n,{size:t.size}),V(n,{dir:`right`,size:t.size})):n}const rt=BigInt(0),Y=BigInt(1),it=BigInt(2),at=BigInt(7),ot=BigInt(256),st=BigInt(113),ct=[],lt=[],ut=[];for(let e=0,t=Y,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],ct.push(2*(5*r+n)),lt.push((e+1)*(e+2)/2%64);let i=rt;for(let e=0;e<7;e++)t=(t<<Y^(t>>at)*st)%ot,t&it&&(i^=Y<<(Y<<BigInt(e))-Y);ut.push(i)}const dt=Fe(ut,!0),ft=dt[0],pt=dt[1],mt=(e,t,n)=>n>32?Re(e,t,n):Ie(e,t,n),ht=(e,t,n)=>n>32?ze(e,t,n):Le(e,t,n);function gt(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=mt(a,o,1)^n[r],c=ht(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=lt[n],a=mt(t,i,r),o=ht(t,i,r),s=ct[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]^=ft[r],e[1]^=pt[r]}g(n)}var _t=class e extends S{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=Se(this.state)}clone(){return this._cloneInto()}keccak(){y(this.state32),gt(this.state32,this.rounds),y(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(xe(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 vt=((e,t,n)=>C(()=>new _t(t,e,n)))(1,136,256/8);function yt(e,t){let n=t||`hex`,r=vt(N(e,{strict:!1})?G(e):e);return n===`bytes`?r:Ye(r)}const bt=e=>yt(G(e));function xt(e){return bt(e)}function St(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 L(`Unable to normalize signature.`);return i}const Ct=e=>St(typeof e==`string`?e:Ue(e));function wt(e){return xt(Ct(e))}var Tt=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 Tt(8192);function Et(e,t){if(X.has(`${e}.${t}`))return X.get(`${e}.${t}`);let n=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),r=yt(nt(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 Dt=/^0x[a-fA-F0-9]{40}$/,Z=new Tt(8192);function Ot(e,t){let{strict:n=!0}=t??{},r=`${e}.${n}`;if(Z.has(r))return Z.get(r);let i=Dt.test(e)?e.toLowerCase()===e||!n||Et(e)===e:!1;return Z.set(r,i),i}function kt(e,t,n,{strict:r}={}){return N(e,{strict:!1})?Nt(e,t,n,{strict:r}):Mt(e,t,n,{strict:r})}function At(e,t){if(typeof t==`number`&&t>0&&t>P(e)-1)throw new z({offset:t,position:`start`,size:P(e)})}function jt(e,t,n){if(typeof t==`number`&&typeof n==`number`&&P(e)!==n-t)throw new z({offset:n,position:`end`,size:P(e)})}function Mt(e,t,n,{strict:r}={}){At(e,t);let i=e.slice(t,n);return r&&jt(i,t,n),i}function Nt(e,t,n,{strict:r}={}){At(e,t);let i=`0x${e.replace(`0x`,``).slice((t??0)*2,(n??e.length)*2)}`;return r&&jt(i,t,n),i}const Pt=e=>kt(wt(e),0,4),Ft=/^0x[0-9a-fA-F]{1,64}$/,It=/^[A-Za-z_][A-Za-z0-9_]*$/;function Lt(e){return`0x${e.slice(2).toLowerCase().padStart(64,`0`)}`}function Rt(e){return e.indexOf(`:`)}function zt(e){try{let t=w.decode(e);return t.length===32?w.encode(t):null}catch{return null}}function Bt(e,t){if(t.length===0||new TextEncoder().encode(t).length>512||t.trim()!==t)return null;let n=Rt(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(!Ft.test(r))return null;let e=Lt(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||!It.test(t[0])||t[1]!==`*`&&!It.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=zt(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 Q(e,t){let n=Bt(e,t);if(!n)throw Error(`Invalid permission-token scope: ${t}`);return n.canonical}function Vt(e){return`0x${Oe(e)}`}function Ht(e,t){let n=Bt(e,t);if(!n||n.kind!==`recipient`)throw Error(`Invalid ${e} permission-token recipient: ${t}`);return n.canonical}function Ut(e){return Q(`evm:1`,`${e}:*`)}function Wt(e,t){return Q(`evm:1`,`${e}:${/^0x[0-9a-fA-F]{8}$/.test(t)?t:Pt(t)}`)}function Gt(e){return Q(`sui:mainnet`,`${e}:*`)}function Kt(e,t,n=`*`){return Q(`sui:mainnet`,`${e}:${t}::${n}`)}function qt(e){return Q(`solana:mainnet`,`${e}:*`)}function $(e,t){return Q(`solana:mainnet`,`${e}:disc:${typeof t==`string`?t:Vt(t)}`)}function Jt(e,t){return Q(`solana:mainnet`,`${e}:data-sha256:${Vt(k(t))}`)}function Yt(e){return e.replace(/([a-z0-9])([A-Z])/g,`$1_$2`).replace(/[-\s]+/g,`_`).toLowerCase()}function Xt(e,t){return $(e,t.discriminator?Uint8Array.from(t.discriminator):k(b(`global:${Yt(t.name)}`)).slice(0,8))}export{te as EthereumProvider,ye as EthereumProviderExtension,e as SILK_METHOD,e as WAAP_METHOD,pe as SilkWalletConnect,pe as WaaPWalletConnect,o as UIMessageManager,ee as UI_EVENT_NAMES,n as WAAP_EVENTS,r as WaaP,re as WaaPError,de as WaaPSolanaProvider,oe as WaaPSuiWallet,l as WalletMessageManager,c as getWaaPIframeDiagnostics,s as handleWalletRequestAndResponse,fe as initWaaP,ce as initWaaPMulti,ue as initWaaPSolana,se as initWaaPSquid,ae as initWaaPSui,le as initWaaPTap,a as normalizeWaaPError,Ut as permissionTokenEvmContract,Wt as permissionTokenEvmFunction,Ht as permissionTokenRecipient,Xt as permissionTokenSolanaAnchorInstruction,$ as permissionTokenSolanaDiscriminator,Jt as permissionTokenSolanaInstruction,qt as permissionTokenSolanaProgram,Kt as permissionTokenSuiFunction,Gt as permissionTokenSuiPackage,ne as preloadWaaPOnIdle,he as registerWaaPSolanaWallet,me as registerWaaPSuiWallet,ie as resolveWalletOrigin,d as rpcMethodRequiresUI,f as subscribeWaaPIframeLifecycle,_e as useWaapAuth,ge as useWaapTransaction,i as validateWalletOrigin};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e}from"./ui-9HR3zyVP.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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./ui-
|
|
1
|
+
const e=require("./ui-BHIqqJWQ.js");let t=require("@wallet-standard/wallet");function n(n,r={}){let i=new e.s(n,r);return i.setAccountMode(`tap`),i.selectAccountMode(`tap`).catch(()=>void 0),(0,t.registerWallet)(i),i}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return n}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./ui-
|
|
1
|
+
import{s as e}from"./ui-9HR3zyVP.mjs";import{registerWallet as t}from"@wallet-standard/wallet";function n(n,r={}){let i=new e(n,r);return i.setAccountMode(`tap`),i.selectAccountMode(`tap`).catch(()=>void 0),t(i),i}export{n as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./ui-
|
|
1
|
+
const e=require("./ui-BHIqqJWQ.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}});
|
package/dist/solana.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _ as validateWalletOrigin, g as resolveWalletOrigin, h as WaaPWalletTargetOptions, m as WaaPEnvironment } from "./types-BmCqyQtu.mjs";
|
|
2
|
-
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, i as normalizeWaaPError, l as WaaPIframeDiagnostics, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-
|
|
2
|
+
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, i as normalizeWaaPError, l as WaaPIframeDiagnostics, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-QHdMfZW7.mjs";
|
|
3
3
|
import { A as SolanaSignTransactionOutput, C as SolanaConnectInput, D as SolanaSignMessageInput, E as SolanaSignAndSendTransactionOutput, F as SolanaStandardSignTransactionInput, I as SolanaStandardSignTransactionOutput, M as SolanaStandardSignAndSendTransactionOutput, N as SolanaStandardSignMessageInput, O as SolanaSignMessageOutput, P as SolanaStandardSignMessageOutput, R as WaaPSolanaProviderInterface, S as SolanaChain, T as SolanaSignAndSendTransactionInput, b as InitWaaPSolanaOptions, g as initWaaPSolana, j as SolanaStandardSignAndSendTransactionInput, k as SolanaSignTransactionInput, w as SolanaConnectOutput, x as SolanaAccount, z as WaaPSolanaWalletFeatures } from "./index-C0mLQs_a.mjs";
|
|
4
4
|
import { n as WaaPSolanaProvider, t as registerWaaPSolanaWallet } from "./register-9bEe9ATz.mjs";
|
|
5
5
|
export { type CancelWaaPPreload, type InitWaaPSolanaOptions, type SolanaAccount, type SolanaChain, type SolanaConnectInput, type SolanaConnectOutput, type SolanaSignAndSendTransactionInput, type SolanaSignAndSendTransactionOutput, type SolanaSignMessageInput, type SolanaSignMessageOutput, type SolanaSignTransactionInput, type SolanaSignTransactionOutput, type SolanaStandardSignAndSendTransactionInput, type SolanaStandardSignAndSendTransactionOutput, type SolanaStandardSignMessageInput, type SolanaStandardSignMessageOutput, type SolanaStandardSignTransactionInput, type SolanaStandardSignTransactionOutput, type WaaPEnvironment, WaaPError, type WaaPErrorCode, type WaaPIdlePreloadOptions, type WaaPIframeDiagnostics, type WaaPIframeLifecycleEvent, type WaaPIframeLifecyclePhase, type WaaPOperationMetadata, type WaaPPreloadTarget, WaaPSolanaProvider, type WaaPSolanaProviderInterface, type WaaPSolanaWalletFeatures, type WaaPWalletTargetOptions, getWaaPIframeDiagnostics, initWaaPSolana as initWaaP, initWaaPSolana, normalizeWaaPError, preloadWaaPOnIdle, registerWaaPSolanaWallet, resolveWalletOrigin, subscribeWaaPIframeLifecycle, validateWalletOrigin };
|
package/dist/solana.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _ as validateWalletOrigin, g as resolveWalletOrigin, h as WaaPWalletTargetOptions, m as WaaPEnvironment } from "./types-BmCqyQtu.js";
|
|
2
|
-
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, i as normalizeWaaPError, l as WaaPIframeDiagnostics, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-
|
|
2
|
+
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, i as normalizeWaaPError, l as WaaPIframeDiagnostics, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-D64X-oFe.js";
|
|
3
3
|
import { A as SolanaSignTransactionOutput, C as SolanaConnectInput, D as SolanaSignMessageInput, E as SolanaSignAndSendTransactionOutput, F as SolanaStandardSignTransactionInput, I as SolanaStandardSignTransactionOutput, M as SolanaStandardSignAndSendTransactionOutput, N as SolanaStandardSignMessageInput, O as SolanaSignMessageOutput, P as SolanaStandardSignMessageOutput, R as WaaPSolanaProviderInterface, S as SolanaChain, T as SolanaSignAndSendTransactionInput, b as InitWaaPSolanaOptions, g as initWaaPSolana, j as SolanaStandardSignAndSendTransactionInput, k as SolanaSignTransactionInput, w as SolanaConnectOutput, x as SolanaAccount, z as WaaPSolanaWalletFeatures } from "./index-DOIss_GK.js";
|
|
4
4
|
import { n as WaaPSolanaProvider, t as registerWaaPSolanaWallet } from "./register-PWKDsSRv.js";
|
|
5
5
|
export { type CancelWaaPPreload, type InitWaaPSolanaOptions, type SolanaAccount, type SolanaChain, type SolanaConnectInput, type SolanaConnectOutput, type SolanaSignAndSendTransactionInput, type SolanaSignAndSendTransactionOutput, type SolanaSignMessageInput, type SolanaSignMessageOutput, type SolanaSignTransactionInput, type SolanaSignTransactionOutput, type SolanaStandardSignAndSendTransactionInput, type SolanaStandardSignAndSendTransactionOutput, type SolanaStandardSignMessageInput, type SolanaStandardSignMessageOutput, type SolanaStandardSignTransactionInput, type SolanaStandardSignTransactionOutput, type WaaPEnvironment, WaaPError, type WaaPErrorCode, type WaaPIdlePreloadOptions, type WaaPIframeDiagnostics, type WaaPIframeLifecycleEvent, type WaaPIframeLifecyclePhase, type WaaPOperationMetadata, type WaaPPreloadTarget, WaaPSolanaProvider, type WaaPSolanaProviderInterface, type WaaPSolanaWalletFeatures, type WaaPWalletTargetOptions, getWaaPIframeDiagnostics, initWaaPSolana as initWaaP, initWaaPSolana, normalizeWaaPError, preloadWaaPOnIdle, registerWaaPSolanaWallet, resolveWalletOrigin, subscribeWaaPIframeLifecycle, validateWalletOrigin };
|
package/dist/solana.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./evm-BXkH-I90.js"),t=require("./ui-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./evm-BXkH-I90.js"),t=require("./ui-BHIqqJWQ.js"),n=require("./register-DEhrbVMU.js");exports.WaaPError=e.w,exports.WaaPSolanaProvider=t.s,exports.getWaaPIframeDiagnostics=e.d,exports.initWaaP=t.r,exports.initWaaPSolana=t.r,exports.normalizeWaaPError=e.T,exports.preloadWaaPOnIdle=e.s,exports.registerWaaPSolanaWallet=n.t,exports.resolveWalletOrigin=e.x,exports.subscribeWaaPIframeLifecycle=e.m,exports.validateWalletOrigin=e.S;
|
package/dist/solana.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as e,T as t,d as n,m as r,s as i,w as a,x as o}from"./evm-BINU4e1N.mjs";import{r as s,s as c}from"./ui-
|
|
1
|
+
import{S as e,T as t,d as n,m as r,s as i,w as a,x as o}from"./evm-BINU4e1N.mjs";import{r as s,s as c}from"./ui-9HR3zyVP.mjs";import{t as l}from"./register-DfLqs9vQ.mjs";export{a as WaaPError,c as WaaPSolanaProvider,n as getWaaPIframeDiagnostics,s as initWaaP,s as initWaaPSolana,t as normalizeWaaPError,i as preloadWaaPOnIdle,l as registerWaaPSolanaWallet,o as resolveWalletOrigin,r as subscribeWaaPIframeLifecycle,e as validateWalletOrigin};
|
package/dist/sui.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { T as RequestPermissionTokenResult, _ as validateWalletOrigin, g as resolveWalletOrigin, h as WaaPWalletTargetOptions, m as WaaPEnvironment, w as RequestPermissionTokenParams } from "./types-BmCqyQtu.mjs";
|
|
2
|
-
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, i as normalizeWaaPError, l as WaaPIframeDiagnostics, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-
|
|
2
|
+
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, i as normalizeWaaPError, l as WaaPIframeDiagnostics, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-QHdMfZW7.mjs";
|
|
3
3
|
import { $ as SuiSignTransactionInput, B as InitWaaPSuiOptions, H as SuiChain, J as SuiSignAndExecuteTransactionOutput, U as SuiConnectInput, V as SuiAccount, W as SuiConnectOutput, X as SuiSignPersonalMessageOutput, Y as SuiSignPersonalMessageInput, et as SuiSignTransactionOutput, it as WaaPSuiWalletInterface, q as SuiSignAndExecuteTransactionInput, rt as WaaPSuiWalletFeatures, tt as SuiTransactionInput, v as initWaaPSui } from "./index-C0mLQs_a.mjs";
|
|
4
4
|
import { n as WaaPSuiWallet, t as registerWaaPSuiWallet } from "./register-XzDVa7r8.mjs";
|
|
5
5
|
export { type CancelWaaPPreload, type InitWaaPSuiOptions, type RequestPermissionTokenParams, type RequestPermissionTokenResult, type SuiAccount, type SuiChain, type SuiConnectInput, type SuiConnectOutput, type SuiSignAndExecuteTransactionInput, type SuiSignAndExecuteTransactionOutput, type SuiSignPersonalMessageInput, type SuiSignPersonalMessageOutput, type SuiSignTransactionInput, type SuiSignTransactionOutput, type SuiTransactionInput, type WaaPEnvironment, WaaPError, type WaaPErrorCode, type WaaPIdlePreloadOptions, type WaaPIframeDiagnostics, type WaaPIframeLifecycleEvent, type WaaPIframeLifecyclePhase, type WaaPOperationMetadata, type WaaPPreloadTarget, WaaPSuiWallet, type WaaPSuiWalletFeatures, type WaaPSuiWalletInterface, type WaaPWalletTargetOptions, getWaaPIframeDiagnostics, initWaaPSui as initWaaP, initWaaPSui, normalizeWaaPError, preloadWaaPOnIdle, registerWaaPSuiWallet, resolveWalletOrigin, subscribeWaaPIframeLifecycle, validateWalletOrigin };
|
package/dist/sui.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { T as RequestPermissionTokenResult, _ as validateWalletOrigin, g as resolveWalletOrigin, h as WaaPWalletTargetOptions, m as WaaPEnvironment, w as RequestPermissionTokenParams } from "./types-BmCqyQtu.js";
|
|
2
|
-
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, i as normalizeWaaPError, l as WaaPIframeDiagnostics, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-
|
|
2
|
+
import { a as CancelWaaPPreload, c as preloadWaaPOnIdle, d as WaaPIframeLifecyclePhase, f as getWaaPIframeDiagnostics, i as normalizeWaaPError, l as WaaPIframeDiagnostics, n as WaaPErrorCode, o as WaaPIdlePreloadOptions, p as subscribeWaaPIframeLifecycle, r as WaaPOperationMetadata, s as WaaPPreloadTarget, t as WaaPError, u as WaaPIframeLifecycleEvent } from "./WaaPError-D64X-oFe.js";
|
|
3
3
|
import { $ as SuiSignTransactionInput, B as InitWaaPSuiOptions, H as SuiChain, J as SuiSignAndExecuteTransactionOutput, U as SuiConnectInput, V as SuiAccount, W as SuiConnectOutput, X as SuiSignPersonalMessageOutput, Y as SuiSignPersonalMessageInput, et as SuiSignTransactionOutput, it as WaaPSuiWalletInterface, q as SuiSignAndExecuteTransactionInput, rt as WaaPSuiWalletFeatures, tt as SuiTransactionInput, v as initWaaPSui } from "./index-DOIss_GK.js";
|
|
4
4
|
import { n as WaaPSuiWallet, t as registerWaaPSuiWallet } from "./register-Mb1D_xW4.js";
|
|
5
5
|
export { type CancelWaaPPreload, type InitWaaPSuiOptions, type RequestPermissionTokenParams, type RequestPermissionTokenResult, type SuiAccount, type SuiChain, type SuiConnectInput, type SuiConnectOutput, type SuiSignAndExecuteTransactionInput, type SuiSignAndExecuteTransactionOutput, type SuiSignPersonalMessageInput, type SuiSignPersonalMessageOutput, type SuiSignTransactionInput, type SuiSignTransactionOutput, type SuiTransactionInput, type WaaPEnvironment, WaaPError, type WaaPErrorCode, type WaaPIdlePreloadOptions, type WaaPIframeDiagnostics, type WaaPIframeLifecycleEvent, type WaaPIframeLifecyclePhase, type WaaPOperationMetadata, type WaaPPreloadTarget, WaaPSuiWallet, type WaaPSuiWalletFeatures, type WaaPSuiWalletInterface, type WaaPWalletTargetOptions, getWaaPIframeDiagnostics, initWaaPSui as initWaaP, initWaaPSui, normalizeWaaPError, preloadWaaPOnIdle, registerWaaPSuiWallet, resolveWalletOrigin, subscribeWaaPIframeLifecycle, validateWalletOrigin };
|
package/dist/sui.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./evm-BXkH-I90.js"),t=require("./ui-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./evm-BXkH-I90.js"),t=require("./ui-BHIqqJWQ.js"),n=require("./register-jgVHbdqY.js");exports.WaaPError=e.w,exports.WaaPSuiWallet=t.c,exports.getWaaPIframeDiagnostics=e.d,exports.initWaaP=t.a,exports.initWaaPSui=t.a,exports.normalizeWaaPError=e.T,exports.preloadWaaPOnIdle=e.s,exports.registerWaaPSuiWallet=n.t,exports.resolveWalletOrigin=e.x,exports.subscribeWaaPIframeLifecycle=e.m,exports.validateWalletOrigin=e.S;
|
package/dist/sui.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as e,T as t,d as n,m as r,s as i,w as a,x as o}from"./evm-BINU4e1N.mjs";import{a as s,c}from"./ui-
|
|
1
|
+
import{S as e,T as t,d as n,m as r,s as i,w as a,x as o}from"./evm-BINU4e1N.mjs";import{a as s,c}from"./ui-9HR3zyVP.mjs";import{t as l}from"./register-CdhMOOIi.mjs";export{a as WaaPError,c as WaaPSuiWallet,n as getWaaPIframeDiagnostics,s as initWaaP,s as initWaaPSui,t as normalizeWaaPError,i as preloadWaaPOnIdle,l as registerWaaPSuiWallet,o as resolveWalletOrigin,r as subscribeWaaPIframeLifecycle,e as validateWalletOrigin};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./esm-BUfmyWbN.mjs";import{t}from"./asyncSigning-CzqBbYDP.mjs";import{T as n,_ as r,a as i,b as a,c as o,f as s,g as c,h as l,n as u,p as d,s as f,t as p,u as m,v as h,w as g,x as _,y as v}from"./evm-BINU4e1N.mjs";import{EventEmitter as y}from"events";function b(){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 x(){try{return typeof localStorage<`u`&&localStorage.getItem(`waap_maintenance_override`)===`1`}catch{return!1}}function S(){if(b()&&!x())throw new g(`maintenance`,`WaaP is temporarily unavailable for maintenance.`)}const C={"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`},w=e=>C[e],T=e=>e.slice(4);var E=class{constructor(t,n={},r,a=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 y,this.changeListeners=new Set,this.initializerPromise=null,this.initializedIframeWindow=null,this.walletMessageManager=new l(t,_(n)),this.ensureIframe=r,this.iframeMounted=!r,this.initializerOptions=a,this.uiMessageManager=new i,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:t=>{t.method===e.show_modal?this.uiMessageManager.emit(`show_modal`):t.method===e.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=r(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 t=await this.postRequestAndWait({method:e.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.set_signing_mode,params:[c(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.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.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this._accounts=[],this.notifyChange({accounts:[]})}async connect(e){if(!this.loginMethod){if(e?.silent)throw new g(`not_authenticated`,`Not authenticated: a silent connect cannot open login.`,{operation:{chain:`sui`,method:`sui_connect`}});if(!await this.login())throw new g(`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=T(t),i=new n({url:w(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.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.waap_getPermissionTokenStatus,params:[t],interactionRequired:!1})).data}async clearPermissionToken(t){return await this.ensureInitialized(),(await this.postRequestAndWait({method:e.waap_clearPermissionToken,params:[t],interactionRequired:!1})).data}async requestEmail(){await this.ensureInitialized();let t=await this.postRequestAndWait({method:e.silk_requestEmail,params:[],interactionRequired:!0});if(t.error)throw Error(t.error.message||`Failed to request email`);return t.data}async postRequestAndWait(t){let r;try{t.interactionRequired&&d({layout:t.method===e.login?`auth`:`signing`}),r=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let n=await m({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&&s()}});if(n.error)throw Error(n.error.message);return n}catch(e){throw t.interactionRequired&&r===void 0&&s(),n(e,{chain:`sui`,method:String(t.method),requestId:r})}}notifyChange(e){Array.from(this.changeListeners).forEach(t=>{t(e)})}};function D(e,t,n=!0){let r=()=>(v(e),h(t).contentWindow),i=e.deferIframe===!1,o=e.deferIframe===void 0,c=i?r():null;if(i&&!c)throw Error(`Failed to create WaaP iframe`);let l=new E(c,e,r,{...e,chains:[`sui`]});l.setAccountMode(t),n&&i&&l.preload().catch(()=>void 0);let u=l.destroy.bind(l);if(l.destroy=()=>{u(),a()},n&&o){let e=f(l),t=l.destroy.bind(l);l.destroy=()=>{e(),t()}}return l.ui.on(`show_modal`,()=>{d(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=`none`})}),l.ui.on(`hide_modal`,()=>{s(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=``})}),l}var O=class{constructor(t,n={},r,a=n){this.lastKnownConversion=`pending`,this.name=`WaaP`,this.version=`1.0.0`,this.icon=`data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMTYiIGZpbGw9IiMxMTE4MmMiLz48cGF0aCBkPSJNMTYgNDhoMzJMMzIgMTZ6IiBmaWxsPSIjN2NkNGZmIi8+PC9zdmc+`,this._accounts=[],this.accountMode=`tap`,this.loginMethod=null,this._chains=[`solana:mainnet`,`solana:devnet`,`solana:testnet`],this.internalEventEmitter=new y,this.changeListeners=new Set,this.initializerPromise=null,this.initializedIframeWindow=null,this.walletMessageManager=new l(t,_(n)),this.ensureIframe=r,this.iframeMounted=!r,this.initializerOptions=a,this.uiMessageManager=new i,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:t=>{t.method===e.show_modal?this.uiMessageManager.emit(`show_modal`):t.method===e.hide_modal&&this.uiMessageManager.emit(`hide_modal`)},onAccountChanged:async()=>{try{let e=await this.refreshAccounts();this.notifyChange({accounts:e.accounts})}catch(e){console.error(`Failed to refresh Solana 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=r(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()}get chains(){return this._chains}get accounts(){return this._accounts}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)},"solana:signMessage":{version:`1.1.0`,signMessage:this.signStandardMessages.bind(this)},"solana:signTransaction":{version:`1.0.0`,supportedTransactionVersions:[`legacy`,0],signTransaction:this.signStandardTransactions.bind(this)},"solana:signAndSendTransaction":{version:`1.0.0`,supportedTransactionVersions:[`legacy`,0],signAndSendTransaction:this.signAndSendStandardTransactions.bind(this)}}}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]?{solana: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.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.set_signing_mode,params:[c(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.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.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this._accounts=[],this.notifyChange({accounts:[]})}async refreshAccounts(){try{await this.ensureInitialized();let e=await this.postRequestAndWait({method:`solana_connect`,params:[{silent:!0}],interactionRequired:!1});if(e.error)return this._accounts=[],{accounts:[]};let t=this.normalizeAccounts(e.data?.accounts||[]);return this._accounts=t,{accounts:this._accounts}}catch{return this._accounts=[],{accounts:[]}}}normalizeAccounts(e){return e.map(e=>({address:e.address,publicKey:e.publicKey instanceof Uint8Array?e.publicKey:new Uint8Array(e.publicKey??[]),chains:e.chains??this._chains,features:e.features??[]}))}async connect(e){if(!this.loginMethod)throw new g(`not_authenticated`,`Not authenticated: call login() before connect().`,{operation:{chain:`solana`,method:`solana_connect`}});await this.ensureInitialized();let t=await this.postRequestAndWait({method:`solana_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=this.normalizeAccounts(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:`solana_disconnect`,params:[],interactionRequired:!1}),this._accounts=[],this.notifyChange({accounts:[]})}async signMessage(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:`solana_signMessage`,params:[{message:Array.from(e.message),account:t}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(n.error)throw Error(n.error.message||`Failed to sign message`);return{signedMessage:new Uint8Array(n.data.signedMessage),signature:new Uint8Array(n.data.signature)}}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=this.resolveTransactionBytes(e.transaction),r=await this.postRequestAndWait({method:`solana_signTransaction`,params:[{transaction:Array.from(n),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{signedTransaction:new Uint8Array(r.data.signedTransaction),signature:new Uint8Array(r.data.signature)}}async signAndSendTransaction(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=this.resolveTransactionBytes(e.transaction),r=await this.postRequestAndWait({method:`solana_signAndSendTransaction`,params:[{transaction:Array.from(n),account:t,chain:e.chain,options:e.options,withPT:e.withPT}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(r.error)throw Error(r.error.message||`Failed to sign and send transaction`);return{signature:r.data.signature}}async signStandardMessages(...e){let t=[];for(let n of e){let e=await this.signMessage({account:n.account,message:n.message});t.push({...e,signatureType:`ed25519`})}return t}async signStandardTransactions(...e){let t=[];for(let n of e){let e=await this.signTransaction({account:n.account,transaction:n.transaction,chain:this.asSupportedChain(n.chain)});t.push({signedTransaction:e.signedTransaction})}return t}async signAndSendStandardTransactions(...e){let t=[];for(let n of e){let e=await this.signAndSendTransaction({account:n.account,transaction:n.transaction,chain:this.asSupportedChain(n.chain),options:this.broadcastOptions(n.options)});t.push({signature:k(e.signature)})}return t}asSupportedChain(e){if(e!==void 0){if(this._chains.includes(e))return e;throw new g(`unsupported_input`,`Unsupported Solana Wallet Standard chain: ${e}`,{operation:{chain:`solana`,method:`wallet_standard`}})}}broadcastOptions(e){if(e?.preflightCommitment!==void 0||e?.minContextSlot!==void 0||e?.commitment!==void 0)throw new g(`unsupported_input`,`WaaP does not support Wallet Standard RPC commitment options; configure the dapp RPC instead.`,{operation:{chain:`solana`,method:`wallet_standard`}});return e?{skipPreflight:e.skipPreflight,maxRetries:e.maxRetries}:void 0}async requestPermissionToken(t){await this.ensureInitialized();let n={...t,walletMode:this.accountMode},r=await this.postRequestAndWait({method:e.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.waap_getPermissionTokenStatus,params:[t],interactionRequired:!1})).data}async clearPermissionToken(t){return await this.ensureInitialized(),(await this.postRequestAndWait({method:e.waap_clearPermissionToken,params:[t],interactionRequired:!1})).data}resolveTransactionBytes(e){if(e instanceof Uint8Array)return e;if(Array.isArray(e))return new Uint8Array(e);if(e&&typeof e.serialize==`function`){let t=e.serialize();return t instanceof Uint8Array?t:new Uint8Array(t)}throw Error(`Unsupported transaction format. Pass serialized bytes or a @solana/web3.js Transaction.`)}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)}async postRequestAndWait(t){let r;try{t.interactionRequired&&d({layout:t.method===e.login?`auth`:`signing`}),r=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let n=await m({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&&s()}});if(n.error)throw Error(n.error.message);return n}catch(e){throw t.interactionRequired&&r===void 0&&s(),n(e,{chain:`solana`,method:String(t.method),requestId:r})}}notifyChange(e){Array.from(this.changeListeners).forEach(t=>{t(e)})}};function k(e){let t=[];for(let n of e){let e=`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`.indexOf(n);if(e<0)throw Error(`Invalid base58 transaction signature`);for(let n=0;n<t.length;n+=1)e+=t[n]*58,t[n]=e&255,e>>=8;for(;e>0;)t.push(e&255),e>>=8}let n=0;for(;n<e.length&&e[n]===`1`;)n+=1;return new Uint8Array([...Array(n).fill(0),...t.reverse()])}function A(e={}){let t=()=>(v(e),h(`tap`).contentWindow),n=e.deferIframe===!1,r=e.deferIframe===void 0,i=n?t():null;if(n&&!i)throw Error(`Failed to create WaaP iframe`);let o=new O(i,e,t,{...e,chains:[`solana`]});n&&o.preload().catch(()=>void 0);let c=o.destroy.bind(o);if(o.destroy=()=>{c(),a()},r){let e=f(o),t=o.destroy.bind(o);o.destroy=()=>{e(),t()}}return o.ui.on(`show_modal`,()=>{d()}),o.ui.on(`hide_modal`,()=>{s()}),o}function j(e={}){if(S(),`chains`in e)throw Error("initWaaP accepts one `chain`; use initWaaPMulti({ chains }) for TAP.");switch(e.chain){case`sui`:return D(e,`tap`);case`solana`:return A(e);default:return p(e)}}const M=[`evm`,`sui`,`solana`],N=[`evm`,`sui`,`solana`];function P(n){S();let r=Array.from(new Set(n.chains??[]));if(r.length===0)throw Error(`initWaaPSquid requires at least one chain facade`);if(r.some(e=>!M.includes(e)))throw Error(`initWaaPSquid received an unsupported chain facade`);let i=r.includes(`evm`),s=r.includes(`sui`),c=r.includes(`solana`),l=u({referralCode:n.referralCode,config:n.config,project:n.project,environment:n.environment,walletOrigin:n.walletOrigin,useStaging:n.useStaging,walletConnectProjectId:n.walletConnectProjectId,asyncTxs:n.asyncTxs,deferIframe:n.deferIframe},`squid`,!1,r,i),d=s?D(n,`squid`,!1):void 0,p=()=>(v(n),h(`squid`).contentWindow),m=c?new O(n.deferIframe===!1?p():null,{useStaging:n.useStaging,environment:n.environment,walletOrigin:n.walletOrigin,referralCode:n.referralCode,project:n.project,config:n.config,deferIframe:n.deferIframe},p,{...n,chains:[`solana`]}):void 0;m?.setAccountMode(`squid`);let _;n.deferIframe===!1?l.preload().catch(()=>void 0):n.deferIframe===void 0&&(_=f(l));let y={state:`absent`},b=null,x=0,C=()=>{b=null,y={state:`absent`}},w=e=>!e.lifecycleId||e.lifecycleId===b,T=()=>y.state===`active`;l.on(t.squidPending,e=>{if(!w(e))return;let t=e?.transactionDigest;y={state:t?`awaiting-network`:`provisioning`,...t?{operationId:t,transactionDigest:t}:{},...e?.message?{message:e.message}:{}}}),l.on(t.squidReady,e=>{w(e)&&(y={state:`active`})}),l.on(t.squidFailed,e=>{w(e)&&(y={state:`failed`,...e?.error?{message:e.error}:{}},b=null)});let E=e=>{if(l.getLoginMethod()===null)throw new g(`not_authenticated`,`Not authenticated: call login() before connecting or signing.`,{operation:{chain:e,method:`connect`}});if(!T())throw new g(`not_connected`,`Squid is not ready: call onboard() after login before connecting or signing.`)},k=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)&&E(`evm`),k(e)),d){let e=d.connect.bind(d);d.connect=async t=>(E(`sui`),e(t))}if(m){let e=m.connect.bind(m);m.connect=async t=>(E(`solana`),e(t))}let A=async()=>{if(l.getLoginMethod()===null)throw new g(`not_authenticated`,`Not authenticated: call login() before onboarding Squid.`);if(T()||b)return;let t=`squid-${++x}`;b=t,y={state:`provisioning`};try{await l.walletMessageManager.pingIframe(),await o({method:e.enter_lite_mode,params:[window.location.origin,t]},!1,l.walletMessageManager,l.internalEventEmitter)}catch(e){throw b===t&&(b=null,y={state:`failed`,message:e instanceof Error?e.message:String(e)}),e}},j=()=>({...y}),N=e=>{if(y.state===`active`||!e.authenticated||e.activeMode!==`squid`||!e.squid)return;let n={...b?{lifecycleId:b}:{},evm:e.squid.sqd1.evm,sui:e.squid.sqd2.sui,solana:e.squid.sqd2.solana};y={state:`active`},b=null,l.emit(t.squidReady,n)},P=async()=>(await A(),j()),F=l.login.bind(l),I=async e=>{let t=await F(e);return d?.setLoginMethod(t),m?.setLoginMethod(t),(t?await l.session.getAccountStatus().catch(()=>null):null)?.squid&&(await l.reassertIframeAccountMode().catch(()=>void 0),await A()),t&&l.emit(`connect`),t},L=l.logout.bind(l),R=async()=>{await L(),d?.setLoginMethod(null),m?.setLoginMethod(null),C()},z;z={login:I,logout:R,getLoginMethod:()=>l.getLoginMethod(),getAccountStatus:async()=>{let e=await l.session.getAccountStatus();return N(e),e},getSquidStatus:j,on:(e,t)=>(l.on(e,t),z),removeListener:(e,t)=>(l.removeListener(e,t),z)},l.login=z.login,l.logout=z.logout,d&&(d.login=()=>z.login(),d.logout=()=>z.logout()),m&&(m.login=()=>z.login(),m.logout=()=>z.logout());let B={onboard:A,squid:{onboard:A,getStatus:j,onboardWithStatus:P},getSquidStatus:j,session:z,getAccountStatus:()=>{let e=l.getAccountStatus(),t=d?.getAccountStatus(),n=m?.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:()=>{_?.(),C(),l.destroy(),d?.destroy(),m?.destroy(),a()}};return i&&Object.assign(B,{evm:l,ethereum:l}),d&&Object.assign(B,{sui:d}),m&&Object.assign(B,{solana:m}),M.every(e=>r.includes(e))&&Object.assign(B,{auth:l}),B}function F(e){S();let t=Array.from(new Set(e.chains));if(t.length===0)throw Error(`initWaaPMulti requires at least one chain facade`);if(t.some(e=>!N.includes(e)))throw Error(`initWaaPMulti received an unsupported chain facade`);let n=t.includes(`evm`),r=t.includes(`sui`),i=t.includes(`solana`),o=u({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,t,n),s=r?D({...e,config:e.config},`tap`,!1):void 0,c=()=>(v(e),h(`tap`).contentWindow),l=i?new O(e.deferIframe===!1?c():null,{useStaging:e.useStaging,environment:e.environment,walletOrigin:e.walletOrigin,referralCode:e.referralCode,project:e.project,config:e.config,deferIframe:e.deferIframe},c,{...e,chains:[`solana`]}):void 0;l?.setAccountMode(`tap`);let d;e.deferIframe===!1?o.preload().catch(()=>void 0):e.deferIframe===void 0&&(d=f(o));let p=o.login.bind(o),m=async e=>{let t=await p(e);return s?.setLoginMethod(t),l?.setLoginMethod(t),t&&o.emit(`connect`),t},g=o.logout.bind(o),_=async()=>{await g(),s?.setLoginMethod(null),l?.setLoginMethod(null)},y;y={login:m,logout:_,getLoginMethod:()=>o.getLoginMethod(),getAccountStatus:()=>o.session.getAccountStatus(),on:(e,t)=>(o.on(e,t),y),removeListener:(e,t)=>(o.removeListener(e,t),y)},o.login=y.login,o.logout=y.logout,s&&(s.login=()=>y.login(),s.logout=()=>y.logout()),l&&(l.login=()=>y.login(),l.logout=()=>y.logout());let b=()=>{let e=o.getAccountStatus(),t=s?.getAccountStatus(),n=l?.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}}},x=o.destroy.bind(o),C=s?.destroy.bind(s),w=l?.destroy.bind(l),T=()=>{d?.(),x(),C?.(),w?.(),a()},E={session:y,getAccountStatus:b,preload:()=>o.preload(),destroy:T};return n&&(o.destroy=T,Object.assign(E,{evm:o,ethereum:o})),s&&(s.destroy=T,Object.assign(E,{sui:s})),l&&(l.destroy=T,Object.assign(E,{solana:l})),E}function I(e={}){return console.warn("[WaaP SDK] `initWaaPSui()` is deprecated. Use `initWaaP({ chain: 'sui' })` instead."),j({...e,chain:`sui`})}function L(e={}){return j({...e,chain:`solana`})}function R(e={}){return F({...e,chains:e.chains??N})}export{I as a,E as c,P as i,F as n,R as o,L as r,O as s,j as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./esm-DFwVZkjo.js"),t=require("./asyncSigning-B0KrmKk7.js"),n=require("./evm-BXkH-I90.js");let r=require("events");function i(){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 a(){try{return typeof localStorage<`u`&&localStorage.getItem(`waap_maintenance_override`)===`1`}catch{return!1}}function o(){if(i()&&!a())throw new n.w(`maintenance`,`WaaP is temporarily unavailable for maintenance.`)}const s={"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`},c=e=>s[e],l=e=>e.slice(4);var u=class{constructor(t,i={},a,o=i){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 r.EventEmitter,this.changeListeners=new Set,this.initializerPromise=null,this.initializedIframeWindow=null,this.walletMessageManager=new n.h(t,n.x(i)),this.ensureIframe=a,this.iframeMounted=!a,this.initializerOptions=o,this.uiMessageManager=new n.a,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:t=>{t.method===e.r.show_modal?this.uiMessageManager.emit(`show_modal`):t.method===e.r.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=n._(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 t=await this.postRequestAndWait({method:e.r.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,r={}){await this.walletMessageManager.pingIframe(),await this.postRequestAndWait({method:e.r.set_signing_mode,params:[n.g(t,r)],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.r.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.r.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this._accounts=[],this.notifyChange({accounts:[]})}async connect(e){if(!this.loginMethod){if(e?.silent)throw new n.w(`not_authenticated`,`Not authenticated: a silent connect cannot open login.`,{operation:{chain:`sui`,method:`sui_connect`}});if(!await this.login())throw new n.w(`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 r=t.data?.accounts||[];return this._accounts=r,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=l(t),i=new n({url:c(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.r.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.r.waap_getPermissionTokenStatus,params:[t],interactionRequired:!1})).data}async clearPermissionToken(t){return await this.ensureInitialized(),(await this.postRequestAndWait({method:e.r.waap_clearPermissionToken,params:[t],interactionRequired:!1})).data}async requestEmail(){await this.ensureInitialized();let t=await this.postRequestAndWait({method:e.r.silk_requestEmail,params:[],interactionRequired:!0});if(t.error)throw Error(t.error.message||`Failed to request email`);return t.data}async postRequestAndWait(t){let r;try{t.interactionRequired&&n.p({layout:t.method===e.r.login?`auth`:`signing`}),r=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let i=await n.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.f()}});if(i.error)throw Error(i.error.message);return i}catch(e){throw t.interactionRequired&&r===void 0&&n.f(),n.T(e,{chain:`sui`,method:String(t.method),requestId:r})}}notifyChange(e){Array.from(this.changeListeners).forEach(t=>{t(e)})}};function d(e,t,r=!0){let i=()=>(n.y(e),n.v(t).contentWindow),a=e.deferIframe===!1,o=e.deferIframe===void 0,s=a?i():null;if(a&&!s)throw Error(`Failed to create WaaP iframe`);let c=new u(s,e,i,{...e,chains:[`sui`]});c.setAccountMode(t),r&&a&&c.preload().catch(()=>void 0);let l=c.destroy.bind(c);if(c.destroy=()=>{l(),n.b()},r&&o){let e=n.s(c),t=c.destroy.bind(c);c.destroy=()=>{e(),t()}}return c.ui.on(`show_modal`,()=>{n.p(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=`none`})}),c.ui.on(`hide_modal`,()=>{n.f(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=``})}),c}var f=class{constructor(t,i={},a,o=i){this.lastKnownConversion=`pending`,this.name=`WaaP`,this.version=`1.0.0`,this.icon=`data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMTYiIGZpbGw9IiMxMTE4MmMiLz48cGF0aCBkPSJNMTYgNDhoMzJMMzIgMTZ6IiBmaWxsPSIjN2NkNGZmIi8+PC9zdmc+`,this._accounts=[],this.accountMode=`tap`,this.loginMethod=null,this._chains=[`solana:mainnet`,`solana:devnet`,`solana:testnet`],this.internalEventEmitter=new r.EventEmitter,this.changeListeners=new Set,this.initializerPromise=null,this.initializedIframeWindow=null,this.walletMessageManager=new n.h(t,n.x(i)),this.ensureIframe=a,this.iframeMounted=!a,this.initializerOptions=o,this.uiMessageManager=new n.a,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:t=>{t.method===e.r.show_modal?this.uiMessageManager.emit(`show_modal`):t.method===e.r.hide_modal&&this.uiMessageManager.emit(`hide_modal`)},onAccountChanged:async()=>{try{let e=await this.refreshAccounts();this.notifyChange({accounts:e.accounts})}catch(e){console.error(`Failed to refresh Solana 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=n._(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()}get chains(){return this._chains}get accounts(){return this._accounts}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)},"solana:signMessage":{version:`1.1.0`,signMessage:this.signStandardMessages.bind(this)},"solana:signTransaction":{version:`1.0.0`,supportedTransactionVersions:[`legacy`,0],signTransaction:this.signStandardTransactions.bind(this)},"solana:signAndSendTransaction":{version:`1.0.0`,supportedTransactionVersions:[`legacy`,0],signAndSendTransaction:this.signAndSendStandardTransactions.bind(this)}}}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]?{solana: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.r.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,r={}){await this.walletMessageManager.pingIframe(),await this.postRequestAndWait({method:e.r.set_signing_mode,params:[n.g(t,r)],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.r.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.r.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this._accounts=[],this.notifyChange({accounts:[]})}async refreshAccounts(){try{await this.ensureInitialized();let e=await this.postRequestAndWait({method:`solana_connect`,params:[{silent:!0}],interactionRequired:!1});if(e.error)return this._accounts=[],{accounts:[]};let t=this.normalizeAccounts(e.data?.accounts||[]);return this._accounts=t,{accounts:this._accounts}}catch{return this._accounts=[],{accounts:[]}}}normalizeAccounts(e){return e.map(e=>({address:e.address,publicKey:e.publicKey instanceof Uint8Array?e.publicKey:new Uint8Array(e.publicKey??[]),chains:e.chains??this._chains,features:e.features??[]}))}async connect(e){if(!this.loginMethod)throw new n.w(`not_authenticated`,`Not authenticated: call login() before connect().`,{operation:{chain:`solana`,method:`solana_connect`}});await this.ensureInitialized();let t=await this.postRequestAndWait({method:`solana_connect`,params:[e||{}],interactionRequired:!e?.silent,signal:e?.signal,timeoutMs:e?.timeoutMs});if(t.error)throw Error(t.error.message||`Failed to connect`);let r=this.normalizeAccounts(t.data?.accounts||[]);return this._accounts=r,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:`solana_disconnect`,params:[],interactionRequired:!1}),this._accounts=[],this.notifyChange({accounts:[]})}async signMessage(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:`solana_signMessage`,params:[{message:Array.from(e.message),account:t}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(n.error)throw Error(n.error.message||`Failed to sign message`);return{signedMessage:new Uint8Array(n.data.signedMessage),signature:new Uint8Array(n.data.signature)}}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=this.resolveTransactionBytes(e.transaction),r=await this.postRequestAndWait({method:`solana_signTransaction`,params:[{transaction:Array.from(n),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{signedTransaction:new Uint8Array(r.data.signedTransaction),signature:new Uint8Array(r.data.signature)}}async signAndSendTransaction(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=this.resolveTransactionBytes(e.transaction),r=await this.postRequestAndWait({method:`solana_signAndSendTransaction`,params:[{transaction:Array.from(n),account:t,chain:e.chain,options:e.options,withPT:e.withPT}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(r.error)throw Error(r.error.message||`Failed to sign and send transaction`);return{signature:r.data.signature}}async signStandardMessages(...e){let t=[];for(let n of e){let e=await this.signMessage({account:n.account,message:n.message});t.push({...e,signatureType:`ed25519`})}return t}async signStandardTransactions(...e){let t=[];for(let n of e){let e=await this.signTransaction({account:n.account,transaction:n.transaction,chain:this.asSupportedChain(n.chain)});t.push({signedTransaction:e.signedTransaction})}return t}async signAndSendStandardTransactions(...e){let t=[];for(let n of e){let e=await this.signAndSendTransaction({account:n.account,transaction:n.transaction,chain:this.asSupportedChain(n.chain),options:this.broadcastOptions(n.options)});t.push({signature:p(e.signature)})}return t}asSupportedChain(e){if(e!==void 0){if(this._chains.includes(e))return e;throw new n.w(`unsupported_input`,`Unsupported Solana Wallet Standard chain: ${e}`,{operation:{chain:`solana`,method:`wallet_standard`}})}}broadcastOptions(e){if(e?.preflightCommitment!==void 0||e?.minContextSlot!==void 0||e?.commitment!==void 0)throw new n.w(`unsupported_input`,`WaaP does not support Wallet Standard RPC commitment options; configure the dapp RPC instead.`,{operation:{chain:`solana`,method:`wallet_standard`}});return e?{skipPreflight:e.skipPreflight,maxRetries:e.maxRetries}:void 0}async requestPermissionToken(t){await this.ensureInitialized();let n={...t,walletMode:this.accountMode},r=await this.postRequestAndWait({method:e.r.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.r.waap_getPermissionTokenStatus,params:[t],interactionRequired:!1})).data}async clearPermissionToken(t){return await this.ensureInitialized(),(await this.postRequestAndWait({method:e.r.waap_clearPermissionToken,params:[t],interactionRequired:!1})).data}resolveTransactionBytes(e){if(e instanceof Uint8Array)return e;if(Array.isArray(e))return new Uint8Array(e);if(e&&typeof e.serialize==`function`){let t=e.serialize();return t instanceof Uint8Array?t:new Uint8Array(t)}throw Error(`Unsupported transaction format. Pass serialized bytes or a @solana/web3.js Transaction.`)}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)}async postRequestAndWait(t){let r;try{t.interactionRequired&&n.p({layout:t.method===e.r.login?`auth`:`signing`}),r=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let i=await n.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.f()}});if(i.error)throw Error(i.error.message);return i}catch(e){throw t.interactionRequired&&r===void 0&&n.f(),n.T(e,{chain:`solana`,method:String(t.method),requestId:r})}}notifyChange(e){Array.from(this.changeListeners).forEach(t=>{t(e)})}};function p(e){let t=[];for(let n of e){let e=`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`.indexOf(n);if(e<0)throw Error(`Invalid base58 transaction signature`);for(let n=0;n<t.length;n+=1)e+=t[n]*58,t[n]=e&255,e>>=8;for(;e>0;)t.push(e&255),e>>=8}let n=0;for(;n<e.length&&e[n]===`1`;)n+=1;return new Uint8Array([...Array(n).fill(0),...t.reverse()])}function m(e={}){let t=()=>(n.y(e),n.v(`tap`).contentWindow),r=e.deferIframe===!1,i=e.deferIframe===void 0,a=r?t():null;if(r&&!a)throw Error(`Failed to create WaaP iframe`);let o=new f(a,e,t,{...e,chains:[`solana`]});r&&o.preload().catch(()=>void 0);let s=o.destroy.bind(o);if(o.destroy=()=>{s(),n.b()},i){let e=n.s(o),t=o.destroy.bind(o);o.destroy=()=>{e(),t()}}return o.ui.on(`show_modal`,()=>{n.p()}),o.ui.on(`hide_modal`,()=>{n.f()}),o}function h(e={}){if(o(),`chains`in e)throw Error("initWaaP accepts one `chain`; use initWaaPMulti({ chains }) for TAP.");switch(e.chain){case`sui`:return d(e,`tap`);case`solana`:return m(e);default:return n.t(e)}}const g=[`evm`,`sui`,`solana`],_=[`evm`,`sui`,`solana`];function v(r){o();let i=Array.from(new Set(r.chains??[]));if(i.length===0)throw Error(`initWaaPSquid requires at least one chain facade`);if(i.some(e=>!g.includes(e)))throw Error(`initWaaPSquid received an unsupported chain facade`);let a=i.includes(`evm`),s=i.includes(`sui`),c=i.includes(`solana`),l=n.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,i,a),u=s?d(r,`squid`,!1):void 0,p=()=>(n.y(r),n.v(`squid`).contentWindow),m=c?new f(r.deferIframe===!1?p():null,{useStaging:r.useStaging,environment:r.environment,walletOrigin:r.walletOrigin,referralCode:r.referralCode,project:r.project,config:r.config,deferIframe:r.deferIframe},p,{...r,chains:[`solana`]}):void 0;m?.setAccountMode(`squid`);let h;r.deferIframe===!1?l.preload().catch(()=>void 0):r.deferIframe===void 0&&(h=n.s(l));let _={state:`absent`},v=null,y=0,b=()=>{v=null,_={state:`absent`}},x=e=>!e.lifecycleId||e.lifecycleId===v,S=()=>_.state===`active`;l.on(t.t.squidPending,e=>{if(!x(e))return;let t=e?.transactionDigest;_={state:t?`awaiting-network`:`provisioning`,...t?{operationId:t,transactionDigest:t}:{},...e?.message?{message:e.message}:{}}}),l.on(t.t.squidReady,e=>{x(e)&&(_={state:`active`})}),l.on(t.t.squidFailed,e=>{x(e)&&(_={state:`failed`,...e?.error?{message:e.error}:{}},v=null)});let C=e=>{if(l.getLoginMethod()===null)throw new n.w(`not_authenticated`,`Not authenticated: call login() before connecting or signing.`,{operation:{chain:e,method:`connect`}});if(!S())throw new n.w(`not_connected`,`Squid is not ready: call onboard() after login before connecting or signing.`)},w=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)&&C(`evm`),w(e)),u){let e=u.connect.bind(u);u.connect=async t=>(C(`sui`),e(t))}if(m){let e=m.connect.bind(m);m.connect=async t=>(C(`solana`),e(t))}let T=async()=>{if(l.getLoginMethod()===null)throw new n.w(`not_authenticated`,`Not authenticated: call login() before onboarding Squid.`);if(S()||v)return;let t=`squid-${++y}`;v=t,_={state:`provisioning`};try{await l.walletMessageManager.pingIframe(),await n.c({method:e.r.enter_lite_mode,params:[window.location.origin,t]},!1,l.walletMessageManager,l.internalEventEmitter)}catch(e){throw v===t&&(v=null,_={state:`failed`,message:e instanceof Error?e.message:String(e)}),e}},E=()=>({..._}),D=e=>{if(_.state===`active`||!e.authenticated||e.activeMode!==`squid`||!e.squid)return;let n={...v?{lifecycleId:v}:{},evm:e.squid.sqd1.evm,sui:e.squid.sqd2.sui,solana:e.squid.sqd2.solana};_={state:`active`},v=null,l.emit(t.t.squidReady,n)},O=async()=>(await T(),E()),k=l.login.bind(l),A=async e=>{let t=await k(e);return u?.setLoginMethod(t),m?.setLoginMethod(t),(t?await l.session.getAccountStatus().catch(()=>null):null)?.squid&&(await l.reassertIframeAccountMode().catch(()=>void 0),await T()),t&&l.emit(`connect`),t},j=l.logout.bind(l),M=async()=>{await j(),u?.setLoginMethod(null),m?.setLoginMethod(null),b()},N;N={login:A,logout:M,getLoginMethod:()=>l.getLoginMethod(),getAccountStatus:async()=>{let e=await l.session.getAccountStatus();return D(e),e},getSquidStatus:E,on:(e,t)=>(l.on(e,t),N),removeListener:(e,t)=>(l.removeListener(e,t),N)},l.login=N.login,l.logout=N.logout,u&&(u.login=()=>N.login(),u.logout=()=>N.logout()),m&&(m.login=()=>N.login(),m.logout=()=>N.logout());let P={onboard:T,squid:{onboard:T,getStatus:E,onboardWithStatus:O},getSquidStatus:E,session:N,getAccountStatus:()=>{let e=l.getAccountStatus(),t=u?.getAccountStatus(),n=m?.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:()=>{h?.(),b(),l.destroy(),u?.destroy(),m?.destroy(),n.b()}};return a&&Object.assign(P,{evm:l,ethereum:l}),u&&Object.assign(P,{sui:u}),m&&Object.assign(P,{solana:m}),g.every(e=>i.includes(e))&&Object.assign(P,{auth:l}),P}function y(e){o();let t=Array.from(new Set(e.chains));if(t.length===0)throw Error(`initWaaPMulti requires at least one chain facade`);if(t.some(e=>!_.includes(e)))throw Error(`initWaaPMulti received an unsupported chain facade`);let r=t.includes(`evm`),i=t.includes(`sui`),a=t.includes(`solana`),s=n.n({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,t,r),c=i?d({...e,config:e.config},`tap`,!1):void 0,l=()=>(n.y(e),n.v(`tap`).contentWindow),u=a?new f(e.deferIframe===!1?l():null,{useStaging:e.useStaging,environment:e.environment,walletOrigin:e.walletOrigin,referralCode:e.referralCode,project:e.project,config:e.config,deferIframe:e.deferIframe},l,{...e,chains:[`solana`]}):void 0;u?.setAccountMode(`tap`);let p;e.deferIframe===!1?s.preload().catch(()=>void 0):e.deferIframe===void 0&&(p=n.s(s));let m=s.login.bind(s),h=async e=>{let t=await m(e);return c?.setLoginMethod(t),u?.setLoginMethod(t),t&&s.emit(`connect`),t},g=s.logout.bind(s),v=async()=>{await g(),c?.setLoginMethod(null),u?.setLoginMethod(null)},y;y={login:h,logout:v,getLoginMethod:()=>s.getLoginMethod(),getAccountStatus:()=>s.session.getAccountStatus(),on:(e,t)=>(s.on(e,t),y),removeListener:(e,t)=>(s.removeListener(e,t),y)},s.login=y.login,s.logout=y.logout,c&&(c.login=()=>y.login(),c.logout=()=>y.logout()),u&&(u.login=()=>y.login(),u.logout=()=>y.logout());let b=()=>{let e=s.getAccountStatus(),t=c?.getAccountStatus(),n=u?.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}}},x=s.destroy.bind(s),S=c?.destroy.bind(c),C=u?.destroy.bind(u),w=()=>{p?.(),x(),S?.(),C?.(),n.b()},T={session:y,getAccountStatus:b,preload:()=>s.preload(),destroy:w};return r&&(s.destroy=w,Object.assign(T,{evm:s,ethereum:s})),c&&(c.destroy=w,Object.assign(T,{sui:c})),u&&(u.destroy=w,Object.assign(T,{solana:u})),T}function b(e={}){return console.warn("[WaaP SDK] `initWaaPSui()` is deprecated. Use `initWaaP({ chain: 'sui' })` instead."),h({...e,chain:`sui`})}function x(e={}){return h({...e,chain:`solana`})}function S(e={}){return y({...e,chains:e.chains??_})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return h}});
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./ui-Co16lVSp.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/ui-Co16lVSp.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./esm-BUfmyWbN.mjs";import{t}from"./asyncSigning-CzqBbYDP.mjs";import{T as n,_ as r,a as i,b as a,c as o,f as s,g as c,h as l,n as u,p as d,s as f,t as p,u as m,v as h,w as g,x as _,y as v}from"./evm-BINU4e1N.mjs";import{EventEmitter as y}from"events";const b={"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`},x=e=>b[e],S=e=>e.slice(4);var C=class{constructor(t,n={},r,a=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 y,this.changeListeners=new Set,this.initializerPromise=null,this.initializedIframeWindow=null,this.walletMessageManager=new l(t,_(n)),this.ensureIframe=r,this.iframeMounted=!r,this.initializerOptions=a,this.uiMessageManager=new i,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:t=>{t.method===e.show_modal?this.uiMessageManager.emit(`show_modal`):t.method===e.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=r(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 t=await this.postRequestAndWait({method:e.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.set_signing_mode,params:[c(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.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.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this._accounts=[],this.notifyChange({accounts:[]})}async connect(e){if(!this.loginMethod){if(e?.silent)throw new g(`not_authenticated`,`Not authenticated: a silent connect cannot open login.`,{operation:{chain:`sui`,method:`sui_connect`}});if(!await this.login())throw new g(`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=S(t),i=new n({url:x(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.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.waap_getPermissionTokenStatus,params:[t],interactionRequired:!1})).data}async clearPermissionToken(t){return await this.ensureInitialized(),(await this.postRequestAndWait({method:e.waap_clearPermissionToken,params:[t],interactionRequired:!1})).data}async requestEmail(){await this.ensureInitialized();let t=await this.postRequestAndWait({method:e.silk_requestEmail,params:[],interactionRequired:!0});if(t.error)throw Error(t.error.message||`Failed to request email`);return t.data}async postRequestAndWait(t){let r;try{t.interactionRequired&&d({layout:t.method===e.login?`auth`:`signing`}),r=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let n=await m({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&&s()}});if(n.error)throw Error(n.error.message);return n}catch(e){throw t.interactionRequired&&r===void 0&&s(),n(e,{chain:`sui`,method:String(t.method),requestId:r})}}notifyChange(e){Array.from(this.changeListeners).forEach(t=>{t(e)})}};function w(e,t,n=!0){let r=()=>(v(e),h(t).contentWindow),i=e.deferIframe===!1,o=e.deferIframe===void 0,c=i?r():null;if(i&&!c)throw Error(`Failed to create WaaP iframe`);let l=new C(c,e,r,{...e,chains:[`sui`]});l.setAccountMode(t),n&&i&&l.preload().catch(()=>void 0);let u=l.destroy.bind(l);if(l.destroy=()=>{u(),a()},n&&o){let e=f(l),t=l.destroy.bind(l);l.destroy=()=>{e(),t()}}return l.ui.on(`show_modal`,()=>{d(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=`none`})}),l.ui.on(`hide_modal`,()=>{s(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=``})}),l}var T=class{constructor(t,n={},r,a=n){this.lastKnownConversion=`pending`,this.name=`WaaP`,this.version=`1.0.0`,this.icon=`data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMTYiIGZpbGw9IiMxMTE4MmMiLz48cGF0aCBkPSJNMTYgNDhoMzJMMzIgMTZ6IiBmaWxsPSIjN2NkNGZmIi8+PC9zdmc+`,this._accounts=[],this.accountMode=`tap`,this.loginMethod=null,this._chains=[`solana:mainnet`,`solana:devnet`,`solana:testnet`],this.internalEventEmitter=new y,this.changeListeners=new Set,this.initializerPromise=null,this.initializedIframeWindow=null,this.walletMessageManager=new l(t,_(n)),this.ensureIframe=r,this.iframeMounted=!r,this.initializerOptions=a,this.uiMessageManager=new i,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:t=>{t.method===e.show_modal?this.uiMessageManager.emit(`show_modal`):t.method===e.hide_modal&&this.uiMessageManager.emit(`hide_modal`)},onAccountChanged:async()=>{try{let e=await this.refreshAccounts();this.notifyChange({accounts:e.accounts})}catch(e){console.error(`Failed to refresh Solana 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=r(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()}get chains(){return this._chains}get accounts(){return this._accounts}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)},"solana:signMessage":{version:`1.1.0`,signMessage:this.signStandardMessages.bind(this)},"solana:signTransaction":{version:`1.0.0`,supportedTransactionVersions:[`legacy`,0],signTransaction:this.signStandardTransactions.bind(this)},"solana:signAndSendTransaction":{version:`1.0.0`,supportedTransactionVersions:[`legacy`,0],signAndSendTransaction:this.signAndSendStandardTransactions.bind(this)}}}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]?{solana: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.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.set_signing_mode,params:[c(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.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.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this._accounts=[],this.notifyChange({accounts:[]})}async refreshAccounts(){try{await this.ensureInitialized();let e=await this.postRequestAndWait({method:`solana_connect`,params:[{silent:!0}],interactionRequired:!1});if(e.error)return this._accounts=[],{accounts:[]};let t=this.normalizeAccounts(e.data?.accounts||[]);return this._accounts=t,{accounts:this._accounts}}catch{return this._accounts=[],{accounts:[]}}}normalizeAccounts(e){return e.map(e=>({address:e.address,publicKey:e.publicKey instanceof Uint8Array?e.publicKey:new Uint8Array(e.publicKey??[]),chains:e.chains??this._chains,features:e.features??[]}))}async connect(e){if(!this.loginMethod)throw new g(`not_authenticated`,`Not authenticated: call login() before connect().`,{operation:{chain:`solana`,method:`solana_connect`}});await this.ensureInitialized();let t=await this.postRequestAndWait({method:`solana_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=this.normalizeAccounts(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:`solana_disconnect`,params:[],interactionRequired:!1}),this._accounts=[],this.notifyChange({accounts:[]})}async signMessage(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:`solana_signMessage`,params:[{message:Array.from(e.message),account:t}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(n.error)throw Error(n.error.message||`Failed to sign message`);return{signedMessage:new Uint8Array(n.data.signedMessage),signature:new Uint8Array(n.data.signature)}}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=this.resolveTransactionBytes(e.transaction),r=await this.postRequestAndWait({method:`solana_signTransaction`,params:[{transaction:Array.from(n),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{signedTransaction:new Uint8Array(r.data.signedTransaction),signature:new Uint8Array(r.data.signature)}}async signAndSendTransaction(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=this.resolveTransactionBytes(e.transaction),r=await this.postRequestAndWait({method:`solana_signAndSendTransaction`,params:[{transaction:Array.from(n),account:t,chain:e.chain,options:e.options,withPT:e.withPT}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(r.error)throw Error(r.error.message||`Failed to sign and send transaction`);return{signature:r.data.signature}}async signStandardMessages(...e){let t=[];for(let n of e){let e=await this.signMessage({account:n.account,message:n.message});t.push({...e,signatureType:`ed25519`})}return t}async signStandardTransactions(...e){let t=[];for(let n of e){let e=await this.signTransaction({account:n.account,transaction:n.transaction,chain:this.asSupportedChain(n.chain)});t.push({signedTransaction:e.signedTransaction})}return t}async signAndSendStandardTransactions(...e){let t=[];for(let n of e){let e=await this.signAndSendTransaction({account:n.account,transaction:n.transaction,chain:this.asSupportedChain(n.chain),options:this.broadcastOptions(n.options)});t.push({signature:E(e.signature)})}return t}asSupportedChain(e){if(e!==void 0){if(this._chains.includes(e))return e;throw new g(`unsupported_input`,`Unsupported Solana Wallet Standard chain: ${e}`,{operation:{chain:`solana`,method:`wallet_standard`}})}}broadcastOptions(e){if(e?.preflightCommitment!==void 0||e?.minContextSlot!==void 0||e?.commitment!==void 0)throw new g(`unsupported_input`,`WaaP does not support Wallet Standard RPC commitment options; configure the dapp RPC instead.`,{operation:{chain:`solana`,method:`wallet_standard`}});return e?{skipPreflight:e.skipPreflight,maxRetries:e.maxRetries}:void 0}async requestPermissionToken(t){await this.ensureInitialized();let n={...t,walletMode:this.accountMode},r=await this.postRequestAndWait({method:e.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.waap_getPermissionTokenStatus,params:[t],interactionRequired:!1})).data}async clearPermissionToken(t){return await this.ensureInitialized(),(await this.postRequestAndWait({method:e.waap_clearPermissionToken,params:[t],interactionRequired:!1})).data}resolveTransactionBytes(e){if(e instanceof Uint8Array)return e;if(Array.isArray(e))return new Uint8Array(e);if(e&&typeof e.serialize==`function`){let t=e.serialize();return t instanceof Uint8Array?t:new Uint8Array(t)}throw Error(`Unsupported transaction format. Pass serialized bytes or a @solana/web3.js Transaction.`)}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)}async postRequestAndWait(t){let r;try{t.interactionRequired&&d({layout:t.method===e.login?`auth`:`signing`}),r=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let n=await m({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&&s()}});if(n.error)throw Error(n.error.message);return n}catch(e){throw t.interactionRequired&&r===void 0&&s(),n(e,{chain:`solana`,method:String(t.method),requestId:r})}}notifyChange(e){Array.from(this.changeListeners).forEach(t=>{t(e)})}};function E(e){let t=[];for(let n of e){let e=`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`.indexOf(n);if(e<0)throw Error(`Invalid base58 transaction signature`);for(let n=0;n<t.length;n+=1)e+=t[n]*58,t[n]=e&255,e>>=8;for(;e>0;)t.push(e&255),e>>=8}let n=0;for(;n<e.length&&e[n]===`1`;)n+=1;return new Uint8Array([...Array(n).fill(0),...t.reverse()])}function D(e={}){let t=()=>(v(e),h(`tap`).contentWindow),n=e.deferIframe===!1,r=e.deferIframe===void 0,i=n?t():null;if(n&&!i)throw Error(`Failed to create WaaP iframe`);let o=new T(i,e,t,{...e,chains:[`solana`]});n&&o.preload().catch(()=>void 0);let c=o.destroy.bind(o);if(o.destroy=()=>{c(),a()},r){let e=f(o),t=o.destroy.bind(o);o.destroy=()=>{e(),t()}}return o.ui.on(`show_modal`,()=>{d()}),o.ui.on(`hide_modal`,()=>{s()}),o}function O(e={}){if(`chains`in e)throw Error("initWaaP accepts one `chain`; use initWaaPMulti({ chains }) for TAP.");switch(e.chain){case`sui`:return w(e,`tap`);case`solana`:return D(e);default:return p(e)}}const k=[`evm`,`sui`,`solana`],A=[`evm`,`sui`,`solana`];function j(n){let r=Array.from(new Set(n.chains??[]));if(r.length===0)throw Error(`initWaaPSquid requires at least one chain facade`);if(r.some(e=>!k.includes(e)))throw Error(`initWaaPSquid received an unsupported chain facade`);let i=r.includes(`evm`),s=r.includes(`sui`),c=r.includes(`solana`),l=u({referralCode:n.referralCode,config:n.config,project:n.project,environment:n.environment,walletOrigin:n.walletOrigin,useStaging:n.useStaging,walletConnectProjectId:n.walletConnectProjectId,asyncTxs:n.asyncTxs,deferIframe:n.deferIframe},`squid`,!1,r,i),d=s?w(n,`squid`,!1):void 0,p=()=>(v(n),h(`squid`).contentWindow),m=c?new T(n.deferIframe===!1?p():null,{useStaging:n.useStaging,environment:n.environment,walletOrigin:n.walletOrigin,referralCode:n.referralCode,project:n.project,config:n.config,deferIframe:n.deferIframe},p,{...n,chains:[`solana`]}):void 0;m?.setAccountMode(`squid`);let _;n.deferIframe===!1?l.preload().catch(()=>void 0):n.deferIframe===void 0&&(_=f(l));let y={state:`absent`},b=null,x=0,S=()=>{b=null,y={state:`absent`}},C=e=>!e.lifecycleId||e.lifecycleId===b,E=()=>y.state===`active`;l.on(t.squidPending,e=>{if(!C(e))return;let t=e?.transactionDigest;y={state:t?`awaiting-network`:`provisioning`,...t?{operationId:t,transactionDigest:t}:{},...e?.message?{message:e.message}:{}}}),l.on(t.squidReady,e=>{C(e)&&(y={state:`active`})}),l.on(t.squidFailed,e=>{C(e)&&(y={state:`failed`,...e?.error?{message:e.error}:{}},b=null)});let D=e=>{if(l.getLoginMethod()===null)throw new g(`not_authenticated`,`Not authenticated: call login() before connecting or signing.`,{operation:{chain:e,method:`connect`}});if(!E())throw new g(`not_connected`,`Squid is not ready: call onboard() after login before connecting or signing.`)},O=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)&&D(`evm`),O(e)),d){let e=d.connect.bind(d);d.connect=async t=>(D(`sui`),e(t))}if(m){let e=m.connect.bind(m);m.connect=async t=>(D(`solana`),e(t))}let A=async()=>{if(l.getLoginMethod()===null)throw new g(`not_authenticated`,`Not authenticated: call login() before onboarding Squid.`);if(E()||b)return;let t=`squid-${++x}`;b=t,y={state:`provisioning`};try{await l.walletMessageManager.pingIframe(),await o({method:e.enter_lite_mode,params:[window.location.origin,t]},!1,l.walletMessageManager,l.internalEventEmitter)}catch(e){throw b===t&&(b=null,y={state:`failed`,message:e instanceof Error?e.message:String(e)}),e}},j=()=>({...y}),M=e=>{if(y.state===`active`||!e.authenticated||e.activeMode!==`squid`||!e.squid)return;let n={...b?{lifecycleId:b}:{},evm:e.squid.sqd1.evm,sui:e.squid.sqd2.sui,solana:e.squid.sqd2.solana};y={state:`active`},b=null,l.emit(t.squidReady,n)},N=async()=>(await A(),j()),P=l.login.bind(l),F=async e=>{let t=await P(e);return d?.setLoginMethod(t),m?.setLoginMethod(t),(t?await l.session.getAccountStatus().catch(()=>null):null)?.squid&&(await l.reassertIframeAccountMode().catch(()=>void 0),await A()),t&&l.emit(`connect`),t},I=l.logout.bind(l),L=async()=>{await I(),d?.setLoginMethod(null),m?.setLoginMethod(null),S()},R;R={login:F,logout:L,getLoginMethod:()=>l.getLoginMethod(),getAccountStatus:async()=>{let e=await l.session.getAccountStatus();return M(e),e},getSquidStatus:j,on:(e,t)=>(l.on(e,t),R),removeListener:(e,t)=>(l.removeListener(e,t),R)},l.login=R.login,l.logout=R.logout,d&&(d.login=()=>R.login(),d.logout=()=>R.logout()),m&&(m.login=()=>R.login(),m.logout=()=>R.logout());let z={onboard:A,squid:{onboard:A,getStatus:j,onboardWithStatus:N},getSquidStatus:j,session:R,getAccountStatus:()=>{let e=l.getAccountStatus(),t=d?.getAccountStatus(),n=m?.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:()=>{_?.(),S(),l.destroy(),d?.destroy(),m?.destroy(),a()}};return i&&Object.assign(z,{evm:l,ethereum:l}),d&&Object.assign(z,{sui:d}),m&&Object.assign(z,{solana:m}),k.every(e=>r.includes(e))&&Object.assign(z,{auth:l}),z}function M(e){let t=Array.from(new Set(e.chains));if(t.length===0)throw Error(`initWaaPMulti requires at least one chain facade`);if(t.some(e=>!A.includes(e)))throw Error(`initWaaPMulti received an unsupported chain facade`);let n=t.includes(`evm`),r=t.includes(`sui`),i=t.includes(`solana`),o=u({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,t,n),s=r?w({...e,config:e.config},`tap`,!1):void 0,c=()=>(v(e),h(`tap`).contentWindow),l=i?new T(e.deferIframe===!1?c():null,{useStaging:e.useStaging,environment:e.environment,walletOrigin:e.walletOrigin,referralCode:e.referralCode,project:e.project,config:e.config,deferIframe:e.deferIframe},c,{...e,chains:[`solana`]}):void 0;l?.setAccountMode(`tap`);let d;e.deferIframe===!1?o.preload().catch(()=>void 0):e.deferIframe===void 0&&(d=f(o));let p=o.login.bind(o),m=async e=>{let t=await p(e);return s?.setLoginMethod(t),l?.setLoginMethod(t),t&&o.emit(`connect`),t},g=o.logout.bind(o),_=async()=>{await g(),s?.setLoginMethod(null),l?.setLoginMethod(null)},y;y={login:m,logout:_,getLoginMethod:()=>o.getLoginMethod(),getAccountStatus:()=>o.session.getAccountStatus(),on:(e,t)=>(o.on(e,t),y),removeListener:(e,t)=>(o.removeListener(e,t),y)},o.login=y.login,o.logout=y.logout,s&&(s.login=()=>y.login(),s.logout=()=>y.logout()),l&&(l.login=()=>y.login(),l.logout=()=>y.logout());let b=()=>{let e=o.getAccountStatus(),t=s?.getAccountStatus(),n=l?.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}}},x=o.destroy.bind(o),S=s?.destroy.bind(s),C=l?.destroy.bind(l),E=()=>{d?.(),x(),S?.(),C?.(),a()},D={session:y,getAccountStatus:b,preload:()=>o.preload(),destroy:E};return n&&(o.destroy=E,Object.assign(D,{evm:o,ethereum:o})),s&&(s.destroy=E,Object.assign(D,{sui:s})),l&&(l.destroy=E,Object.assign(D,{solana:l})),D}function N(e={}){return console.warn("[WaaP SDK] `initWaaPSui()` is deprecated. Use `initWaaP({ chain: 'sui' })` instead."),O({...e,chain:`sui`})}function P(e={}){return O({...e,chain:`solana`})}function F(e={}){return M({...e,chains:e.chains??A})}export{N as a,C as c,j as i,M as n,F as o,P as r,T as s,O as t};
|
package/dist/ui-lJmATPTt.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require("./esm-DFwVZkjo.js"),t=require("./asyncSigning-B0KrmKk7.js"),n=require("./evm-BXkH-I90.js");let r=require("events");const i={"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`},a=e=>i[e],o=e=>e.slice(4);var s=class{constructor(t,i={},a,o=i){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 r.EventEmitter,this.changeListeners=new Set,this.initializerPromise=null,this.initializedIframeWindow=null,this.walletMessageManager=new n.h(t,n.x(i)),this.ensureIframe=a,this.iframeMounted=!a,this.initializerOptions=o,this.uiMessageManager=new n.a,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:t=>{t.method===e.r.show_modal?this.uiMessageManager.emit(`show_modal`):t.method===e.r.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=n._(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 t=await this.postRequestAndWait({method:e.r.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,r={}){await this.walletMessageManager.pingIframe(),await this.postRequestAndWait({method:e.r.set_signing_mode,params:[n.g(t,r)],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.r.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.r.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this._accounts=[],this.notifyChange({accounts:[]})}async connect(e){if(!this.loginMethod){if(e?.silent)throw new n.w(`not_authenticated`,`Not authenticated: a silent connect cannot open login.`,{operation:{chain:`sui`,method:`sui_connect`}});if(!await this.login())throw new n.w(`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 r=t.data?.accounts||[];return this._accounts=r,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:a(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.r.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.r.waap_getPermissionTokenStatus,params:[t],interactionRequired:!1})).data}async clearPermissionToken(t){return await this.ensureInitialized(),(await this.postRequestAndWait({method:e.r.waap_clearPermissionToken,params:[t],interactionRequired:!1})).data}async requestEmail(){await this.ensureInitialized();let t=await this.postRequestAndWait({method:e.r.silk_requestEmail,params:[],interactionRequired:!0});if(t.error)throw Error(t.error.message||`Failed to request email`);return t.data}async postRequestAndWait(t){let r;try{t.interactionRequired&&n.p({layout:t.method===e.r.login?`auth`:`signing`}),r=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let i=await n.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.f()}});if(i.error)throw Error(i.error.message);return i}catch(e){throw t.interactionRequired&&r===void 0&&n.f(),n.T(e,{chain:`sui`,method:String(t.method),requestId:r})}}notifyChange(e){Array.from(this.changeListeners).forEach(t=>{t(e)})}};function c(e,t,r=!0){let i=()=>(n.y(e),n.v(t).contentWindow),a=e.deferIframe===!1,o=e.deferIframe===void 0,c=a?i():null;if(a&&!c)throw Error(`Failed to create WaaP iframe`);let l=new s(c,e,i,{...e,chains:[`sui`]});l.setAccountMode(t),r&&a&&l.preload().catch(()=>void 0);let u=l.destroy.bind(l);if(l.destroy=()=>{u(),n.b()},r&&o){let e=n.s(l),t=l.destroy.bind(l);l.destroy=()=>{e(),t()}}return l.ui.on(`show_modal`,()=>{n.p(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=`none`})}),l.ui.on(`hide_modal`,()=>{n.f(),document.querySelectorAll(`[data-dapp-kit][class*="overlay"]`).forEach(e=>{e.style.display=``})}),l}var l=class{constructor(t,i={},a,o=i){this.lastKnownConversion=`pending`,this.name=`WaaP`,this.version=`1.0.0`,this.icon=`data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMTYiIGZpbGw9IiMxMTE4MmMiLz48cGF0aCBkPSJNMTYgNDhoMzJMMzIgMTZ6IiBmaWxsPSIjN2NkNGZmIi8+PC9zdmc+`,this._accounts=[],this.accountMode=`tap`,this.loginMethod=null,this._chains=[`solana:mainnet`,`solana:devnet`,`solana:testnet`],this.internalEventEmitter=new r.EventEmitter,this.changeListeners=new Set,this.initializerPromise=null,this.initializedIframeWindow=null,this.walletMessageManager=new n.h(t,n.x(i)),this.ensureIframe=a,this.iframeMounted=!a,this.initializerOptions=o,this.uiMessageManager=new n.a,this.walletMessageManager.addListener({handleResponse:e=>{this.internalEventEmitter.emit(e.id,e)},handleRequest:t=>{t.method===e.r.show_modal?this.uiMessageManager.emit(`show_modal`):t.method===e.r.hide_modal&&this.uiMessageManager.emit(`hide_modal`)},onAccountChanged:async()=>{try{let e=await this.refreshAccounts();this.notifyChange({accounts:e.accounts})}catch(e){console.error(`Failed to refresh Solana 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=n._(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()}get chains(){return this._chains}get accounts(){return this._accounts}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)},"solana:signMessage":{version:`1.1.0`,signMessage:this.signStandardMessages.bind(this)},"solana:signTransaction":{version:`1.0.0`,supportedTransactionVersions:[`legacy`,0],signTransaction:this.signStandardTransactions.bind(this)},"solana:signAndSendTransaction":{version:`1.0.0`,supportedTransactionVersions:[`legacy`,0],signAndSendTransaction:this.signAndSendStandardTransactions.bind(this)}}}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]?{solana: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.r.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,r={}){await this.walletMessageManager.pingIframe(),await this.postRequestAndWait({method:e.r.set_signing_mode,params:[n.g(t,r)],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.r.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.r.logout,params:[],interactionRequired:!1}),this.loginMethod=null,this._accounts=[],this.notifyChange({accounts:[]})}async refreshAccounts(){try{await this.ensureInitialized();let e=await this.postRequestAndWait({method:`solana_connect`,params:[{silent:!0}],interactionRequired:!1});if(e.error)return this._accounts=[],{accounts:[]};let t=this.normalizeAccounts(e.data?.accounts||[]);return this._accounts=t,{accounts:this._accounts}}catch{return this._accounts=[],{accounts:[]}}}normalizeAccounts(e){return e.map(e=>({address:e.address,publicKey:e.publicKey instanceof Uint8Array?e.publicKey:new Uint8Array(e.publicKey??[]),chains:e.chains??this._chains,features:e.features??[]}))}async connect(e){if(!this.loginMethod)throw new n.w(`not_authenticated`,`Not authenticated: call login() before connect().`,{operation:{chain:`solana`,method:`solana_connect`}});await this.ensureInitialized();let t=await this.postRequestAndWait({method:`solana_connect`,params:[e||{}],interactionRequired:!e?.silent,signal:e?.signal,timeoutMs:e?.timeoutMs});if(t.error)throw Error(t.error.message||`Failed to connect`);let r=this.normalizeAccounts(t.data?.accounts||[]);return this._accounts=r,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:`solana_disconnect`,params:[],interactionRequired:!1}),this._accounts=[],this.notifyChange({accounts:[]})}async signMessage(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:`solana_signMessage`,params:[{message:Array.from(e.message),account:t}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(n.error)throw Error(n.error.message||`Failed to sign message`);return{signedMessage:new Uint8Array(n.data.signedMessage),signature:new Uint8Array(n.data.signature)}}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=this.resolveTransactionBytes(e.transaction),r=await this.postRequestAndWait({method:`solana_signTransaction`,params:[{transaction:Array.from(n),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{signedTransaction:new Uint8Array(r.data.signedTransaction),signature:new Uint8Array(r.data.signature)}}async signAndSendTransaction(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=this.resolveTransactionBytes(e.transaction),r=await this.postRequestAndWait({method:`solana_signAndSendTransaction`,params:[{transaction:Array.from(n),account:t,chain:e.chain,options:e.options,withPT:e.withPT}],interactionRequired:!0,signal:e.signal,timeoutMs:e.timeoutMs});if(r.error)throw Error(r.error.message||`Failed to sign and send transaction`);return{signature:r.data.signature}}async signStandardMessages(...e){let t=[];for(let n of e){let e=await this.signMessage({account:n.account,message:n.message});t.push({...e,signatureType:`ed25519`})}return t}async signStandardTransactions(...e){let t=[];for(let n of e){let e=await this.signTransaction({account:n.account,transaction:n.transaction,chain:this.asSupportedChain(n.chain)});t.push({signedTransaction:e.signedTransaction})}return t}async signAndSendStandardTransactions(...e){let t=[];for(let n of e){let e=await this.signAndSendTransaction({account:n.account,transaction:n.transaction,chain:this.asSupportedChain(n.chain),options:this.broadcastOptions(n.options)});t.push({signature:u(e.signature)})}return t}asSupportedChain(e){if(e!==void 0){if(this._chains.includes(e))return e;throw new n.w(`unsupported_input`,`Unsupported Solana Wallet Standard chain: ${e}`,{operation:{chain:`solana`,method:`wallet_standard`}})}}broadcastOptions(e){if(e?.preflightCommitment!==void 0||e?.minContextSlot!==void 0||e?.commitment!==void 0)throw new n.w(`unsupported_input`,`WaaP does not support Wallet Standard RPC commitment options; configure the dapp RPC instead.`,{operation:{chain:`solana`,method:`wallet_standard`}});return e?{skipPreflight:e.skipPreflight,maxRetries:e.maxRetries}:void 0}async requestPermissionToken(t){await this.ensureInitialized();let n={...t,walletMode:this.accountMode},r=await this.postRequestAndWait({method:e.r.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.r.waap_getPermissionTokenStatus,params:[t],interactionRequired:!1})).data}async clearPermissionToken(t){return await this.ensureInitialized(),(await this.postRequestAndWait({method:e.r.waap_clearPermissionToken,params:[t],interactionRequired:!1})).data}resolveTransactionBytes(e){if(e instanceof Uint8Array)return e;if(Array.isArray(e))return new Uint8Array(e);if(e&&typeof e.serialize==`function`){let t=e.serialize();return t instanceof Uint8Array?t:new Uint8Array(t)}throw Error(`Unsupported transaction format. Pass serialized bytes or a @solana/web3.js Transaction.`)}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)}async postRequestAndWait(t){let r;try{t.interactionRequired&&n.p({layout:t.method===e.r.login?`auth`:`signing`}),r=await this.walletMessageManager.postSilkRequest({method:t.method,params:t.params,interactionRequired:t.interactionRequired});let i=await n.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.f()}});if(i.error)throw Error(i.error.message);return i}catch(e){throw t.interactionRequired&&r===void 0&&n.f(),n.T(e,{chain:`solana`,method:String(t.method),requestId:r})}}notifyChange(e){Array.from(this.changeListeners).forEach(t=>{t(e)})}};function u(e){let t=[];for(let n of e){let e=`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`.indexOf(n);if(e<0)throw Error(`Invalid base58 transaction signature`);for(let n=0;n<t.length;n+=1)e+=t[n]*58,t[n]=e&255,e>>=8;for(;e>0;)t.push(e&255),e>>=8}let n=0;for(;n<e.length&&e[n]===`1`;)n+=1;return new Uint8Array([...Array(n).fill(0),...t.reverse()])}function d(e={}){let t=()=>(n.y(e),n.v(`tap`).contentWindow),r=e.deferIframe===!1,i=e.deferIframe===void 0,a=r?t():null;if(r&&!a)throw Error(`Failed to create WaaP iframe`);let o=new l(a,e,t,{...e,chains:[`solana`]});r&&o.preload().catch(()=>void 0);let s=o.destroy.bind(o);if(o.destroy=()=>{s(),n.b()},i){let e=n.s(o),t=o.destroy.bind(o);o.destroy=()=>{e(),t()}}return o.ui.on(`show_modal`,()=>{n.p()}),o.ui.on(`hide_modal`,()=>{n.f()}),o}function f(e={}){if(`chains`in e)throw Error("initWaaP accepts one `chain`; use initWaaPMulti({ chains }) for TAP.");switch(e.chain){case`sui`:return c(e,`tap`);case`solana`:return d(e);default:return n.t(e)}}const p=[`evm`,`sui`,`solana`],m=[`evm`,`sui`,`solana`];function h(r){let i=Array.from(new Set(r.chains??[]));if(i.length===0)throw Error(`initWaaPSquid requires at least one chain facade`);if(i.some(e=>!p.includes(e)))throw Error(`initWaaPSquid received an unsupported chain facade`);let a=i.includes(`evm`),o=i.includes(`sui`),s=i.includes(`solana`),u=n.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,i,a),d=o?c(r,`squid`,!1):void 0,f=()=>(n.y(r),n.v(`squid`).contentWindow),m=s?new l(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`]}):void 0;m?.setAccountMode(`squid`);let h;r.deferIframe===!1?u.preload().catch(()=>void 0):r.deferIframe===void 0&&(h=n.s(u));let g={state:`absent`},_=null,v=0,y=()=>{_=null,g={state:`absent`}},b=e=>!e.lifecycleId||e.lifecycleId===_,x=()=>g.state===`active`;u.on(t.t.squidPending,e=>{if(!b(e))return;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=>{b(e)&&(g={state:`active`})}),u.on(t.t.squidFailed,e=>{b(e)&&(g={state:`failed`,...e?.error?{message:e.error}:{}},_=null)});let S=e=>{if(u.getLoginMethod()===null)throw new n.w(`not_authenticated`,`Not authenticated: call login() before connecting or signing.`,{operation:{chain:e,method:`connect`}});if(!x())throw new n.w(`not_connected`,`Squid is not ready: call onboard() after login before connecting or signing.`)},C=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)&&S(`evm`),C(e)),d){let e=d.connect.bind(d);d.connect=async t=>(S(`sui`),e(t))}if(m){let e=m.connect.bind(m);m.connect=async t=>(S(`solana`),e(t))}let w=async()=>{if(u.getLoginMethod()===null)throw new n.w(`not_authenticated`,`Not authenticated: call login() before onboarding Squid.`);if(x()||_)return;let t=`squid-${++v}`;_=t,g={state:`provisioning`};try{await u.walletMessageManager.pingIframe(),await n.c({method:e.r.enter_lite_mode,params:[window.location.origin,t]},!1,u.walletMessageManager,u.internalEventEmitter)}catch(e){throw _===t&&(_=null,g={state:`failed`,message:e instanceof Error?e.message:String(e)}),e}},T=()=>({...g}),E=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};g={state:`active`},_=null,u.emit(t.t.squidReady,n)},D=async()=>(await w(),T()),O=u.login.bind(u),k=async e=>{let t=await O(e);return d?.setLoginMethod(t),m?.setLoginMethod(t),(t?await u.session.getAccountStatus().catch(()=>null):null)?.squid&&(await u.reassertIframeAccountMode().catch(()=>void 0),await w()),t&&u.emit(`connect`),t},A=u.logout.bind(u),j=async()=>{await A(),d?.setLoginMethod(null),m?.setLoginMethod(null),y()},M;M={login:k,logout:j,getLoginMethod:()=>u.getLoginMethod(),getAccountStatus:async()=>{let e=await u.session.getAccountStatus();return E(e),e},getSquidStatus:T,on:(e,t)=>(u.on(e,t),M),removeListener:(e,t)=>(u.removeListener(e,t),M)},u.login=M.login,u.logout=M.logout,d&&(d.login=()=>M.login(),d.logout=()=>M.logout()),m&&(m.login=()=>M.login(),m.logout=()=>M.logout());let N={onboard:w,squid:{onboard:w,getStatus:T,onboardWithStatus:D},getSquidStatus:T,session:M,getAccountStatus:()=>{let e=u.getAccountStatus(),t=d?.getAccountStatus(),n=m?.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?.(),y(),u.destroy(),d?.destroy(),m?.destroy(),n.b()}};return a&&Object.assign(N,{evm:u,ethereum:u}),d&&Object.assign(N,{sui:d}),m&&Object.assign(N,{solana:m}),p.every(e=>i.includes(e))&&Object.assign(N,{auth:u}),N}function g(e){let t=Array.from(new Set(e.chains));if(t.length===0)throw Error(`initWaaPMulti requires at least one chain facade`);if(t.some(e=>!m.includes(e)))throw Error(`initWaaPMulti received an unsupported chain facade`);let r=t.includes(`evm`),i=t.includes(`sui`),a=t.includes(`solana`),o=n.n({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,t,r),s=i?c({...e,config:e.config},`tap`,!1):void 0,u=()=>(n.y(e),n.v(`tap`).contentWindow),d=a?new l(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`]}):void 0;d?.setAccountMode(`tap`);let f;e.deferIframe===!1?o.preload().catch(()=>void 0):e.deferIframe===void 0&&(f=n.s(o));let p=o.login.bind(o),h=async e=>{let t=await p(e);return s?.setLoginMethod(t),d?.setLoginMethod(t),t&&o.emit(`connect`),t},g=o.logout.bind(o),_=async()=>{await g(),s?.setLoginMethod(null),d?.setLoginMethod(null)},v;v={login:h,logout:_,getLoginMethod:()=>o.getLoginMethod(),getAccountStatus:()=>o.session.getAccountStatus(),on:(e,t)=>(o.on(e,t),v),removeListener:(e,t)=>(o.removeListener(e,t),v)},o.login=v.login,o.logout=v.logout,s&&(s.login=()=>v.login(),s.logout=()=>v.logout()),d&&(d.login=()=>v.login(),d.logout=()=>v.logout());let y=()=>{let e=o.getAccountStatus(),t=s?.getAccountStatus(),n=d?.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}}},b=o.destroy.bind(o),x=s?.destroy.bind(s),S=d?.destroy.bind(d),C=()=>{f?.(),b(),x?.(),S?.(),n.b()},w={session:v,getAccountStatus:y,preload:()=>o.preload(),destroy:C};return r&&(o.destroy=C,Object.assign(w,{evm:o,ethereum:o})),s&&(s.destroy=C,Object.assign(w,{sui:s})),d&&(d.destroy=C,Object.assign(w,{solana:d})),w}function _(e={}){return console.warn("[WaaP SDK] `initWaaPSui()` is deprecated. Use `initWaaP({ chain: 'sui' })` instead."),f({...e,chain:`sui`})}function v(e={}){return f({...e,chain:`solana`})}function y(e={}){return g({...e,chains:e.chains??m})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return f}});
|