@frak-labs/nexus-sdk 0.0.13 → 0.0.15

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 (50) hide show
  1. package/README.md +4 -4
  2. package/dist/NexusContext-CSlCNW-G.d.cts +10 -0
  3. package/dist/NexusContext-CSlCNW-G.d.ts +10 -0
  4. package/dist/bundle/bundle.js +21 -0
  5. package/dist/chunk-2LAGZ6S5.js +246 -0
  6. package/dist/chunk-4ADWI2GG.cjs +243 -0
  7. package/dist/chunk-4LT3U3H4.cjs +246 -0
  8. package/dist/{chunk-FF32LTPI.js → chunk-ARQTOP44.js} +13 -197
  9. package/dist/chunk-C25NTD45.cjs +100 -0
  10. package/dist/chunk-DILTMQBI.cjs +51 -0
  11. package/dist/chunk-I47XQDS3.js +100 -0
  12. package/dist/chunk-K4FOGADW.js +51 -0
  13. package/dist/chunk-KEATMEOW.cjs +207 -0
  14. package/dist/chunk-VMNURFPI.js +207 -0
  15. package/dist/{client-B6_BIGc3.d.ts → client-B3Guoe3I.d.ts} +13 -7
  16. package/dist/{client-Oily5ph8.d.cts → client-Of9uIxuI.d.cts} +13 -7
  17. package/dist/core/actions/index.cjs +11 -3
  18. package/dist/core/actions/index.d.cts +33 -9
  19. package/dist/core/actions/index.d.ts +33 -9
  20. package/dist/core/actions/index.js +10 -2
  21. package/dist/core/index.cjs +14 -3
  22. package/dist/core/index.d.cts +84 -5
  23. package/dist/core/index.d.ts +84 -5
  24. package/dist/core/index.js +15 -4
  25. package/dist/core/interactions/index.cjs +3 -5
  26. package/dist/core/interactions/index.d.cts +20 -16
  27. package/dist/core/interactions/index.d.ts +20 -16
  28. package/dist/core/interactions/index.js +4 -6
  29. package/dist/{error-C4Zm5nQe.d.cts → error-Dflr3G5x.d.cts} +1 -1
  30. package/dist/{error-C4Zm5nQe.d.ts → error-Dflr3G5x.d.ts} +1 -1
  31. package/dist/{interaction-D3-M3nBh.d.ts → interaction-BngPoHA0.d.cts} +1 -1
  32. package/dist/{interaction-D3-M3nBh.d.cts → interaction-BngPoHA0.d.ts} +1 -1
  33. package/dist/react/index.cjs +75 -150
  34. package/dist/react/index.d.cts +8 -9
  35. package/dist/react/index.d.ts +8 -9
  36. package/dist/react/index.js +73 -148
  37. package/dist/{sendTransaction-BHqCq_9X.d.ts → sendTransaction-3d8jO9CJ.d.ts} +1 -1
  38. package/dist/{sendTransaction-BKKYEt8p.d.cts → sendTransaction-Cz6FoB9_.d.cts} +1 -1
  39. package/package.json +5 -5
  40. package/dist/chunk-2SGRLI7T.cjs +0 -427
  41. package/dist/chunk-5CFD5FM2.js +0 -86
  42. package/dist/chunk-ETV4XYOV.cjs +0 -7
  43. package/dist/chunk-GUDT2W6I.js +0 -70
  44. package/dist/chunk-IQQTTKJL.cjs +0 -70
  45. package/dist/chunk-PKBMQBKP.js +0 -7
  46. package/dist/chunk-S5FVCA2E.cjs +0 -86
  47. package/dist/index.cjs +0 -1
  48. package/dist/index.d.cts +0 -2
  49. package/dist/index.d.ts +0 -2
  50. package/dist/index.js +0 -0
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # Nexus Wallet SDK
1
+ # Frak Wallet SDK
2
2
 
