@human.tech/waap-sdk 1.3.0 → 2.1.0-staging-56d55d

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.
Files changed (82) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +167 -216
  3. package/dist/WaaPError-C5nPcaKk.d.mts +168 -0
  4. package/dist/WaaPError-XLgIXUgh.d.ts +168 -0
  5. package/dist/WalletConnect-BTT6LtUu.d.mts +33 -0
  6. package/dist/WalletConnect-BTT6LtUu.d.ts +33 -0
  7. package/dist/WalletConnect-Deg7_JmH.mjs +4 -0
  8. package/dist/WalletConnect-G-lbqknM.js +4 -0
  9. package/dist/asyncSigning-B0KrmKk7.js +1 -0
  10. package/dist/asyncSigning-CzqBbYDP.mjs +1 -0
  11. package/dist/esm-B4jz8Emb.mjs +1 -0
  12. package/dist/esm-D5fDQenf.js +1 -0
  13. package/dist/evm-Ch-aWWat.js +1 -0
  14. package/dist/evm-DHVrAmEw.mjs +1 -0
  15. package/dist/evm.d.mts +7 -0
  16. package/dist/evm.d.ts +7 -0
  17. package/dist/evm.js +1 -0
  18. package/dist/evm.mjs +1 -0
  19. package/dist/index-CMSufeMa.d.ts +775 -0
  20. package/dist/index-CdKntlzX.d.mts +775 -0
  21. package/dist/index.d.mts +273 -0
  22. package/dist/index.d.ts +273 -15
  23. package/dist/index.js +1 -2
  24. package/dist/index.mjs +1 -0
  25. package/dist/initializerContext-0oKHzvQG.d.ts +21 -0
  26. package/dist/initializerContext-C39PUnGi.d.mts +21 -0
  27. package/dist/react.d.mts +2 -0
  28. package/dist/react.d.ts +2 -0
  29. package/dist/react.js +1 -0
  30. package/dist/react.mjs +1 -0
  31. package/dist/register-4Afr2Jx8.js +1 -0
  32. package/dist/register-CBlzg5ln.d.ts +107 -0
  33. package/dist/register-CNgjA0yl.mjs +1 -0
  34. package/dist/register-CxsUwgKJ.d.ts +282 -0
  35. package/dist/register-DIZnKDHF.mjs +1 -0
  36. package/dist/register-LmdJdvzn.d.mts +282 -0
  37. package/dist/register-QjrsOe7r.d.mts +107 -0
  38. package/dist/register-ozKwGWOb.js +1 -0
  39. package/dist/solana.d.mts +5 -0
  40. package/dist/solana.d.ts +5 -0
  41. package/dist/solana.js +1 -0
  42. package/dist/solana.mjs +1 -0
  43. package/dist/sui.d.mts +5 -0
  44. package/dist/sui.d.ts +5 -0
  45. package/dist/sui.js +1 -0
  46. package/dist/sui.mjs +1 -0
  47. package/dist/types-DexmJNke.d.mts +397 -0
  48. package/dist/types-DexmJNke.d.ts +397 -0
  49. package/dist/ui-16QpbEyG.js +1 -0
  50. package/dist/ui-BAYRtDQg.mjs +1 -0
  51. package/dist/useWaapAuth-BrqAhAn2.d.ts +246 -0
  52. package/dist/useWaapAuth-C5I7QqyW.d.mts +246 -0
  53. package/dist/useWaapAuth-DHIeb4yc.mjs +1 -0
  54. package/dist/useWaapAuth-Z_ONicYr.js +1 -0
  55. package/dist/walletconnect.d.mts +2 -0
  56. package/dist/walletconnect.d.ts +2 -0
  57. package/dist/walletconnect.js +1 -0
  58. package/dist/walletconnect.mjs +1 -0
  59. package/package.json +59 -43
  60. package/dist/hooks/useWaapTransaction.d.ts +0 -84
  61. package/dist/index.js.map +0 -1
  62. package/dist/index.modern.mjs +0 -2
  63. package/dist/index.modern.mjs.map +0 -1
  64. package/dist/index.module.js +0 -2
  65. package/dist/index.module.js.map +0 -1
  66. package/dist/index.umd.js +0 -2
  67. package/dist/index.umd.js.map +0 -1
  68. package/dist/lib/UIMessageManager.d.ts +0 -19
  69. package/dist/lib/WalletConnect.d.ts +0 -30
  70. package/dist/lib/WalletMessageManager.d.ts +0 -59
  71. package/dist/lib/provider/EthereumProvider.d.ts +0 -108
  72. package/dist/lib/provider/EthereumProviderExtension.d.ts +0 -26
  73. package/dist/lib/provider/requests.d.ts +0 -17
  74. package/dist/lib/provider/types.d.ts +0 -49
  75. package/dist/lib/provider/utils.d.ts +0 -4
  76. package/dist/lib/sui/SuiWallet.d.ts +0 -203
  77. package/dist/lib/sui/index.d.ts +0 -7
  78. package/dist/lib/sui/init.d.ts +0 -30
  79. package/dist/lib/sui/register.d.ts +0 -39
  80. package/dist/lib/sui/types.d.ts +0 -293
  81. package/dist/ui/WaapComponent.d.ts +0 -37
  82. package/dist/ui/index.d.ts +0 -11
