@swapkit/toolboxes 4.25.0 → 4.26.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 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var QP=Object.create;var{getPrototypeOf:XP,defineProperty:w,getOwnPropertyNames:d,getOwnPropertyDescriptor:YP}=Object,l=Object.prototype.hasOwnProperty;function u(P){return this[P]}var ZP,$P,wP=(P,q,Q)=>{var W=P!=null&&typeof P==="object";if(W){var D=q?ZP??=new WeakMap:$P??=new WeakMap,F=D.get(P);if(F)return F}Q=P!=null?QP(XP(P)):{};let M=q||!P||!P.__esModule?w(Q,"default",{value:P,enumerable:!0}):Q;for(let _ of d(P))if(!l.call(M,_))w(M,_,{get:u.bind(P,_),enumerable:!0});if(W)D.set(P,M);return M},MP=(P)=>{var q=(p??=new WeakMap).get(P),Q;if(q)return q;if(q=w({},"__esModule",{value:!0}),P&&typeof P==="object"||typeof P==="function"){for(var W of d(P))if(!l.call(q,W))w(q,W,{get:u.bind(P,W),enumerable:!(Q=YP(P,W))||Q.enumerable})}return p.set(P,q),q},p;var WP=(P)=>P;function FP(P,q){this[P]=WP.bind(null,q)}var LP=(P,q)=>{for(var Q in q)w(P,Q,{get:q[Q],enumerable:!0,configurable:!0,set:FP.bind(q,Q)})};var c=(P,q)=>()=>(P&&(q=P(P=0)),q);async function i(P){if(T&&Date.now()-T.timestamp<fP)return T.value;let Q=(await P.ledgers().order("desc").limit(1).call()).records[0]?.base_reserve_in_stroops;if(Q===void 0)throw new j.SwapKitError({errorKey:"toolbox_stellar_balance_error",info:{reason:"base_reserve_unavailable"}});return T={timestamp:Date.now(),value:Q},Q}function A(P){return j.AssetValue.from({chain:j.Chain.Stellar,value:P}).getBaseValue("bigint")}function _P(P){let{baseDecimal:q}=j.getChainConfig(j.Chain.Stellar);return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:q,value:P}).getValue("string")}function t({balance:P,baseReserveInStroops:q,numSponsored:Q,numSponsoring:W,sellingLiabilities:D,subentryCount:F}){let M=A(P),_=A(D),K=n+F+W-Q,N=BigInt(K)*BigInt(q),C=M-N-_;return C>0n?C:0n}function NP({account:P,assetValue:q,baseReserveInStroops:Q,fee:W}){let D=P.balances.find((_)=>_.asset_type==="native"),M=(D?t({balance:D.balance,baseReserveInStroops:Q,numSponsored:P.num_sponsored,numSponsoring:P.num_sponsoring,sellingLiabilities:D.selling_liabilities,subentryCount:P.subentry_count}):0n)-BigInt(W);if(M<=0n)throw new j.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:q.toString(),reason:"spendable balance does not cover the transaction fee"}});return M}function UP({baseReserveInStroops:P,sweepAmountInStroops:q}){if(q===void 0||P===void 0)return;let Q=BigInt(n)*BigInt(P);if(q<Q)throw new j.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{amountInStroops:q,minimumStartingBalanceInStroops:Q,reason:"starting balance is below the Stellar account minimum"}})}function zP({account:P,assetCode:q,assetValue:Q,issuer:W,sweep:D}){if(!D)return Q.getValue("string");let F=P.balances.find((M)=>("asset_code"in M)&&M.asset_code===q&&M.asset_issuer===W)?.balance??"0";if(A(F)<=0n)throw new j.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:Q.toString(),balance:F,reason:"trust-line balance is not positive"}});return F}function OP(P){if(!P)return;if(new TextEncoder().encode(P).length>28)throw new j.SwapKitError("helpers_invalid_memo_type")}function R(P){if(!P||typeof P!=="string"||!P.startsWith("G")||P.length!==56)return!1;return xP.test(P)}function S(P){if(typeof P!=="object"||P===null)return;let q="response"in P?P.response:void 0;return typeof q?.status==="number"?q.status:void 0}function KP(P){return S(P)===504}function EP(P){return P.hash?.().toString("hex")}function kP(P){return[...new Set([P,...j.SKConfig.get("rpcUrls")[j.Chain.Stellar]])].filter(Boolean)}async function r(P){if(!R(P))return!1;try{let{StrKey:q}=await import("@stellar/stellar-sdk");return q.isValidEd25519PublicKey(P)}catch{return!1}}async function o(P){let{address:q,ticker:Q}=P,W=q?await r(q):!1;if(P.chain!==j.Chain.Stellar||P.isGasAsset||!DP.test(Q)||!q||!W)throw new j.SwapKitError({errorKey:"helpers_invalid_asset_identifier",info:{identifier:P.toString()}});return{assetCode:Q,issuer:q}}function a(P={}){let q,Q=P.derivationPath||j.NetworkDerivationPath[j.Chain.Stellar],W=j.derivationPathToString(Q.slice(0,3));async function D({phrase:J,path:G}){let{HDKey:Z}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:X}=await import("@scure/bip39"),{Keypair:Y}=await import("@stellar/stellar-sdk"),$=X(J),x=Z.fromMasterSeed($).derive(G,!0);return Y.fromRawEd25519Seed(Buffer.from(x.privateKey))}async function F(){if(q)return q;let J=I.match(P).with({phrase:I.P.string},({phrase:G})=>G).otherwise(()=>{return});if(!J)throw new j.SwapKitError("toolbox_stellar_no_signer");return q=await D({path:W,phrase:J}),q}async function M(J){let{Horizon:G}=await import("@stellar/stellar-sdk"),Z=J||await j.getRPCUrl(j.Chain.Stellar);return new G.Server(Z)}async function _(J,G){for(let Z of G)try{return(await(await M(Z)).transactions().transaction(J).call()).hash||J}catch{}return}async function K(J,G){let Z=await j.getRPCUrl(j.Chain.Stellar),X=kP(Z),Y=EP(J),$;for(let L of X)try{let x=await M(L),{hash:f}=await x.submitTransaction(J);return f}catch(x){if($=x,!KP(x))break;let f=Y?await _(Y,X):void 0;if(f)return f}throw new j.SwapKitError(G,$)}async function N(){try{return(await F()).publicKey()}catch{return""}}async function C(J){let G=J||await N();if(!G)throw new j.SwapKitError("toolbox_stellar_account_not_found");let Z=await M(),[X,Y]=await Promise.allSettled([Z.loadAccount(G),i(Z)]);if(X.status==="rejected"){let $=X.reason;if(S($)===404)return[j.AssetValue.from({chain:j.Chain.Stellar,value:0})];throw $}if(Y.status==="rejected")throw Y.reason;return X.value.balances.map(($)=>{if($.asset_type==="native"){let f=t({balance:$.balance,baseReserveInStroops:Y.value,numSponsored:X.value.num_sponsored,numSponsoring:X.value.num_sponsoring,sellingLiabilities:$.selling_liabilities,subentryCount:X.value.subentry_count}),{baseDecimal:E}=j.getChainConfig(j.Chain.Stellar);return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:E,value:f})}let L="asset_code"in $?$.asset_code:"",x="asset_issuer"in $?$.asset_issuer:"";return j.AssetValue.from({asset:`${j.Chain.Stellar}.${L}-${x}`,asyncTokenLookup:!1,value:$.balance})})}async function e({address:J,assetValue:G}){if(G.chain!==j.Chain.Stellar)throw new j.SwapKitError({errorKey:"toolbox_stellar_trustline_asset_invalid",info:{asset:G.toString()}});if(G.isGasAsset)return!0;if(!G.address)throw new j.SwapKitError({errorKey:"toolbox_stellar_trustline_asset_invalid",info:{asset:G.toString(),reason:"missing issuer"}});let Z=await M(),X;try{X=await Z.loadAccount(J)}catch(Y){if(S(Y)===404)return!1;throw Y}return X.balances.some((Y)=>("asset_code"in Y)&&Y.asset_code===G.ticker&&Y.asset_issuer===G.address)}async function v({recipient:J,assetValue:G,memo:Z,sender:X,sweep:Y}){if(OP(Z),!await r(J))throw new j.SwapKitError("core_transaction_invalid_recipient_address");let L=X||await N();if(!L)throw new j.SwapKitError("toolbox_stellar_no_signer");let{Asset:x,Memo:f,Networks:E,Operation:U,TransactionBuilder:h}=await import("@stellar/stellar-sdk"),z=await M(),k=await z.fetchBaseFee(),B=await z.loadAccount(L),g=Y&&G.isGasAsset?await i(z):void 0,H=new h(B,{fee:String(k),networkPassphrase:E.PUBLIC});if(G.isGasAsset){let O=Y&&g!==void 0?NP({account:B,assetValue:G,baseReserveInStroops:g,fee:k}):void 0,y=O===void 0?G.getValue("string"):_P(O);try{await z.loadAccount(J),H.addOperation(U.payment({amount:y,asset:x.native(),destination:J}))}catch{UP({baseReserveInStroops:g,sweepAmountInStroops:O}),H.addOperation(U.createAccount({destination:J,startingBalance:y}))}}else{let{assetCode:O,issuer:y}=await o(G),JP=zP({account:B,assetCode:O,assetValue:G,issuer:y,sweep:Y});H.addOperation(U.payment({amount:JP,asset:new x(O,y),destination:J}))}if(Z)H.addMemo(f.text(Z));return H.setTimeout(30).build()}async function V({assetValue:J,limit:G,sender:Z}){let X=Z||await N();if(!X)throw new j.SwapKitError("toolbox_stellar_no_signer");let{Asset:Y,Networks:$,Operation:L,TransactionBuilder:x}=await import("@stellar/stellar-sdk"),{assetCode:f,issuer:E}=await o(J),U=await M(),[h,z]=await Promise.all([U.fetchBaseFee(),U.loadAccount(X)]),k=new Y(f,E),B=G!==void 0?L.changeTrust({asset:k,limit:G}):L.changeTrust({asset:k});return new x(z,{fee:String(h),networkPassphrase:$.PUBLIC}).addOperation(B).setTimeout(30).build()}async function b(J){let{TransactionBuilder:G,Networks:Z}=await import("@stellar/stellar-sdk"),X=await F(),Y=G.fromXDR(J.toXDR(),Z.PUBLIC);return Y.sign(X),Y}function m(J){return K(J,"toolbox_stellar_broadcast_error")}async function PP({recipient:J,assetValue:G,memo:Z,sweep:X}){let Y=await F(),$=Y.publicKey(),L=await v({assetValue:G,memo:Z,recipient:J,sender:$,sweep:X});return L.sign(Y),K(L,"toolbox_stellar_transaction_failed")}async function jP({assetValue:J,limit:G}){let Z=await F(),X=await V({assetValue:J,limit:G,sender:Z.publicKey()});return X.sign(Z),K(X,"toolbox_stellar_transaction_failed")}async function qP(J){let G=await b(J);return m(G)}async function GP(){let{baseDecimal:J}=j.getChainConfig(j.Chain.Stellar);try{let X=(await(await M()).feeStats()).fee_charged.p50;return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:J,value:X})}catch{return j.AssetValue.from({chain:j.Chain.Stellar,fromBaseDecimal:J,value:"100"})}}return{broadcastTransaction:m,createTransaction:v,createTrustline:jP,createTrustlineTransaction:V,estimateTransactionFee:GP,getAddress:N,getBalance:C,hasTrustline:e,signAndBroadcastTransaction:qP,signTransaction:b,transfer:PP,validateAddress:R}}var j,I,xP,DP,n=2,fP=600000,T;var s=c(()=>{j=require("@swapkit/helpers"),I=require("ts-pattern"),xP=/^G[A-Z2-7]{55}$/,DP=/^[A-Za-z0-9]{1,12}$/});var BP={};LP(BP,{validateStellarAddress:()=>R,getStellarToolbox:()=>a});module.exports=MP(BP);var HP=c(()=>{s()});HP();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ga as N}from"../../chunk-xbdjxeqd.js";import{AssetValue as
|
|
1
|
+
import{ga as N}from"../../chunk-xbdjxeqd.js";import{AssetValue as U,Chain as M,derivationPathToString as jP,getChainConfig as A,getRPCUrl as l,NetworkDerivationPath as qP,SKConfig as GP,SwapKitError as W}from"@swapkit/helpers";import{match as JP,P as QP}from"ts-pattern";var XP=/^G[A-Z2-7]{55}$/,YP=/^[A-Za-z0-9]{1,12}$/,i=2,ZP=600000,R;async function u(P){if(R&&Date.now()-R.timestamp<ZP)return R.value;let Z=(await P.ledgers().order("desc").limit(1).call()).records[0]?.base_reserve_in_stroops;if(Z===void 0)throw new W({errorKey:"toolbox_stellar_balance_error",info:{reason:"base_reserve_unavailable"}});return R={timestamp:Date.now(),value:Z},Z}function S(P){return U.from({chain:M.Stellar,value:P}).getBaseValue("bigint")}function $P(P){let{baseDecimal:J}=A(M.Stellar);return U.from({chain:M.Stellar,fromBaseDecimal:J,value:P}).getValue("string")}function o({balance:P,baseReserveInStroops:J,numSponsored:Z,numSponsoring:f,sellingLiabilities:_,subentryCount:x}){let $=S(P),k=S(_),B=i+x+f-Z,z=BigInt(B)*BigInt(J),I=$-z-k;return I>0n?I:0n}function MP({account:P,assetValue:J,baseReserveInStroops:Z,fee:f}){let _=P.balances.find((k)=>k.asset_type==="native"),$=(_?o({balance:_.balance,baseReserveInStroops:Z,numSponsored:P.num_sponsored,numSponsoring:P.num_sponsoring,sellingLiabilities:_.selling_liabilities,subentryCount:P.subentry_count}):0n)-BigInt(f);if($<=0n)throw new W({errorKey:"toolbox_sweep_amount_too_low",info:{asset:J.toString(),reason:"spendable balance does not cover the transaction fee"}});return $}function WP({baseReserveInStroops:P,sweepAmountInStroops:J}){if(J===void 0||P===void 0)return;let Z=BigInt(i)*BigInt(P);if(J<Z)throw new W({errorKey:"toolbox_sweep_amount_too_low",info:{amountInStroops:J,minimumStartingBalanceInStroops:Z,reason:"starting balance is below the Stellar account minimum"}})}function FP({account:P,assetCode:J,assetValue:Z,issuer:f,sweep:_}){if(!_)return Z.getValue("string");let x=P.balances.find(($)=>("asset_code"in $)&&$.asset_code===J&&$.asset_issuer===f)?.balance??"0";if(S(x)<=0n)throw new W({errorKey:"toolbox_sweep_amount_too_low",info:{asset:Z.toString(),balance:x,reason:"trust-line balance is not positive"}});return x}function LP(P){if(!P)return;if(new TextEncoder().encode(P).length>28)throw new W("helpers_invalid_memo_type")}function V(P){if(!P||typeof P!=="string"||!P.startsWith("G")||P.length!==56)return!1;return XP.test(P)}function v(P){if(typeof P!=="object"||P===null)return;let J="response"in P?P.response:void 0;return typeof J?.status==="number"?J.status:void 0}function xP(P){return v(P)===504}function DP(P){return P.hash?.().toString("hex")}function fP(P){return[...new Set([P,...GP.get("rpcUrls")[M.Stellar]])].filter(Boolean)}async function n(P){if(!V(P))return!1;try{let{StrKey:J}=await import("@stellar/stellar-sdk");return J.isValidEd25519PublicKey(P)}catch{return!1}}async function c(P){let{address:J,ticker:Z}=P,f=J?await n(J):!1;if(P.chain!==M.Stellar||P.isGasAsset||!YP.test(Z)||!J||!f)throw new W({errorKey:"helpers_invalid_asset_identifier",info:{identifier:P.toString()}});return{assetCode:Z,issuer:J}}function _P(P={}){let J,Z=P.derivationPath||qP[M.Stellar],f=jP(Z.slice(0,3));async function _({phrase:q,path:j}){let{HDKey:X}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:G}=await import("@scure/bip39"),{Keypair:Q}=await import("@stellar/stellar-sdk"),Y=G(q),L=X.fromMasterSeed(Y).derive(j,!0);return Q.fromRawEd25519Seed(Buffer.from(L.privateKey))}async function x(){if(J)return J;let q=JP(P).with({phrase:QP.string},({phrase:j})=>j).otherwise(()=>{return});if(!q)throw new W("toolbox_stellar_no_signer");return J=await _({path:f,phrase:q}),J}async function $(q){let{Horizon:j}=await import("@stellar/stellar-sdk"),X=q||await l(M.Stellar);return new j.Server(X)}async function k(q,j){for(let X of j)try{return(await(await $(X)).transactions().transaction(q).call()).hash||q}catch{}return}async function B(q,j){let X=await l(M.Stellar),G=fP(X),Q=DP(q),Y;for(let F of G)try{let L=await $(F),{hash:D}=await L.submitTransaction(q);return D}catch(L){if(Y=L,!xP(L))break;let D=Q?await k(Q,G):void 0;if(D)return D}throw new W(j,Y)}async function z(){try{return(await x()).publicKey()}catch{return""}}async function I(q){let j=q||await z();if(!j)throw new W("toolbox_stellar_account_not_found");let X=await $(),[G,Q]=await Promise.allSettled([X.loadAccount(j),u(X)]);if(G.status==="rejected"){let Y=G.reason;if(v(Y)===404)return[U.from({chain:M.Stellar,value:0})];throw Y}if(Q.status==="rejected")throw Q.reason;return G.value.balances.map((Y)=>{if(Y.asset_type==="native"){let D=o({balance:Y.balance,baseReserveInStroops:Q.value,numSponsored:G.value.num_sponsored,numSponsoring:G.value.num_sponsoring,sellingLiabilities:Y.selling_liabilities,subentryCount:G.value.subentry_count}),{baseDecimal:H}=A(M.Stellar);return U.from({chain:M.Stellar,fromBaseDecimal:H,value:D})}let F="asset_code"in Y?Y.asset_code:"",L="asset_issuer"in Y?Y.asset_issuer:"";return U.from({asset:`${M.Stellar}.${F}-${L}`,asyncTokenLookup:!1,value:Y.balance})})}async function t({address:q,assetValue:j}){if(j.chain!==M.Stellar)throw new W({errorKey:"toolbox_stellar_trustline_asset_invalid",info:{asset:j.toString()}});if(j.isGasAsset)return!0;if(!j.address)throw new W({errorKey:"toolbox_stellar_trustline_asset_invalid",info:{asset:j.toString(),reason:"missing issuer"}});let X=await $(),G;try{G=await X.loadAccount(q)}catch(Q){if(v(Q)===404)return!1;throw Q}return G.balances.some((Q)=>("asset_code"in Q)&&Q.asset_code===j.ticker&&Q.asset_issuer===j.address)}async function b({recipient:q,assetValue:j,memo:X,sender:G,sweep:Q}){if(LP(X),!await n(q))throw new W("core_transaction_invalid_recipient_address");let F=G||await z();if(!F)throw new W("toolbox_stellar_no_signer");let{Asset:L,Memo:D,Networks:H,Operation:O,TransactionBuilder:h}=await import("@stellar/stellar-sdk"),K=await $(),y=await K.fetchBaseFee(),w=await K.loadAccount(F),g=Q&&j.isGasAsset?await u(K):void 0,C=new h(w,{fee:String(y),networkPassphrase:H.PUBLIC});if(j.isGasAsset){let E=Q&&g!==void 0?MP({account:w,assetValue:j,baseReserveInStroops:g,fee:y}):void 0,T=E===void 0?j.getValue("string"):$P(E);try{await K.loadAccount(q),C.addOperation(O.payment({amount:T,asset:L.native(),destination:q}))}catch{WP({baseReserveInStroops:g,sweepAmountInStroops:E}),C.addOperation(O.createAccount({destination:q,startingBalance:T}))}}else{let{assetCode:E,issuer:T}=await c(j),PP=FP({account:w,assetCode:E,assetValue:j,issuer:T,sweep:Q});C.addOperation(O.payment({amount:PP,asset:new L(E,T),destination:q}))}if(X)C.addMemo(D.text(X));return C.setTimeout(30).build()}async function m({assetValue:q,limit:j,sender:X}){let G=X||await z();if(!G)throw new W("toolbox_stellar_no_signer");let{Asset:Q,Networks:Y,Operation:F,TransactionBuilder:L}=await import("@stellar/stellar-sdk"),{assetCode:D,issuer:H}=await c(q),O=await $(),[h,K]=await Promise.all([O.fetchBaseFee(),O.loadAccount(G)]),y=new Q(D,H),w=j!==void 0?F.changeTrust({asset:y,limit:j}):F.changeTrust({asset:y});return new L(K,{fee:String(h),networkPassphrase:Y.PUBLIC}).addOperation(w).setTimeout(30).build()}async function p(q){let{TransactionBuilder:j,Networks:X}=await import("@stellar/stellar-sdk"),G=await x(),Q=j.fromXDR(q.toXDR(),X.PUBLIC);return Q.sign(G),Q}function d(q){return B(q,"toolbox_stellar_broadcast_error")}async function r({recipient:q,assetValue:j,memo:X,sweep:G}){let Q=await x(),Y=Q.publicKey(),F=await b({assetValue:j,memo:X,recipient:q,sender:Y,sweep:G});return F.sign(Q),B(F,"toolbox_stellar_transaction_failed")}async function a({assetValue:q,limit:j}){let X=await x(),G=await m({assetValue:q,limit:j,sender:X.publicKey()});return G.sign(X),B(G,"toolbox_stellar_transaction_failed")}async function s(q){let j=await p(q);return d(j)}async function e(){let{baseDecimal:q}=A(M.Stellar);try{let G=(await(await $()).feeStats()).fee_charged.p50;return U.from({chain:M.Stellar,fromBaseDecimal:q,value:G})}catch{return U.from({chain:M.Stellar,fromBaseDecimal:q,value:"100"})}}return{broadcastTransaction:d,createTransaction:b,createTrustline:a,createTrustlineTransaction:m,estimateTransactionFee:e,getAddress:z,getBalance:I,hasTrustline:t,signAndBroadcastTransaction:s,signTransaction:p,transfer:r,validateAddress:V}}export{V as validateStellarAddress,_P as getStellarToolbox};
|
|
@@ -13,6 +13,10 @@ export declare function getStellarToolbox(params?: StellarToolboxParams): {
|
|
|
13
13
|
estimateTransactionFee: () => Promise<AssetValue>;
|
|
14
14
|
getAddress: () => Promise<string>;
|
|
15
15
|
getBalance: (checkAddress?: string) => Promise<AssetValue[]>;
|
|
16
|
+
hasTrustline: ({ address, assetValue }: {
|
|
17
|
+
address: string;
|
|
18
|
+
assetValue: AssetValue;
|
|
19
|
+
}) => Promise<boolean>;
|
|
16
20
|
signAndBroadcastTransaction: (transaction: {
|
|
17
21
|
toXDR: () => string;
|
|
18
22
|
}) => Promise<string>;
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"dependencies": { "@swapkit/helpers": "4.
|
|
2
|
+
"dependencies": { "@swapkit/helpers": "4.19.0", "@swapkit/utxo-signer": "2.2.3" },
|
|
3
3
|
"description": "SwapKit - Toolboxes",
|
|
4
4
|
"devDependencies": {
|
|
5
5
|
"@aptos-labs/ts-sdk": "7.0.1",
|
|
@@ -205,5 +205,5 @@
|
|
|
205
205
|
"type-check:go": "tsgo"
|
|
206
206
|
},
|
|
207
207
|
"type": "module",
|
|
208
|
-
"version": "4.
|
|
208
|
+
"version": "4.26.0"
|
|
209
209
|
}
|