@moonpay/cli 1.95.0 → 1.95.1

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.
@@ -1,4 +1,4 @@
1
1
  process.noDeprecation = true; import { createRequire as __createRequire } from "module"; const require = __createRequire(import.meta.url);
2
- import{a as G,b as T,c as L,d as Z,h as D,p as Q}from"./chunk-YLWZUDSV.js";import{a as V,f as I}from"./chunk-LMDE72OE.js";import{existsSync as H,readFileSync as J,writeFileSync as ge,renameSync as Y}from"fs";import{join as S}from"path";import{homedir as we}from"os";import{randomBytes as ve}from"crypto";import*as i from"@open-wallet-standard/core";import q from"bs58";T();import{z as s}from"zod";var M={"eip155:1":"ethereum","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":"solana","bip122:000000000019d6689c085ae165831e93":"bitcoin","tron:mainnet":"tron","ton:mainnet":"ton","fil:mainnet":"filecoin"};function R(e){return e==="evm"?"ethereum":e}var E=s.object({solana:s.string().optional(),ethereum:s.string().optional(),bitcoin:s.string().optional(),tron:s.string().optional(),ton:s.string().optional(),filecoin:s.string().optional()}),X=["base","arbitrum","robinhood","polygon","optimism","bnb","bnb-testnet","avalanche","tempo","tempo-moderato","ethereum-sepolia","base-sepolia","arbitrum-sepolia","polygon-amoy"];function Te(e){let t={};if(e.solana&&(t.solana=e.solana,t["solana-devnet"]=e.solana),e.ethereum){t.ethereum=e.ethereum;for(let r of X)t[r]=e.ethereum}return e.bitcoin&&(t.bitcoin=e.bitcoin),e.tron&&(t.tron=e.tron),e.ton&&(t.ton=e.ton),e.filecoin&&(t.filecoin=e.filecoin),t}var ee=s.object({name:s.string(),type:s.literal("hd"),mnemonic:s.string().optional(),addresses:E,createdAt:s.string()}),te=s.object({name:s.string(),type:s.literal("imported"),chain:s.string().optional(),privateKey:s.string().optional(),addresses:E,createdAt:s.string()}),U=s.enum(["ledger"]),$=s.object({name:s.string(),type:s.literal("hardware"),device:U,addresses:E,createdAt:s.string()}),De=s.discriminatedUnion("type",[ee,te,$]),Me=s.object({name:s.string(),type:s.enum(["hd","imported","hardware"]),device:U.optional(),addresses:s.record(s.string(),s.string()),createdAt:s.string()});import{createHash as _}from"crypto";import{HDKey as x}from"@scure/bip32";import{mnemonicToSeedSync as y}from"@scure/bip39";import{keccak_256 as B}from"@noble/hashes/sha3";import{derivePath as j}from"ed25519-hd-key";import*as O from"bitcoinjs-lib";import re from"ecpair";import*as K from"@bitcoinerlab/secp256k1";import{Keypair as ne}from"@solana/web3.js";import oe from"bs58";import{WalletContractV5R1 as ie}from"@ton/ton";import{keyPairFromSeed as se}from"@ton/crypto";import*as z from"@open-wallet-standard/core";var ae=re(K);function N(e,t,r=0){switch(t){case"solana":return le(e,r);case"ethereum":return ce(e,r);case"bitcoin":return pe(e,r);case"tron":return ue(e,r);case"ton":return ye(e,r);case"filecoin":return he(e,r);default:throw new Error(`Unsupported key family for derivation: ${t}`)}}function le(e,t){let r=y(e),n=`m/44'/501'/${t}'/0'`,{key:o}=j(n,Buffer.from(r).toString("hex")),a=ne.fromSeed(Uint8Array.from(o));return{privateKey:a.secretKey,address:a.publicKey.toBase58()}}function ce(e,t){let r=y(e),n=x.fromMasterSeed(r),o=`m/44'/60'/${t}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive EVM private key");let l=de(a.publicKey);return{privateKey:a.privateKey,address:l}}function de(e){let t=K.pointCompress(e,!1),n=B(t.slice(1)).slice(-20),o="0x"+Buffer.from(n).toString("hex");return fe(o)}function fe(e){let t=e.toLowerCase().replace("0x",""),r=Buffer.from(B(Buffer.from(t,"utf8"))).toString("hex"),n="0x";for(let o=0;o<t.length;o++)n+=parseInt(r[o],16)>=8?t[o].toUpperCase():t[o];return n}function pe(e,t){let r=y(e),n=x.fromMasterSeed(r),o=`m/84'/0'/${t}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive Bitcoin private key");let l=ae.fromPrivateKey(Buffer.from(a.privateKey)),{address:f}=O.payments.p2wpkh({pubkey:Buffer.from(l.publicKey)});if(!f)throw new Error("Failed to derive Bitcoin address");return{privateKey:a.privateKey,address:f}}function ue(e,t){let r=y(e),n=x.fromMasterSeed(r),o=`m/44'/195'/${t}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive Tron private key");let l=me(a.publicKey);return{privateKey:a.privateKey,address:l}}function me(e){let t=K.pointCompress(e,!1),n=B(t.slice(1)).slice(-20),o=Buffer.concat([Buffer.from([65]),Buffer.from(n)]),a=_("sha256").update(o).digest(),l=_("sha256").update(a).digest(),f=Buffer.concat([o,l.slice(0,4)]);return oe.encode(f)}function ye(e,t){let r=y(e),n=`m/44'/607'/${t}'/0'`,{key:o}=j(n,Buffer.from(r).toString("hex")),a=se(Buffer.from(o)),l=ie.create({publicKey:Buffer.from(a.publicKey)});return{privateKey:a.secretKey,address:l.address.toString({bounceable:!1})}}function he(e,t){let r=y(e),n=x.fromMasterSeed(r),o=`m/44'/461'/${t}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive Filecoin private key");let l=z.deriveAddress(e,"filecoin",t);return{privateKey:a.privateKey,address:l}}Q();var b=S(we(),".config","moonpay"),C=S(b,"hardware-wallets.json");function c(){return b}function We(e){let t={};for(let r of e){let n=M[r.chainId];n&&(t[n]=r.address)}return t}function h(e){let t=We(e.accounts);if(!t.filecoin)try{let r=i.exportWallet(e.id,null,c());r&&!r.startsWith("{")&&(t.filecoin=i.deriveAddress(r,"filecoin"))}catch{}return{name:e.name,type:"hd",addresses:t,createdAt:e.createdAt}}function m(){if(!H(C))return[];try{return(JSON.parse(J(C,"utf-8")).wallets??[]).map(t=>$.parse(t))}catch{return[]}}function xe(e,t){D();let r=S(b,`.tmp.${ve(4).toString("hex")}`);ge(r,JSON.stringify(t,null,2),{mode:384}),Y(r,e)}function g(e){xe(C,{wallets:e})}var w=S(b,"wallets.json");function F(){if(H(w)){process.stderr.write(`Migrating legacy wallets...
2
+ import{a as G,b as T,c as L,d as Z,h as D,p as Q}from"./chunk-TTV2RQ6O.js";import{a as V,f as I}from"./chunk-LMDE72OE.js";import{existsSync as H,readFileSync as J,writeFileSync as ge,renameSync as Y}from"fs";import{join as S}from"path";import{homedir as we}from"os";import{randomBytes as ve}from"crypto";import*as i from"@open-wallet-standard/core";import q from"bs58";T();import{z as s}from"zod";var M={"eip155:1":"ethereum","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp":"solana","bip122:000000000019d6689c085ae165831e93":"bitcoin","tron:mainnet":"tron","ton:mainnet":"ton","fil:mainnet":"filecoin"};function R(e){return e==="evm"?"ethereum":e}var E=s.object({solana:s.string().optional(),ethereum:s.string().optional(),bitcoin:s.string().optional(),tron:s.string().optional(),ton:s.string().optional(),filecoin:s.string().optional()}),X=["base","arbitrum","robinhood","polygon","optimism","bnb","bnb-testnet","avalanche","tempo","tempo-moderato","ethereum-sepolia","base-sepolia","arbitrum-sepolia","polygon-amoy"];function Te(e){let t={};if(e.solana&&(t.solana=e.solana,t["solana-devnet"]=e.solana),e.ethereum){t.ethereum=e.ethereum;for(let r of X)t[r]=e.ethereum}return e.bitcoin&&(t.bitcoin=e.bitcoin),e.tron&&(t.tron=e.tron),e.ton&&(t.ton=e.ton),e.filecoin&&(t.filecoin=e.filecoin),t}var ee=s.object({name:s.string(),type:s.literal("hd"),mnemonic:s.string().optional(),addresses:E,createdAt:s.string()}),te=s.object({name:s.string(),type:s.literal("imported"),chain:s.string().optional(),privateKey:s.string().optional(),addresses:E,createdAt:s.string()}),U=s.enum(["ledger"]),$=s.object({name:s.string(),type:s.literal("hardware"),device:U,addresses:E,createdAt:s.string()}),De=s.discriminatedUnion("type",[ee,te,$]),Me=s.object({name:s.string(),type:s.enum(["hd","imported","hardware"]),device:U.optional(),addresses:s.record(s.string(),s.string()),createdAt:s.string()});import{createHash as _}from"crypto";import{HDKey as x}from"@scure/bip32";import{mnemonicToSeedSync as y}from"@scure/bip39";import{keccak_256 as B}from"@noble/hashes/sha3";import{derivePath as j}from"ed25519-hd-key";import*as O from"bitcoinjs-lib";import re from"ecpair";import*as K from"@bitcoinerlab/secp256k1";import{Keypair as ne}from"@solana/web3.js";import oe from"bs58";import{WalletContractV5R1 as ie}from"@ton/ton";import{keyPairFromSeed as se}from"@ton/crypto";import*as z from"@open-wallet-standard/core";var ae=re(K);function N(e,t,r=0){switch(t){case"solana":return le(e,r);case"ethereum":return ce(e,r);case"bitcoin":return pe(e,r);case"tron":return ue(e,r);case"ton":return ye(e,r);case"filecoin":return he(e,r);default:throw new Error(`Unsupported key family for derivation: ${t}`)}}function le(e,t){let r=y(e),n=`m/44'/501'/${t}'/0'`,{key:o}=j(n,Buffer.from(r).toString("hex")),a=ne.fromSeed(Uint8Array.from(o));return{privateKey:a.secretKey,address:a.publicKey.toBase58()}}function ce(e,t){let r=y(e),n=x.fromMasterSeed(r),o=`m/44'/60'/${t}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive EVM private key");let l=de(a.publicKey);return{privateKey:a.privateKey,address:l}}function de(e){let t=K.pointCompress(e,!1),n=B(t.slice(1)).slice(-20),o="0x"+Buffer.from(n).toString("hex");return fe(o)}function fe(e){let t=e.toLowerCase().replace("0x",""),r=Buffer.from(B(Buffer.from(t,"utf8"))).toString("hex"),n="0x";for(let o=0;o<t.length;o++)n+=parseInt(r[o],16)>=8?t[o].toUpperCase():t[o];return n}function pe(e,t){let r=y(e),n=x.fromMasterSeed(r),o=`m/84'/0'/${t}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive Bitcoin private key");let l=ae.fromPrivateKey(Buffer.from(a.privateKey)),{address:f}=O.payments.p2wpkh({pubkey:Buffer.from(l.publicKey)});if(!f)throw new Error("Failed to derive Bitcoin address");return{privateKey:a.privateKey,address:f}}function ue(e,t){let r=y(e),n=x.fromMasterSeed(r),o=`m/44'/195'/${t}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive Tron private key");let l=me(a.publicKey);return{privateKey:a.privateKey,address:l}}function me(e){let t=K.pointCompress(e,!1),n=B(t.slice(1)).slice(-20),o=Buffer.concat([Buffer.from([65]),Buffer.from(n)]),a=_("sha256").update(o).digest(),l=_("sha256").update(a).digest(),f=Buffer.concat([o,l.slice(0,4)]);return oe.encode(f)}function ye(e,t){let r=y(e),n=`m/44'/607'/${t}'/0'`,{key:o}=j(n,Buffer.from(r).toString("hex")),a=se(Buffer.from(o)),l=ie.create({publicKey:Buffer.from(a.publicKey)});return{privateKey:a.secretKey,address:l.address.toString({bounceable:!1})}}function he(e,t){let r=y(e),n=x.fromMasterSeed(r),o=`m/44'/461'/${t}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive Filecoin private key");let l=z.deriveAddress(e,"filecoin",t);return{privateKey:a.privateKey,address:l}}Q();var b=S(we(),".config","moonpay"),C=S(b,"hardware-wallets.json");function c(){return b}function We(e){let t={};for(let r of e){let n=M[r.chainId];n&&(t[n]=r.address)}return t}function h(e){let t=We(e.accounts);if(!t.filecoin)try{let r=i.exportWallet(e.id,null,c());r&&!r.startsWith("{")&&(t.filecoin=i.deriveAddress(r,"filecoin"))}catch{}return{name:e.name,type:"hd",addresses:t,createdAt:e.createdAt}}function m(){if(!H(C))return[];try{return(JSON.parse(J(C,"utf-8")).wallets??[]).map(t=>$.parse(t))}catch{return[]}}function xe(e,t){D();let r=S(b,`.tmp.${ve(4).toString("hex")}`);ge(r,JSON.stringify(t,null,2),{mode:384}),Y(r,e)}function g(e){xe(C,{wallets:e})}var w=S(b,"wallets.json");function F(){if(H(w)){process.stderr.write(`Migrating legacy wallets...
3
3
  `);let{migrated:e,skipped:t}=Ke();process.stderr.write(`Migrated ${e} wallet(s), skipped ${t}.
4
- `)}}function Ke(){if(!H(w))throw new Error("No legacy wallets.json found \u2014 nothing to migrate.");let{getEncryptionKey:e}=(Z(),I(L)),{decrypt:t,encryptedFileSchema:r}=(T(),I(G)),n=e();if(!n)throw new Error("Encryption key not found. Set MOONPAY_ENCRYPTION_KEY or ensure OS keychain is accessible.");let o=JSON.parse(J(w,"utf-8")),a=r.parse(o),l=t(a,n),f=JSON.parse(l).wallets??[],p=c(),W=m(),P=0,k=0;for(let d of f){try{i.getWallet(d.name,p),k++;continue}catch{}if(W.some(u=>u.name===d.name)){k++;continue}if(d.type==="hardware")W.push({name:d.name,type:"hardware",device:d.device,addresses:d.addresses,createdAt:d.createdAt});else if(d.type==="hd"&&d.mnemonic)i.importWalletMnemonic(d.name,d.mnemonic,null,null,p);else if(d.type==="imported"&&d.privateKey){let u=d.privateKey;if(!/^[0-9a-fA-F]+$/.test(u)){let A=q.decode(u);u=Buffer.from(A.length===64?A.slice(0,32):A).toString("hex")}i.importWalletPrivateKey(d.name,u,null,p,null,u,u)}P++}return W.length>0&&g(W),Y(w,w+".migrated"),{migrated:P,skipped:k}}function Se(e){F(),v(e);let t=i.createWallet(e,null,24,c());return h(t)}function be(e,t){v(e);let r=i.importWalletMnemonic(e,t,null,null,c());return h(r)}function ke(e,t,r){return v(e),h(i.importWalletPrivateKey(e,t,null,c(),r))}function Ae(){F();let e=[];try{e=i.listWallets(c())}catch{}return[...e.map(r=>h(r)),...m()]}function Ee(e){F();let t=c();try{let r=i.getWallet(e,t);return h(r)}catch{}try{for(let r of i.listWallets(t))for(let n of r.accounts)if(n.address===e)return h(r)}catch{}for(let r of m()){if(r.name===e)return r;for(let n of Object.values(r.addresses))if(n===e)return r}return null}function ot(e){let t=Ee(e);if(!t)throw new Error(`Wallet "${e}" not found`);return t}function $e(e){try{i.deleteWallet(e,c());return}catch{}let t=m(),r=t.findIndex(n=>n.name===e);if(r===-1)throw new Error(`Wallet "${e}" not found`);t.splice(r,1),g(t)}function it(e,t){if(e===t)return;v(t);try{i.getWallet(e,c()),i.renameWallet(e,t,c());return}catch(o){if(o instanceof Error&&!o.message.includes("not found"))throw o}let r=m(),n=r.find(o=>o.name===e);if(!n)throw new Error(`Wallet "${e}" not found`);n.name=t,g(r)}function st(e){return i.exportWallet(e,null,c())}function Be(e){v(e.name);let t=m();t.push(e),g(t)}function at(e,t){let r=m(),n=r.find(o=>o.name===e);if(!n)throw new Error(`Hardware wallet "${e}" not found`);n.addresses=t,g(r)}function lt(e,t,r){return i.signTransaction(e,t,r,null,null,c())}function ct(e,t,r,n){return i.signMessage(e,t,r,null,n??null,null,c())}function dt(e,t,r){return i.signTypedData(e,t,r,null,null,c())}async function ft(e,t){if(e.type==="hardware")throw new Error(`Wallet "${e.name}" is a hardware wallet. Signing must happen on the device.`);let{moonpay:r}=await import("./client-ZNUFI3ZM.js"),n=await r.chain.retrieve({chain:t}),o=R(n.keyFamily),a=i.exportWallet(e.name,null,c());if(a.includes(" "))return N(a,o);let l;if(a.startsWith("{")){let p=JSON.parse(a);l=o==="solana"||o==="ton"?p.ed25519:p.secp256k1}else l=a;let f=Uint8Array.from(Buffer.from(l,"hex"));if(o==="solana"&&f.length===32){let p=V("tweetnacl");f=Uint8Array.from(p.sign.keyPair.fromSeed(f).secretKey)}return{privateKey:f,address:e.addresses[o]??""}}var Ce=Ae,pt=$e;function He(e){if(e.type==="hardware"){Be(e);return}if(e.type==="hd"&&e.mnemonic){be(e.name,e.mnemonic);return}if(e.type==="imported"&&e.privateKey){let t=e.privateKey;if(t.startsWith("0x"))t=t.slice(2);else if(!/^[0-9a-fA-F]+$/.test(t)){let r=q.decode(t);t=Buffer.from(r.length===64?r.slice(0,32):r).toString("hex")}ke(e.name,t,"solana");return}Se(e.name)}function ut(e){for(let t of e)He(t)}function mt(e){let t=Ce();e(t),g(t.filter(r=>r.type==="hardware"))}function v(e){try{throw i.getWallet(e,c()),new Error(`Wallet "${e}" already exists`)}catch(t){if(t instanceof Error&&t.message.includes("already exists"))throw t}if(m().some(t=>t.name===e))throw new Error(`Wallet "${e}" already exists`)}export{R as a,E as b,Te as c,U as d,Me as e,N as f,c as g,F as h,Ke as i,Se as j,be as k,ke as l,Ae as m,Ee as n,ot as o,$e as p,it as q,st as r,Be as s,at as t,lt as u,ct as v,dt as w,ft as x,Ce as y,pt as z,He as A,ut as B,mt as C};
4
+ `)}}function Ke(){if(!H(w))throw new Error("No legacy wallets.json found \u2014 nothing to migrate.");let{getEncryptionKey:e}=(Z(),I(L)),{decrypt:t,encryptedFileSchema:r}=(T(),I(G)),n=e();if(!n)throw new Error("Encryption key not found. Set MOONPAY_ENCRYPTION_KEY or ensure OS keychain is accessible.");let o=JSON.parse(J(w,"utf-8")),a=r.parse(o),l=t(a,n),f=JSON.parse(l).wallets??[],p=c(),W=m(),P=0,k=0;for(let d of f){try{i.getWallet(d.name,p),k++;continue}catch{}if(W.some(u=>u.name===d.name)){k++;continue}if(d.type==="hardware")W.push({name:d.name,type:"hardware",device:d.device,addresses:d.addresses,createdAt:d.createdAt});else if(d.type==="hd"&&d.mnemonic)i.importWalletMnemonic(d.name,d.mnemonic,null,null,p);else if(d.type==="imported"&&d.privateKey){let u=d.privateKey;if(!/^[0-9a-fA-F]+$/.test(u)){let A=q.decode(u);u=Buffer.from(A.length===64?A.slice(0,32):A).toString("hex")}i.importWalletPrivateKey(d.name,u,null,p,null,u,u)}P++}return W.length>0&&g(W),Y(w,w+".migrated"),{migrated:P,skipped:k}}function Se(e){F(),v(e);let t=i.createWallet(e,null,24,c());return h(t)}function be(e,t){v(e);let r=i.importWalletMnemonic(e,t,null,null,c());return h(r)}function ke(e,t,r){return v(e),h(i.importWalletPrivateKey(e,t,null,c(),r))}function Ae(){F();let e=[];try{e=i.listWallets(c())}catch{}return[...e.map(r=>h(r)),...m()]}function Ee(e){F();let t=c();try{let r=i.getWallet(e,t);return h(r)}catch{}try{for(let r of i.listWallets(t))for(let n of r.accounts)if(n.address===e)return h(r)}catch{}for(let r of m()){if(r.name===e)return r;for(let n of Object.values(r.addresses))if(n===e)return r}return null}function ot(e){let t=Ee(e);if(!t)throw new Error(`Wallet "${e}" not found`);return t}function $e(e){try{i.deleteWallet(e,c());return}catch{}let t=m(),r=t.findIndex(n=>n.name===e);if(r===-1)throw new Error(`Wallet "${e}" not found`);t.splice(r,1),g(t)}function it(e,t){if(e===t)return;v(t);try{i.getWallet(e,c()),i.renameWallet(e,t,c());return}catch(o){if(o instanceof Error&&!o.message.includes("not found"))throw o}let r=m(),n=r.find(o=>o.name===e);if(!n)throw new Error(`Wallet "${e}" not found`);n.name=t,g(r)}function st(e){return i.exportWallet(e,null,c())}function Be(e){v(e.name);let t=m();t.push(e),g(t)}function at(e,t){let r=m(),n=r.find(o=>o.name===e);if(!n)throw new Error(`Hardware wallet "${e}" not found`);n.addresses=t,g(r)}function lt(e,t,r){return i.signTransaction(e,t,r,null,null,c())}function ct(e,t,r,n){return i.signMessage(e,t,r,null,n??null,null,c())}function dt(e,t,r){return i.signTypedData(e,t,r,null,null,c())}async function ft(e,t){if(e.type==="hardware")throw new Error(`Wallet "${e.name}" is a hardware wallet. Signing must happen on the device.`);let{moonpay:r}=await import("./client-OX7ML2LX.js"),n=await r.chain.retrieve({chain:t}),o=R(n.keyFamily),a=i.exportWallet(e.name,null,c());if(a.includes(" "))return N(a,o);let l;if(a.startsWith("{")){let p=JSON.parse(a);l=o==="solana"||o==="ton"?p.ed25519:p.secp256k1}else l=a;let f=Uint8Array.from(Buffer.from(l,"hex"));if(o==="solana"&&f.length===32){let p=V("tweetnacl");f=Uint8Array.from(p.sign.keyPair.fromSeed(f).secretKey)}return{privateKey:f,address:e.addresses[o]??""}}var Ce=Ae,pt=$e;function He(e){if(e.type==="hardware"){Be(e);return}if(e.type==="hd"&&e.mnemonic){be(e.name,e.mnemonic);return}if(e.type==="imported"&&e.privateKey){let t=e.privateKey;if(t.startsWith("0x"))t=t.slice(2);else if(!/^[0-9a-fA-F]+$/.test(t)){let r=q.decode(t);t=Buffer.from(r.length===64?r.slice(0,32):r).toString("hex")}ke(e.name,t,"solana");return}Se(e.name)}function ut(e){for(let t of e)He(t)}function mt(e){let t=Ce();e(t),g(t.filter(r=>r.type==="hardware"))}function v(e){try{throw i.getWallet(e,c()),new Error(`Wallet "${e}" already exists`)}catch(t){if(t instanceof Error&&t.message.includes("already exists"))throw t}if(m().some(t=>t.name===e))throw new Error(`Wallet "${e}" already exists`)}export{R as a,E as b,Te as c,U as d,Me as e,N as f,c as g,F as h,Ke as i,Se as j,be as k,ke as l,Ae as m,Ee as n,ot as o,$e as p,it as q,st as r,Be as s,at as t,lt as u,ct as v,dt as w,ft as x,Ce as y,pt as z,He as A,ut as B,mt as C};
@@ -1,2 +1,2 @@
1
1
  process.noDeprecation = true; import { createRequire as __createRequire } from "module"; const require = __createRequire(import.meta.url);