3
- This SDK help any dApps, or gated content provider, use the [Nexus Wallet](https://nexus.frak.id/) as a regular wallet, with smoother UX for your end-users (pay for his gas fees, check the paywall options, track his consumption etc.)
3
+ This SDK help any dApps, or gated content provider, use the [Frak Wallet](https://wallet.frak.id/) as a regular wallet, with smoother UX for your end-users (pay for his gas fees, check the paywall options, track his consumption etc.)
4
4
 
5
5
  Checkout our documentation for more informations about the usage:
6
6
  - [React client usage](https://docs.frak.id/wallet-sdk/how-to/client-react)
@@ -26,10 +26,10 @@ import {
26
26
  } from "@frak-labs/nexus-sdk/core";
27
27
  import type { NexusClient, NexusWalletSdkConfig } from "@frak-labs/nexus-sdk/core";
28
28
 
29
- // Create the config for the Nexus Wallet SDK
29
+ // Create the config for the Frak Wallet SDK
30
30
  export const nexusConfig: NexusWalletSdkConfig = {
31
31
  // The current url for the wallet sdk
32
- walletUrl: "https://nexus-dev.frak.id",
32
+ walletUrl: "https://wallet-dev.frak.id",
33
33
  // The name of your dapp
34
34
  metadata: {
35
35
  // Your app name
@@ -0,0 +1,10 @@
1
+ import { Address } from 'viem';
2
+
3
+ /**
4
+ * The type of the nexus context
5
+ */
6
+ type NexusContext = Readonly<{
7
+ r: Address;
8
+ }>;
9
+
10
+ export type { NexusContext as N };
@@ -0,0 +1,10 @@
1
+ import { Address } from 'viem';
2
+
3
+ /**
4
+ * The type of the nexus context
5
+ */
6
+ type NexusContext = Readonly<{
7
+ r: Address;
8
+ }>;
9
+
10
+ export type { NexusContext as N };
@@ -0,0 +1,21 @@
1
+ "use strict";var NexusSDK=(()=>{var kr=Object.create;var Ee=Object.defineProperty;var Hr=Object.getOwnPropertyDescriptor;var zr=Object.getOwnPropertyNames;var Lr=Object.getPrototypeOf,$r=Object.prototype.hasOwnProperty;var Mt=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var M=(e,t)=>()=>(e&&(t=e(e=0)),t);var Bt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Nr=(e,t)=>{for(var r in t)Ee(e,r,{get:t[r],enumerable:!0})},kt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of zr(t))!$r.call(e,i)&&i!==r&&Ee(e,i,{get:()=>t[i],enumerable:!(n=Hr(t,i))||n.enumerable});return e};var Se=(e,t,r)=>(r=e!=null?kr(Lr(e)):{},kt(t||!e||!e.__esModule?Ee(r,"default",{value:e,enumerable:!0}):r,e)),Ur=e=>kt(Ee({},"__esModule",{value:!0}),e);var Qe=Bt((fe,Ze)=>{"use strict";(function(e,t){if(typeof fe=="object"&&typeof Ze=="object")Ze.exports=t();else if(typeof define=="function"&&define.amd)define([],t);else{var r=t();for(var n in r)(typeof fe=="object"?fe:e)[n]=r[n]}})(fe,()=>(()=>{"use strict";var e={48:function(r,n,i){var p=this&&this.__awaiter||function(a,b,o,c){return new(o||(o=Promise))(function(I,A){function m(s){try{z(c.next(s))}catch(u){A(u)}}function E(s){try{z(c.throw(s))}catch(u){A(u)}}function z(s){var u;s.done?I(s.value):(u=s.value,u instanceof o?u:new o(function(S){S(u)})).then(m,E)}z((c=c.apply(a,b||[])).next())})},l=this&&this.__generator||function(a,b){var o,c,I,A,m={label:0,sent:function(){if(1&I[0])throw I[1];return I[1]},trys:[],ops:[]};return A={next:E(0),throw:E(1),return:E(2)},typeof Symbol=="function"&&(A[Symbol.iterator]=function(){return this}),A;function E(z){return function(s){return function(u){if(o)throw new TypeError("Generator is already executing.");for(;A&&(A=0,u[0]&&(m=0)),m;)try{if(o=1,c&&(I=2&u[0]?c.return:u[0]?c.throw||((I=c.return)&&I.call(c),0):c.next)&&!(I=I.call(c,u[1])).done)return I;switch(c=0,I&&(u=[2&u[0],I.value]),u[0]){case 0:case 1:I=u;break;case 4:return m.label++,{value:u[1],done:!1};case 5:m.label++,c=u[1],u=[0];continue;case 7:u=m.ops.pop(),m.trys.pop();continue;default:if(!((I=(I=m.trys).length>0&&I[I.length-1])||u[0]!==6&&u[0]!==2)){m=0;continue}if(u[0]===3&&(!I||u[1]>I[0]&&u[1]<I[3])){m.label=u[1];break}if(u[0]===6&&m.label<I[1]){m.label=I[1],I=u;break}if(I&&m.label<I[2]){m.label=I[2],m.ops.push(u);break}I[2]&&m.ops.pop(),m.trys.pop();continue}u=b.call(a,m)}catch(S){u=[6,S],c=0}finally{o=I=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([z,s])}}};Object.defineProperty(n,"__esModule",{value:!0}),n.decompressFromUTF16=n.compressToUTF16=n.decompressFromBase64=n.compressToBase64=void 0;var v=i(304),f=i(134),F=new v.CompressorImpl,y=new f.DecompressorImpl,d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",h={};n.compressToBase64=function(a){return p(this,void 0,void 0,function(){var b;return l(this,function(o){switch(o.label){case 0:return a===null?[2,""]:[4,F.compress(a,6,function(c){return d.charAt(c)})];case 1:switch((b=o.sent()).length%4){default:case 0:return[2,b];case 1:return[2,b+"==="];case 2:return[2,b+"=="];case 3:return[2,b+"="]}return[2]}})})},n.decompressFromBase64=function(a){return p(this,void 0,void 0,function(){return l(this,function(b){switch(b.label){case 0:return a===null?[2,""]:a===""?[2,null]:[4,y.decompress(a.length,32,function(o){return function(c,I){if(!h[c]){h[c]={};for(var A=0;A<c.length;A++)h[c][c.charAt(A)]=A}return h[c][I]}(d,a.charAt(o))})];case 1:return[2,b.sent()]}})})},n.compressToUTF16=function(a){return p(this,void 0,void 0,function(){return l(this,function(b){switch(b.label){case 0:return a===null?[2,""]:[4,F.compress(a,15,function(o){return String.fromCharCode(o+32)})];case 1:return[2,b.sent()+" "]}})})},n.decompressFromUTF16=function(a){return p(this,void 0,void 0,function(){return l(this,function(b){switch(b.label){case 0:return a===null?[2,""]:a===""?[2,null]:[4,y.decompress(a.length,16384,function(o){return a.charCodeAt(o)-32})];case 1:return[2,b.sent()]}})})}},304:function(r,n,i){var p=this&&this.__awaiter||function(y,d,h,a){return new(h||(h=Promise))(function(b,o){function c(m){try{A(a.next(m))}catch(E){o(E)}}function I(m){try{A(a.throw(m))}catch(E){o(E)}}function A(m){var E;m.done?b(m.value):(E=m.value,E instanceof h?E:new h(function(z){z(E)})).then(c,I)}A((a=a.apply(y,d||[])).next())})},l=this&&this.__generator||function(y,d){var h,a,b,o,c={label:0,sent:function(){if(1&b[0])throw b[1];return b[1]},trys:[],ops:[]};return o={next:I(0),throw:I(1),return:I(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function I(A){return function(m){return function(E){if(h)throw new TypeError("Generator is already executing.");for(;o&&(o=0,E[0]&&(c=0)),c;)try{if(h=1,a&&(b=2&E[0]?a.return:E[0]?a.throw||((b=a.return)&&b.call(a),0):a.next)&&!(b=b.call(a,E[1])).done)return b;switch(a=0,b&&(E=[2&E[0],b.value]),E[0]){case 0:case 1:b=E;break;case 4:return c.label++,{value:E[1],done:!1};case 5:c.label++,a=E[1],E=[0];continue;case 7:E=c.ops.pop(),c.trys.pop();continue;default:if(!((b=(b=c.trys).length>0&&b[b.length-1])||E[0]!==6&&E[0]!==2)){c=0;continue}if(E[0]===3&&(!b||E[1]>b[0]&&E[1]<b[3])){c.label=E[1];break}if(E[0]===6&&c.label<b[1]){c.label=b[1],b=E;break}if(b&&c.label<b[2]){c.label=b[2],c.ops.push(E);break}b[2]&&c.ops.pop(),c.trys.pop();continue}E=d.call(y,c)}catch(z){E=[6,z],a=0}finally{h=b=0}if(5&E[0])throw E[1];return{value:E[0]?E[1]:void 0,done:!0}}([A,m])}}};Object.defineProperty(n,"__esModule",{value:!0}),n.CompressorImpl=void 0;var v=i(658),f=[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15],F=function(){function y(){}return y.writeValueToData=function(d,h,a,b,o){if(a%4!=0||d.dataPosition+a>b-1)for(var c=0;c<a;c++)d.dataVal=d.dataVal<<1|1&h,d.dataPosition==b-1?(d.dataPosition=0,d.data.push(o(d.dataVal)),d.dataVal=0):d.dataPosition++,h>>=1;else d.dataVal<<=a,d.dataVal|=function(I,A){for(var m=0,E=0;E<A;++E)m<<=4,m|=f[15&I],I>>=4;return m}(h,a/4),d.dataPosition+=a},y.writeWToDataVal=function(d,h,a){d.dictionaryToCreate.has(d.w)?(d.w.charCodeAt(0)<256?(y.writeValueToData(d,0,d.numBits,h,a),y.writeValueToData(d,d.w.charCodeAt(0),8,h,a)):(y.writeValueToData(d,1,d.numBits,h,a),y.writeValueToData(d,d.w.charCodeAt(0),16,h,a)),d.enlargeIn--,d.enlargeIn==0&&(d.enlargeIn=Math.pow(2,d.numBits),d.numBits++),d.dictionaryToCreate.delete(d.w)):y.writeValueToData(d,d.dictionary.get(d.w),d.numBits,h,a),d.enlargeIn--,d.enlargeIn==0&&(d.enlargeIn=Math.pow(2,d.numBits),d.numBits++)},y.loopIteration=function(d,h,a,b,o){var c=d.charAt(h);o.dictionary.has(c)||(o.dictionary.set(c,o.dictSize++),o.dictionaryToCreate.set(c,!0));var I=o.w+c;o.dictionary.has(I)?o.w=I:(this.writeWToDataVal(o,a,b),o.dictionary.set(I,o.dictSize++),o.w=String(c))},y.prototype.compress=function(d,h,a){var b=this;return new Promise(function(o){return p(b,void 0,void 0,function(){var c,I;return l(this,function(A){switch(A.label){case 0:if(d==null)return o(""),[2];c={data:[],dataPosition:0,dataVal:0,dictionary:new Map,dictionaryToCreate:new Map,dictSize:3,enlargeIn:2,numBits:2,w:""},I=0,A.label=1;case 1:return I<d.length?(y.loopIteration(d,I,h,a,c),I%1e4!=0?[3,3]:[4,(0,v.wait)()]):[3,4];case 2:A.sent(),A.label=3;case 3:return I+=1,[3,1];case 4:return c.w!==""&&y.writeWToDataVal(c,h,a),y.writeValueToData(c,2,c.numBits,h,a),c.dataVal<<=h-c.dataPosition,c.data.push(a(c.dataVal)),o(c.data.join("")),[2]}})})})},y}();n.CompressorImpl=F},134:function(r,n,i){var p=this&&this.__awaiter||function(F,y,d,h){return new(d||(d=Promise))(function(a,b){function o(A){try{I(h.next(A))}catch(m){b(m)}}function c(A){try{I(h.throw(A))}catch(m){b(m)}}function I(A){var m;A.done?a(A.value):(m=A.value,m instanceof d?m:new d(function(E){E(m)})).then(o,c)}I((h=h.apply(F,y||[])).next())})},l=this&&this.__generator||function(F,y){var d,h,a,b,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return b={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function c(I){return function(A){return function(m){if(d)throw new TypeError("Generator is already executing.");for(;b&&(b=0,m[0]&&(o=0)),o;)try{if(d=1,h&&(a=2&m[0]?h.return:m[0]?h.throw||((a=h.return)&&a.call(h),0):h.next)&&!(a=a.call(h,m[1])).done)return a;switch(h=0,a&&(m=[2&m[0],a.value]),m[0]){case 0:case 1:a=m;break;case 4:return o.label++,{value:m[1],done:!1};case 5:o.label++,h=m[1],m=[0];continue;case 7:m=o.ops.pop(),o.trys.pop();continue;default:if(!((a=(a=o.trys).length>0&&a[a.length-1])||m[0]!==6&&m[0]!==2)){o=0;continue}if(m[0]===3&&(!a||m[1]>a[0]&&m[1]<a[3])){o.label=m[1];break}if(m[0]===6&&o.label<a[1]){o.label=a[1],a=m;break}if(a&&o.label<a[2]){o.label=a[2],o.ops.push(m);break}a[2]&&o.ops.pop(),o.trys.pop();continue}m=y.call(F,o)}catch(E){m=[6,E],h=0}finally{d=a=0}if(5&m[0])throw m[1];return{value:m[0]?m[1]:void 0,done:!0}}([I,A])}}};Object.defineProperty(n,"__esModule",{value:!0}),n.DecompressorImpl=void 0;var v=i(658),f=function(){function F(){}return F.prototype.decompress=function(y,d,h){var a=this;return new Promise(function(b){return p(a,void 0,void 0,function(){var o,c,I;return l(this,function(A){switch(A.label){case 0:for(o={bits:0,c:null,dataIndex:1,dataPosition:d,dataVal:h(0),dictionary:new Map,dictSize:4,enlargeIn:4,entry:"",maxPower:Math.pow(2,2),numBits:3,power:1,resb:null,result:[],w:null},c=0;c<3;c+=1)o.dictionary.set(c,c);for(;o.power!=o.maxPower;)o.resb=o.dataVal&o.dataPosition,o.dataPosition>>=1,o.dataPosition==0&&(o.dataPosition=d,o.dataVal=h(o.dataIndex++)),o.bits|=(o.resb>0?1:0)*o.power,o.power<<=1;switch(o.bits){case 0:for(o.bits=0,o.maxPower=Math.pow(2,8),o.power=1;o.power!=o.maxPower;)o.resb=o.dataVal&o.dataPosition,o.dataPosition>>=1,o.dataPosition==0&&(o.dataPosition=d,o.dataVal=h(o.dataIndex++)),o.bits|=(o.resb>0?1:0)*o.power,o.power<<=1;o.c=String.fromCharCode(o.bits);break;case 1:for(o.bits=0,o.maxPower=Math.pow(2,16),o.power=1;o.power!==o.maxPower;)o.resb=o.dataVal&o.dataPosition,o.dataPosition>>=1,o.dataPosition===0&&(o.dataPosition=d,o.dataVal=h(o.dataIndex++)),o.bits|=(o.resb>0?1:0)*o.power,o.power<<=1;o.c=String.fromCharCode(o.bits);break;case 2:return b(""),[2]}o.dictionary[3]=o.c,o.w=o.c,o.result.push(o.c),I=1,A.label=1;case 1:return I%2e4!=0?[3,3]:[4,(0,v.wait)()];case 2:A.sent(),A.label=3;case 3:if(o.dataIndex>y)return b(""),[2];for(o.bits=0,o.maxPower=Math.pow(2,o.numBits),o.power=1;o.power!=o.maxPower;)o.resb=o.dataVal&o.dataPosition,o.dataPosition>>=1,o.dataPosition==0&&(o.dataPosition=d,o.dataVal=h(o.dataIndex++)),o.bits|=(o.resb>0?1:0)*o.power,o.power<<=1;switch(o.c=o.bits){case 0:for(o.bits=0,o.maxPower=Math.pow(2,8),o.power=1;o.power!==o.maxPower;)o.resb=o.dataVal&o.dataPosition,o.dataPosition>>=1,o.dataPosition==0&&(o.dataPosition=d,o.dataVal=h(o.dataIndex++)),o.bits|=(o.resb>0?1:0)*o.power,o.power<<=1;o.dictionary[o.dictSize++]=String.fromCharCode(o.bits),o.c=o.dictSize-1,o.enlargeIn--;break;case 1:for(o.bits=0,o.maxPower=Math.pow(2,16),o.power=1;o.power!==o.maxPower;)o.resb=o.dataVal&o.dataPosition,o.dataPosition>>=1,o.dataPosition==0&&(o.dataPosition=d,o.dataVal=h(o.dataIndex++)),o.bits|=(o.resb>0?1:0)*o.power,o.power<<=1;o.dictionary[o.dictSize++]=String.fromCharCode(o.bits),o.c=o.dictSize-1,o.enlargeIn--;break;case 2:return b(o.result.join("")),[2]}if(o.enlargeIn==0&&(o.enlargeIn=Math.pow(2,o.numBits),o.numBits++),o.dictionary[o.c])o.entry=o.dictionary[o.c];else{if(o.c!==o.dictSize)return b(null),[2];o.entry=o.w+o.w.charAt(0)}return o.result.push(o.entry),o.dictionary[o.dictSize++]=o.w+o.entry.charAt(0),o.enlargeIn--,o.w=o.entry,o.enlargeIn==0&&(o.enlargeIn=Math.pow(2,o.numBits),o.numBits++),I++,[3,1];case 4:return[2]}})})})},F}();n.DecompressorImpl=f},658:function(r,n){var i=this&&this.__awaiter||function(l,v,f,F){return new(f||(f=Promise))(function(y,d){function h(o){try{b(F.next(o))}catch(c){d(c)}}function a(o){try{b(F.throw(o))}catch(c){d(c)}}function b(o){var c;o.done?y(o.value):(c=o.value,c instanceof f?c:new f(function(I){I(c)})).then(h,a)}b((F=F.apply(l,v||[])).next())})},p=this&&this.__generator||function(l,v){var f,F,y,d,h={label:0,sent:function(){if(1&y[0])throw y[1];return y[1]},trys:[],ops:[]};return d={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(d[Symbol.iterator]=function(){return this}),d;function a(b){return function(o){return function(c){if(f)throw new TypeError("Generator is already executing.");for(;d&&(d=0,c[0]&&(h=0)),h;)try{if(f=1,F&&(y=2&c[0]?F.return:c[0]?F.throw||((y=F.return)&&y.call(F),0):F.next)&&!(y=y.call(F,c[1])).done)return y;switch(F=0,y&&(c=[2&c[0],y.value]),c[0]){case 0:case 1:y=c;break;case 4:return h.label++,{value:c[1],done:!1};case 5:h.label++,F=c[1],c=[0];continue;case 7:c=h.ops.pop(),h.trys.pop();continue;default:if(!((y=(y=h.trys).length>0&&y[y.length-1])||c[0]!==6&&c[0]!==2)){h=0;continue}if(c[0]===3&&(!y||c[1]>y[0]&&c[1]<y[3])){h.label=c[1];break}if(c[0]===6&&h.label<y[1]){h.label=y[1],y=c;break}if(y&&h.label<y[2]){h.label=y[2],h.ops.push(c);break}y[2]&&h.ops.pop(),h.trys.pop();continue}c=v.call(l,h)}catch(I){c=[6,I],F=0}finally{f=y=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([b,o])}}};Object.defineProperty(n,"__esModule",{value:!0}),n.wait=void 0,n.wait=function(){return i(this,void 0,void 0,function(){return p(this,function(l){return[2,new Promise(function(v){setTimeout(v,0)})]})})}}},t={};return function r(n){var i=t[n];if(i!==void 0)return i.exports;var p=t[n]={exports:{}};return e[n].call(p.exports,p,p.exports,r),p.exports}(48)})())});var et=Bt((ko,Fe)=>{"use strict";(function(){"use strict";var e="input is invalid type",t=typeof window=="object",r=t?window:{};r.JS_SHA256_NO_WINDOW&&(t=!1);var n=!t&&typeof self=="object",i=!r.JS_SHA256_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;i?r=global:n&&(r=self);var p=!r.JS_SHA256_NO_COMMON_JS&&typeof Fe=="object"&&Fe.exports,l=typeof define=="function"&&define.amd,v=!r.JS_SHA256_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",f="0123456789abcdef".split(""),F=[-2147483648,8388608,32768,128],y=[24,16,8,0],d=[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],h=["hex","array","digest","arrayBuffer"],a=[];(r.JS_SHA256_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(s){return Object.prototype.toString.call(s)==="[object Array]"}),v&&(r.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(s){return typeof s=="object"&&s.buffer&&s.buffer.constructor===ArrayBuffer});var b=function(s,u){return function(S){return new m(u,!0).update(S)[s]()}},o=function(s){var u=b("hex",s);i&&(u=c(u,s)),u.create=function(){return new m(s)},u.update=function(T){return u.create().update(T)};for(var S=0;S<h.length;++S){var w=h[S];u[w]=b(w,s)}return u},c=function(s,u){var S=Mt("crypto"),w=Mt("buffer").Buffer,T=u?"sha224":"sha256",g;w.from&&!r.JS_SHA256_NO_BUFFER_FROM?g=w.from:g=function(x){return new w(x)};var C=function(x){if(typeof x=="string")return S.createHash(T).update(x,"utf8").digest("hex");if(x==null)throw new Error(e);return x.constructor===ArrayBuffer&&(x=new Uint8Array(x)),Array.isArray(x)||ArrayBuffer.isView(x)||x.constructor===w?S.createHash(T).update(g(x)).digest("hex"):s(x)};return C},I=function(s,u){return function(S,w){return new E(S,u,!0).update(w)[s]()}},A=function(s){var u=I("hex",s);u.create=function(T){return new E(T,s)},u.update=function(T,g){return u.create(T).update(g)};for(var S=0;S<h.length;++S){var w=h[S];u[w]=I(w,s)}return u};function m(s,u){u?(a[0]=a[16]=a[1]=a[2]=a[3]=a[4]=a[5]=a[6]=a[7]=a[8]=a[9]=a[10]=a[11]=a[12]=a[13]=a[14]=a[15]=0,this.blocks=a):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],s?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=s}m.prototype.update=function(s){if(!this.finalized){var u,S=typeof s;if(S!=="string"){if(S==="object"){if(s===null)throw new Error(e);if(v&&s.constructor===ArrayBuffer)s=new Uint8Array(s);else if(!Array.isArray(s)&&(!v||!ArrayBuffer.isView(s)))throw new Error(e)}else throw new Error(e);u=!0}for(var w,T=0,g,C=s.length,x=this.blocks;T<C;){if(this.hashed&&(this.hashed=!1,x[0]=this.block,this.block=x[16]=x[1]=x[2]=x[3]=x[4]=x[5]=x[6]=x[7]=x[8]=x[9]=x[10]=x[11]=x[12]=x[13]=x[14]=x[15]=0),u)for(g=this.start;T<C&&g<64;++T)x[g>>>2]|=s[T]<<y[g++&3];else for(g=this.start;T<C&&g<64;++T)w=s.charCodeAt(T),w<128?x[g>>>2]|=w<<y[g++&3]:w<2048?(x[g>>>2]|=(192|w>>>6)<<y[g++&3],x[g>>>2]|=(128|w&63)<<y[g++&3]):w<55296||w>=57344?(x[g>>>2]|=(224|w>>>12)<<y[g++&3],x[g>>>2]|=(128|w>>>6&63)<<y[g++&3],x[g>>>2]|=(128|w&63)<<y[g++&3]):(w=65536+((w&1023)<<10|s.charCodeAt(++T)&1023),x[g>>>2]|=(240|w>>>18)<<y[g++&3],x[g>>>2]|=(128|w>>>12&63)<<y[g++&3],x[g>>>2]|=(128|w>>>6&63)<<y[g++&3],x[g>>>2]|=(128|w&63)<<y[g++&3]);this.lastByteIndex=g,this.bytes+=g-this.start,g>=64?(this.block=x[16],this.start=g-64,this.hash(),this.hashed=!0):this.start=g}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},m.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var s=this.blocks,u=this.lastByteIndex;s[16]=this.block,s[u>>>2]|=F[u&3],this.block=s[16],u>=56&&(this.hashed||this.hash(),s[0]=this.block,s[16]=s[1]=s[2]=s[3]=s[4]=s[5]=s[6]=s[7]=s[8]=s[9]=s[10]=s[11]=s[12]=s[13]=s[14]=s[15]=0),s[14]=this.hBytes<<3|this.bytes>>>29,s[15]=this.bytes<<3,this.hash()}},m.prototype.hash=function(){var s=this.h0,u=this.h1,S=this.h2,w=this.h3,T=this.h4,g=this.h5,C=this.h6,x=this.h7,P=this.blocks,B,_,D,J,R,G,X,ue,Xe,Ye,ve;for(B=16;B<64;++B)R=P[B-15],_=(R>>>7|R<<25)^(R>>>18|R<<14)^R>>>3,R=P[B-2],D=(R>>>17|R<<15)^(R>>>19|R<<13)^R>>>10,P[B]=P[B-16]+_+P[B-7]+D<<0;for(ve=u&S,B=0;B<64;B+=4)this.first?(this.is224?(ue=300032,R=P[0]-1413257819,x=R-150054599<<0,w=R+24177077<<0):(ue=704751109,R=P[0]-210244248,x=R-1521486534<<0,w=R+143694565<<0),this.first=!1):(_=(s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10),D=(T>>>6|T<<26)^(T>>>11|T<<21)^(T>>>25|T<<7),ue=s&u,J=ue^s&S^ve,X=T&g^~T&C,R=x+D+X+d[B]+P[B],G=_+J,x=w+R<<0,w=R+G<<0),_=(w>>>2|w<<30)^(w>>>13|w<<19)^(w>>>22|w<<10),D=(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7),Xe=w&s,J=Xe^w&u^ue,X=x&T^~x&g,R=C+D+X+d[B+1]+P[B+1],G=_+J,C=S+R<<0,S=R+G<<0,_=(S>>>2|S<<30)^(S>>>13|S<<19)^(S>>>22|S<<10),D=(C>>>6|C<<26)^(C>>>11|C<<21)^(C>>>25|C<<7),Ye=S&w,J=Ye^S&s^Xe,X=C&x^~C&T,R=g+D+X+d[B+2]+P[B+2],G=_+J,g=u+R<<0,u=R+G<<0,_=(u>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),D=(g>>>6|g<<26)^(g>>>11|g<<21)^(g>>>25|g<<7),ve=u&S,J=ve^u&w^Ye,X=g&C^~g&x,R=T+D+X+d[B+3]+P[B+3],G=_+J,T=s+R<<0,s=R+G<<0,this.chromeBugWorkAround=!0;this.h0=this.h0+s<<0,this.h1=this.h1+u<<0,this.h2=this.h2+S<<0,this.h3=this.h3+w<<0,this.h4=this.h4+T<<0,this.h5=this.h5+g<<0,this.h6=this.h6+C<<0,this.h7=this.h7+x<<0},m.prototype.hex=function(){this.finalize();var s=this.h0,u=this.h1,S=this.h2,w=this.h3,T=this.h4,g=this.h5,C=this.h6,x=this.h7,P=f[s>>>28&15]+f[s>>>24&15]+f[s>>>20&15]+f[s>>>16&15]+f[s>>>12&15]+f[s>>>8&15]+f[s>>>4&15]+f[s&15]+f[u>>>28&15]+f[u>>>24&15]+f[u>>>20&15]+f[u>>>16&15]+f[u>>>12&15]+f[u>>>8&15]+f[u>>>4&15]+f[u&15]+f[S>>>28&15]+f[S>>>24&15]+f[S>>>20&15]+f[S>>>16&15]+f[S>>>12&15]+f[S>>>8&15]+f[S>>>4&15]+f[S&15]+f[w>>>28&15]+f[w>>>24&15]+f[w>>>20&15]+f[w>>>16&15]+f[w>>>12&15]+f[w>>>8&15]+f[w>>>4&15]+f[w&15]+f[T>>>28&15]+f[T>>>24&15]+f[T>>>20&15]+f[T>>>16&15]+f[T>>>12&15]+f[T>>>8&15]+f[T>>>4&15]+f[T&15]+f[g>>>28&15]+f[g>>>24&15]+f[g>>>20&15]+f[g>>>16&15]+f[g>>>12&15]+f[g>>>8&15]+f[g>>>4&15]+f[g&15]+f[C>>>28&15]+f[C>>>24&15]+f[C>>>20&15]+f[C>>>16&15]+f[C>>>12&15]+f[C>>>8&15]+f[C>>>4&15]+f[C&15];return this.is224||(P+=f[x>>>28&15]+f[x>>>24&15]+f[x>>>20&15]+f[x>>>16&15]+f[x>>>12&15]+f[x>>>8&15]+f[x>>>4&15]+f[x&15]),P},m.prototype.toString=m.prototype.hex,m.prototype.digest=function(){this.finalize();var s=this.h0,u=this.h1,S=this.h2,w=this.h3,T=this.h4,g=this.h5,C=this.h6,x=this.h7,P=[s>>>24&255,s>>>16&255,s>>>8&255,s&255,u>>>24&255,u>>>16&255,u>>>8&255,u&255,S>>>24&255,S>>>16&255,S>>>8&255,S&255,w>>>24&255,w>>>16&255,w>>>8&255,w&255,T>>>24&255,T>>>16&255,T>>>8&255,T&255,g>>>24&255,g>>>16&255,g>>>8&255,g&255,C>>>24&255,C>>>16&255,C>>>8&255,C&255];return this.is224||P.push(x>>>24&255,x>>>16&255,x>>>8&255,x&255),P},m.prototype.array=m.prototype.digest,m.prototype.arrayBuffer=function(){this.finalize();var s=new ArrayBuffer(this.is224?28:32),u=new DataView(s);return u.setUint32(0,this.h0),u.setUint32(4,this.h1),u.setUint32(8,this.h2),u.setUint32(12,this.h3),u.setUint32(16,this.h4),u.setUint32(20,this.h5),u.setUint32(24,this.h6),this.is224||u.setUint32(28,this.h7),s};function E(s,u,S){var w,T=typeof s;if(T==="string"){var g=[],C=s.length,x=0,P;for(w=0;w<C;++w)P=s.charCodeAt(w),P<128?g[x++]=P:P<2048?(g[x++]=192|P>>>6,g[x++]=128|P&63):P<55296||P>=57344?(g[x++]=224|P>>>12,g[x++]=128|P>>>6&63,g[x++]=128|P&63):(P=65536+((P&1023)<<10|s.charCodeAt(++w)&1023),g[x++]=240|P>>>18,g[x++]=128|P>>>12&63,g[x++]=128|P>>>6&63,g[x++]=128|P&63);s=g}else if(T==="object"){if(s===null)throw new Error(e);if(v&&s.constructor===ArrayBuffer)s=new Uint8Array(s);else if(!Array.isArray(s)&&(!v||!ArrayBuffer.isView(s)))throw new Error(e)}else throw new Error(e);s.length>64&&(s=new m(u,!0).update(s).array());var B=[],_=[];for(w=0;w<64;++w){var D=s[w]||0;B[w]=92^D,_[w]=54^D}m.call(this,u,S),this.update(_),this.oKeyPad=B,this.inner=!0,this.sharedMemory=S}E.prototype=new m,E.prototype.finalize=function(){if(m.prototype.finalize.call(this),this.inner){this.inner=!1;var s=this.array();m.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(s),m.prototype.finalize.call(this)}};var z=o();z.sha256=z,z.sha224=o(!0),z.sha256.hmac=A(),z.sha224.hmac=A(!0),p?Fe.exports=z:(r.sha256=z.sha256,r.sha224=z.sha224,l&&define(function(){return z}))})()});function Q(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}var le=M(()=>{"use strict"});function $(e){return Q(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}var de=M(()=>{"use strict";le()});var at,jt=M(()=>{"use strict";at="2.21.6"});function Vt(e,t){return t?.(e)?e:e&&typeof e=="object"&&"cause"in e?Vt(e.cause,t):t?null:e}var st,H,ie=M(()=>{"use strict";jt();st={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:at},H=class e extends Error{constructor(t,r={}){let n=r.cause instanceof e?r.cause.details:r.cause?.message?r.cause.message:r.details,i=r.cause instanceof e&&r.cause.docsPath||r.docsPath,p=st.getDocsUrl?.({...r,docsPath:i}),l=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...p?[`Docs: ${p}`]:[],...n?[`Details: ${n}`]:[],...st.version?[`Version: ${st.version}`]:[]].join(`
2
+ `);super(l,r.cause?{cause:r.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=n,this.docsPath=i,this.metaMessages=r.metaMessages,this.name=r.name??this.name,this.shortMessage=t,this.version=at}walk(t){return Vt(this,t)}}});var Me,Be,ke,He,ze,Wt=M(()=>{"use strict";de();ie();Me=class extends H{constructor({expectedLength:t,givenLength:r,type:n}){super([`ABI encoding array length mismatch for type ${n}.`,`Expected length: ${t}`,`Given length: ${r}`].join(`
3
+ `),{name:"AbiEncodingArrayLengthMismatchError"})}},Be=class extends H{constructor({expectedSize:t,value:r}){super(`Size of bytes "${r}" (bytes${$(r)}) does not match expected size (bytes${t}).`,{name:"AbiEncodingBytesSizeMismatchError"})}},ke=class extends H{constructor({expectedLength:t,givenLength:r}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${t}`,`Given length (values): ${r}`].join(`
4
+ `),{name:"AbiEncodingLengthMismatchError"})}},He=class extends H{constructor(t,{docsPath:r}){super([`Type "${t}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
5
+ `),{docsPath:r,name:"InvalidAbiEncodingType"})}},ze=class extends H{constructor(t){super([`Value "${t}" is not a valid array.`].join(`
6
+ `),{name:"InvalidArrayError"})}}});var me,he,ct=M(()=>{"use strict";ie();me=class extends H{constructor({offset:t,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}},he=class extends H{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${t}) exceeds padding size (${r}).`,{name:"SizeExceedsPaddingSizeError"})}}});function N(e,{dir:t,size:r=32}={}){return typeof e=="string"?W(e,{dir:t,size:r}):qt(e,{dir:t,size:r})}function W(e,{dir:t,size:r=32}={}){if(r===null)return e;let n=e.replace("0x","");if(n.length>r*2)throw new he({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[t==="right"?"padEnd":"padStart"](r*2,"0")}`}function qt(e,{dir:t,size:r=32}={}){if(r===null)return e;if(e.length>r)throw new he({size:e.length,targetSize:r,type:"bytes"});let n=new Uint8Array(r);for(let i=0;i<r;i++){let p=t==="right";n[p?i:r-i-1]=e[p?i:e.length-i-1]}return n}var xe=M(()=>{"use strict";ct()});var Le,$e,pt=M(()=>{"use strict";ie();Le=class extends H{constructor({max:t,min:r,signed:n,size:i,value:p}){super(`Number "${p}" is not in safe ${i?`${i*8}-bit ${n?"signed":"unsigned"} `:""}integer range ${t?`(${r} to ${t})`:`(above ${r})`}`,{name:"IntegerOutOfRangeError"})}},$e=class extends H{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed ${r} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}});function ae(e,{size:t}){if($(e)>t)throw new $e({givenSize:$(e),maxSize:t})}var ut=M(()=>{"use strict";pt();de()});function U(e,t={}){return typeof e=="number"||typeof e=="bigint"?q(e,t):typeof e=="string"?Ue(e,t):typeof e=="boolean"?Ne(e,t):ft(e,t)}function Ne(e,t={}){let r=`0x${Number(e)}`;return typeof t.size=="number"?(ae(r,{size:t.size}),N(r,{size:t.size})):r}function ft(e,t={}){let r="";for(let i=0;i<e.length;i++)r+=Or[e[i]];let n=`0x${r}`;return typeof t.size=="number"?(ae(n,{size:t.size}),N(n,{dir:"right",size:t.size})):n}function q(e,t={}){let{signed:r,size:n}=t,i=BigInt(e),p;n?r?p=(1n<<BigInt(n)*8n-1n)-1n:p=2n**(BigInt(n)*8n)-1n:typeof e=="number"&&(p=BigInt(Number.MAX_SAFE_INTEGER));let l=typeof p=="bigint"&&r?-p-1n:0;if(p&&i>p||i<l){let f=typeof e=="bigint"?"n":"";throw new Le({max:p?`${p}${f}`:void 0,min:`${l}${f}`,signed:r,size:n,value:`${e}${f}`})}let v=`0x${(r&&i<0?(1n<<BigInt(n*8))+BigInt(i):i).toString(16)}`;return n?N(v,{size:n}):v}function Ue(e,t={}){let r=jr.encode(e);return ft(r,t)}var Or,jr,ye=M(()=>{"use strict";pt();xe();ut();Or=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));jr=new TextEncoder});function Jt(e,t={}){return typeof e=="number"||typeof e=="bigint"?qr(e,t):typeof e=="boolean"?Wr(e,t):Q(e)?Gt(e,t):lt(e,t)}function Wr(e,t={}){let r=new Uint8Array(1);return r[0]=Number(e),typeof t.size=="number"?(ae(r,{size:t.size}),N(r,{size:t.size})):r}function Kt(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 Gt(e,t={}){let r=e;t.size&&(ae(r,{size:t.size}),r=N(r,{dir:"right",size:t.size}));let n=r.slice(2);n.length%2&&(n=`0${n}`);let i=n.length/2,p=new Uint8Array(i);for(let l=0,v=0;l<i;l++){let f=Kt(n.charCodeAt(v++)),F=Kt(n.charCodeAt(v++));if(f===void 0||F===void 0)throw new H(`Invalid byte sequence ("${n[v-2]}${n[v-1]}" in "${n}").`);p[l]=f*16+F}return p}function qr(e,t){let r=q(e,t);return Gt(r)}function lt(e,t={}){let r=Vr.encode(e);return typeof t.size=="number"?(ae(r,{size:t.size}),N(r,{dir:"right",size:t.size})):r}var Vr,K,dt=M(()=>{"use strict";ie();le();xe();ut();ye();Vr=new TextEncoder;K={zero:48,nine:57,A:65,F:70,a:97,f:102}});function mt(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function Kr(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function be(e,...t){if(!Kr(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function ht(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Xt(e,t){be(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var xt=M(()=>{"use strict"});function Jr(e,t=!1){return t?{h:Number(e&_e),l:Number(e>>Yt&_e)}:{h:Number(e>>Yt&_e)|0,l:Number(e&_e)|0}}function Zt(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:p,l}=Jr(e[i],t);[r[i],n[i]]=[p,l]}return[r,n]}var _e,Yt,Qt,er,tr,rr,or=M(()=>{"use strict";_e=BigInt(4294967295),Yt=BigInt(32);Qt=(e,t,r)=>e<<r|t>>>32-r,er=(e,t,r)=>t<<r|e>>>32-r,tr=(e,t,r)=>t<<r-32|e>>>64-r,rr=(e,t,r)=>e<<r-32|t>>>64-r});function bt(e){for(let t=0;t<e.length;t++)e[t]=Gr(e[t])}function Xr(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Oe(e){return typeof e=="string"&&(e=Xr(e)),be(e),e}function ir(e){let t=n=>e().update(Oe(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function ar(e){let t=(n,i)=>e(i).update(Oe(n)).digest(),r=e({});return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}var nr,yt,Gr,De,ri,sr=M(()=>{"use strict";xt();nr=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),yt=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,Gr=e=>e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255;De=class{clone(){return this._cloneInto()}},ri={}.toString});function no(e,t=24){let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let l=0;l<10;l++)r[l]=e[l]^e[l+10]^e[l+20]^e[l+30]^e[l+40];for(let l=0;l<10;l+=2){let v=(l+8)%10,f=(l+2)%10,F=r[f],y=r[f+1],d=cr(F,y,1)^r[v],h=pr(F,y,1)^r[v+1];for(let a=0;a<50;a+=10)e[l+a]^=d,e[l+a+1]^=h}let i=e[2],p=e[3];for(let l=0;l<24;l++){let v=fr[l],f=cr(i,p,v),F=pr(i,p,v),y=ur[l];i=e[y],p=e[y+1],e[y]=f,e[y+1]=F}for(let l=0;l<50;l+=10){for(let v=0;v<10;v++)r[v]=e[l+v];for(let v=0;v<10;v++)e[l+v]^=~r[(v+2)%10]&r[(v+4)%10]}e[0]^=ro[n],e[1]^=oo[n]}r.fill(0)}var ur,fr,lr,Yr,ge,Zr,Qr,eo,to,ro,oo,cr,pr,je,ee,si,ci,pi,ui,fi,dr,li,di,mr,mi,hi,hr=M(()=>{"use strict";xt();or();sr();ur=[],fr=[],lr=[],Yr=BigInt(0),ge=BigInt(1),Zr=BigInt(2),Qr=BigInt(7),eo=BigInt(256),to=BigInt(113);for(let e=0,t=ge,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],ur.push(2*(5*n+r)),fr.push((e+1)*(e+2)/2%64);let i=Yr;for(let p=0;p<7;p++)t=(t<<ge^(t>>Qr)*to)%eo,t&Zr&&(i^=ge<<(ge<<BigInt(p))-ge);lr.push(i)}[ro,oo]=Zt(lr,!0),cr=(e,t,r)=>r>32?tr(e,t,r):Qt(e,t,r),pr=(e,t,r)=>r>32?rr(e,t,r):er(e,t,r);je=class e extends De{constructor(t,r,n,i=!1,p=24){if(super(),this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=i,this.rounds=p,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,mt(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=nr(this.state)}keccak(){yt||bt(this.state32),no(this.state32,this.rounds),yt||bt(this.state32),this.posOut=0,this.pos=0}update(t){ht(this);let{blockLen:r,state:n}=this;t=Oe(t);let i=t.length;for(let p=0;p<i;){let l=Math.min(r-this.pos,i-p);for(let v=0;v<l;v++)n[this.pos++]^=t[p++];this.pos===r&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:t,suffix:r,pos:n,blockLen:i}=this;t[n]^=r,r&128&&n===i-1&&this.keccak(),t[i-1]^=128,this.keccak()}writeInto(t){ht(this,!1),be(t),this.finish();let r=this.state,{blockLen:n}=this;for(let i=0,p=t.length;i<p;){this.posOut>=n&&this.keccak();let l=Math.min(n-this.posOut,p-i);t.set(r.subarray(this.posOut,this.posOut+l),i),this.posOut+=l,i+=l}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return mt(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Xt(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){let{blockLen:r,suffix:n,outputLen:i,rounds:p,enableXOF:l}=this;return t||(t=new e(r,n,i,l,p)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=p,t.suffix=n,t.outputLen=i,t.enableXOF=l,t.destroyed=this.destroyed,t}},ee=(e,t,r)=>ir(()=>new je(t,e,r)),si=ee(6,144,224/8),ci=ee(6,136,256/8),pi=ee(6,104,384/8),ui=ee(6,72,512/8),fi=ee(1,144,224/8),dr=ee(1,136,256/8),li=ee(1,104,384/8),di=ee(1,72,512/8),mr=(e,t,r)=>ar((n={})=>new je(t,e,n.dkLen===void 0?r:n.dkLen,!0)),mi=mr(31,168,128/8),hi=mr(31,136,256/8)});function we(e,t){let r=t||"hex",n=dr(Q(e,{strict:!1})?Jt(e):e);return r==="bytes"?n:U(n)}var gt=M(()=>{"use strict";hr();le();dt();ye()});var se,wt=M(()=>{"use strict";ie();se=class extends H{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}});var pe,It=M(()=>{"use strict";pe=class extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){let r=super.get(t);return super.has(t)&&r!==void 0&&(this.delete(t),super.set(t,r)),r}set(t,r){if(super.set(t,r),this.maxSize&&this.size>this.maxSize){let n=this.keys().next().value;n&&this.delete(n)}return this}}});function xr(e,t){if(vt.has(`${e}.${t}`))return vt.get(`${e}.${t}`);let r=t?`${t}${e.toLowerCase()}`:e.substring(2).toLowerCase(),n=we(lt(r),"bytes"),i=(t?r.substring(`${t}0x`.length):r).split("");for(let l=0;l<40;l+=2)n[l>>1]>>4>=8&&i[l]&&(i[l]=i[l].toUpperCase()),(n[l>>1]&15)>=8&&i[l+1]&&(i[l+1]=i[l+1].toUpperCase());let p=`0x${i.join("")}`;return vt.set(`${e}.${t}`,p),p}var vt,yr=M(()=>{"use strict";dt();gt();It();vt=new pe(8192)});function Ie(e,t){let{strict:r=!0}=t??{},n=`${e}.${r}`;if(Et.has(n))return Et.get(n);let i=io.test(e)?e.toLowerCase()===e?!0:r?xr(e)===e:!0:!1;return Et.set(n,i),i}var io,Et,St=M(()=>{"use strict";It();yr();io=/^0x[a-fA-F0-9]{40}$/,Et=new pe(8192)});function te(e){return typeof e[0]=="string"?V(e):br(e)}function br(e){let t=0;for(let i of e)t+=i.length;let r=new Uint8Array(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return r}function V(e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}var Tt=M(()=>{"use strict"});function gr(e,t,r,{strict:n}={}){return Q(e,{strict:!1})?so(e,t,r,{strict:n}):ao(e,t,r,{strict:n})}function wr(e,t){if(typeof t=="number"&&t>0&&t>$(e)-1)throw new me({offset:t,position:"start",size:$(e)})}function Ir(e,t,r){if(typeof t=="number"&&typeof r=="number"&&$(e)!==r-t)throw new me({offset:r,position:"end",size:$(e)})}function ao(e,t,r,{strict:n}={}){wr(e,t);let i=e.slice(t,r);return n&&Ir(i,t,r),i}function so(e,t,r,{strict:n}={}){wr(e,t);let i=`0x${e.replace("0x","").slice((t??0)*2,(r??e.length)*2)}`;return n&&Ir(i,t,r),i}var vr=M(()=>{"use strict";ct();le();de()});function Ft(e,t){if(e.length!==t.length)throw new ke({expectedLength:e.length,givenLength:t.length});let r=co({params:e,values:t}),n=Ct(r);return n.length===0?"0x":n}function co({params:e,values:t}){let r=[];for(let n=0;n<e.length;n++)r.push(At({param:e[n],value:t[n]}));return r}function At({param:e,value:t}){let r=yo(e.type);if(r){let[n,i]=r;return uo(t,{length:n,param:{...e,type:i}})}if(e.type==="tuple")return xo(t,{param:e});if(e.type==="address")return po(t);if(e.type==="bool")return lo(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){let n=e.type.startsWith("int");return mo(t,{signed:n})}if(e.type.startsWith("bytes"))return fo(t,{param:e});if(e.type==="string")return ho(t);throw new He(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function Ct(e){let t=0;for(let p=0;p<e.length;p++){let{dynamic:l,encoded:v}=e[p];l?t+=32:t+=$(v)}let r=[],n=[],i=0;for(let p=0;p<e.length;p++){let{dynamic:l,encoded:v}=e[p];l?(r.push(q(t+i,{size:32})),n.push(v),i+=$(v)):r.push(v)}return te([...r,...n])}function po(e){if(!Ie(e))throw new se({address:e});return{dynamic:!1,encoded:W(e.toLowerCase())}}function uo(e,{length:t,param:r}){let n=t===null;if(!Array.isArray(e))throw new ze(e);if(!n&&e.length!==t)throw new Me({expectedLength:t,givenLength:e.length,type:`${r.type}[${t}]`});let i=!1,p=[];for(let l=0;l<e.length;l++){let v=At({param:r,value:e[l]});v.dynamic&&(i=!0),p.push(v)}if(n||i){let l=Ct(p);if(n){let v=q(p.length,{size:32});return{dynamic:!0,encoded:p.length>0?te([v,l]):v}}if(i)return{dynamic:!0,encoded:l}}return{dynamic:!1,encoded:te(p.map(({encoded:l})=>l))}}function fo(e,{param:t}){let[,r]=t.type.split("bytes"),n=$(e);if(!r){let i=e;return n%32!==0&&(i=W(i,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:te([W(q(n,{size:32})),i])}}if(n!==Number.parseInt(r))throw new Be({expectedSize:Number.parseInt(r),value:e});return{dynamic:!1,encoded:W(e,{dir:"right"})}}function lo(e){if(typeof e!="boolean")throw new H(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:W(Ne(e))}}function mo(e,{signed:t}){return{dynamic:!1,encoded:q(e,{size:32,signed:t})}}function ho(e){let t=Ue(e),r=Math.ceil($(t)/32),n=[];for(let i=0;i<r;i++)n.push(W(gr(t,i*32,(i+1)*32),{dir:"right"}));return{dynamic:!0,encoded:te([W(q($(t),{size:32})),...n])}}function xo(e,{param:t}){let r=!1,n=[];for(let i=0;i<t.components.length;i++){let p=t.components[i],l=Array.isArray(e)?i:p.name,v=At({param:p,value:e[l]});n.push(v),v.dynamic&&(r=!0)}return{dynamic:r,encoded:r?Ct(n):te(n.map(({encoded:i})=>i))}}function yo(e){let t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}var Er=M(()=>{"use strict";Wt();wt();ie();St();Tt();xe();de();vr();ye()});function Pt(e,t){if(!Ie(e,{strict:!1}))throw new se({address:e});if(!Ie(t,{strict:!1}))throw new se({address:t});return e.toLowerCase()===t.toLowerCase()}var Sr=M(()=>{"use strict";wt();St()});var Ao={};Nr(Ao,{FrakRpcError:()=>k,NexusContextManager:()=>Z,PressInteractionEncoder:()=>Rr,PurchaseInteractionEncoder:()=>Mr,ReferralInteractionEncoder:()=>Je,RpcErrorCodes:()=>L,createIFrameNexusClient:()=>it,createIframe:()=>ot,decompressDataAndCheckHash:()=>ne,displayModal:()=>re,hashAndCompressData:()=>oe,interactionTypes:()=>j,openSso:()=>Ar,processReferral:()=>Ge,productTypes:()=>O,productTypesMask:()=>Ot,referralInteraction:()=>Br,sendInteraction:()=>qe,sendTransaction:()=>Pr,siweAuthenticate:()=>Cr,walletStatus:()=>Ke,watchWalletStatus:()=>Re});var k=class extends Error{constructor(r,n,i){super(n);this.code=r;this.data=i}};var Te=class extends k{constructor(t){super(L.internalError,t)}};var L={parseError:-32700,invalidRequest:-32600,methodNotFound:-32601,invalidParams:-32602,internalError:-32603,serverError:-32e3,clientNotConnected:-32001,configError:-32002,corruptedResponse:-32003,clientAborted:-32004,walletNotConnected:-32005,serverErrorForInteractionDelegation:-32006};var Y=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((t,r)=>{this._resolve=t,this._reject=r})}get promise(){return this._promise}resolve=t=>{this._resolve?.(t)};reject=t=>{this._reject?.(t)}};var Ht=Se(Qe(),1),tt=Se(et(),1);async function oe(e){let t=(0,tt.sha256)(JSON.stringify(e)),r={...e,validationHash:t},n=await Ae(r),i=(0,tt.sha256)(n);return{compressed:n,compressedHash:i}}async function Ae(e){return(0,Ht.compressToBase64)(JSON.stringify(e))}var zt=Se(Qe(),1),rt=Se(et(),1);async function ne(e){if(!(e?.compressed&&e?.compressedHash))throw new k(L.corruptedResponse,"Missing compressed data");let t=await Ce(e.compressed);if(!t)throw new k(L.corruptedResponse,"Invalid compressed data");if(!t?.validationHash)throw new k(L.corruptedResponse,"Missing validation hash");if((0,rt.sha256)(e.compressed)!==e.compressedHash)throw new k(L.corruptedResponse,"Invalid compressed hash");let{validationHash:n,...i}=t;if((0,rt.sha256)(JSON.stringify(i))!==t.validationHash)throw new k(L.corruptedResponse,"Invalid data validation hash");return t}async function Ce(e){let t=await(0,zt.decompressFromBase64)(e);try{return JSON.parse(t)}catch(r){return console.error("Invalid compressed data",r),null}}var ce="nexus-wallet-backup";function Lt(){let e=new Map;return{createChannel:t=>{let r=Math.random().toString(36).substring(7);return e.set(r,t),r},getRpcResolver:t=>e.get(t),removeChannel:t=>e.delete(t),destroy:()=>e.clear()}}var Pe={id:"nexus-wallet",name:"nexus-wallet",allow:"publickey-credentials-get *; clipboard-write; web-share *",style:{width:"0",height:"0",border:"0",position:"absolute",zIndex:1e3,top:"-1000px",left:"-1000px"}};function ot({walletBaseUrl:e}){let t=document.querySelector("#nexus-wallet");if(t)return Promise.resolve(t);let r=document.createElement("iframe");return r.id=Pe.id,r.name=Pe.name,r.allow=Pe.allow,r.style.zIndex=Pe.style.zIndex.toString(),nt({iframe:r,isVisible:!1}),document.body.appendChild(r),new Promise(n=>{r?.addEventListener("load",()=>n(r)),r.src=`${e}/listener`})}function nt({iframe:e,isVisible:t}){if(!t){e.style.width="0",e.style.height="0",e.style.border="0",e.style.position="fixed",e.style.top="-1000px",e.style.left="-1000px";return}e.style.position="fixed",e.style.top="0",e.style.left="0",e.style.width="100%",e.style.height="100%",e.style.pointerEvents="auto"}function $t({iframe:e}){let t=new Y;return{handleEvent:async n=>{switch(n.iframeLifecycle){case"connected":t.resolve(!0);break;case"do-backup":n.data.backup?localStorage.setItem(ce,n.data.backup):localStorage.removeItem(ce);break;case"remove-backup":localStorage.removeItem(ce);break;case"show":case"hide":nt({iframe:e,isVisible:n.iframeLifecycle==="show"});break}},isConnected:t.promise}}function Nt({nexusWalletUrl:e,iframe:t,channelManager:r,iframeLifecycleManager:n}){if(typeof window>"u")throw new k(L.configError,"iframe client should be used in the browser");if(!t.contentWindow)throw new k(L.configError,"The iframe does not have a product window");let i=t.contentWindow,p=async f=>{if(!f.origin||new URL(f.origin).origin.toLowerCase()!==new URL(e).origin.toLowerCase())return;if("iframeLifecycle"in f.data){await n.handleEvent(f.data);return}if("clientLifecycle"in f.data){console.error("Client lifecycle event received on the client side, dismissing it");return}let F=f.data.id,y=r.getRpcResolver(F);y&&await y(f.data)};return window.addEventListener("message",p),{sendEvent:f=>{i.postMessage(f,{targetOrigin:e})},cleanup:()=>{window.removeEventListener("message",p)}}}function it({config:e,iframe:t}){let r=Lt(),n=$t({iframe:t}),i=Nt({nexusWalletUrl:e.walletUrl,iframe:t,channelManager:r,iframeLifecycleManager:n}),p=async F=>{if(!await n.isConnected)throw new k(L.clientNotConnected,"The iframe provider isn't connected yet");let d=new Y,h=r.createChannel(async b=>{let o=await ne(b.data);o.error?d.reject(new k(o.error.code,o.error.message,o.error?.data)):d.resolve(o.result),r.removeChannel(h)}),a=await oe(F);return i.sendEvent({id:h,topic:F.method,data:a}),d.promise},l=async(F,y)=>{if(!await n.isConnected)throw new k(L.clientNotConnected,"The iframe provider isn't connected yet");let h=r.createChannel(async b=>{let o=await ne(b.data);if(o.result)y(o.result);else throw new Te("No valid result in the response")}),a=await oe(F);i.sendEvent({id:h,topic:F.method,data:a})},v=async()=>{r.destroy(),i.cleanup(),t.remove()},f=_r({config:e,messageHandler:i,lifecycleManager:n});return{config:e,waitForConnection:n.isConnected,waitForSetup:f,request:p,listenerRequest:l,destroy:v}}async function _r({config:e,messageHandler:t,lifecycleManager:r}){await r.isConnected;let n=async()=>{let p=e.metadata.css;p&&t.sendEvent({clientLifecycle:"modal-css",data:{cssLink:p}})},i=async()=>{if(typeof window>"u")return;let p=window.localStorage.getItem(ce);p&&t.sendEvent({clientLifecycle:"restore-backup",data:{backup:p}})};await Promise.all([n(),i()])}var Ut="nCtx";async function _t({url:e}){if(!e)return null;let r=new URL(e).searchParams.get(Ut);if(!r)return null;let n=await Ce(r);return n||null}async function Dt({url:e,context:t}){if(!e)return null;let r=await _t({url:e}),n=r?{...r,...t}:t,i=await Ae(n);if(!i)return;let p=new URL(e);return p.searchParams.set(Ut,i),p.toString()}async function Dr({url:e,context:t}){if(!window.location?.href||typeof window>"u"){console.error("No window found, can't update context");return}let r=await Dt({url:e,context:t});r&&window.history.replaceState(null,"",r.toString())}var Z={parse:_t,update:Dt,replaceUrl:Dr};var O={dapp:1,press:2,webshop:3,referral:30,purchase:31},Ot=Object.entries(O).reduce((e,[t,r])=>(e[t]=BigInt(1)<<BigInt(r),e),{});var j={press:{openArticle:"0xc0a24ffb",readArticle:"0xd5bd0fbe"},dapp:{proofVerifiableStorageUpdate:"0x2ab2aeef",callableVerifiableStorageUpdate:"0xa07da986"},webshop:{},referral:{referred:"0x010cc3b9",createLink:"0xb2c0f17c"},purchase:{started:"0xd87e90c3",completed:"0x8403aeb4"}};function Re(e,t){return e.listenerRequest({method:"frak_listenToWalletStatus"},t)}var Ve=256,We;function Tr(e=11){if(!We||Ve+e>256*2){We="",Ve=0;for(let t=0;t<256;t++)We+=(256+Math.random()*256|0).toString(16).substring(1)}return We.substring(Ve,Ve+++e)}Er();ye();Tt();Sr();gt();xe();function Fr({domain:e}){return we(U(e))}async function qe(e,{productId:t,interaction:r,validation:n}){let i=t??Fr(e.config);return await e.request({method:"frak_sendInteraction",params:[i,r,n]})}async function re(e,{steps:t,metadata:r}){return await e.request({method:"frak_displayModal",params:[t,e.config.metadata.name,r]})}async function Ar(e,t){let{metadata:r}=e.config;await e.request({method:"frak_sso",params:[t,r.name,r.css]})}function Rt(){return Tr(96)}async function Cr(e,{siwe:t,metadata:r}){let n=t?.statement??`I confirm that I want to use my Frak wallet on: ${e.config.metadata.name}`,i={...t,statement:n,nonce:t?.nonce??Rt(),uri:t?.uri??`https://${e.config.domain}`,version:t?.version??"1",domain:e.config.domain};return(await re(e,{metadata:r,steps:{login:{},siweAuthenticate:{siwe:i}}})).siweAuthenticate}async function Pr(e,{tx:t,metadata:r}){return(await re(e,{metadata:r,steps:{login:{},sendTransaction:{tx:t}}})).sendTransaction}async function Ke(e,t){let r=new Y,n=!1;return await Re(e,i=>{t?.(i),n||(r.resolve(i),n=!0)}),r.promise}function bo({articleId:e}){let t=V([j.press.openArticle,N(e,{size:32})]);return{handlerTypeDenominator:U(O.press),interactionData:t}}function go({articleId:e}){let t=V([j.press.readArticle,N(e,{size:32})]);return{handlerTypeDenominator:U(O.press),interactionData:t}}var Rr={openArticle:bo,readArticle:go};function wo(){let e=V([j.referral.createLink,"0x"]);return{handlerTypeDenominator:U(O.referral),interactionData:e}}function Io({referrer:e}){let t=V([j.referral.referred,N(e,{size:32})]);return{handlerTypeDenominator:U(O.referral),interactionData:t}}var Je={createLink:wo,referred:Io};function vo({purchaseId:e}){let t=V([j.purchase.started,N(e,{size:32})]);return{handlerTypeDenominator:U(O.purchase),interactionData:t}}function Eo({purchaseId:e,proof:t}){let r=Ft([{type:"uint256"},{type:"bytes32[]"}],[BigInt(e),t]),n=V([j.purchase.completed,r]);return{handlerTypeDenominator:U(O.purchase),interactionData:n}}var Mr={startPurchase:vo,completedPurchase:Eo};async function Ge(e,{walletStatus:t,nexusContext:r,modalConfig:n,productId:i}){try{let p=So(t);if(!r?.r)return p&&await Z.replaceUrl({url:window.location?.href,context:{r:p}}),"no-referrer";if(p||(p=await To(e,{modalConfig:n,walletStatus:t})),p&&Pt(r.r,p))return"self-referral";p&&await Z.replaceUrl({url:window.location?.href,context:{r:p}});let l=Je.referred({referrer:r.r});return await qe(e,{productId:i,interaction:l}),"success"}catch(p){return Fo(p)}}function So(e){return e?.key==="connected"?e.wallet:void 0}async function To(e,{modalConfig:t,walletStatus:r}){return r?.key!=="connected"||!r.interactionSession?t?(await re(e,t))?.login?.wallet??void 0:void 0:r.wallet??void 0}function Fo(e){if(e instanceof k)switch(e.code){case L.walletNotConnected:return"no-wallet";case L.serverErrorForInteractionDelegation:return"no-session";default:return"error"}return"error"}async function Br(e,{productId:t,modalConfig:r}={}){let n=await Z.parse({url:window.location.href}),i=await Ke(e);try{return await Ge(e,{walletStatus:i,nexusContext:n,modalConfig:r,productId:t})}catch(p){return p}}return Ur(Ao);})();
7
+ /*! Bundled license information:
8
+
9
+ js-sha256/src/sha256.js:
10
+ (**
11
+ * [js-sha256]{@link https://github.com/emn178/js-sha256}
12
+ *
13
+ * @version 0.11.0
14
+ * @author Chen, Yi-Cyuan [emn178@gmail.com]
15
+ * @copyright Chen, Yi-Cyuan 2014-2024
16
+ * @license MIT
17
+ *)
18
+
19
+ @noble/hashes/esm/utils.js:
20
+ (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
21
+ */
@@ -0,0 +1,246 @@
1
+ import {
2
+ __publicField
3
+ } from "./chunk-K4FOGADW.js";
4
+
5
+ // src/core/types/rpc/error.ts
6
+ var FrakRpcError = class extends Error {
7
+ constructor(code, message, data) {
8
+ super(message);
9
+ this.code = code;
10
+ this.data = data;
11
+ }
12
+ };
13
+ var InternalError = class extends FrakRpcError {
14
+ constructor(message) {
15
+ super(RpcErrorCodes.internalError, message);
16
+ }
17
+ };
18
+ var ClientNotFound = class extends FrakRpcError {
19
+ constructor() {
20
+ super(RpcErrorCodes.clientNotConnected, "Client not found");
21
+ }
22
+ };
23
+ var RpcErrorCodes = {
24
+ // Standard JSON-RPC 2.0 errors
25
+ parseError: -32700,
26
+ invalidRequest: -32600,
27
+ methodNotFound: -32601,
28
+ invalidParams: -32602,
29
+ internalError: -32603,
30
+ serverError: -32e3,
31
+ // Frak specific errors (from -32001 to -32099)
32
+ clientNotConnected: -32001,
33
+ configError: -32002,
34
+ corruptedResponse: -32003,
35
+ clientAborted: -32004,
36
+ walletNotConnected: -32005,
37
+ serverErrorForInteractionDelegation: -32006
38
+ };
39
+
40
+ // src/core/utils/compression/compress.ts
41
+ import { compressToBase64 } from "async-lz-string";
42
+ import { sha256 } from "js-sha256";
43
+ async function hashAndCompressData(data) {
44
+ const validationHash = sha256(JSON.stringify(data));
45
+ const hashProtectedData = {
46
+ ...data,
47
+ validationHash
48
+ };
49
+ const compressed = await compressJson(hashProtectedData);
50
+ const compressedHash = sha256(compressed);
51
+ return {
52
+ compressed,
53
+ compressedHash
54
+ };
55
+ }
56
+ async function compressJson(data) {
57
+ return compressToBase64(JSON.stringify(data));
58
+ }
59
+
60
+ // src/core/utils/compression/decompress.ts
61
+ import { decompressFromBase64 } from "async-lz-string";
62
+ import { sha256 as sha2562 } from "js-sha256";
63
+ async function decompressDataAndCheckHash(compressedData) {
64
+ if (!(compressedData?.compressed && compressedData?.compressedHash)) {
65
+ throw new FrakRpcError(
66
+ RpcErrorCodes.corruptedResponse,
67
+ "Missing compressed data"
68
+ );
69
+ }
70
+ const parsedData = await decompressJson(
71
+ compressedData.compressed
72
+ );
73
+ if (!parsedData) {
74
+ throw new FrakRpcError(
75
+ RpcErrorCodes.corruptedResponse,
76
+ "Invalid compressed data"
77
+ );
78
+ }
79
+ if (!parsedData?.validationHash) {
80
+ throw new FrakRpcError(
81
+ RpcErrorCodes.corruptedResponse,
82
+ "Missing validation hash"
83
+ );
84
+ }
85
+ const expectedCompressedHash = sha2562(compressedData.compressed);
86
+ if (expectedCompressedHash !== compressedData.compressedHash) {
87
+ throw new FrakRpcError(
88
+ RpcErrorCodes.corruptedResponse,
89
+ "Invalid compressed hash"
90
+ );
91
+ }
92
+ const { validationHash: _, ...rawResultData } = parsedData;
93
+ const expectedValidationHash = sha2562(JSON.stringify(rawResultData));
94
+ if (expectedValidationHash !== parsedData.validationHash) {
95
+ throw new FrakRpcError(
96
+ RpcErrorCodes.corruptedResponse,
97
+ "Invalid data validation hash"
98
+ );
99
+ }
100
+ return parsedData;
101
+ }
102
+ async function decompressJson(data) {
103
+ const decompressed = await decompressFromBase64(data);
104
+ try {
105
+ return JSON.parse(decompressed);
106
+ } catch (e) {
107
+ console.error("Invalid compressed data", e);
108
+ return null;
109
+ }
110
+ }
111
+
112
+ // src/core/utils/iframeHelper.ts
113
+ var baseIframeProps = {
114
+ id: "nexus-wallet",
115
+ name: "nexus-wallet",
116
+ allow: "publickey-credentials-get *; clipboard-write; web-share *",
117
+ style: {
118
+ width: "0",
119
+ height: "0",
120
+ border: "0",
121
+ position: "absolute",
122
+ zIndex: 1e3,
123
+ top: "-1000px",
124
+ left: "-1000px"
125
+ }
126
+ };
127
+ function createIframe({
128
+ walletBaseUrl
129
+ }) {
130
+ const alreadyCreatedIFrame = document.querySelector("#nexus-wallet");
131
+ if (alreadyCreatedIFrame) {
132
+ return Promise.resolve(alreadyCreatedIFrame);
133
+ }
134
+ const iframe = document.createElement("iframe");
135
+ iframe.id = baseIframeProps.id;
136
+ iframe.name = baseIframeProps.name;
137
+ iframe.allow = baseIframeProps.allow;
138
+ iframe.style.zIndex = baseIframeProps.style.zIndex.toString();
139
+ changeIframeVisibility({ iframe, isVisible: false });
140
+ document.body.appendChild(iframe);
141
+ return new Promise((resolve) => {
142
+ iframe?.addEventListener("load", () => resolve(iframe));
143
+ iframe.src = `${walletBaseUrl}/listener`;
144
+ });
145
+ }
146
+ function changeIframeVisibility({
147
+ iframe,
148
+ isVisible
149
+ }) {
150
+ if (!isVisible) {
151
+ iframe.style.width = "0";
152
+ iframe.style.height = "0";
153
+ iframe.style.border = "0";
154
+ iframe.style.position = "fixed";
155
+ iframe.style.top = "-1000px";
156
+ iframe.style.left = "-1000px";
157
+ return;
158
+ }
159
+ iframe.style.position = "fixed";
160
+ iframe.style.top = "0";
161
+ iframe.style.left = "0";
162
+ iframe.style.width = "100%";
163
+ iframe.style.height = "100%";
164
+ iframe.style.pointerEvents = "auto";
165
+ }
166
+
167
+ // src/core/utils/NexusContext.ts
168
+ var contextKey = "nCtx";
169
+ async function parse({ url }) {
170
+ if (!url) return null;
171
+ const urlObj = new URL(url);
172
+ const nexusContext = urlObj.searchParams.get(contextKey);
173
+ if (!nexusContext) return null;
174
+ const parsedContext = await decompressJson(nexusContext);
175
+ if (!parsedContext) return null;
176
+ return parsedContext;
177
+ }
178
+ async function update({
179
+ url,
180
+ context
181
+ }) {
182
+ if (!url) return null;
183
+ const currentContext = await parse({ url });
184
+ const mergedContext = currentContext ? { ...currentContext, ...context } : context;
185
+ const compressedContext = await compressJson(mergedContext);
186
+ if (!compressedContext) return;
187
+ const urlObj = new URL(url);
188
+ urlObj.searchParams.set(contextKey, compressedContext);
189
+ return urlObj.toString();
190
+ }
191
+ async function replaceUrl({
192
+ url,
193
+ context
194
+ }) {
195
+ if (!window.location?.href || typeof window === "undefined") {
196
+ console.error("No window found, can't update context");
197
+ return;
198
+ }
199
+ const newUrl = await update({
200
+ url,
201
+ context
202
+ });
203
+ if (!newUrl) return;
204
+ window.history.replaceState(null, "", newUrl.toString());
205
+ }
206
+ var NexusContextManager = {
207
+ parse,
208
+ update,
209
+ replaceUrl
210
+ };
211
+
212
+ // src/core/utils/Deferred.ts
213
+ var Deferred = class {
214
+ constructor() {
215
+ __publicField(this, "_promise");
216
+ __publicField(this, "_resolve");
217
+ __publicField(this, "_reject");
218
+ __publicField(this, "resolve", (value) => {
219
+ this._resolve?.(value);
220
+ });
221
+ __publicField(this, "reject", (reason) => {
222
+ this._reject?.(reason);
223
+ });
224
+ this._promise = new Promise((resolve, reject) => {
225
+ this._resolve = resolve;
226
+ this._reject = reject;
227
+ });
228
+ }
229
+ get promise() {
230
+ return this._promise;
231
+ }
232
+ };
233
+
234
+ export {
235
+ FrakRpcError,
236
+ InternalError,
237
+ ClientNotFound,
238
+ RpcErrorCodes,
239
+ Deferred,
240
+ hashAndCompressData,
241
+ decompressDataAndCheckHash,
242
+ baseIframeProps,
243
+ createIframe,
244
+ changeIframeVisibility,
245
+ NexusContextManager
246
+ };
@@ -0,0 +1,243 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+ var _chunk4LT3U3H4cjs = require('./chunk-4LT3U3H4.cjs');
10
+
11
+ // src/core/utils/constants.ts
12
+ var BACKUP_KEY = "nexus-wallet-backup";
13
+
14
+ // src/core/clients/transports/iframeChannelManager.ts
15
+ function createIFrameChannelManager() {
16
+ const channels = /* @__PURE__ */ new Map();
17
+ return {
18
+ // TODO: Better id system?? uid stuff?
19
+ createChannel: (resolver) => {
20
+ const id = Math.random().toString(36).substring(7);
21
+ channels.set(id, resolver);
22
+ return id;
23
+ },
24
+ getRpcResolver: (id) => channels.get(id),
25
+ removeChannel: (id) => channels.delete(id),
26
+ destroy: () => channels.clear()
27
+ };
28
+ }
29
+
30
+ // src/core/clients/transports/iframeLifecycleManager.ts
31
+ function createIFrameLifecycleManager({
32
+ iframe
33
+ }) {
34
+ const isConnectedDeferred = new (0, _chunk4LT3U3H4cjs.Deferred)();
35
+ const handler = async (messageEvent) => {
36
+ switch (messageEvent.iframeLifecycle) {
37
+ // Resolve the isConnected promise
38
+ case "connected":
39
+ isConnectedDeferred.resolve(true);
40
+ break;
41
+ // Perform a nexus backup
42
+ case "do-backup":
43
+ if (messageEvent.data.backup) {
44
+ localStorage.setItem(BACKUP_KEY, messageEvent.data.backup);
45
+ } else {
46
+ localStorage.removeItem(BACKUP_KEY);
47
+ }
48
+ break;
49
+ // Remove nexus backup
50
+ case "remove-backup":
51
+ localStorage.removeItem(BACKUP_KEY);
52
+ break;
53
+ // Change iframe visibility
54
+ case "show":
55
+ case "hide":
56
+ _chunk4LT3U3H4cjs.changeIframeVisibility.call(void 0, {
57
+ iframe,
58
+ isVisible: messageEvent.iframeLifecycle === "show"
59
+ });
60
+ break;
61
+ }
62
+ };
63
+ return {
64
+ handleEvent: handler,
65
+ isConnected: isConnectedDeferred.promise
66
+ };
67
+ }
68
+
69
+ // src/core/clients/transports/iframeMessageHandler.ts
70
+ function createIFrameMessageHandler({
71
+ nexusWalletUrl,
72
+ iframe,
73
+ channelManager,
74
+ iframeLifecycleManager
75
+ }) {
76
+ if (typeof window === "undefined") {
77
+ throw new (0, _chunk4LT3U3H4cjs.FrakRpcError)(
78
+ _chunk4LT3U3H4cjs.RpcErrorCodes.configError,
79
+ "iframe client should be used in the browser"
80
+ );
81
+ }
82
+ if (!iframe.contentWindow) {
83
+ throw new (0, _chunk4LT3U3H4cjs.FrakRpcError)(
84
+ _chunk4LT3U3H4cjs.RpcErrorCodes.configError,
85
+ "The iframe does not have a product window"
86
+ );
87
+ }
88
+ const contentWindow = iframe.contentWindow;
89
+ const msgHandler = async (event) => {
90
+ if (!event.origin) {
91
+ return;
92
+ }
93
+ if (new URL(event.origin).origin.toLowerCase() !== new URL(nexusWalletUrl).origin.toLowerCase()) {
94
+ return;
95
+ }
96
+ if ("iframeLifecycle" in event.data) {
97
+ await iframeLifecycleManager.handleEvent(event.data);
98
+ return;
99
+ }
100
+ if ("clientLifecycle" in event.data) {
101
+ console.error(
102
+ "Client lifecycle event received on the client side, dismissing it"
103
+ );
104
+ return;
105
+ }
106
+ const channel = event.data.id;
107
+ const resolver = channelManager.getRpcResolver(channel);
108
+ if (!resolver) {
109
+ return;
110
+ }
111
+ await resolver(event.data);
112
+ };
113
+ window.addEventListener("message", msgHandler);
114
+ const sendEvent = (message) => {
115
+ contentWindow.postMessage(message, {
116
+ targetOrigin: nexusWalletUrl
117
+ });
118
+ };
119
+ const cleanup = () => {
120
+ window.removeEventListener("message", msgHandler);
121
+ };
122
+ return {
123
+ sendEvent,
124
+ cleanup
125
+ };
126
+ }
127
+
128
+ // src/core/clients/createIFrameNexusClient.ts
129
+ function createIFrameNexusClient({
130
+ config,
131
+ iframe
132
+ }) {
133
+ const channelManager = createIFrameChannelManager();
134
+ const lifecycleManager = createIFrameLifecycleManager({ iframe });
135
+ const messageHandler = createIFrameMessageHandler({
136
+ nexusWalletUrl: config.walletUrl,
137
+ iframe,
138
+ channelManager,
139
+ iframeLifecycleManager: lifecycleManager
140
+ });
141
+ const request = async (args) => {
142
+ const isConnected = await lifecycleManager.isConnected;
143
+ if (!isConnected) {
144
+ throw new (0, _chunk4LT3U3H4cjs.FrakRpcError)(
145
+ _chunk4LT3U3H4cjs.RpcErrorCodes.clientNotConnected,
146
+ "The iframe provider isn't connected yet"
147
+ );
148
+ }
149
+ const result = new (0, _chunk4LT3U3H4cjs.Deferred)();
150
+ const channelId = channelManager.createChannel(async (message) => {
151
+ const decompressed = await _chunk4LT3U3H4cjs.decompressDataAndCheckHash.call(void 0, message.data);
152
+ if (decompressed.error) {
153
+ result.reject(
154
+ new (0, _chunk4LT3U3H4cjs.FrakRpcError)(
155
+ decompressed.error.code,
156
+ decompressed.error.message,
157
+ _optionalChain([decompressed, 'access', _ => _.error, 'optionalAccess', _2 => _2.data])
158
+ )
159
+ );
160
+ } else {
161
+ result.resolve(decompressed.result);
162
+ }
163
+ channelManager.removeChannel(channelId);
164
+ });
165
+ const compressedMessage = await _chunk4LT3U3H4cjs.hashAndCompressData.call(void 0, args);
166
+ messageHandler.sendEvent({
167
+ id: channelId,
168
+ topic: args.method,
169
+ data: compressedMessage
170
+ });
171
+ return result.promise;
172
+ };
173
+ const listenerRequest = async (args, callback) => {
174
+ const isConnected = await lifecycleManager.isConnected;
175
+ if (!isConnected) {
176
+ throw new (0, _chunk4LT3U3H4cjs.FrakRpcError)(
177
+ _chunk4LT3U3H4cjs.RpcErrorCodes.clientNotConnected,
178
+ "The iframe provider isn't connected yet"
179
+ );
180
+ }
181
+ const channelId = channelManager.createChannel(async (message) => {
182
+ const decompressed = await _chunk4LT3U3H4cjs.decompressDataAndCheckHash.call(void 0, message.data);
183
+ if (decompressed.result) {
184
+ callback(decompressed.result);
185
+ } else {
186
+ throw new (0, _chunk4LT3U3H4cjs.InternalError)("No valid result in the response");
187
+ }
188
+ });
189
+ const compressedMessage = await _chunk4LT3U3H4cjs.hashAndCompressData.call(void 0, args);
190
+ messageHandler.sendEvent({
191
+ id: channelId,
192
+ topic: args.method,
193
+ data: compressedMessage
194
+ });
195
+ };
196
+ const destroy = async () => {
197
+ channelManager.destroy();
198
+ messageHandler.cleanup();
199
+ iframe.remove();
200
+ };
201
+ const waitForSetup = postConnectionSetup({
202
+ config,
203
+ messageHandler,
204
+ lifecycleManager
205
+ });
206
+ return {
207
+ config,
208
+ waitForConnection: lifecycleManager.isConnected,
209
+ waitForSetup,
210
+ request,
211
+ listenerRequest,
212
+ destroy
213
+ };
214
+ }
215
+ async function postConnectionSetup({
216
+ config,
217
+ messageHandler,
218
+ lifecycleManager
219
+ }) {
220
+ await lifecycleManager.isConnected;
221
+ const pushCss = async () => {
222
+ const cssLink = config.metadata.css;
223
+ if (!cssLink) return;
224
+ messageHandler.sendEvent({
225
+ clientLifecycle: "modal-css",
226
+ data: { cssLink }
227
+ });
228
+ };
229
+ const pushBackup = async () => {
230
+ if (typeof window === "undefined") return;
231
+ const backup = window.localStorage.getItem(BACKUP_KEY);
232
+ if (!backup) return;
233
+ messageHandler.sendEvent({
234
+ clientLifecycle: "restore-backup",
235
+ data: { backup }
236
+ });
237
+ };
238
+ await Promise.all([pushCss(), pushBackup()]);
239
+ }
240
+
241
+
242
+
243
+ exports.createIFrameNexusClient = createIFrameNexusClient;