rise-wallet 0.2.29-beta.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +154 -8
  2. package/dist/cli/bin/commands-GxQUW4ck.js +50 -0
  3. package/dist/cli/bin/index.js +1 -1
  4. package/dist/core/Chains.d.ts +285 -12
  5. package/dist/core/Chains.d.ts.map +1 -1
  6. package/dist/core/Porto.d.ts +286 -13
  7. package/dist/core/Porto.d.ts.map +1 -1
  8. package/dist/core/Porto.js +1 -1
  9. package/dist/core/Porto.js.map +1 -1
  10. package/dist/core/internal/_generated/chains.d.ts +1 -1
  11. package/dist/core/internal/_generated/chains.d.ts.map +1 -1
  12. package/dist/core/internal/_generated/chains.js +1 -1
  13. package/dist/core/internal/_generated/chains.js.map +1 -1
  14. package/dist/core/internal/provider.js +1 -1
  15. package/dist/core/internal/provider.js.map +1 -1
  16. package/dist/core/react-native/Porto.d.ts +286 -13
  17. package/dist/core/react-native/Porto.d.ts.map +1 -1
  18. package/dist/remote/Porto.d.ts +286 -13
  19. package/dist/remote/Porto.d.ts.map +1 -1
  20. package/dist/tsconfig.tmp.tsbuildinfo +1 -1
  21. package/dist/wagmi/Connector.d.ts +1 -1
  22. package/dist/wagmi/Connector.js +4 -4
  23. package/dist/wagmi/Connector.js.map +1 -1
  24. package/dist/wagmi/index.d.ts +1 -1
  25. package/dist/wagmi/index.js +1 -1
  26. package/dist/wagmi/index.native.d.ts +1 -1
  27. package/dist/wagmi/index.native.js +1 -1
  28. package/package.json +3 -3
  29. package/src/core/Porto.ts +1 -1
  30. package/src/core/internal/_generated/chains.ts +1 -0
  31. package/src/core/internal/provider.ts +2 -2
  32. package/src/wagmi/Connector.ts +4 -4
  33. package/src/wagmi/index.native.ts +1 -1
  34. package/src/wagmi/index.ts +1 -1
  35. package/dist/cli/bin/commands-BWkYsY2L.js +0 -50
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
- # Rise Wallet
1
+ # RISE Wallet
2
2
 