2
- import{a as d,d as c}from"./chunk-EGIV4TXH.js";import{b as l}from"./chunk-EQTDVE4I.js";import{zodToJsonSchema as h}from"zod-to-json-schema";var g="explanation";var y="One sentence explanation as to why this tool is being used, and how it contributes to the goal.";function p(e){if(!e||typeof e!="object")return e;let n=structuredClone(e),o=T(n);if(!o)return e;let r=o.properties??{};return r[g]={type:"string",description:y,maxLength:500},o.properties=r,n}function T(e){if(e.type==="object"||e.properties)return e;let n=e.$ref,o=e.definitions;if(typeof n=="string"&&o){let r=n.replace("#/definitions/",""),t=o[r];if(t&&(t.type==="object"||t.properties))return t}return null}var u=new Map(c.map(e=>[e.schema.name,e]));function w(e){let n=e.inputSchema;if(n.$ref&&n.definitions){let o=n.$ref.replace("#/definitions/","");return n.definitions[o]??n}return n}function O(){let e=c.map(o=>({name:o.schema.name,description:o.schema.description,inputSchema:p(h(o.schema.input))})),n=new Map;for(let o of d){if(u.has(o.name))continue;let r=w(o),t=p({type:"object",properties:r.properties??{},...r.required?{required:r.required}:{},...r.additionalProperties!==void 0?{additionalProperties:r.additionalProperties}:{}});n.set(o.name,t.properties??{}),e.push({name:o.name,description:o.description,inputSchema:t})}return{toolDefs:e,toolDefMap:new Map(e.map(o=>[o.name,o])),remotePropsMap:n}}var s=O();function L(){return s.toolDefs}function M(e){return s.toolDefMap.has(e)}function b(e,n){let o=u.get(e);if(!o)return n;let r=o.schema.input.shape??{};for(let[t,f]of Object.entries(r))n[t]===void 0&&f._def.typeName==="ZodNullable"&&(n[t]=null);return n}function N(e,n){let o=s.remotePropsMap.get(e)??{};for(let[r,t]of Object.entries(o))n[r]===void 0&&(Array.isArray(t.type)?t.type.includes("null"):t.anyOf?.some(m=>m.type==="null"))&&(n[r]=null),(t.type==="number"||t.type==="integer"||Array.isArray(t.type)&&t.type.some(i=>i==="number"||i==="integer")||t.anyOf?.some(i=>i.type==="number"||i.type==="integer"))&&typeof n[r]=="string"&&(n[r]=Number(n[r]));return n}var a=class extends Error{constructor(n){super(`Unknown tool: ${n}`),this.name="UnknownToolError"}};async function D(e,n={}){if(!s.toolDefMap.has(e))throw new a(e);let o=u.get(e);if(o){let t=b(e,{...n});return o.handler(t)}let r=N(e,{...n});return l._call(e,r)}export{L as a,M as b,a as c,D as d};
2
+ import{a as d,d as c}from"./chunk-VISYJSCY.js";import{b as l}from"./chunk-MOJDU2IZ.js";import{zodToJsonSchema as h}from"zod-to-json-schema";var g="explanation";var y="One sentence explanation as to why this tool is being used, and how it contributes to the goal.";function p(e){if(!e||typeof e!="object")return e;let n=structuredClone(e),o=T(n);if(!o)return e;let r=o.properties??{};return r[g]={type:"string",description:y,maxLength:500},o.properties=r,n}function T(e){if(e.type==="object"||e.properties)return e;let n=e.$ref,o=e.definitions;if(typeof n=="string"&&o){let r=n.replace("#/definitions/",""),t=o[r];if(t&&(t.type==="object"||t.properties))return t}return null}var u=new Map(c.map(e=>[e.schema.name,e]));function w(e){let n=e.inputSchema;if(n.$ref&&n.definitions){let o=n.$ref.replace("#/definitions/","");return n.definitions[o]??n}return n}function O(){let e=c.map(o=>({name:o.schema.name,description:o.schema.description,inputSchema:p(h(o.schema.input))})),n=new Map;for(let o of d){if(u.has(o.name))continue;let r=w(o),t=p({type:"object",properties:r.properties??{},...r.required?{required:r.required}:{},...r.additionalProperties!==void 0?{additionalProperties:r.additionalProperties}:{}});n.set(o.name,t.properties??{}),e.push({name:o.name,description:o.description,inputSchema:t})}return{toolDefs:e,toolDefMap:new Map(e.map(o=>[o.name,o])),remotePropsMap:n}}var s=O();function L(){return s.toolDefs}function M(e){return s.toolDefMap.has(e)}function b(e,n){let o=u.get(e);if(!o)return n;let r=o.schema.input.shape??{};for(let[t,f]of Object.entries(r))n[t]===void 0&&f._def.typeName==="ZodNullable"&&(n[t]=null);return n}function N(e,n){let o=s.remotePropsMap.get(e)??{};for(let[r,t]of Object.entries(o))n[r]===void 0&&(Array.isArray(t.type)?t.type.includes("null"):t.anyOf?.some(m=>m.type==="null"))&&(n[r]=null),(t.type==="number"||t.type==="integer"||Array.isArray(t.type)&&t.type.some(i=>i==="number"||i==="integer")||t.anyOf?.some(i=>i.type==="number"||i.type==="integer"))&&typeof n[r]=="string"&&(n[r]=Number(n[r]));return n}var a=class extends Error{constructor(n){super(`Unknown tool: ${n}`),this.name="UnknownToolError"}};async function D(e,n={}){if(!s.toolDefMap.has(e))throw new a(e);let o=u.get(e);if(o){let t=b(e,{...n});return o.handler(t)}let r=N(e,{...n});return l._call(e,r)}export{L as a,M as b,a as c,D as d};
@@ -1,2 +1,2 @@
1
1
  process.noDeprecation = true; import { createRequire as __createRequire } from "module"; const require = __createRequire(import.meta.url);
