@moonpay/cli 1.16.2 → 1.17.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.
@@ -1,5 +1,5 @@
1
1
  process.noDeprecation = true; import { createRequire as __createRequire } from "module"; const require = __createRequire(import.meta.url);
2
2
  import{a as z,b as Q,c as Z,d as xe,e as ee,g as re,h as te,l as ne}from"./chunk-TPAYGT4L.js";import{a as ve,b as H,d as Se,f as q}from"./chunk-LMDE72OE.js";var fe={};Se(fe,{ensureEncryptionKey:()=>U,getEncryptionKey:()=>I});import{execFileSync as T,execSync as $e}from"child_process";import{randomBytes as De}from"crypto";import{existsSync as He,readFileSync as Be,writeFileSync as Ue}from"fs";import{homedir as Le,platform as le}from"os";import{join as Me}from"path";function Je(e){try{T("security",["delete-generic-password","-s",g,"-a",v],{stdio:"ignore"})}catch{}T("security",["add-generic-password","-s",g,"-a",v,"-w",e],{stdio:"ignore"})}function je(){try{return T("security",["find-generic-password","-s",g,"-a",v,"-w"],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return null}}function Ve(e){$e(`printf '%s' | secret-tool store --label="${g}" service "${g}" account "${v}"`,{input:e,stdio:["pipe","ignore","ignore"]})}function Ye(){try{return T("secret-tool",["lookup","service",g,"account",v],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return null}}function Ge(e){p(),Ue(O,e,{encoding:"utf-8",mode:384})}function Xe(){try{return He(O)&&Be(O,"utf-8").trim()||null}catch{return null}}function qe(e){try{let r=le();return r==="darwin"?(Je(e),!0):r==="linux"?(Ve(e),!0):!1}catch{return!1}}function ze(){let e=le();return e==="darwin"?je():e==="linux"?Ye():null}function I(){let e=process.env.MOONPAY_ENCRYPTION_KEY;return e||(ze()??Xe())}function U(){let e=I();if(e)return e;let r=De(32).toString("hex");return qe(r)||(Ge(r),process.stderr.write("Note: Keychain unavailable. Encryption key stored in "+O+`
3
- `)),r}var g,v,O,L=H(()=>{"use strict";M();g="moonpay-cli",v="encryption-key",O=Me(Le(),".config","moonpay",".encryption-key")});import{readFileSync as Qe}from"fs";import{join as Ze}from"path";import{homedir as er}from"os";function or(){if(S!==void 0)return S;try{S=JSON.parse(Qe(Ze(er(),".config","moonpay","consent.json"),"utf-8")).agentId??null}catch{S=null}return S??null}function de(){let e={"Content-Type":"application/json",[tr]:rr},r=or();return r&&(e[nr]=r),e}var rr,tr,nr,S,ue=H(()=>{"use strict";rr="1.16.2",tr="X-CLI-Version",nr="X-Agent-Id"});import*as s from"fs";import*as pe from"os";import*as K from"path";function p(){s.existsSync(C)||s.mkdirSync(C,{recursive:!0,mode:448})}function ye(e,r,t){let n=e+`.tmp.${process.pid}`;s.writeFileSync(n,r,{encoding:"utf-8",mode:t}),s.renameSync(n,e)}function ir(){p();try{let e=s.openSync(x,s.constants.O_CREAT|s.constants.O_EXCL|s.constants.O_WRONLY,384);s.writeSync(e,JSON.stringify({pid:process.pid,ts:Date.now()})),s.closeSync(e)}catch(e){if(e.code!=="EEXIST")throw e;try{let r=JSON.parse(s.readFileSync(x,"utf-8"));if(Date.now()-r.ts<sr)return null}catch{}try{s.unlinkSync(x)}catch{}try{let r=s.openSync(x,s.constants.O_CREAT|s.constants.O_EXCL|s.constants.O_WRONLY,384);s.writeSync(r,JSON.stringify({pid:process.pid,ts:Date.now()})),s.closeSync(r)}catch{return null}}return()=>{try{s.unlinkSync(x)}catch{}}}function me(){if(!s.existsSync(J))return null;try{let e=JSON.parse(s.readFileSync(J,"utf-8"));return e.baseUrl?e:null}catch{return null}}function zr(){let e=me();return e||(cr(j),j)}function F(){if(!s.existsSync(k))return null;let e=I();if(!e)return null;try{let r=JSON.parse(s.readFileSync(k,"utf-8")),t=z.parse(r),n=Z(t,e),o=JSON.parse(n);return!o.accessToken||!o.baseUrl?null:o}catch{return null}}function ar(e){let r=U(),t=Q(JSON.stringify(e),r);p(),ye(k,JSON.stringify(t,null,2),384)}function cr(e){p(),ye(J,JSON.stringify(e,null,2),384)}function Qr(){s.existsSync(k)&&s.unlinkSync(k)}function Zr(){let e=me(),r=F();return e?.baseUrl??r?.baseUrl??j.baseUrl}async function lr(e,r,t){let n=await fetch(`${e}/api/tools/${encodeURIComponent(r)}`,{method:"POST",signal:AbortSignal.timeout(15e3),headers:de(),body:JSON.stringify(t)}),o=await n.json();if(!n.ok){let a=o;throw new Error(a?.error??`${r} failed (${n.status})`)}return o}async function fr(e){if(!e.refreshToken)throw new Error("No refresh token available");let r=ir();if(!r){await new Promise(n=>setTimeout(n,2e3));let t=F();if(t&&t.expiresAt>Date.now())return t;throw new Error("Token refresh failed (concurrent refresh in progress)")}try{let t=F();if(t&&t.expiresAt>Date.now()+6e4)return t;let n=await lr(e.baseUrl,"refresh",{refreshToken:e.refreshToken}),o={accessToken:n.accessToken,refreshToken:n.refreshToken,expiresAt:n.expiresAt*1e3,baseUrl:e.baseUrl};return ar(o),o}finally{r()}}async function et(){let e=F();if(!e)return null;if(Date.now()>=e.expiresAt-dr){if(e.refreshToken)try{return(await fr(e)).accessToken}catch{return null}return null}return e.accessToken}var C,J,k,x,j,sr,dr,M=H(()=>{"use strict";ee();L();ue();C=K.join(pe.homedir(),".config","moonpay"),J=K.join(C,"config.json"),k=K.join(C,"credentials.json"),x=K.join(C,".credentials.lock"),j={baseUrl:"https://agents.moonpay.com"};sr=3e4;dr=300*1e3});import{existsSync as Y,readFileSync as ge,writeFileSync as ur,renameSync as he}from"fs";import{join as N}from"path";import{homedir as pr}from"os";import{randomBytes as yr}from"crypto";import*as i from"@open-wallet-standard/core";import we from"bs58";import{createHash as oe}from"crypto";import{HDKey as _}from"@scure/bip32";import{mnemonicToSeedSync as m}from"@scure/bip39";import{keccak_256 as B}from"@noble/hashes/sha3";import{derivePath as se}from"ed25519-hd-key";import*as ie from"bitcoinjs-lib";import Ce from"ecpair";import*as b from"tiny-secp256k1";import{Keypair as ke}from"@solana/web3.js";import Ke from"bs58";import{WalletContractV5R1 as Ee}from"@ton/ton";import{keyPairFromSeed as We}from"@ton/crypto";import*as ae from"@open-wallet-standard/core";var Ae=Ce(b);function ce(e,r,t=0){switch(r){case"solana":return _e(e,t);case"ethereum":return be(e,t);case"bitcoin":return Ie(e,t);case"tron":return Fe(e,t);case"ton":return Re(e,t);case"filecoin":return Pe(e,t)}}function _e(e,r){let t=m(e),n=`m/44'/501'/${r}'/0'`,{key:o}=se(n,Buffer.from(t).toString("hex")),a=ke.fromSeed(Uint8Array.from(o));return{privateKey:a.secretKey,address:a.publicKey.toBase58()}}function be(e,r){let t=m(e),n=_.fromMasterSeed(t),o=`m/44'/60'/${r}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive EVM private key");let c=Te(a.publicKey);return{privateKey:a.privateKey,address:c}}function Te(e){let r=b.pointCompress(e,!1),n=B(r.slice(1)).slice(-20),o="0x"+Buffer.from(n).toString("hex");return Oe(o)}function Oe(e){let r=e.toLowerCase().replace("0x",""),t=Buffer.from(B(Buffer.from(r,"utf8"))).toString("hex"),n="0x";for(let o=0;o<r.length;o++)n+=parseInt(t[o],16)>=8?r[o].toUpperCase():r[o];return n}function Ie(e,r){let t=m(e),n=_.fromMasterSeed(t),o=`m/84'/0'/${r}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive Bitcoin private key");let c=Ae.fromPrivateKey(Buffer.from(a.privateKey)),{address:y}=ie.payments.p2wpkh({pubkey:Buffer.from(c.publicKey)});if(!y)throw new Error("Failed to derive Bitcoin address");return{privateKey:a.privateKey,address:y}}function Fe(e,r){let t=m(e),n=_.fromMasterSeed(t),o=`m/44'/195'/${r}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive Tron private key");let c=Ne(a.publicKey);return{privateKey:a.privateKey,address:c}}function Ne(e){let r=b.pointCompress(e,!1),n=B(r.slice(1)).slice(-20),o=Buffer.concat([Buffer.from([65]),Buffer.from(n)]),a=oe("sha256").update(o).digest(),c=oe("sha256").update(a).digest(),y=Buffer.concat([o,c.slice(0,4)]);return Ke.encode(y)}function Re(e,r){let t=m(e),n=`m/44'/607'/${r}'/0'`,{key:o}=se(n,Buffer.from(t).toString("hex")),a=We(Buffer.from(o)),c=Ee.create({publicKey:Buffer.from(a.publicKey)});return{privateKey:a.secretKey,address:c.address.toString({bounceable:!1})}}function Pe(e,r){let t=m(e),n=_.fromMasterSeed(t),o=`m/44'/461'/${r}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive Filecoin private key");let c=ae.deriveAddress(e,"filecoin",r);return{privateKey:a.privateKey,address:c}}M();var R=N(pr(),".config","moonpay"),V=N(R,"hardware-wallets.json");function l(){return R}function mr(e){let r={};for(let t of e){let n=te[t.chainId];n&&(r[n]=t.address)}return r}function h(e){let r=mr(e.accounts);if(!r.filecoin)try{let t=i.exportWallet(e.id,null,l());t&&!t.startsWith("{")&&(r.filecoin=i.deriveAddress(t,"filecoin"))}catch{}return{name:e.name,type:"hd",addresses:r,createdAt:e.createdAt}}function u(){if(!Y(V))return[];try{return(JSON.parse(ge(V,"utf-8")).wallets??[]).map(r=>ne.parse(r))}catch{return[]}}function gr(e,r){p();let t=N(R,`.tmp.${yr(4).toString("hex")}`);ur(t,JSON.stringify(r,null,2),{mode:384}),he(t,e)}function w(e){gr(V,{wallets:e})}var E=N(R,"wallets.json");function G(){if(Y(E)){process.stderr.write(`Migrating legacy wallets...
3
+ `)),r}var g,v,O,L=H(()=>{"use strict";M();g="moonpay-cli",v="encryption-key",O=Me(Le(),".config","moonpay",".encryption-key")});import{readFileSync as Qe}from"fs";import{join as Ze}from"path";import{homedir as er}from"os";function or(){if(S!==void 0)return S;try{S=JSON.parse(Qe(Ze(er(),".config","moonpay","consent.json"),"utf-8")).agentId??null}catch{S=null}return S??null}function de(){let e={"Content-Type":"application/json",[tr]:rr},r=or();return r&&(e[nr]=r),e}var rr,tr,nr,S,ue=H(()=>{"use strict";rr="1.17.0",tr="X-CLI-Version",nr="X-Agent-Id"});import*as s from"fs";import*as pe from"os";import*as K from"path";function p(){s.existsSync(C)||s.mkdirSync(C,{recursive:!0,mode:448})}function ye(e,r,t){let n=e+`.tmp.${process.pid}`;s.writeFileSync(n,r,{encoding:"utf-8",mode:t}),s.renameSync(n,e)}function ir(){p();try{let e=s.openSync(x,s.constants.O_CREAT|s.constants.O_EXCL|s.constants.O_WRONLY,384);s.writeSync(e,JSON.stringify({pid:process.pid,ts:Date.now()})),s.closeSync(e)}catch(e){if(e.code!=="EEXIST")throw e;try{let r=JSON.parse(s.readFileSync(x,"utf-8"));if(Date.now()-r.ts<sr)return null}catch{}try{s.unlinkSync(x)}catch{}try{let r=s.openSync(x,s.constants.O_CREAT|s.constants.O_EXCL|s.constants.O_WRONLY,384);s.writeSync(r,JSON.stringify({pid:process.pid,ts:Date.now()})),s.closeSync(r)}catch{return null}}return()=>{try{s.unlinkSync(x)}catch{}}}function me(){if(!s.existsSync(J))return null;try{let e=JSON.parse(s.readFileSync(J,"utf-8"));return e.baseUrl?e:null}catch{return null}}function zr(){let e=me();return e||(cr(j),j)}function F(){if(!s.existsSync(k))return null;let e=I();if(!e)return null;try{let r=JSON.parse(s.readFileSync(k,"utf-8")),t=z.parse(r),n=Z(t,e),o=JSON.parse(n);return!o.accessToken||!o.baseUrl?null:o}catch{return null}}function ar(e){let r=U(),t=Q(JSON.stringify(e),r);p(),ye(k,JSON.stringify(t,null,2),384)}function cr(e){p(),ye(J,JSON.stringify(e,null,2),384)}function Qr(){s.existsSync(k)&&s.unlinkSync(k)}function Zr(){let e=me(),r=F();return e?.baseUrl??r?.baseUrl??j.baseUrl}async function lr(e,r,t){let n=await fetch(`${e}/api/tools/${encodeURIComponent(r)}`,{method:"POST",signal:AbortSignal.timeout(15e3),headers:de(),body:JSON.stringify(t)}),o=await n.json();if(!n.ok){let a=o;throw new Error(a?.error??`${r} failed (${n.status})`)}return o}async function fr(e){if(!e.refreshToken)throw new Error("No refresh token available");let r=ir();if(!r){await new Promise(n=>setTimeout(n,2e3));let t=F();if(t&&t.expiresAt>Date.now())return t;throw new Error("Token refresh failed (concurrent refresh in progress)")}try{let t=F();if(t&&t.expiresAt>Date.now()+6e4)return t;let n=await lr(e.baseUrl,"refresh",{refreshToken:e.refreshToken}),o={accessToken:n.accessToken,refreshToken:n.refreshToken,expiresAt:n.expiresAt*1e3,baseUrl:e.baseUrl};return ar(o),o}finally{r()}}async function et(){let e=F();if(!e)return null;if(Date.now()>=e.expiresAt-dr){if(e.refreshToken)try{return(await fr(e)).accessToken}catch{return null}return null}return e.accessToken}var C,J,k,x,j,sr,dr,M=H(()=>{"use strict";ee();L();ue();C=K.join(pe.homedir(),".config","moonpay"),J=K.join(C,"config.json"),k=K.join(C,"credentials.json"),x=K.join(C,".credentials.lock"),j={baseUrl:"https://agents.moonpay.com"};sr=3e4;dr=300*1e3});import{existsSync as Y,readFileSync as ge,writeFileSync as ur,renameSync as he}from"fs";import{join as N}from"path";import{homedir as pr}from"os";import{randomBytes as yr}from"crypto";import*as i from"@open-wallet-standard/core";import we from"bs58";import{createHash as oe}from"crypto";import{HDKey as _}from"@scure/bip32";import{mnemonicToSeedSync as m}from"@scure/bip39";import{keccak_256 as B}from"@noble/hashes/sha3";import{derivePath as se}from"ed25519-hd-key";import*as ie from"bitcoinjs-lib";import Ce from"ecpair";import*as b from"tiny-secp256k1";import{Keypair as ke}from"@solana/web3.js";import Ke from"bs58";import{WalletContractV5R1 as Ee}from"@ton/ton";import{keyPairFromSeed as We}from"@ton/crypto";import*as ae from"@open-wallet-standard/core";var Ae=Ce(b);function ce(e,r,t=0){switch(r){case"solana":return _e(e,t);case"ethereum":return be(e,t);case"bitcoin":return Ie(e,t);case"tron":return Fe(e,t);case"ton":return Re(e,t);case"filecoin":return Pe(e,t)}}function _e(e,r){let t=m(e),n=`m/44'/501'/${r}'/0'`,{key:o}=se(n,Buffer.from(t).toString("hex")),a=ke.fromSeed(Uint8Array.from(o));return{privateKey:a.secretKey,address:a.publicKey.toBase58()}}function be(e,r){let t=m(e),n=_.fromMasterSeed(t),o=`m/44'/60'/${r}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive EVM private key");let c=Te(a.publicKey);return{privateKey:a.privateKey,address:c}}function Te(e){let r=b.pointCompress(e,!1),n=B(r.slice(1)).slice(-20),o="0x"+Buffer.from(n).toString("hex");return Oe(o)}function Oe(e){let r=e.toLowerCase().replace("0x",""),t=Buffer.from(B(Buffer.from(r,"utf8"))).toString("hex"),n="0x";for(let o=0;o<r.length;o++)n+=parseInt(t[o],16)>=8?r[o].toUpperCase():r[o];return n}function Ie(e,r){let t=m(e),n=_.fromMasterSeed(t),o=`m/84'/0'/${r}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive Bitcoin private key");let c=Ae.fromPrivateKey(Buffer.from(a.privateKey)),{address:y}=ie.payments.p2wpkh({pubkey:Buffer.from(c.publicKey)});if(!y)throw new Error("Failed to derive Bitcoin address");return{privateKey:a.privateKey,address:y}}function Fe(e,r){let t=m(e),n=_.fromMasterSeed(t),o=`m/44'/195'/${r}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive Tron private key");let c=Ne(a.publicKey);return{privateKey:a.privateKey,address:c}}function Ne(e){let r=b.pointCompress(e,!1),n=B(r.slice(1)).slice(-20),o=Buffer.concat([Buffer.from([65]),Buffer.from(n)]),a=oe("sha256").update(o).digest(),c=oe("sha256").update(a).digest(),y=Buffer.concat([o,c.slice(0,4)]);return Ke.encode(y)}function Re(e,r){let t=m(e),n=`m/44'/607'/${r}'/0'`,{key:o}=se(n,Buffer.from(t).toString("hex")),a=We(Buffer.from(o)),c=Ee.create({publicKey:Buffer.from(a.publicKey)});return{privateKey:a.secretKey,address:c.address.toString({bounceable:!1})}}function Pe(e,r){let t=m(e),n=_.fromMasterSeed(t),o=`m/44'/461'/${r}'/0/0`,a=n.derive(o);if(!a.privateKey)throw new Error("Failed to derive Filecoin private key");let c=ae.deriveAddress(e,"filecoin",r);return{privateKey:a.privateKey,address:c}}M();var R=N(pr(),".config","moonpay"),V=N(R,"hardware-wallets.json");function l(){return R}function mr(e){let r={};for(let t of e){let n=te[t.chainId];n&&(r[n]=t.address)}return r}function h(e){let r=mr(e.accounts);if(!r.filecoin)try{let t=i.exportWallet(e.id,null,l());t&&!t.startsWith("{")&&(r.filecoin=i.deriveAddress(t,"filecoin"))}catch{}return{name:e.name,type:"hd",addresses:r,createdAt:e.createdAt}}function u(){if(!Y(V))return[];try{return(JSON.parse(ge(V,"utf-8")).wallets??[]).map(r=>ne.parse(r))}catch{return[]}}function gr(e,r){p();let t=N(R,`.tmp.${yr(4).toString("hex")}`);ur(t,JSON.stringify(r,null,2),{mode:384}),he(t,e)}function w(e){gr(V,{wallets:e})}var E=N(R,"wallets.json");function G(){if(Y(E)){process.stderr.write(`Migrating legacy wallets...
4
4
  `);let{migrated:e,skipped:r}=hr();process.stderr.write(`Migrated ${e} wallet(s), skipped ${r}.
5
5
  `)}}function hr(){if(!Y(E))throw new Error("No legacy wallets.json found \u2014 nothing to migrate.");let{getEncryptionKey:e}=(L(),q(fe)),{decrypt:r,encryptedFileSchema:t}=(ee(),q(xe)),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(ge(E,"utf-8")),a=t.parse(o),c=r(a,n),y=JSON.parse(c).wallets??[],P=l(),A=u(),X=0,$=0;for(let f of y){try{i.getWallet(f.name,P),$++;continue}catch{}if(A.some(d=>d.name===f.name)){$++;continue}if(f.type==="hardware")A.push({name:f.name,type:"hardware",device:f.device,addresses:f.addresses,createdAt:f.createdAt});else if(f.type==="hd"&&f.mnemonic)i.importWalletMnemonic(f.name,f.mnemonic,null,null,P);else if(f.type==="imported"&&f.privateKey){let d=f.privateKey;if(!/^[0-9a-fA-F]+$/.test(d)){let D=we.decode(d);d=Buffer.from(D.length===64?D.slice(0,32):D).toString("hex")}i.importWalletPrivateKey(f.name,d,null,P,null,d,d)}X++}return A.length>0&&w(A),he(E,E+".migrated"),{migrated:X,skipped:$}}function wr(e){G(),W(e);let r=i.createWallet(e,null,24,l());return h(r)}function vr(e,r){W(e);let t=i.importWalletMnemonic(e,r,null,null,l());return h(t)}function Sr(e,r){return W(e),h(i.importWalletPrivateKey(e,r,null,l()))}function xr(){G();let e=[];try{e=i.listWallets(l())}catch{}return[...e.map(t=>h(t)),...u()]}function Cr(e){G();let r=l();try{let t=i.getWallet(e,r);return h(t)}catch{}try{for(let t of i.listWallets(r))for(let n of t.accounts)if(n.address===e)return h(t)}catch{}for(let t of u()){if(t.name===e)return t;for(let n of Object.values(t.addresses))if(n===e)return t}return null}function ft(e){let r=Cr(e);if(!r)throw new Error(`Wallet "${e}" not found`);return r}function kr(e){try{i.deleteWallet(e,l());return}catch{}let r=u(),t=r.findIndex(n=>n.name===e);if(t===-1)throw new Error(`Wallet "${e}" not found`);r.splice(t,1),w(r)}function dt(e,r){if(e===r)return;W(r);try{i.getWallet(e,l()),i.renameWallet(e,r,l());return}catch(o){if(o instanceof Error&&!o.message.includes("not found"))throw o}let t=u(),n=t.find(o=>o.name===e);if(!n)throw new Error(`Wallet "${e}" not found`);n.name=r,w(t)}function ut(e){return i.exportWallet(e,null,l())}function Kr(e){W(e.name);let r=u();r.push(e),w(r)}function pt(e,r){let t=u(),n=t.find(o=>o.name===e);if(!n)throw new Error(`Hardware wallet "${e}" not found`);n.addresses=r,w(t)}function yt(e,r,t){return i.signTransaction(e,r,t,null,null,l())}function mt(e,r,t,n){return i.signMessage(e,r,t,null,n??null,null,l())}function gt(e,r,t){return i.signTypedData(e,r,t,null,null,l())}function ht(e,r){if(e.type==="hardware")throw new Error(`Wallet "${e.name}" is a hardware wallet. Signing must happen on the device.`);let t=re[r],n=i.exportWallet(e.name,null,l());if(n.includes(" "))return ce(n,t);let o;if(n.startsWith("{")){let c=JSON.parse(n);o=t==="solana"||t==="ton"?c.ed25519:c.secp256k1}else o=n;let a=Uint8Array.from(Buffer.from(o,"hex"));if(t==="solana"&&a.length===32){let c=ve("tweetnacl");a=Uint8Array.from(c.sign.keyPair.fromSeed(a).secretKey)}return{privateKey:a,address:e.addresses[t]??""}}var Er=xr,wt=kr;function Wr(e){if(e.type==="hardware"){Kr(e);return}if(e.type==="hd"&&e.mnemonic){vr(e.name,e.mnemonic);return}if(e.type==="imported"&&e.privateKey){let r=e.privateKey;if(r.startsWith("0x"))r=r.slice(2);else if(!/^[0-9a-fA-F]+$/.test(r)){let t=we.decode(r);r=Buffer.from(t.length===64?t.slice(0,32):t).toString("hex")}Sr(e.name,r);return}wr(e.name)}function vt(e){for(let r of e)Wr(r)}function St(e){let r=Er();e(r),w(r.filter(t=>t.type==="hardware"))}function W(e){try{throw i.getWallet(e,l()),new Error(`Wallet "${e}" already exists`)}catch(r){if(r instanceof Error&&r.message.includes("already exists"))throw r}if(u().some(r=>r.name===e))throw new Error(`Wallet "${e}" already exists`)}export{rr as a,de as b,ue as c,p as d,zr as e,F as f,ar as g,Qr as h,Zr as i,fr as j,et as k,M as l,ce as m,l as n,G as o,hr as p,wr as q,vr as r,Sr as s,xr as t,Cr as u,ft as v,kr as w,dt as x,ut as y,Kr as z,pt as A,yt as B,mt as C,gt as D,ht as E,Er as F,wt as G,Wr as H,vt as I,St as J};
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  process.noDeprecation = true; import { createRequire as __createRequire } from "module"; const require = __createRequire(import.meta.url);
3
- import{a as A,b as S,c as J,d as j,e as O}from"./chunk-EBDUG4KJ.js";import{a as C,c as q,u as v}from"./chunk-YJWSYQVX.js";import{g as R}from"./chunk-TPAYGT4L.js";import"./chunk-LMDE72OE.js";import{Command as ne}from"commander";var Y=!process.env.NO_COLOR&&process.stdout.isTTY===!0;function _(e){return t=>Y?`${e}${t}\x1B[0m`:t}var p={bold:_("\x1B[1m"),dim:_("\x1B[2m"),green:_("\x1B[32m"),yellow:_("\x1B[33m"),cyan:_("\x1B[36m"),red:_("\x1B[31m")};function k(e){if(e==null)return!0;let t=typeof e;return t==="string"||t==="number"||t==="boolean"}function $(e){return e==null?"-":String(e)}function N(e,t=0){let n=" ".repeat(t);return k(e)?`${n}${$(e)}`:Array.isArray(e)?e.length===0?`${n}${p.dim("(empty)")}`:e.every(k)?e.map(r=>`${n}- ${$(r)}`).join(`
3
+ import{a as A,b as S,c as J,d as j,e as O}from"./chunk-PB5YB5HQ.js";import{a as C,c as q,u as v}from"./chunk-PL4KOOBO.js";import{g as R}from"./chunk-TPAYGT4L.js";import"./chunk-LMDE72OE.js";import{Command as ne}from"commander";var Y=!process.env.NO_COLOR&&process.stdout.isTTY===!0;function _(e){return t=>Y?`${e}${t}\x1B[0m`:t}var p={bold:_("\x1B[1m"),dim:_("\x1B[2m"),green:_("\x1B[32m"),yellow:_("\x1B[33m"),cyan:_("\x1B[36m"),red:_("\x1B[31m")};function k(e){if(e==null)return!0;let t=typeof e;return t==="string"||t==="number"||t==="boolean"}function $(e){return e==null?"-":String(e)}function N(e,t=0){let n=" ".repeat(t);return k(e)?`${n}${$(e)}`:Array.isArray(e)?e.length===0?`${n}${p.dim("(empty)")}`:e.every(k)?e.map(r=>`${n}- ${$(r)}`).join(`
4
4
  `):e.map(r=>{if(typeof r!="object"||r===null)return`${n}- ${$(r)}`;let s=Object.entries(r),a=[],[c,l]=s[0];k(l)?a.push(`${n}- ${p.bold(c)}: ${$(l)}`):(a.push(`${n}- ${p.bold(c)}:`),a.push(N(l,t+2)));for(let[u,y]of s.slice(1))k(y)?a.push(`${n} ${p.bold(u)}: ${$(y)}`):(a.push(`${n} ${p.bold(u)}:`),a.push(N(y,t+2)));return a.join(`
5
5
  `)}).join(`
6
6
 
@@ -14,5 +14,5 @@ ${N(a,t+1)}`).join(`
14
14
 
15
15
  Run \`mp skill install\` to install AI skills for Claude Code.
16
16
 
17
- `+J).version(C).option("--json","Output as JSON instead of YAML");function oe(){return h.opts().json?"json":"yaml"}function L(e){console.log(T(e,oe()))}function D(){let e=te();e&&process.stderr.write(e)}h.command("mcp").description("Start MCP server over stdio (for Claude Desktop, Claude Code, etc.)").action(async()=>{let{startMcpServer:e}=await import("./mcp-PDPL4XLE.js");await e()});function M(e,t){let n=e;for(let r of t){let s=n.commands.find(a=>a.name()===r);s||(s=n.command(r)),n=s}return n}function Z(e,t=""){let n=[];for(let[r,s]of Object.entries(e)){let a=t?`${t}-${r}`:r,c=s;for(;c._def.typeName==="ZodEffects";)c=c._def.schema;let l=c;l._def.typeName==="ZodNullable"&&(l=l._def.innerType),l._def.typeName==="ZodObject"&&l.shape?n.push(...Z(l.shape,a)):n.push({flatKey:a,field:s,path:a.split("-")})}return n}function re(e,t){let n={};for(let{flatKey:r,path:s}of t){let a=r.replace(/-([a-z])/g,(l,u)=>u.toUpperCase()),c=a in e?e[a]:e[r];if(s.length===1)n[s[0]]=c;else{let l=n;for(let u=0;u<s.length-1;u++)(!l[s[u]]||typeof l[s[u]]!="object")&&(l[s[u]]={}),l=l[s[u]];l[s[s.length-1]]=c}}return n}function se(e,t){for(let n of t){let r=n.schema.name.split("_"),s=r.pop(),c=M(e,r).command(s).description(n.schema.description),l=n.schema.input.shape??{},u=Z(l),y=[],b=[],w=[];for(let{flatKey:f,field:i}of u){let o=i.description??f,m=i;for(;m._def.typeName==="ZodEffects";)m=m._def.schema;let g=m._def.typeName,d=m;d._def.typeName==="ZodNullable"&&(d=d._def.innerType),d._def.typeName==="ZodNumber"&&b.push(f),d._def.typeName==="ZodRecord"&&w.push(f),g==="ZodBoolean"?c.option(`--${f}`,o,!1):g==="ZodNullable"?(c.option(`--${f} <${f}>`,o),y.push(f)):c.requiredOption(`--${f} <${f}>`,o)}c.action(async f=>{n.schema.name.startsWith("consent_")||await j.handler({});for(let o of y){let m=o.replace(/-([a-z])/g,(g,d)=>d.toUpperCase());f[m]===void 0&&(f[m]=null)}for(let o of b){let m=o.replace(/-([a-z])/g,(g,d)=>d.toUpperCase());f[m]!=null&&typeof f[m]=="string"&&(f[m]=Number(f[m]))}for(let o of w){let m=o.replace(/-([a-z])/g,(g,d)=>d.toUpperCase());if(typeof f[m]=="string")try{f[m]=JSON.parse(f[m])}catch{console.error(`Invalid JSON for --${o}`),process.exit(1)}}let i=re(f,u);try{let o=await n.handler(i);L(o)}catch(o){console.error(o instanceof Error?o.message:String(o)),process.exit(1)}})}}function ie(e){if(e.$ref&&e.definitions){let t=e.$ref.replace("#/definitions/","");return e.definitions[t]}return e}function ae(e){return Array.isArray(e.type)?e.type.includes("null"):e.anyOf?e.anyOf.some(t=>t.type==="null"):!1}function ce(e){return Array.isArray(e.type)?e.type.includes("object"):e.anyOf?e.anyOf.some(t=>t.type==="object"):e.type==="object"}function le(e){return Array.isArray(e.type)?e.type.some(t=>t==="number"||t==="integer"):e.anyOf?e.anyOf.some(t=>t.type==="number"||t.type==="integer"):e.type==="number"||e.type==="integer"}function fe(e){let t=e.wallet,n=e.chain;if(typeof t!="string"||typeof n!="string")return;let r=v(t);if(!r)return;let s=R[n];if(!s)return;let a=r.addresses[s];a&&(e.wallet=a)}var U=new Set(["swaps_transaction_build","token_transfer","transaction_register","virtual-account_offramp_initiate","prediction-market_position_buy","prediction-market_position_sell","prediction-market_position_redeem","commerce_cart_update","commerce_checkout_start","commerce_checkout_pay"]);function me(e,t){for(let n of t){if(U.has(n.name))continue;let r=n.name.split("_"),s=r.pop(),a=M(e,r);if(a.commands.find(i=>i.name()===s))continue;let c=a.command(s).description(n.description),l=ie(n.inputSchema),u=l.properties??{},y=new Set(l.required??[]),b=[],w=[],f=[];for(let[i,o]of Object.entries(u)){let m=o.description??i,g=ae(o),d=ce(o);le(o)&&w.push(i),d?(f.push(i),y.has(i)&&!g?c.requiredOption(`--${i} <json>`,`${m} (as JSON)`):(c.option(`--${i} <json>`,`${m} (as JSON)`),b.push(i))):g||!y.has(i)?(c.option(`--${i} <${i}>`,m),b.push(i)):c.requiredOption(`--${i} <${i}>`,m)}c.action(async i=>{await j.handler({});for(let o of b)i[o]===void 0&&(i[o]=null);for(let o of w)i[o]!=null&&typeof i[o]=="string"&&(i[o]=Number(i[o]));for(let o of f)if(typeof i[o]=="string")try{i[o]=JSON.parse(i[o])}catch{console.error(`Invalid JSON for --${o}`),process.exit(1)}try{fe(i);let o=await A._call(n.name,i);L(o),D()}catch(o){console.error(o instanceof Error?o.message:String(o)),process.exit(1)}})}}se(h,O);me(h,S);h.command("tools").description("List available tools").action(()=>{let e=[...O.map(n=>({name:n.schema.name,description:n.schema.description})),...S.filter(n=>!O.some(r=>r.schema.name===n.name)&&!U.has(n.name)).map(n=>({name:n.name,description:n.description}))].sort((n,r)=>n.name.localeCompare(r.name)),t=[];for(let n of e){let r=n.name.replace(/_/g," ");t.push(` ${p.green(r.padEnd(28))} ${p.dim(n.description)}`)}t.push(""),t.push(p.dim(`${e.length} tools`)),console.log(t.join(`
17
+ `+J).version(C).option("--json","Output as JSON instead of YAML");function oe(){return h.opts().json?"json":"yaml"}function L(e){console.log(T(e,oe()))}function D(){let e=te();e&&process.stderr.write(e)}h.command("mcp").description("Start MCP server over stdio (for Claude Desktop, Claude Code, etc.)").action(async()=>{let{startMcpServer:e}=await import("./mcp-MQ5G475D.js");await e()});function M(e,t){let n=e;for(let r of t){let s=n.commands.find(a=>a.name()===r);s||(s=n.command(r)),n=s}return n}function Z(e,t=""){let n=[];for(let[r,s]of Object.entries(e)){let a=t?`${t}-${r}`:r,c=s;for(;c._def.typeName==="ZodEffects";)c=c._def.schema;let l=c;l._def.typeName==="ZodNullable"&&(l=l._def.innerType),l._def.typeName==="ZodObject"&&l.shape?n.push(...Z(l.shape,a)):n.push({flatKey:a,field:s,path:a.split("-")})}return n}function re(e,t){let n={};for(let{flatKey:r,path:s}of t){let a=r.replace(/-([a-z])/g,(l,u)=>u.toUpperCase()),c=a in e?e[a]:e[r];if(s.length===1)n[s[0]]=c;else{let l=n;for(let u=0;u<s.length-1;u++)(!l[s[u]]||typeof l[s[u]]!="object")&&(l[s[u]]={}),l=l[s[u]];l[s[s.length-1]]=c}}return n}function se(e,t){for(let n of t){let r=n.schema.name.split("_"),s=r.pop(),c=M(e,r).command(s).description(n.schema.description),l=n.schema.input.shape??{},u=Z(l),y=[],b=[],w=[];for(let{flatKey:f,field:i}of u){let o=i.description??f,m=i;for(;m._def.typeName==="ZodEffects";)m=m._def.schema;let g=m._def.typeName,d=m;d._def.typeName==="ZodNullable"&&(d=d._def.innerType),d._def.typeName==="ZodNumber"&&b.push(f),d._def.typeName==="ZodRecord"&&w.push(f),g==="ZodBoolean"?c.option(`--${f}`,o,!1):g==="ZodNullable"?(c.option(`--${f} <${f}>`,o),y.push(f)):c.requiredOption(`--${f} <${f}>`,o)}c.action(async f=>{n.schema.name.startsWith("consent_")||await j.handler({});for(let o of y){let m=o.replace(/-([a-z])/g,(g,d)=>d.toUpperCase());f[m]===void 0&&(f[m]=null)}for(let o of b){let m=o.replace(/-([a-z])/g,(g,d)=>d.toUpperCase());f[m]!=null&&typeof f[m]=="string"&&(f[m]=Number(f[m]))}for(let o of w){let m=o.replace(/-([a-z])/g,(g,d)=>d.toUpperCase());if(typeof f[m]=="string")try{f[m]=JSON.parse(f[m])}catch{console.error(`Invalid JSON for --${o}`),process.exit(1)}}let i=re(f,u);try{let o=await n.handler(i);L(o)}catch(o){console.error(o instanceof Error?o.message:String(o)),process.exit(1)}})}}function ie(e){if(e.$ref&&e.definitions){let t=e.$ref.replace("#/definitions/","");return e.definitions[t]}return e}function ae(e){return Array.isArray(e.type)?e.type.includes("null"):e.anyOf?e.anyOf.some(t=>t.type==="null"):!1}function ce(e){return Array.isArray(e.type)?e.type.includes("object"):e.anyOf?e.anyOf.some(t=>t.type==="object"):e.type==="object"}function le(e){return Array.isArray(e.type)?e.type.some(t=>t==="number"||t==="integer"):e.anyOf?e.anyOf.some(t=>t.type==="number"||t.type==="integer"):e.type==="number"||e.type==="integer"}function fe(e){let t=e.wallet,n=e.chain;if(typeof t!="string"||typeof n!="string")return;let r=v(t);if(!r)return;let s=R[n];if(!s)return;let a=r.addresses[s];a&&(e.wallet=a)}var U=new Set(["swaps_transaction_build","token_transfer","transaction_register","virtual-account_offramp_initiate","prediction-market_position_buy","prediction-market_position_sell","prediction-market_position_redeem","commerce_cart_update","commerce_checkout_start","commerce_checkout_pay"]);function me(e,t){for(let n of t){if(U.has(n.name))continue;let r=n.name.split("_"),s=r.pop(),a=M(e,r);if(a.commands.find(i=>i.name()===s))continue;let c=a.command(s).description(n.description),l=ie(n.inputSchema),u=l.properties??{},y=new Set(l.required??[]),b=[],w=[],f=[];for(let[i,o]of Object.entries(u)){let m=o.description??i,g=ae(o),d=ce(o);le(o)&&w.push(i),d?(f.push(i),y.has(i)&&!g?c.requiredOption(`--${i} <json>`,`${m} (as JSON)`):(c.option(`--${i} <json>`,`${m} (as JSON)`),b.push(i))):g||!y.has(i)?(c.option(`--${i} <${i}>`,m),b.push(i)):c.requiredOption(`--${i} <${i}>`,m)}c.action(async i=>{await j.handler({});for(let o of b)i[o]===void 0&&(i[o]=null);for(let o of w)i[o]!=null&&typeof i[o]=="string"&&(i[o]=Number(i[o]));for(let o of f)if(typeof i[o]=="string")try{i[o]=JSON.parse(i[o])}catch{console.error(`Invalid JSON for --${o}`),process.exit(1)}try{fe(i);let o=await A._call(n.name,i);L(o),D()}catch(o){console.error(o instanceof Error?o.message:String(o)),process.exit(1)}})}}se(h,O);me(h,S);h.command("tools").description("List available tools").action(()=>{let e=[...O.map(n=>({name:n.schema.name,description:n.schema.description})),...S.filter(n=>!O.some(r=>r.schema.name===n.name)&&!U.has(n.name)).map(n=>({name:n.name,description:n.description}))].sort((n,r)=>n.name.localeCompare(r.name)),t=[];for(let n of e){let r=n.name.replace(/_/g," ");t.push(` ${p.green(r.padEnd(28))} ${p.dim(n.description)}`)}t.push(""),t.push(p.dim(`${e.length} tools`)),console.log(t.join(`
18
18
  `)),D()});h.parse();
@@ -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,b as f,e as u}from"./chunk-EBDUG4KJ.js";import{a as l,c as R}from"./chunk-YJWSYQVX.js";import"./chunk-TPAYGT4L.js";import"./chunk-LMDE72OE.js";import{Server as N}from"@modelcontextprotocol/sdk/server/index.js";import{StdioServerTransport as O}from"@modelcontextprotocol/sdk/server/stdio.js";import{CallToolRequestSchema as T,ListToolsRequestSchema as x}from"@modelcontextprotocol/sdk/types.js";import{zodToJsonSchema as k}from"zod-to-json-schema";R();var y=new Map(u.map(s=>[s.schema.name,s]));function q(s){let n=s.inputSchema;if(n.$ref&&n.definitions){let c=n.$ref.replace("#/definitions/","");return n.definitions[c]??n}return n}async function P(){let s=new N({name:"moonpay",version:l},{capabilities:{tools:{listChanged:!0}}}),n=u.map(e=>({name:e.schema.name,description:e.schema.description,inputSchema:k(e.schema.input)})),c=new Map;for(let e of f){if(y.has(e.name))continue;let t=q(e);c.set(e.name,t.properties??{}),n.push({name:e.name,description:e.description,inputSchema:{type:"object",properties:t.properties??{},...t.required?{required:t.required}:{},...t.additionalProperties!==void 0?{additionalProperties:t.additionalProperties}:{}}})}let h=new Map(n.map(e=>[e.name,e]));s.setRequestHandler(x,async()=>({tools:n.map(e=>({name:e.name,description:e.description,inputSchema:e.inputSchema}))})),s.setRequestHandler(T,async e=>{let{name:t,arguments:o={}}=e.params;if(!h.has(t))return{content:[{type:"text",text:`Unknown tool: ${t}`}],isError:!0};try{let i=y.get(t);if(i){let p=i.schema.input.shape??{};for(let[m,a]of Object.entries(p))o[m]===void 0&&a._def.typeName==="ZodNullable"&&(o[m]=null);let r=await i.handler(o);return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}let S=c.get(t)??{};for(let[p,r]of Object.entries(S))o[p]===void 0&&(Array.isArray(r.type)?r.type.includes("null"):r.anyOf?.some(w=>w.type==="null"))&&(o[p]=null),(r.type==="number"||r.type==="integer"||Array.isArray(r.type)&&r.type.some(a=>a==="number"||a==="integer")||r.anyOf?.some(a=>a.type==="number"||a.type==="integer"))&&typeof o[p]=="string"&&(o[p]=Number(o[p]));let b=await d._call(t,o);return{content:[{type:"text",text:JSON.stringify(b,null,2)}]}}catch(i){return{content:[{type:"text",text:i instanceof Error?i.message:String(i)}],isError:!0}}});let g=new O;await s.connect(g)}export{P as startMcpServer};
2
+ import{a as d,b as f,e as u}from"./chunk-PB5YB5HQ.js";import{a as l,c as R}from"./chunk-PL4KOOBO.js";import"./chunk-TPAYGT4L.js";import"./chunk-LMDE72OE.js";import{Server as N}from"@modelcontextprotocol/sdk/server/index.js";import{StdioServerTransport as O}from"@modelcontextprotocol/sdk/server/stdio.js";import{CallToolRequestSchema as T,ListToolsRequestSchema as x}from"@modelcontextprotocol/sdk/types.js";import{zodToJsonSchema as k}from"zod-to-json-schema";R();var y=new Map(u.map(s=>[s.schema.name,s]));function q(s){let n=s.inputSchema;if(n.$ref&&n.definitions){let c=n.$ref.replace("#/definitions/","");return n.definitions[c]??n}return n}async function P(){let s=new N({name:"moonpay",version:l},{capabilities:{tools:{listChanged:!0}}}),n=u.map(e=>({name:e.schema.name,description:e.schema.description,inputSchema:k(e.schema.input)})),c=new Map;for(let e of f){if(y.has(e.name))continue;let t=q(e);c.set(e.name,t.properties??{}),n.push({name:e.name,description:e.description,inputSchema:{type:"object",properties:t.properties??{},...t.required?{required:t.required}:{},...t.additionalProperties!==void 0?{additionalProperties:t.additionalProperties}:{}}})}let h=new Map(n.map(e=>[e.name,e]));s.setRequestHandler(x,async()=>({tools:n.map(e=>({name:e.name,description:e.description,inputSchema:e.inputSchema}))})),s.setRequestHandler(T,async e=>{let{name:t,arguments:o={}}=e.params;if(!h.has(t))return{content:[{type:"text",text:`Unknown tool: ${t}`}],isError:!0};try{let i=y.get(t);if(i){let p=i.schema.input.shape??{};for(let[m,a]of Object.entries(p))o[m]===void 0&&a._def.typeName==="ZodNullable"&&(o[m]=null);let r=await i.handler(o);return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}let S=c.get(t)??{};for(let[p,r]of Object.entries(S))o[p]===void 0&&(Array.isArray(r.type)?r.type.includes("null"):r.anyOf?.some(w=>w.type==="null"))&&(o[p]=null),(r.type==="number"||r.type==="integer"||Array.isArray(r.type)&&r.type.some(a=>a==="number"||a==="integer")||r.anyOf?.some(a=>a.type==="number"||a.type==="integer"))&&typeof o[p]=="string"&&(o[p]=Number(o[p]));let b=await d._call(t,o);return{content:[{type:"text",text:JSON.stringify(b,null,2)}]}}catch(i){return{content:[{type:"text",text:i instanceof Error?i.message:String(i)}],isError:!0}}});let g=new O;await s.connect(g)}export{P as startMcpServer};
@@ -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 n,B as o,C as p,D as q,E as r,F as s,G as t,H as u,I as v,J as w,n as a,o as b,p as c,q as d,r as e,s as f,t as g,u as h,v as i,w as j,x as k,y as l,z as m}from"./chunk-YJWSYQVX.js";import"./chunk-TPAYGT4L.js";import"./chunk-LMDE72OE.js";export{m as addHardwareWallet,u as addWallet,d as createWallet,j as deleteWallet,l as exportSecret,h as findWallet,i as findWalletOrThrow,a as getVaultPath,e as importMnemonic,f as importPrivateKey,g as listWallets,s as loadWallets,c as migrateWallets,w as mutateWallets,p as owsSignMessage,o as owsSignTransaction,q as owsSignTypedData,n as refreshHardwareAddresses,t as removeWallet,k as renameWallet,b as requireMigrationCheck,r as resolveSigningKey,v as saveWallets};
2
+ import{A as n,B as o,C as p,D as q,E as r,F as s,G as t,H as u,I as v,J as w,n as a,o as b,p as c,q as d,r as e,s as f,t as g,u as h,v as i,w as j,x as k,y as l,z as m}from"./chunk-PL4KOOBO.js";import"./chunk-TPAYGT4L.js";import"./chunk-LMDE72OE.js";export{m as addHardwareWallet,u as addWallet,d as createWallet,j as deleteWallet,l as exportSecret,h as findWallet,i as findWalletOrThrow,a as getVaultPath,e as importMnemonic,f as importPrivateKey,g as listWallets,s as loadWallets,c as migrateWallets,w as mutateWallets,p as owsSignMessage,o as owsSignTransaction,q as owsSignTypedData,n as refreshHardwareAddresses,t as removeWallet,k as renameWallet,b as requireMigrationCheck,r as resolveSigningKey,v as saveWallets};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moonpay/cli",
3
- "version": "1.16.2",
3
+ "version": "1.17.0",
4
4
  "description": "MoonPay CLI — how agents move money",
5
5
  "homepage": "https://agents.moonpay.com",
6
6
  "publishConfig": {