3
- A fork of [Porto](https://github.com/ithacaxyz/porto) — Next-gen Account for Ethereum made specifically for the [RISE chain](https://riselabs.xyz).
3
+ Next-generation smart contract wallet for Ethereum, built specifically for the [RISE chain](https://riselabs.xyz).
4
+
5
+ RISE Wallet is a fork of [Porto](https://github.com/ithacaxyz/porto), featuring passkey-based authentication, session keys, and seamless integration with modern web3 applications.
4
6
 
5
7
  <p>
6
8
  <a href="https://github.com/ithacaxyz/porto/blob/main/LICENSE-MIT">
@@ -17,9 +19,152 @@ A fork of [Porto](https://github.com/ithacaxyz/porto) — Next-gen Account for E
17
19
  </a>
18
20
  </p>
19
21
 
22
+ ## Features
23
+
24
+ - **Passkey Authentication**: No seed phrases - use biometrics or security keys
25
+ - **Session Keys**: Gasless transactions for improved UX
26
+ - **ERC-7702 Permissions**: Granular control over wallet capabilities
27
+ - **Wagmi Integration**: Drop-in replacement for traditional wallet connectors
28
+ - **Multi-platform**: Works on web, mobile (React Native), and desktop
29
+
20
30
  ## Documentation
21
31
 
22
- For Porto documentation and guides, visit [porto.sh](https://porto.sh).
32
+ For comprehensive guides and API reference, visit the [RISE Documentation](https://docs.risechain.com).
33
+
34
+ ## Quick Start
35
+
36
+ ### Installation
37
+
38
+ ```bash
39
+ # npm
40
+ npm i rise-wallet wagmi viem @tanstack/react-query
41
+
42
+ # pnpm
43
+ pnpm add rise-wallet wagmi viem @tanstack/react-query
44
+
45
+ # yarn
46
+ yarn add rise-wallet wagmi viem @tanstack/react-query
47
+
48
+ # bun
49
+ bun add rise-wallet wagmi viem @tanstack/react-query
50
+ ```
51
+
52
+ ### Basic Setup
53
+
54
+ #### 1. Configure the Rise Wallet Connector
55
+
56
+ ```tsx
57
+ import { Chains, RiseWallet } from 'rise-wallet'
58
+ import { riseWallet } from 'rise-wallet/wagmi'
59
+ import { createConfig, http } from 'wagmi'
60
+
61
+ // Export the connector for advanced usage
62
+ export const rwConnector = riseWallet(RiseWallet.defaultConfig)
63
+
64
+ // Create wagmi config
65
+ export const config = createConfig({
66
+ chains: [Chains.riseTestnet],
67
+ connectors: [rwConnector],
68
+ transports: {
69
+ [Chains.riseTestnet.id]: http('https://testnet.riselabs.xyz'),
70
+ },
71
+ })
72
+ ```
73
+
74
+ #### 2. Set Up Providers
75
+
76
+ ```tsx
77
+ 'use client'
78
+
79
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
80
+ import { WagmiProvider } from 'wagmi'
81
+ import { config } from './config'
82
+ import { useState } from 'react'
83
+
84
+ export function Providers({ children }: { children: React.ReactNode }) {
85
+ const [queryClient] = useState(() => new QueryClient())
86
+
87
+ return (
88
+ <WagmiProvider config={config}>
89
+ <QueryClientProvider client={queryClient}>
90
+ {children}
91
+ </QueryClientProvider>
92
+ </WagmiProvider>
93
+ )
94
+ }
95
+ ```
96
+
97
+ #### 3. Connect to Wallet
98
+
99
+ ```tsx
100
+ import { useConnect, useConnection, useDisconnect, useConnectors } from 'wagmi'
101
+
102
+ export function WalletButton() {
103
+ const { address, isConnected } = useConnection()
104
+ const connect = useConnect()
105
+ const disconnect = useDisconnect()
106
+ const connectors = useConnectors()
107
+
108
+ if (isConnected) {
109
+ return (
110
+ <div>
111
+ <span>{address}</span>
112
+ <button onClick={() => disconnect.mutate()}>Disconnect</button>
113
+ </div>
114
+ )
115
+ }
116
+
117
+ const rwConnector = connectors.find(c => c.id === 'com.risechain.wallet')
118
+ if (!rwConnector) return null
119
+
120
+ return (
121
+ <button onClick={() => connect.mutate({ connector: rwConnector })}>
122
+ Connect with Passkey
123
+ </button>
124
+ )
125
+ }
126
+ ```
127
+
128
+ ### Advanced Features
129
+
130
+ #### Session Keys
131
+
132
+ Create session keys for gasless transactions:
133
+
134
+ ```tsx
135
+ import { Hooks } from 'rise-wallet/wagmi'
136
+
137
+ const grantPermissions = Hooks.useGrantPermissions()
138
+
139
+ const createSession = async () => {
140
+ await grantPermissions.mutateAsync({
141
+ key: { publicKey: '...', type: 'p256' },
142
+ expiry: Math.floor(Date.now() / 1000) + 3600, // 1 hour
143
+ permissions: {
144
+ calls: [{
145
+ to: '0x...',
146
+ signature: '0x...',
147
+ }],
148
+ },
149
+ })
150
+ }
151
+ ```
152
+
153
+ #### Batched Transactions
154
+
155
+ ```tsx
156
+ import { useSendCalls } from 'wagmi'
157
+
158
+ const sendCalls = useSendCalls()
159
+
160
+ await sendCalls.mutateAsync({
161
+ calls: [
162
+ { to: TOKEN_ADDRESS, data: approveCalldata },
163
+ { to: DEX_ADDRESS, data: swapCalldata },
164
+ ],
165
+ atomicRequired: true,
166
+ })
167
+ ```
23
168
 
24
169
  ## Development
25
170
 
@@ -50,6 +195,12 @@ forge build --config-path ./contracts/demo/foundry.toml # Build
50
195
  forge test --config-path ./contracts/demo/foundry.toml # Test
51
196
  ```
52
197
 
198
+ ## Resources
199
+
200
+ - [Documentation](https://docs.risechain.com) - Comprehensive guides and API reference
201
+ - [RISE Chain](https://risechain.com) - Learn about the RISE blockchain
202
+ - [Examples](https://docs.risechain.com/builders/wallet) - Integration examples and tutorials
203
+
53
204
  ## License
54
205
 
55
206
  <sup>
@@ -64,8 +215,3 @@ Unless you explicitly state otherwise, any contribution intentionally submitted
64
215
  for inclusion in these packages by you, as defined in the Apache-2.0 license,
65
216
  shall be dual licensed as above, without any additional terms or conditions.
66
217
  </sub>
67
-
68
- ## Getting Help
69
-
70
- Have questions or building something cool with Rise Wallet?
71
- Join the Telegram group to chat with the team and other devs: [@porto_devs](https://t.me/porto_devs)
@@ -0,0 +1,50 @@
1
+ import*as e from"node:fs";import*as t from"node:os";import*as n from"node:path";import{setTimeout as r}from"node:timers/promises";import{stripVTControlCharacters as i}from"node:util";import a,{stdin as o,stdout as s}from"node:process";import*as c from"node:readline";import l from"node:readline";import{Writable as u}from"node:stream";import{BaseError as d,createClient as f,createTransport as p,custom as m,defineChain as h,fallback as g,getAddress as _,hashMessage as v,hashTypedData as y,http as b,numberToHex as ee,withCache as x,zeroAddress as S}from"viem";import*as te from"viem/actions";import{getEip712Domain as ne,verifyHash as C,waitForCallsStatus as w}from"viem/actions";import{anvil as re,baseSepolia as ie,riseTestnet as ae}from"viem/chains";import*as oe from"ox/AbiFunction";import*as se from"ox/AbiParameters";import*as T from"ox/Address";import*as ce from"ox/Bytes";import*as le from"ox/Hash";import*as E from"ox/Hex";import*as ue from"ox/Json";import*as de from"ox/P256";import*as D from"ox/PublicKey";import*as O from"ox/Secp256k1";import*as fe from"ox/Signature";import*as pe from"ox/TypedData";import*as me from"ox/Value";import*as he from"ox/WebAuthnP256";import*as ge from"ox/WebCryptoP256";import*as k from"zod/mini";import{z as A}from"zod/mini";import*as _e from"ox/Errors";import{toAccount as ve}from"viem/accounts";import*as j from"ox/Provider";import*as ye from"node:url";import{Json as be}from"ox";import*as xe from"node:http";import*as Se from"ox/AbiItem";import*as Ce from"ox/RpcRequest";import*as M from"ox/RpcResponse";import*as we from"ox/RpcSchema";import*as Te from"ox/Siwe";import*as Ee from"ox/PersonalMessage";import*as De from"ox/AbiError";import"ox/Authorization";import{getExecuteError as Oe}from"viem/experimental/erc7821";import*as ke from"ox/erc8010/SignatureErc8010";import{devtools as Ae,persist as je,subscribeWithSelector as Me}from"zustand/middleware";import{createStore as Ne}from"zustand/vanilla";import*as Pe from"mipd";import{createStore as Fe,del as Ie,get as Le,set as Re}from"idb-keyval";var ze=Object.create,Be=Object.defineProperty,Ve=Object.getOwnPropertyDescriptor,He=Object.getOwnPropertyNames,Ue=Object.getPrototypeOf,We=Object.prototype.hasOwnProperty,Ge=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ke=(e,t)=>{let n={};for(var r in e)Be(n,r,{get:e[r],enumerable:!0});return t&&Be(n,Symbol.toStringTag,{value:`Module`}),n},qe=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=He(t),a=0,o=i.length,s;a<o;a++)s=i[a],!We.call(e,s)&&s!==n&&Be(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=Ve(t,s))||r.enumerable});return e},Je=(e,t,n)=>(n=e==null?{}:ze(Ue(e)),qe(t||!e||!e.__esModule?Be(n,`default`,{value:e,enumerable:!0}):n,e)),Ye=Ge(((e,t)=>{let n={to(e,t){return t?`[${t+1};${e+1}H`:`[${e+1}G`},move(e,t){let n=``;return e<0?n+=`[${-e}D`:e>0&&(n+=`[${e}C`),t<0?n+=`[${-t}A`:t>0&&(n+=`[${t}B`),n},up:(e=1)=>`[${e}A`,down:(e=1)=>`[${e}B`,forward:(e=1)=>`[${e}C`,backward:(e=1)=>`[${e}D`,nextLine:(e=1)=>`\x1B[E`.repeat(e),prevLine:(e=1)=>`\x1B[F`.repeat(e),left:`\x1B[G`,hide:`\x1B[?25l`,show:`\x1B[?25h`,save:`\x1B7`,restore:`\x1B8`};t.exports={cursor:n,scroll:{up:(e=1)=>`\x1B[S`.repeat(e),down:(e=1)=>`\x1B[T`.repeat(e)},erase:{screen:`\x1B[2J`,up:(e=1)=>`\x1B[1J`.repeat(e),down:(e=1)=>`\x1B[J`.repeat(e),line:`\x1B[2K`,lineEnd:`\x1B[K`,lineStart:`\x1B[1K`,lines(e){let t=``;for(let r=0;r<e;r++)t+=this.line+(r<e-1?n.up():``);return e&&(t+=n.left),t}},beep:`\x07`}})),Xe=Ge(((e,t)=>{let n=process||{},r=n.argv||[],i=n.env||{},a=!(i.NO_COLOR||r.includes(`--no-color`))&&(!!i.FORCE_COLOR||r.includes(`--color`)||n.platform===`win32`||(n.stdout||{}).isTTY&&i.TERM!==`dumb`||!!i.CI),o=(e,t,n=e)=>r=>{let i=``+r,a=i.indexOf(t,e.length);return~a?e+s(i,t,n,a)+t:e+i+t},s=(e,t,n,r)=>{let i=``,a=0;do i+=e.substring(a,r)+n,a=r+t.length,r=e.indexOf(t,a);while(~r);return i+e.substring(a)},c=(e=a)=>{let t=e?o:()=>String;return{isColorSupported:e,reset:t(`\x1B[0m`,`\x1B[0m`),bold:t(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),dim:t(`\x1B[2m`,`\x1B[22m`,`\x1B[22m\x1B[2m`),italic:t(`\x1B[3m`,`\x1B[23m`),underline:t(`\x1B[4m`,`\x1B[24m`),inverse:t(`\x1B[7m`,`\x1B[27m`),hidden:t(`\x1B[8m`,`\x1B[28m`),strikethrough:t(`\x1B[9m`,`\x1B[29m`),black:t(`\x1B[30m`,`\x1B[39m`),red:t(`\x1B[31m`,`\x1B[39m`),green:t(`\x1B[32m`,`\x1B[39m`),yellow:t(`\x1B[33m`,`\x1B[39m`),blue:t(`\x1B[34m`,`\x1B[39m`),magenta:t(`\x1B[35m`,`\x1B[39m`),cyan:t(`\x1B[36m`,`\x1B[39m`),white:t(`\x1B[37m`,`\x1B[39m`),gray:t(`\x1B[90m`,`\x1B[39m`),bgBlack:t(`\x1B[40m`,`\x1B[49m`),bgRed:t(`\x1B[41m`,`\x1B[49m`),bgGreen:t(`\x1B[42m`,`\x1B[49m`),bgYellow:t(`\x1B[43m`,`\x1B[49m`),bgBlue:t(`\x1B[44m`,`\x1B[49m`),bgMagenta:t(`\x1B[45m`,`\x1B[49m`),bgCyan:t(`\x1B[46m`,`\x1B[49m`),bgWhite:t(`\x1B[47m`,`\x1B[49m`),blackBright:t(`\x1B[90m`,`\x1B[39m`),redBright:t(`\x1B[91m`,`\x1B[39m`),greenBright:t(`\x1B[92m`,`\x1B[39m`),yellowBright:t(`\x1B[93m`,`\x1B[39m`),blueBright:t(`\x1B[94m`,`\x1B[39m`),magentaBright:t(`\x1B[95m`,`\x1B[39m`),cyanBright:t(`\x1B[96m`,`\x1B[39m`),whiteBright:t(`\x1B[97m`,`\x1B[39m`),bgBlackBright:t(`\x1B[100m`,`\x1B[49m`),bgRedBright:t(`\x1B[101m`,`\x1B[49m`),bgGreenBright:t(`\x1B[102m`,`\x1B[49m`),bgYellowBright:t(`\x1B[103m`,`\x1B[49m`),bgBlueBright:t(`\x1B[104m`,`\x1B[49m`),bgMagentaBright:t(`\x1B[105m`,`\x1B[49m`),bgCyanBright:t(`\x1B[106m`,`\x1B[49m`),bgWhiteBright:t(`\x1B[107m`,`\x1B[49m`)}};t.exports=c(),t.exports.createColors=c})),N=Ye();Xe();function Ze({onlyFirst:e=!1}={}){let t=[`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))`,`(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))`].join(`|`);return new RegExp(t,e?void 0:`g`)}const Qe=Ze();function $e(e){if(typeof e!=`string`)throw TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(Qe,``)}function et(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}var tt={exports:{}};(function(e){var t={};e.exports=t,t.eastAsianWidth=function(e){var t=e.charCodeAt(0),n=e.length==2?e.charCodeAt(1):0,r=t;return 55296<=t&&t<=56319&&56320<=n&&n<=57343&&(t&=1023,n&=1023,r=t<<10|n,r+=65536),r==12288||65281<=r&&r<=65376||65504<=r&&r<=65510?`F`:r==8361||65377<=r&&r<=65470||65474<=r&&r<=65479||65482<=r&&r<=65487||65490<=r&&r<=65495||65498<=r&&r<=65500||65512<=r&&r<=65518?`H`:4352<=r&&r<=4447||4515<=r&&r<=4519||4602<=r&&r<=4607||9001<=r&&r<=9002||11904<=r&&r<=11929||11931<=r&&r<=12019||12032<=r&&r<=12245||12272<=r&&r<=12283||12289<=r&&r<=12350||12353<=r&&r<=12438||12441<=r&&r<=12543||12549<=r&&r<=12589||12593<=r&&r<=12686||12688<=r&&r<=12730||12736<=r&&r<=12771||12784<=r&&r<=12830||12832<=r&&r<=12871||12880<=r&&r<=13054||13056<=r&&r<=19903||19968<=r&&r<=42124||42128<=r&&r<=42182||43360<=r&&r<=43388||44032<=r&&r<=55203||55216<=r&&r<=55238||55243<=r&&r<=55291||63744<=r&&r<=64255||65040<=r&&r<=65049||65072<=r&&r<=65106||65108<=r&&r<=65126||65128<=r&&r<=65131||110592<=r&&r<=110593||127488<=r&&r<=127490||127504<=r&&r<=127546||127552<=r&&r<=127560||127568<=r&&r<=127569||131072<=r&&r<=194367||177984<=r&&r<=196605||196608<=r&&r<=262141?`W`:32<=r&&r<=126||162<=r&&r<=163||165<=r&&r<=166||r==172||r==175||10214<=r&&r<=10221||10629<=r&&r<=10630?`Na`:r==161||r==164||167<=r&&r<=168||r==170||173<=r&&r<=174||176<=r&&r<=180||182<=r&&r<=186||188<=r&&r<=191||r==198||r==208||215<=r&&r<=216||222<=r&&r<=225||r==230||232<=r&&r<=234||236<=r&&r<=237||r==240||242<=r&&r<=243||247<=r&&r<=250||r==252||r==254||r==257||r==273||r==275||r==283||294<=r&&r<=295||r==299||305<=r&&r<=307||r==312||319<=r&&r<=322||r==324||328<=r&&r<=331||r==333||338<=r&&r<=339||358<=r&&r<=359||r==363||r==462||r==464||r==466||r==468||r==470||r==472||r==474||r==476||r==593||r==609||r==708||r==711||713<=r&&r<=715||r==717||r==720||728<=r&&r<=731||r==733||r==735||768<=r&&r<=879||913<=r&&r<=929||931<=r&&r<=937||945<=r&&r<=961||963<=r&&r<=969||r==1025||1040<=r&&r<=1103||r==1105||r==8208||8211<=r&&r<=8214||8216<=r&&r<=8217||8220<=r&&r<=8221||8224<=r&&r<=8226||8228<=r&&r<=8231||r==8240||8242<=r&&r<=8243||r==8245||r==8251||r==8254||r==8308||r==8319||8321<=r&&r<=8324||r==8364||r==8451||r==8453||r==8457||r==8467||r==8470||8481<=r&&r<=8482||r==8486||r==8491||8531<=r&&r<=8532||8539<=r&&r<=8542||8544<=r&&r<=8555||8560<=r&&r<=8569||r==8585||8592<=r&&r<=8601||8632<=r&&r<=8633||r==8658||r==8660||r==8679||r==8704||8706<=r&&r<=8707||8711<=r&&r<=8712||r==8715||r==8719||r==8721||r==8725||r==8730||8733<=r&&r<=8736||r==8739||r==8741||8743<=r&&r<=8748||r==8750||8756<=r&&r<=8759||8764<=r&&r<=8765||r==8776||r==8780||r==8786||8800<=r&&r<=8801||8804<=r&&r<=8807||8810<=r&&r<=8811||8814<=r&&r<=8815||8834<=r&&r<=8835||8838<=r&&r<=8839||r==8853||r==8857||r==8869||r==8895||r==8978||9312<=r&&r<=9449||9451<=r&&r<=9547||9552<=r&&r<=9587||9600<=r&&r<=9615||9618<=r&&r<=9621||9632<=r&&r<=9633||9635<=r&&r<=9641||9650<=r&&r<=9651||9654<=r&&r<=9655||9660<=r&&r<=9661||9664<=r&&r<=9665||9670<=r&&r<=9672||r==9675||9678<=r&&r<=9681||9698<=r&&r<=9701||r==9711||9733<=r&&r<=9734||r==9737||9742<=r&&r<=9743||9748<=r&&r<=9749||r==9756||r==9758||r==9792||r==9794||9824<=r&&r<=9825||9827<=r&&r<=9829||9831<=r&&r<=9834||9836<=r&&r<=9837||r==9839||9886<=r&&r<=9887||9918<=r&&r<=9919||9924<=r&&r<=9933||9935<=r&&r<=9953||r==9955||9960<=r&&r<=9983||r==10045||r==10071||10102<=r&&r<=10111||11093<=r&&r<=11097||12872<=r&&r<=12879||57344<=r&&r<=63743||65024<=r&&r<=65039||r==65533||127232<=r&&r<=127242||127248<=r&&r<=127277||127280<=r&&r<=127337||127344<=r&&r<=127386||917760<=r&&r<=917999||983040<=r&&r<=1048573||1048576<=r&&r<=1114109?`A`:`N`},t.characterLength=function(e){var t=this.eastAsianWidth(e);return t==`F`||t==`W`||t==`A`?2:1};function n(e){return e.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}t.length=function(e){for(var t=n(e),r=0,i=0;i<t.length;i++)r+=this.characterLength(t[i]);return r},t.slice=function(e,r,i){textLen=t.length(e),r||=0,i||=1,r<0&&(r=textLen+r),i<0&&(i=textLen+i);for(var a=``,o=0,s=n(e),c=0;c<s.length;c++){var l=s[c],u=t.length(l);if(o>=r-(u==2?1:0))if(o+u<=i)a+=l;else break;o+=u}return a}})(tt);var nt=tt.exports;const rt=et(nt),it=et(function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g});function at(e,t={}){if(typeof e!=`string`||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=$e(e),e.length===0))return 0;e=e.replace(it(),` `);let n=t.ambiguousIsNarrow?1:2,r=0;for(let t of e){let e=t.codePointAt(0);if(!(e<=31||e>=127&&e<=159||e>=768&&e<=879))switch(rt.eastAsianWidth(t)){case`F`:case`W`:r+=2;break;case`A`:r+=n;break;default:r+=1}}return r}const ot=(e=0)=>t=>`\x1B[${t+e}m`,st=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,ct=(e=0)=>(t,n,r)=>`\x1B[${38+e};2;${t};${n};${r}m`,P={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(P.modifier);const lt=Object.keys(P.color),ut=Object.keys(P.bgColor);[...lt,...ut];function dt(){let e=new Map;for(let[t,n]of Object.entries(P)){for(let[t,r]of Object.entries(n))P[t]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[t]=P[t],e.set(r[0],r[1]);Object.defineProperty(P,t,{value:n,enumerable:!1})}return Object.defineProperty(P,`codes`,{value:e,enumerable:!1}),P.color.close=`\x1B[39m`,P.bgColor.close=`\x1B[49m`,P.color.ansi=ot(),P.color.ansi256=st(),P.color.ansi16m=ct(),P.bgColor.ansi=ot(10),P.bgColor.ansi256=st(10),P.bgColor.ansi16m=ct(10),Object.defineProperties(P,{rgbToAnsi256:{value:(e,t,n)=>e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value:e=>{let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[n]=t;n.length===3&&(n=[...n].map(e=>e+e).join(``));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:e=>P.rgbToAnsi256(...P.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:e=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,n,r;if(e>=232)t=((e-232)*10+8)/255,n=t,r=t;else{e-=16;let i=e%36;t=Math.floor(e/36)/5,n=Math.floor(i/6)/5,r=i%6/5}let i=Math.max(t,n,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(t));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(e,t,n)=>P.ansi256ToAnsi(P.rgbToAnsi256(e,t,n)),enumerable:!1},hexToAnsi:{value:e=>P.ansi256ToAnsi(P.hexToAnsi256(e)),enumerable:!1}}),P}const ft=dt(),pt=new Set([`\x1B`,`›`]),mt=`]8;;`,ht=e=>`${pt.values().next().value}[${e}m`,gt=e=>`${pt.values().next().value}${mt}${e}`,_t=e=>e.split(` `).map(e=>at(e)),vt=(e,t,n)=>{let r=[...t],i=!1,a=!1,o=at($e(e[e.length-1]));for(let[t,s]of r.entries()){let c=at(s);if(o+c<=n?e[e.length-1]+=s:(e.push(s),o=0),pt.has(s)&&(i=!0,a=r.slice(t+1).join(``).startsWith(mt)),i){a?s===`\x07`&&(i=!1,a=!1):s===`m`&&(i=!1);continue}o+=c,o===n&&t<r.length-1&&(e.push(``),o=0)}!o&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},yt=e=>{let t=e.split(` `),n=t.length;for(;n>0&&!(at(t[n-1])>0);)n--;return n===t.length?e:t.slice(0,n).join(` `)+t.slice(n).join(``)},bt=(e,t,n={})=>{if(n.trim!==!1&&e.trim()===``)return``;let r=``,i,a,o=_t(e),s=[``];for(let[r,i]of e.split(` `).entries()){n.trim!==!1&&(s[s.length-1]=s[s.length-1].trimStart());let e=at(s[s.length-1]);if(r!==0&&(e>=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(``),e=0),(e>0||n.trim===!1)&&(s[s.length-1]+=` `,e++)),n.hard&&o[r]>t){let n=t-e,a=1+Math.floor((o[r]-n-1)/t);Math.floor((o[r]-1)/t)<a&&s.push(``),vt(s,i,t);continue}if(e+o[r]>t&&e>0&&o[r]>0){if(n.wordWrap===!1&&e<t){vt(s,i,t);continue}s.push(``)}if(e+o[r]>t&&n.wordWrap===!1){vt(s,i,t);continue}s[s.length-1]+=i}n.trim!==!1&&(s=s.map(e=>yt(e)));let c=[...s.join(`
2
+ `)];for(let[e,t]of c.entries()){if(r+=t,pt.has(t)){let{groups:t}=RegExp(`(?:\\[(?<code>\\d+)m|\\${mt}(?<uri>.*))`).exec(c.slice(e).join(``))||{groups:{}};if(t.code!==void 0){let e=Number.parseFloat(t.code);i=e===39?void 0:e}else t.uri!==void 0&&(a=t.uri.length===0?void 0:t.uri)}let n=ft.codes.get(Number(i));c[e+1]===`
3
+ `?(a&&(r+=gt(``)),i&&n&&(r+=ht(n))):t===`
4
+ `&&(i&&n&&(r+=ht(i)),a&&(r+=gt(a)))}return r};function xt(e,t,n){return String(e).normalize().replace(/\r\n/g,`
5
+ `).split(`
6
+ `).map(e=>bt(e,t,n)).join(`
7
+ `)}const St={actions:new Set([`up`,`down`,`left`,`right`,`space`,`enter`,`cancel`]),aliases:new Map([[`k`,`up`],[`j`,`down`],[`h`,`left`],[`l`,`right`],[``,`cancel`],[`escape`,`cancel`]])};function Ct(e,t){if(typeof e==`string`)return St.aliases.get(e)===t;for(let n of e)if(n!==void 0&&Ct(n,t))return!0;return!1}function wt(e,t){if(e===t)return;let n=e.split(`
8
+ `),r=t.split(`
9
+ `),i=[];for(let e=0;e<Math.max(n.length,r.length);e++)n[e]!==r[e]&&i.push(e);return i}const Tt=globalThis.process.platform.startsWith(`win`),Et=Symbol(`clack:cancel`);function Dt(e,t){let n=e;n.isTTY&&n.setRawMode(t)}function Ot({input:e=o,output:t=s,overwrite:n=!0,hideCursor:r=!0}={}){let i=c.createInterface({input:e,output:t,prompt:``,tabSize:1});c.emitKeypressEvents(e,i),e.isTTY&&e.setRawMode(!0);let a=(i,{name:o,sequence:s})=>{if(Ct([String(i),o,s],`cancel`)){r&&t.write(N.cursor.show),process.exit(0);return}if(!n)return;let l=o===`return`?0:-1,u=o===`return`?-1:0;c.moveCursor(t,l,u,()=>{c.clearLine(t,1,()=>{e.once(`keypress`,a)})})};return r&&t.write(N.cursor.hide),e.once(`keypress`,a),()=>{e.off(`keypress`,a),r&&t.write(N.cursor.show),e.isTTY&&!Tt&&e.setRawMode(!1),i.terminal=!1,i.close()}}var kt=Object.defineProperty,At=(e,t,n)=>t in e?kt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,F=(e,t,n)=>(At(e,typeof t==`symbol`?t:t+``,n),n),jt=class{constructor(e,t=!0){F(this,`input`),F(this,`output`),F(this,`_abortSignal`),F(this,`rl`),F(this,`opts`),F(this,`_render`),F(this,`_track`,!1),F(this,`_prevFrame`,``),F(this,`_subscribers`,new Map),F(this,`_cursor`,0),F(this,`state`,`initial`),F(this,`error`,``),F(this,`value`);let{input:n=o,output:r=s,render:i,signal:a,...c}=e;this.opts=c,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=i.bind(this),this._track=t,this._abortSignal=a,this.input=n,this.output=r}unsubscribe(){this._subscribers.clear()}setSubscriber(e,t){let n=this._subscribers.get(e)??[];n.push(t),this._subscribers.set(e,n)}on(e,t){this.setSubscriber(e,{cb:t})}once(e,t){this.setSubscriber(e,{cb:t,once:!0})}emit(e,...t){let n=this._subscribers.get(e)??[],r=[];for(let e of n)e.cb(...t),e.once&&r.push(()=>n.splice(n.indexOf(e),1));for(let e of r)e()}prompt(){return new Promise((e,t)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state=`cancel`,this.close(),e(Et);this._abortSignal.addEventListener(`abort`,()=>{this.state=`cancel`,this.close()},{once:!0})}let n=new u;n._write=(e,t,n)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,``),this._cursor=this.rl?.cursor??0,this.emit(`value`,this.value)),n()},this.input.pipe(n),this.rl=l.createInterface({input:this.input,output:n,tabSize:2,prompt:``,escapeCodeTimeout:50,terminal:!0}),l.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on(`keypress`,this.onKeypress),Dt(this.input,!0),this.output.on(`resize`,this.render),this.render(),this.once(`submit`,()=>{this.output.write(N.cursor.show),this.output.off(`resize`,this.render),Dt(this.input,!1),e(this.value)}),this.once(`cancel`,()=>{this.output.write(N.cursor.show),this.output.off(`resize`,this.render),Dt(this.input,!1),e(Et)})})}onKeypress(e,t){if(this.state===`error`&&(this.state=`active`),t?.name&&(!this._track&&St.aliases.has(t.name)&&this.emit(`cursor`,St.aliases.get(t.name)),St.actions.has(t.name)&&this.emit(`cursor`,t.name)),e&&(e.toLowerCase()===`y`||e.toLowerCase()===`n`)&&this.emit(`confirm`,e.toLowerCase()===`y`),e===` `&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit(`value`,this.opts.placeholder))),e&&this.emit(`key`,e.toLowerCase()),t?.name===`return`){if(this.opts.validate){let e=this.opts.validate(this.value);e&&(this.error=e instanceof Error?e.message:e,this.state=`error`,this.rl?.write(this.value))}this.state!==`error`&&(this.state=`submit`)}Ct([e,t?.name,t?.sequence],`cancel`)&&(this.state=`cancel`),(this.state===`submit`||this.state===`cancel`)&&this.emit(`finalize`),this.render(),(this.state===`submit`||this.state===`cancel`)&&this.close()}close(){this.input.unpipe(),this.input.removeListener(`keypress`,this.onKeypress),this.output.write(`
10
+ `),Dt(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=xt(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
11
+ `).length-1;this.output.write(N.cursor.move(-999,e*-1))}render(){let e=xt(this._render(this)??``,process.stdout.columns,{hard:!0});if(e!==this._prevFrame){if(this.state===`initial`)this.output.write(N.cursor.hide);else{let t=wt(this._prevFrame,e);if(this.restoreCursor(),t&&t?.length===1){let n=t[0];this.output.write(N.cursor.move(0,n)),this.output.write(N.erase.lines(1));let r=e.split(`
12
+ `);this.output.write(r[n]),this._prevFrame=e,this.output.write(N.cursor.move(0,r.length-n-1));return}if(t&&t?.length>1){let n=t[0];this.output.write(N.cursor.move(0,n)),this.output.write(N.erase.down());let r=e.split(`
13
+ `).slice(n);this.output.write(r.join(`
14
+ `)),this._prevFrame=e;return}this.output.write(N.erase.down())}this.output.write(e),this.state===`initial`&&(this.state=`active`),this._prevFrame=e}}},Mt=class extends jt{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on(`value`,()=>{this.value=this._value}),this.on(`confirm`,e=>{this.output.write(N.cursor.move(0,-1)),this.value=e,this.state=`submit`,this.close()}),this.on(`cursor`,()=>{this.value=!this.value})}};Object.defineProperty,Object.defineProperty,Object.defineProperty,Object.defineProperty,Object.defineProperty;var I=Je(Xe(),1),Nt=Ye();function Pt(){return a.platform===`win32`?!!a.env.CI||!!a.env.WT_SESSION||!!a.env.TERMINUS_SUBLIME||a.env.ConEmuTask===`{cmd::Cmder}`||a.env.TERM_PROGRAM===`Terminus-Sublime`||a.env.TERM_PROGRAM===`vscode`||a.env.TERM===`xterm-256color`||a.env.TERM===`alacritty`||a.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`:a.env.TERM!==`linux`}const Ft=Pt(),L=(e,t)=>Ft?e:t,It=L(`◆`,`*`),Lt=L(`■`,`x`),Rt=L(`▲`,`x`),zt=L(`◇`,`o`),Bt=L(`┌`,`T`),R=L(`│`,`|`),Vt=L(`└`,`—`),Ht=L(`●`,`>`),Ut=L(`○`,` `),Wt=L(`●`,`•`),Gt=L(`◆`,`*`),Kt=L(`▲`,`!`),qt=L(`■`,`x`),Jt=e=>{switch(e){case`initial`:case`active`:return I.default.cyan(It);case`cancel`:return I.default.red(Lt);case`error`:return I.default.yellow(Rt);case`submit`:return I.default.green(zt)}},Yt=e=>{let t=e.active??`Yes`,n=e.inactive??`No`;return new Mt({active:t,inactive:n,initialValue:e.initialValue??!0,render(){let r=`${I.default.gray(R)}
15
+ ${Jt(this.state)} ${e.message}
16
+ `,i=this.value?t:n;switch(this.state){case`submit`:return`${r}${I.default.gray(R)} ${I.default.dim(i)}`;case`cancel`:return`${r}${I.default.gray(R)} ${I.default.strikethrough(I.default.dim(i))}
17
+ ${I.default.gray(R)}`;default:return`${r}${I.default.cyan(R)} ${this.value?`${I.default.green(Ht)} ${t}`:`${I.default.dim(Ut)} ${I.default.dim(t)}`} ${I.default.dim(`/`)} ${this.value?`${I.default.dim(Ut)} ${I.default.dim(n)}`:`${I.default.green(Ht)} ${n}`}
18
+ ${I.default.cyan(Vt)}
19
+ `}}}).prompt()},Xt=(e=``)=>{process.stdout.write(`${I.default.gray(Bt)} ${e}
20
+ `)},z={message:(e=``,{symbol:t=I.default.gray(R)}={})=>{let n=[`${I.default.gray(R)}`];if(e){let[r,...i]=e.split(`
21
+ `);n.push(`${t} ${r}`,...i.map(e=>`${I.default.gray(R)} ${e}`))}process.stdout.write(`${n.join(`
22
+ `)}
23
+ `)},info:e=>{z.message(e,{symbol:I.default.blue(Wt)})},success:e=>{z.message(e,{symbol:I.default.green(Gt)})},step:e=>{z.message(e,{symbol:I.default.green(zt)})},warn:e=>{z.message(e,{symbol:I.default.yellow(Kt)})},warning:e=>{z.warn(e)},error:e=>{z.message(e,{symbol:I.default.red(qt)})}},Zt=`${I.default.gray(R)} `,Qt={message:async(e,{symbol:t=I.default.gray(R)}={})=>{process.stdout.write(`${I.default.gray(R)}
24
+ ${t} `);let n=3;for await(let t of e){t=t.replace(/\n/g,`
25
+ ${Zt}`),t.includes(`
26
+ `)&&(n=3+i(t.slice(t.lastIndexOf(`
27
+ `))).length);let e=i(t).length;n+e<process.stdout.columns?(n+=e,process.stdout.write(t)):(process.stdout.write(`
28
+ ${Zt}${t.trimStart()}`),n=3+i(t.trimStart()).length)}process.stdout.write(`
29
+ `)},info:e=>Qt.message(e,{symbol:I.default.blue(Wt)}),success:e=>Qt.message(e,{symbol:I.default.green(Gt)}),step:e=>Qt.message(e,{symbol:I.default.green(zt)}),warn:e=>Qt.message(e,{symbol:I.default.yellow(Kt)}),warning:e=>Qt.warn(e),error:e=>Qt.message(e,{symbol:I.default.red(qt)})},$t=({indicator:e=`dots`}={})=>{let t=Ft?[`◒`,`◐`,`◓`,`◑`]:[`•`,`o`,`O`,`0`],n=Ft?80:120,r=process.env.CI===`true`,i,a,o=!1,s=``,c,l=performance.now(),u=e=>{o&&y(e>1?`Something went wrong`:`Canceled`,e)},d=()=>u(2),f=()=>u(1),p=()=>{process.on(`uncaughtExceptionMonitor`,d),process.on(`unhandledRejection`,d),process.on(`SIGINT`,f),process.on(`SIGTERM`,f),process.on(`exit`,u)},m=()=>{process.removeListener(`uncaughtExceptionMonitor`,d),process.removeListener(`unhandledRejection`,d),process.removeListener(`SIGINT`,f),process.removeListener(`SIGTERM`,f),process.removeListener(`exit`,u)},h=()=>{if(c===void 0)return;r&&process.stdout.write(`
30
+ `);let e=c.split(`
31
+ `);process.stdout.write(Nt.cursor.move(-999,e.length-1)),process.stdout.write(Nt.erase.down(e.length))},g=e=>e.replace(/\.+$/,``),_=e=>{let t=(performance.now()-e)/1e3,n=Math.floor(t/60),r=Math.floor(t%60);return n>0?`[${n}m ${r}s]`:`[${r}s]`},v=(u=``)=>{o=!0,i=Ot(),s=g(u),l=performance.now(),process.stdout.write(`${I.default.gray(R)}
32
+ `);let d=0,f=0;p(),a=setInterval(()=>{if(r&&s===c)return;h(),c=s;let n=I.default.magenta(t[d]);if(r)process.stdout.write(`${n} ${s}...`);else if(e===`timer`)process.stdout.write(`${n} ${s} ${_(l)}`);else{let e=`.`.repeat(Math.floor(f)).slice(0,3);process.stdout.write(`${n} ${s}${e}`)}d=d+1<t.length?d+1:0,f=f<t.length?f+.125:0},n)},y=(t=``,n=0)=>{o=!1,clearInterval(a),h();let r=n===0?I.default.green(zt):n===1?I.default.red(Lt):I.default.red(Rt);s=g(t??s),e===`timer`?process.stdout.write(`${r} ${s} ${_(l)}
33
+ `):process.stdout.write(`${r} ${s}
34
+ `),m(),i()};return{start:v,stop:y,message:(e=``)=>{s=g(e??s)}}};var en=Ke({baseSepolia:()=>ie,riseTestnet:()=>ae});const tn=[ae,...Object.values(en).filter(e=>e.id!==ae.id)],nn=re;({...nn}),{...nn};const rn=`0x3232323232323232323232323232323232323232`,an=`0x32323232`,on={p256:`p256`,secp256k1:`secp256k1`,webauthnp256:`webauthn-p256`},sn={admin:`admin`,normal:`session`},cn={0:`minute`,1:`hour`,2:`day`,3:`week`,4:`month`,5:`year`},ln={address:`secp256k1`,p256:`p256`,secp256k1:`secp256k1`,"webauthn-p256":`webauthnp256`},un={admin:`admin`,session:`normal`},dn={address:2,p256:0,secp256k1:2,"webauthn-p256":1},fn={day:2,hour:1,minute:0,month:4,week:3,year:5};function pn(e={}){let t=de.randomPrivateKey();return vn({...e,privateKey:t})}function mn(e={}){let t=O.randomPrivateKey();return bn({...e,privateKey:t})}async function hn(e){let{createFn:t,label:n,rpId:r,userId:i}=e,a=await he.createCredential({authenticatorSelection:{requireResidentKey:!0,residentKey:`required`,userVerification:`required`},createFn:t,extensions:{credProps:!0},rp:r?{id:r,name:r}:void 0,user:{displayName:n,id:new Uint8Array(i??ce.fromString(n)),name:n}});return xn({...e,credential:{id:a.id,publicKey:a.publicKey},id:i?ce.toHex(i):D.toHex(a.publicKey,{includePrefix:!1})})}function gn(e={}){let t=de.randomPrivateKey();return Sn({...e,privateKey:t})}async function _n(e={}){let t=await ge.createKeyPair();return Cn({...e,keyPair:t})}function B(e,t={}){let{chainId:n=e.chainId}=t,{expiry:r=0,id:i,prehash:a=!1,role:o=`admin`,type:s}=e,c=(()=>{let t=e.publicKey;return t===`0x`?t:s===`secp256k1`||s===`address`?E.size(t)===20||E.toBigInt(E.slice(t,0,12))===0n?E.slice(t,-20):T.fromPublicKey(D.fromHex(t)):t})();return{...e,chainId:n,expiry:r,hash:wn({publicKey:c,type:s}),id:(i??c).toLowerCase(),prehash:a,publicKey:c.toLowerCase(),role:o,type:s}}function vn(e){let{chainId:t,expiry:n,feeToken:r,permissions:i,privateKey:a,role:o}=e;return B({chainId:t,expiry:n,feeToken:r,permissions:i,privateKey(){return a},publicKey:D.toHex(de.getPublicKey({privateKey:a}),{includePrefix:!1}),role:o,type:`p256`})}function yn(e,t){let{chainId:n}=t,{publicKey:r}=e,i=E.size(r)===20||E.toBigInt(E.slice(r,0,12))===0n,a={};for(let t of e.permissions)t.type===`call`&&(a.calls??=[],a.calls.push({signature:t.selector,to:t.to===rn?void 0:t.to})),t.type===`spend`&&(a.spend??=[],a.spend.push({limit:t.limit,period:t.period,token:t.token}));return B({chainId:n,expiry:e.expiry,permissions:a,publicKey:e.publicKey,role:sn[e.role],type:i?`address`:on[e.type]})}function bn(e){let{privateKey:t,role:n}=e,r=(()=>e.publicKey?e.publicKey:t?T.fromPublicKey(O.getPublicKey({privateKey:t})):e.address.toLowerCase())();return B({expiry:e.expiry??0,feeToken:e.feeToken,permissions:e.permissions,privateKey:t?()=>t:void 0,publicKey:r,role:n,type:`secp256k1`})}function xn(e){let{credential:t,id:n,rpId:r}=e,i=D.toHex(t.publicKey,{includePrefix:!1});return B({chainId:e.chainId,expiry:e.expiry??0,feeToken:e.feeToken,id:n,permissions:e.permissions,privateKey:{credential:t,rpId:r},publicKey:i,role:e.role,type:`webauthn-p256`})}function Sn(e){let{privateKey:t}=e,n=D.toHex(de.getPublicKey({privateKey:t}),{includePrefix:!1});return B({chainId:e.chainId,expiry:e.expiry??0,feeToken:e.feeToken,permissions:e.permissions,privateKey:{privateKey(){return t}},publicKey:n,role:e.role,type:`webauthn-p256`})}function Cn(e){let{chainId:t,expiry:n,feeToken:r,keyPair:i,permissions:a,role:o}=e,{privateKey:s}=i;return B({chainId:t,expiry:n,feeToken:r,permissions:a,prehash:!0,privateKey:s,publicKey:D.toHex(i.publicKey,{includePrefix:!1}),role:o,type:`p256`})}function wn(e){let{type:t}=e,n=Tn(e.publicKey);return le.keccak256(se.encode([{type:`uint8`},{type:`bytes32`}],[dn[t],le.keccak256(n)]))}function Tn(e){return E.size(e)<32?E.padLeft(e,32):e}async function V(e,t){let{address:n,storage:r,webAuthn:i,wrap:a=!0}=t,{privateKey:o,publicKey:s,type:c}=e;if(!o)throw Error(`Key does not have a private key to sign with.
35
+
36
+ Key:
37
+ `+ue.stringify(e,null,2));let l=(()=>n?pe.getSignPayload({domain:{verifyingContract:n},message:{digest:t.payload},primaryType:`ERC1271Sign`,types:{ERC1271Sign:[{name:`digest`,type:`bytes32`}]}}):t.payload)(),[u,d]=await(async()=>{if(c===`p256`){let{privateKey:t}=e;if(typeof t==`function`)return[fe.toHex(de.sign({payload:l,privateKey:t()})),!1];if(t instanceof CryptoKey)return[fe.toHex(await ge.sign({payload:l,privateKey:t})),!0]}if(c===`secp256k1`)return[fe.toHex(O.sign({payload:l,privateKey:o()})),!1];if(c===`webauthn-p256`){if(o.privateKey){let{payload:e,metadata:t}=he.getSignPayload({challenge:l,origin:`https://ithaca.xyz`,rpId:`ithaca.xyz`}),{r:n,s:r}=de.sign({hash:!0,payload:e,privateKey:o.privateKey()});return[kn({metadata:t,signature:{r:n,s:r}}),!1]}let{credential:t,rpId:n}=o,a=`porto.webauthnVerified.${e.hash}`,s=Date.now(),c=!0;if(r){let e=await r.getItem(a);c=!e||s-e>6e5}let{signature:{r:u,s:d},raw:f,metadata:p}=await he.sign({challenge:l,credentialId:t.id,getFn:i?.getFn,rpId:n,userVerification:c?`required`:`preferred`}),m=f.response;if(!m?.userHandle)throw Error(`No user handle in response`,{cause:{response:m}});let h=ce.toHex(new Uint8Array(m.userHandle));if(e.id&&T.validate(e.id)&&!T.isEqual(e.id,h))throw Error(`supplied webauthn key "${e.id}" does not match signature webauthn key "${h}"`,{cause:{id:h,key:e}});return c&&r&&await r.setItem(a,s),[kn({metadata:p,signature:{r:u,s:d}}),!1]}throw Error(`Key type "${c}" is not supported.\n\nKey:\n`+ue.stringify(e,null,2))})();return a?An(u,{keyType:c,prehash:d,publicKey:s}):u}function En(e,t={}){let{expiry:n=0,prehash:r=!1,publicKey:i,role:a=`admin`,type:o}=e,{feeTokens:s,orchestrator:c}=t,l=Object.entries(Dn(e,{feeTokens:s})).map(([e,t])=>{if(e===`calls`)return t.map(({signature:e,to:t})=>({selector:(()=>e?E.validate(e)?e:oe.getSelector(e):an)(),to:t??rn,type:`call`}));if(e!==`feeToken`){if(e===`spend`)return t.map(({limit:e,period:t,token:n})=>({limit:e,period:t,token:n,type:`spend`}));throw Error(`Invalid permission type "${e}".`)}}).flat().filter(Boolean);return e.role===`session`&&c&&l.push({selector:an,to:c,type:`call`}),{expiry:n,permissions:l??[],prehash:r,publicKey:Tn(i),role:un[a],type:ln[o]}}function Dn(e,t){let{permissions:n}=e,r=n?.calls?[...n.calls]:[],i=n?.spend?[...n.spend]:[],a=t.feeTokens?.filter(e=>e.feeToken);if(a&&a.length>0){let t=On(e,{feeTokens:a});if(t){let e=-1,n=fn.year;for(let r=0;r<i.length;r++){let a=i[r];if(a.token&&T.isEqual(t.address,a.token)){e=r;break}if(!a.token&&t.address===S){e=r;break}let o=fn[a.period];o<n&&(n=o)}e===-1?typeof n==`number`&&i.unshift({limit:t.value,period:cn[n],token:t.address}):(i[e]={...i[e],limit:i[e].limit+t.value},i.unshift(i.splice(e,1)[0]))}}return{...n,calls:r,spend:i}}function On(e,t){let{feeTokens:n}=t;if(!e.feeToken)return;let r=n.find(t=>e.feeToken.symbol===t.symbol?!0:!e.feeToken.symbol||e.feeToken.symbol===`native`?t.address===S:!1);if(!r)return;let i=me.from(e.feeToken.limit,r.decimals);return{...r,value:i}}function kn(e){let{metadata:t,signature:n}=e;return se.encode(se.from([`struct WebAuthnAuth { bytes authenticatorData; string clientDataJSON; uint256 challengeIndex; uint256 typeIndex; bytes32 r; bytes32 s; }`,`WebAuthnAuth auth`]),[{authenticatorData:t.authenticatorData,challengeIndex:BigInt(t.challengeIndex),clientDataJSON:t.clientDataJSON,r:E.fromNumber(n.r,{size:32}),s:E.fromNumber(n.s,{size:32}),typeIndex:BigInt(t.typeIndex)}])}function An(e,t){let{keyType:n,prehash:r=!1,publicKey:i}=t,a=wn({publicKey:i,type:n});return se.encodePacked([`bytes`,`bytes32`,`bool`],[e,a,r])}const H=()=>k.templateLiteral([`0x`,k.string()],{message:`Needs string in format ^0x[A-Fa-f0-9]{40}$.`}),U=()=>k.templateLiteral([`0x`,k.string()],{message:`Needs string in format ^0x[A-Fa-f0-9]+$.`}),W=()=>k.codec(U(),k.number(),{decode:e=>E.toNumber(e),encode:e=>E.fromNumber(e)}),G=()=>k.codec(U(),k.bigint({message:`Required bigint`}),{decode:e=>E.toBigInt(e),encode:e=>E.fromNumber(e)});function jn(e){return k.union(e)}var Mn=class extends _e.BaseError{constructor(...e){super(...e),this.name=`Schema.ValidationError`}};function Nn(e){let t=e,n=`Validation failed with ${t.issues.length} error${t.issues.length===1?``:`s`}:`;n+=`
38
+ `;for(let e of t.issues)e&&(n+=`
39
+ `,n+=Pn(e));return new Mn(n)}function Pn(e,t=0){let n=Fn(e.path),r=`- ${n?`${n}: `:``}`,i=` `.repeat(t+1),a=r;switch(e.code){case`invalid_type`:{let t=e.expected,n=e.input?In(e):`undefined`;a+=`Expected ${t}. ${e.message===`Invalid input`?``:e.message}`,n!==`undefined`&&(a+=`but received ${n}`);break}case`too_big`:{let t=e.maximum,n=e.inclusive??!0;e.exact??!1?a+=`${e.origin} must be exactly ${t}`:a+=`${e.origin} must be ${n?`at most`:`less than`} ${t}`;break}case`too_small`:{let t=e.minimum,n=e.inclusive??!0;e.exact??!1?a+=`${e.origin} must be exactly ${t}`:a+=`${e.origin} must be ${n?`at least`:`greater than`} ${t}`;break}case`invalid_format`:switch(e.format){case`regex`:a+=`Must match pattern: ${e.pattern}`;break;case`starts_with`:a+=`Must start with "${e.prefix}"`;break;case`ends_with`:a+=`Must end with "${e.suffix}"`;break;case`includes`:a+=`Must include "${e.includes}"`;break;case`template_literal`:a+=`Must match pattern: ${e.pattern}`;break;default:a+=`Invalid ${e.format} format`}break;case`not_multiple_of`:a+=`Number must be a multiple of ${e.divisor}`;break;case`unrecognized_keys`:{let t=e.keys.map(e=>`"${e}"`).join(`, `);a+=`Unrecognized key${e.keys.length>1?`s`:``}: ${t}`;break}case`invalid_union`:{let n=e.errors&&e.errors.length>0;a+=`Invalid union value.`,n&&e.errors.forEach(e=>{e.length>0&&e.forEach(e=>{a+=`
40
+ `,a+=i,a+=Pn(e,t+1)})});break}case`invalid_key`:a+=`Invalid ${e.origin} key`,e.issues&&e.issues.length>0&&e.issues.forEach(e=>{a+=`
41
+ `,a+=i,a+=Pn(e,t+1)});break;case`invalid_element`:a+=`Invalid ${e.origin} element at key "${e.key}"`,e.issues&&e.issues.length>0&&e.issues.forEach(e=>{a+=`
42
+ `,a+=i,a+=Pn(e,t+1)});break;case`invalid_value`:{let t=e.values.map(e=>JSON.stringify(e)).join(`, `);e.values.length>1?a+=`Expected one of: ${t}`:a+=`Expected ${t}`;break}case`custom`:a+=e.message||`Custom validation failed`;break;default:a+=e.message||`Validation failed`}return a}function Fn(e){return e.length===0?``:"at `"+e.map((e,t)=>typeof e==`number`?`[${e}]`:typeof e==`symbol`?`[${e.toString()}]`:/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)&&t>0?`.${e}`:t===0&&/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)?e:`["${e}"]`).join(``)+"`"}function In(e){let t=e.input;if(t===void 0)return`undefined`;if(t===null)return`null`;let n=typeof t;return n===`object`?Array.isArray(t)?`array`:t instanceof Date?`date`:t instanceof Map?`map`:t instanceof Set?`set`:`object`:n}const Ln=k.union([k.object({combinedGas:G(),encodedFundTransfers:k.readonly(k.array(U())),encodedPreCalls:k.readonly(k.array(U())),eoa:H(),executionData:U(),expiry:G(),funder:H(),funderSignature:U(),isMultichain:k.boolean(),nonce:G(),payer:H(),paymentAmount:G(),paymentMaxAmount:G(),paymentRecipient:H(),paymentSignature:U(),paymentToken:H(),settler:H(),settlerContext:U(),signature:U(),supportedAccountImplementation:H()}),k.object({combinedGas:G(),encodedFundTransfers:k.readonly(k.array(U())),encodedPreCalls:k.readonly(k.array(U())),eoa:H(),executionData:U(),expiry:G(),funder:H(),funderSignature:U(),isMultichain:k.boolean(),nonce:G(),payer:H(),paymentRecipient:H(),paymentSignature:U(),paymentToken:H(),prePaymentAmount:G(),prePaymentMaxAmount:G(),settler:H(),settlerContext:U(),signature:U(),supportedAccountImplementation:H(),totalPaymentAmount:G(),totalPaymentMaxAmount:G()})]);k.object({eoa:H(),executionData:U(),nonce:G()});const Rn=A.object({address:A.union([H(),A.null()]),decimals:A.optional(A.number()),deficit:G(),fiat:A.optional(A.object({currency:A.string(),value:A.string()})),name:A.optional(A.string()),required:G(),symbol:A.optional(A.string())}),zn=A.object({additionalAuthorization:A.nullish(A.object({address:H(),chainId:W(),nonce:W(),r:U(),s:U(),yParity:W()})),assetDeficits:A.optional(A.array(Rn)),authorizationAddress:A.optional(A.union([H(),A.null()])),chainId:W(),ethPrice:G(),extraPayment:G(),feeTokenDeficit:G(),intent:Ln,nativeFeeEstimate:A.object({maxFeePerGas:G(),maxPriorityFeePerGas:G()}),orchestrator:H(),paymentTokenDecimals:A.number(),txGas:G()}),Bn=A.object({multiChainRoot:A.optional(A.union([U(),A.null()])),quotes:A.readonly(A.array(zn)).check(A.minLength(1)),ttl:A.number()}),Vn=A.object({...Bn.shape,hash:U(),r:U(),s:U(),v:A.optional(U()),yParity:A.optional(U())}),Hn=k.object({selector:U(),to:H(),type:k.literal(`call`)}),Un=k.object({limit:G(),period:k.union([k.literal(`minute`),k.literal(`hour`),k.literal(`day`),k.literal(`week`),k.literal(`month`),k.literal(`year`)]),token:k.optional(k.union([H(),k.null()])),type:k.literal(`spend`)}),Wn=k.union([Hn,Un]),Gn=k.object({expiry:W(),prehash:k.optional(k.boolean()),publicKey:U(),role:k.union([k.literal(`admin`),k.literal(`normal`)]),type:k.union([k.literal(`p256`),k.literal(`secp256k1`),k.literal(`webauthnp256`)])}),Kn=k.object({...Gn.shape,permissions:k.readonly(k.array(Wn))});let qn;(function(e){let t=e.AssetDiffAsset=k.union([k.object({address:k.optional(k.union([H(),k.null()])),decimals:k.optional(k.union([k.number(),k.null()])),direction:k.union([k.literal(`incoming`),k.literal(`outgoing`)]),fiat:k.optional(k.object({currency:k.string(),value:k.codec(k.string(),k.number(),{decode:e=>Number(e),encode:e=>String(e)})})),name:k.optional(k.union([k.string(),k.null()])),symbol:k.string(),type:k.literal(`erc20`),value:G()}),k.object({address:k.optional(k.union([H(),k.null()])),direction:k.union([k.literal(`incoming`),k.literal(`outgoing`)]),fiat:k.optional(k.object({currency:k.string(),value:k.codec(k.string(),k.number(),{decode:e=>Number(e),encode:e=>String(e)})})),name:k.optional(k.union([k.string(),k.null()])),symbol:k.string(),type:k.literal(`erc721`),uri:k.string(),value:G()}),k.object({address:k.null(),decimals:k.optional(k.union([k.number(),k.null()])),direction:k.union([k.literal(`incoming`),k.literal(`outgoing`)]),fiat:k.optional(k.object({currency:k.string(),value:k.codec(k.string(),k.number(),{decode:e=>Number(e),encode:e=>String(e)})})),symbol:k.string(),type:k.null(),value:G()})]);e.Response=k.record(U(),k.readonly(k.array(k.readonly(k.tuple([H(),k.readonly(k.array(t))])))))})(qn||={});let Jn;(function(e){e.Request=k.readonly(k.array(Kn)),e.Response=k.readonly(k.array(k.object({...Kn.shape,hash:U()})))})(Jn||={});let Yn;(function(e){e.Response=k.record(U(),k.object({currency:k.string(),value:k.string()}))})(Yn||={});let Xn;(function(e){e.Request=k.object({feePayer:k.optional(H()),feeToken:k.optional(H()),nonce:k.optional(G())})})(Xn||={});let Zn;(function(e){e.Request=k.readonly(k.array(k.object({address:H(),value:G()})))})(Zn||={});let Qn;(function(e){e.Request=k.readonly(k.array(k.object({hash:U()}))),e.Response=k.readonly(k.array(k.object({hash:U()})))})(Qn||={});const $n=k.object({eoa:H(),executionData:U(),nonce:U(),signature:U()}),er=k.object({...$n.shape,chainId:W()}),tr=k.object({address:H(),decimals:k.number(),feeToken:k.optional(k.boolean()),interop:k.optional(k.boolean()),nativeRate:k.optional(G()),symbol:k.string(),uid:k.string()}),nr=k.string().check(k.regex(/^[A-Z0-9]+$/)),rr=k.object({address:H(),chainId:W(),nonce:W()}),ir=k.object({...rr.shape,r:U(),s:U(),yParity:W()}),ar=k.object({data:k.optional(U()),to:H(),value:k.optional(G())});let or;(function(e){let t=e.Parameters=k.object({address:H(),secret:k.string()});e.Request=k.object({method:k.literal(`account_getOnrampContactInfo`),params:k.readonly(k.tuple([t]))}),e.Response=k.object({email:k.optional(k.string()),phone:k.optional(k.string()),phoneVerifiedAt:k.optional(k.number())})})(or||={});let sr;(function(e){let t=e.Parameters=k.object({address:H()});e.Request=k.object({method:k.literal(`account_onrampStatus`),params:k.readonly(k.tuple([t]))}),e.Response=k.object({email:k.optional(k.number()),phone:k.optional(k.number())})})(sr||={});let cr;(function(e){let t=e.Parameters=k.object({phone:k.string(),walletAddress:H()});e.Request=k.object({method:k.literal(`account_resendVerifyPhone`),params:k.readonly(k.tuple([t]))}),e.Response=k.null()})(cr||={});let lr;(function(e){let t=e.Parameters=k.object({email:k.string().check(k.regex(/^.*@.*$/)),walletAddress:H()});e.Request=k.object({method:k.literal(`account_setEmail`),params:k.readonly(k.tuple([t]))}),e.Response=k.null()})(lr||={});let ur;(function(e){let t=e.Parameters=k.object({phone:k.string(),walletAddress:H()});e.Request=k.object({method:k.literal(`account_setPhone`),params:k.readonly(k.tuple([t]))}),e.Response=k.null()})(ur||={});let dr;(function(e){let t=e.Parameters=k.object({chainId:W(),email:k.string(),signature:U(),token:k.string(),walletAddress:H()});e.Request=k.object({method:k.literal(`account_verifyEmail`),params:k.readonly(k.tuple([t]))}),e.Response=k.null()})(dr||={});let fr;(function(e){let t=e.Parameters=k.object({code:k.string(),phone:k.string(),walletAddress:H()});e.Request=k.object({method:k.literal(`account_verifyPhone`),params:k.readonly(k.tuple([t]))}),e.Response=k.null()})(fr||={});let pr;(function(e){e.Request=k.object({method:k.literal(`health`),params:k.undefined()}),e.Response=k.object({quoteSigner:H(),status:k.string(),version:k.string()})})(pr||={});let mr;(function(e){let t=e.Parameters=k.object({address:H(),chainId:W(),tokenAddress:H(),value:G()});e.Request=k.object({method:k.literal(`wallet_addFaucetFunds`),params:k.readonly(k.tuple([t]))}),e.Response=k.object({message:k.optional(k.string()),transactionHash:U()})})(mr||={});let hr;(function(e){let t=e.Parameters=k.object({chainId:W(),id:U()});e.Request=k.object({method:k.literal(`wallet_getAccounts`),params:k.readonly(k.tuple([t]))}),e.Response=k.readonly(k.array(k.object({address:H(),keys:Jn.Response})))})(hr||={});let gr;(function(e){let t=e.Parameters=k.object({address:H()});e.Request=k.object({method:k.literal(`wallet_getAuthorization`),params:k.readonly(k.tuple([t]))}),e.Response=k.object({authorization:ir,data:U(),to:H()})})(gr||={});let _r;(function(e){e.Request=k.object({method:k.literal(`wallet_getCapabilities`),params:k.optional(k.tuple([k.readonly(k.array(k.number()))]))});let t=k.object({address:H(),version:k.optional(k.union([k.string(),k.null()]))});e.Response=k.record(U(),k.object({contracts:k.object({accountImplementation:t,accountProxy:t,legacyAccountImplementations:k.readonly(k.array(t)),legacyOrchestrators:k.readonly(k.array(k.union([k.object({orchestrator:t,simulator:t}),t]))),orchestrator:t,simulator:t}),fees:k.object({quoteConfig:k.object({constantRate:k.optional(k.union([k.number(),k.null()])),gas:k.optional(k.object({intentBuffer:k.optional(k.number()),txBuffer:k.optional(k.number())})),rateTtl:k.number(),ttl:k.number()}),recipient:H(),tokens:k.readonly(k.array(tr))})}))})(_r||={});let vr;(function(e){let t=k.union([k.literal(`native`),k.literal(`erc20`),k.literal(`erc721`),k.string()]),n=e.Parameters=k.object({account:H(),assetFilter:k.optional(k.record(U(),k.readonly(k.array(k.object({address:k.union([H(),k.literal(`native`)]),type:t}))))),assetTypeFilter:k.optional(k.readonly(k.array(t))),chainFilter:k.optional(k.readonly(k.array(W())))});e.Request=k.object({method:k.literal(`wallet_getAssets`),params:k.readonly(k.tuple([n]))});let r=e.Price=k.object({currency:k.string(),value:k.codec(k.string(),k.number(),{decode:e=>Number(e),encode:e=>String(e)})});e.Response=k.record(k.string(),k.readonly(k.array(jn([k.object({address:H(),balance:G(),metadata:k.nullable(k.object({decimals:k.number(),fiat:k.nullish(r),name:k.string(),symbol:k.string()})),type:k.literal(`erc20`)}),k.object({address:k.nullable(k.literal(`native`)),balance:G(),metadata:k.nullable(k.object({decimals:k.number(),fiat:k.nullish(r),name:k.optional(k.string()),symbol:k.optional(k.string())})),type:k.literal(`native`)})]))))})(vr||={});let yr;(function(e){e.Request=k.object({method:k.literal(`wallet_getCallsStatus`),params:k.readonly(k.tuple([U()]))}),e.Response=k.object({id:k.string(),receipts:k.optional(k.readonly(k.array(k.object({blockHash:U(),blockNumber:W(),chainId:W(),gasUsed:W(),logs:k.readonly(k.array(k.object({address:H(),data:U(),topics:k.readonly(k.array(U()))}))),status:U(),transactionHash:U()})))),status:k.number()})})(yr||={});let br;(function(e){let t=e.Parameters=k.object({address:H(),chainIds:k.optional(k.readonly(k.array(W())))});e.Request=k.object({method:k.literal(`wallet_getKeys`),params:k.readonly(k.tuple([t]))}),e.Response=k.record(U(),Jn.Response)})(br||={});let xr;(function(e){let t=e.Capabilities=k.object({authorizeKeys:k.optional(Jn.Request),meta:Xn.Request,preCall:k.optional(k.boolean()),preCalls:k.optional(k.readonly(k.array($n))),requiredFunds:k.optional(Zn.Request),revokeKeys:k.optional(Qn.Request)}),n=e.ResponseCapabilities=k.object({assetDiffs:k.optional(qn.Response),authorizeKeys:k.nullish(Jn.Response),feePayerDigest:k.optional(U()),feeSignature:k.optional(U()),feeTotals:k.optional(Yn.Response),revokeKeys:k.nullish(Qn.Response)}),r=e.Parameters=k.object({calls:k.readonly(k.array(ar)),capabilities:t,chainId:W(),from:k.optional(H()),key:k.optional(k.object({prehash:k.boolean(),publicKey:U(),type:Gn.shape.type}))});e.Request=k.object({method:k.literal(`wallet_prepareCalls`),params:k.readonly(k.tuple([r]))}),e.Response=k.object({capabilities:n,context:k.object({preCall:k.optional(k.partial(er)),quote:k.optional(k.partial(Vn))}),digest:U(),key:k.nullish(k.object({prehash:k.boolean(),publicKey:U(),type:Gn.shape.type})),signature:U(),typedData:k.object({domain:k.union([k.object({chainId:k.union([W(),k.number()]),name:k.string(),verifyingContract:H(),version:k.string()}),k.object({})]),message:k.record(k.string(),k.unknown()),primaryType:k.string(),types:k.record(k.string(),k.unknown())})})})(xr||={});let Sr;(function(e){let t=e.Capabilities=k.object({authorizeKeys:Jn.Request}),n=e.Parameters=k.object({address:H(),capabilities:t,chainId:k.optional(k.number()),delegation:H()});e.Request=k.object({method:k.literal(`wallet_prepareUpgradeAccount`),params:k.readonly(k.tuple([n]))}),e.Response=k.object({capabilities:t,chainId:W(),context:k.object({address:H(),authorization:rr,chainId:W(),preCall:$n}),digests:k.object({auth:U(),exec:U()}),typedData:k.object({domain:k.union([k.object({chainId:k.union([W(),k.number()]),name:k.string(),verifyingContract:H(),version:k.string()}),k.object({})]),message:k.record(k.string(),k.unknown()),primaryType:k.string(),types:k.record(k.string(),k.unknown())})})})(Sr||={});let Cr;(function(e){e.Request=k.object({method:k.literal(`wallet_feeTokens`),params:k.optional(k.undefined())}),e.Response=k.record(U(),k.readonly(k.array(k.object({address:H(),decimals:k.number(),nativeRate:k.optional(G()),symbol:k.string()}))))})(Cr||={});let wr;(function(e){let t=e.Parameters=k.object({capabilities:k.optional(k.object({feeSignature:k.optional(U())})),context:k.object({preCall:k.optional(k.partial(er)),quote:k.optional(k.partial(Vn))}),key:k.optional(k.object({prehash:k.boolean(),publicKey:U(),type:Gn.shape.type})),signature:U()});e.Request=k.object({method:k.literal(`wallet_sendPreparedCalls`),params:k.readonly(k.tuple([t]))}),e.Response=k.object({id:U()})})(wr||={});let Tr;(function(e){let t=e.Parameters=k.object({context:k.object({address:H(),authorization:rr,chainId:W(),preCall:$n}),signatures:k.object({auth:U(),exec:U()})});e.Request=k.object({method:k.literal(`wallet_upgradeAccount`),params:k.readonly(k.tuple([t]))}),e.Response=k.undefined()})(Tr||={});let Er;(function(e){let t=e.Parameters=k.object({address:U(),chainId:W(),digest:U(),signature:U()});e.Request=k.object({method:k.literal(`wallet_verifySignature`),params:k.readonly(k.tuple([t]))}),e.Response=k.object({proof:k.nullish(k.object({account:H(),initPreCall:k.nullish($n),keyHash:U()})),valid:k.boolean()})})(Er||={});const K=k.object({chainId:k.optional(W()),expiry:W(),hash:U(),id:U(),prehash:k.optional(k.boolean()),publicKey:U(),role:k.union([k.literal(`admin`),k.literal(`session`)]),type:k.union([k.literal(`address`),k.literal(`p256`),k.literal(`secp256k1`),k.literal(`webauthn-p256`)])}),Dr=k.readonly(k.array(jn([k.object({signature:k.string(),to:H()}),k.object({signature:k.string()}),k.object({to:H()})])).check(k.minLength(1))),Or=k.object({limit:k.union([k.templateLiteral([k.number(),`.`,k.number()]),k.templateLiteral([k.number()])]).check(k.regex(/^\d+(\.\d+)?$/)),symbol:k.optional(k.union([k.literal(`native`),nr]))}),kr=k.object({addresses:k.readonly(k.array(H()))}),Ar=k.readonly(k.array(k.object({limit:G(),period:k.union([k.literal(`minute`),k.literal(`hour`),k.literal(`day`),k.literal(`week`),k.literal(`month`),k.literal(`year`)]),token:k.optional(H())}))),jr=k.object({calls:k.optional(Dr),signatureVerification:k.optional(kr),spend:k.optional(Ar)}),Mr=k.object({...K.shape,feeToken:k.optional(k.nullable(Or)),permissions:k.optional(jr)}),Nr=k.object({address:H(),chainId:k.optional(W()),expiry:k.number(),id:U(),key:k.pick(K,{publicKey:!0,type:!0}),permissions:k.object({calls:Dr,signatureVerification:k.optional(kr),spend:k.optional(Ar)})}),Pr=k.object({address:k.optional(H()),chainId:k.optional(W()),expiry:k.number().check(k.gte(1)),feeToken:k.nullable(Or),key:k.optional(k.pick(K,{publicKey:!0,type:!0})),permissions:k.object({calls:Dr,signatureVerification:k.optional(kr),spend:k.optional(Ar)})});let Fr;(function(e){e.GetCapabilitiesResponse=k.object({status:k.union([k.literal(`supported`),k.literal(`unsupported`)])})})(Fr||={});let Ir;(function(e){e.Request=k.union([k.boolean(),k.object({chainId:k.optional(W()),label:k.optional(k.string())})])})(Ir||={});let Lr;(function(e){e.Request=jn([k.object({chainId:k.optional(k.number()),domain:k.optional(k.string()),expirationTime:k.optional(k.date()),issuedAt:k.optional(k.date()),nonce:k.string(),notBefore:k.optional(k.date()),requestId:k.optional(k.string()),resources:k.optional(k.readonly(k.array(k.string()))),scheme:k.optional(k.string()),statement:k.optional(k.string()),uri:k.optional(k.string()),version:k.optional(k.literal(`1`))}),k.object({authUrl:k.union([k.string(),k.object({logout:k.string(),nonce:k.string(),verify:k.string()})]),chainId:k.optional(W()),domain:k.optional(k.string()),expirationTime:k.optional(k.date()),issuedAt:k.optional(k.date()),notBefore:k.optional(k.date()),requestId:k.optional(k.string()),resources:k.optional(k.readonly(k.array(k.string()))),scheme:k.optional(k.string()),statement:k.optional(k.string()),uri:k.optional(k.string()),version:k.optional(k.literal(`1`))})]),e.Response=k.object({message:k.string(),signature:U(),token:k.optional(k.string())})})(Lr||={});let q;(function(e){e.GetCapabilitiesResponse=k.object({supported:k.boolean(),tokens:k.readonly(k.array(tr))}),e.Request=k.union([nr,H()])})(q||={});let Rr;(function(e){e.Request=Pr})(Rr||={});let zr;(function(e){e.GetCapabilitiesResponse=k.object({supported:k.boolean()})})(zr||={});let Br;(function(e){e.GetCapabilitiesResponse=k.object({supported:k.boolean()}),e.Request=k.object({id:k.optional(k.union([U(),k.null()]))}),e.Response=k.readonly(k.array(Nr))})(Br||={});let Vr;(function(e){e.Response=e.Request=k.readonly(k.array(k.object({context:k.unknown(),signature:U()})))})(Vr||={});let Hr;(function(e){e.Request=k.string()})(Hr||={});let Ur;(function(e){e.GetCapabilitiesResponse=k.object({supported:k.boolean(),tokens:k.readonly(k.array(tr))}),e.Request=k.readonly(k.array(jn([k.object({address:H(),value:G()}),k.object({symbol:nr,value:k.union([k.templateLiteral([k.number(),`.`,k.number()]),k.templateLiteral([k.number()])]).check(k.regex(/^\d+(\.\d+)?$/))})])))})(Ur||={});const Wr=k.object({...k.pick(K,{id:!0,publicKey:!0,type:!0}).shape,credentialId:k.optional(k.string()),privateKey:k.optional(k.any())});let Gr;(function(e){let t=e.Parameters=k.object({address:H(),secret:k.string()});e.Request=k.object({method:k.literal(`account_getOnrampContactInfo`),params:k.readonly(k.tuple([t]))}),e.Response=k.object({email:k.optional(k.string()),phone:k.optional(k.string()),phoneVerifiedAt:k.optional(k.number())})})(Gr||={});let Kr;(function(e){let t=e.Parameters=k.object({address:H()});e.Request=k.object({method:k.literal(`account_onrampStatus`),params:k.readonly(k.tuple([t]))}),e.Response=k.object({email:k.optional(k.number()),phone:k.optional(k.number())})})(Kr||={});let qr;(function(e){let t=e.Parameters=k.object({email:k.string(),walletAddress:H()});e.Request=k.object({method:k.literal(`account_resendVerifyPhone`),params:k.readonly(k.tuple([t]))}),e.Response=k.null()})(qr||={});let Jr;(function(e){let t=e.Parameters=k.object({email:k.string(),walletAddress:H()});e.Request=k.object({method:k.literal(`account_setEmail`),params:k.readonly(k.tuple([t]))}),e.Response=k.null()})(Jr||={});let Yr;(function(e){let t=e.Parameters=k.object({email:k.string(),walletAddress:H()});e.Request=k.object({method:k.literal(`account_setPhone`),params:k.readonly(k.tuple([t]))}),e.Response=k.null()})(Yr||={});let Xr;(function(e){let t=e.Parameters=k.object({chainId:W(),email:k.string(),token:k.string(),walletAddress:H()});e.Request=k.object({method:k.literal(`account_verifyEmail`),params:k.readonly(k.tuple([t]))}),e.Response=k.null()})(Xr||={});let Zr;(function(e){let t=e.Parameters=k.object({code:k.string(),phone:k.string(),walletAddress:H()});e.Request=k.object({method:k.literal(`account_verifyPhone`),params:k.readonly(k.tuple([t]))}),e.Response=k.null()})(Zr||={});let Qr;(function(e){let t=e.Parameters=k.object({address:k.optional(H()),chainId:k.optional(W()),token:k.optional(H()),value:k.optional(k.string())});e.Request=k.object({method:k.literal(`wallet_addFunds`),params:k.readonly(k.tuple([t]))}),e.Response=k.object({id:U()})})(Qr||={});let $r;(function(e){e.Request=k.object({method:k.literal(`eth_accounts`),params:k.optional(k.unknown())}),e.Response=k.readonly(k.array(H()))})($r||={});let ei;(function(e){e.Request=k.object({method:k.literal(`eth_chainId`),params:k.optional(k.unknown())}),e.Response=U()})(ei||={});let ti;(function(e){e.Request=k.object({method:k.literal(`eth_requestAccounts`),params:k.optional(k.unknown())}),e.Response=k.readonly(k.array(H()))})(ti||={});let ni;(function(e){e.Request=k.object({method:k.literal(`eth_sendTransaction`),params:k.readonly(k.tuple([k.object({capabilities:k.optional(k.object({feeToken:k.optional(q.Request),merchantUrl:k.optional(Hr.Request),preCalls:k.optional(Vr.Request)})),chainId:k.optional(W()),data:k.optional(U()),from:k.optional(H()),to:H(),value:k.optional(G())})]))}),e.Response=U()})(ni||={});let ri;(function(e){e.Request=k.object({method:k.literal(`eth_signTypedData_v4`),params:k.readonly(k.tuple([H(),k.string()]))}),e.Response=U()})(ri||={});let ii;(function(e){let t=e.Parameters=k.object({address:k.optional(H()),chainId:k.optional(W())});e.Request=k.object({method:k.literal(`wallet_getAdmins`),params:k.optional(k.readonly(k.tuple([t])))});let n=e.Key=Wr;e.Response=k.object({address:H(),chainId:W(),keys:k.readonly(k.array(n))})})(ii||={});let ai;(function(e){let t=e.Capabilities=k.object({feeToken:k.optional(q.Request)}),n=e.Parameters=k.object({address:k.optional(H()),capabilities:k.optional(t),chainId:k.optional(W()),key:k.pick(K,{publicKey:!0,type:!0})});e.Request=k.object({method:k.literal(`wallet_grantAdmin`),params:k.readonly(k.tuple([n]))}),e.Response=k.object({address:H(),chainId:W(),key:ii.Key})})(ai||={});let oi;(function(e){let t=e.Parameters=Pr;e.Request=k.object({method:k.literal(`wallet_grantPermissions`),params:k.readonly(k.tuple([t]))}),e.ResponseCapabilities=k.object({preCalls:k.optional(Vr.Response)}),e.Response=k.object({...Nr.shape,capabilities:k.optional(k.any())})})(oi||={});let si;(function(e){let t=e.Parameters=k.object({address:k.optional(H())});e.Request=k.object({method:k.literal(`wallet_getAccountVersion`),params:k.optional(k.readonly(k.tuple([t])))}),e.Response=k.object({current:k.string(),latest:k.string()})})(si||={});let ci;(function(e){let t=e.Parameters=k.object({address:k.optional(H()),chainIds:k.optional(k.readonly(k.array(W())))});e.Request=k.object({method:k.literal(`wallet_getPermissions`),params:k.optional(k.readonly(k.tuple([t])))}),e.Response=Br.Response})(ci||={});let li;(function(e){let t=e.Capabilities=k.object({feeToken:k.optional(q.Request)}),n=e.Parameters=k.object({address:k.optional(H()),capabilities:k.optional(t),chainId:k.optional(W()),id:U()});e.Request=k.object({method:k.literal(`wallet_revokeAdmin`),params:k.readonly(k.tuple([n]))}),e.Response=void 0})(li||={});let ui;(function(e){let t=e.Capabilities=k.object({feeToken:k.optional(q.Request)}),n=e.Parameters=k.object({address:k.optional(H()),capabilities:k.optional(t),id:U()});e.Request=k.object({method:k.literal(`wallet_revokePermissions`),params:k.readonly(k.tuple([n]))}),e.Response=void 0})(ui||={});let di;(function(e){e.Request=k.object({method:k.literal(`wallet_switchEthereumChain`),params:k.readonly(k.tuple([k.object({chainId:U()})]))})})(di||={});let fi;(function(e){let t=e.Parameters=k.object({context:k.unknown(),signatures:k.object({auth:U(),exec:U()})});e.Request=k.object({method:k.literal(`wallet_upgradeAccount`),params:k.readonly(k.tuple([t]))});let n=e.ResponseCapabilities=k.object({admins:k.optional(k.readonly(k.array(ii.Key))),permissions:k.optional(Br.Response)});e.Response=k.object({address:H(),capabilities:k.optional(n)})})(fi||={});let pi;(function(e){e.Request=k.object({method:k.literal(`personal_sign`),params:k.readonly(k.tuple([U(),H()]))}),e.Response=U()})(pi||={});let mi;(function(e){e.Request=k.object({method:k.literal(`porto_ping`),params:k.optional(k.undefined())}),e.Response=k.literal(`pong`)})(mi||={});let hi;(function(e){let t=e.Capabilities=k.object({createAccount:k.optional(Ir.Request),email:k.optional(k.boolean()),grantAdmins:k.optional(k.readonly(k.array(k.pick(K,{publicKey:!0,type:!0})))),grantPermissions:k.optional(Rr.Request),preCalls:k.optional(Vr.Request),selectAccount:k.optional(k.union([k.boolean(),k.object({address:H(),key:k.optional(k.object({credentialId:k.optional(k.string()),publicKey:U()}))})])),signInWithEthereum:k.optional(Lr.Request)}),n=e.Parameters=k.object({capabilities:k.optional(t),chainIds:k.optional(k.readonly(k.array(W())))});e.Request=k.object({method:k.literal(`wallet_connect`),params:k.optional(k.readonly(k.tuple([n])))});let r=e.ResponseCapabilities=k.object({admins:k.optional(k.readonly(k.array(k.object({...k.pick(K,{id:!0,publicKey:!0,type:!0}).shape,credentialId:k.optional(k.string())})))),permissions:k.optional(Br.Response),preCalls:k.optional(Vr.Response),signInWithEthereum:k.optional(Lr.Response)});e.Response=k.object({accounts:k.readonly(k.array(k.object({address:H(),capabilities:k.optional(r)}))),chainIds:k.readonly(k.array(W()))})})(hi||={});let gi;(function(e){e.Request=k.object({method:k.literal(`wallet_disconnect`),params:k.optional(k.unknown())}),e.Response=void 0})(gi||={});let _i;(function(e){e.Parameters=vr.Parameters,e.Request=vr.Request,e.Response=vr.Response})(_i||={});let vi;(function(e){e.Request=k.object({method:k.literal(`wallet_getCallsStatus`),params:k.tuple([U()])}),e.Response=k.object({atomic:k.boolean(),chainId:W(),id:k.string(),receipts:k.optional(k.readonly(k.array(k.object({blockHash:U(),blockNumber:U(),gasUsed:U(),logs:k.readonly(k.array(k.object({address:H(),data:U(),topics:k.readonly(k.array(U()))}))),status:U(),transactionHash:U()})))),status:k.number(),version:k.string()})})(vi||={});let yi;(function(e){e.Request=k.object({method:k.literal(`wallet_getCapabilities`),params:k.optional(k.union([k.readonly(k.tuple([k.union([U(),k.undefined()])])),k.readonly(k.tuple([k.union([U(),k.undefined()]),k.readonly(k.array(W()))]))]))}),e.Response=k.record(U(),k.object({atomic:Fr.GetCapabilitiesResponse,feeToken:q.GetCapabilitiesResponse,merchant:zr.GetCapabilitiesResponse,permissions:Br.GetCapabilitiesResponse,requiredFunds:Ur.GetCapabilitiesResponse}))})(yi||={});let bi;(function(e){let t=e.Parameters=k.object({address:H(),chainIds:k.optional(k.readonly(k.array(W())))});e.Request=k.object({method:k.literal(`wallet_getKeys`),params:k.readonly(k.tuple([t]))}),e.Response=k.readonly(k.array(Mr))})(bi||={});let J;(function(e){let t=e.Capabilities=k.object({feeToken:k.optional(q.Request),merchantUrl:k.optional(Hr.Request),permissions:k.optional(Br.Request),preCalls:k.optional(Vr.Request),requiredFunds:k.optional(Ur.Request)}),n=e.Parameters=k.object({calls:k.readonly(k.array(k.object({data:k.optional(U()),to:H(),value:k.optional(G())}))),capabilities:k.optional(t),chainId:k.optional(W()),from:k.optional(H()),key:k.optional(k.pick(K,{prehash:!0,publicKey:!0,type:!0})),version:k.optional(k.string())});e.Request=k.object({method:k.literal(`wallet_prepareCalls`),params:k.readonly(k.tuple([n]))}),e.Response=k.object({capabilities:k.optional(k.object({...xr.ResponseCapabilities.shape,quote:k.optional(Vn)})),chainId:U(),context:k.object({account:k.object({address:H()}),calls:n.shape.calls,nonce:G(),quote:k.optional(k.partial(Vn))}),digest:U(),key:k.pick(K,{prehash:!0,publicKey:!0,type:!0}),typedData:k.object({domain:k.union([k.object({chainId:W(),name:k.string(),verifyingContract:H(),version:k.string()}),k.object({})]),message:k.record(k.string(),k.unknown()),primaryType:k.string(),types:k.record(k.string(),k.unknown())})})})(J||={});let xi;(function(e){let t=e.Capabilities=k.object({...hi.Capabilities.shape,label:k.optional(k.string())}),n=e.Parameters=k.object({address:H(),capabilities:k.optional(t),chainId:k.optional(W())});e.Request=k.object({method:k.literal(`wallet_prepareUpgradeAccount`),params:k.readonly(k.tuple([n]))}),e.Response=k.object({context:k.unknown(),digests:k.object({auth:U(),exec:U()})})})(xi||={});let Si;(function(e){e.Capabilities=J.Capabilities,e.Request=k.object({method:k.literal(`wallet_sendCalls`),params:k.readonly(k.tuple([k.omit(J.Parameters,{key:!0})]))}),e.Response=k.object({id:U()})})(Si||={});let Ci;(function(e){let t=e.Parameters=k.object({capabilities:J.Response.shape.capabilities,chainId:U(),context:J.Response.shape.context,key:J.Response.shape.key,signature:U()});e.Request=k.object({method:k.literal(`wallet_sendPreparedCalls`),params:k.readonly(k.tuple([t]))}),e.Response=k.readonly(k.array(k.object({capabilities:k.optional(k.record(k.string(),k.unknown())),id:U()})))})(Ci||={});let wi;(function(e){let t=e.Parameters=k.object({address:H(),chainId:k.optional(W()),digest:U(),signature:U()});e.Request=k.object({method:k.literal(`wallet_verifySignature`),params:k.readonly(k.tuple([t]))}),e.Response=k.object({address:H(),chainId:W(),proof:k.optional(k.unknown()),valid:k.boolean()})})(wi||={});function Y(e){let t=typeof e==`string`?{address:e}:e,n=t.sign?`privateKey`:`porto`,{address:r,sign:i,signMessage:a,signTransaction:o,signTypedData:s,type:c}=ve({address:t.address,sign({hash:e}){if(n===`privateKey`)return t.sign({hash:e});throw Error("`sign` not supported on porto accounts.")},signMessage({message:e}){return this.sign({hash:v(e)})},signTransaction(){throw Error("`signTransaction` not supported on porto accounts.")},signTypedData(e){return this.sign({hash:y(e)})}});return{address:r,keys:t.keys??void 0,sign:i,signMessage:a,signTransaction:o,signTypedData:s,source:n,type:c}}function Ti(e,t={}){let{keys:n}=t;return Y({address:T.fromPublicKey(O.getPublicKey({privateKey:e})),keys:n,async sign({hash:t}){return fe.toHex(O.sign({payload:t,privateKey:e}))},source:`privateKey`})}function Ei(e,t={}){let{key:n,role:r}=t;if(n!==null){if(typeof n==`object`)return n;if(e.keys&&e.keys.length>0)return typeof n==`number`?e.keys[n]:e.keys.find(e=>e.privateKey&&(!r||e.role===r))}}async function Di(e,t){let{storage:n,replaySafe:r=!0,wrap:i=!0,webAuthn:a}=t,o=Ei(e,t),s=(()=>r?pe.getSignPayload({domain:{verifyingContract:e.address},message:{digest:t.payload},primaryType:`ERC1271Sign`,types:{ERC1271Sign:[{name:`digest`,type:`bytes32`}]}}):t.payload)(),c=(()=>o?({hash:e})=>V(o,{address:null,payload:e,storage:n,webAuthn:a,wrap:i}):e.source===`privateKey`?e.sign:void 0)();if(!c)throw Error(`cannot find key to sign with.`);return await c({hash:s})}async function Oi(e,t={}){let{chainIds:n,...r}=t,i=await e.request({method:`wallet_connect`,params:[k.encode(hi.Parameters,{capabilities:r,chainIds:n})]});return k.decode(hi.Response,i)}const ki=()=>`IntersectionObserver`in window&&`IntersectionObserverEntry`in window&&`intersectionRatio`in IntersectionObserverEntry.prototype&&`isVisible`in IntersectionObserverEntry.prototype;function Ai(e={}){let{prefix:t=`[Porto]`}=e,n=new Set;return{error:Mi(console.error,{prefix:t}),errorOnce:Mi(console.error,{memo:n,prefix:t}),log:Mi(console.log,{prefix:t}),logOnce:Mi(console.log,{memo:n,prefix:t}),warn:Mi(console.warn,{prefix:t}),warnOnce:Mi(console.warn,{memo:n,prefix:t})}}const ji=Ai();function Mi(e,t={}){let{memo:n,prefix:r}=t;return(...t)=>{let i=t.join(` `);n?.has(i)||(n?.add(i),e(`${r} ${i}`))}}function Ni(){let e=navigator.userAgent.toLowerCase();return e.includes(`safari`)&&!e.includes(`chrome`)}function Pi(){let e=navigator.userAgent.toLowerCase();return(e.includes(`firefox`)||e.includes(`fxios`))&&!e.includes(`seamonkey`)}function Fi(){return window.navigator?.userAgentData?.mobile?!0:navigator.maxTouchPoints>1||/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(navigator.userAgent)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(navigator.userAgent.slice(0,4))}function Ii(){let e=()=>void 0,t=()=>void 0;return{promise:new Promise((n,r)=>{e=n,t=r}),reject:t,resolve:e}}function Li(e){if(Array.isArray(e))return e.map(Li);if(typeof e==`function`)return;if(typeof e!=`object`||!e)return e;if(Object.getPrototypeOf(e)!==Object.prototype)try{return structuredClone(e)}catch{return}let t={};for(let[n,r]of Object.entries(e))t[n]=Li(r);return t}function Ri(e,t){let n=[],r=new Set;for(let i of e){let e=t(i);r.has(e)||(r.add(e),n.push(i))}return n}function zi(){return typeof globalThis<`u`&&`crypto`in globalThis?globalThis.crypto.randomUUID():crypto.randomUUID()}function Bi(e,{enabled:t=!0,id:n}){if(!t||!n)return e();if(Bi.cache.get(n))return Bi.cache.get(n);let r=e().finally(()=>Bi.cache.delete(n));return Bi.cache.set(n,r),r}(function(e){e.cache=new Map})(Bi||={});function Vi(e){return e}function Hi(e,t={}){let{targetOrigin:n}=t,r=new Map;return Vi({destroy(){for(let t of r.values())e.removeEventListener(`message`,t)},on(t,i,a){function o(e){e.data.topic===t&&(a&&e.data.id!==a||n&&e.origin!==n||i(e.data.payload,e))}return e.addEventListener(`message`,o),r.set(t,o),()=>e.removeEventListener(`message`,o)},async send(t,r,i){let a=zi();return e.postMessage(Li({id:a,payload:r,topic:t}),i??n??`*`),{id:a,payload:r,topic:t}},async sendAsync(e,t,n){let{id:r}=await this.send(e,t,n);return new Promise(t=>this.on(e,t,r))}})}function Ui(e){let{from:t,to:n,waitForReady:r=!1}=e,i=!1,a=Ii();t.on(`ready`,a.resolve);let o=Vi({destroy(){t.destroy(),n.destroy(),i&&a.reject()},on(e,n,r){return t.on(e,n,r)},async send(e,t){return i=!0,r&&await a.promise.finally(()=>i=!1),n.send(e,t)},async sendAsync(e,t){return i=!0,r&&await a.promise.finally(()=>i=!1),n.sendAsync(e,t)}});return{...o,ready(e){o.send(`ready`,e)},waitForReady(){return a.promise}}}const Wi={local:`http://localhost:5175/dialog/`,prod:`https://wallet.risechain.com/dialog`,stg:`https://stg.wallet.risechain.com/dialog`};function Gi(e){return e}function Ki(e={}){let{skipProtocolCheck:t,skipUnsupported:n}=e,r=e=>!n&&Ni()&&e?.some(e=>[`wallet_connect`,`eth_requestAccounts`].includes(e.method));return typeof window>`u`?Ji():Gi({name:`iframe`,setup(e){let{host:n,internal:i,theme:a,themeController:o}=e,{store:s}=i,c=qi().setup(e),l=!1,u=new URL(n),d=document.createElement(`dialog`);d.dataset.porto=``,d.setAttribute(`role`,`dialog`),d.setAttribute(`aria-closed`,`true`),d.setAttribute(`aria-label`,`Porto Wallet`),d.setAttribute(`hidden`,`until-found`),Object.assign(d.style,{background:`transparent`,border:`0`,outline:`0`,padding:`0`,position:`fixed`}),document.body.appendChild(d);let f=document.createElement(`iframe`);f.setAttribute(`data-testid`,`porto`);let p=[`payment`,`publickey-credentials-get ${u.origin}`,`publickey-credentials-create ${u.origin}`];Pi()||p.push(`clipboard-write`),f.setAttribute(`allow`,p.join(`; `)),f.setAttribute(`tabindex`,`0`),f.setAttribute(`sandbox`,`allow-forms allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox`),f.setAttribute(`src`,ea(n)),f.setAttribute(`title`,`Porto`),Object.assign(f.style,{backgroundColor:`transparent`,border:`0`,colorScheme:`light dark`,height:`100%`,left:`0`,position:`fixed`,top:`0`,width:`100%`});let m=document.createElement(`style`);m.innerHTML=`
43
+ dialog[data-porto]::backdrop {
44
+ background: transparent!important;
45
+ }
46
+ `,d.appendChild(m),d.appendChild(f);let h=Ui({from:Hi(window,{targetOrigin:u.origin}),to:Hi(f.contentWindow,{targetOrigin:u.origin}),waitForReady:!0});o?._setup(h,!0);let g=window.matchMedia(`(max-width: 460px)`),_=()=>{h.send(`__internal`,{type:`resize`,width:g.matches?460:461})};g.addEventListener(`change`,_),h.on(`ready`,t=>{let n=e.internal.store.getState().chainIds.filter(e=>t.chainIds.includes(e));n.length===0&&(n=t.chainIds),s.setState(e=>({...e,chainIds:n})),h.send(`__internal`,{chainIds:n,mode:`iframe`,referrer:Zi(),theme:a,type:`init`}),_()}),h.on(`rpc-response`,e=>{r([e._request])&&(f.src=f.src),$i(s,e)}),h.on(`__internal`,e=>{e.type===`switch`&&e.mode===`popup`&&(c.open(),c.syncRequests(s.getState().requestQueue))});let v=null,y=null,b=()=>Qi(s),ee=e=>{e.key===`Escape`&&Qi(s)},x=new MutationObserver(e=>{for(let t of e){if(t.type!==`attributes`)continue;let e=t.attributeName;e&&e===`inert`&&d.removeAttribute(e)}});x.observe(d,{attributeOldValue:!0,attributes:!0});let S=!1,te=()=>{S&&(S=!1,d.removeEventListener(`click`,b),document.removeEventListener(`keydown`,ee),d.style.pointerEvents=`none`,y?.focus(),y=null,Object.assign(document.body.style,v??``),document.body.style.overflow=v?.overflow??``)},ne=()=>{S||(S=!0,d.addEventListener(`click`,b),document.addEventListener(`keydown`,ee),f.focus(),d.style.pointerEvents=`auto`,v=Object.assign({},document.body.style),document.body.style.overflow=`hidden`)},C=!1,w=()=>{C||(C=!0,document.activeElement instanceof HTMLElement&&(y=document.activeElement),d.removeAttribute(`hidden`),d.removeAttribute(`aria-closed`),d.showModal())},re=()=>{if(C){C=!1,d.setAttribute(`hidden`,`true`),d.setAttribute(`aria-closed`,`true`),d.close();for(let e of d.parentNode?Array.from(d.parentNode.children):[])e!==d&&e.hasAttribute(`inert`)&&e.removeAttribute(`inert`)}};return{close(){c.close(),l=!1,h.send(`__internal`,{mode:`iframe`,referrer:Zi(),type:`init`}),re(),te()},destroy(){c.close(),l=!1,te(),re(),c.destroy(),h.destroy(),d.remove(),x.disconnect(),g.removeEventListener(`change`,_)},open(){l||(l=!0,w(),ne(),h.send(`__internal`,{mode:`iframe`,referrer:Zi(),type:`init`}))},async secure(){let{trustedHosts:e}=await h.waitForReady(),n=(()=>{if(t)return!0;let e=window.location.protocol.startsWith(`https`);return e||ji.warnOnce(`Detected insecure protocol (HTTP).`,`\n\nThe Porto iframe is not supported on HTTP origins (${window.location.origin})`,`due to lack of WebAuthn support.`,`See https://porto.sh/sdk#secure-origins-https for more information.`),e})(),r=ki(),i=!!e?.includes(window.location.hostname),a=!!(r||i);return a||ji.warnOnce([`Warning: Browser does not support IntersectionObserver v2 or host "${u.hostname}" is not trusted by Porto.`,`This may result in the dialog falling back to a popup.`,``,`Add "${u.hostname}" to the trusted hosts list to enable iframe dialog: https://github.com/ithacaxyz/porto/edit/main/src/trusted-hosts.ts`].join(`
47
+ `)),{frame:a,host:i,protocol:n}},async syncRequests(e){let{methodPolicies:t}=await h.waitForReady(),n=await this.secure(),i=e?.every(e=>t?.find(t=>t.method===e.request.method)?.modes?.headless===!0),a=r(e.map(e=>e.request));if(!i&&(a||!n.protocol||!n.frame))c.syncRequests(e);else{let n=e.some(e=>Xi(e.request,{methodPolicies:t,targetOrigin:u.origin}));!l&&n&&this.open(),h.send(`rpc-requests`,e)}}}},supportsHeadless:!0})}function qi(e={}){if(typeof window>`u`)return Ji();let{type:t=`auto`,size:n=Yi}=e;return Gi({name:`popup`,setup(e){let{host:r,internal:i,themeController:a}=e,{store:o}=i,s=new URL(r),c=null,l=t===`page`||t===`auto`&&Fi()?`page`:`popup`;function u(){c&&Qi(o)}let d=(()=>{let e=setInterval(()=>{c?.closed&&Qi(o)},100);return()=>clearInterval(e)})(),f;return a?._setup(null,!0),{close(){c&&=(c.close(),null)},destroy(){this.close(),window.removeEventListener(`focus`,u),f?.destroy(),d()},open(){if(l===`popup`){let e=(window.innerWidth-n.width)/2+window.screenX,t=window.screenY+100;c=window.open(ea(r),`_blank`,`width=${n.width},height=${n.height},left=${e},top=${t}`)}else c=window.open(ea(r),`_blank`);if(!c)throw Error(`Failed to open popup`);f=Ui({from:Hi(window,{targetOrigin:s.origin}),to:Hi(c,{targetOrigin:s.origin}),waitForReady:!0}),a?._setup(f,!1),f.send(`__internal`,{mode:l===`page`?`page`:`popup`,referrer:Zi(),theme:a?.getTheme()??e.theme,type:`init`}),f.on(`rpc-response`,e=>$i(o,e)),window.removeEventListener(`focus`,u),window.addEventListener(`focus`,u)},async secure(){return{frame:!0,host:!0,protocol:!0}},async syncRequests(e){e.some(e=>Xi(e.request))&&((!c||c.closed)&&this.open(),c?.focus()),f?.send(`rpc-requests`,e)}}},supportsHeadless:!1})}function Ji(){return Gi({name:`noop`,setup(){return{close(){},destroy(){},open(){},async secure(){return{frame:!0,host:!0,protocol:!0}},async syncRequests(){}}},supportsHeadless:!0})}const Yi={height:282,width:360};function Xi(e,t={}){let{methodPolicies:n,targetOrigin:r}=t,i=n?.find(t=>t.method===e.method);return i&&i.modes?.headless?!!(typeof i.modes.headless==`object`&&i.modes.headless.sameOrigin&&r!==window.location.origin):!0}function Zi(){return{icon:(()=>{let e=document.querySelector(`link[rel="icon"][media="(prefers-color-scheme: dark)"]`)?.href,t=document.querySelector(`link[rel="icon"][media="(prefers-color-scheme: light)"]`)?.href??document.querySelector(`link[rel="icon"]`)?.href;return e&&t&&e!==t?{dark:e,light:t}:window.matchMedia(`(prefers-color-scheme: dark)`).matches?e:t})(),title:document.title}}function Qi(e){e.setState(e=>({...e,requestQueue:e.requestQueue.map(e=>({account:e.account,error:new j.UserRejectedRequestError,request:e.request,status:`error`}))}))}function $i(e,t){e.setState(e=>({...e,requestQueue:e.requestQueue.map(e=>e.request.id===t.id?t.error?{account:e.account,error:t.error,request:e.request,status:`error`}:{account:e.account,request:e.request,result:t.result,status:`success`}:e)}))}function ea(e){let t=new URL(e),n=new URLSearchParams(window.location.search);for(let[e,r]of n.entries())e.startsWith(`porto.`)&&t.searchParams.set(e.slice(6),r);return t.toString()}function ta(e){let t=xe.createServer(e);return new Promise((e,n)=>{t.on(`error`,n),t.listen(()=>{let{port:n}=t.address();e(Object.assign(t,{closeAsync(){return new Promise((e,n)=>t.close(t=>t?n(t):e(void 0)))},url:`http://localhost:${n}`}))})})}async function na(){let e=new Map,t=new Set,n=new Set,r=await ta((r,i)=>{let a=ye.parse(r.url,!0);if(i.setHeader(`Access-Control-Allow-Origin`,`*`),i.setHeader(`Access-Control-Allow-Methods`,`GET, POST, OPTIONS`),i.setHeader(`Access-Control-Allow-Headers`,`Content-Type`),i.setHeader(`Access-Control-Allow-Private-Network`,`true`),r.method===`OPTIONS`){i.writeHead(200),i.end();return}if(r.method===`GET`&&a.pathname===`/`){i.writeHead(200,{"Access-Control-Allow-Origin":`*`,"Cache-Control":`no-cache`,Connection:`keep-alive`,"Content-Type":`text/event-stream`}),t.add(i),r.on(`close`,()=>t.delete(i));return}if(r.method===`POST`&&a.pathname===`/`){let t=``;r.on(`data`,e=>t+=e.toString()),r.on(`end`,()=>{try{let n=JSON.parse(t);if(n.topic&&n.payload!==void 0){let t=e.get(n.topic);if(t){let e={data:n,origin:`http://localhost`};for(let r of t)r(n.payload,e)}}i.writeHead(200,{"Content-Type":`text/plain`}),i.end(`ok`)}catch{i.writeHead(400,{"Content-Type":`text/plain`}),i.end(`Invalid JSON`)}})}else r.method===`GET`&&a.pathname===`/.well-known/keys`?(i.writeHead(200,{"Access-Control-Allow-Origin":`*`,"Content-Type":`application/json`}),i.end(JSON.stringify({keys:Array.from(n)}))):(i.writeHead(404,{"Content-Type":`text/plain`}),i.end(`not found`))}),i=r.url,a=Ii(),o={destroy(){e.clear();for(let e of t)try{e.end()}catch{}t.clear(),r.close()},on(t,n){return e.has(t)||e.set(t,new Set),e.get(t).add(n),()=>{let r=e.get(t);r&&(r.delete(n),r.size===0&&e.delete(t))}},registerPublicKey(e){n.add(e)},relayUrl:i,async send(e,n){let r=zi(),i={id:r,payload:n,topic:e},a=`data: ${be.stringify(i)}\n\n`;for(let e of t)try{e.write(a)}catch{t.delete(e)}return{id:r,payload:n,topic:e}},async sendAsync(){throw Error(`Not implemented`)},waitForReady(){return o.on(`ready`,a.resolve),a.promise}};return o}const X=await na();async function ra(){let e=!1;return Gi({name:`cli`,setup(t){return X.on(`rpc-response`,e=>{$i(t.internal.store,e)}),X.on(`ready`,()=>{let{store:e}=t.internal,n=e.getState().requestQueue.map(e=>e.status===`pending`?e:void 0).filter(Boolean);X.send(`rpc-requests`,n)}),{close(){},destroy(){X.destroy()},open(){let n=new URLSearchParams([[`relayUrl`,X.relayUrl]]),r=t.host.replace(/\/$/,``)+`/?`+n.toString();console.log(`
48
+
49
+ Open the URL below in your browser to continue:`),console.log(`\n${r}\n`),e=!0},async secure(){return{frame:!0,host:!0,protocol:!0}},async syncRequests(t){if(t.length>1)throw Error("renderer (`cli`) does not support multiple requests.");t[0]?.request&&(e||this.open(),await X.waitForReady(),X.send(`rpc-requests`,t))}}},supportsHeadless:!0})}function ia(e){return{...e,setup:e.setup??(()=>()=>{})}}async function aa(e){let{account:t,calls:n,permissionsId:r}=e;if(r!==void 0){if(r===null)return;let e=t.keys?.find(e=>e.publicKey===r&&e.privateKey);if(!e)throw Error(`permission (id: ${r}) does not exist.`);return e}let i=t.keys?.find(e=>!e.privateKey||e.role!==`session`||e.expiry<BigInt(Math.floor(Date.now()/1e3))?!1:!!n.every(t=>e.permissions?.calls?.some(e=>{if(e.to&&e.to!==t.to)return!1;if(e.signature){if(!t.data)return!1;let n=E.slice(t.data,0,4);if(E.validate(e.signature))return e.signature===n;if(Se.getSelector(e.signature)!==n)return!1}return!0}))),a=t.keys?.find(e=>e.role===`admin`&&e.privateKey);return i??a}const oa=Nr;function sa(e,t){let{chainId:n,expiry:r,permissions:i,id:a,publicKey:o,type:s}=e,{address:c}=t;return{address:c,chainId:n,expiry:r,id:a,key:{publicKey:o,type:s},permissions:i??{}}}function ca(e){let{chainId:t,expiry:n,key:r}=e;return B({chainId:t,expiry:n,permissions:e.permissions??{},publicKey:r.publicKey,role:`session`,type:r.type})}const la=Pr;function ua(e){let{expiry:t,feeToken:n,permissions:r,publicKey:i,type:a}=e;return{expiry:t,feeToken:n??null,key:{publicKey:i,type:a},permissions:r??{}}}async function Z(e,t={}){if(!e)return;let n={chainId:t.chainId??e.chainId,expiry:e.expiry??0,feeToken:e.feeToken,permissions:Dn(e,{feeTokens:t.feeTokens}),role:`session`};if(e?.key)return B({...n,publicKey:e.key.publicKey,type:e.key.type??`secp256k1`});if(typeof globalThis.crypto?.subtle?.generateKey==`function`)try{return await _n(n)}catch(e){if(!da(e))throw e}return pn(n)}function da(e){if(!(e instanceof Error))return!1;let t=e.message?.toLowerCase()??``;return e.name===`TypeError`||e.name===`ReferenceError`||t.includes(`subtle`)||t.includes(`generatekey`)}async function fa(e){let{address:t,authUrl:n,message:r,signature:i}=e,{chainId:a}=Te.parseMessage(r);return await fetch(n.verify,{body:JSON.stringify({address:t,chainId:a,message:r,signature:i,walletAddress:t}),credentials:`include`,headers:{"Content-Type":`application/json`},method:`POST`}).then(e=>e.json())}async function pa(e,t,n){let{chainId:r=e.chain?.id,domain:i,uri:a,resources:o,version:s=`1`}=t,{address:c}=n,l=t.authUrl?ma(t.authUrl):void 0;if(!r)throw Error("`chainId` is required.");if(!i)throw Error("`domain` is required.");if(!t.nonce&&!l?.nonce)throw Error("`nonce` or `authUrl.nonce` is required.");if(!a)throw Error("`uri` is required.");let u=await(async()=>{if(t.nonce)return t.nonce;if(!l?.nonce)throw Error("`nonce` or `authUrl.nonce` is required.");let e=await(await fetch(l.nonce,{body:JSON.stringify({address:c,chainId:r,walletAddress:c}),headers:{"Content-Type":`application/json`},method:`POST`})).json().catch(()=>void 0);if(!e?.nonce)throw Error("`nonce` or `authUrl.nonce` is required.");return e.nonce})();return Te.createMessage({...t,address:n.address,chainId:r,domain:i,nonce:u,resources:o,uri:a,version:s})}function ma(e,t=``){if(!e)return;let n=(()=>{if(typeof e==`string`){let t=e.replace(/\/$/,``);return{logout:t+`/logout`,nonce:t+`/nonce`,verify:t+`/verify`}}return e})();return{logout:ha(n.logout,t),nonce:ha(n.nonce,t),verify:ha(n.verify,t)}}function ha(e,t){return!t||!e.startsWith(`/`)?e:t+e}async function ga(e,t){let{account:n=e.account}=t,r=n?Y(n):void 0;if(!r)throw Error(`account is required.`);let{domain:{name:i,version:a}}=await ne(e,{address:r.address});if(!e.chain)throw Error(`client.chain is required`);return{chainId:e.chain.id,name:i,verifyingContract:r.address,version:a}}async function _a(e,t){try{let n=`wallet_getAuthorization`,r=await x(()=>e.request({method:n,params:[k.encode(gr.Parameters,t)]}),{cacheKey:`${e.uid}.${n}.${t.address}`});return k.decode(gr.Response,r)}catch(e){throw Q(e),e}}async function va(e,t={}){let n=(()=>{if(t.chainId)return[t.chainId];if(t.chainIds!==`all`)return t.chainIds?t.chainIds:[e.chain.id]})();try{let r=`wallet_getCapabilities`,i=await x(()=>e.request({method:r,params:n?[n]:void 0},{retryCount:0}),{cacheKey:`${e.uid}.${r}.${n?.join(`,`)}`}),a=(()=>t.raw?i:k.decode(_r.Response,i))();return t.chainIds?a:Object.values(a)[0]}catch(e){throw Q(e),e}}async function ya(e,t){let{account:n,assetFilter:r,assetTypeFilter:i,chainFilter:a}=t;try{let t=await e.request({method:`wallet_getAssets`,params:[k.encode(vr.Parameters,{account:n,assetFilter:r,assetTypeFilter:i,chainFilter:a})]}),o=k.decode(vr.Response,t),s=Object.entries(o).reduce((e,[t,n])=>(e[E.toNumber(t)]=n,e),{}),c={};for(let e of Object.values(s))for(let t of e){let e=JSON.stringify(t.metadata);c[e]={...t,balance:t.balance+(c[e]?.balance??0n)}}return{...s,0:Object.values(c)}}catch(e){throw Q(e),e}}async function ba(e,t){let{id:n}=t;try{let t=await e.request({method:`wallet_getCallsStatus`,params:[n]});return k.decode(yr.Response,t)}catch(e){throw Q(e),e}}async function xa(e,t){let{address:n,chainIds:r}=t;try{let t=await e.request({method:`wallet_getKeys`,params:[k.encode(br.Parameters,{address:n,chainIds:r})]});return k.decode(br.Response,t)}catch(e){throw Q(e),e}}async function Sa(e){let t=`health`,n=await x(()=>e.request({method:t}),{cacheKey:`${e.uid}.${t}`});return k.decode(pr.Response,n)}async function Ca(e,t){let{address:n,capabilities:r,chain:i=e.chain,key:a}=t,o=t.calls.map(e=>({data:e.abi?oe.encodeData(oe.fromAbi(e.abi,e.functionName),e.args):e.data??`0x`,to:e.to,value:e.value??0n}));try{let t=await e.request({method:`wallet_prepareCalls`,params:[k.encode(xr.Parameters,{calls:o,capabilities:{...r,meta:{...r?.meta}},chainId:i?.id,from:n,key:a?{prehash:a.prehash,publicKey:a.publicKey,type:a.type}:void 0})]},{retryCount:0});return Object.assign(k.decode(xr.Response,t),{_raw:t})}catch(e){throw Q(e),ja(e,{calls:t.calls}),e}}async function wa(e,t){let{address:n,chain:r=e.chain,delegation:i,...a}=t;try{let t=await e.request({method:`wallet_prepareUpgradeAccount`,params:[k.encode(Sr.Parameters,Li({address:n,capabilities:a,chainId:r?.id,delegation:i}))]},{retryCount:0});return k.decode(Sr.Response,t)}catch(e){throw Q(e),ja(e),e}}async function Ta(e,t){let{capabilities:n,context:r,key:i,signature:a}=t;try{let t=await e.request({method:`wallet_sendPreparedCalls`,params:[k.encode(wr.Parameters,{capabilities:n,context:{preCall:r.preCall,quote:r.quote},key:i?{prehash:i.prehash,publicKey:i.publicKey,type:i.type}:void 0,signature:a})]},{retryCount:0});return k.decode(wr.Response,t)}catch(e){throw Q(e),ja(e),e}}async function Ea(e,t){let{email:n,walletAddress:r}=t;try{let t=await e.request({method:`account_setEmail`,params:[k.encode(lr.Parameters,{email:n,walletAddress:r})]},{retryCount:0});return k.decode(lr.Response,t)}catch(e){throw Q(e),ja(e),e}}async function Da(e,t){let{context:n,signatures:r}=t;try{await e.request({method:`wallet_upgradeAccount`,params:[k.encode(Tr.Parameters,{context:n,signatures:r})]},{retryCount:0})}catch(e){throw Q(e),ja(e),e}}async function Oa(e,t){let{chainId:n,email:r,signature:i,token:a,walletAddress:o}=t;try{let t=await e.request({method:`account_verifyEmail`,params:[k.encode(dr.Parameters,{chainId:n,email:r,signature:i,token:a,walletAddress:o})]},{retryCount:0});return k.decode(dr.Response,t)}catch(e){throw Q(e),ja(e),e}}async function ka(e,t){let{signature:n}=t,{signature:r,capabilities:{feeSignature:i,...a},...o}=t.response,s=Ma({capabilities:a,...o}),c=le.keccak256(E.fromString(JSON.stringify(s))),l=O.recoverAddress({payload:c,signature:fe.fromHex(n)}),{quoteSigner:u}=await Sa(e);return l===u}async function Aa(e,t){let{address:n,chain:r=e.chain,digest:i,signature:a}=t;try{async function t(){return{proof:null,valid:await C(e,{address:n,hash:i,signature:a})}}let o=await(async()=>{let o=await e.request({method:`wallet_verifySignature`,params:[k.encode(Er.Parameters,{address:n,chainId:r?.id,digest:i,signature:a})]},{retryCount:0}).catch(t);return o.valid?o:t()})();return k.decode(Er.Response,o)}catch(e){throw Q(e),e}}function ja(e,{calls:t}={}){if(!(e instanceof d))return;let n=e=>{try{if(e.name===`ContractFunctionExecutionError`){let t=e.cause.name===`ContractFunctionRevertedError`?e.cause.data:void 0;if(t)return De.fromAbi([t.abiItem],t.errorName)}let t=e.walk(e=>!(e instanceof Error)&&e.code===3);if(!t)return;let{data:n,message:r}=t;return n===`0xd0d5039b`?De.from(`error Unauthorized()`):{inputs:[],name:(r??n).split(`(`)[0],type:`error`}}catch{return}},r=Oe(e,{calls:t??[]}),i=n(r);if(!(r===e&&!i))throw new Na(Object.assign(r,{abiError:i}))}function Ma(e){if(typeof e==`object`&&e){if(Array.isArray(e))return e.map(Ma);let t={};for(let n of Object.keys(e).sort())t[n]=Ma(e[n]);return t}return e}function Q(e){if(e.name===`$ZodError`)throw Nn(e)}var Na=class extends _e.BaseError{constructor(e){super(`An error occurred while executing calls.`,{cause:e,metaMessages:[e.abiError&&`Reason: `+e.abiError.name].filter(Boolean)}),this.name=`Rpc.ExecutionError`,this.abiError=e.abiError}};async function Pa(e,t){let{account:n=e.account,chainIds:r}=t,i=n?Y(n):void 0;if(!i)throw Error(`account is required.`);let a=await xa(e,{address:i.address,chainIds:r});return Object.entries(a).flatMap(([e,t])=>t.map(t=>yn(t,{chainId:Number(e)})))}async function Fa(e,t){let{account:n=e.account,calls:r,chain:i=e.chain,feePayer:a,merchantUrl:o,nonce:s,preCalls:c,requiredFunds:l,revokeKeys:u}=t,d=n?Y(n):void 0,p=t.key??(d?Ei(d,{role:`admin`}):void 0),m=t.authorizeKeys?.some(e=>e.role===`session`),{contracts:h,fees:{tokens:g}}=await va(e,{chainId:i?.id}),_=m?h.orchestrator.address:void 0,v=(t.authorizeKeys??[]).map(e=>En(e,{feeTokens:g,orchestrator:_})),y=(()=>t.feeToken?t.feeToken:p?.permissions?.spend?.[0]?.token)(),ee=typeof c==`boolean`?c:!1,x=typeof c==`object`?c.map(({context:e,signature:t})=>({...e.preCall,signature:t})):void 0,S={address:d?.address,calls:r??[],capabilities:{authorizeKeys:v,meta:{feePayer:a,feeToken:y,nonce:s},preCall:ee,preCalls:x,requiredFunds:l,revokeKeys:u?.map(e=>({hash:e.hash}))},chain:i,key:p?En(p,{feeTokens:g}):void 0},te=await(async()=>o?await Ca(f({chain:e.chain,transport:b(o)}),S).catch(t=>(console.error(t),Ca(e,S))):await Ca(e,S))(),{capabilities:ne,context:C,digest:w,signature:re,typedData:ie}=te;if(o&&!await ka(e,{response:te._raw,signature:re}))throw Error(`cannot verify integrity of \`wallet_prepareCalls\` response from ${o}`);return{capabilities:{...ne,quote:C.quote},context:C,digest:w,key:p,typedData:ie}}async function Ia(e,t){let{address:n,authorizeKeys:r,chain:i=e.chain}=t;if(!i)throw Error(`chain is required.`);let{contracts:a,fees:{tokens:o}}=await va(e,{chainId:i.id}),s=t.delegation??a.accountProxy.address,c=r.some(e=>e.role===`session`)?a.orchestrator.address:void 0,{capabilities:l,chainId:u,context:d,digests:f,typedData:p}=await wa(e,{address:n,authorizeKeys:r.map(e=>{let t=e.role===`session`?e.permissions:{};return En({...e,permissions:t},{feeTokens:o,orchestrator:c})}),chain:i,delegation:s}),m=Y({address:n,keys:r});return{capabilities:l,chainId:u,context:{...d,account:m},digests:f,typedData:p}}async function La(e,t){let{account:n=e.account,chain:r=e.chain,webAuthn:i}=t;if(!r)throw Error("`chain` is required.");let a=n?Y(n):void 0;if(!a)throw Error("`account` is required.");let o=t.key??Ei(a,t);if(!o&&!a.sign)throw Error("`key` or `account` with `sign` is required");let s=await Promise.all((t.preCalls??[]).map(async n=>{if(n.signature)return n;let{authorizeKeys:o,key:s,calls:c,revokeKeys:l}=n,{context:u,digest:d}=await Fa(e,{account:a,authorizeKeys:o,calls:c,chain:r,feeToken:t.feeToken,key:s,preCalls:!0,revokeKeys:l});return{context:u,signature:await V(s,{address:null,payload:d,webAuthn:i})}})),{capabilities:c,context:l,digest:u}=await Fa(e,{...t,account:a,chain:r,key:o,preCalls:s}),d=await(async()=>o?await V(o,{address:null,payload:u,webAuthn:i,wrap:!1}):await a.sign({hash:u}))();return await Ra(e,{capabilities:c.feeSignature?{feeSignature:c.feeSignature}:void 0,context:l,key:o,signature:d})}async function Ra(e,t){let{capabilities:n,context:r,key:i,signature:a}=t;return await Ta(e,{capabilities:n,context:r,key:i?En(i):void 0,signature:a})}async function za(e,t){let{email:n,walletAddress:r}=t;return await Ea(e,{email:n,walletAddress:r})}async function Ba(e,t){if(t.account){let{account:n}=t,r=[...n.keys??[],...t.authorizeKeys??[]].filter((e,t,n)=>n.findIndex(t=>t.id===e.id)===t),{digests:i,...a}=await Ia(e,{...t,address:n.address,authorizeKeys:r}),o={auth:await n.sign({hash:i.auth}),exec:await n.sign({hash:i.exec})};return await Ba(e,{...a,signatures:o})}let{context:n,signatures:r}=t,i=Y(n.account);return await Da(e,{context:n,signatures:r}),i}async function Va(e,t){let{chainId:n,email:r,signature:i,token:a,walletAddress:o}=t;return await Oa(e,{chainId:n,email:r,signature:i,token:a,walletAddress:o})}async function Ha(e,t){let{address:n}=t,{authorization:r,data:i,to:a}=await _a(e,{address:n});return ke.wrap({authorization:{...r,nonce:BigInt(r.nonce),r:BigInt(r.r),s:BigInt(r.s)},data:i,signature:t.signature,to:a})}function Ua(e,t){let{tokens:n}=t,r=n.filter(e=>e.interop);return e.map(e=>{if(e.address)return e;let t=r.find(t=>t.symbol===e.symbol);if(!t)throw Error(`interop token not found: ${e.symbol}`);return{address:t.address,value:me.from(e.value,t.decimals)}})}async function $(e,t){let{chain:n=e.chain}=t??{};return await va(e,{chainId:n?.id}).then(e=>e.fees.tokens)}async function Wa(e,t){let{addressOrSymbol:n}=t;return(await $(e,t)).find(Wa.predicate(n))}(function(e){function t(e){return t=>e?T.validate(e)?T.isEqual(t.address,e):e===`native`?t.address===S:e===t.symbol:!1}e.predicate=t})(Wa||={});async function Ga(e,t){let{chain:n=e.chain,store:r}=t??{},i=r?.getState()??{},a=t?.addressOrSymbol??i.feeToken;return(await $(e,{chain:n}).then(e=>e.filter(e=>e.feeToken)))?.find(e=>a?a===`native`&&e.address===S||T.validate(a)&&T.isEqual(e.address,a)?!0:a===e.symbol:!1)}function Ka(e={}){let t=e,{mock:n,multichain:r=!0,webAuthn:i}=t,a,o,s=(()=>{if(t.keystoreHost!==`self`&&!(typeof window<`u`&&window.location?.hostname===`localhost`))return t.keystoreHost})();return ia({actions:{async addFunds(){throw new j.UnsupportedMethodError},async createAccount(e){let{admins:t,email:r,label:o,permissions:c,internal:l,signInWithEthereum:u}=e,{client:d}=l,f=Ti(O.randomPrivateKey()),p=await $(d),m=n?gn():await hn({createFn:i?.createFn,label:o||`${f.address.slice(0,8)}\u2026${f.address.slice(-6)}`,rpId:s,userId:ce.from(f.address)}),h=await Z(c,{chainId:d.chain.id,feeTokens:p}),g=t?.map(e=>B(e)),_=await Ba(d,{account:f,authorizeKeys:[m,...g??[],...h?[h]:[]]});a=f.address,r&&o&&await za(d,{email:o,walletAddress:_.address});let v=await(async()=>{if(!u)return;let e=await pa(d,u,{address:_.address}),t=await Di(f,{payload:Ee.getSignPayload(E.fromString(e))});return{message:e,signature:await Ha(d,{address:_.address,signature:t})}})();return{account:{..._,signInWithEthereum:v}}},async getAccountVersion(e){let{address:t,internal:n}=e,{client:r}=n,{contracts:i}=await va(r),{accountImplementation:a}=i,o=await ga(r,{account:Y(a)}).then(e=>e.version),s=await ga(r,{account:t}).then(e=>e.version).catch(()=>o);if(!s||!o)throw Error(`version not found.`);return{current:s,latest:o}},async getAssets(e){let{account:t,chainFilter:n,assetFilter:r,assetTypeFilter:i,internal:a}=e,{client:o}=a;return await ya(o,{account:t,assetFilter:r,assetTypeFilter:i,chainFilter:n})},async getCallsStatus(e){let{id:t,internal:n}=e,{client:r}=n,i=await ba(r,{id:t});return{atomic:!0,chainId:E.fromNumber(r.chain.id),id:t,receipts:i.receipts?.map(e=>({blockHash:e.blockHash,blockNumber:E.fromNumber(e.blockNumber),gasUsed:E.fromNumber(e.gasUsed),logs:e.logs,status:e.status,transactionHash:e.transactionHash})),status:i.status,version:`1.0`}},async getCapabilities(e){let{chainIds:t,internal:n}=e,{client:i}=n,a={atomic:{status:`supported`},atomicBatch:{supported:!0},feeToken:{supported:!0,tokens:[]},merchant:{supported:!0},permissions:{supported:!0},requiredFunds:{supported:!!r,tokens:[]}},o=await va(i,{chainIds:t?t.map(e=>E.toNumber(e)):`all`,raw:!0});return Object.entries(o).reduce((e,[t,n])=>({...e,[t]:{...a,...n,feeToken:{supported:!0,tokens:n.fees.tokens},requiredFunds:{supported:!!r,tokens:r?n.fees.tokens.filter(e=>e.interop):[]}}}),{})},async getKeys(e){let{account:t,chainIds:n,internal:r}=e,{client:i}=r;return Ri([...await Pa(i,{account:t,chainIds:n}),...t.keys??[]],e=>e.publicKey)},async grantAdmin(e){let{account:t,internal:n}=e,{client:r}=n,a=B(e.key,{chainId:r.chain.id}),o=await Ga(r,{addressOrSymbol:e.feeToken,store:n.store}),{id:s}=await La(r,{account:t,authorizeKeys:[a],feeToken:o?.address,webAuthn:i});return await w(r,{id:s,pollingInterval:500}),{key:a}},async grantPermissions(e){let{account:t,internal:n,permissions:r}=e,{client:i}=n,a=await $(i),o=await Z(r,{chainId:i.chain.id,feeTokens:a});if(!o)throw Error(`key to authorize not found.`);let s=t.keys?.find(e=>e.role===`admin`&&e.privateKey);if(!s)throw Error(`admin key not found.`);let{context:c,digest:l}=await Fa(i,{account:t,authorizeKeys:[o],key:s,preCalls:!0});return await Ra(i,{context:c,key:s,signature:await V(s,{address:null,payload:l})}),{key:o}},async loadAccounts(e){let{internal:t,permissions:r,signInWithEthereum:o}=e,{client:c}=t,l=await $(c),u=await Z(r,{chainId:c.chain.id,feeTokens:l}),{digest:d,digestType:f,message:p}=await(async()=>{if(o&&e.address){let t=await pa(c,o,{address:e.address});return{context:void 0,digest:Ee.getSignPayload(E.fromString(t)),digestType:`siwe`,message:t}}return{context:void 0,digest:`0x`,message:void 0}})(),{address:m,credentialId:h,webAuthnSignature:g}=await(async()=>{if(n){if(!a)throw Error(`address_internal not found.`);return{address:a,credentialId:void 0}}if(e.address&&e.key)return{address:e.address,credentialId:e.key.credentialId};let t=await he.sign({challenge:d,getFn:i?.getFn,rpId:s}),r=t.raw.response;return{address:ce.toHex(new Uint8Array(r.userHandle)),credentialId:t.raw.id,webAuthnSignature:t}})(),_=Y({address:m,keys:[...await Pa(c,{account:m,chainIds:[c.chain.id]}),...u?[u]:[]].map((e,t)=>t===0&&e.type===`webauthn-p256`?xn({...e,credential:{id:h,publicKey:D.fromHex(e.publicKey)},id:m,rpId:s}):e)}),v=Ei(_,{role:`admin`}),y=await(async()=>{if(d!==`0x`)return g?An(kn(g),{keyType:`webauthn-p256`,publicKey:v.publicKey}):await V(v,{address:_.address,payload:d})})();if(u){let{context:e,digest:t}=await Fa(c,{account:_,authorizeKeys:[u],preCalls:!0});await Ra(c,{context:e,key:v,signature:await V(v,{address:null,payload:t})})}let b=await(async()=>{if(o){if(f===`siwe`&&p&&y)return{message:p,signature:await Ha(c,{address:_.address,signature:y})};{let e=await pa(c,o,{address:_.address}),t=await Di(_,{payload:Ee.getSignPayload(E.fromString(e)),role:`admin`});return{message:e,signature:await Ha(c,{address:_.address,signature:t})}}}})();return{accounts:[{..._,signInWithEthereum:b}]}},async prepareCalls(e){let{account:t,calls:n,internal:i,merchantUrl:a}=e,{client:o}=i,s=e.key??await aa({account:t,calls:n});if(!s)throw Error(`cannot find authorized key to sign with.`);let[c,l]=await Promise.all([$(o),Ga(o,{addressOrSymbol:e.feeToken,store:i.store})]),u=Ua(e.requiredFunds??[],{tokens:c}),{capabilities:d,context:f,digest:p,typedData:m}=await Fa(o,{account:t,calls:n,feeToken:l?.address,key:s,merchantUrl:a,requiredFunds:r?u:void 0}),h=f.quote?.quotes??[],g=h[h.length-1];return{account:t,capabilities:{...d,quote:f.quote},chainId:o.chain.id,context:{...f,account:t,calls:n,nonce:g?.intent.nonce},digest:p,key:s,typedData:m}},async prepareUpgradeAccount(e){let{address:t,email:r,label:a,internal:c,permissions:l}=e,{client:u}=c,[d,f]=await Promise.all([$(u),Ga(u,{store:c.store})]),p=n?gn():await hn({createFn:i?.createFn,label:a||`${t.slice(0,8)}\u2026${t.slice(-6)}`,rpId:s,userId:ce.from(t)}),m=await Z(l,{chainId:u.chain.id,feeTokens:d}),{context:h,digests:g}=await Ia(u,{address:t,authorizeKeys:[p,...m?[m]:[]],feeToken:f?.address});return r&&(o=a),{context:h,digests:g}},async revokeAdmin(e){let{account:t,id:n,internal:r}=e,{client:a}=r,o=t.keys?.find(e=>e.id===n);if(o){if(o.type===`webauthn-p256`&&t.keys?.filter(e=>e.type===`webauthn-p256`).length===1)throw Error(`revoke the only WebAuthn key left.`);try{let{id:n}=await La(a,{account:t,feeToken:(await Ga(a,{addressOrSymbol:e.feeToken,store:r.store}))?.address,revokeKeys:[o],webAuthn:i});await w(a,{id:n})}catch(e){let t=e;if(t.name===`Rpc.ExecutionError`&&t.abiError?.name===`KeyDoesNotExist`)return;throw e}}},async revokePermissions(e){let{account:t,id:n,internal:r}=e,{client:a}=r,o=t.keys?.find(e=>e.id===n);if(o){if(o.role===`admin`)throw Error(`cannot revoke admins.`);try{let{id:n}=await La(a,{account:t,feeToken:(await Ga(a,{addressOrSymbol:e.feeToken,store:r.store}))?.address,revokeKeys:[o],webAuthn:i});await w(a,{id:n})}catch(e){let t=e;if(t.name===`Rpc.ExecutionError`&&t.abiError?.name===`KeyDoesNotExist`)return;throw e}}},async sendCalls(e){let{account:t,asTxHash:n,calls:a,internal:o,merchantUrl:s}=e,{client:c}=o,l=await aa({account:t,calls:a,permissionsId:e.permissionsId}),[u,d]=await Promise.all([$(c),Ga(c,{addressOrSymbol:e.feeToken,store:o.store})]),f=Ua(e.requiredFunds??[],{tokens:u}),p=await La(c,{account:t,calls:a,feeToken:d?.address,key:l,merchantUrl:s,requiredFunds:r?f:void 0,webAuthn:i});if(n){let{id:e,receipts:t,status:n}=await w(c,{id:p.id,pollingInterval:500});if(!t?.[0])throw n===`success`?new j.UnknownBundleIdError({message:`Call bundle with id: `+e+` not found.`}):new M.TransactionRejectedError({message:`Transaction failed under call bundle id: `+e+`.`});return{id:t[0].transactionHash}}return p},async sendPreparedCalls(e){let{context:t,key:n,internal:r,signature:i}=e,{client:a}=r,{id:o}=await Ra(a,{context:t,key:n,signature:i});return o},async signPersonalMessage(e){let{account:t,data:n,internal:r}=e,{client:a}=r,o=t.keys?.find(e=>e.role===`admin`&&e.privateKey);if(!o)throw Error(`cannot find admin key to sign with.`);let s=await Di(t,{key:o,payload:Ee.getSignPayload(n),webAuthn:i});return Ha(a,{address:t.address,signature:s})},async signTypedData(e){let{account:t,internal:n}=e,{client:r}=n,a=t.keys?.find(e=>e.role===`admin`&&e.privateKey);if(!a)throw Error(`cannot find admin key to sign with.`);let o=ue.parse(e.data),s=o.domain?.name===`Orchestrator`,c=await Di(t,{key:a,payload:pe.getSignPayload(o),replaySafe:!s,webAuthn:i});return s?c:Ha(r,{address:t.address,signature:c})},async upgradeAccount(e){let{account:t,context:n,internal:r,signatures:i}=e,{client:a}=r;return await Ba(a,{context:n,signatures:i}),o&&await za(a,{email:o,walletAddress:t.address}),{account:t}},async verifyEmail(e){let{account:t,chainId:n,email:r,token:a,internal:o,walletAddress:s}=e,{client:c}=o,l=t.keys?.find(e=>e.role===`admin`&&e.privateKey);if(!l)throw Error(`cannot find admin key to sign with.`);return await Va(c,{chainId:n,email:r,signature:await Di(t,{key:l,payload:le.keccak256(E.fromString(`${r}${a}`)),webAuthn:i}),token:a,walletAddress:s})}},config:e,name:`rpc`})}function qa(e={}){let{fallback:t=Ka(),host:n=Wi.prod,renderer:r=Ki(),theme:i,themeController:a}=e,o=new Set,s=Ce.createStore();function c(e){return j.from({async request(t){let n=s.prepare(t);return e.setState(e=>{let t=e.accounts[0],r=t?.keys?.find(e=>e.role===`admin`&&e.type===`webauthn-p256`);return{...e,requestQueue:[...e.requestQueue,{account:t?{address:t.address,key:r?{credentialId:r?.credentialId,publicKey:r.publicKey}:void 0}:void 0,request:n,status:`pending`}]}}),new Promise((t,r)=>{let i=a=>{let s=a.find(e=>e.request.id===n.id);if(!s&&a.length===0){o.delete(i),r(new j.UserRejectedRequestError);return}s&&(s.status!==`success`&&s.status!==`error`||(o.delete(i),s.status===`success`?t(s.result):r(j.parseError(s.error)),e.setState(e=>({...e,requestQueue:e.requestQueue.filter(e=>e.request.id!==n.id)}))))};o.add(i)})}},{schema:we.from()})}return ia({actions:{async addFunds(e){let{internal:t}=e,{request:n,store:r}=t;if(n.method!==`wallet_addFunds`)throw Error(`Cannot add funds for method: `+n.method);return await c(r).request(n)},async createAccount(e){let{internal:t}=e,{client:n,config:r,request:i,store:a}=t,{storage:o}=r,s=c(a);return{account:await(async()=>{if(i.method===`wallet_connect`){let[{capabilities:e,chainIds:t}]=i._decoded.params??[{}],a=Ya(e?.signInWithEthereum?.authUrl??r.authUrl,{storage:o}),c=i.params?.[0]?.capabilities?.signInWithEthereum,l=await Z(e?.grantPermissions,{chainId:n.chain.id}),u=l?k.encode(la,ua(l)):void 0,{accounts:d}=await s.request({...i,params:[{capabilities:{...i.params?.[0]?.capabilities,grantPermissions:u,signInWithEthereum:a||c?{...c,authUrl:a}:void 0},chainIds:t?.map(e=>E.fromNumber(e))}]}),[f]=d;if(!f)throw Error(`no account found.`);let p=f.capabilities?.admins?.map(e=>B(e,{chainId:n.chain.id})).filter(Boolean),m=f.capabilities?.permissions?.map(e=>{try{let t=ca(k.decode(oa,e));return t.id===l?.id?{...t,...l,permissions:t.permissions}:t}catch{return}}).filter(Boolean),h=await(async()=>{if(!f.capabilities?.signInWithEthereum)return;let{message:e,signature:t}=f.capabilities.signInWithEthereum;if(!a)return{message:e,signature:t};let{token:n}=await fa({address:f.address,authUrl:a,message:e,signature:t});return{message:e,signature:t,token:n}})();return{...Y({address:f.address,keys:[...p??[],...m??[]]}),signInWithEthereum:h}}throw Error(`Account creation not supported on method: ${i.method}`)})()}},async disconnect(e){let{internal:t}=e,{config:n}=t,{storage:r}=n,i=await r.getItem(`porto.authUrl`)||void 0,a=Ya(n.authUrl??i,{storage:r});a&&await fetch(a.logout,{credentials:`include`,method:`POST`}).catch(()=>{})},async getAccountVersion(e){let{internal:n}=e,{store:i,request:a}=n;if(a.method!==`wallet_getAccountVersion`)throw Error(`Cannot get version for method: `+a.method);return r.supportsHeadless?await c(i).request(a):t.actions.getAccountVersion(e)},async getAssets(e){let{internal:n}=e,{store:i,request:a}=n;if(a.method!==`wallet_getAssets`)throw Error(`Cannot get assets for method: `+a.method);if(!r.supportsHeadless)return t.actions.getAssets(e);let o=await c(i).request(a);return k.decode(_i.Response,o)},async getCallsStatus(e){let{internal:n}=e,{store:i,request:a}=n;if(a.method!==`wallet_getCallsStatus`)throw Error(`Cannot get status for method: `+a.method);return r.supportsHeadless?await c(i).request(a):t.actions.getCallsStatus(e)},async getCapabilities(e){let{internal:n}=e,{store:i,request:a}=n;if(a.method!==`wallet_getCapabilities`)throw Error(`Cannot get capabilities for method: `+a.method);return r.supportsHeadless?await c(i).request(a):t.actions.getCapabilities(e)},async getKeys(e){let{account:n,chainIds:i,internal:a}=e,{store:o}=a;return Ri([...await(async()=>{if(!r.supportsHeadless)return t.actions.getKeys(e);let a=await c(o).request({method:`wallet_getKeys`,params:[k.encode(bi.Parameters,{address:n.address,chainIds:i})]});return k.decode(bi.Response,a)})(),...n.keys??[]],e=>e.publicKey)},async grantAdmin(e){let{internal:t}=e,{request:n,store:r}=t;if(n.method!==`wallet_grantAdmin`)throw Error(`Cannot authorize admin for method: `+n.method);let[i]=n._decoded.params,a=B(i.key);if(!a)throw Error(`no key found.`);let o=await Ja(t,e);return await c(r).request({method:`wallet_grantAdmin`,params:[{...n.params?.[0],capabilities:{...n.params?.[0]?.capabilities,feeToken:o}}]}),{key:a}},async grantPermissions(e){let{internal:t}=e,{client:n,request:r,store:i}=t;if(r.method!==`wallet_grantPermissions`)throw Error(`Cannot grant permissions for method: `+r.method);let[{address:a,...o}]=r._decoded.params,s=await Z(o,{chainId:n.chain.id});if(!s)throw Error(`no key found.`);let l=k.encode(la,ua(s));return await c(i).request({method:`wallet_grantPermissions`,params:[l]}),{key:s}},async loadAccounts(e){let{internal:t}=e,{client:n,config:r,store:i}=t,{storage:a}=r,o=c(i),s=t.request;if(s.method!==`wallet_connect`&&s.method!==`eth_requestAccounts`)throw Error(`Cannot load accounts for method: `+s.method);return{accounts:await(async()=>{let[e]=s._decoded.params??[],{capabilities:t}=e??{},i=Ya(t?.signInWithEthereum?.authUrl??r.authUrl,{storage:a}),c=s.params?.[0]?.capabilities?.signInWithEthereum,l=await Z(t?.grantPermissions,{chainId:n.chain.id}),u=l?k.encode(la,ua(l)):void 0,{accounts:d}=await o.request({method:`wallet_connect`,params:[{...s.params?.[0],capabilities:{...s.params?.[0]?.capabilities,grantPermissions:u,signInWithEthereum:i||c?{...c,authUrl:i}:void 0}}]});return Promise.all(d.map(async e=>{let t=e.capabilities?.admins?.map(e=>B(e)).filter(Boolean),n=e.capabilities?.permissions?.map(e=>{try{let t=ca(k.decode(oa,e));return t.id===l?.id?{...t,...l,permissions:t.permissions}:t}catch{return}}).filter(Boolean),r=await(async()=>{if(!e.capabilities?.signInWithEthereum)return;let{message:t,signature:n}=e.capabilities.signInWithEthereum;if(!i)return{message:t,signature:n};let{token:r}=await fa({address:e.address,authUrl:i,message:t,signature:n});return{message:t,signature:n,token:r}})();return{...Y({address:e.address,keys:[...t??[],...n??[]]}),signInWithEthereum:r}}))})()}},async prepareCalls(e){let{account:n,internal:i}=e,{store:a,request:o}=i;if(o.method!==`wallet_prepareCalls`)throw Error(`Cannot prepare calls for method: `+o.method);if(!r.supportsHeadless)return t.actions.prepareCalls(e);let s=await Ja(i,e),l=c(a),u=k.decode(J.Response,await l.request({...o,params:[{...o.params?.[0],capabilities:{...o.params?.[0]?.capabilities,feeToken:s}}]}));return{account:n,chainId:Number(u.chainId),context:u.context,digest:u.digest,key:u.key,typedData:u.typedData}},async prepareUpgradeAccount(e){let{internal:n}=e,{client:i,store:a,request:o}=n;if(o.method!==`wallet_prepareUpgradeAccount`)throw Error(`Cannot prepare upgrade for method: `+o.method);if(!r.supportsHeadless)return t.actions.prepareUpgradeAccount(e);let[{capabilities:s}]=o._decoded.params??[{}],l=await Z(s?.grantPermissions,{chainId:i.chain.id}),u=l?k.encode(la,ua(l)):void 0,{context:d,digests:f}=await c(a).request({...o,params:[{...o.params?.[0],capabilities:{...o.params?.[0]?.capabilities,grantPermissions:u}}]}),p=d.account.keys?.map(e=>e.id===l?.id?{...e,...l}:e);return{context:{...d,account:{...d.account,keys:p}},digests:f}},async revokeAdmin(e){let{account:t,id:n,internal:r}=e,{store:i,request:a}=r;if(a.method!==`wallet_revokeAdmin`)throw Error(`Cannot revoke admin for method: `+a.method);let o=t.keys?.find(e=>e.id===n);if(!o)return;if(o.type===`webauthn-p256`&&t.keys?.filter(e=>e.type===`webauthn-p256`).length===1)throw Error(`revoke the only WebAuthn key left.`);let s=await Ja(r,e);return await c(i).request({...a,params:[{...a.params?.[0],capabilities:{...a.params?.[0]?.capabilities,feeToken:s}}]})},async revokePermissions(e){let{account:t,id:n,internal:r}=e,{store:i,request:a}=r;if(a.method!==`wallet_revokePermissions`)throw Error(`Cannot revoke permissions for method: `+a.method);let o=t.keys?.find(e=>e.id===n);if(o){if(o.role===`admin`)throw Error(`cannot revoke permissions.`);return await c(i).request(a)}},async sendCalls(e){let{account:n,asTxHash:i,calls:a,internal:o,merchantUrl:s,requiredFunds:l}=e,{client:u,store:d,request:f}=o,p=c(d),m=await Ja(o,e),h=await aa({account:n,calls:a,permissionsId:e.permissionsId});if(h&&h.role===`session`){if(!r.supportsHeadless)return t.actions.sendCalls(e);try{let e=await p.request(k.encode(J.Request,{method:`wallet_prepareCalls`,params:[{calls:a,capabilities:{...f._decoded.method===`wallet_sendCalls`?f._decoded.params?.[0]?.capabilities:void 0,feeToken:m,merchantUrl:s,requiredFunds:l},chainId:u.chain.id,from:n.address,key:h}]})),t=e.capabilities?.quote?.quotes??[];if(t.some((e,n)=>n===t.length-1&&t.length>1?!1:E.toBigInt(e.feeTokenDeficit)>0n))throw Error(`insufficient funds`);let r=await V(h,{address:null,payload:e.digest,wrap:!1}),o=(await p.request({method:`wallet_sendPreparedCalls`,params:[{...e,signature:r}]}))[0];if(!o)throw Error(`id not found`);if(i){let{id:e,receipts:t,status:n}=await w(u,{id:o.id,pollingInterval:500});if(!t?.[0])throw n===`success`?new j.UnknownBundleIdError({message:`Call bundle with id: `+e+` not found.`}):new M.TransactionRejectedError({message:`Transaction failed under call bundle id: `+e+`.`});return{id:t[0].transactionHash}}return o}catch{}}if(f.method===`eth_sendTransaction`)return{id:await p.request({...f,params:[{...f.params?.[0],capabilities:{feeToken:m,merchantUrl:s}}]})};if(f.method===`wallet_sendCalls`)return await p.request({method:`wallet_sendCalls`,params:[{...f.params?.[0],capabilities:{...f.params?.[0]?.capabilities,feeToken:m,merchantUrl:s}}]});throw Error(`Cannot execute for method: `+f.method)},async sendPreparedCalls(e){let{internal:n}=e,{store:i,request:a}=n;if(a.method!==`wallet_sendPreparedCalls`)throw Error(`Cannot send prepared calls for method: `+a.method);if(!r.supportsHeadless)return t.actions.sendPreparedCalls(e);let o=(await c(i).request(a))[0]?.id;if(!o)throw Error(`id not found`);return o},async signPersonalMessage(e){let{internal:t}=e,{store:n,request:r}=t;if(r.method!==`personal_sign`)throw Error(`Cannot sign personal message for method: `+r.method);return await c(n).request(r)},async signTypedData(e){let{internal:t}=e,{store:n,request:r}=t;if(r.method!==`eth_signTypedData_v4`)throw Error(`Cannot sign typed data for method: `+r.method);return await c(n).request(r)},async switchChain(e){let{internal:t}=e,{store:n,request:i}=t;if(i.method!==`wallet_switchEthereumChain`)throw Error(`Cannot switch chain for method: `+i.method);if(r.supportsHeadless)return await c(n).request(i)},async upgradeAccount(e){let{account:t,internal:n}=e,{store:r,request:i}=n;if(i.method!==`wallet_upgradeAccount`)throw Error(`Cannot upgrade account for method: `+i.method);return await c(r).request(i),{account:t}},async verifyEmail(e){let{internal:t}=e,{request:n,store:r}=t;if(n.method!==`account_verifyEmail`)throw Error(`Cannot verify email for method: `+n.method);return await c(r).request(n)}},config:e,name:`dialog`,setup(e){let{internal:t}=e,{store:s}=t,c=r.setup({host:n,internal:t,theme:i,themeController:a}),l=s.subscribe(e=>e.requestQueue,e=>{for(let t of o)t(e);let t=e.map(e=>e.status===`pending`?e:void 0).filter(Boolean);c.syncRequests(t).catch(()=>{}),t.length===0&&c.close()});return()=>{l(),c.destroy()}}})}async function Ja(e,t){let{config:{feeToken:n}}=e,{feeToken:r}=t??{};return r??n}function Ya(e,{storage:t}){if(!e)return;let n=ma(e,typeof window<`u`?window.location.origin:void 0);return n&&t.setItem(`porto.authUrl`,n),n}const Xa={anvil:{http:`http://localhost:9119`},prod:{http:`https://relay.wallet.risechain.com`},stg:{http:`https://stg.relay.wallet.risechain.com`}};function Za(e){return t=>{let n=e.public(t),r=e.relay(t);return p({key:Za.type,name:`Relay Proxy`,async request({method:e,params:t},i){return Qa(e)?r.request({method:e,params:t},i):n.request({method:e,params:t},i)},type:Za.type})}}(function(e){e.type=`relayProxy`})(Za||={});function Qa(e){return!!(e.startsWith(`wallet_`)||e.startsWith(`account_`)||e===`health`)}const $a=new Map;function eo(e,t={}){let{config:n,id:r,store:i}=e._internal,{chains:a,relay:o}=n,s=i.getState(),c=t.chainId??s.chainIds[0],l=a.find(e=>e.id===c);if(!l)throw Error([`Could not find a compatible Porto chain on the given chain configuration.`,``,`Provided chains: [${a.map(e=>`${e.name} (id: ${e.id})`).join(`, `)}]`,`Needed chain (id): ${c}`,`Please add this chain (id) to your chain configuration.`].join(`
50
+ `));let u=Za({public:n.transports[l.id]??g(l.rpcUrls.default.http.map(e=>b(e))),relay:o}),d=[r,ue.stringify(l)].filter(Boolean).join(`:`);if($a.has(d))return $a.get(d);let p=f({...t,chain:l,pollingInterval:1e3,transport:u});return $a.set(d,p),p}const to=k.discriminatedUnion(`method`,[Xr.Request,Qr.Request,$r.Request,ei.Request,ti.Request,ni.Request,ri.Request,si.Request,ii.Request,ci.Request,ai.Request,oi.Request,xi.Request,li.Request,ui.Request,fi.Request,pi.Request,mi.Request,hi.Request,gi.Request,_i.Request,vi.Request,yi.Request,bi.Request,J.Request,Si.Request,Ci.Request,di.Request,wi.Request]);function no(e,t){let n=k.safeParse(e,t);if(n.error){let e=n.error.issues.at(0);throw e?.code===`invalid_union`&&e.note===`No matching discriminator`?new M.MethodNotSupportedError:new M.InvalidParamsError(Nn(n.error))}return{...t,_decoded:n.data}}async function ro(e){e.persist.hasHydrated()||await new Promise(t=>{e.persist.onFinishHydration(()=>t(!0)),setTimeout(()=>t(!0),100)})}function io(e){if(e)return e.startsWith(`/`)?`${window.location.origin}${e}`:e}function ao(e){let{config:t,getMode:n,id:r,store:i}=e,{announceProvider:a}=t;function o(e={}){let a=s(),o=e.request??no(to,{method:`wallet_getCapabilities`,params:e.chainIds?[void 0,e.chainIds]:void 0});return x(()=>n().actions.getCapabilities({chainIds:e.chainIds,internal:{client:a,config:t,request:o,store:i}}),{cacheKey:`getCapabilities.${r}.${e.chainIds?.join(`,`)}`})}function s(t){let n=typeof t==`string`?E.toNumber(t):t;return eo({_internal:e},{chainId:n})}let c=new Map,l=[],u=j.createEmitter(),d=j.from({...u,async request(e){return await ro(i),Bi(async()=>{let r;try{r=no(to,e)}catch(t){let n=t;if(!(n instanceof M.MethodNotSupportedError))throw n;if(e.method.startsWith(`wallet_`))throw new j.UnsupportedMethodError;return s().request(e)}let a=i.getState();switch(r.method){case`account_verifyEmail`:{if(a.accounts.length===0)throw new j.DisconnectedError;let[e]=r._decoded.params,{chainId:o,email:c,token:l,walletAddress:u}=e,d=s(o);if(o&&o!==d.chain.id)throw new j.ChainDisconnectedError;let f=u?a.accounts.find(e=>T.isEqual(e.address,u)):a.accounts[0];if(!f)throw new j.UnauthorizedError;return await n().actions.verifyEmail({account:f,chainId:o,email:c,internal:{client:d,config:t,request:r,store:i},token:l,walletAddress:u})}case`wallet_addFunds`:{if(a.accounts.length===0)throw new j.DisconnectedError;let{address:e,value:o,token:c}=r.params[0]??{},l=e?a.accounts.find(t=>T.isEqual(t.address,e)):a.accounts[0];if(!l)throw new j.UnauthorizedError;let d=s(),f=await n().actions.addFunds({address:l.address,internal:{client:d,config:t,request:r,store:i},token:c,value:o});return u.emit(`message`,{data:null,type:`assetsChanged`}),f}case`eth_accounts`:if(a.accounts.length===0)throw new j.DisconnectedError;return a.accounts.map(lo);case`eth_chainId`:return E.fromNumber(a.chainIds[0]);case`eth_requestAccounts`:{if(a.accounts.length>0&&c.get(`eth_requestAccounts`))return a.accounts.map(lo);let e=s(),{accounts:o}=await n().actions.loadAccounts({internal:{client:e,config:t,request:r,store:i}});return i.setState(e=>({...e,accounts:o})),u.emit(`connect`,{chainId:E.fromNumber(e.chain.id)}),c.set(`eth_requestAccounts`,!0),setTimeout(()=>c.delete(`eth_requestAccounts`),1e3),o.map(lo)}case`eth_sendTransaction`:{if(a.accounts.length===0)throw new j.DisconnectedError;let[{capabilities:e,chainId:o,data:c=`0x`,from:l,to:u,value:d}]=r._decoded.params,f=s(o);if(o&&o!==f.chain.id)throw new j.ChainDisconnectedError;let p=l?a.accounts.find(e=>T.isEqual(e.address,l)):a.accounts[0];if(!p)throw new j.UnauthorizedError;let{id:m}=await n().actions.sendCalls({account:p,asTxHash:!0,calls:[{data:c,to:u,value:d}],internal:{client:f,config:t,request:r,store:i},merchantUrl:io(t.merchantUrl??e?.merchantUrl)});return m}case`eth_signTypedData_v4`:{if(a.accounts.length===0)throw new j.DisconnectedError;let[e,o]=r._decoded.params,c=a.accounts.find(t=>T.isEqual(t.address,e));if(!c)throw new j.UnauthorizedError;let l=s();return await n().actions.signTypedData({account:c,data:o,internal:{client:l,config:t,request:r,store:i}})}case`wallet_grantAdmin`:{if(a.accounts.length===0)throw new j.DisconnectedError;let[{address:e,capabilities:o,chainId:c,key:l}]=r._decoded.params??[{}],d=e?a.accounts.find(t=>T.isEqual(t.address,e)):a.accounts[0];if(!d)throw new j.UnauthorizedError;let f=s(c);if(so([...d.keys??[]])?.some(e=>e.publicKey?.toLowerCase()===l.publicKey.toLowerCase()))throw new M.InvalidParamsError({message:`Key already granted as admin.`});let{key:p}=await n().actions.grantAdmin({account:d,feeToken:o?.feeToken,internal:{client:f,config:t,request:r,store:i},key:l});i.setState(e=>{let t=e.accounts.findIndex(e=>d?T.isEqual(e.address,d.address):!0);return t===-1?e:{...e,accounts:e.accounts.map((e,n)=>n===t?{...e,keys:[...e.keys??[],p]}:e)}});let m=so([...d.keys??[],p]);return u.emit(`message`,{data:null,type:`adminsChanged`}),k.encode(ai.Response,{address:d.address,chainId:f.chain.id,key:m.at(-1)})}case`wallet_grantPermissions`:{if(a.accounts.length===0)throw new j.DisconnectedError;let[{address:e,chainId:o,...c}]=r._decoded.params??[{}],l=e?a.accounts.find(t=>T.isEqual(t.address,e)):a.accounts[0];if(!l)throw new j.UnauthorizedError;let d=s(o),{key:f}=await n().actions.grantPermissions({account:l,internal:{client:d,config:t,request:r,store:i},permissions:c});return i.setState(e=>{let t=e.accounts.findIndex(e=>l?T.isEqual(e.address,l.address):!0);return t===-1?e:{...e,accounts:e.accounts.map((e,n)=>n===t?{...e,keys:[...e.keys??[],f]}:e)}}),u.emit(`message`,{data:null,type:`permissionsChanged`}),k.encode(oi.Response,{...sa(f,{address:l.address})})}case`wallet_getAdmins`:{if(a.accounts.length===0)throw new j.DisconnectedError;let[{address:e,chainId:o}]=r._decoded.params??[{}],c=e?a.accounts.find(t=>T.isEqual(t.address,e)):a.accounts[0];if(!c)throw new j.UnauthorizedError;let l=s(o),u=so(await n().actions.getKeys({account:c,internal:{client:l,config:t,request:r,store:i}}));return k.encode(ii.Response,{address:c.address,chainId:l.chain.id,keys:u})}case`wallet_prepareUpgradeAccount`:{let[{address:e,capabilities:a,chainId:o}]=r._decoded.params??[{}],{email:c,label:u,grantPermissions:d}=a??{},f=s(o),{context:p,digests:m}=await n().actions.prepareUpgradeAccount({address:e,email:c,internal:{client:f,config:t,request:r,store:i},label:u,permissions:d});return l.push(p.account),{context:p,digests:m}}case`wallet_getAccountVersion`:{if(a.accounts.length===0)throw new j.DisconnectedError;let[{address:e}]=r._decoded.params??[{}],o=e?a.accounts.find(t=>T.isEqual(t.address,e)):a.accounts[0];if(!o)throw new j.UnauthorizedError;let c=s(),{current:l,latest:u}=await n().actions.getAccountVersion({address:o.address,internal:{client:c,config:t,request:r,store:i}});return{current:l,latest:u}}case`wallet_getKeys`:{if(a.accounts.length===0)throw new j.DisconnectedError;let[{address:e,chainIds:o}]=r._decoded.params??[{}],c=a.accounts.find(t=>T.isEqual(t.address,e));if(!c)throw new j.UnauthorizedError;let l=s(),u=await n().actions.getKeys({account:c,chainIds:o,internal:{client:l,config:t,request:r,store:i}});return k.encode(bi.Response,u)}case`wallet_getPermissions`:{if(a.accounts.length===0)throw new j.DisconnectedError;let[{address:e,chainIds:o}]=r._decoded.params??[{}],c=e?a.accounts.find(t=>T.isEqual(t.address,e)):a.accounts[0];if(!c)throw new j.UnauthorizedError;let l=s();return co(await n().actions.getKeys({account:c,chainIds:o,internal:{client:l,config:t,request:r,store:i}}),{address:c.address})}case`wallet_revokeAdmin`:{if(a.accounts.length===0)throw new j.DisconnectedError;let[{address:e,capabilities:o,id:c}]=r._decoded.params,l=e?a.accounts.find(t=>T.isEqual(t.address,e)):a.accounts[0];if(!l)throw new j.UnauthorizedError;let d=s();await n().actions.revokeAdmin({account:l,feeToken:o?.feeToken,id:c,internal:{client:d,config:t,request:r,store:i}});let f=l.keys?.filter(e=>e.id.toLowerCase()!==c.toLowerCase());i.setState(e=>({...e,accounts:e.accounts.map(e=>T.isEqual(e.address,l.address)?{...e,keys:f}:e)})),u.emit(`message`,{data:null,type:`adminsChanged`});return}case`wallet_revokePermissions`:{if(a.accounts.length===0)throw new j.DisconnectedError;let[{address:e,capabilities:o,id:c}]=r._decoded.params,l=e?a.accounts.find(t=>T.isEqual(t.address,e)):a.accounts[0];if(!l)throw new j.UnauthorizedError;let d=s();await n().actions.revokePermissions({account:l,feeToken:o?.feeToken,id:c,internal:{client:d,config:t,request:r,store:i}});let f=l.keys?.filter(e=>e.id.toLowerCase()!==c.toLowerCase());i.setState(e=>({...e,accounts:e.accounts.map(e=>T.isEqual(e.address,l.address)?{...e,keys:f}:e)})),u.emit(`message`,{data:null,type:`permissionsChanged`});return}case`wallet_upgradeAccount`:{let[{context:e,signatures:a}]=r._decoded.params??[{}],o=s(),c=l.find(t=>T.isEqual(t.address,e.account.address));if(!c)throw new j.UnauthorizedError;let{account:d}=await n().actions.upgradeAccount({account:c,context:e,internal:{client:o,config:t,request:r,store:i},signatures:a}),f=so(d.keys??[]),p=co(d.keys??[],{address:d.address});return i.setState(e=>({...e,accounts:[d]})),u.emit(`connect`,{chainId:E.fromNumber(o.chain.id)}),{address:d.address,capabilities:{admins:f,...p.length>0?{permissions:p}:{}}}}case`porto_ping`:return`pong`;case`personal_sign`:{if(a.accounts.length===0)throw new j.DisconnectedError;let[e,o]=r._decoded.params,c=a.accounts.find(e=>T.isEqual(e.address,o));if(!c)throw new j.UnauthorizedError;let l=s();return await n().actions.signPersonalMessage({account:c,data:e,internal:{client:l,config:t,request:r,store:i}})}case`wallet_connect`:{let[{capabilities:e,chainIds:o}]=r._decoded.params??[{}],c=s(o?.[0]),l=c.chain.id,{createAccount:d,email:f,grantAdmins:p,grantPermissions:m,selectAccount:h,signInWithEthereum:g}=e??{},_={client:c,config:t,request:r,store:i},{accounts:v}=await(async()=>{if(f||d){let{label:e=void 0}=typeof d==`object`?d:{},{account:t}=await n().actions.createAccount({admins:p,email:f,internal:_,label:e,permissions:m,signInWithEthereum:g});return{accounts:[t]}}let e=a.accounts[0],{address:t,key:r}=(()=>{if(h)return typeof h==`object`?h:{address:void 0,key:void 0};for(let t of e?.keys??[])if(t.type===`webauthn-p256`&&t.role===`admin`)return{address:e?.address,key:{credentialId:t.credentialId??t.privateKey?.credential?.id,publicKey:t.publicKey}};return{address:void 0,key:void 0}})(),i={internal:_,permissions:m,signInWithEthereum:g};try{return await n().actions.loadAccounts({address:t,key:r,...i})}catch(e){if(e instanceof j.UserRejectedRequestError)throw e;if(t&&r)return await n().actions.loadAccounts(i);throw e}})();i.setState(e=>({...e,accounts:v}));let y=[l,...i.getState().chainIds.filter(e=>e!==l)];return u.emit(`connect`,{chainId:E.fromNumber(y[0])}),{accounts:v.map(e=>({address:lo(e),capabilities:{admins:e.keys?so(e.keys):[],permissions:e.keys?co(e.keys,{address:e.address}):[],...e.signInWithEthereum&&{signInWithEthereum:e.signInWithEthereum}}})),chainIds:y.map(e=>E.fromNumber(e))}}case`wallet_disconnect`:{let e=s();await n().actions.disconnect?.({internal:{client:e,config:t,request:r,store:i}}),i.setState(e=>({...e,accounts:[]})),u.emit(`disconnect`,new j.DisconnectedError);return}case`wallet_getAssets`:{let[e]=r._decoded.params??[],{account:a,chainFilter:o,assetFilter:c,assetTypeFilter:l}=e,u=s(),d=await n().actions.getAssets({account:a,assetFilter:c,assetTypeFilter:l,chainFilter:o,internal:{client:u,config:t,request:r,store:i}}),f=Object.entries(d).reduce((e,[t,n])=>(e[E.fromNumber(Number(t))]=n,e),{});return k.encode(_i.Response,f)}case`wallet_getCallsStatus`:{let[e]=r._decoded.params??[],a=s();return await n().actions.getCallsStatus({id:e,internal:{client:a,config:t,request:r,store:i}})}case`wallet_getCapabilities`:{let[e,t]=r.params??[];return await o({chainIds:t,request:r})}case`wallet_prepareCalls`:{let[e]=r._decoded.params,{calls:o,capabilities:c,chainId:l,key:u,from:d}=e,f=s(l),p=d??a.accounts[0];if(!p)throw new j.UnauthorizedError;if(l&&l!==f.chain.id)throw new j.ChainDisconnectedError;let{digest:m,...h}=await n().actions.prepareCalls({account:Y(p),calls:o,feeToken:c?.feeToken,internal:{client:f,config:t,request:r,store:i},key:u,merchantUrl:io(t.merchantUrl??c?.merchantUrl),requiredFunds:c?.requiredFunds});return k.encode(J.Response,{capabilities:h.capabilities,chainId:E.fromNumber(h.chainId??f.chain.id),context:{...h.context,account:{address:h.account.address},calls:h.context.calls??[],nonce:h.context.nonce??0n},digest:m,key:h.key,typedData:h.typedData})}case`wallet_sendPreparedCalls`:{let[e]=r._decoded.params,{chainId:a,context:o,key:c,signature:l}=e,{account:u}=e.context,d=s(a);if(a&&E.toNumber(a)!==d.chain.id)throw new j.ChainDisconnectedError;return[{id:await n().actions.sendPreparedCalls({account:Y(u),context:o,internal:{client:d,config:t,request:r,store:i},key:c,signature:l})}]}case`wallet_sendCalls`:{if(a.accounts.length===0)throw new j.DisconnectedError;let[e]=r._decoded.params,{calls:o,capabilities:c,chainId:l,from:u}=e,d=s(l);if(l&&l!==d.chain.id)throw new j.ChainDisconnectedError;let f=u?a.accounts.find(e=>T.isEqual(e.address,u)):a.accounts[0];if(!f)throw new j.UnauthorizedError;let{id:p}=await n().actions.sendCalls({account:f,calls:o,feeToken:c?.feeToken,internal:{client:d,config:t,request:r,store:i},merchantUrl:io(t.merchantUrl??c?.merchantUrl),permissionsId:c?.permissions?.id,requiredFunds:c?.requiredFunds});return{id:p}}case`wallet_switchEthereumChain`:{let[e]=r._decoded.params,{chainId:a}=e,o=E.toNumber(a);if(!t.chains.find(e=>e.id===o))throw new j.UnsupportedChainIdError;let c=s(a);await n().actions.switchChain?.({chainId:c.chain.id,internal:{client:c,config:t,request:r,store:i}}),i.setState(e=>({...e,chainIds:[o,...e.chainIds.filter(e=>e!==o)]}));return}case`wallet_verifySignature`:{let[e]=r._decoded.params,{address:t,chainId:n,digest:i,signature:a}=e,o=s(n);return{...await Aa(o,{address:t,digest:i,signature:a}),address:t,chainId:E.fromNumber(o.chain.id)}}}},{enabled:[`eth_accounts`,`eth_chainId`,`eth_requestAccounts`,`wallet_getAssets`,`wallet_getCapabilities`,`wallet_getKeys`,`wallet_getPermissions`,`wallet_getAccountVersion`,`wallet_connect`].includes(e.method),id:ue.stringify(e)})}});function f(){let e=()=>{},t=()=>{};ro(i).then(()=>{o().catch(()=>{}),e(),e=i.subscribe(e=>e.accounts,e=>{u.emit(`accountsChanged`,e.map(lo))},{equalityFn:(e,t)=>e.every((e,n)=>e.address===t[n]?.address)}),t(),t=i.subscribe(e=>e.chainIds[0],(e,t)=>{e!==t&&u.emit(`chainChanged`,E.fromNumber(e))})});let n=oo(d,a);return()=>{e(),t(),n()}}let p=f();return Object.assign(d,{_internal:{destroy:p}})}function oo(e,t){if(!t||typeof window>`u`||!window.dispatchEvent)return()=>{};let{icon:n=`data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIyIiBoZWlnaHQ9IjQyMiIgdmlld0JveD0iMCAwIDQyMiA0MjIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI0MjIiIGhlaWdodD0iNDIyIiBmaWxsPSJibGFjayIvPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMV8xNSkiPgo8cGF0aCBkPSJNODEgMjg2LjM2NkM4MSAyODAuODkzIDg1LjQ1MDUgMjc2LjQ1NSA5MC45NDA0IDI3Ni40NTVIMzI5LjUxMUMzMzUuMDAxIDI3Ni40NTUgMzM5LjQ1MiAyODAuODkzIDMzOS40NTIgMjg2LjM2NlYzMDYuMTg4QzMzOS40NTIgMzExLjY2MiAzMzUuMDAxIDMxNi4wOTkgMzI5LjUxMSAzMTYuMDk5SDkwLjk0MDRDODUuNDUwNSAzMTYuMDk5IDgxIDMxMS42NjIgODEgMzA2LjE4OFYyODYuMzY2WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOTAuOTQwNCAyMzQuODI4Qzg1LjQ1MDUgMjM0LjgyOCA4MSAyMzkuMjY2IDgxIDI0NC43MzlWMjcxLjUzMUM4My44NDMyIDI2OS42MzMgODcuMjYyMiAyNjguNTI2IDkwLjk0MDQgMjY4LjUyNkgzMjkuNTExQzMzMy4xODggMjY4LjUyNiAzMzYuNjA4IDI2OS42MzMgMzM5LjQ1MiAyNzEuNTMxVjI0NC43MzlDMzM5LjQ1MiAyMzkuMjY2IDMzNS4wMDEgMjM0LjgyOCAzMjkuNTExIDIzNC44MjhIOTAuOTQwNFpNMzM5LjQ1MiAyODYuMzY2QzMzOS40NTIgMjgwLjg5MyAzMzUuMDAxIDI3Ni40NTUgMzI5LjUxMSAyNzYuNDU1SDkwLjk0MDRDODUuNDUwNSAyNzYuNDU1IDgxIDI4MC44OTMgODEgMjg2LjM2NlYzMDYuMTlDODEgMzExLjY2NCA4NS40NTA1IDMxNi4xMDEgOTAuOTQwNCAzMTYuMTAxSDMyOS41MTFDMzM1LjAwMSAzMTYuMTAxIDMzOS40NTIgMzExLjY2NCAzMzkuNDUyIDMwNi4xOVYyODYuMzY2WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC41Ii8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOTAuOTQwNCAxOTMuMjAxQzg1LjQ1MDUgMTkzLjIwMSA4MSAxOTcuNjM4IDgxIDIwMy4xMTJWMjI5LjkwM0M4My44NDMyIDIyOC4wMDYgODcuMjYyMiAyMjYuODk5IDkwLjk0MDQgMjI2Ljg5OUgzMjkuNTExQzMzMy4xODggMjI2Ljg5OSAzMzYuNjA4IDIyOC4wMDYgMzM5LjQ1MiAyMjkuOTAzVjIwMy4xMTJDMzM5LjQ1MiAxOTcuNjM4IDMzNS4wMDEgMTkzLjIwMSAzMjkuNTExIDE5My4yMDFIOTAuOTQwNFpNMzM5LjQ1MiAyNDQuNzM5QzMzOS40NTIgMjM5LjI2NSAzMzUuMDAxIDIzNC44MjggMzI5LjUxMSAyMzQuODI4SDkwLjk0MDRDODUuNDUwNSAyMzQuODI4IDgxIDIzOS4yNjUgODEgMjQ0LjczOVYyNzEuNTNDODEuMjE3NSAyNzEuMzg1IDgxLjQzODMgMjcxLjI0NSA4MS42NjI0IDI3MS4xMDlDODMuODMyNSAyNjkuNzk0IDg2LjMwNTQgMjY4LjkyNyA4OC45NTIzIDI2OC42MzVDODkuNjA1MSAyNjguNTYzIDkwLjI2ODQgMjY4LjUyNiA5MC45NDA0IDI2OC41MjZIMzI5LjUxMUMzMzAuMTgzIDI2OC41MjYgMzMwLjg0NiAyNjguNTYzIDMzMS40OTggMjY4LjYzNUMzMzQuNDE5IDI2OC45NTcgMzM3LjEyOCAyNjkuOTggMzM5LjQ1MiAyNzEuNTNWMjQ0LjczOVpNMzM5LjQ1MiAyODYuMzY2QzMzOS40NTIgMjgxLjAyMSAzMzUuMjA2IDI3Ni42NjMgMzI5Ljg5MyAyNzYuNDYyQzMyOS43NjcgMjc2LjQ1NyAzMjkuNjQgMjc2LjQ1NSAzMjkuNTExIDI3Ni40NTVIOTAuOTQwNEM4NS40NTA1IDI3Ni40NTUgODEgMjgwLjg5MyA4MSAyODYuMzY2VjMwNi4xODhDODEgMzExLjY2MiA4NS40NTA1IDMxNi4xMDEgOTAuOTQwNCAzMTYuMTAxSDMyOS41MTFDMzM1LjAwMSAzMTYuMTAxIDMzOS40NTIgMzExLjY2MiAzMzkuNDUyIDMwNi4xODhWMjg2LjM2NloiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNSIvPgo8cGF0aCBvcGFjaXR5PSIwLjMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOTguMDE0NiAxMDRDODguNjE3NyAxMDQgODEgMTExLjU5NSA4MSAxMjAuOTY1VjE4OC4yNzZDODMuODQzMiAxODYuMzc5IDg3LjI2MjIgMTg1LjI3MiA5MC45NDA0IDE4NS4yNzJIMzI5LjUxMUMzMzMuMTg4IDE4NS4yNzIgMzM2LjYwOCAxODYuMzc5IDMzOS40NTIgMTg4LjI3NlYxMjAuOTY1QzMzOS40NTIgMTExLjU5NSAzMzEuODMzIDEwNCAzMjIuNDM3IDEwNEg5OC4wMTQ2Wk0zMzkuNDUyIDIwMy4xMTJDMzM5LjQ1MiAxOTcuNjM4IDMzNS4wMDEgMTkzLjIwMSAzMjkuNTExIDE5My4yMDFIOTAuOTQwNEM4NS40NTA1IDE5My4yMDEgODEgMTk3LjYzOCA4MSAyMDMuMTEyVjIyOS45MDNDODEuMjE3NSAyMjkuNzU4IDgxLjQzODMgMjI5LjYxOCA4MS42NjI0IDIyOS40ODJDODMuODMyNSAyMjguMTY3IDg2LjMwNTQgMjI3LjMgODguOTUyMyAyMjcuMDA4Qzg5LjYwNTEgMjI2LjkzNiA5MC4yNjg0IDIyNi44OTkgOTAuOTQwNCAyMjYuODk5SDMyOS41MTFDMzMwLjE4MyAyMjYuODk5IDMzMC44NDYgMjI2LjkzNiAzMzEuNDk4IDIyNy4wMDhDMzM0LjQxOSAyMjcuMzMgMzM3LjEyOCAyMjguMzUyIDMzOS40NTIgMjI5LjkwM1YyMDMuMTEyWk0zMzkuNDUyIDI0NC43MzlDMzM5LjQ1MiAyMzkuMzkzIDMzNS4yMDYgMjM1LjAzNiAzMjkuODkzIDIzNC44MzVDMzI5Ljc2NyAyMzQuODMgMzI5LjY0IDIzNC44MjggMzI5LjUxMSAyMzQuODI4SDkwLjk0MDRDODUuNDUwNSAyMzQuODI4IDgxIDIzOS4yNjUgODEgMjQ0LjczOVYyNzEuNTNMODEuMDcwNyAyNzEuNDgzQzgxLjI2NTMgMjcxLjM1NSA4MS40NjI1IDI3MS4yMyA4MS42NjI0IDI3MS4xMDlDODEuOTA4MyAyNzAuOTYgODIuMTU4MSAyNzAuODE3IDgyLjQxMTcgMjcwLjY3OUM4NC4zOTUzIDI2OS42MDUgODYuNjA1NCAyNjguODk0IDg4Ljk1MjMgMjY4LjYzNUM4OS4wMDUyIDI2OC42MjkgODkuMDU4IDI2OC42MjQgODkuMTExIDI2OC42MThDODkuNzEyNSAyNjguNTU3IDkwLjMyMjggMjY4LjUyNiA5MC45NDA0IDI2OC41MjZIMzI5LjUxMUMzMjkuNzM4IDI2OC41MjYgMzI5Ljk2NSAyNjguNTMgMzMwLjE5MiAyNjguNTM5QzMzMC42MzEgMjY4LjU1NSAzMzEuMDY3IDI2OC41ODcgMzMxLjQ5OCAyNjguNjM1QzMzNC40MTkgMjY4Ljk1NyAzMzcuMTI4IDI2OS45OCAzMzkuNDUyIDI3MS41M1YyNDQuNzM5Wk0zMzkuNDUyIDI4Ni4zNjZDMzM5LjQ1MiAyODEuMDIxIDMzNS4yMDYgMjc2LjY2MyAzMjkuODkzIDI3Ni40NjJMMzI5Ljg2NSAyNzYuNDYxQzMyOS43NDggMjc2LjQ1NyAzMjkuNjI5IDI3Ni40NTUgMzI5LjUxMSAyNzYuNDU1SDkwLjk0MDRDODUuNDUwNSAyNzYuNDU1IDgxIDI4MC44OTMgODEgMjg2LjM2NlYzMDYuMTg4QzgxIDMxMS42NjIgODUuNDUwNSAzMTYuMTAxIDkwLjk0MDQgMzE2LjEwMUgzMjkuNTExQzMzNS4wMDEgMzE2LjEwMSAzMzkuNDUyIDMxMS42NjIgMzM5LjQ1MiAzMDYuMTg4VjI4Ni4zNjZaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjY5Ljg2OCAxMzEuNzUyQzI2OS44NjggMTI2LjI3OCAyNzQuMzE4IDEyMS44NCAyNzkuODA4IDEyMS44NEgzMTEuNjE4QzMxNy4xMDggMTIxLjg0IDMyMS41NTggMTI2LjI3OCAzMjEuNTU4IDEzMS43NTJWMTYxLjQ4NUMzMjEuNTU4IDE2Ni45NTkgMzE3LjEwOCAxNzEuMzk2IDMxMS42MTggMTcxLjM5NkgyNzkuODA4QzI3NC4zMTggMTcxLjM5NiAyNjkuODY4IDE2Ni45NTkgMjY5Ljg2OCAxNjEuNDg1VjEzMS43NTJaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzFfMTUiPgo8cmVjdCB3aWR0aD0iMjU5IiBoZWlnaHQ9IjIxMyIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDgxIDEwNCkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K`,name:r=`Rise Wallet`,rdns:i=`com.risechain.wallet`}=typeof t==`object`?t:{};return Pe.announceProvider({info:{icon:n,name:r,rdns:i,uuid:zi()},provider:e})}function so(e){return e.map(e=>{if(e.role===`admin`)try{return k.encode(ii.Key,{id:e.id??e.publicKey,publicKey:e.publicKey,type:e.type,...e.type===`webauthn-p256`?{credentialId:e.privateKey?.credential?.id,privateKey:{credential:{id:e.privateKey?.credential?.id},rpId:e.privateKey?.rpId}}:{}})}catch{return}}).filter(Boolean)}function co(e,{address:t}){return e.map(e=>{if(e.chainId&&e.role===`session`&&!(e.expiry>0&&e.expiry<BigInt(Math.floor(Date.now()/1e3))))try{return k.encode(oa,sa(e,{address:t}))}catch{return}}).filter(Boolean)}function lo(e){return _(e.address)}function uo(e){return e}function fo(){let e=typeof indexedDB<`u`?Fe(`porto`,`store`):void 0;return uo({async getItem(t){let n=await Le(t,e);return n===null?null:n},async removeItem(t){await Ie(t,e)},async setItem(t,n){await Re(t,Li(n),e)},sizeLimit:1024*1024*50})}function po(){let e=new Map;return uo({getItem(t){return e.get(t)??null},removeItem(t){e.delete(t)},setItem(t,n){e.set(t,n)},sizeLimit:1/0})}const mo=typeof window<`u`&&typeof document<`u`,ho={announceProvider:!0,chains:tn,mode:mo?qa({host:Wi.prod}):Ka(),relay:b(Xa.prod.http),storage:mo&&typeof indexedDB<`u`?fo():po(),storageKey:`risewallet.store`};function go(e={}){let t=e.chains??ho.chains,n=Object.fromEntries(t.map(t=>[t.id,e.transports?.[t.id]??b()])),r={announceProvider:e.announceProvider??ho.announceProvider,authUrl:e.authUrl,chains:t,feeToken:e.feeToken,merchantUrl:e.merchantUrl,mode:e.mode??ho.mode,relay:e.relay??ho.relay,storage:e.storage??ho.storage,storageKey:e.storageKey??ho.storageKey,transports:n},i=Ne(Ae(Me(je(e=>({accounts:[],chainIds:r.chains.map(e=>e.id),feeToken:r.feeToken,requestQueue:[]}),{merge(e,t){let n=e,i=r.chains.find(e=>e.id===n.chainIds[0])?.id??r.chains[0].id,a=[i,...r.chains.map(e=>e.id).filter(e=>e!==i)];return{...t,...n,chainIds:a}},name:r.storageKey,partialize:e=>({accounts:e.accounts.map(e=>Li(e)),chainIds:e.chainIds}),storage:r.storage,version:5})))),a=r.mode,o={config:r,getMode(){return a},id:zi(),setMode(e){return c?.(),a=e,c=e.setup({internal:o}),c},store:i},s=ao(o),c=a===null?()=>{}:a.setup({internal:o});return{_internal:o,config:r,destroy(){c(),s._internal.destroy()},provider:s}}const _o=new Map;function vo(e,t={}){let{provider:n}=e,{id:r}=e._internal,i=[`provider`,r].filter(Boolean).join(`:`);if(_o.has(i))return _o.get(i);let a=f({...t,pollingInterval:1e3,transport:m(n)});return _o.set(i,a),a}async function yo(e={}){let{dialog:t}=e;return vo(go({announceProvider:!1,chains:[ae],mode:qa({host:t?new URL(`/dialog`,`https://`+t).toString():void 0,renderer:await ra()})}),{chain:ae})}async function bo(i,a){let o=await yo(a);Xt(`Create a Porto Account`);let s=$t(),c=a.adminKey?mn():void 0,l;if(c)try{let r=n.join(t.tmpdir(),`porto`);e.mkdirSync(r,{mode:448,recursive:!0}),l=n.join(r,`admin-key-${Date.now()}-${Math.random().toString(36).slice(2)}.key`),e.writeFileSync(l,c.privateKey(),{mode:384})}catch{}let u=!!c;function d(e,t){if(!u)return process.exit(1);try{s.stop(`Interrupted.`)}catch{}if(t){let n=t instanceof Error?t.message:String(t);z.info(`${e??`Error`}: ${n}`)}c&&(l?z.info(`Admin key saved securely to temporary file: ${l}`):z.warn(`Admin key could not be saved to a temporary file. Please rerun to generate a new key.`)),u=!1,process.exit(1)}let f=()=>d(`SIGINT`),p=()=>d(`SIGTERM`),m=e=>d(`uncaughtException`,e),h=e=>d(`unhandledRejection`,e),g=()=>{u&&=(c&&(l?z.info(`Admin key saved securely to temporary file:\n${l}`):z.warn(`Admin key could not be saved to a temporary file. Please rerun to generate a new key.`)),!1)};c&&(process.on(`SIGINT`,f),process.on(`SIGTERM`,p),process.on(`uncaughtException`,m),process.on(`unhandledRejection`,h),process.on(`exit`,g)),c&&X.registerPublicKey(c.publicKey);let _=ae.id;s.start(`Creating account...`);let{accounts:v}=await Oi(o,{chainIds:[_],createAccount:!0,grantAdmins:c?[{publicKey:c.publicKey,type:c.type}]:void 0});if(s.stop(`Account created.`),s.start(`Onramping...`),await o.request({method:`wallet_addFunds`,params:[{address:v[0].address,token:a.testnet?void 0:`0x0000000000000000000000000000000000000000`}]}),s.stop(`Onramped.`),X.send(`success`,{content:`You have successfully created an account.`,title:`Account created`}),c){let{digest:e,...t}=await o.request({method:`wallet_prepareCalls`,params:[{calls:[],chainId:ee(_),key:c}]}),n=await V(c,{address:null,payload:e,wrap:!1}),r=await o.request({method:`wallet_sendPreparedCalls`,params:[{...t,signature:n}]});s.start(`Initializing account...`),await te.waitForCallsStatus(o,{id:r[0].id,throwOnFailure:!0}),s.stop(`Account initialized.`)}if(c){let t=await Yt({initialValue:!1,message:`Reveal private key? (This will be visible in terminal)`});if(z.info(`Address: `+v[0].address),t)z.info(`Private key: `+c?.privateKey());else{let t=n.join(import.meta.dirname,`${v[0].address}.key`);e.writeFileSync(t,c?.privateKey(),{mode:384}),e.chmodSync(t,384),z.info(`Private key saved securely to: ${t}`)}if(l)try{e.rmSync(l)}catch{}}z.info(`Manage your account at: https://id.porto.sh`),u=!1,c&&(process.off(`SIGINT`,f),process.off(`SIGTERM`,p),process.off(`uncaughtException`,m),process.off(`unhandledRejection`,h),process.off(`exit`,g)),await r(1e3),process.exit(0)}export{bo as createAccount};
@@ -6,4 +6,4 @@ import{EventEmitter as e}from"events";function t(e){return e==null?[]:Array.isAr
6
6
  `)}),i&&(a=i(a)||a),console.log(a.map(e=>e.title?`${e.title}:
7
7
  ${e.body}`:e.body).join(`
8
8
 
9
- `))}outputVersion(){let{name:e}=this.cli,{versionNumber:t}=this.cli.globalCommand;t&&console.log(`${e}/${t} ${_}`)}checkRequiredArgs(){let e=this.args.filter(e=>e.required).length;if(this.cli.args.length<e)throw new m(`missing required args for command \`${this.rawName}\``)}checkUnknownOptions(){let{options:e,globalCommand:t}=this.cli;if(!this.config.allowUnknownOptions){for(let n of Object.keys(e))if(n!==`--`&&!this.hasOption(n)&&!t.hasOption(n))throw new m(`Unknown option \`${n.length>1?`--${n}`:`-${n}`}\``)}}checkOptionValue(){let{options:e,globalCommand:t}=this.cli,n=[...t.options,...this.options];for(let t of n){let r=e[t.name.split(`.`)[0]];if(t.required){let e=n.some(e=>e.negated&&e.names.includes(t.name));if(r===!0||r===!1&&!e)throw new m(`option \`${t.rawName}\` value is missing`)}}}},y=class extends v{constructor(e){super(`@@global@@`,``,{},e)}},b=Object.assign,x=class extends e{constructor(e=``){super(),this.name=e,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new y(this),this.globalCommand.usage(`<command> [options]`)}usage(e){return this.globalCommand.usage(e),this}command(e,t,n){let r=new v(e,t||``,n,this);return r.globalCommand=this.globalCommand,this.commands.push(r),r}option(e,t,n){return this.globalCommand.option(e,t,n),this}help(e){return this.globalCommand.option(`-h, --help`,`Display this message`),this.globalCommand.helpCallback=e,this.showHelpOnExit=!0,this}version(e,t=`-v, --version`){return this.globalCommand.version(e,t),this.showVersionOnExit=!0,this}example(e){return this.globalCommand.example(e),this}outputHelp(){this.matchedCommand?this.matchedCommand.outputHelp():this.globalCommand.outputHelp()}outputVersion(){this.globalCommand.outputVersion()}setParsedInfo({args:e,options:t},n,r){return this.args=e,this.options=t,n&&(this.matchedCommand=n),r&&(this.matchedCommandName=r),this}unsetMatchedCommand(){this.matchedCommand=void 0,this.matchedCommandName=void 0}parse(e=g,{run:t=!0}={}){this.rawArgs=e,this.name||=e[1]?f(e[1]):`cli`;let n=!0;for(let t of this.commands){let r=this.mri(e.slice(2),t),i=r.args[0];if(t.isMatched(i)){n=!1;let e=b(b({},r),{args:r.args.slice(1)});this.setParsedInfo(e,t,i),this.emit(`command:${i}`,t)}}if(n){for(let t of this.commands)if(t.name===``){n=!1;let r=this.mri(e.slice(2),t);this.setParsedInfo(r,t),this.emit(`command:!`,t)}}if(n){let t=this.mri(e.slice(2));this.setParsedInfo(t)}this.options.help&&this.showHelpOnExit&&(this.outputHelp(),t=!1,this.unsetMatchedCommand()),this.options.version&&this.showVersionOnExit&&this.matchedCommandName==null&&(this.outputVersion(),t=!1,this.unsetMatchedCommand());let r={args:this.args,options:this.options};return t&&this.runMatchedCommand(),!this.matchedCommand&&this.args[0]&&this.emit(`command:*`),r}mri(e,t){let n=[...this.globalCommand.options,...t?t.options:[]],i=o(n),a=[],s=e.indexOf(`--`);s>-1&&(a=e.slice(s+1),e=e.slice(0,s));let c=r(e,i);c=Object.keys(c).reduce((e,t)=>b(b({},e),{[p(t)]:c[t]}),{_:[]});let l=c._,f={"--":a},m=t&&t.config.ignoreOptionDefaultValue?t.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,h=Object.create(null);for(let e of n){if(!m&&e.config.default!==void 0)for(let t of e.names)f[t]=e.config.default;Array.isArray(e.config.type)&&h[e.name]===void 0&&(h[e.name]=Object.create(null),h[e.name].shouldTransform=!0,h[e.name].transformFunction=e.config.type[0])}for(let e of Object.keys(c))e!==`_`&&(u(f,e.split(`.`),c[e]),d(f,h));return{args:l,options:f}}runMatchedCommand(){let{args:e,options:t,matchedCommand:n}=this;if(!n||!n.commandAction)return;n.checkUnknownOptions(),n.checkOptionValue(),n.checkRequiredArgs();let r=[];return n.args.forEach((t,n)=>{t.variadic?r.push(e.slice(n)):r.push(e[n])}),r.push(t),n.commandAction.apply(this,r)}};const S=(e=``)=>new x(e);var C=`0.2.29-beta.1`;const w=S(`porto`);w.command(`[root]`,`Display usage`).action(()=>{w.outputHelp(),process.exit(0)}),w.command(`onboard [alias: o]`,`Create a Porto Account`).alias(`o`).option(`-a, --admin-key`,`Create and provision an additional admin key for server access`,{default:!1}).option(`-d, --dialog <hostname>`,`Dialog hostname`,{default:`id.porto.sh`}).option(`-t, --testnet`,`Onboard via testnet`,{default:!1}).action(async(e,t)=>(await import(`./commands-BWkYsY2L.js`)).createAccount(null,t)),w.help(),w.version(C),w.parse();export{};
9
+ `))}outputVersion(){let{name:e}=this.cli,{versionNumber:t}=this.cli.globalCommand;t&&console.log(`${e}/${t} ${_}`)}checkRequiredArgs(){let e=this.args.filter(e=>e.required).length;if(this.cli.args.length<e)throw new m(`missing required args for command \`${this.rawName}\``)}checkUnknownOptions(){let{options:e,globalCommand:t}=this.cli;if(!this.config.allowUnknownOptions){for(let n of Object.keys(e))if(n!==`--`&&!this.hasOption(n)&&!t.hasOption(n))throw new m(`Unknown option \`${n.length>1?`--${n}`:`-${n}`}\``)}}checkOptionValue(){let{options:e,globalCommand:t}=this.cli,n=[...t.options,...this.options];for(let t of n){let r=e[t.name.split(`.`)[0]];if(t.required){let e=n.some(e=>e.negated&&e.names.includes(t.name));if(r===!0||r===!1&&!e)throw new m(`option \`${t.rawName}\` value is missing`)}}}},y=class extends v{constructor(e){super(`@@global@@`,``,{},e)}},b=Object.assign,x=class extends e{constructor(e=``){super(),this.name=e,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new y(this),this.globalCommand.usage(`<command> [options]`)}usage(e){return this.globalCommand.usage(e),this}command(e,t,n){let r=new v(e,t||``,n,this);return r.globalCommand=this.globalCommand,this.commands.push(r),r}option(e,t,n){return this.globalCommand.option(e,t,n),this}help(e){return this.globalCommand.option(`-h, --help`,`Display this message`),this.globalCommand.helpCallback=e,this.showHelpOnExit=!0,this}version(e,t=`-v, --version`){return this.globalCommand.version(e,t),this.showVersionOnExit=!0,this}example(e){return this.globalCommand.example(e),this}outputHelp(){this.matchedCommand?this.matchedCommand.outputHelp():this.globalCommand.outputHelp()}outputVersion(){this.globalCommand.outputVersion()}setParsedInfo({args:e,options:t},n,r){return this.args=e,this.options=t,n&&(this.matchedCommand=n),r&&(this.matchedCommandName=r),this}unsetMatchedCommand(){this.matchedCommand=void 0,this.matchedCommandName=void 0}parse(e=g,{run:t=!0}={}){this.rawArgs=e,this.name||=e[1]?f(e[1]):`cli`;let n=!0;for(let t of this.commands){let r=this.mri(e.slice(2),t),i=r.args[0];if(t.isMatched(i)){n=!1;let e=b(b({},r),{args:r.args.slice(1)});this.setParsedInfo(e,t,i),this.emit(`command:${i}`,t)}}if(n){for(let t of this.commands)if(t.name===``){n=!1;let r=this.mri(e.slice(2),t);this.setParsedInfo(r,t),this.emit(`command:!`,t)}}if(n){let t=this.mri(e.slice(2));this.setParsedInfo(t)}this.options.help&&this.showHelpOnExit&&(this.outputHelp(),t=!1,this.unsetMatchedCommand()),this.options.version&&this.showVersionOnExit&&this.matchedCommandName==null&&(this.outputVersion(),t=!1,this.unsetMatchedCommand());let r={args:this.args,options:this.options};return t&&this.runMatchedCommand(),!this.matchedCommand&&this.args[0]&&this.emit(`command:*`),r}mri(e,t){let n=[...this.globalCommand.options,...t?t.options:[]],i=o(n),a=[],s=e.indexOf(`--`);s>-1&&(a=e.slice(s+1),e=e.slice(0,s));let c=r(e,i);c=Object.keys(c).reduce((e,t)=>b(b({},e),{[p(t)]:c[t]}),{_:[]});let l=c._,f={"--":a},m=t&&t.config.ignoreOptionDefaultValue?t.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,h=Object.create(null);for(let e of n){if(!m&&e.config.default!==void 0)for(let t of e.names)f[t]=e.config.default;Array.isArray(e.config.type)&&h[e.name]===void 0&&(h[e.name]=Object.create(null),h[e.name].shouldTransform=!0,h[e.name].transformFunction=e.config.type[0])}for(let e of Object.keys(c))e!==`_`&&(u(f,e.split(`.`),c[e]),d(f,h));return{args:l,options:f}}runMatchedCommand(){let{args:e,options:t,matchedCommand:n}=this;if(!n||!n.commandAction)return;n.checkUnknownOptions(),n.checkOptionValue(),n.checkRequiredArgs();let r=[];return n.args.forEach((t,n)=>{t.variadic?r.push(e.slice(n)):r.push(e[n])}),r.push(t),n.commandAction.apply(this,r)}};const S=(e=``)=>new x(e);var C=`0.3.0`;const w=S(`porto`);w.command(`[root]`,`Display usage`).action(()=>{w.outputHelp(),process.exit(0)}),w.command(`onboard [alias: o]`,`Create a Porto Account`).alias(`o`).option(`-a, --admin-key`,`Create and provision an additional admin key for server access`,{default:!1}).option(`-d, --dialog <hostname>`,`Dialog hostname`,{default:`id.porto.sh`}).option(`-t, --testnet`,`Onboard via testnet`,{default:!1}).action(async(e,t)=>(await import(`./commands-GxQUW4ck.js`)).createAccount(null,t)),w.help(),w.version(C),w.parse();export{};