2
- import{f as qt,g as Ft,j as Bt,m as Ht,n as Ut,o as Et,p as zt}from"./chunk-YLWZUDSV.js";var n=class extends Error{constructor(r,u,i){super(r);this.status=u;this.toolName=i;this.name="MoonPayError"}},o=class extends n{constructor(t="Authentication required"){super(t,401),this.name="AuthError"}},c=class extends n{constructor(t="Rate limit exceeded"){super(t,429),this.name="RateLimitError"}},a=class extends n{constructor(t,r){super(t,400,r),this.name="ValidationError"}},l=class extends n{constructor(t){super(`Tool not found: ${t}`,404,t),this.name="ToolNotFoundError"}},s=class extends n{constructor(t,r){super(`Tool "${t}" has been renamed to "${r}"`,410,t),this.name="ToolRenamedError",this.newName=r}};var $t="https://agents.moonpay.com",Gt=36e4;function Wt(e){return!!e&&typeof e=="object"}function d(e){if(typeof e=="string")return e.length>0&&e!=="[object Object]"?e:void 0;if(typeof e=="number"||typeof e=="boolean")return String(e);if(!Wt(e))return;let t=d(e.error)??d(e.message)??d(e.errorMessage);if(t)return t;try{return JSON.stringify(e)}catch{return}}function Kt(e,t){if(!Wt(e))return;let r=e[t];return typeof r=="string"?r:void 0}var h=class{constructor(t={}){this.baseUrl=(t.baseUrl??$t).replace(/\/$/,""),this.auth=t.auth??{type:"none"},this.timeout=t.timeout??Gt,this.headers=t.headers??{}}async _call(t,r){let u=`${this.baseUrl}/api/tools/${encodeURIComponent(t)}`,i=await this.buildHeaders(),_=await fetch(u,{method:"POST",headers:i,body:JSON.stringify(r),signal:AbortSignal.timeout(this.timeout)});if(_.status===401&&this.auth.type==="bearer"&&this.auth.refreshToken)try{let Dt=await this.auth.refreshToken();i.Authorization=`Bearer ${Dt}`,_=await fetch(u,{method:"POST",headers:i,body:JSON.stringify(r),signal:AbortSignal.timeout(this.timeout)})}catch{throw new o("Token refresh failed")}return this.handleResponse(_,t)}async buildHeaders(){let t={"Content-Type":"application/json",...this.headers};if(this.auth.type==="bearer"){let r=await this.auth.getToken();r&&(t.Authorization=`Bearer ${r}`)}return t}async handleResponse(t,r){if(t.ok)return t.json();let u;try{u=await t.json()}catch{u={error:t.statusText}}let i=d(u)??`Request failed with status ${t.status}`;switch(t.status){case 400:throw new a(i,r);case 401:throw new o(i);case 404:throw new l(r);case 410:throw new s(r,Kt(u,"newName")??"unknown");case 429:throw new c(i);default:throw new n(i,t.status,r)}}};var O=class{constructor(t){this.client=t}create(t){return this.client._call("app_activation_create",t)}},v=class{constructor(t){this.client=t}get activation(){return new O(this.client)}},P=class{constructor(t){this.client=t}build(t){return this.client._call("card_delegation_approve_transaction_build",t)}},C=class{constructor(t){this.client=t}get transaction(){return new P(this.client)}},y=class{constructor(t){this.client=t}build(t){return this.client._call("card_delegation_revoke_transaction_build",t)}},I=class{constructor(t){this.client=t}get transaction(){return new y(this.client)}},g=class{constructor(t){this.client=t}retrieve(t){return this.client._call("card_delegation_token_retrieve",t)}},k=class{constructor(t){this.client=t}get approve(){return new C(this.client)}get revoke(){return new I(this.client)}get token(){return new g(this.client)}},A=class{constructor(t){this.client=t}check(t){return this.client._call("card_onboarding_check",t)}finish(t){return this.client._call("card_onboarding_finish",t)}start(t){return this.client._call("card_onboarding_start",t)}},f=class{constructor(t){this.client=t}list(t){return this.client._call("card_transaction_list",t)}},R=class{constructor(t){this.client=t}retrieve(t){return this.client._call("card_user_retrieve",t)}},w=class{constructor(t){this.client=t}check(t){return this.client._call("card_wallet_check",t)}link(t){return this.client._call("card_wallet_link",t)}list(t){return this.client._call("card_wallet_list",t)}unlink(t){return this.client._call("card_wallet_unlink",t)}},L=class{constructor(t){this.client=t}get delegation(){return new k(this.client)}get onboarding(){return new A(this.client)}get transaction(){return new f(this.client)}get user(){return new R(this.client)}get wallet(){return new w(this.client)}create(t){return this.client._call("card_create",t)}freeze(t){return this.client._call("card_freeze",t)}retrieve(t){return this.client._call("card_retrieve",t)}reveal(t){return this.client._call("card_reveal",t)}unfreeze(t){return this.client._call("card_unfreeze",t)}},M=class{constructor(t){this.client=t}list(t){return this.client._call("chain_list",t)}retrieve(t){return this.client._call("chain_retrieve",t)}},T=class{constructor(t){this.client=t}create(t){return this.client._call("cli_activation_create",t)}update(t){return this.client._call("cli_activation_update",t)}},x=class{constructor(t){this.client=t}get activation(){return new T(this.client)}},V=class{constructor(t){this.client=t}add(t){return this.client._call("commerce_cart_add",t)}remove(t){return this.client._call("commerce_cart_remove",t)}retrieve(t){return this.client._call("commerce_cart_retrieve",t)}update(t){return this.client._call("commerce_cart_update",t)}},b=class{constructor(t){this.client=t}pay(t){return this.client._call("commerce_checkout_pay",t)}start(t){return this.client._call("commerce_checkout_start",t)}},S=class{constructor(t){this.client=t}retrieve(t){return this.client._call("commerce_product_retrieve",t)}search(t){return this.client._call("commerce_product_search",t)}},q=class{constructor(t){this.client=t}list(t){return this.client._call("commerce_store_list",t)}retrieve(t){return this.client._call("commerce_store_retrieve",t)}},B=class{constructor(t){this.client=t}get cart(){return new V(this.client)}get checkout(){return new b(this.client)}get product(){return new S(this.client)}get store(){return new q(this.client)}search(t){return this.client._call("commerce_search",t)}},H=class{constructor(t){this.client=t}list(t){return this.client._call("deposit_transaction_list",t)}},U=class{constructor(t){this.client=t}get transaction(){return new H(this.client)}create(t){return this.client._call("deposit_create",t)}retrieve(t){return this.client._call("deposit_retrieve",t)}},E=class{constructor(t){this.client=t}create(t){return this.client._call("feedback_create",t)}},W=class{constructor(t){this.client=t}buy(t){return this.client._call("gateway_buy",t)}search(t){return this.client._call("gateway_search",t)}},D=class{constructor(t){this.client=t}retrieve(t){return this.client._call("hyperliquid_balance_retrieve",t)}},F=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_candle_list",t)}},z=class{constructor(t){this.client=t}create(t){return this.client._call("hyperliquid_deposit_create",t)}},$=class{constructor(t){this.client=t}submit(t){return this.client._call("hyperliquid_exchange_submit",t)}},G=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_funding_payment_list",t)}},K=class{constructor(t){this.client=t}get payment(){return new G(this.client)}},j=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_market_list",t)}},J=class{constructor(t){this.client=t}create(t){return this.client._call("hyperliquid_order_create",t)}list(t){return this.client._call("hyperliquid_order_list",t)}},Q=class{constructor(t){this.client=t}retrieve(t){return this.client._call("hyperliquid_orderbook_retrieve",t)}},X=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_position_list",t)}},Y=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_predicted_funding_list",t)}},Z=class{constructor(t){this.client=t}get funding(){return new Y(this.client)}},N=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_price_list",t)}},tt=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_trade_list",t)}},et=class{constructor(t){this.client=t}get balance(){return new D(this.client)}get candle(){return new F(this.client)}get deposit(){return new z(this.client)}get exchange(){return new $(this.client)}get funding(){return new K(this.client)}get market(){return new j(this.client)}get order(){return new J(this.client)}get orderbook(){return new Q(this.client)}get position(){return new X(this.client)}get predicted(){return new Z(this.client)}get price(){return new N(this.client)}get trade(){return new tt(this.client)}},rt=class{constructor(t){this.client=t}redeem(t){return this.client._call("polymarket_position_redeem",t)}sell(t){return this.client._call("polymarket_position_sell",t)}},nt=class{constructor(t){this.client=t}get position(){return new rt(this.client)}},it=class{constructor(t){this.client=t}list(t){return this.client._call("prediction-market_event_list",t)}retrieve(t){return this.client._call("prediction-market_event_retrieve",t)}search(t){return this.client._call("prediction-market_event_search",t)}},ut=class{constructor(t){this.client=t}list(t){return this.client._call("prediction-market_market_ohlcv_list",t)}},ot=class{constructor(t){this.client=t}get ohlcv(){return new ut(this.client)}},ct=class{constructor(t){this.client=t}retrieve(t){return this.client._call("prediction-market_order_retrieve",t)}},at=class{constructor(t){this.client=t}buy(t){return this.client._call("prediction-market_position_buy",t)}list(t){return this.client._call("prediction-market_position_list",t)}redeem(t){return this.client._call("prediction-market_position_redeem",t)}sell(t){return this.client._call("prediction-market_position_sell",t)}},lt=class{constructor(t){this.client=t}get event(){return new it(this.client)}get market(){return new ot(this.client)}get order(){return new ct(this.client)}get position(){return new at(this.client)}},st=class{constructor(t){this.client=t}check(t){return this.client._call("solana_balance_check",t)}},pt=class{constructor(t){this.client=t}get balance(){return new st(this.client)}},dt=class{constructor(t){this.client=t}retrieve(t){return this.client._call("swaps_quote_retrieve",t)}},ht=class{constructor(t){this.client=t}build(t){return this.client._call("swaps_transaction_build",t)}},mt=class{constructor(t){this.client=t}get quote(){return new dt(this.client)}get transaction(){return new ht(this.client)}},_t=class{constructor(t){this.client=t}list(t){return this.client._call("token_activity_list",t)}},Ot=class{constructor(t){this.client=t}list(t){return this.client._call("token_balance_list",t)}},vt=class{constructor(t){this.client=t}list(t){return this.client._call("token_holder_list",t)}},Pt=class{constructor(t){this.client=t}list(t){return this.client._call("token_ohlcv_list",t)}},Ct=class{constructor(t){this.client=t}list(t){return this.client._call("token_trending_list",t)}},yt=class{constructor(t){this.client=t}get activity(){return new _t(this.client)}get balance(){return new Ot(this.client)}get holder(){return new vt(this.client)}get ohlcv(){return new Pt(this.client)}get trending(){return new Ct(this.client)}check(t){return this.client._call("token_check",t)}list(t){return this.client._call("token_list",t)}retrieve(t){return this.client._call("token_retrieve",t)}search(t){return this.client._call("token_search",t)}},It=class{constructor(t){this.client=t}list(t){return this.client._call("transaction_list",t)}prepare(t){return this.client._call("transaction_prepare",t)}register(t){return this.client._call("transaction_register",t)}retrieve(t){return this.client._call("transaction_retrieve",t)}send(t){return this.client._call("transaction_send",t)}},gt=class{constructor(t){this.client=t}retrieve(t){return this.client._call("user_retrieve",t)}},kt=class{constructor(t){this.client=t}accept(t){return this.client._call("virtual-account_agreement_accept",t)}list(t){return this.client._call("virtual-account_agreement_list",t)}},At=class{constructor(t){this.client=t}delete(t){return this.client._call("virtual-account_bank-account_delete",t)}list(t){return this.client._call("virtual-account_bank-account_list",t)}register(t){return this.client._call("virtual-account_bank-account_register",t)}retrieve(t){return this.client._call("virtual-account_bank-account_retrieve",t)}},ft=class{constructor(t){this.client=t}continue(t){return this.client._call("virtual-account_kyc_continue",t)}restart(t){return this.client._call("virtual-account_kyc_restart",t)}},Rt=class{constructor(t){this.client=t}cancel(t){return this.client._call("virtual-account_offramp_cancel",t)}create(t){return this.client._call("virtual-account_offramp_create",t)}initiate(t){return this.client._call("virtual-account_offramp_initiate",t)}list(t){return this.client._call("virtual-account_offramp_list",t)}retrieve(t){return this.client._call("virtual-account_offramp_retrieve",t)}update(t){return this.client._call("virtual-account_offramp_update",t)}},wt=class{constructor(t){this.client=t}create(t){return this.client._call("virtual-account_onramp_payment_create",t)}retrieve(t){return this.client._call("virtual-account_onramp_payment_retrieve",t)}},Lt=class{constructor(t){this.client=t}get payment(){return new wt(this.client)}cancel(t){return this.client._call("virtual-account_onramp_cancel",t)}create(t){return this.client._call("virtual-account_onramp_create",t)}list(t){return this.client._call("virtual-account_onramp_list",t)}retrieve(t){return this.client._call("virtual-account_onramp_retrieve",t)}update(t){return this.client._call("virtual-account_onramp_update",t)}},Mt=class{constructor(t){this.client=t}list(t){return this.client._call("virtual-account_transaction_list",t)}},Tt=class{constructor(t){this.client=t}list(t){return this.client._call("virtual-account_wallet_list",t)}register(t){return this.client._call("virtual-account_wallet_register",t)}},xt=class{constructor(t){this.client=t}get agreement(){return new kt(this.client)}get bankAccount(){return new At(this.client)}get kyc(){return new ft(this.client)}get offramp(){return new Rt(this.client)}get onramp(){return new Lt(this.client)}get transaction(){return new Mt(this.client)}get wallet(){return new Tt(this.client)}create(t){return this.client._call("virtual-account_create",t)}retrieve(t){return this.client._call("virtual-account_retrieve",t)}},Vt=class{constructor(t){this.client=t}list(t){return this.client._call("wallet_activity_list",t)}},bt=class{constructor(t){this.client=t}retrieve(t){return this.client._call("wallet_pnl_retrieve",t)}},St=class{constructor(t){this.client=t}get activity(){return new Vt(this.client)}get pnl(){return new bt(this.client)}discover(t){return this.client._call("wallet_discover",t)}},p=class extends h{constructor(t={}){super(t)}get app(){return new v(this)}get card(){return new L(this)}get chain(){return new M(this)}get cli(){return new x(this)}get commerce(){return new B(this)}get deposit(){return new U(this)}get feedback(){return new E(this)}get gateway(){return new W(this)}get hyperliquid(){return new et(this)}get polymarket(){return new nt(this)}get predictionMarket(){return new lt(this)}get solana(){return new pt(this)}get swaps(){return new mt(this)}get token(){return new yt(this)}get transaction(){return new It(this)}get user(){return new gt(this)}get virtualAccount(){return new xt(this)}get wallet(){return new St(this)}buy(t){return this._call("buy",t)}login(t){return this._call("login",t)}refresh(t){return this._call("refresh",t)}verify(t){return this._call("verify",t)}};zt();Ft();var m=null;function jt(){return m||(m=new p({baseUrl:Ht(),auth:{type:"bearer",getToken:Et,refreshToken:async()=>{let e=Bt();if(!e?.refreshToken)throw new Error("No refresh token available");return(await Ut(e)).accessToken}},headers:qt()})),m}var oe=new Proxy({},{get(e,t){return Reflect.get(jt(),t)}});function ce(){m=null}export{p as a,oe as b,ce as c};
2
+ import{f as qt,g as Ft,j as Bt,m as Ht,n as Ut,o as Et,p as zt}from"./chunk-TTV2RQ6O.js";var n=class extends Error{constructor(r,u,i){super(r);this.status=u;this.toolName=i;this.name="MoonPayError"}},o=class extends n{constructor(t="Authentication required"){super(t,401),this.name="AuthError"}},c=class extends n{constructor(t="Rate limit exceeded"){super(t,429),this.name="RateLimitError"}},a=class extends n{constructor(t,r){super(t,400,r),this.name="ValidationError"}},l=class extends n{constructor(t){super(`Tool not found: ${t}`,404,t),this.name="ToolNotFoundError"}},s=class extends n{constructor(t,r){super(`Tool "${t}" has been renamed to "${r}"`,410,t),this.name="ToolRenamedError",this.newName=r}};var $t="https://agents.moonpay.com",Gt=36e4;function Wt(e){return!!e&&typeof e=="object"}function d(e){if(typeof e=="string")return e.length>0&&e!=="[object Object]"?e:void 0;if(typeof e=="number"||typeof e=="boolean")return String(e);if(!Wt(e))return;let t=d(e.error)??d(e.message)??d(e.errorMessage);if(t)return t;try{return JSON.stringify(e)}catch{return}}function Kt(e,t){if(!Wt(e))return;let r=e[t];return typeof r=="string"?r:void 0}var h=class{constructor(t={}){this.baseUrl=(t.baseUrl??$t).replace(/\/$/,""),this.auth=t.auth??{type:"none"},this.timeout=t.timeout??Gt,this.headers=t.headers??{}}async _call(t,r){let u=`${this.baseUrl}/api/tools/${encodeURIComponent(t)}`,i=await this.buildHeaders(),_=await fetch(u,{method:"POST",headers:i,body:JSON.stringify(r),signal:AbortSignal.timeout(this.timeout)});if(_.status===401&&this.auth.type==="bearer"&&this.auth.refreshToken)try{let Dt=await this.auth.refreshToken();i.Authorization=`Bearer ${Dt}`,_=await fetch(u,{method:"POST",headers:i,body:JSON.stringify(r),signal:AbortSignal.timeout(this.timeout)})}catch{throw new o("Token refresh failed")}return this.handleResponse(_,t)}async buildHeaders(){let t={"Content-Type":"application/json",...this.headers};if(this.auth.type==="bearer"){let r=await this.auth.getToken();r&&(t.Authorization=`Bearer ${r}`)}return t}async handleResponse(t,r){if(t.ok)return t.json();let u;try{u=await t.json()}catch{u={error:t.statusText}}let i=d(u)??`Request failed with status ${t.status}`;switch(t.status){case 400:throw new a(i,r);case 401:throw new o(i);case 404:throw new l(r);case 410:throw new s(r,Kt(u,"newName")??"unknown");case 429:throw new c(i);default:throw new n(i,t.status,r)}}};var O=class{constructor(t){this.client=t}create(t){return this.client._call("app_activation_create",t)}},v=class{constructor(t){this.client=t}get activation(){return new O(this.client)}},P=class{constructor(t){this.client=t}build(t){return this.client._call("card_delegation_approve_transaction_build",t)}},C=class{constructor(t){this.client=t}get transaction(){return new P(this.client)}},y=class{constructor(t){this.client=t}build(t){return this.client._call("card_delegation_revoke_transaction_build",t)}},I=class{constructor(t){this.client=t}get transaction(){return new y(this.client)}},g=class{constructor(t){this.client=t}retrieve(t){return this.client._call("card_delegation_token_retrieve",t)}},k=class{constructor(t){this.client=t}get approve(){return new C(this.client)}get revoke(){return new I(this.client)}get token(){return new g(this.client)}},A=class{constructor(t){this.client=t}check(t){return this.client._call("card_onboarding_check",t)}finish(t){return this.client._call("card_onboarding_finish",t)}start(t){return this.client._call("card_onboarding_start",t)}},f=class{constructor(t){this.client=t}list(t){return this.client._call("card_transaction_list",t)}},R=class{constructor(t){this.client=t}retrieve(t){return this.client._call("card_user_retrieve",t)}},w=class{constructor(t){this.client=t}check(t){return this.client._call("card_wallet_check",t)}link(t){return this.client._call("card_wallet_link",t)}list(t){return this.client._call("card_wallet_list",t)}unlink(t){return this.client._call("card_wallet_unlink",t)}},L=class{constructor(t){this.client=t}get delegation(){return new k(this.client)}get onboarding(){return new A(this.client)}get transaction(){return new f(this.client)}get user(){return new R(this.client)}get wallet(){return new w(this.client)}create(t){return this.client._call("card_create",t)}freeze(t){return this.client._call("card_freeze",t)}retrieve(t){return this.client._call("card_retrieve",t)}reveal(t){return this.client._call("card_reveal",t)}unfreeze(t){return this.client._call("card_unfreeze",t)}},M=class{constructor(t){this.client=t}list(t){return this.client._call("chain_list",t)}retrieve(t){return this.client._call("chain_retrieve",t)}},T=class{constructor(t){this.client=t}create(t){return this.client._call("cli_activation_create",t)}update(t){return this.client._call("cli_activation_update",t)}},x=class{constructor(t){this.client=t}get activation(){return new T(this.client)}},V=class{constructor(t){this.client=t}add(t){return this.client._call("commerce_cart_add",t)}remove(t){return this.client._call("commerce_cart_remove",t)}retrieve(t){return this.client._call("commerce_cart_retrieve",t)}update(t){return this.client._call("commerce_cart_update",t)}},b=class{constructor(t){this.client=t}pay(t){return this.client._call("commerce_checkout_pay",t)}start(t){return this.client._call("commerce_checkout_start",t)}},S=class{constructor(t){this.client=t}retrieve(t){return this.client._call("commerce_product_retrieve",t)}search(t){return this.client._call("commerce_product_search",t)}},q=class{constructor(t){this.client=t}list(t){return this.client._call("commerce_store_list",t)}retrieve(t){return this.client._call("commerce_store_retrieve",t)}},B=class{constructor(t){this.client=t}get cart(){return new V(this.client)}get checkout(){return new b(this.client)}get product(){return new S(this.client)}get store(){return new q(this.client)}search(t){return this.client._call("commerce_search",t)}},H=class{constructor(t){this.client=t}list(t){return this.client._call("deposit_transaction_list",t)}},U=class{constructor(t){this.client=t}get transaction(){return new H(this.client)}create(t){return this.client._call("deposit_create",t)}retrieve(t){return this.client._call("deposit_retrieve",t)}},E=class{constructor(t){this.client=t}create(t){return this.client._call("feedback_create",t)}},W=class{constructor(t){this.client=t}buy(t){return this.client._call("gateway_buy",t)}search(t){return this.client._call("gateway_search",t)}},D=class{constructor(t){this.client=t}retrieve(t){return this.client._call("hyperliquid_balance_retrieve",t)}},F=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_candle_list",t)}},z=class{constructor(t){this.client=t}create(t){return this.client._call("hyperliquid_deposit_create",t)}},$=class{constructor(t){this.client=t}submit(t){return this.client._call("hyperliquid_exchange_submit",t)}},G=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_funding_payment_list",t)}},K=class{constructor(t){this.client=t}get payment(){return new G(this.client)}},j=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_market_list",t)}},J=class{constructor(t){this.client=t}create(t){return this.client._call("hyperliquid_order_create",t)}list(t){return this.client._call("hyperliquid_order_list",t)}},Q=class{constructor(t){this.client=t}retrieve(t){return this.client._call("hyperliquid_orderbook_retrieve",t)}},X=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_position_list",t)}},Y=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_predicted_funding_list",t)}},Z=class{constructor(t){this.client=t}get funding(){return new Y(this.client)}},N=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_price_list",t)}},tt=class{constructor(t){this.client=t}list(t){return this.client._call("hyperliquid_trade_list",t)}},et=class{constructor(t){this.client=t}get balance(){return new D(this.client)}get candle(){return new F(this.client)}get deposit(){return new z(this.client)}get exchange(){return new $(this.client)}get funding(){return new K(this.client)}get market(){return new j(this.client)}get order(){return new J(this.client)}get orderbook(){return new Q(this.client)}get position(){return new X(this.client)}get predicted(){return new Z(this.client)}get price(){return new N(this.client)}get trade(){return new tt(this.client)}},rt=class{constructor(t){this.client=t}redeem(t){return this.client._call("polymarket_position_redeem",t)}sell(t){return this.client._call("polymarket_position_sell",t)}},nt=class{constructor(t){this.client=t}get position(){return new rt(this.client)}},it=class{constructor(t){this.client=t}list(t){return this.client._call("prediction-market_event_list",t)}retrieve(t){return this.client._call("prediction-market_event_retrieve",t)}search(t){return this.client._call("prediction-market_event_search",t)}},ut=class{constructor(t){this.client=t}list(t){return this.client._call("prediction-market_market_ohlcv_list",t)}},ot=class{constructor(t){this.client=t}get ohlcv(){return new ut(this.client)}},ct=class{constructor(t){this.client=t}retrieve(t){return this.client._call("prediction-market_order_retrieve",t)}},at=class{constructor(t){this.client=t}buy(t){return this.client._call("prediction-market_position_buy",t)}list(t){return this.client._call("prediction-market_position_list",t)}redeem(t){return this.client._call("prediction-market_position_redeem",t)}sell(t){return this.client._call("prediction-market_position_sell",t)}},lt=class{constructor(t){this.client=t}get event(){return new it(this.client)}get market(){return new ot(this.client)}get order(){return new ct(this.client)}get position(){return new at(this.client)}},st=class{constructor(t){this.client=t}check(t){return this.client._call("solana_balance_check",t)}},pt=class{constructor(t){this.client=t}get balance(){return new st(this.client)}},dt=class{constructor(t){this.client=t}retrieve(t){return this.client._call("swaps_quote_retrieve",t)}},ht=class{constructor(t){this.client=t}build(t){return this.client._call("swaps_transaction_build",t)}},mt=class{constructor(t){this.client=t}get quote(){return new dt(this.client)}get transaction(){return new ht(this.client)}},_t=class{constructor(t){this.client=t}list(t){return this.client._call("token_activity_list",t)}},Ot=class{constructor(t){this.client=t}list(t){return this.client._call("token_balance_list",t)}},vt=class{constructor(t){this.client=t}list(t){return this.client._call("token_holder_list",t)}},Pt=class{constructor(t){this.client=t}list(t){return this.client._call("token_ohlcv_list",t)}},Ct=class{constructor(t){this.client=t}list(t){return this.client._call("token_trending_list",t)}},yt=class{constructor(t){this.client=t}get activity(){return new _t(this.client)}get balance(){return new Ot(this.client)}get holder(){return new vt(this.client)}get ohlcv(){return new Pt(this.client)}get trending(){return new Ct(this.client)}check(t){return this.client._call("token_check",t)}list(t){return this.client._call("token_list",t)}retrieve(t){return this.client._call("token_retrieve",t)}search(t){return this.client._call("token_search",t)}},It=class{constructor(t){this.client=t}list(t){return this.client._call("transaction_list",t)}prepare(t){return this.client._call("transaction_prepare",t)}register(t){return this.client._call("transaction_register",t)}retrieve(t){return this.client._call("transaction_retrieve",t)}send(t){return this.client._call("transaction_send",t)}},gt=class{constructor(t){this.client=t}retrieve(t){return this.client._call("user_retrieve",t)}},kt=class{constructor(t){this.client=t}accept(t){return this.client._call("virtual-account_agreement_accept",t)}list(t){return this.client._call("virtual-account_agreement_list",t)}},At=class{constructor(t){this.client=t}delete(t){return this.client._call("virtual-account_bank-account_delete",t)}list(t){return this.client._call("virtual-account_bank-account_list",t)}register(t){return this.client._call("virtual-account_bank-account_register",t)}retrieve(t){return this.client._call("virtual-account_bank-account_retrieve",t)}},ft=class{constructor(t){this.client=t}continue(t){return this.client._call("virtual-account_kyc_continue",t)}restart(t){return this.client._call("virtual-account_kyc_restart",t)}},Rt=class{constructor(t){this.client=t}cancel(t){return this.client._call("virtual-account_offramp_cancel",t)}create(t){return this.client._call("virtual-account_offramp_create",t)}initiate(t){return this.client._call("virtual-account_offramp_initiate",t)}list(t){return this.client._call("virtual-account_offramp_list",t)}retrieve(t){return this.client._call("virtual-account_offramp_retrieve",t)}update(t){return this.client._call("virtual-account_offramp_update",t)}},wt=class{constructor(t){this.client=t}create(t){return this.client._call("virtual-account_onramp_payment_create",t)}retrieve(t){return this.client._call("virtual-account_onramp_payment_retrieve",t)}},Lt=class{constructor(t){this.client=t}get payment(){return new wt(this.client)}cancel(t){return this.client._call("virtual-account_onramp_cancel",t)}create(t){return this.client._call("virtual-account_onramp_create",t)}list(t){return this.client._call("virtual-account_onramp_list",t)}retrieve(t){return this.client._call("virtual-account_onramp_retrieve",t)}update(t){return this.client._call("virtual-account_onramp_update",t)}},Mt=class{constructor(t){this.client=t}list(t){return this.client._call("virtual-account_transaction_list",t)}},Tt=class{constructor(t){this.client=t}list(t){return this.client._call("virtual-account_wallet_list",t)}register(t){return this.client._call("virtual-account_wallet_register",t)}},xt=class{constructor(t){this.client=t}get agreement(){return new kt(this.client)}get bankAccount(){return new At(this.client)}get kyc(){return new ft(this.client)}get offramp(){return new Rt(this.client)}get onramp(){return new Lt(this.client)}get transaction(){return new Mt(this.client)}get wallet(){return new Tt(this.client)}create(t){return this.client._call("virtual-account_create",t)}retrieve(t){return this.client._call("virtual-account_retrieve",t)}},Vt=class{constructor(t){this.client=t}list(t){return this.client._call("wallet_activity_list",t)}},bt=class{constructor(t){this.client=t}retrieve(t){return this.client._call("wallet_pnl_retrieve",t)}},St=class{constructor(t){this.client=t}get activity(){return new Vt(this.client)}get pnl(){return new bt(this.client)}discover(t){return this.client._call("wallet_discover",t)}},p=class extends h{constructor(t={}){super(t)}get app(){return new v(this)}get card(){return new L(this)}get chain(){return new M(this)}get cli(){return new x(this)}get commerce(){return new B(this)}get deposit(){return new U(this)}get feedback(){return new E(this)}get gateway(){return new W(this)}get hyperliquid(){return new et(this)}get polymarket(){return new nt(this)}get predictionMarket(){return new lt(this)}get solana(){return new pt(this)}get swaps(){return new mt(this)}get token(){return new yt(this)}get transaction(){return new It(this)}get user(){return new gt(this)}get virtualAccount(){return new xt(this)}get wallet(){return new St(this)}buy(t){return this._call("buy",t)}login(t){return this._call("login",t)}refresh(t){return this._call("refresh",t)}verify(t){return this._call("verify",t)}};zt();Ft();var m=null;function jt(){return m||(m=new p({baseUrl:Ht(),auth:{type:"bearer",getToken:Et,refreshToken:async()=>{let e=Bt();if(!e?.refreshToken)throw new Error("No refresh token available");return(await Ut(e)).accessToken}},headers:qt()})),m}var oe=new Proxy({},{get(e,t){return Reflect.get(jt(),t)}});function ce(){m=null}export{p as a,oe as b,ce as c};
@@ -1,3 +1,3 @@
1
1
  process.noDeprecation = true; import { createRequire as __createRequire } from "module"; const require = __createRequire(import.meta.url);
