@swapkit/toolboxes 4.26.1 → 4.27.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # @swapkit/toolboxes
2
2
 
3
+ ## 4.27.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#338](https://github.com/swapkit/sdk/pull/338) [`b93b9cd`](https://github.com/swapkit/sdk/commit/b93b9cd04730e728cb2c9de0b7e1e19a0951e46b) Thanks [@towanTG](https://github.com/towanTG)! - Allow already-fetched Aleo records to be passed directly to `unshield({ records })` as an alternative to the transaction-scoped `unshield({ transactionId })` form. Callers that fetch records for display (e.g. a wallet UI showing shielded balances from known swap-delivery transactions via `getRecords`) can unshield those exact records without a second lookup. Spent records are filtered out; the split/fee-record/prove/broadcast flow and the `splitTransactionId` resume semantics are unchanged.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies []:
12
+ - @swapkit/helpers@4.19.1
13
+
3
14
  ## 4.26.1
4
15
 
5
16
  ### Patch Changes
@@ -1 +1 @@
1
- var CJ=Object.create;var{getPrototypeOf:vJ,defineProperty:F,getOwnPropertyNames:zJ,getOwnPropertyDescriptor:TJ}=Object,HJ=Object.prototype.hasOwnProperty;function WJ(J){return this[J]}var SJ,hJ,cJ=(J,Q,Z)=>{var H=J!=null&&typeof J==="object";if(H){var z=Q?SJ??=new WeakMap:hJ??=new WeakMap,L=z.get(J);if(L)return L}Z=J!=null?CJ(vJ(J)):{};let U=Q||!J||!J.__esModule?F(Z,"default",{value:J,enumerable:!0}):Z;for(let D of zJ(J))if(!HJ.call(U,D))F(U,D,{get:WJ.bind(J,D),enumerable:!0});if(H)z.set(J,U);return U},IJ=(J)=>{var Q=(YJ??=new WeakMap).get(J),Z;if(Q)return Q;if(Q=F({},"__esModule",{value:!0}),J&&typeof J==="object"||typeof J==="function"){for(var H of zJ(J))if(!HJ.call(Q,H))F(Q,H,{get:WJ.bind(J,H),enumerable:!(Z=TJ(J,H))||Z.enumerable})}return YJ.set(J,Q),Q},YJ;var mJ=(J)=>J;function RJ(J,Q){this[J]=mJ.bind(null,Q)}var AJ=(J,Q)=>{for(var Z in Q)F(J,Z,{get:Q[Z],enumerable:!0,configurable:!0,set:RJ.bind(Q,Z)})};var S=(J,Q)=>()=>(J&&(Q=J(J=0)),Q);function i(J,Q){if(!M(J))return[];let Z=M(J.transaction)?J.transaction:J,H=Z.execution,z=M(Z.fee)?Z.fee.transition:void 0;return[...M(H)&&Array.isArray(H.transitions)?H.transitions:[],...M(z)?[z]:[]].flatMap((U)=>{if(!M(U)||!Array.isArray(U.outputs))return[];if(Q&&U.program!==Q)return[];return U.outputs.flatMap((D)=>M(D)&&D.type==="record"&&typeof D.value==="string"?[D.value]:[])})}function n(J){return J.reduce((Q,Z)=>Z.spent?Q:Q+Z.microcredits,0n)}function b(J,Q){return Q instanceof j.SwapKitError&&Q.errorKey.startsWith("toolbox_aleo_")?Q:new j.SwapKitError(J,Q)}function EJ(...J){let Q=J.reduce((z,L)=>z+L.length,0),Z=new Uint8Array(Q),H=0;for(let z of J)Z.set(z,H),H+=z.length;return Z}function gJ(J){let Q=new Uint8Array(4);return new DataView(Q.buffer).setUint32(0,J,!1),Q}function GJ(J){let Q=p.hmac(l.sha512,jJ,J);return{chainCode:Q.slice(32),key:Q.slice(0,32)}}function LJ(J,Q){if(!Number.isSafeInteger(Q)||Q<0||Q>=u)throw new j.SwapKitError("toolbox_aleo_wasm_init_failed",{index:Q});let Z=Q+u,H=EJ(Uint8Array.of(0),J.key,gJ(Z)),z=p.hmac(l.sha512,J.chainCode,H);return{chainCode:z.slice(32),key:z.slice(0,32)}}function o(J,Q){let Z=J.split("/");if(Z.shift()!=="m"||Z.length===0)throw new j.SwapKitError("toolbox_aleo_wasm_init_failed",{path:J});return Z.reduce((H,z)=>{if(!/^\d+'$/.test(z))throw new j.SwapKitError("toolbox_aleo_wasm_init_failed",{path:J,segment:z});return LJ(H,Number.parseInt(z.slice(0,-1),10))},GJ(Q))}function _(J){return typeof J==="string"&&XJ.test(J)}async function s(J){if(!_(J))return!1;try{let{Account:Q}=await import("@provablehq/sdk/mainnet.js");return Q.isValidAddress(J)}catch{return!1}}function UJ(J){return qJ.test(J)}function t(J,Q){if(J===null)return 0n;if(typeof J!=="string")throw new j.SwapKitError("toolbox_aleo_balance_error",{integerType:Q,value:J});let Z=J.match(new RegExp(`^(\\d+)${Q}$`));if(!Z?.[1])throw new j.SwapKitError("toolbox_aleo_balance_error",{integerType:Q,value:J});return BigInt(Z[1])}function m(J){if(J.chain!==j.Chain.Aleo)throw new j.SwapKitError("toolbox_aleo_unsupported_token",{asset:J.toString()});let Q=J.getBaseValue("bigint");if(J.isGasAsset)return{amount:`${Q}u64`,functionName:h,isTokenTransfer:!1,programName:y};if(!J.address||!UJ(J.address))throw new j.SwapKitError("toolbox_aleo_unsupported_token",{asset:J.toString()});return{amount:`${Q}u128`,functionName:h,isTokenTransfer:!0,programName:J.address}}function P(){let J=[...new Set([...j.SKConfig.get("rpcUrls")[j.Chain.Aleo],...j.getChainConfig(j.Chain.Aleo).rpcUrls])].filter(Boolean);if(J.length===0)throw new j.SwapKitError("toolbox_aleo_no_rpc_urls");return J}function R(J){if(typeof J==="object"&&J!==null&&"status"in J&&J.status===404)return!0;return J instanceof Error&&J.message.includes("404")}function M(J){return typeof J==="object"&&J!==null}function BJ(J){if(!M(J))return!1;return[J.transaction,J.rejected].some((Q)=>{if(!M(Q)||!M(Q.execution))return!1;let{transitions:Z}=Q.execution;return Array.isArray(Z)&&Z.some((H)=>M(H)&&H.function===h&&typeof H.program==="string"&&H.program!==y)})}function DJ(J,Q){if(!M(J)||typeof J.status!=="string")throw new j.SwapKitError("toolbox_aleo_transaction_failed",{response:J,transactionId:Q});let Z=J.status.toLowerCase();if(Z==="rejected"){let H=BJ(J)?"toolbox_aleo_token_transfer_rejected":"toolbox_aleo_transaction_failed";throw new j.SwapKitError(H,{transactionId:Q})}return Z==="accepted"?"accepted":"pending"}async function xJ(J){if(!N.test(J))throw new j.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:J});let Q,Z=!0;for(let H of P())try{let{AleoNetworkClient:z}=await import("@provablehq/sdk/mainnet.js"),L=await new z(H).getConfirmedTransaction(J);return DJ(L,J)}catch(z){if(z instanceof j.SwapKitError)throw z;Q=z,Z=Z&&R(z)}if(Z)return"pending";throw b("toolbox_aleo_transaction_failed",Q)}async function A(J,{intervalMs:Q=5000,timeoutMs:Z=60000}={}){let H=Date.now();while(Date.now()-H<Z){let z=await xJ(J);if(z==="accepted")return z;await new Promise((L)=>setTimeout(L,Q))}throw new j.SwapKitError("toolbox_aleo_transaction_failed",{reason:"confirmation_timeout",transactionId:J})}var p,l,j,XJ,qJ,N,jJ,u=2147483648,I=1e6,y="credits.aleo",h="transfer_public",c=1e6,d=2000000;var a=S(()=>{p=require("@noble/hashes/hmac.js"),l=require("@noble/hashes/sha2.js"),j=require("@swapkit/helpers"),XJ=/^aleo1[ac-hj-np-z02-9]{58}$/,qJ=/^[a-z0-9_]+\.aleo$/,N=/^at1[ac-hj-np-z02-9]+$/,jJ=new TextEncoder().encode("bls12_377 seed")});function nJ(){function J(){let Q=Date.now(),Z=e||Q;return e=Z,Q>e?Q:Z+1}return uJ+J().toString(36)}function MJ(J){return async function(Z,H=!0){let z=await kJ.SwapKitApi.getChainBalance({address:Z,chain:J,scamFilter:H}),{baseDecimal:L}=C.getChainConfig(J),U=z.map(({identifier:O,value:V,decimal:v})=>{return new C.AssetValue({decimal:v||L,identifier:O,value:V})});if(!U.some((O)=>O.isGasAsset))return[C.AssetValue.from({chain:J}),...U];return U}}var C,kJ,uJ,e=0;var fJ=S(()=>{C=require("@swapkit/helpers"),kJ=require("@swapkit/helpers/api"),uJ=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function OJ(J,Q){try{let{Account:Z}=await import("@provablehq/sdk/mainnet.js"),{mnemonicToSeedSync:H}=await import("@scure/bip39"),z=W.derivationPathToString(Q||W.NetworkDerivationPath[W.Chain.Aleo],{allHardened:!0}),{key:L}=o(z,H(J));return new Z({seed:L})}catch(Z){throw b("toolbox_aleo_wasm_init_failed",Z)}}function bJ(J,Q){let Z,H=()=>{return Z??=OJ(J,Q),Z};return{getAddress:async()=>(await H()).address().to_string(),signTransaction:async(z)=>{let L=await H();if(z.sender!==L.address().to_string())throw new W.SwapKitError("toolbox_aleo_invalid_address",{address:z.sender});let U;for(let D of P())try{let{ProgramManager:O}=await import("@provablehq/sdk/mainnet.js"),V=new O(D);return V.setAccount(L),await V.buildExecutionTransaction({functionName:z.functionName,inputs:z.inputs,priorityFee:z.priorityFee/I,privateFee:!1,programName:z.programName})}catch(O){U=O}throw U}}}function yJ(J={}){if("phrase"in J&&J.phrase&&"signer"in J&&J.signer)throw new W.SwapKitError("toolbox_aleo_conflicting_signers");let Q;async function Z(){if(Q)return Q;let Y="phrase"in J?J.phrase:void 0;if(!Y)throw new W.SwapKitError("toolbox_aleo_no_signer");let $="derivationPath"in J?J.derivationPath:void 0;return Q=await OJ(Y,$),Q}let H;function z(){let Y="signer"in J?J.signer:void 0;if(Y)return Y;let $="phrase"in J?J.phrase:void 0;if(!$)throw new W.SwapKitError("toolbox_aleo_no_signer");return H??=bJ($,"derivationPath"in J?J.derivationPath:void 0),H}async function L(Y){let $;for(let X of P())try{let{AleoNetworkClient:q}=await import("@provablehq/sdk/mainnet.js");return await Y(new q(X))}catch(q){$=q}throw $}async function U(Y){let $;for(let X of P())try{let{AleoNetworkClient:q}=await import("@provablehq/sdk/mainnet.js");return await new q(X).getTransitionId(Y),!0}catch(q){if(R(q))return!1;$=q}throw $}async function D(){let Y=z();try{return await Y.getAddress()}catch($){throw b("toolbox_aleo_wasm_init_failed",$)}}async function O(Y){let $=await L((X)=>X.getProgramMappingValue(y,"account",Y));return t($,"u64")}async function V(Y){try{let $=await O(Y);return[W.AssetValue.from({chain:W.Chain.Aleo,fromBaseDecimal:6,value:$})]}catch($){throw b("toolbox_aleo_balance_error",$)}}let v=MJ(W.Chain.Aleo);async function r(Y,$=!0){try{return await v(Y,$)}catch{return V(Y)}}async function VJ(){return r(await D())}async function T({transactionIds:Y}){try{let $=await Z(),X=[];for(let q of Y){if(!N.test(q))throw new W.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:q});let x=await L((G)=>G.getTransaction(q));for(let G of i(x,y)){if(!$.ownsRecordCiphertext(G))continue;let{RecordPlaintext:k}=await import("@provablehq/sdk/mainnet.js"),B=$.decryptRecord(G).toString(),f=k.fromString(B),w=f.microcredits();if(w===0n)continue;let K=$.generateRecordViewKey(G).toString(),g=f.serialNumberString($.privateKey(),y,"credits",K);X.push({microcredits:w,plaintext:B,spent:await U(g),transactionId:q})}}return X}catch($){throw b("toolbox_aleo_balance_error",$)}}async function KJ({transactionIds:Y}){let $=await T({transactionIds:Y});return W.AssetValue.from({chain:W.Chain.Aleo,fromBaseDecimal:6,value:n($)})}async function wJ(Y,$){if(!Number.isSafeInteger($)||$<=0)throw new W.SwapKitError("toolbox_aleo_insufficient_fee_balance",{feeRecordCredits:$});let X=await Z();if(!Y||Y.microcredits<=BigInt($)*BigInt(I))throw new W.SwapKitError("toolbox_aleo_insufficient_fee_balance",{available:Y?.microcredits.toString(),required:`${$} credits fee record`});let{ProgramManager:q,RecordPlaintext:x}=await import("@provablehq/sdk/mainnet.js"),G;for(let k of P())try{let B=new q(k);return B.setAccount(X),await B.split($,x.fromString(Y.plaintext))}catch(B){G=B}throw G}async function FJ(Y,$,X){let q=await Z(),{ProgramManager:x,RecordPlaintext:G}=await import("@provablehq/sdk/mainnet.js"),k;for(let B of P())try{let f=new x(B);return f.setAccount(q),await f.buildExecutionTransaction({feeRecord:G.fromString($.plaintext),functionName:"transfer_private_to_public",inputs:[Y.plaintext,X,`${Y.microcredits}u64`],priorityFee:0,privateFee:!0,programName:y})}catch(f){k=f}throw k}async function NJ({transactionId:Y,feeRecordCredits:$=4}){let X;try{let x=(await Z()).address().to_string(),G=(await T({transactionIds:[Y]})).filter((K)=>!K.spent);if(G.length===0)throw new W.SwapKitError("toolbox_aleo_no_unspent_records",{transactionId:Y});if(G.length===1){if(X=await wJ(G[0],$),await A(X),G=(await T({transactionIds:[X]})).filter((K)=>!K.spent),G.length<2)throw new W.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:X})}let k=[...G].sort((K,g)=>K.microcredits<g.microcredits?-1:1),B=k[0],f=k[k.length-1];if(!B||!f||B===f)throw new W.SwapKitError("toolbox_aleo_no_unspent_records",{transactionId:Y});let w=await E(await FJ(f,B,x));return await A(w),{publicBalance:W.AssetValue.from({chain:W.Chain.Aleo,fromBaseDecimal:6,value:await O(x)}),splitTransactionId:X,unshieldTransactionId:w}}catch(q){if(X)throw new W.SwapKitError("toolbox_aleo_transaction_failed",{error:q,splitTransactionId:X});throw b("toolbox_aleo_transaction_failed",q)}}function JJ({assetValue:Y,priorityFee:$=0}){try{if(!Number.isSafeInteger($)||$<0)throw new W.SwapKitError("toolbox_aleo_fee_estimation_failed",{priorityFee:$});let q=m(Y).isTokenTransfer?d:c;return W.AssetValue.from({chain:W.Chain.Aleo,fromBaseDecimal:6,value:BigInt(q)+BigInt($)})}catch(X){throw b("toolbox_aleo_fee_estimation_failed",X)}}async function QJ({assetValue:Y,priorityFee:$=0,recipient:X,sender:q}){if(!await s(X))throw new W.SwapKitError("toolbox_aleo_invalid_address",{address:X});let x=q||await D();if(!_(x))throw new W.SwapKitError("toolbox_aleo_invalid_address",{address:x});let G=m(Y),k=await JJ({assetValue:Y,priorityFee:$,recipient:X});try{let B=await O(x);if(W.AssetValue.from({chain:W.Chain.Aleo,fromBaseDecimal:6,value:B}).lt(k))throw new W.SwapKitError("toolbox_aleo_insufficient_fee_balance",{available:B.toString(),required:k.getBaseValue("string")});return{functionName:G.functionName,inputs:[X,G.amount],priorityFee:$,programName:G.programName,sender:x}}catch(B){throw b("toolbox_aleo_transaction_failed",B)}}async function ZJ(Y){try{return await z().signTransaction(Y)}catch($){throw b("toolbox_aleo_transaction_failed",$)}}async function $J(Y){return E(await ZJ(Y))}async function E(Y){try{let $=typeof Y==="string"?Y:Y.toString(),X=await L((q)=>q.submitTransaction($));if(!N.test(X))throw new W.SwapKitError("toolbox_aleo_broadcast_error",{transactionId:X});return X}catch($){throw b("toolbox_aleo_broadcast_error",$)}}async function _J(Y){let $=await QJ({...Y,sender:await D()});return $J($)}return{broadcastTransaction:E,createSigner:bJ,createTransaction:QJ,estimateTransactionFee:JJ,getAddress:D,getBalance:v,getBalanceFromRpc:V,getBalances:VJ,getBalanceWithFallback:r,getRecords:T,getShieldedBalance:KJ,signAndBroadcastTransaction:$J,signTransaction:ZJ,transfer:_J,unshield:NJ,validateAddress:_}}var W;var PJ=S(()=>{fJ();a();W=require("@swapkit/helpers")});var pJ={};AJ(pJ,{waitForAleoTransaction:()=>A,validateAleoProgramId:()=>UJ,validateAleoAddressWithChecksum:()=>s,validateAleoAddress:()=>_,sumUnspentRecords:()=>n,parseAleoTransactionStatus:()=>DJ,parseAleoMappingValue:()=>t,isRecord:()=>M,isNotFoundError:()=>R,isAleoTokenTransferResponse:()=>BJ,getConfiguredAleoUrls:()=>P,getAleoTransferRoute:()=>m,getAleoTransactionStatus:()=>xJ,getAleoToolbox:()=>yJ,getAleoMasterSeed:()=>GJ,getAleoError:()=>b,extractAleoRecordCiphertexts:()=>i,deriveAleoPath:()=>o,deriveAleoChildKey:()=>LJ,TRANSFER_PUBLIC_FUNCTION:()=>h,NATIVE_PROGRAM_ID:()=>y,MICRO_CREDITS_PER_CREDIT:()=>I,HARDENED_OFFSET:()=>u,ALEO_TRANSFER_PUBLIC_FEE:()=>c,ALEO_TRANSACTION_ID_REGEX:()=>N,ALEO_TOKEN_TRANSFER_PUBLIC_FEE:()=>d,ALEO_PROGRAM_ID_REGEX:()=>qJ,ALEO_HD_KEY:()=>jJ,ALEO_ADDRESS_REGEX:()=>XJ});module.exports=IJ(pJ);var lJ=S(()=>{PJ();a()});lJ();
1
+ var TJ=Object.create;var{getPrototypeOf:SJ,defineProperty:F,getOwnPropertyNames:HJ,getOwnPropertyDescriptor:hJ}=Object,WJ=Object.prototype.hasOwnProperty;function XJ(J){return this[J]}var IJ,RJ,iJ=(J,Q,$)=>{var H=J!=null&&typeof J==="object";if(H){var z=Q?IJ??=new WeakMap:RJ??=new WeakMap,G=z.get(J);if(G)return G}$=J!=null?TJ(SJ(J)):{};let L=Q||!J||!J.__esModule?F($,"default",{value:J,enumerable:!0}):$;for(let D of HJ(J))if(!WJ.call(L,D))F(L,D,{get:XJ.bind(J,D),enumerable:!0});if(H)z.set(J,L);return L},AJ=(J)=>{var Q=(zJ??=new WeakMap).get(J),$;if(Q)return Q;if(Q=F({},"__esModule",{value:!0}),J&&typeof J==="object"||typeof J==="function"){for(var H of HJ(J))if(!WJ.call(Q,H))F(Q,H,{get:XJ.bind(J,H),enumerable:!($=hJ(J,H))||$.enumerable})}return zJ.set(J,Q),Q},zJ;var mJ=(J)=>J;function EJ(J,Q){this[J]=mJ.bind(null,Q)}var gJ=(J,Q)=>{for(var $ in Q)F(J,$,{get:Q[$],enumerable:!0,configurable:!0,set:EJ.bind(Q,$)})};var h=(J,Q)=>()=>(J&&(Q=J(J=0)),Q);function i(J,Q){if(!M(J))return[];let $=M(J.transaction)?J.transaction:J,H=$.execution,z=M($.fee)?$.fee.transition:void 0;return[...M(H)&&Array.isArray(H.transitions)?H.transitions:[],...M(z)?[z]:[]].flatMap((L)=>{if(!M(L)||!Array.isArray(L.outputs))return[];if(Q&&L.program!==Q)return[];return L.outputs.flatMap((D)=>M(D)&&D.type==="record"&&typeof D.value==="string"?[D.value]:[])})}function n(J){return J.reduce((Q,$)=>$.spent?Q:Q+$.microcredits,0n)}function f(J,Q){return Q instanceof j.SwapKitError&&Q.errorKey.startsWith("toolbox_aleo_")?Q:new j.SwapKitError(J,Q)}function uJ(...J){let Q=J.reduce((z,G)=>z+G.length,0),$=new Uint8Array(Q),H=0;for(let z of J)$.set(z,H),H+=z.length;return $}function pJ(J){let Q=new Uint8Array(4);return new DataView(Q.buffer).setUint32(0,J,!1),Q}function LJ(J){let Q=p.hmac(l.sha512,GJ,J);return{chainCode:Q.slice(32),key:Q.slice(0,32)}}function UJ(J,Q){if(!Number.isSafeInteger(Q)||Q<0||Q>=u)throw new j.SwapKitError("toolbox_aleo_wasm_init_failed",{index:Q});let $=Q+u,H=uJ(Uint8Array.of(0),J.key,pJ($)),z=p.hmac(l.sha512,J.chainCode,H);return{chainCode:z.slice(32),key:z.slice(0,32)}}function o(J,Q){let $=J.split("/");if($.shift()!=="m"||$.length===0)throw new j.SwapKitError("toolbox_aleo_wasm_init_failed",{path:J});return $.reduce((H,z)=>{if(!/^\d+'$/.test(z))throw new j.SwapKitError("toolbox_aleo_wasm_init_failed",{path:J,segment:z});return UJ(H,Number.parseInt(z.slice(0,-1),10))},LJ(Q))}function _(J){return typeof J==="string"&&qJ.test(J)}async function s(J){if(!_(J))return!1;try{let{Account:Q}=await import("@provablehq/sdk/mainnet.js");return Q.isValidAddress(J)}catch{return!1}}function BJ(J){return jJ.test(J)}function t(J,Q){if(J===null)return 0n;if(typeof J!=="string")throw new j.SwapKitError("toolbox_aleo_balance_error",{integerType:Q,value:J});let $=J.match(new RegExp(`^(\\d+)${Q}$`));if(!$?.[1])throw new j.SwapKitError("toolbox_aleo_balance_error",{integerType:Q,value:J});return BigInt($[1])}function A(J){if(J.chain!==j.Chain.Aleo)throw new j.SwapKitError("toolbox_aleo_unsupported_token",{asset:J.toString()});let Q=J.getBaseValue("bigint");if(J.isGasAsset)return{amount:`${Q}u64`,functionName:I,isTokenTransfer:!1,programName:y};if(!J.address||!BJ(J.address))throw new j.SwapKitError("toolbox_aleo_unsupported_token",{asset:J.toString()});return{amount:`${Q}u128`,functionName:I,isTokenTransfer:!0,programName:J.address}}function P(){let J=[...new Set([...j.SKConfig.get("rpcUrls")[j.Chain.Aleo],...j.getChainConfig(j.Chain.Aleo).rpcUrls])].filter(Boolean);if(J.length===0)throw new j.SwapKitError("toolbox_aleo_no_rpc_urls");return J}function m(J){if(typeof J==="object"&&J!==null&&"status"in J&&J.status===404)return!0;return J instanceof Error&&J.message.includes("404")}function M(J){return typeof J==="object"&&J!==null}function DJ(J){if(!M(J))return!1;return[J.transaction,J.rejected].some((Q)=>{if(!M(Q)||!M(Q.execution))return!1;let{transitions:$}=Q.execution;return Array.isArray($)&&$.some((H)=>M(H)&&H.function===I&&typeof H.program==="string"&&H.program!==y)})}function xJ(J,Q){if(!M(J)||typeof J.status!=="string")throw new j.SwapKitError("toolbox_aleo_transaction_failed",{response:J,transactionId:Q});let $=J.status.toLowerCase();if($==="rejected"){let H=DJ(J)?"toolbox_aleo_token_transfer_rejected":"toolbox_aleo_transaction_failed";throw new j.SwapKitError(H,{transactionId:Q})}return $==="accepted"?"accepted":"pending"}async function kJ(J){if(!N.test(J))throw new j.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:J});let Q,$=!0;for(let H of P())try{let{AleoNetworkClient:z}=await import("@provablehq/sdk/mainnet.js"),G=await new z(H).getConfirmedTransaction(J);return xJ(G,J)}catch(z){if(z instanceof j.SwapKitError)throw z;Q=z,$=$&&m(z)}if($)return"pending";throw f("toolbox_aleo_transaction_failed",Q)}async function E(J,{intervalMs:Q=5000,timeoutMs:$=60000}={}){let H=Date.now();while(Date.now()-H<$){let z=await kJ(J);if(z==="accepted")return z;await new Promise((G)=>setTimeout(G,Q))}throw new j.SwapKitError("toolbox_aleo_transaction_failed",{reason:"confirmation_timeout",transactionId:J})}var p,l,j,qJ,jJ,N,GJ,u=2147483648,R=1e6,y="credits.aleo",I="transfer_public",c=1e6,d=2000000;var a=h(()=>{p=require("@noble/hashes/hmac.js"),l=require("@noble/hashes/sha2.js"),j=require("@swapkit/helpers"),qJ=/^aleo1[ac-hj-np-z02-9]{58}$/,jJ=/^[a-z0-9_]+\.aleo$/,N=/^at1[ac-hj-np-z02-9]+$/,GJ=new TextEncoder().encode("bls12_377 seed")});function sJ(){function J(){let Q=Date.now(),$=e||Q;return e=$,Q>e?Q:$+1}return lJ+J().toString(36)}function fJ(J){return async function($,H=!0){let z=await MJ.SwapKitApi.getChainBalance({address:$,chain:J,scamFilter:H}),{baseDecimal:G}=C.getChainConfig(J),L=z.map(({identifier:O,value:V,decimal:v})=>{return new C.AssetValue({decimal:v||G,identifier:O,value:V})});if(!L.some((O)=>O.isGasAsset))return[C.AssetValue.from({chain:J}),...L];return L}}var C,MJ,lJ,e=0;var bJ=h(()=>{C=require("@swapkit/helpers"),MJ=require("@swapkit/helpers/api"),lJ=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function yJ(J,Q){try{let{Account:$}=await import("@provablehq/sdk/mainnet.js"),{mnemonicToSeedSync:H}=await import("@scure/bip39"),z=W.derivationPathToString(Q||W.NetworkDerivationPath[W.Chain.Aleo],{allHardened:!0}),{key:G}=o(z,H(J));return new $({seed:G})}catch($){throw f("toolbox_aleo_wasm_init_failed",$)}}function OJ(J,Q){let $,H=()=>{return $??=yJ(J,Q),$};return{getAddress:async()=>(await H()).address().to_string(),signTransaction:async(z)=>{let G=await H();if(z.sender!==G.address().to_string())throw new W.SwapKitError("toolbox_aleo_invalid_address",{address:z.sender});let L;for(let D of P())try{let{ProgramManager:O}=await import("@provablehq/sdk/mainnet.js"),V=new O(D);return V.setAccount(G),await V.buildExecutionTransaction({functionName:z.functionName,inputs:z.inputs,priorityFee:z.priorityFee/R,privateFee:!1,programName:z.programName})}catch(O){L=O}throw L}}}function PJ(J={}){if("phrase"in J&&J.phrase&&"signer"in J&&J.signer)throw new W.SwapKitError("toolbox_aleo_conflicting_signers");let Q;async function $(){if(Q)return Q;let Y="phrase"in J?J.phrase:void 0;if(!Y)throw new W.SwapKitError("toolbox_aleo_no_signer");let Z="derivationPath"in J?J.derivationPath:void 0;return Q=await yJ(Y,Z),Q}let H;function z(){let Y="signer"in J?J.signer:void 0;if(Y)return Y;let Z="phrase"in J?J.phrase:void 0;if(!Z)throw new W.SwapKitError("toolbox_aleo_no_signer");return H??=OJ(Z,"derivationPath"in J?J.derivationPath:void 0),H}async function G(Y){let Z;for(let q of P())try{let{AleoNetworkClient:X}=await import("@provablehq/sdk/mainnet.js");return await Y(new X(q))}catch(X){Z=X}throw Z}async function L(Y){let Z;for(let q of P())try{let{AleoNetworkClient:X}=await import("@provablehq/sdk/mainnet.js");return await new X(q).getTransitionId(Y),!0}catch(X){if(m(X))return!1;Z=X}throw Z}async function D(){let Y=z();try{return await Y.getAddress()}catch(Z){throw f("toolbox_aleo_wasm_init_failed",Z)}}async function O(Y){let Z=await G((q)=>q.getProgramMappingValue(y,"account",Y));return t(Z,"u64")}async function V(Y){try{let Z=await O(Y);return[W.AssetValue.from({chain:W.Chain.Aleo,fromBaseDecimal:6,value:Z})]}catch(Z){throw f("toolbox_aleo_balance_error",Z)}}let v=fJ(W.Chain.Aleo);async function r(Y,Z=!0){try{return await v(Y,Z)}catch{return V(Y)}}async function KJ(){return r(await D())}async function T({transactionIds:Y}){try{let Z=await $(),q=[];for(let X of Y){if(!N.test(X))throw new W.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:X});let k=await G((B)=>B.getTransaction(X));for(let B of i(k,y)){if(!Z.ownsRecordCiphertext(B))continue;let{RecordPlaintext:x}=await import("@provablehq/sdk/mainnet.js"),U=Z.decryptRecord(B).toString(),b=x.fromString(U),w=b.microcredits();if(w===0n)continue;let S=Z.generateRecordViewKey(B).toString(),K=b.serialNumberString(Z.privateKey(),y,"credits",S);q.push({microcredits:w,plaintext:U,spent:await L(K),transactionId:X})}}return q}catch(Z){throw f("toolbox_aleo_balance_error",Z)}}async function wJ({transactionIds:Y}){let Z=await T({transactionIds:Y});return W.AssetValue.from({chain:W.Chain.Aleo,fromBaseDecimal:6,value:n(Z)})}async function FJ(Y,Z){if(!Number.isSafeInteger(Z)||Z<=0)throw new W.SwapKitError("toolbox_aleo_insufficient_fee_balance",{feeRecordCredits:Z});let q=await $();if(!Y||Y.microcredits<=BigInt(Z)*BigInt(R))throw new W.SwapKitError("toolbox_aleo_insufficient_fee_balance",{available:Y?.microcredits.toString(),required:`${Z} credits fee record`});let{ProgramManager:X,RecordPlaintext:k}=await import("@provablehq/sdk/mainnet.js"),B;for(let x of P())try{let U=new X(x);return U.setAccount(q),await U.split(Z,k.fromString(Y.plaintext))}catch(U){B=U}throw B}async function NJ(Y,Z,q){let X=await $(),{ProgramManager:k,RecordPlaintext:B}=await import("@provablehq/sdk/mainnet.js"),x;for(let U of P())try{let b=new k(U);return b.setAccount(X),await b.buildExecutionTransaction({feeRecord:B.fromString(Z.plaintext),functionName:"transfer_private_to_public",inputs:[Y.plaintext,q,`${Y.microcredits}u64`],priorityFee:0,privateFee:!0,programName:y})}catch(b){x=b}throw x}async function JJ(Y,Z,q){let X;try{let B=(await $()).address().to_string(),x=Y.filter((K)=>!K.spent);if(x.length===0)throw new W.SwapKitError("toolbox_aleo_no_unspent_records",{transactionId:q});if(x.length===1){if(X=await FJ(x[0],Z),await E(X),x=(await T({transactionIds:[X]})).filter((K)=>!K.spent),x.length<2)throw new W.SwapKitError("toolbox_aleo_transaction_failed",{transactionId:X})}let U=[...x].sort((K,vJ)=>K.microcredits<vJ.microcredits?-1:1),b=U[0],w=U[U.length-1];if(!b||!w||b===w)throw new W.SwapKitError("toolbox_aleo_no_unspent_records",{transactionId:q});let S=await g(await NJ(w,b,B));return await E(S),{publicBalance:W.AssetValue.from({chain:W.Chain.Aleo,fromBaseDecimal:6,value:await O(B)}),splitTransactionId:X,unshieldTransactionId:S}}catch(k){if(X)throw new W.SwapKitError("toolbox_aleo_transaction_failed",{error:k,splitTransactionId:X});throw f("toolbox_aleo_transaction_failed",k)}}async function _J(Y){try{if("records"in Y&&Y.records)return await JJ(Y.records,Y.feeRecordCredits??4);let Z=await T({transactionIds:[Y.transactionId]});return await JJ(Z,Y.feeRecordCredits??4,Y.transactionId)}catch(Z){throw f("toolbox_aleo_transaction_failed",Z)}}function QJ({assetValue:Y,priorityFee:Z=0}){try{if(!Number.isSafeInteger(Z)||Z<0)throw new W.SwapKitError("toolbox_aleo_fee_estimation_failed",{priorityFee:Z});let X=A(Y).isTokenTransfer?d:c;return W.AssetValue.from({chain:W.Chain.Aleo,fromBaseDecimal:6,value:BigInt(X)+BigInt(Z)})}catch(q){throw f("toolbox_aleo_fee_estimation_failed",q)}}async function ZJ({assetValue:Y,priorityFee:Z=0,recipient:q,sender:X}){if(!await s(q))throw new W.SwapKitError("toolbox_aleo_invalid_address",{address:q});let k=X||await D();if(!_(k))throw new W.SwapKitError("toolbox_aleo_invalid_address",{address:k});let B=A(Y),x=await QJ({assetValue:Y,priorityFee:Z,recipient:q});try{let U=await O(k);if(W.AssetValue.from({chain:W.Chain.Aleo,fromBaseDecimal:6,value:U}).lt(x))throw new W.SwapKitError("toolbox_aleo_insufficient_fee_balance",{available:U.toString(),required:x.getBaseValue("string")});return{functionName:B.functionName,inputs:[q,B.amount],priorityFee:Z,programName:B.programName,sender:k}}catch(U){throw f("toolbox_aleo_transaction_failed",U)}}async function $J(Y){try{return await z().signTransaction(Y)}catch(Z){throw f("toolbox_aleo_transaction_failed",Z)}}async function YJ(Y){return g(await $J(Y))}async function g(Y){try{let Z=typeof Y==="string"?Y:Y.toString(),q=await G((X)=>X.submitTransaction(Z));if(!N.test(q))throw new W.SwapKitError("toolbox_aleo_broadcast_error",{transactionId:q});return q}catch(Z){throw f("toolbox_aleo_broadcast_error",Z)}}async function CJ(Y){let Z=await ZJ({...Y,sender:await D()});return YJ(Z)}return{broadcastTransaction:g,createSigner:OJ,createTransaction:ZJ,estimateTransactionFee:QJ,getAddress:D,getBalance:v,getBalanceFromRpc:V,getBalances:KJ,getBalanceWithFallback:r,getRecords:T,getShieldedBalance:wJ,signAndBroadcastTransaction:YJ,signTransaction:$J,transfer:CJ,unshield:_J,validateAddress:_}}var W;var VJ=h(()=>{bJ();a();W=require("@swapkit/helpers")});var cJ={};gJ(cJ,{waitForAleoTransaction:()=>E,validateAleoProgramId:()=>BJ,validateAleoAddressWithChecksum:()=>s,validateAleoAddress:()=>_,sumUnspentRecords:()=>n,parseAleoTransactionStatus:()=>xJ,parseAleoMappingValue:()=>t,isRecord:()=>M,isNotFoundError:()=>m,isAleoTokenTransferResponse:()=>DJ,getConfiguredAleoUrls:()=>P,getAleoTransferRoute:()=>A,getAleoTransactionStatus:()=>kJ,getAleoToolbox:()=>PJ,getAleoMasterSeed:()=>LJ,getAleoError:()=>f,extractAleoRecordCiphertexts:()=>i,deriveAleoPath:()=>o,deriveAleoChildKey:()=>UJ,TRANSFER_PUBLIC_FUNCTION:()=>I,NATIVE_PROGRAM_ID:()=>y,MICRO_CREDITS_PER_CREDIT:()=>R,HARDENED_OFFSET:()=>u,ALEO_TRANSFER_PUBLIC_FEE:()=>c,ALEO_TRANSACTION_ID_REGEX:()=>N,ALEO_TOKEN_TRANSFER_PUBLIC_FEE:()=>d,ALEO_PROGRAM_ID_REGEX:()=>jJ,ALEO_HD_KEY:()=>GJ,ALEO_ADDRESS_REGEX:()=>qJ});module.exports=AJ(cJ);var dJ=h(()=>{VJ();a()});dJ();
@@ -1 +1 @@
1
- import{fa as YJ}from"../../chunk-nvfkjbyq.js";import{ga as b}from"../../chunk-xbdjxeqd.js";import{hmac as o}from"@noble/hashes/hmac.js";import{sha512 as s}from"@noble/hashes/sha2.js";import{Chain as I,getChainConfig as LJ,SKConfig as UJ,SwapKitError as U}from"@swapkit/helpers";var BJ=/^aleo1[ac-hj-np-z02-9]{58}$/,DJ=/^[a-z0-9_]+\.aleo$/,C=/^at1[ac-hj-np-z02-9]+$/,kJ=new TextEncoder().encode("bls12_377 seed"),n=2147483648,m=1e6,f="credits.aleo",R="transfer_public",t=1e6,a=2000000;function e(J,Z){if(!M(J))return[];let Y=M(J.transaction)?J.transaction:J,W=Y.execution,z=M(Y.fee)?Y.fee.transition:void 0;return[...M(W)&&Array.isArray(W.transitions)?W.transitions:[],...M(z)?[z]:[]].flatMap((P)=>{if(!M(P)||!Array.isArray(P.outputs))return[];if(Z&&P.program!==Z)return[];return P.outputs.flatMap((x)=>M(x)&&x.type==="record"&&typeof x.value==="string"?[x.value]:[])})}function r(J){return J.reduce((Z,Y)=>Y.spent?Z:Z+Y.microcredits,0n)}function O(J,Z){return Z instanceof U&&Z.errorKey.startsWith("toolbox_aleo_")?Z:new U(J,Z)}function MJ(...J){let Z=J.reduce((z,L)=>z+L.length,0),Y=new Uint8Array(Z),W=0;for(let z of J)Y.set(z,W),W+=z.length;return Y}function xJ(J){let Z=new Uint8Array(4);return new DataView(Z.buffer).setUint32(0,J,!1),Z}function OJ(J){let Z=o(s,kJ,J);return{chainCode:Z.slice(32),key:Z.slice(0,32)}}function bJ(J,Z){if(!Number.isSafeInteger(Z)||Z<0||Z>=n)throw new U("toolbox_aleo_wasm_init_failed",{index:Z});let Y=Z+n,W=MJ(Uint8Array.of(0),J.key,xJ(Y)),z=o(s,J.chainCode,W);return{chainCode:z.slice(32),key:z.slice(0,32)}}function JJ(J,Z){let Y=J.split("/");if(Y.shift()!=="m"||Y.length===0)throw new U("toolbox_aleo_wasm_init_failed",{path:J});return Y.reduce((W,z)=>{if(!/^\d+'$/.test(z))throw new U("toolbox_aleo_wasm_init_failed",{path:J,segment:z});return bJ(W,Number.parseInt(z.slice(0,-1),10))},OJ(Z))}function T(J){return typeof J==="string"&&BJ.test(J)}async function QJ(J){if(!T(J))return!1;try{let{Account:Z}=await import("@provablehq/sdk/mainnet.js");return Z.isValidAddress(J)}catch{return!1}}function PJ(J){return DJ.test(J)}function ZJ(J,Z){if(J===null)return 0n;if(typeof J!=="string")throw new U("toolbox_aleo_balance_error",{integerType:Z,value:J});let Y=J.match(new RegExp(`^(\\d+)${Z}$`));if(!Y?.[1])throw new U("toolbox_aleo_balance_error",{integerType:Z,value:J});return BigInt(Y[1])}function A(J){if(J.chain!==I.Aleo)throw new U("toolbox_aleo_unsupported_token",{asset:J.toString()});let Z=J.getBaseValue("bigint");if(J.isGasAsset)return{amount:`${Z}u64`,functionName:R,isTokenTransfer:!1,programName:f};if(!J.address||!PJ(J.address))throw new U("toolbox_aleo_unsupported_token",{asset:J.toString()});return{amount:`${Z}u128`,functionName:R,isTokenTransfer:!0,programName:J.address}}function K(){let J=[...new Set([...UJ.get("rpcUrls")[I.Aleo],...LJ(I.Aleo).rpcUrls])].filter(Boolean);if(J.length===0)throw new U("toolbox_aleo_no_rpc_urls");return J}function E(J){if(typeof J==="object"&&J!==null&&"status"in J&&J.status===404)return!0;return J instanceof Error&&J.message.includes("404")}function M(J){return typeof J==="object"&&J!==null}function yJ(J){if(!M(J))return!1;return[J.transaction,J.rejected].some((Z)=>{if(!M(Z)||!M(Z.execution))return!1;let{transitions:Y}=Z.execution;return Array.isArray(Y)&&Y.some((W)=>M(W)&&W.function===R&&typeof W.program==="string"&&W.program!==f)})}function VJ(J,Z){if(!M(J)||typeof J.status!=="string")throw new U("toolbox_aleo_transaction_failed",{response:J,transactionId:Z});let Y=J.status.toLowerCase();if(Y==="rejected"){let W=yJ(J)?"toolbox_aleo_token_transfer_rejected":"toolbox_aleo_transaction_failed";throw new U(W,{transactionId:Z})}return Y==="accepted"?"accepted":"pending"}async function fJ(J){if(!C.test(J))throw new U("toolbox_aleo_transaction_failed",{transactionId:J});let Z,Y=!0;for(let W of K())try{let{AleoNetworkClient:z}=await import("@provablehq/sdk/mainnet.js"),L=await new z(W).getConfirmedTransaction(J);return VJ(L,J)}catch(z){if(z instanceof U)throw z;Z=z,Y=Y&&E(z)}if(Y)return"pending";throw O("toolbox_aleo_transaction_failed",Z)}async function g(J,{intervalMs:Z=5000,timeoutMs:Y=60000}={}){let W=Date.now();while(Date.now()-W<Y){let z=await fJ(J);if(z==="accepted")return z;await new Promise((L)=>setTimeout(L,Z))}throw new U("toolbox_aleo_transaction_failed",{reason:"confirmation_timeout",transactionId:J})}import{AssetValue as _,Chain as F,derivationPathToString as KJ,NetworkDerivationPath as FJ,SwapKitError as G}from"@swapkit/helpers";async function zJ(J,Z){try{let{Account:Y}=await import("@provablehq/sdk/mainnet.js"),{mnemonicToSeedSync:W}=await import("@scure/bip39"),z=KJ(Z||FJ[F.Aleo],{allHardened:!0}),{key:L}=JJ(z,W(J));return new Y({seed:L})}catch(Y){throw O("toolbox_aleo_wasm_init_failed",Y)}}function $J(J,Z){let Y,W=()=>{return Y??=zJ(J,Z),Y};return{getAddress:async()=>(await W()).address().to_string(),signTransaction:async(z)=>{let L=await W();if(z.sender!==L.address().to_string())throw new G("toolbox_aleo_invalid_address",{address:z.sender});let P;for(let x of K())try{let{ProgramManager:y}=await import("@provablehq/sdk/mainnet.js"),w=new y(x);return w.setAccount(L),await w.buildExecutionTransaction({functionName:z.functionName,inputs:z.inputs,priorityFee:z.priorityFee/m,privateFee:!1,programName:z.programName})}catch(y){P=y}throw P}}}function wJ(J={}){if("phrase"in J&&J.phrase&&"signer"in J&&J.signer)throw new G("toolbox_aleo_conflicting_signers");let Z;async function Y(){if(Z)return Z;let $="phrase"in J?J.phrase:void 0;if(!$)throw new G("toolbox_aleo_no_signer");let Q="derivationPath"in J?J.derivationPath:void 0;return Z=await zJ($,Q),Z}let W;function z(){let $="signer"in J?J.signer:void 0;if($)return $;let Q="phrase"in J?J.phrase:void 0;if(!Q)throw new G("toolbox_aleo_no_signer");return W??=$J(Q,"derivationPath"in J?J.derivationPath:void 0),W}async function L($){let Q;for(let H of K())try{let{AleoNetworkClient:X}=await import("@provablehq/sdk/mainnet.js");return await $(new X(H))}catch(X){Q=X}throw Q}async function P($){let Q;for(let H of K())try{let{AleoNetworkClient:X}=await import("@provablehq/sdk/mainnet.js");return await new X(H).getTransitionId($),!0}catch(X){if(E(X))return!1;Q=X}throw Q}async function x(){let $=z();try{return await $.getAddress()}catch(Q){throw O("toolbox_aleo_wasm_init_failed",Q)}}async function y($){let Q=await L((H)=>H.getProgramMappingValue(f,"account",$));return ZJ(Q,"u64")}async function w($){try{let Q=await y($);return[_.from({chain:F.Aleo,fromBaseDecimal:6,value:Q})]}catch(Q){throw O("toolbox_aleo_balance_error",Q)}}let u=YJ(F.Aleo);async function p($,Q=!0){try{return await u($,Q)}catch{return w($)}}async function HJ(){return p(await x())}async function v({transactionIds:$}){try{let Q=await Y(),H=[];for(let X of $){if(!C.test(X))throw new G("toolbox_aleo_transaction_failed",{transactionId:X});let B=await L((q)=>q.getTransaction(X));for(let q of e(B,f)){if(!Q.ownsRecordCiphertext(q))continue;let{RecordPlaintext:D}=await import("@provablehq/sdk/mainnet.js"),j=Q.decryptRecord(q).toString(),k=D.fromString(j),N=k.microcredits();if(N===0n)continue;let V=Q.generateRecordViewKey(q).toString(),h=k.serialNumberString(Q.privateKey(),f,"credits",V);H.push({microcredits:N,plaintext:j,spent:await P(h),transactionId:X})}}return H}catch(Q){throw O("toolbox_aleo_balance_error",Q)}}async function WJ({transactionIds:$}){let Q=await v({transactionIds:$});return _.from({chain:F.Aleo,fromBaseDecimal:6,value:r(Q)})}async function XJ($,Q){if(!Number.isSafeInteger(Q)||Q<=0)throw new G("toolbox_aleo_insufficient_fee_balance",{feeRecordCredits:Q});let H=await Y();if(!$||$.microcredits<=BigInt(Q)*BigInt(m))throw new G("toolbox_aleo_insufficient_fee_balance",{available:$?.microcredits.toString(),required:`${Q} credits fee record`});let{ProgramManager:X,RecordPlaintext:B}=await import("@provablehq/sdk/mainnet.js"),q;for(let D of K())try{let j=new X(D);return j.setAccount(H),await j.split(Q,B.fromString($.plaintext))}catch(j){q=j}throw q}async function qJ($,Q,H){let X=await Y(),{ProgramManager:B,RecordPlaintext:q}=await import("@provablehq/sdk/mainnet.js"),D;for(let j of K())try{let k=new B(j);return k.setAccount(X),await k.buildExecutionTransaction({feeRecord:q.fromString(Q.plaintext),functionName:"transfer_private_to_public",inputs:[$.plaintext,H,`${$.microcredits}u64`],priorityFee:0,privateFee:!0,programName:f})}catch(k){D=k}throw D}async function jJ({transactionId:$,feeRecordCredits:Q=4}){let H;try{let B=(await Y()).address().to_string(),q=(await v({transactionIds:[$]})).filter((V)=>!V.spent);if(q.length===0)throw new G("toolbox_aleo_no_unspent_records",{transactionId:$});if(q.length===1){if(H=await XJ(q[0],Q),await g(H),q=(await v({transactionIds:[H]})).filter((V)=>!V.spent),q.length<2)throw new G("toolbox_aleo_transaction_failed",{transactionId:H})}let D=[...q].sort((V,h)=>V.microcredits<h.microcredits?-1:1),j=D[0],k=D[D.length-1];if(!j||!k||j===k)throw new G("toolbox_aleo_no_unspent_records",{transactionId:$});let N=await S(await qJ(k,j,B));return await g(N),{publicBalance:_.from({chain:F.Aleo,fromBaseDecimal:6,value:await y(B)}),splitTransactionId:H,unshieldTransactionId:N}}catch(X){if(H)throw new G("toolbox_aleo_transaction_failed",{error:X,splitTransactionId:H});throw O("toolbox_aleo_transaction_failed",X)}}function l({assetValue:$,priorityFee:Q=0}){try{if(!Number.isSafeInteger(Q)||Q<0)throw new G("toolbox_aleo_fee_estimation_failed",{priorityFee:Q});let X=A($).isTokenTransfer?a:t;return _.from({chain:F.Aleo,fromBaseDecimal:6,value:BigInt(X)+BigInt(Q)})}catch(H){throw O("toolbox_aleo_fee_estimation_failed",H)}}async function c({assetValue:$,priorityFee:Q=0,recipient:H,sender:X}){if(!await QJ(H))throw new G("toolbox_aleo_invalid_address",{address:H});let B=X||await x();if(!T(B))throw new G("toolbox_aleo_invalid_address",{address:B});let q=A($),D=await l({assetValue:$,priorityFee:Q,recipient:H});try{let j=await y(B);if(_.from({chain:F.Aleo,fromBaseDecimal:6,value:j}).lt(D))throw new G("toolbox_aleo_insufficient_fee_balance",{available:j.toString(),required:D.getBaseValue("string")});return{functionName:q.functionName,inputs:[H,q.amount],priorityFee:Q,programName:q.programName,sender:B}}catch(j){throw O("toolbox_aleo_transaction_failed",j)}}async function d($){try{return await z().signTransaction($)}catch(Q){throw O("toolbox_aleo_transaction_failed",Q)}}async function i($){return S(await d($))}async function S($){try{let Q=typeof $==="string"?$:$.toString(),H=await L((X)=>X.submitTransaction(Q));if(!C.test(H))throw new G("toolbox_aleo_broadcast_error",{transactionId:H});return H}catch(Q){throw O("toolbox_aleo_broadcast_error",Q)}}async function GJ($){let Q=await c({...$,sender:await x()});return i(Q)}return{broadcastTransaction:S,createSigner:$J,createTransaction:c,estimateTransactionFee:l,getAddress:x,getBalance:u,getBalanceFromRpc:w,getBalances:HJ,getBalanceWithFallback:p,getRecords:v,getShieldedBalance:WJ,signAndBroadcastTransaction:i,signTransaction:d,transfer:GJ,unshield:jJ,validateAddress:T}}export{g as waitForAleoTransaction,PJ as validateAleoProgramId,QJ as validateAleoAddressWithChecksum,T as validateAleoAddress,r as sumUnspentRecords,VJ as parseAleoTransactionStatus,ZJ as parseAleoMappingValue,M as isRecord,E as isNotFoundError,yJ as isAleoTokenTransferResponse,K as getConfiguredAleoUrls,A as getAleoTransferRoute,fJ as getAleoTransactionStatus,wJ as getAleoToolbox,OJ as getAleoMasterSeed,O as getAleoError,e as extractAleoRecordCiphertexts,JJ as deriveAleoPath,bJ as deriveAleoChildKey,R as TRANSFER_PUBLIC_FUNCTION,f as NATIVE_PROGRAM_ID,m as MICRO_CREDITS_PER_CREDIT,n as HARDENED_OFFSET,t as ALEO_TRANSFER_PUBLIC_FEE,C as ALEO_TRANSACTION_ID_REGEX,a as ALEO_TOKEN_TRANSFER_PUBLIC_FEE,DJ as ALEO_PROGRAM_ID_REGEX,kJ as ALEO_HD_KEY,BJ as ALEO_ADDRESS_REGEX};
1
+ import{fa as zJ}from"../../chunk-nvfkjbyq.js";import{ga as b}from"../../chunk-xbdjxeqd.js";import{hmac as s}from"@noble/hashes/hmac.js";import{sha512 as t}from"@noble/hashes/sha2.js";import{Chain as h,getChainConfig as BJ,SKConfig as DJ,SwapKitError as B}from"@swapkit/helpers";var kJ=/^aleo1[ac-hj-np-z02-9]{58}$/,MJ=/^[a-z0-9_]+\.aleo$/,T=/^at1[ac-hj-np-z02-9]+$/,xJ=new TextEncoder().encode("bls12_377 seed"),o=2147483648,A=1e6,f="credits.aleo",R="transfer_public",a=1e6,e=2000000;function r(J,Z){if(!M(J))return[];let Y=M(J.transaction)?J.transaction:J,W=Y.execution,z=M(Y.fee)?Y.fee.transition:void 0;return[...M(W)&&Array.isArray(W.transitions)?W.transitions:[],...M(z)?[z]:[]].flatMap((P)=>{if(!M(P)||!Array.isArray(P.outputs))return[];if(Z&&P.program!==Z)return[];return P.outputs.flatMap((O)=>M(O)&&O.type==="record"&&typeof O.value==="string"?[O.value]:[])})}function JJ(J){return J.reduce((Z,Y)=>Y.spent?Z:Z+Y.microcredits,0n)}function x(J,Z){return Z instanceof B&&Z.errorKey.startsWith("toolbox_aleo_")?Z:new B(J,Z)}function OJ(...J){let Z=J.reduce((z,U)=>z+U.length,0),Y=new Uint8Array(Z),W=0;for(let z of J)Y.set(z,W),W+=z.length;return Y}function bJ(J){let Z=new Uint8Array(4);return new DataView(Z.buffer).setUint32(0,J,!1),Z}function PJ(J){let Z=s(t,xJ,J);return{chainCode:Z.slice(32),key:Z.slice(0,32)}}function yJ(J,Z){if(!Number.isSafeInteger(Z)||Z<0||Z>=o)throw new B("toolbox_aleo_wasm_init_failed",{index:Z});let Y=Z+o,W=OJ(Uint8Array.of(0),J.key,bJ(Y)),z=s(t,J.chainCode,W);return{chainCode:z.slice(32),key:z.slice(0,32)}}function QJ(J,Z){let Y=J.split("/");if(Y.shift()!=="m"||Y.length===0)throw new B("toolbox_aleo_wasm_init_failed",{path:J});return Y.reduce((W,z)=>{if(!/^\d+'$/.test(z))throw new B("toolbox_aleo_wasm_init_failed",{path:J,segment:z});return yJ(W,Number.parseInt(z.slice(0,-1),10))},PJ(Z))}function S(J){return typeof J==="string"&&kJ.test(J)}async function ZJ(J){if(!S(J))return!1;try{let{Account:Z}=await import("@provablehq/sdk/mainnet.js");return Z.isValidAddress(J)}catch{return!1}}function VJ(J){return MJ.test(J)}function $J(J,Z){if(J===null)return 0n;if(typeof J!=="string")throw new B("toolbox_aleo_balance_error",{integerType:Z,value:J});let Y=J.match(new RegExp(`^(\\d+)${Z}$`));if(!Y?.[1])throw new B("toolbox_aleo_balance_error",{integerType:Z,value:J});return BigInt(Y[1])}function E(J){if(J.chain!==h.Aleo)throw new B("toolbox_aleo_unsupported_token",{asset:J.toString()});let Z=J.getBaseValue("bigint");if(J.isGasAsset)return{amount:`${Z}u64`,functionName:R,isTokenTransfer:!1,programName:f};if(!J.address||!VJ(J.address))throw new B("toolbox_aleo_unsupported_token",{asset:J.toString()});return{amount:`${Z}u128`,functionName:R,isTokenTransfer:!0,programName:J.address}}function K(){let J=[...new Set([...DJ.get("rpcUrls")[h.Aleo],...BJ(h.Aleo).rpcUrls])].filter(Boolean);if(J.length===0)throw new B("toolbox_aleo_no_rpc_urls");return J}function m(J){if(typeof J==="object"&&J!==null&&"status"in J&&J.status===404)return!0;return J instanceof Error&&J.message.includes("404")}function M(J){return typeof J==="object"&&J!==null}function fJ(J){if(!M(J))return!1;return[J.transaction,J.rejected].some((Z)=>{if(!M(Z)||!M(Z.execution))return!1;let{transitions:Y}=Z.execution;return Array.isArray(Y)&&Y.some((W)=>M(W)&&W.function===R&&typeof W.program==="string"&&W.program!==f)})}function KJ(J,Z){if(!M(J)||typeof J.status!=="string")throw new B("toolbox_aleo_transaction_failed",{response:J,transactionId:Z});let Y=J.status.toLowerCase();if(Y==="rejected"){let W=fJ(J)?"toolbox_aleo_token_transfer_rejected":"toolbox_aleo_transaction_failed";throw new B(W,{transactionId:Z})}return Y==="accepted"?"accepted":"pending"}async function FJ(J){if(!T.test(J))throw new B("toolbox_aleo_transaction_failed",{transactionId:J});let Z,Y=!0;for(let W of K())try{let{AleoNetworkClient:z}=await import("@provablehq/sdk/mainnet.js"),U=await new z(W).getConfirmedTransaction(J);return KJ(U,J)}catch(z){if(z instanceof B)throw z;Z=z,Y=Y&&m(z)}if(Y)return"pending";throw x("toolbox_aleo_transaction_failed",Z)}async function g(J,{intervalMs:Z=5000,timeoutMs:Y=60000}={}){let W=Date.now();while(Date.now()-W<Y){let z=await FJ(J);if(z==="accepted")return z;await new Promise((U)=>setTimeout(U,Z))}throw new B("toolbox_aleo_transaction_failed",{reason:"confirmation_timeout",transactionId:J})}import{AssetValue as _,Chain as F,derivationPathToString as wJ,NetworkDerivationPath as NJ,SwapKitError as L}from"@swapkit/helpers";async function HJ(J,Z){try{let{Account:Y}=await import("@provablehq/sdk/mainnet.js"),{mnemonicToSeedSync:W}=await import("@scure/bip39"),z=wJ(Z||NJ[F.Aleo],{allHardened:!0}),{key:U}=QJ(z,W(J));return new Y({seed:U})}catch(Y){throw x("toolbox_aleo_wasm_init_failed",Y)}}function YJ(J,Z){let Y,W=()=>{return Y??=HJ(J,Z),Y};return{getAddress:async()=>(await W()).address().to_string(),signTransaction:async(z)=>{let U=await W();if(z.sender!==U.address().to_string())throw new L("toolbox_aleo_invalid_address",{address:z.sender});let P;for(let O of K())try{let{ProgramManager:y}=await import("@provablehq/sdk/mainnet.js"),N=new y(O);return N.setAccount(U),await N.buildExecutionTransaction({functionName:z.functionName,inputs:z.inputs,priorityFee:z.priorityFee/A,privateFee:!1,programName:z.programName})}catch(y){P=y}throw P}}}function _J(J={}){if("phrase"in J&&J.phrase&&"signer"in J&&J.signer)throw new L("toolbox_aleo_conflicting_signers");let Z;async function Y(){if(Z)return Z;let $="phrase"in J?J.phrase:void 0;if(!$)throw new L("toolbox_aleo_no_signer");let Q="derivationPath"in J?J.derivationPath:void 0;return Z=await HJ($,Q),Z}let W;function z(){let $="signer"in J?J.signer:void 0;if($)return $;let Q="phrase"in J?J.phrase:void 0;if(!Q)throw new L("toolbox_aleo_no_signer");return W??=YJ(Q,"derivationPath"in J?J.derivationPath:void 0),W}async function U($){let Q;for(let X of K())try{let{AleoNetworkClient:H}=await import("@provablehq/sdk/mainnet.js");return await $(new H(X))}catch(H){Q=H}throw Q}async function P($){let Q;for(let X of K())try{let{AleoNetworkClient:H}=await import("@provablehq/sdk/mainnet.js");return await new H(X).getTransitionId($),!0}catch(H){if(m(H))return!1;Q=H}throw Q}async function O(){let $=z();try{return await $.getAddress()}catch(Q){throw x("toolbox_aleo_wasm_init_failed",Q)}}async function y($){let Q=await U((X)=>X.getProgramMappingValue(f,"account",$));return $J(Q,"u64")}async function N($){try{let Q=await y($);return[_.from({chain:F.Aleo,fromBaseDecimal:6,value:Q})]}catch(Q){throw x("toolbox_aleo_balance_error",Q)}}let u=zJ(F.Aleo);async function p($,Q=!0){try{return await u($,Q)}catch{return N($)}}async function WJ(){return p(await O())}async function v({transactionIds:$}){try{let Q=await Y(),X=[];for(let H of $){if(!T.test(H))throw new L("toolbox_aleo_transaction_failed",{transactionId:H});let D=await U((j)=>j.getTransaction(H));for(let j of r(D,f)){if(!Q.ownsRecordCiphertext(j))continue;let{RecordPlaintext:G}=await import("@provablehq/sdk/mainnet.js"),q=Q.decryptRecord(j).toString(),k=G.fromString(q),w=k.microcredits();if(w===0n)continue;let C=Q.generateRecordViewKey(j).toString(),V=k.serialNumberString(Q.privateKey(),f,"credits",C);X.push({microcredits:w,plaintext:q,spent:await P(V),transactionId:H})}}return X}catch(Q){throw x("toolbox_aleo_balance_error",Q)}}async function XJ({transactionIds:$}){let Q=await v({transactionIds:$});return _.from({chain:F.Aleo,fromBaseDecimal:6,value:JJ(Q)})}async function qJ($,Q){if(!Number.isSafeInteger(Q)||Q<=0)throw new L("toolbox_aleo_insufficient_fee_balance",{feeRecordCredits:Q});let X=await Y();if(!$||$.microcredits<=BigInt(Q)*BigInt(A))throw new L("toolbox_aleo_insufficient_fee_balance",{available:$?.microcredits.toString(),required:`${Q} credits fee record`});let{ProgramManager:H,RecordPlaintext:D}=await import("@provablehq/sdk/mainnet.js"),j;for(let G of K())try{let q=new H(G);return q.setAccount(X),await q.split(Q,D.fromString($.plaintext))}catch(q){j=q}throw j}async function jJ($,Q,X){let H=await Y(),{ProgramManager:D,RecordPlaintext:j}=await import("@provablehq/sdk/mainnet.js"),G;for(let q of K())try{let k=new D(q);return k.setAccount(H),await k.buildExecutionTransaction({feeRecord:j.fromString(Q.plaintext),functionName:"transfer_private_to_public",inputs:[$.plaintext,X,`${$.microcredits}u64`],priorityFee:0,privateFee:!0,programName:f})}catch(k){G=k}throw G}async function l($,Q,X){let H;try{let j=(await Y()).address().to_string(),G=$.filter((V)=>!V.spent);if(G.length===0)throw new L("toolbox_aleo_no_unspent_records",{transactionId:X});if(G.length===1){if(H=await qJ(G[0],Q),await g(H),G=(await v({transactionIds:[H]})).filter((V)=>!V.spent),G.length<2)throw new L("toolbox_aleo_transaction_failed",{transactionId:H})}let q=[...G].sort((V,UJ)=>V.microcredits<UJ.microcredits?-1:1),k=q[0],w=q[q.length-1];if(!k||!w||k===w)throw new L("toolbox_aleo_no_unspent_records",{transactionId:X});let C=await I(await jJ(w,k,j));return await g(C),{publicBalance:_.from({chain:F.Aleo,fromBaseDecimal:6,value:await y(j)}),splitTransactionId:H,unshieldTransactionId:C}}catch(D){if(H)throw new L("toolbox_aleo_transaction_failed",{error:D,splitTransactionId:H});throw x("toolbox_aleo_transaction_failed",D)}}async function GJ($){try{if("records"in $&&$.records)return await l($.records,$.feeRecordCredits??4);let Q=await v({transactionIds:[$.transactionId]});return await l(Q,$.feeRecordCredits??4,$.transactionId)}catch(Q){throw x("toolbox_aleo_transaction_failed",Q)}}function c({assetValue:$,priorityFee:Q=0}){try{if(!Number.isSafeInteger(Q)||Q<0)throw new L("toolbox_aleo_fee_estimation_failed",{priorityFee:Q});let H=E($).isTokenTransfer?e:a;return _.from({chain:F.Aleo,fromBaseDecimal:6,value:BigInt(H)+BigInt(Q)})}catch(X){throw x("toolbox_aleo_fee_estimation_failed",X)}}async function d({assetValue:$,priorityFee:Q=0,recipient:X,sender:H}){if(!await ZJ(X))throw new L("toolbox_aleo_invalid_address",{address:X});let D=H||await O();if(!S(D))throw new L("toolbox_aleo_invalid_address",{address:D});let j=E($),G=await c({assetValue:$,priorityFee:Q,recipient:X});try{let q=await y(D);if(_.from({chain:F.Aleo,fromBaseDecimal:6,value:q}).lt(G))throw new L("toolbox_aleo_insufficient_fee_balance",{available:q.toString(),required:G.getBaseValue("string")});return{functionName:j.functionName,inputs:[X,j.amount],priorityFee:Q,programName:j.programName,sender:D}}catch(q){throw x("toolbox_aleo_transaction_failed",q)}}async function i($){try{return await z().signTransaction($)}catch(Q){throw x("toolbox_aleo_transaction_failed",Q)}}async function n($){return I(await i($))}async function I($){try{let Q=typeof $==="string"?$:$.toString(),X=await U((H)=>H.submitTransaction(Q));if(!T.test(X))throw new L("toolbox_aleo_broadcast_error",{transactionId:X});return X}catch(Q){throw x("toolbox_aleo_broadcast_error",Q)}}async function LJ($){let Q=await d({...$,sender:await O()});return n(Q)}return{broadcastTransaction:I,createSigner:YJ,createTransaction:d,estimateTransactionFee:c,getAddress:O,getBalance:u,getBalanceFromRpc:N,getBalances:WJ,getBalanceWithFallback:p,getRecords:v,getShieldedBalance:XJ,signAndBroadcastTransaction:n,signTransaction:i,transfer:LJ,unshield:GJ,validateAddress:S}}export{g as waitForAleoTransaction,VJ as validateAleoProgramId,ZJ as validateAleoAddressWithChecksum,S as validateAleoAddress,JJ as sumUnspentRecords,KJ as parseAleoTransactionStatus,$J as parseAleoMappingValue,M as isRecord,m as isNotFoundError,fJ as isAleoTokenTransferResponse,K as getConfiguredAleoUrls,E as getAleoTransferRoute,FJ as getAleoTransactionStatus,_J as getAleoToolbox,PJ as getAleoMasterSeed,x as getAleoError,r as extractAleoRecordCiphertexts,QJ as deriveAleoPath,yJ as deriveAleoChildKey,R as TRANSFER_PUBLIC_FUNCTION,f as NATIVE_PROGRAM_ID,A as MICRO_CREDITS_PER_CREDIT,o as HARDENED_OFFSET,a as ALEO_TRANSFER_PUBLIC_FEE,T as ALEO_TRANSACTION_ID_REGEX,e as ALEO_TOKEN_TRANSFER_PUBLIC_FEE,MJ as ALEO_PROGRAM_ID_REGEX,xJ as ALEO_HD_KEY,kJ as ALEO_ADDRESS_REGEX};