package/dist/index.js CHANGED
@@ -1,2 +1 @@
1
- var e,t=require("@human.tech/waap-constants"),n=require("events"),r=require("@human.tech/waap-interface-core"),i=require("@reown/appkit-adapter-ethers"),o=require("@mysten/wallet-standard"),a=require("react");function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,t}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l.apply(null,arguments)}function d(e){return d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},d(e)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function h(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(h=function(){return!!e})()}function m(e,t){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},m(e,t)}function g(e){var t=function(e){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function p(e){var t="function"==typeof Map?new Map:void 0;return p=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(h())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var i=new(e.bind.apply(e,r));return n&&m(i,n.prototype),i}(e,arguments,d(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),m(n,e)},p(e)}exports.UI_EVENT_NAMES=void 0,(e=exports.UI_EVENT_NAMES||(exports.UI_EVENT_NAMES={})).show_modal="show_modal",e.hide_modal="hide_modal";var v=/*#__PURE__*/function(e){function t(){return e.call(this)||this}return f(t,e),t}(n.EventEmitter),w=function(e,t,n,r,i){try{return Promise.resolve(n.postSilkRequest({method:e.method,params:e.params,interactionRequired:t,silkOptions:i})).then(function(e){return new Promise(function(t,n){r.once(e,function(e){e.error?n(e.error):t(e.data)})})})}catch(e){return Promise.reject(e)}},y={styles:{darkMode:!1}};function E(e,t,n){if(!e.s){if(n instanceof M){if(!n.s)return void(n.o=E.bind(null,e,t));1&t&&(t=n.s),n=n.v}if(n&&n.then)return void n.then(E.bind(null,e,t),E.bind(null,e,2));e.s=t,e.v=n;const r=e.o;r&&r(e)}}var M=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(t,n){var r=new e,i=this.s;if(i){var o=1&i?t:n;if(o){try{E(r,1,o(this.v))}catch(e){E(r,2,e)}return r}return this}return this.o=function(e){try{var i=e.v;1&e.s?E(r,1,t?t(i):i):n?E(r,1,n(i)):E(r,2,i)}catch(e){E(r,2,e)}},r},e}();function P(e){return e instanceof M&&1&e.s}var _=/*#__PURE__*/function(){function e(){}return e.setProjectId=function(e){this.projectId=e},e.getProjectIdFromEnv=function(){try{if("undefined"!=typeof process&&process.env)return process.env.NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID||process.env.VITE_WALLET_CONNECT_PROJECT_ID||process.env.REACT_APP_WALLET_CONNECT_PROJECT_ID||process.env.WALLET_CONNECT_PROJECT_ID}catch(e){return}},e.getInstance=function(){try{var e=this;return"undefined"==typeof window||"undefined"==typeof document?Promise.resolve(null):Promise.resolve(Promise.resolve().then(function(){/*#__PURE__*/return s(require("@reown/appkit"))})).then(function(t){var n=t.createAppKit;return Promise.resolve(Promise.resolve().then(function(){/*#__PURE__*/return s(require("@reown/appkit/networks"))})).then(function(t){var r=t.mainnet,o=t.sepolia,a=t.optimism,s=t.arbitrum,c=t.polygon,u=t.gnosis,l=t.avalanche,d=t.aurora,f=t.fantom,h=t.base,m=t.celo;try{var g={name:"Human Wallet",description:"Silk lets you create human keys for web3 wallets that are recoverable with private identity proofs and secured by zero trust protocols.",url:window.location.origin,icons:["https://imagedelivery.net/_aTEfDRm7z3tKgu9JhfeKA/f11f5753-616a-4aa0-2aee-9b75befea700/sm"]},p=e.projectId||e.getProjectIdFromEnv();return p?(e.projectId=p,e.instance||(e.instance=n({adapters:[new i.EthersAdapter],projectId:p,metadata:g,networks:[r,o,s,a,c,u,l,d,f,h,m],features:{socials:!1,email:!1}})),e.instance):(console.error('WalletConnect project ID not found. Please set it using one of these methods:\n1. Pass walletConnectProjectId when calling initSilk\n2. Call SilkWalletConnect.setProjectId("your-project-id")\n3. Set WALLET_CONNECT_PROJECT_ID (NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID for Next projects) environment variable'),null)}catch(e){return console.error("Error importing or initializing WalletConnect:",e),null}})})}catch(e){return Promise.reject(e)}},e.listenToAccountChangeEvent=function(){try{var e=this;return Promise.resolve(new Promise(function(t){e.instance.subscribeAccount(function(e){null!=e&&e.isConnected&&t()})})).then(function(){})}catch(e){return Promise.reject(e)}},e.waitForReadyAndCheckConnection=function(){try{var e=this;if(!e.instance)return Promise.resolve(!1);var t=!1,n=0,r=function(e,t,n){for(var r;;){var i=e();if(P(i)&&(i=i.v),!i)return o;if(i.then){r=0;break}var o=n();if(o&&o.then){if(!P(o)){r=1;break}o=o.s}}var a=new M,s=E.bind(null,a,2);return(0===r?i.then(u):1===r?o.then(c):(void 0).then(function(){(i=e())?i.then?i.then(u).then(void 0,s):u(i):E(a,1,o)})).then(void 0,s),a;function c(t){o=t;do{if(!(i=e())||P(i)&&!i.v)return void E(a,1,o);if(i.then)return void i.then(u).then(void 0,s);P(o=n())&&(o=o.v)}while(!o||!o.then);o.then(c).then(void 0,s)}function u(e){e?(o=n())&&o.then?o.then(c).then(void 0,s):c(o):E(a,1,o)}}(function(){return!t&&n<15},0,function(){var r=n<5?500:1e3;return Promise.resolve(new Promise(function(e){return setTimeout(e,r)})).then(function(){t=e.instance.getIsConnectedState(),n++,console.log("WalletConnect connection check attempt "+n+": "+t)})});return Promise.resolve(r&&r.then?r.then(function(){return t}):t)}catch(e){return Promise.reject(e)}},e.isConnected=function(){var e,t;return null!=(e=null==(t=this.instance)?void 0:t.getIsConnectedState())&&e},e.getWalletProvider=function(){var e,t;return null!=(e=null==(t=this.instance)?void 0:t.getWalletProvider())?e:null},e}();_.instance=null,_.projectId=void 0,_.chains=[1,10,100,137,8453,43114,42161,42220,84532,11155111];var b=["silkOptions"],T=/*#__PURE__*/function(){function e(e,n){this.iframeWindow=null,this.walletOrigin=void 0,this.iframeWindow=e,this.walletOrigin=n?t.silkWalletAppOrigin2Staging:t.silkWalletAppOrigin2}var n=e.prototype;return n.postSilkNotification=function(e){this.iframeWindow.postMessage({target:"silk",messageType:r.SILK_MESSAGE_TYPE.notification,data:e},this.walletOrigin)},n.postReadyNotification=function(){this.postSilkNotification(r.SILK_NOTIFICATION.ready)},n.postConnectNotification=function(){this.postSilkNotification(r.SILK_NOTIFICATION.connect)},n.pingIframe=function(){var e=this;return new Promise(function(t,n){setTimeout(function(){return n("Wallet ping timed out.")},1e4),window.addEventListener("message",function e(n){"silk"===n.data.target&&n.data.messageType===r.SILK_MESSAGE_TYPE.notification&&n.data.data===r.SILK_NOTIFICATION.ready&&(window.removeEventListener("message",e),t())}),e.postReadyNotification()})},n.postSilkRequest=function(e){try{var t=this,n=e.silkOptions,i=l({},function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,b),{target:"silk",messageType:r.SILK_MESSAGE_TYPE.request},n&&{silkOptions:n});return Promise.resolve(r.generateMessageId(i)).then(function(e){return t.iframeWindow.postMessage(l({},i,{id:e}),t.walletOrigin),e})}catch(e){return Promise.reject(e)}},n.addListener=function(e){var t=this,n=e.handleResponse,i=e.handleRequest,o=e.onReceiveConnectNotif,a=e.onAccountChanged,s=e.onAsyncTxNotification;window.addEventListener("message",function(e){var c,u,l;try{if("undefined"!=typeof process&&process,e.origin!==t.walletOrigin)return}catch(n){if(e.origin!==t.walletOrigin)return}if((null==(c=e.data)?void 0:c.messageType)===r.SILK_MESSAGE_TYPE.request)i(e.data);else if((null==(u=e.data)?void 0:u.messageType)===r.SILK_MESSAGE_TYPE.response)n(e.data);else if((null==(l=e.data)?void 0:l.messageType)===r.SILK_MESSAGE_TYPE.notification){var d,f,h,m;(null==(d=e.data)?void 0:d.data)===r.SILK_NOTIFICATION.connect?null==o||o():(null==(f=e.data)||null==(f=f.data)?void 0:f.type)===r.SILK_NOTIFICATION.account_changed&&a?a(e.data.data.account):(null!=(h=e.data)&&null!=(h=h.data)&&null!=(h=h.type)&&h.startsWith("waap_sign_")||null!=(m=e.data)&&null!=(m=m.data)&&null!=(m=m.type)&&m.startsWith("waap_tx_"))&&s&&s({type:e.data.data.type,payload:e.data.data.payload})}})},e}();function I(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var A=["waap","human","injected","walletconnect"];function S(e,t,n){if(!e.s){if(n instanceof C){if(!n.s)return void(n.o=S.bind(null,e,t));1&t&&(t=n.s),n=n.v}if(n&&n.then)return void n.then(S.bind(null,e,t),S.bind(null,e,2));e.s=t,e.v=n;const r=e.o;r&&r(e)}}var C=/*#__PURE__*/function(){function e(){}return e.prototype.then=function(t,n){var r=new e,i=this.s;if(i){var o=1&i?t:n;if(o){try{S(r,1,o(this.v))}catch(e){S(r,2,e)}return r}return this}return this.o=function(e){try{var i=e.v;1&e.s?S(r,1,t?t(i):i):n?S(r,1,n(i)):S(r,2,i)}catch(e){S(r,2,e)}},r},e}(),O=/*#__PURE__*/function(e){function i(t,i,o,a,s,c,d){var f;return void 0===c&&(c=!1),void 0===d&&(d=!1),(f=e.call(this)||this).isSilk=!0,f.isWaaP=!0,f.connected=!1,f.walletMessageManager=void 0,f.uiMessageManager=void 0,f.config=void 0,f.currentAccount=null,f.walletConnectProvider=null,f.asyncTxs=!1,f.legacyAsyncSigning=!1,f.persistedMethods=void 0,f.internalEventEmitter=new n.EventEmitter,f.asyncTxs=c,f.legacyAsyncSigning=d,f.uiMessageManager=new v,f.walletMessageManager=new T(t,!!s),f.config=l({},y,o||{}),f.persistedMethods={login:f.login.bind(u(f)),logout:f.logout.bind(u(f)),getLoginMethod:f.getLoginMethod.bind(u(f)),walletMessageManager:f.walletMessageManager,internalEventEmitter:f.internalEventEmitter,uiMessageManager:f.uiMessageManager,portal:f.portal.bind(u(f)),requestEmail:f.requestEmail.bind(u(f)),requestSBT:f.requestSBT.bind(u(f)),requestPermissionToken:f.requestPermissionToken.bind(u(f)),orcid:f.orcid.bind(u(f)),enable:f.enable.bind(u(f)),isConnected:f.isConnected.bind(u(f)),toggleDarkMode:f.toggleDarkMode.bind(u(f)),silkRequest:f.request.bind(u(f)),waaPRequest:f.request.bind(u(f))},f.walletMessageManager.addListener({onReceiveConnectNotif:function(){console.log("onReceiveConnectNotif"),f.connected=!0,f.emit("connect")},handleResponse:function(e){return f.internalEventEmitter.emit(e.id,e)},handleRequest:function(e){e.method===r.SILK_METHOD.show_modal?f.uiMessageManager.emit(exports.UI_EVENT_NAMES.show_modal):e.method===r.SILK_METHOD.hide_modal&&f.uiMessageManager.emit(exports.UI_EVENT_NAMES.hide_modal)},onAccountChanged:function(e){f.currentAccount!==e&&(f.currentAccount=e,f.emit("accountsChanged",e?[e]:[]))},onAsyncTxNotification:function(e){f.emit(e.type,e.payload)}}),i&&f.walletMessageManager.pingIframe().then(function(){return w({method:r.SILK_METHOD.set_points_referral_code,params:[i]},!1,f.walletMessageManager,f.internalEventEmitter)}).catch(function(e){console.error("Error setting referral code in Silk iframe:",e)}),a&&(console.log(" =========== project =========== ",a),f.walletMessageManager.pingIframe().then(function(){return w({method:r.SILK_METHOD.set_project,params:[a,window.location.origin]},!1,f.walletMessageManager,f.internalEventEmitter)})),o&&f.walletMessageManager.pingIframe().then(function(){return w({method:r.SILK_METHOD.set_custom_config,params:[o]},!1,f.walletMessageManager,f.internalEventEmitter)}).catch(function(e){console.error("Error setting custom config in Silk iframe:",e)}),f}f(i,e);var o=i.prototype;return o.initializeWalletConnect=function(){try{var e=this,t=I(function(){return Promise.resolve(_.getInstance()).then(function(t){e.walletConnectProvider=t,console.log("WalletConnect provider initialized")})},function(t){console.error("Failed to initialize WalletConnect provider:",t),e.walletConnectProvider=null});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}},o.enable=function(){try{return Promise.resolve(this.request({method:"eth_requestAccounts"}))}catch(e){return Promise.reject(e)}},o.isConnected=function(){return this.connected},o.request=function(e){try{var n=this;return Object.keys(r.JSON_RPC_METHOD).includes(e.method)?Promise.resolve(n.attemptAutoConnect(e.method)).then(function(i){return null!==i?i:function(e){try{var t;if(!e||!Array.isArray(e))return!1;var n=JSON.parse("string"==typeof e[1]?e[1]:JSON.stringify(e[1]));return"SafeTx"===n.primaryType&&void 0!==(null==(t=n.domain)?void 0:t.verifyingContract)&&n.message&&"to"in n.message&&"value"in n.message&&"safeTxGas"in n.message&&"baseGas"in n.message&&"gasPrice"in n.message&&"nonce"in n.message}catch(e){return!1}}(e.params)&&e.method!==r.JSON_RPC_METHOD.eth_signTypedData_v4?Promise.reject({error:"Safe transactions must be signed using eth_signTypedData_v4"}):Promise.resolve(n.walletMessageManager.pingIframe()).then(function(){var i=(e.method===r.JSON_RPC_METHOD.eth_sendTransaction||e.method===r.JSON_RPC_METHOD.eth_signTransaction||e.method===r.JSON_RPC_METHOD.eth_signTypedData_v4||e.method===r.JSON_RPC_METHOD.personal_sign)&&n.asyncTxs||e.async,o=i||e.withPT?n.legacyAsyncSigning?{asyncSigning:i||void 0,withPT:e.withPT}:{async:i,withPT:e.withPT}:void 0;return Promise.resolve(w(e,t.rpcMethodRequiresUI(e.method),n.walletMessageManager,n.internalEventEmitter,o)).then(function(t){var i=function(){if((e.method===r.JSON_RPC_METHOD.wallet_switchEthereumChain||e.method===r.JSON_RPC_METHOD.wallet_addEthereumChain)&&null===t){var i;n.emit("chainChanged",null==(i=e.params)||null==(i=i[0])?void 0:i.chainId);var o=I(function(){return Promise.resolve(n.request({method:"eth_accounts"})).then(function(t){var r,i;t&&t.length>0&&(n.currentAccount=t[0],n.emit("accountsChanged",t),n.emit("connect",{chainId:null==(r=e.params)||null==(r=r[0])?void 0:r.chainId}),console.log("[EthereumProvider] Re-emitted accounts and connect after chain switch:",{accounts:t,chainId:null==(i=e.params)||null==(i=i[0])?void 0:i.chainId}))})},function(t){var r;console.warn("[EthereumProvider] Failed to get accounts after chain switch:",t),n.currentAccount&&(n.emit("accountsChanged",[n.currentAccount]),n.emit("connect",{chainId:null==(r=e.params)||null==(r=r[0])?void 0:r.chainId}))});if(o&&o.then)return o.then(function(){})}}();return i&&i.then?i.then(function(){return t}):t})})}):Promise.reject({error:"Not implemented ("+e.method+")"})}catch(e){return Promise.reject(e)}},o.login=function(e){try{var t=function(){var t=e||window.ethereum,i=t&&function(e){return!(null==e||!e.isMetaMask||e.isApexWallet||e.isAvalanche||e.isBitKeep||e.isBlockWallet||e.isMathWallet||e.isOkxWallet||e.isOKExWallet||e.isOneInchIOSWallet||e.isOneInchAndroidWallet||e.isOpera||e.isPortal||e.isRabby||e.isDefiant||e.isTokenPocket||e.isTokenary||e.isZerion)}(t)?"MetaMask":"Browser Wallet";return Promise.resolve(n.walletMessageManager.pingIframe()).then(function(){return Promise.resolve(w({method:r.SILK_METHOD.login,params:[i]},!0,n.walletMessageManager,n.internalEventEmitter)).then(function(e){var r=function(e){if(null==e)return null;if("string"==typeof e){if(A.includes(e))return e;throw new Error('[EthereumProvider] Unexpected login method: "'+e+'". Expected one of: '+A.join(", "))}if("object"==typeof e&&"loginMethod"in e&&"string"==typeof e.loginMethod){var t=e.loginMethod;if(console.warn('[EthereumProvider] Received object login response. Normalizing "'+t+'" to string. This is unexpected for the web SDK.'),A.includes(t))return t;throw new Error('[EthereumProvider] Unknown loginMethod in object: "'+t+'". Expected one of: '+A.join(", "))}throw new Error("[EthereumProvider] Unexpected login response: "+JSON.stringify(e)+" (type: "+typeof e+")")}(e);if(null===r)return null;var i=function(e,t){var n,r=-1;e:{for(var i=0;i<t.length;i++){var o=t[i][0];if(o){var a=o();if(a&&a.then)break e;if(a===e){r=i;break}}else r=i}if(-1!==r){do{for(var s=t[r][1];!s;)r++,s=t[r][1];var c=s();if(c&&c.then){n=!0;break e}var u=t[r][2];r++}while(u&&!u());return c}}var l=new C,d=S.bind(null,l,2);return(n?c.then(f):a.then(function n(a){for(;;){if(a===e){r=i;break}if(++i===t.length){if(-1!==r)break;return void S(l,1,c)}if(o=t[i][0]){if((a=o())&&a.then)return void a.then(n).then(void 0,d)}else r=i}do{for(var s=t[r][1];!s;)r++,s=t[r][1];var c=s();if(c&&c.then)return void c.then(f).then(void 0,d);var u=t[r][2];r++}while(u&&!u());S(l,1,c)})).then(void 0,d),l;function f(e){for(;;){var n=t[r][2];if(!n||n())break;r++;for(var i=t[r][1];!i;)r++,i=t[r][1];if((e=i())&&e.then)return void e.then(f).then(void 0,d)}S(l,1,e)}}(r,[[function(){return"waap"}],[function(){return"human"},function(){localStorage.setItem(window.location.origin+"-connected","waap"),n.setupWaaP()}],[function(){return"injected"},function(){t&&(localStorage.setItem(window.location.origin+"-connected","injected"),n.setupInjectedWallet(t))}],[function(){return"walletconnect"},function(){var e=function(){var e=_.getWalletProvider();n.setupWalletConnect(e)};localStorage.setItem(window.location.origin+"-connected","walletconnect");var t=function(){if(!_.isConnected())return Promise.resolve(n.walletConnectProvider.open({view:"Connect"})).then(function(){return Promise.resolve(_.listenToAccountChangeEvent()).then(function(){})})}();return t&&t.then?t.then(e):e()}]]);return i&&i.then?i.then(function(){return r}):r})})},n=this;if("undefined"==typeof window||"undefined"==typeof document)return Promise.resolve(null);var i=function(e){if(null!=(e=n.config.authenticationMethods)&&e.includes("wallet")&&!n.walletConnectProvider)return Promise.resolve(n.initializeWalletConnect()).then(function(){})}();return Promise.resolve(i&&i.then?i.then(t):t())}catch(e){return Promise.reject(e)}},o.logout=function(){try{var e=this;return Promise.resolve(e.walletMessageManager.pingIframe()).then(function(){function t(){return w({method:r.SILK_METHOD.logout},!1,e.walletMessageManager,e.internalEventEmitter)}e.cleanupInvalidLoginState();var n=I(function(){var t=function(){if(e.walletConnectProvider)return Promise.resolve(e.walletConnectProvider.disconnect()).then(function(){})}();if(t&&t.then)return t.then(function(){})},function(e){console.error("Error disconnecting from WalletConnect:",e)});return n&&n.then?n.then(t):t()})}catch(e){return Promise.reject(e)}},o.cleanupInvalidLoginState=function(){try{localStorage.removeItem(window.location.origin+"-connected")}catch(e){console.warn("Could not clean up login state:",e)}},o.setupWaaP=function(){var e=l({},this.persistedMethods,{isWaaP:!0,on:this.on.bind(this),removeListener:this.removeListener.bind(this),request:this.request.bind(this)});window.silk=e,window.waap=e},o.setupInjectedWallet=function(e){var t,n,r,i,o,a=l({},this.persistedMethods,e,{isSilk:!0,connected:null!=(t=e.connected)&&t,on:null!=(n=null==(r=e.on)?void 0:r.bind(e))?n:function(){},removeListener:null!=(i=null==(o=e.removeListener)?void 0:o.bind(e))?i:function(){},request:e.request.bind(e)});window.silk=a,window.waap=a},o.setupWalletConnect=function(e){var t,n,r,i,o=l({},this.persistedMethods,e,{isSilk:!0,connected:!0,on:null!=(t=null==(n=e.on)?void 0:n.bind(e))?t:function(){},removeListener:null!=(r=null==(i=e.removeListener)?void 0:i.bind(e))?r:function(){},request:e.request.bind(e)});window.silk=o,window.waap=o},o.setupAutoConnectInjected=function(e){var t,n,r,i,o,a=l({},this.persistedMethods,e,{isSilk:!1,connected:null!=(t=null==e.isConnected?void 0:e.isConnected())&&t,on:null!=(n=null==(r=e.on)?void 0:r.bind(e))?n:function(){},removeListener:null!=(i=null==(o=e.removeListener)?void 0:o.bind(e))?i:function(){},request:e.request.bind(e)});window.silk=a,window.waap=a},o.setupAutoConnectWalletConnect=function(e){var t,n,r,i,o=l({},this.persistedMethods,e,{isSilk:!1,connected:!0,on:null!=(t=null==(n=e.on)?void 0:n.bind(e))?t:function(){},removeListener:null!=(r=null==(i=e.removeListener)?void 0:i.bind(e))?r:function(){},request:e.request.bind(e)});window.silk=o,window.waap=o},o.attemptAutoConnect=function(e){try{var t,n=this;if("eth_requestAccounts"!==e&&"eth_accounts"!==e)return Promise.resolve(null);n.walletMessageManager.pingIframe().then(function(){try{return Promise.resolve(w({method:r.SILK_METHOD.auto_conn,params:[window.location.origin]},!1,n.walletMessageManager,n.internalEventEmitter)).then(function(){})}catch(e){return Promise.reject(e)}});var i=n.getLoginMethod(),o=function(){if("injected"!==i||!window.ethereum)return function(){if("walletconnect"===i)return I(function(){function e(){return Promise.resolve(_.waitForReadyAndCheckConnection()).then(function(e){if(e){var r=_.getWalletProvider();n.setupAutoConnectWalletConnect(r);var i=r.request({method:"eth_requestAccounts"});return t=1,i}return console.log("WalletConnect not connected, cleaning up and falling through to normal flow"),n.cleanupInvalidLoginState(),t=1,null})}var r=function(){if(!n.walletConnectProvider)return Promise.resolve(_.getInstance()).then(function(e){n.walletConnectProvider=e})}();return r&&r.then?r.then(e):e()},function(e){return console.warn("WalletConnect auto-connect failed:",e),n.cleanupInvalidLoginState(),t=1,null})}();try{n.setupAutoConnectInjected(window.ethereum);var e=window.ethereum.request({method:"eth_requestAccounts"});return t=1,e}catch(e){return console.warn("Injected wallet auto-connect failed:",e),n.cleanupInvalidLoginState(),t=1,null}}();return Promise.resolve(o&&o.then?o.then(function(e){return t?e:null}):t?o:null)}catch(e){return Promise.reject(e)}},o.getLoginMethod=function(){if("undefined"==typeof window||"undefined"==typeof localStorage)return null;try{var e=localStorage.getItem(window.location.origin+"-connected");if(!e)return null;if(!["waap","human","injected","walletconnect"].includes(e))return this.cleanupInvalidLoginState(),null;switch(e){case"injected":return window.ethereum?"injected":(this.cleanupInvalidLoginState(),null);case"walletconnect":try{return _.isConnected()?"walletconnect":(this.cleanupInvalidLoginState(),null)}catch(e){return this.cleanupInvalidLoginState(),null}case"waap":return"waap";case"human":return"human";default:return this.cleanupInvalidLoginState(),null}}catch(e){return console.warn("Error checking login method:",e),this.cleanupInvalidLoginState(),null}},o.toggleDarkMode=function(){try{var e=this;return e.config.styles.darkMode=!e.config.styles.darkMode,e.walletMessageManager.pingIframe().then(function(){return w({method:r.SILK_METHOD.set_custom_config,params:[e.config]},!1,e.walletMessageManager,e.internalEventEmitter)}).catch(function(e){console.error("Error setting custom config in Silk iframe:",e)}),Promise.resolve()}catch(e){return Promise.reject(e)}},o.safe=function(){try{var e=this;return e.walletMessageManager.pingIframe().then(function(){return w({method:r.SILK_METHOD.safe},!0,e.walletMessageManager,e.internalEventEmitter)}),Promise.resolve()}catch(e){return Promise.reject(e)}},o.orcid=function(){try{var e=this;return e.walletMessageManager.pingIframe().then(function(){return w({method:r.SILK_METHOD.orcid},!0,e.walletMessageManager,e.internalEventEmitter)}),Promise.resolve()}catch(e){return Promise.reject(e)}},o.portal=function(e,t,n){try{var i=this;return Promise.resolve(i.walletMessageManager.pingIframe()).then(function(){var o;switch(t){case"get":o="gastank"===e?r.SILK_METHOD.gastank_get_settings:r.SILK_METHOD.customization_get;break;case"update":o="gastank"===e?r.SILK_METHOD.gastank_update_settings:r.SILK_METHOD.customization_update;break;case"topup":o=r.SILK_METHOD.gastank_topup;break;case"init":o=r.SILK_METHOD.project_init}return w({method:o,params:[n,window.location.origin]},"get"!==t&&"customization"!==e,i.walletMessageManager,i.internalEventEmitter)})}catch(e){return Promise.reject(e)}},o.requestEmail=function(){try{var e=this;return Promise.resolve(e.walletMessageManager.pingIframe()).then(function(){return w({method:r.SILK_METHOD.silk_requestEmail},!0,e.walletMessageManager,e.internalEventEmitter)})}catch(e){return Promise.reject(e)}},o.requestPermissionToken=function(e){try{var t=this;return Promise.resolve(t.walletMessageManager.pingIframe()).then(function(){return w({method:r.SILK_METHOD.waap_requestPermissionToken,params:[e]},!0,t.walletMessageManager,t.internalEventEmitter)})}catch(e){return Promise.reject(e)}},o.requestSBT=function(e){try{var t=this;return Promise.resolve(t.walletMessageManager.pingIframe()).then(function(){return w({method:r.SILK_METHOD.silk_requestSbt,params:[e]},!0,t.walletMessageManager,t.internalEventEmitter)})}catch(e){return Promise.reject(e)}},i}(n.EventEmitter),k="waap-wallet",x="waap-component-container",j="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof HTMLElement;function L(){return!(!j||!document.getElementById(x)&&!document.querySelector(k))}function W(){return j?document.getElementById(x)||document.querySelector(k):null}exports.WaaP=void 0,j?(exports.WaaP=/*#__PURE__*/function(e){function t(){var t;return(t=e.call(this)||this).style.display&&""!==t.style.display||(t.style.display="flex",t.style.alignItems="center",t.style.justifyContent="center"),t.style.width&&""!==t.style.width||(t.style.width="100%"),t.style.height&&""!==t.style.height||(t.style.height="100%"),t.id=x,t}f(t,e);var n=t.prototype;return n.connectedCallback=function(){this.setAttribute("data-waap-mounted","true")},n.disconnectedCallback=function(){this.removeAttribute("data-waap-mounted")},t}(/*#__PURE__*/p(HTMLElement)),"undefined"==typeof customElements||customElements.get(k)||customElements.define(k,exports.WaaP)):exports.WaaP=function(){};var q="waap-wallet-iframe-container",N="waap-wallet-iframe-wrapper",R="waap-wallet-iframe",D=function(){return document.getElementById(q)||document.getElementById("silk-wallet-iframe-container")},H=function(){return document.getElementById(N)||document.getElementById("silk-wallet-iframe-wrapper")},K=function(){return document.getElementById(R)||document.getElementById("silk-wallet-iframe")},B=q,U=N,F=R,J=function(e){var n=window.document.createElement("iframe");return n.id=F,n.src=(e?t.silkWalletAppOrigin2Staging:t.silkWalletAppOrigin2)+"/iframe",console.log("iframe.src: ",n.src),n.style.width="100%",n.style.height="100%",n.style.border="none",n.style.borderRadius="24px",n.style.backgroundColor="transparent",n.style.background="transparent",n.style.padding="0",n.style.margin="0",n},z=function(e,n){var r=function(n){if(n.origin===(e?t.silkWalletAppOrigin2Staging:t.silkWalletAppOrigin2)&&n.data&&"object"==typeof n.data&&"silk-iframe-size"===n.data.type){var r=n.data.height,i=n.data.width;if("number"==typeof r&&"number"==typeof i&&!(r<50||r>2e3)&&!(i<50||i>2e3)&&Number.isFinite(r)&&Number.isFinite(i)){var o=H();o&&(o.style.height=Math.floor(r)+"px",o.style.width=Math.floor(i)+"px")}}};window.addEventListener("message",r),n.__silkCleanup=function(){window.removeEventListener("message",r)}},G=/*#__PURE__*/function(e){function t(t){var n;return(n=e.call(this)||this).isSilk=!0,n.connected=!1,n.config=void 0,n.config=l({},y,t||{}),n}f(t,e);var n=t.prototype;return n.sendToExtension=function(e){return new Promise(function(t,n){window.postMessage({type:"FROM_PAGE",request:e},"*"),window.addEventListener("message",function(e){"FROM_EXTENSION"===e.data.type&&(e.data.error?n(e.data.error):t(e.data.result))})})},n.request=function(e){try{var t=this;return Object.keys(r.JSON_RPC_METHOD).includes(e.method)?Promise.resolve(t.sendToExtension(e)).then(function(n){var i;return e.method!==r.JSON_RPC_METHOD.wallet_switchEthereumChain&&e.method!==r.JSON_RPC_METHOD.wallet_addEthereumChain||null!==n||t.emit("chainChanged",null==(i=e.params)||null==(i=i[0])?void 0:i.chainId),n}):Promise.reject({error:"Not implemented ("+e.method+")"})}catch(e){return Promise.reject(e)}},n.enable=function(){try{return Promise.resolve(this.request({method:"eth_requestAccounts"}))}catch(e){return Promise.reject(e)}},n.isConnected=function(){return this.connected},n.login=function(){try{return Promise.resolve(this.sendToExtension({method:r.SILK_METHOD.login}))}catch(e){return Promise.reject(e)}},n.requestSBT=function(e){try{return Promise.resolve(this.sendToExtension({method:r.SILK_METHOD.silk_requestSbt,params:[e]}))}catch(e){return Promise.reject(e)}},n.toggleDarkMode=function(){try{var e=this;return e.config.styles.darkMode=!e.config.styles.darkMode,Promise.resolve(e.sendToExtension({method:r.SILK_METHOD.set_custom_config,params:[e.config]})).then(function(){})}catch(e){return Promise.reject(e)}},n.safe=function(){try{return Promise.resolve(this.sendToExtension({method:r.SILK_METHOD.safe}))}catch(e){return Promise.reject(e)}},t}(n.EventEmitter);function V(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}var Y=/*#__PURE__*/function(){function e(e,t){var i,o=this,a=this;void 0===t&&(t={}),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._chains=["sui:mainnet","sui:testnet","sui:devnet"],this.walletMessageManager=void 0,this.uiMessageManager=void 0,this.internalEventEmitter=new n.EventEmitter,this.changeListeners=new Set;var s=null!=(i=t.useStaging)&&i;this.walletMessageManager=new T(e,s),this.uiMessageManager=new v,t.referralCode&&this.walletMessageManager.pingIframe().then(function(){a.postRequestAndWait({method:r.SILK_METHOD.set_points_referral_code,params:[t.referralCode],interactionRequired:!1}).catch(function(e){return console.error("Error setting referral code:",e)})}),t.project&&this.walletMessageManager.pingIframe().then(function(){a.postRequestAndWait({method:r.SILK_METHOD.set_project,params:[t.project,window.location.origin],interactionRequired:!1}).catch(function(e){return console.error("Error setting project:",e)})}),t.config&&this.walletMessageManager.pingIframe().then(function(){a.postRequestAndWait({method:r.SILK_METHOD.set_custom_config,params:[t.config],interactionRequired:!1}).catch(function(e){return console.error("Error setting custom config:",e)})}),this.walletMessageManager.addListener({handleResponse:function(e){a.internalEventEmitter.emit(e.id,e)},handleRequest:function(e){e.method===r.SILK_METHOD.show_modal?a.uiMessageManager.emit(exports.UI_EVENT_NAMES.show_modal):e.method===r.SILK_METHOD.hide_modal&&a.uiMessageManager.emit(exports.UI_EVENT_NAMES.hide_modal)},onAccountChanged:function(e){try{var t=V(function(){return Promise.resolve(o.refreshAccounts()).then(function(e){o.notifyChange({accounts:e.accounts})})},function(e){console.error("Failed to refresh Sui accounts:",e),o._accounts=[],o.notifyChange({accounts:[]})});return Promise.resolve(t&&t.then?t.then(function(){}):void 0)}catch(e){return Promise.reject(e)}}})}var t,i,o=e.prototype;return o.refreshAccounts=function(){try{var e=this;return Promise.resolve(V(function(){return Promise.resolve(e.walletMessageManager.pingIframe()).then(function(){return Promise.resolve(e.postRequestAndWait({method:"sui_connect",params:[{silent:!0}],interactionRequired:!1})).then(function(t){var n;if(t.error)return e._accounts=[],{accounts:[]};var r=(null==(n=t.data)?void 0:n.accounts)||[];return e._accounts=r,{accounts:e._accounts}})})},function(){return e._accounts=[],{accounts:[]}}))}catch(e){return Promise.reject(e)}},o.connect=function(e){try{var t=this;return Promise.resolve(t.walletMessageManager.pingIframe()).then(function(){return Promise.resolve(t.postRequestAndWait({method:"sui_connect",params:[e||{}],interactionRequired:!(null!=e&&e.silent)})).then(function(e){var n;if(e.error)throw new Error(e.error.message||"Failed to connect");var r=(null==(n=e.data)?void 0:n.accounts)||[];return t._accounts=r,t.notifyChange({accounts:t._accounts}),{accounts:t._accounts}})})}catch(e){return Promise.reject(e)}},o.disconnect=function(){try{var e=this;return Promise.resolve(e.walletMessageManager.pingIframe()).then(function(){return Promise.resolve(e.postRequestAndWait({method:"sui_disconnect",params:[],interactionRequired:!1})).then(function(){e._accounts=[],e.notifyChange({accounts:[]})})})}catch(e){return Promise.reject(e)}},o.signPersonalMessage=function(e){try{var t=this;return Promise.resolve(t.walletMessageManager.pingIframe()).then(function(){var n=e.account.address;if(!t._accounts.some(function(e){return e.address===n}))throw new Error("Account "+n+" is not connected");return Promise.resolve(t.postRequestAndWait({method:"sui_signPersonalMessage",params:[{message:Array.from(e.message),account:n,chain:e.chain}],interactionRequired:!0})).then(function(e){if(e.error)throw new Error(e.error.message||"Failed to sign message");return{bytes:e.data.bytes,signature:e.data.signature}})})}catch(e){return Promise.reject(e)}},o.extractTransferAddresses=function(e){return Promise.resolve(V(function(){return Promise.resolve(Promise.resolve().then(function(){/*#__PURE__*/return s(require("@mysten/sui/transactions"))})).then(function(t){for(var n,r=t.Transaction.from(e).getData(),i=[],o=function(e){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(t)return(t=t.call(e)).next.bind(t);if(Array.isArray(e)||(t=function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(e))){t&&(e=t);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(r.commands);!(n=o()).done;){var a=n.value;if("TransferObjects"===a.$kind){var s=a.TransferObjects.address;if("Input"===s.$kind){var u=r.inputs[s.Input];if(u&&"Pure"===u.$kind){var l=Uint8Array.from(atob(u.Pure.bytes),function(e){return e.charCodeAt(0)});if(32===l.length){var d="0x"+Array.from(l).map(function(e){return e.toString(16).padStart(2,"0")}).join("");i.push(d)}}}}}return i})},function(){return[]}))},o.resolveTransactionBytes=function(e,t){void 0===t&&(t="sui:mainnet");try{var n;if(e instanceof Uint8Array)return Promise.resolve(e);if(Array.isArray(e))return Promise.resolve(new Uint8Array(e));if("string"!=typeof e){if(e&&"object"==typeof e){var r=function(t){var r;if(n)return t;function i(t){var n;if(r)return t;function i(t){if(n)return t;if("function"==typeof e.getData)try{var r=e.getData();if(r instanceof Uint8Array)return r}catch(e){console.warn("[SuiWallet] getData() failed:",e)}throw new Error("Unsupported transaction format. Keys: "+Object.keys(e).join(", "))}var o=function(){if("function"==typeof e.toJSON)return V(function(){return Promise.resolve(e.toJSON()).then(function(e){if("string"==typeof e)try{var t=Uint8Array.from(atob(e),function(e){return e.charCodeAt(0)});return n=1,t}catch(t){try{var r=JSON.parse(e);if(r.bytes&&"string"==typeof r.bytes){var i=Uint8Array.from(atob(r.bytes),function(e){return e.charCodeAt(0)});return n=1,i}}catch(e){}}})},function(e){console.warn("[SuiWallet] toJSON() failed:",e)})}();return o&&o.then?o.then(i):i(o)}var o=function(){if("function"==typeof e.serialize)return V(function(){return Promise.resolve(e.serialize()).then(function(e){if("string"==typeof e){var t=Uint8Array.from(atob(e),function(e){return e.charCodeAt(0)});return r=1,t}if(e instanceof Uint8Array)return r=1,e})},function(e){console.warn("[SuiWallet] serialize() failed:",e)})}();return o&&o.then?o.then(i):i(o)},i=function(){if("function"==typeof e.build)return V(function(){return Promise.resolve(Promise.resolve().then(function(){/*#__PURE__*/return s(require("@mysten/sui/client"))})).then(function(r){var i="mainnet";"sui:testnet"===t?i="testnet":"sui:devnet"===t?i="devnet":"sui:localnet"===t&&(i="localnet");var o=new(0,r.SuiClient)({url:(0,r.getFullnodeUrl)(i)});return Promise.resolve(e.build({client:o})).then(function(e){return n=1,e})})},function(e){throw console.warn("[SuiWallet] Failed to build transaction object:",e),new Error("Failed to build transaction: "+(e instanceof Error?e.message:String(e)))})}();return Promise.resolve(i&&i.then?i.then(r):r(i))}throw new Error("Unsupported transaction format: "+typeof e+". Please pass Uint8Array bytes or a Transaction object.")}try{return Promise.resolve(Uint8Array.from(atob(e),function(e){return e.charCodeAt(0)}))}catch(e){throw new Error("Transaction string must be base64 encoded bytes. If you have a serialized transaction JSON, please build it to bytes first.")}}catch(e){return Promise.reject(e)}},o.signTransaction=function(e){try{var t=this;return Promise.resolve(t.walletMessageManager.pingIframe()).then(function(){var n=e.account.address;if(!t._accounts.some(function(e){return e.address===n}))throw new Error("Account "+n+" is not connected");return Promise.resolve(t.resolveTransactionBytes(e.transaction,e.chain)).then(function(r){return Promise.resolve(t.postRequestAndWait({method:"sui_signTransaction",params:[{transaction:Array.from(r),account:n,chain:e.chain}],interactionRequired:!0})).then(function(e){if(e.error)throw new Error(e.error.message||"Failed to sign transaction");return{bytes:e.data.bytes,signature:e.data.signature}})})})}catch(e){return Promise.reject(e)}},o.signAndExecuteTransaction=function(e){try{var t=this;return Promise.resolve(t.walletMessageManager.pingIframe()).then(function(){var n=e.account.address;if(!t._accounts.some(function(e){return e.address===n}))throw new Error("Account "+n+" is not connected");return Promise.resolve(t.resolveTransactionBytes(e.transaction,e.chain)).then(function(r){return Promise.resolve(t.extractTransferAddresses(r)).then(function(i){return Promise.resolve(t.postRequestAndWait({method:"sui_signAndExecuteTransaction",params:[{transaction:Array.from(r),account:n,chain:e.chain,options:e.options,requestType:e.requestType,toAddresses:i.length>0?i:void 0}],interactionRequired:!0})).then(function(e){if(e.error)throw new Error(e.error.message||"Failed to sign and execute transaction");return e.data})})})})}catch(e){return Promise.reject(e)}},o.switchChain=function(e){try{var t=this;return Promise.resolve(t.walletMessageManager.pingIframe()).then(function(){if(!t._chains.includes(e.chain))throw new Error("Chain "+e.chain+" is not supported");return Promise.resolve(t.postRequestAndWait({method:"sui_switchChain",params:[e],interactionRequired:!1})).then(function(e){if(e.error)throw new Error(e.error.message||"Failed to switch chain");t.notifyChange({chains:t._chains,accounts:t._accounts})})})}catch(e){return Promise.reject(e)}},o.on=function(e,t){var n=this;return"change"===e?(this.changeListeners.add(t),function(){n.changeListeners.delete(t)}):function(){}},o.signTransactionBlock=function(e){try{return Promise.resolve(this.signTransaction({transaction:e.transactionBlock,account:e.account,chain:e.chain}))}catch(e){return Promise.reject(e)}},o.signAndExecuteTransactionBlock=function(e){try{return Promise.resolve(this.signAndExecuteTransaction({transaction:e.transactionBlock,account:e.account,chain:e.chain,options:e.options,requestType:e.requestType}))}catch(e){return Promise.reject(e)}},o.requestPermissionToken=function(e){try{var t=this;return Promise.resolve(t.walletMessageManager.pingIframe()).then(function(){return Promise.resolve(t.postRequestAndWait({method:r.SILK_METHOD.waap_requestPermissionToken,params:[e],interactionRequired:!0})).then(function(e){if(e.error)throw new Error(e.error.message||"Failed to request permission token");return e.data})})}catch(e){return Promise.reject(e)}},o.requestEmail=function(){try{var e=this;return Promise.resolve(e.walletMessageManager.pingIframe()).then(function(){return Promise.resolve(e.postRequestAndWait({method:r.SILK_METHOD.silk_requestEmail,params:[],interactionRequired:!0})).then(function(e){if(e.error)throw new Error(e.error.message||"Failed to request email");return e.data})})}catch(e){return Promise.reject(e)}},o.postRequestAndWait=function(e){try{var t=this;return Promise.resolve(t.walletMessageManager.postSilkRequest({method:e.method,params:e.params,interactionRequired:e.interactionRequired})).then(function(e){return new Promise(function(n){t.internalEventEmitter.once(e,function(e){n(e)})})})}catch(e){return Promise.reject(e)}},o.notifyChange=function(e){Array.from(this.changeListeners).forEach(function(t){t(e)})},t=e,(i=[{key:"chains",get:function(){return this._chains}},{key:"accounts",get:function(){return this._accounts}},{key:"ui",get:function(){return this.uiMessageManager}},{key:"features",get:function(){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)}}}}])&&function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,g(r.key),r)}}(t.prototype,i),Object.defineProperty(t,"prototype",{writable:!1}),e}(),Q="waap-wallet-iframe-container",X="waap-wallet-iframe",Z=function(){return document.getElementById(Q)||document.getElementById("silk-wallet-iframe-container")},$="waap-wallet-iframe-wrapper";Object.defineProperty(exports,"rpcMethodRequiresUI",{enumerable:!0,get:function(){return t.rpcMethodRequiresUI}}),Object.defineProperty(exports,"SILK_METHOD",{enumerable:!0,get:function(){return r.SILK_METHOD}}),Object.defineProperty(exports,"WAAP_METHOD",{enumerable:!0,get:function(){return r.SILK_METHOD}}),exports.EthereumProvider=O,exports.EthereumProviderExtension=G,exports.SilkWalletConnect=_,exports.UIMessageManager=v,exports.WaaPSuiWallet=Y,exports.WaaPWalletConnect=_,exports.WalletMessageManager=T,exports.handleWalletRequestAndResponse=w,exports.initWaaP=function(e){var t;void 0===e&&(e={}),t=!!e.useStaging,L()?function(e){var t=W();if(!t)throw new Error("WaaP component not found in DOM");if(!K()){var n=window.document.createElement("div");n.id=U,n.style.position="relative",n.style.display="flex",n.style.alignItems="center",n.style.justifyContent="center",n.style.padding="0",n.style.margin="0",n.style.height="600px",n.style.width="380px";var r=J(e);z(e,r),setTimeout(function(){var e=H();e&&(e.style.height="600px",e.style.width="380px")},100),n.appendChild(r),t.appendChild(n)}}(t):function(e){if(!D()){var t=window.document.createElement("div");t.id=B,t.style.position="fixed",t.style.top="0",t.style.left="0",t.style.right="0",t.style.bottom="0",t.style.width="100%",t.style.height="100%",t.style.display="flex",t.style.alignItems="center",t.style.justifyContent="center",t.style.backgroundColor="rgba(0, 0, 0, 0.5)",t.style.zIndex="9999999999",t.style.display="none";var n=window.document.createElement("div");n.id=U,n.style.position="relative",n.style.display="flex",n.style.alignItems="center",n.style.justifyContent="center",n.style.padding="0",n.style.margin="0",n.style.height="600px",n.style.width="380px",t.appendChild(n);var r=J(e);z(e,r),setTimeout(function(){var e=H();e&&(e.style.height="600px",e.style.width="380px")},100),n.appendChild(r),window.document.body.appendChild(t)}}(t);var n=K();if(!n)throw new Error("WaaP iframe does not exist on page");var r=L();e.walletConnectProjectId&&_.setProjectId(e.walletConnectProjectId);var i=e.referralCode,o=e.config,a=e.project,s=e.asyncTxs,c=e.asyncSigning;c&&!s&&console.warn("[WaaP SDK] `asyncSigning` is deprecated. Use `asyncTxs` instead.");var u=new O(n.contentWindow,i,o||{},a||{},e.useStaging,s||c||!1,!!c&&!s),l=r?"component":"modal";return u.uiMessageManager.on(exports.UI_EVENT_NAMES.show_modal,function(){var e=L(),t=e?"component":"modal",n=H();if(t!==l&&n)if(l=t,e){var r=W();r&&r.appendChild(n)}else{var i=D();i||((i=window.document.createElement("div")).id=B,i.style.position="fixed",i.style.top="0",i.style.left="0",i.style.right="0",i.style.bottom="0",i.style.width="100%",i.style.height="100%",i.style.display="flex",i.style.alignItems="center",i.style.justifyContent="center",i.style.backgroundColor="rgba(0, 0, 0, 0.5)",i.style.zIndex="9999999999",window.document.body.appendChild(i)),i.appendChild(n)}var o=D();e&&n?n.style.display="flex":o&&(o.style.display="flex")}),u.uiMessageManager.on(exports.UI_EVENT_NAMES.hide_modal,function(){var e=L(),t=H(),n=D();e&&t?t.style.display="none":n&&(n.style.display="none")}),window.silk=u,window.waap=u,u},exports.initWaaPSui=function(e){var n;void 0===e&&(e={}),function(e){if(!Z()){var n=document.createElement("div");n.id=Q,n.style.cssText="\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n display: none;\n align-items: center;\n justify-content: center;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 9999999999;\n ";var r=document.createElement("div");r.id=$,r.style.cssText="\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n margin: 0;\n height: 600px;\n width: 380px;\n ",n.appendChild(r);var i=document.createElement("iframe");i.id=X,i.src=(e?t.silkWalletAppOrigin2Staging:t.silkWalletAppOrigin2)+"/iframe",i.style.cssText="\n width: 100%;\n height: 100%;\n border: none;\n border-radius: 24px;\n background: transparent;\n ",r.appendChild(i),function(e){window.addEventListener("message",function(n){if(n.origin===(e?t.silkWalletAppOrigin2Staging:t.silkWalletAppOrigin2)&&n.data&&"object"==typeof n.data&&"silk-iframe-size"===n.data.type){var r=n.data.height,i=n.data.width;if("number"==typeof r&&"number"==typeof i&&!(r<50||r>2e3)&&!(i<50||i>2e3)&&Number.isFinite(r)&&Number.isFinite(i)){var o=document.getElementById($)||document.getElementById("silk-wallet-iframe-wrapper");o&&(o.style.height=Math.floor(r)+"px",o.style.width=Math.floor(i)+"px")}}})}(e),document.body.appendChild(n)}}(null!=(n=e.useStaging)&&n);var r=Z(),i=document.getElementById(X)||document.getElementById("silk-wallet-iframe");if(!r||!i)throw new Error("Failed to create WaaP iframe");var o=new Y(i.contentWindow,e);return o.ui.on(exports.UI_EVENT_NAMES.show_modal,function(){r.style.display="flex",document.querySelectorAll('[data-dapp-kit][class*="overlay"]').forEach(function(e){e.style.display="none"})}),o.ui.on(exports.UI_EVENT_NAMES.hide_modal,function(){r.style.display="none",document.querySelectorAll('[data-dapp-kit][class*="overlay"]').forEach(function(e){e.style.display=""})}),o},exports.registerWaaPSuiWallet=function(e,t){void 0===t&&(t={});var n=new Y(e,t);return o.registerWallet(n),n},exports.useWaapTransaction=function(e){var t=a.useState(new Map),n=t[0],r=t[1],i=a.useRef(e);a.useEffect(function(){i.current=e},[e]),a.useEffect(function(){var e=window.waap||window.silk;if(e){var t=function(e){var t;r(function(t){var n=new Map(t);return n.set(e.txHash,{status:"signed",txHash:e.txHash,pendingTxId:e.txHash,signature:e.signature,serializedTx:e.serializedTx}),n}),null==(t=i.current)||null==t.onSigned||t.onSigned(e)},n=function(e){var t;r(function(t){var n=new Map(t),r=n.get(e.txHash);return r&&n.set(e.txHash,l({},r,{status:"tx_pending"})),n}),null==(t=i.current)||null==t.onTxPending||t.onTxPending(e)},o=function(e){var t;r(function(t){var n=new Map(t),r=n.get(e.txHash);return r&&n.set(e.txHash,l({},r,{status:"confirmed",receipt:e.receipt})),n}),null==(t=i.current)||null==t.onConfirmed||t.onConfirmed(e)},a=function(e){var t;r(function(t){var n=new Map(t),r=n.get(e.txHash);return r&&n.set(e.txHash,l({},r,{status:"failed",error:e.error,stage:e.stage})),n}),null==(t=i.current)||null==t.onFailed||t.onFailed(e)};return e.on("waap_sign_complete",t),e.on("waap_tx_pending",n),e.on("waap_tx_confirmed",o),e.on("waap_tx_failed",a),function(){null==e.removeListener||e.removeListener("waap_sign_complete",t),null==e.removeListener||e.removeListener("waap_tx_pending",n),null==e.removeListener||e.removeListener("waap_tx_confirmed",o),null==e.removeListener||e.removeListener("waap_tx_failed",a)}}console.warn("[useWaapTransaction] WaaP provider not found. Make sure initWaaP() was called.")},[]);var o=a.useCallback(function(e){try{var t=window.waap||window.silk;if(!t)throw new Error("WaaP provider not found");return Promise.resolve(t.request({method:"eth_sendTransaction",params:e}))}catch(e){return Promise.reject(e)}},[]),s=a.useCallback(function(e){try{var t=window.waap||window.silk;if(!t)throw new Error("WaaP provider not found");return Promise.resolve(t.request({method:"eth_signTransaction",params:e}))}catch(e){return Promise.reject(e)}},[]),c=Array.from(n.values()).some(function(e){return"signed"===e.status||"tx_pending"===e.status});return{sendTransaction:o,signTransaction:s,pendingTransactions:n,isAnyPending:c}};
2
- //# sourceMappingURL=index.js.map
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./esm-D5fDQenf.js"),t=require("./asyncSigning-B0KrmKk7.js"),n=require("./evm-Ch-aWWat.js"),r=require("./ui-16QpbEyG.js"),i=require("./WalletConnect-G-lbqknM.js"),a=require("./register-4Afr2Jx8.js"),o=require("./register-ozKwGWOb.js"),s=require("./useWaapAuth-Z_ONicYr.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})}};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.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 ADDED
@@ -0,0 +1 @@
1
+ import{r as e,t}from"./esm-B4jz8Emb.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 p,r as m,s as h,w as g,x as _}from"./evm-DHVrAmEw.mjs";import{a as v,c as y,i as b,n as x,o as S,r as C,s as w,t as T}from"./ui-BAYRtDQg.mjs";import{t as E}from"./WalletConnect-Deg7_JmH.mjs";import{t as D}from"./register-DIZnKDHF.mjs";import{t as O}from"./register-CNgjA0yl.mjs";import{n as k,t as A}from"./useWaapAuth-DHIeb4yc.mjs";import{EventEmitter as j}from"events";var M=class extends j{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})}};export{m as EthereumProvider,M as EthereumProviderExtension,e as SILK_METHOD,e as WAAP_METHOD,E as SilkWalletConnect,E as WaaPWalletConnect,o as UIMessageManager,p as UI_EVENT_NAMES,n as WAAP_EVENTS,r as WaaP,g as WaaPError,w as WaaPSolanaProvider,y as WaaPSuiWallet,l as WalletMessageManager,c as getWaaPIframeDiagnostics,s as handleWalletRequestAndResponse,T as initWaaP,x as initWaaPMulti,C as initWaaPSolana,b as initWaaPSquid,v as initWaaPSui,S as initWaaPTap,a as normalizeWaaPError,h as preloadWaaPOnIdle,O as registerWaaPSolanaWallet,D as registerWaaPSuiWallet,_ as resolveWalletOrigin,d as rpcMethodRequiresUI,f as subscribeWaaPIframeLifecycle,A as useWaapAuth,k as useWaapTransaction,i as validateWalletOrigin};
@@ -0,0 +1,21 @@
1
+ import { M as WaaPSessionProtection, b as CustomConfig, x as ProjectConfig } from "./types-DexmJNke.js";
2
+ import { EventEmitter } from "events";
3
+ //#region src/lib/UIMessageManager.d.ts
4
+ declare enum UI_EVENT_NAMES {
5
+ show_modal = "show_modal",
6
+ hide_modal = "hide_modal"
7
+ }
8
+ declare class UIMessageManager extends EventEmitter {
9
+ constructor();
10
+ }
11
+ //#endregion
12
+ //#region src/lib/initializerContext.d.ts
13
+ type WaaPInitializerOptions = {
14
+ referralCode?: string;
15
+ project?: ProjectConfig;
16
+ config?: CustomConfig;
17
+ chains?: readonly ('evm' | 'sui' | 'solana')[];
18
+ sessionProtection?: WaaPSessionProtection;
19
+ };
20
+ //#endregion
21
+ export { UIMessageManager as n, UI_EVENT_NAMES as r, WaaPInitializerOptions as t };
@@ -0,0 +1,21 @@
1
+ import { M as WaaPSessionProtection, b as CustomConfig, x as ProjectConfig } from "./types-DexmJNke.mjs";
2
+ import { EventEmitter } from "events";
3
+ //#region src/lib/UIMessageManager.d.ts
4
+ declare enum UI_EVENT_NAMES {
5
+ show_modal = "show_modal",
6
+ hide_modal = "hide_modal"
7
+ }
8
+ declare class UIMessageManager extends EventEmitter {
9
+ constructor();
10
+ }
11
+ //#endregion
12
+ //#region src/lib/initializerContext.d.ts
13
+ type WaaPInitializerOptions = {
14
+ referralCode?: string;
15
+ project?: ProjectConfig;
16
+ config?: CustomConfig;
17
+ chains?: readonly ('evm' | 'sui' | 'solana')[];
18
+ sessionProtection?: WaaPSessionProtection;
19
+ };
20
+ //#endregion
21
+ export { UIMessageManager as n, UI_EVENT_NAMES as r, WaaPInitializerOptions as t };
@@ -0,0 +1,2 @@
1
+ import { a as useWaapTransaction, i as UseWaapTransactionReturn, n as TxState, r as UseWaapTransactionOptions, t as useWaapAuth } from "./useWaapAuth-C5I7QqyW.mjs";
2
+ export { type TxState, type UseWaapTransactionOptions, type UseWaapTransactionReturn, useWaapAuth, useWaapTransaction };
@@ -0,0 +1,2 @@
1
+ import { a as useWaapTransaction, i as UseWaapTransactionReturn, n as TxState, r as UseWaapTransactionOptions, t as useWaapAuth } from "./useWaapAuth-BrqAhAn2.js";
2
+ export { type TxState, type UseWaapTransactionOptions, type UseWaapTransactionReturn, useWaapAuth, useWaapTransaction };
package/dist/react.js ADDED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./useWaapAuth-Z_ONicYr.js");exports.useWaapAuth=e.t,exports.useWaapTransaction=e.n;
package/dist/react.mjs ADDED
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./useWaapAuth-DHIeb4yc.mjs";export{t as useWaapAuth,e as useWaapTransaction};
@@ -0,0 +1 @@
1
+ const e=require("./ui-16QpbEyG.js");let t=require("@mysten/wallet-standard");function n(n,r={}){let i=new e.c(n,r);return(0,t.registerWallet)(i),i}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return n}});
@@ -0,0 +1,107 @@
1
+ import { C as RequestPermissionTokenResult, S as RequestPermissionTokenParams, a as PermissionTokenQuery, d as WaaPAccountStatus, i as PermissionTokenClearResult, o as PermissionTokenStatus, p as WaaPSessionExtension, r as LoginResponse, u as WaaPAccountMode } from "./types-DexmJNke.js";
2
+ import { A as SolanaSignTransactionInput, B as WaaPSolanaWalletFeatures, C as SolanaChain, D as SolanaSignAndSendTransactionOutput, E as SolanaSignAndSendTransactionInput, O as SolanaSignMessageInput, R as SolanaWalletEventListener, S as SolanaAccount, T as SolanaConnectOutput, j as SolanaSignTransactionOutput, k as SolanaSignMessageOutput, w as SolanaConnectInput, x as InitWaaPSolanaOptions, z as WaaPSolanaProviderInterface } from "./index-CMSufeMa.js";
3
+ import { n as UIMessageManager, t as WaaPInitializerOptions } from "./initializerContext-0oKHzvQG.js";
4
+ //#region src/lib/solana/SolanaProvider.d.ts
5
+ declare class WaaPSolanaProvider implements WaaPSolanaProviderInterface {
6
+ /**
7
+ * Last conversion state the wallet actually reported. The synchronous status
8
+ * accessor cannot await the iframe, and previously answered `complete` for any
9
+ * logged-in user — a definite claim it had no basis for. `pending` here means
10
+ * "not yet resolved", which is the truth until `getCanonicalAccountStatus`
11
+ * runs.
12
+ */
13
+ private lastKnownConversion;
14
+ readonly name = "WaaP";
15
+ readonly version = "1.0.0";
16
+ readonly icon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCI+PHJlY3Qgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiByeD0iMTYiIGZpbGw9IiMxMTE4MmMiLz48cGF0aCBkPSJNMTYgNDhoMzJMMzIgMTZ6IiBmaWxsPSIjN2NkNGZmIi8+PC9zdmc+";
17
+ private _accounts;
18
+ private accountMode;
19
+ private loginMethod;
20
+ private _chains;
21
+ private walletMessageManager;
22
+ private uiMessageManager;
23
+ private internalEventEmitter;
24
+ private changeListeners;
25
+ private ensureIframe?;
26
+ private iframeMounted;
27
+ private initializerOptions;
28
+ private initializerPromise;
29
+ private initializedIframeWindow;
30
+ constructor(iframeWindow: Window | null, options?: InitWaaPSolanaOptions, ensureIframe?: () => Window | null, initializerOptions?: WaaPInitializerOptions);
31
+ /** Release listeners owned by this Solana facade. */
32
+ destroy(): void;
33
+ private ensureIframeMounted;
34
+ /** Warm the iframe after the host app's LCP without opening wallet UI. */
35
+ preload(): Promise<void>;
36
+ private ensureInitialized;
37
+ get chains(): readonly SolanaChain[];
38
+ get accounts(): readonly SolanaAccount[];
39
+ /**
40
+ * Solana Wallet Standard capabilities. The standard methods are variadic;
41
+ * WaaP handles them sequentially so each request retains its own approval
42
+ * and iframe interaction rather than racing multiple approval dialogs.
43
+ */
44
+ get features(): WaaPSolanaWalletFeatures;
45
+ get ui(): UIMessageManager;
46
+ getAccountStatus(): WaaPAccountStatus;
47
+ get session(): WaaPSessionExtension;
48
+ getCanonicalAccountStatus(): Promise<WaaPAccountStatus>;
49
+ /** @internal Initializers set this once; applications select a mode by initializer. */
50
+ setAccountMode(mode: WaaPAccountMode): void;
51
+ /** @internal Tell the iframe which initializer family owns this facade. */
52
+ selectAccountMode(mode: WaaPAccountMode, options?: WaaPInitializerOptions): Promise<void>;
53
+ /** @internal Shared multichain initializers propagate their EVM login here. */
54
+ setLoginMethod(loginMethod: LoginResponse): void;
55
+ getLoginMethod(): LoginResponse;
56
+ login(): Promise<LoginResponse>;
57
+ logout(): Promise<void>;
58
+ private refreshAccounts;
59
+ /**
60
+ * The iframe posts publicKey as a number[] (postMessage can't carry a
61
+ * Uint8Array reliably across all bridges). Normalize back to Uint8Array.
62
+ */
63
+ private normalizeAccounts;
64
+ connect(input?: SolanaConnectInput): Promise<SolanaConnectOutput>;
65
+ /** Read an existing iframe session without opening the wallet modal. */
66
+ private restoreSession;
67
+ /** Keep the local Wallet Standard facade aligned with the iframe session. */
68
+ private syncLoginMethodFromCanonicalStatus;
69
+ disconnect(): Promise<void>;
70
+ signMessage(input: SolanaSignMessageInput): Promise<SolanaSignMessageOutput>;
71
+ signTransaction(input: SolanaSignTransactionInput): Promise<SolanaSignTransactionOutput>;
72
+ signAndSendTransaction(input: SolanaSignAndSendTransactionInput): Promise<SolanaSignAndSendTransactionOutput>;
73
+ private signStandardMessages;
74
+ private signStandardTransactions;
75
+ private signAndSendStandardTransactions;
76
+ private asSupportedChain;
77
+ private broadcastOptions;
78
+ requestPermissionToken(params: RequestPermissionTokenParams): Promise<RequestPermissionTokenResult>;
79
+ getPermissionTokenStatus(query: PermissionTokenQuery): Promise<PermissionTokenStatus>;
80
+ clearPermissionToken(query: PermissionTokenQuery): Promise<PermissionTokenClearResult>;
81
+ /**
82
+ * Accept either raw bytes or a `@solana/web3.js` (Versioned)Transaction with
83
+ * a `.serialize()` method. Object serialization runs in the dApp context
84
+ * where the tx library is available.
85
+ */
86
+ private resolveTransactionBytes;
87
+ on(event: 'change', listener: SolanaWalletEventListener): () => void;
88
+ on(event: string, listener: (...args: any[]) => void): () => void;
89
+ /**
90
+ * Remove a previously registered `connect` / `accountsChanged` listener.
91
+ * (`change` listeners are removed via the unsubscribe fn returned by `on`.)
92
+ */
93
+ removeListener(event: string, listener: (...args: any[]) => void): void;
94
+ private postRequestAndWait;
95
+ private notifyChange;
96
+ }
97
+ //#endregion
98
+ //#region src/lib/solana/register.d.ts
99
+ /**
100
+ * Register a WaaP Solana Wallet Standard instance for discovery by compatible
101
+ * dapps. `initWaaP({ chain: 'solana' })` is the recommended
102
+ * standalone initializer; use this
103
+ * explicit form when the host application owns Wallet Standard discovery.
104
+ */
105
+ declare function registerWaaPSolanaWallet(iframeWindow: Window, options?: InitWaaPSolanaOptions): WaaPSolanaProviderInterface;
106
+ //#endregion
107
+ export { WaaPSolanaProvider as n, registerWaaPSolanaWallet as t };
@@ -0,0 +1 @@
1
+ import{s as e}from"./ui-BAYRtDQg.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};
@@ -0,0 +1,282 @@
1
+ import { C as RequestPermissionTokenResult, S as RequestPermissionTokenParams, a as PermissionTokenQuery, d as WaaPAccountStatus, i as PermissionTokenClearResult, o as PermissionTokenStatus, p as WaaPSessionExtension, r as LoginResponse, u as WaaPAccountMode } from "./types-DexmJNke.js";
2
+ import { $ as SuiSignTransactionBlockOutput, G as SuiConnectOutput, H as SuiAccount, J as SuiSignAndExecuteTransactionInput, K as SuiSignAndExecuteTransactionBlockInput, Q as SuiSignTransactionBlockInput, U as SuiChain, V as InitWaaPSuiOptions, W as SuiConnectInput, X as SuiSignPersonalMessageInput, Y as SuiSignAndExecuteTransactionOutput, Z as SuiSignPersonalMessageOutput, at as WaaPSuiWalletInterface, ot as WalletIcon, q as SuiSignAndExecuteTransactionBlockOutput, rt as SuiWalletEventListener } from "./index-CMSufeMa.js";
3
+ import { n as UIMessageManager, t as WaaPInitializerOptions } from "./initializerContext-0oKHzvQG.js";
4
+ //#region src/lib/sui/SuiWallet.d.ts
5
+ /**
6
+ * WaaP Sui Wallet implementation.
7
+ *
8
+ * Implements the Sui Wallet Standard to allow dApps to:
9
+ * - Connect/disconnect
10
+ * - Sign personal messages
11
+ * - (Future) Sign and execute transactions
12
+ */
13
+ declare class WaaPSuiWallet implements WaaPSuiWalletInterface {
14
+ /**
15
+ * Last conversion state the wallet actually reported. The synchronous status
16
+ * accessor cannot await the iframe, and previously answered `complete` for any
17
+ * logged-in user — a definite claim it had no basis for. `pending` here means
18
+ * "not yet resolved", which is the truth until `getCanonicalAccountStatus`
19
+ * runs.
20
+ */
21
+ private lastKnownConversion;
22
+ readonly name = "WaaP";
23
+ readonly version = "1.0.0";
24
+ readonly icon: WalletIcon;
25
+ private _accounts;
26
+ private accountMode;
27
+ private loginMethod;
28
+ private _chains;
29
+ private walletMessageManager;
30
+ private uiMessageManager;
31
+ private internalEventEmitter;
32
+ private changeListeners;
33
+ private ensureIframe?;
34
+ private iframeMounted;
35
+ private initializerOptions;
36
+ private initializerPromise;
37
+ private initializedIframeWindow;
38
+ /**
39
+ * Creates a new WaaPSuiWallet instance.
40
+ *
41
+ * @param iframeWindow - The contentWindow of the WaaP iframe
42
+ * @param options - Initialization options
43
+ */
44
+ constructor(iframeWindow: Window | null, options?: InitWaaPSuiOptions, ensureIframe?: () => Window | null, initializerOptions?: WaaPInitializerOptions);
45
+ /** Release listeners owned by this Sui facade. */
46
+ destroy(): void;
47
+ private ensureIframeMounted;
48
+ /** Warm the iframe after the host app's LCP without opening wallet UI. */
49
+ preload(): Promise<void>;
50
+ private ensureInitialized;
51
+ /**
52
+ * Refresh accounts by making a silent connect request.
53
+ * Used internally when account changes are detected.
54
+ */
55
+ private refreshAccounts;
56
+ /**
57
+ * Supported chains.
58
+ */
59
+ get chains(): readonly SuiChain[];
60
+ /**
61
+ * Connected accounts.
62
+ */
63
+ get accounts(): readonly SuiAccount[];
64
+ /**
65
+ * UI message manager for showing/hiding modal.
66
+ */
67
+ get ui(): UIMessageManager;
68
+ getAccountStatus(): WaaPAccountStatus;
69
+ get session(): WaaPSessionExtension;
70
+ getCanonicalAccountStatus(): Promise<WaaPAccountStatus>;
71
+ /** @internal Initializers set this once; applications select a mode by initializer. */
72
+ setAccountMode(mode: WaaPAccountMode): void;
73
+ /** @internal Tell the iframe which initializer family owns this facade. */
74
+ selectAccountMode(mode: WaaPAccountMode, options?: WaaPInitializerOptions): Promise<void>;
75
+ /** @internal Shared multichain initializers propagate their EVM login here. */
76
+ setLoginMethod(loginMethod: LoginResponse): void;
77
+ getLoginMethod(): LoginResponse;
78
+ login(): Promise<LoginResponse>;
79
+ logout(): Promise<void>;
80
+ /**
81
+ * Connect to the wallet.
82
+ */
83
+ connect(input?: SuiConnectInput): Promise<SuiConnectOutput>;
84
+ /** Read an existing iframe session without opening the wallet modal. */
85
+ private restoreSession;
86
+ /** Keep the local Wallet Standard facade aligned with the iframe session. */
87
+ private syncLoginMethodFromCanonicalStatus;
88
+ /**
89
+ * Disconnect from the wallet.
90
+ */
91
+ disconnect(): Promise<void>;
92
+ /**
93
+ * Sign a personal message.
94
+ *
95
+ * @param input - Sign personal message input
96
+ * @returns Signed message result with bytes and signature
97
+ */
98
+ signPersonalMessage(input: SuiSignPersonalMessageInput): Promise<SuiSignPersonalMessageOutput>;
99
+ /**
100
+ * Extract the destination addresses from BCS-serialized Sui transaction bytes.
101
+ *
102
+ * Unlike EVM transactions where `to` is a top-level field, Sui transaction
103
+ * destinations are embedded in BCS-encoded programmable transaction blocks.
104
+ * We deserialize with Transaction.from() and inspect TransferObjects commands.
105
+ *
106
+ * Only TransferObjects destinations are extracted — MoveCall package addresses
107
+ * are not user-facing recipients and should not be validated against a PT's
108
+ * allowedAddresses list.
109
+ *
110
+ * Returns an empty array if no TransferObjects are found or deserialization fails.
111
+ */
112
+ private extractTransferAddresses;
113
+ /**
114
+ * Helper to resolve transaction bytes from various input formats.
115
+ * If the input is a Transaction/TransactionBlock object, it builds it.
116
+ */
117
+ private resolveTransactionBytes;
118
+ /**
119
+ * Sign a transaction.
120
+ *
121
+ * @param input - Sign transaction input with transaction
122
+ * @returns Signed transaction result with bytes and signature
123
+ */
124
+ signTransaction(input: {
125
+ transaction: unknown;
126
+ account: SuiAccount;
127
+ chain?: SuiChain;
128
+ signal?: AbortSignal;
129
+ timeoutMs?: number;
130
+ }): Promise<{
131
+ bytes: string;
132
+ signature: string;
133
+ }>;
134
+ /**
135
+ * Sign and execute a transaction.
136
+ *
137
+ * @param input - Sign and execute transaction input
138
+ */
139
+ signAndExecuteTransaction(input: SuiSignAndExecuteTransactionInput): Promise<SuiSignAndExecuteTransactionOutput>;
140
+ /**
141
+ * Switch the active chain.
142
+ */
143
+ switchChain(input: {
144
+ chain: SuiChain;
145
+ }): Promise<void>;
146
+ /**
147
+ * Subscribe to wallet change events.
148
+ *
149
+ * Supports the Wallet-Standard `change` event, plus EVM-style `connect` /
150
+ * `accountsChanged` events so cross-chain hooks (e.g. `useWaapAuth`) can
151
+ * subscribe to any facade uniformly.
152
+ *
153
+ * @param event - `'change'` | `'connect'` | `'accountsChanged'`
154
+ * @param listener - Event listener callback
155
+ * @returns Unsubscribe function
156
+ */
157
+ on(event: 'change', listener: SuiWalletEventListener): () => void;
158
+ on(event: string, listener: (...args: any[]) => void): () => void;
159
+ /**
160
+ * Remove a previously registered `connect` / `accountsChanged` listener.
161
+ * (`change` listeners are removed via the unsubscribe fn returned by `on`.)
162
+ */
163
+ removeListener(event: string, listener: (...args: any[]) => void): void;
164
+ /**
165
+ * Wallet Standard features property.
166
+ * Required by @mysten/wallet-standard registerWallet.
167
+ */
168
+ get features(): {
169
+ readonly 'standard:connect': {
170
+ readonly version: "1.0.0";
171
+ readonly connect: (input?: SuiConnectInput) => Promise<SuiConnectOutput>;
172
+ };
173
+ readonly 'standard:disconnect': {
174
+ readonly version: "1.0.0";
175
+ readonly disconnect: () => Promise<void>;
176
+ };
177
+ readonly 'standard:events': {
178
+ readonly version: "1.0.0";
179
+ readonly on: {
180
+ (event: "change", listener: SuiWalletEventListener): () => void;
181
+ (event: string, listener: (...args: any[]) => void): () => void;
182
+ };
183
+ };
184
+ readonly 'sui:signPersonalMessage': {
185
+ readonly version: "1.1.0";
186
+ readonly signPersonalMessage: (input: SuiSignPersonalMessageInput) => Promise<SuiSignPersonalMessageOutput>;
187
+ };
188
+ readonly 'sui:signTransaction': {
189
+ readonly version: "2.0.0";
190
+ readonly signTransaction: (input: {
191
+ transaction: unknown;
192
+ account: SuiAccount;
193
+ chain?: SuiChain;
194
+ signal?: AbortSignal;
195
+ timeoutMs?: number;
196
+ }) => Promise<{
197
+ bytes: string;
198
+ signature: string;
199
+ }>;
200
+ };
201
+ readonly 'sui:signAndExecuteTransaction': {
202
+ readonly version: "1.0.0";
203
+ readonly signAndExecuteTransaction: (input: SuiSignAndExecuteTransactionInput) => Promise<SuiSignAndExecuteTransactionOutput>;
204
+ };
205
+ readonly 'sui:signTransactionBlock': {
206
+ readonly version: "2.0.0";
207
+ readonly signTransactionBlock: (input: SuiSignTransactionBlockInput) => Promise<SuiSignTransactionBlockOutput>;
208
+ };
209
+ readonly 'sui:signAndExecuteTransactionBlock': {
210
+ readonly version: "1.0.0";
211
+ readonly signAndExecuteTransactionBlock: (input: SuiSignAndExecuteTransactionBlockInput) => Promise<SuiSignAndExecuteTransactionBlockOutput>;
212
+ };
213
+ readonly 'sui:switchChain': {
214
+ readonly version: "1.0.0";
215
+ readonly switchChain: (input: {
216
+ chain: SuiChain;
217
+ }) => Promise<void>;
218
+ };
219
+ };
220
+ /**
221
+ * Legacy method for signing a transaction block.
222
+ * Maps to signTransaction.
223
+ */
224
+ signTransactionBlock(input: SuiSignTransactionBlockInput): Promise<SuiSignTransactionBlockOutput>;
225
+ /**
226
+ * Legacy method for signing and executing a transaction block.
227
+ * Maps to signAndExecuteTransaction.
228
+ */
229
+ signAndExecuteTransactionBlock(input: SuiSignAndExecuteTransactionBlockInput): Promise<SuiSignAndExecuteTransactionBlockOutput>;
230
+ /**
231
+ * Request a Permission Token from the user.
232
+ * Allows pre-authorised batches of Sui transactions without individual confirmations.
233
+ *
234
+ * @param params - Allowed addresses, chainId (e.g. "sui:mainnet"), spend limit, expiry
235
+ */
236
+ requestPermissionToken(params: RequestPermissionTokenParams): Promise<RequestPermissionTokenResult>;
237
+ getPermissionTokenStatus(query: PermissionTokenQuery): Promise<PermissionTokenStatus>;
238
+ clearPermissionToken(query: PermissionTokenQuery): Promise<PermissionTokenClearResult>;
239
+ /**
240
+ * Request the user's email address.
241
+ *
242
+ * @returns Promise resolving to the user's email address
243
+ */
244
+ requestEmail(): Promise<string>;
245
+ /**
246
+ * Post a request to the iframe and wait for response.
247
+ */
248
+ private postRequestAndWait;
249
+ /**
250
+ * Notify all change listeners.
251
+ */
252
+ private notifyChange;
253
+ }
254
+ //#endregion
255
+ //#region src/lib/sui/register.d.ts
256
+ /**
257
+ * Register WaaP Sui Wallet with the Wallet Standard.
258
+ *
259
+ * This makes the wallet discoverable by dApps using @mysten/dapp-kit.
260
+ * The wallet will appear in the wallet selection UI of any dApp
261
+ * that uses the Sui Wallet Standard.
262
+ *
263
+ * @param iframeWindow - The contentWindow of the WaaP iframe
264
+ * @param options - Initialization options
265
+ * @returns The registered WaaPSuiWallet instance
266
+ *
267
+ * @example
268
+ * ```typescript
269
+ * import { registerWaaPSuiWallet } from '@human.tech/waap-sdk'
270
+ *
271
+ * // Get the iframe element
272
+ * const iframe = document.getElementById('waap-wallet-iframe') as HTMLIFrameElement
273
+ *
274
+ * // Register the wallet (makes it discoverable by dApps)
275
+ * const wallet = registerWaaPSuiWallet(iframe.contentWindow!, { useStaging: false })
276
+ *
277
+ * // The wallet is now available in dapp-kit's wallet list
278
+ * ```
279
+ */
280
+ declare function registerWaaPSuiWallet(iframeWindow: Window, options?: InitWaaPSuiOptions): WaaPSuiWalletInterface;
281
+ //#endregion
282
+ export { WaaPSuiWallet as n, registerWaaPSuiWallet as t };
@@ -0,0 +1 @@
1
+ import{c as e}from"./ui-BAYRtDQg.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};