2
- import{b as m,d as b}from"./chunk-LMDE72OE.js";var G={};b(G,{decrypt:()=>k,encrypt:()=>T,encryptedFileSchema:()=>O});import{randomBytes as A,scryptSync as v,createCipheriv as X,createDecipheriv as $}from"crypto";import{z as i}from"zod";function T(n,t){let r=A(32),o=v(t,r,D,{N:R,r:L,p:F,maxmem:K}),s=A(12),c=X("aes-256-gcm",o,s),_=Buffer.concat([c.update(n,"utf8"),c.final()]);return{encryption:{cipher:"aes-256-gcm",kdf:"scrypt",kdfparams:{n:R,r:L,p:F},salt:r.toString("base64"),iv:s.toString("base64"),tag:c.getAuthTag().toString("base64")},data:_.toString("base64")}}function k(n,t){let{salt:r,iv:o,tag:s,kdfparams:c}=n.encryption,_=v(t,Buffer.from(r,"base64"),D,{N:c.n,r:c.r,p:c.p,maxmem:K}),x=$("aes-256-gcm",_,Buffer.from(o,"base64"),{authTagLength:16});return x.setAuthTag(Buffer.from(s,"base64")),Buffer.concat([x.update(Buffer.from(n.data,"base64")),x.final()]).toString("utf8")}var R,L,F,D,K,O,P=m(()=>{"use strict";R=2**18,L=8,F=1,D=32,K=512*1024*1024,O=i.object({encryption:i.object({cipher:i.literal("aes-256-gcm"),kdf:i.literal("scrypt"),kdfparams:i.object({n:i.number(),r:i.number(),p:i.number()}),salt:i.string(),iv:i.string(),tag:i.string()}),data:i.string()})});import{readFileSync as W}from"fs";import{join as z}from"path";import{homedir as q}from"os";function en(){if(f!==void 0)return f;try{f=JSON.parse(W(z(q(),".config","moonpay","consent.json"),"utf-8")).agentId??null}catch{f=null}return f??null}function rn(){return process.env.OPENCLAW_SHELL?"openclaw":process.env.CLAUDECODE?"claude-code":process.env.CODEX_CI?"codex":process.env.GEMINI_CLI?"gemini-cli":"human"}function U(){let n={"Content-Type":"application/json",[Z]:Q,[tn]:rn()},t=en();return t&&(n[nn]=t),n}var Q,Z,nn,f,tn,j=m(()=>{"use strict";Q="1.95.0",Z="X-CLI-Version",nn="X-Agent-Id";tn="X-Agent"});import*as e from"fs";import*as Y from"os";import*as g from"path";function d(){e.existsSync(l)||e.mkdirSync(l,{recursive:!0,mode:448})}function H(n,t,r){let o=n+`.tmp.${process.pid}`;e.writeFileSync(o,t,{encoding:"utf-8",mode:r}),e.renameSync(o,n)}function sn(){d();try{let n=e.openSync(u,e.constants.O_CREAT|e.constants.O_EXCL|e.constants.O_WRONLY,384);e.writeSync(n,JSON.stringify({pid:process.pid,ts:Date.now()})),e.closeSync(n)}catch(n){if(n.code!=="EEXIST")throw n;try{let t=JSON.parse(e.readFileSync(u,"utf-8"));if(Date.now()-t.ts<on)return null}catch{}try{e.unlinkSync(u)}catch{}try{let t=e.openSync(u,e.constants.O_CREAT|e.constants.O_EXCL|e.constants.O_WRONLY,384);e.writeSync(t,JSON.stringify({pid:process.pid,ts:Date.now()})),e.closeSync(t)}catch{return null}}return()=>{try{e.unlinkSync(u)}catch{}}}function B(){if(!e.existsSync(w))return null;try{let n=JSON.parse(e.readFileSync(w,"utf-8"));return n.baseUrl?n:null}catch{return null}}function Pn(){let n=B();return n||(an(N),N)}function S(){if(!e.existsSync(p))return null;let n=h();if(!n)return null;try{let t=JSON.parse(e.readFileSync(p,"utf-8")),r=O.parse(t),o=k(r,n),s=JSON.parse(o);return!s.accessToken||!s.baseUrl?null:s}catch{return null}}function cn(n){let t=I(),r=T(JSON.stringify(n),t);d(),H(p,JSON.stringify(r,null,2),384)}function an(n){d(),H(w,JSON.stringify(n,null,2),384)}function Un(){e.existsSync(p)&&e.unlinkSync(p)}function jn(){let n=B(),t=S();return n?.baseUrl??t?.baseUrl??N.baseUrl}async function fn(n,t,r){let o=await fetch(`${n}/api/tools/${encodeURIComponent(t)}`,{method:"POST",signal:AbortSignal.timeout(15e3),headers:U(),body:JSON.stringify(r)}),s=await o.json();if(!o.ok){let c=s;throw new Error(c?.error??`${t} failed (${o.status})`)}return s}async function un(n){if(!n.refreshToken)throw new Error("No refresh token available");let t=sn();if(!t){await new Promise(o=>setTimeout(o,2e3));let r=S();if(r&&r.expiresAt>Date.now())return r;throw new Error("Token refresh failed (concurrent refresh in progress)")}try{let r=S();if(r&&r.expiresAt>Date.now()+6e4)return r;let o=await fn(n.baseUrl,"refresh",{refreshToken:n.refreshToken}),s={accessToken:o.accessToken,refreshToken:o.refreshToken,expiresAt:o.expiresAt*1e3,baseUrl:n.baseUrl};return cn(s),s}finally{t()}}async function Jn(){let n=S();if(!n)return null;if(Date.now()>=n.expiresAt-ln){if(n.refreshToken)try{return(await un(n)).accessToken}catch{return null}return null}return n.accessToken}var l,w,p,u,N,on,ln,V=m(()=>{"use strict";P();J();j();l=g.join(Y.homedir(),".config","moonpay"),w=g.join(l,"config.json"),p=g.join(l,"credentials.json"),u=g.join(l,".credentials.lock"),N={baseUrl:"https://agents.moonpay.com"};on=3e4;ln=300*1e3});var Nn={};b(Nn,{ensureEncryptionKey:()=>I,getEncryptionKey:()=>h});import{execFileSync as C,execSync as pn}from"child_process";import{randomBytes as gn}from"crypto";import{existsSync as dn,readFileSync as yn,writeFileSync as mn}from"fs";import{homedir as Sn,platform as M}from"os";import{join as hn}from"path";function Cn(n){try{C("security",["delete-generic-password","-s",a,"-a",y],{stdio:"ignore"})}catch{}C("security",["add-generic-password","-s",a,"-a",y,"-w",n],{stdio:"ignore"})}function En(){try{return C("security",["find-generic-password","-s",a,"-a",y,"-w"],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return null}}function _n(n){pn(`printf '%s' | secret-tool store --label="${a}" service "${a}" account "${y}"`,{input:n,stdio:["pipe","ignore","ignore"]})}function xn(){try{return C("secret-tool",["lookup","service",a,"account",y],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return null}}function On(n){d(),mn(E,n,{encoding:"utf-8",mode:384})}function Tn(){try{return dn(E)&&yn(E,"utf-8").trim()||null}catch{return null}}function kn(n){try{let t=M();return t==="darwin"?(Cn(n),!0):t==="linux"?(_n(n),!0):!1}catch{return!1}}function wn(){let n=M();return n==="darwin"?En():n==="linux"?xn():null}function h(){let n=process.env.MOONPAY_ENCRYPTION_KEY;return n||(wn()??Tn())}function I(){let n=h();if(n)return n;let t=gn(32).toString("hex");return kn(t)||(On(t),process.stderr.write("Note: Keychain unavailable. Encryption key stored in "+E+`
2
+ import{b as m,d as b}from"./chunk-LMDE72OE.js";var G={};b(G,{decrypt:()=>k,encrypt:()=>T,encryptedFileSchema:()=>O});import{randomBytes as A,scryptSync as v,createCipheriv as X,createDecipheriv as $}from"crypto";import{z as i}from"zod";function T(n,t){let r=A(32),o=v(t,r,D,{N:R,r:L,p:F,maxmem:K}),s=A(12),c=X("aes-256-gcm",o,s),_=Buffer.concat([c.update(n,"utf8"),c.final()]);return{encryption:{cipher:"aes-256-gcm",kdf:"scrypt",kdfparams:{n:R,r:L,p:F},salt:r.toString("base64"),iv:s.toString("base64"),tag:c.getAuthTag().toString("base64")},data:_.toString("base64")}}function k(n,t){let{salt:r,iv:o,tag:s,kdfparams:c}=n.encryption,_=v(t,Buffer.from(r,"base64"),D,{N:c.n,r:c.r,p:c.p,maxmem:K}),x=$("aes-256-gcm",_,Buffer.from(o,"base64"),{authTagLength:16});return x.setAuthTag(Buffer.from(s,"base64")),Buffer.concat([x.update(Buffer.from(n.data,"base64")),x.final()]).toString("utf8")}var R,L,F,D,K,O,P=m(()=>{"use strict";R=2**18,L=8,F=1,D=32,K=512*1024*1024,O=i.object({encryption:i.object({cipher:i.literal("aes-256-gcm"),kdf:i.literal("scrypt"),kdfparams:i.object({n:i.number(),r:i.number(),p:i.number()}),salt:i.string(),iv:i.string(),tag:i.string()}),data:i.string()})});import{readFileSync as W}from"fs";import{join as z}from"path";import{homedir as q}from"os";function en(){if(f!==void 0)return f;try{f=JSON.parse(W(z(q(),".config","moonpay","consent.json"),"utf-8")).agentId??null}catch{f=null}return f??null}function rn(){return process.env.OPENCLAW_SHELL?"openclaw":process.env.CLAUDECODE?"claude-code":process.env.CODEX_CI?"codex":process.env.GEMINI_CLI?"gemini-cli":"human"}function U(){let n={"Content-Type":"application/json",[Z]:Q,[tn]:rn()},t=en();return t&&(n[nn]=t),n}var Q,Z,nn,f,tn,j=m(()=>{"use strict";Q="1.95.1",Z="X-CLI-Version",nn="X-Agent-Id";tn="X-Agent"});import*as e from"fs";import*as Y from"os";import*as g from"path";function d(){e.existsSync(l)||e.mkdirSync(l,{recursive:!0,mode:448})}function H(n,t,r){let o=n+`.tmp.${process.pid}`;e.writeFileSync(o,t,{encoding:"utf-8",mode:r}),e.renameSync(o,n)}function sn(){d();try{let n=e.openSync(u,e.constants.O_CREAT|e.constants.O_EXCL|e.constants.O_WRONLY,384);e.writeSync(n,JSON.stringify({pid:process.pid,ts:Date.now()})),e.closeSync(n)}catch(n){if(n.code!=="EEXIST")throw n;try{let t=JSON.parse(e.readFileSync(u,"utf-8"));if(Date.now()-t.ts<on)return null}catch{}try{e.unlinkSync(u)}catch{}try{let t=e.openSync(u,e.constants.O_CREAT|e.constants.O_EXCL|e.constants.O_WRONLY,384);e.writeSync(t,JSON.stringify({pid:process.pid,ts:Date.now()})),e.closeSync(t)}catch{return null}}return()=>{try{e.unlinkSync(u)}catch{}}}function B(){if(!e.existsSync(w))return null;try{let n=JSON.parse(e.readFileSync(w,"utf-8"));return n.baseUrl?n:null}catch{return null}}function Pn(){let n=B();return n||(an(N),N)}function S(){if(!e.existsSync(p))return null;let n=h();if(!n)return null;try{let t=JSON.parse(e.readFileSync(p,"utf-8")),r=O.parse(t),o=k(r,n),s=JSON.parse(o);return!s.accessToken||!s.baseUrl?null:s}catch{return null}}function cn(n){let t=I(),r=T(JSON.stringify(n),t);d(),H(p,JSON.stringify(r,null,2),384)}function an(n){d(),H(w,JSON.stringify(n,null,2),384)}function Un(){e.existsSync(p)&&e.unlinkSync(p)}function jn(){let n=B(),t=S();return n?.baseUrl??t?.baseUrl??N.baseUrl}async function fn(n,t,r){let o=await fetch(`${n}/api/tools/${encodeURIComponent(t)}`,{method:"POST",signal:AbortSignal.timeout(15e3),headers:U(),body:JSON.stringify(r)}),s=await o.json();if(!o.ok){let c=s;throw new Error(c?.error??`${t} failed (${o.status})`)}return s}async function un(n){if(!n.refreshToken)throw new Error("No refresh token available");let t=sn();if(!t){await new Promise(o=>setTimeout(o,2e3));let r=S();if(r&&r.expiresAt>Date.now())return r;throw new Error("Token refresh failed (concurrent refresh in progress)")}try{let r=S();if(r&&r.expiresAt>Date.now()+6e4)return r;let o=await fn(n.baseUrl,"refresh",{refreshToken:n.refreshToken}),s={accessToken:o.accessToken,refreshToken:o.refreshToken,expiresAt:o.expiresAt*1e3,baseUrl:n.baseUrl};return cn(s),s}finally{t()}}async function Jn(){let n=S();if(!n)return null;if(Date.now()>=n.expiresAt-ln){if(n.refreshToken)try{return(await un(n)).accessToken}catch{return null}return null}return n.accessToken}var l,w,p,u,N,on,ln,V=m(()=>{"use strict";P();J();j();l=g.join(Y.homedir(),".config","moonpay"),w=g.join(l,"config.json"),p=g.join(l,"credentials.json"),u=g.join(l,".credentials.lock"),N={baseUrl:"https://agents.moonpay.com"};on=3e4;ln=300*1e3});var Nn={};b(Nn,{ensureEncryptionKey:()=>I,getEncryptionKey:()=>h});import{execFileSync as C,execSync as pn}from"child_process";import{randomBytes as gn}from"crypto";import{existsSync as dn,readFileSync as yn,writeFileSync as mn}from"fs";import{homedir as Sn,platform as M}from"os";import{join as hn}from"path";function Cn(n){try{C("security",["delete-generic-password","-s",a,"-a",y],{stdio:"ignore"})}catch{}C("security",["add-generic-password","-s",a,"-a",y,"-w",n],{stdio:"ignore"})}function En(){try{return C("security",["find-generic-password","-s",a,"-a",y,"-w"],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return null}}function _n(n){pn(`printf '%s' | secret-tool store --label="${a}" service "${a}" account "${y}"`,{input:n,stdio:["pipe","ignore","ignore"]})}function xn(){try{return C("secret-tool",["lookup","service",a,"account",y],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return null}}function On(n){d(),mn(E,n,{encoding:"utf-8",mode:384})}function Tn(){try{return dn(E)&&yn(E,"utf-8").trim()||null}catch{return null}}function kn(n){try{let t=M();return t==="darwin"?(Cn(n),!0):t==="linux"?(_n(n),!0):!1}catch{return!1}}function wn(){let n=M();return n==="darwin"?En():n==="linux"?xn():null}function h(){let n=process.env.MOONPAY_ENCRYPTION_KEY;return n||(wn()??Tn())}function I(){let n=h();if(n)return n;let t=gn(32).toString("hex");return kn(t)||(On(t),process.stderr.write("Note: Keychain unavailable. Encryption key stored in "+E+`
3
3
  `)),t}var a,y,E,J=m(()=>{"use strict";V();a="moonpay-cli",y="encryption-key",E=hn(Sn(),".config","moonpay",".encryption-key")});export{G as a,P as b,Nn as c,J as d,Q as e,U as f,j as g,d as h,Pn as i,S as j,cn as k,Un as l,jn as m,un as n,Jn as o,V as p};