@swapkit/toolboxes 4.18.0 → 4.19.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 xx=Object.create;var{getPrototypeOf:vx,defineProperty:D,getOwnPropertyNames:C,getOwnPropertyDescriptor:zx}=Object,c=Object.prototype.hasOwnProperty;function A(x){return this[x]}var Gx,Qx,Jx=(x,Q,Z)=>{var H=x!=null&&typeof x==="object";if(H){var B=Q?Gx??=new WeakMap:Qx??=new WeakMap,y=B.get(x);if(y)return y}Z=x!=null?xx(vx(x)):{};let N=Q||!x||!x.__esModule?D(Z,"default",{value:x,enumerable:!0}):Z;for(let I of C(x))if(!c.call(N,I))D(N,I,{get:A.bind(x,I),enumerable:!0});if(H)B.set(x,N);return N},Xx=(x)=>{var Q=(w??=new WeakMap).get(x),Z;if(Q)return Q;if(Q=D({},"__esModule",{value:!0}),x&&typeof x==="object"||typeof x==="function"){for(var H of C(x))if(!c.call(Q,H))D(Q,H,{get:A.bind(x,H),enumerable:!(Z=zx(x,H))||Z.enumerable})}return w.set(x,Q),Q},w;var Yx=(x)=>x;function Zx(x,Q){this[x]=Yx.bind(null,Q)}var $x=(x,Q)=>{for(var Z in Q)D(x,Z,{get:Q[Z],enumerable:!0,configurable:!0,set:Zx.bind(Q,Z)})};var V=(x,Q)=>()=>(x&&(Q=x(x=0)),Q);function Ux(){function x(){let Q=Date.now(),Z=T||Q;return T=Z,Q>T?Q:Z+1}return kx+x().toString(36)}function i(x){return async function(Z,H=!0){let B=await m.SwapKitApi.getChainBalance({address:Z,chain:x,scamFilter:H}),{baseDecimal:y}=u.getChainConfig(x),N=B.map(({identifier:p,value:h,decimal:U})=>{return new u.AssetValue({decimal:U||y,identifier:p,value:h})});if(!N.some((p)=>p.isGasAsset))return[u.AssetValue.from({chain:x}),...N];return N}}var u,m,kx,T=0;var g=V(()=>{u=require("@swapkit/helpers"),m=require("@swapkit/helpers/api"),kx=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function Ix(){let x=Date.now();if(F&&x-o<Bx)return F;return F=await d.getHttpEndpoint(),o=x,F}async function Ox(){let[x]=Y.SKConfig.get("rpcUrls")[Y.Chain.Ton]??[];if(x)return x;return await Ix()}function yx(x={}){let Q,Z,H;async function B(){if(!Q){let v=x.provider??await Ox();Q=new z.TonClient({endpoint:v})}return Q}async function y(){return(await I()).address.toString()}async function N(){if(H)return H;return H=await K.match(x).with({phrase:K.P.string},async({phrase:v})=>r.mnemonicToWalletKey(v.split(" "))).with({signer:K.P.any},({signer:v})=>v).otherwise(()=>{return}),H}async function I(v){if(!Z||v){let G=await N(),X=await B(),$=v||G;if(!$)throw new Y.SwapKitError("core_wallet_connection_not_found");let k=z.WalletContractV4.create({publicKey:$.publicKey,workchain:0});Z=X.open(k)}return Z}let p=i(Y.Chain.Ton);async function h({assetValue:v,recipient:G,memo:X,sender:$}){if(v.isGasAsset){let f=X?S(X).toBoc().toString("base64"):void 0;return[{address:G,amount:v.getBaseValue("string"),payload:f}]}let k=v.address;if(!k)throw new Y.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:v.toString()}});let q=$??await y(),O=await E({jettonMasterAddress:k,ownerAddress:q}),L=z.Address.parse(G),R=z.Address.parse(q),j=v.getBaseValue("bigint"),P=X?S(X):void 0,J=e({destinationAddress:L,forwardPayload:P,jettonAmount:j,responseAddress:R});return[{address:O.toString(),amount:Nx.toString(),payload:J.toBoc().toString("base64")}]}function U({sender:v,...G}){return h({...G,sender:v})}function M(v){return v.map((G)=>{let X=G.payload?z.Cell.fromBase64(G.payload):void 0,$=G.stateInit?z.loadStateInit(z.Cell.fromBase64(G.stateInit).asSlice()):void 0,k=z.Address.parse(G.address),q=z.Address.isFriendly(G.address)?z.Address.parseFriendly(G.address).isBounceable:!0;return z.internal({body:X,bounce:q,init:$,to:k,value:BigInt(G.amount)})})}async function _(v){let G=await N(),X=await I();if(!X||!G)throw new Y.SwapKitError("core_wallet_connection_not_found");let $=await B(),{state:k}=await $.getContractState(X.address),q=k==="active",O=q?await X.getSeqno():0,L=X.createTransfer({messages:M(v),secretKey:G.secretKey,sendMode:l,seqno:O}),R=z.external({body:L,init:q?void 0:X.init,to:X.address});return z.beginCell().store(z.storeMessage(R)).endCell()}async function b(v){return await(await B()).sendFile(v.toBoc()),v.hash().toString("hex")}async function W(v){let G=await _(v);return b(G)}async function a({assetValue:v,recipient:G,memo:X}){let $=await U({assetValue:v,memo:X,recipient:G});return W($)}async function s({sender:v,...G}){let{baseDecimal:X}=Y.getChainConfig(Y.Chain.Ton),$=await K.match(v).with(K.P.string,(O)=>{return z.Address.parseFriendly(O).address}).otherwise(async()=>{return(await I()).address});if(!$)throw new Y.SwapKitError("toolbox_fee_estimation_failed",{chain:Y.Chain.Ton});let k=Y.AssetValue.from({chain:Y.Chain.Ton,value:"0.01"}),q=await B();try{let O=await U({sender:v,...G}),L=await N(),R=await I();if(!R||!L)return k;let j=await R.getSeqno(),P=R.createTransfer({messages:M(O),secretKey:L.secretKey,sendMode:l,seqno:j}),{source_fees:J}=await q.estimateExternalMessageFee($,{body:P,ignoreSignature:!0,initCode:null,initData:null}),f=J.in_fwd_fee+J.storage_fee+J.gas_fee+J.fwd_fee;return k.set(Y.SwapKitNumber.fromBigInt(BigInt(f),X))}catch{return k}}async function E({jettonMasterAddress:v,ownerAddress:G}){try{let X=await B(),$=z.Address.parse(v),k=z.Address.parse(G);return await X.open(z.JettonMaster.create($)).getWalletAddress(k)}catch{throw new Y.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:v,ownerAddress:G}})}}function e({jettonAmount:v,destinationAddress:G,responseAddress:X,forwardAmount:$=Hx,forwardPayload:k}){let q=z.beginCell().storeUint(qx,32).storeUint(0,64).storeCoins(v).storeAddress(G).storeAddress(X).storeBit(0).storeCoins($);if(k)q.storeBit(1).storeRef(k);else q.storeBit(0);return q.endCell()}function S(v){return z.beginCell().storeUint(0,32).storeStringTail(v).endCell()}return{broadcastTransaction:b,createTransaction:U,estimateTransactionFee:s,getAddress:y,getBalance:p,getJettonWalletAddress:E,sign:_,signAndBroadcastTransaction:W,transfer:a,validateAddress:n}}function n(x){try{return z.Address.parse(x),!0}catch{return!1}}var d,Y,r,z,K,qx=260734629,Hx,Nx,l,Bx=60000,F,o=0;var t=V(()=>{g();d=require("@orbs-network/ton-access"),Y=require("@swapkit/helpers"),r=require("@ton/crypto"),z=require("@ton/ton"),K=require("ts-pattern"),Hx=z.toNano("0.01"),Nx=z.toNano("0.05"),l=z.SendMode.PAY_GAS_SEPARATELY+z.SendMode.IGNORE_ERRORS});var Kx={};$x(Kx,{validateTonAddress:()=>n,getTONToolbox:()=>yx});module.exports=Xx(Kx);var Lx=V(()=>{t()});Lx();
1
+ var G3=Object.create;var{getPrototypeOf:Q3,defineProperty:D,getOwnPropertyNames:w,getOwnPropertyDescriptor:X3}=Object,c=Object.prototype.hasOwnProperty;function A(v){return this[v]}var Z3,$3,D3=(v,X,q)=>{var x=v!=null&&typeof v==="object";if(x){var B=X?Z3??=new WeakMap:$3??=new WeakMap,R=B.get(v);if(R)return R}q=v!=null?G3(Q3(v)):{};let I=X||!v||!v.__esModule?D(q,"default",{value:v,enumerable:!0}):q;for(let L of w(v))if(!c.call(I,L))D(I,L,{get:A.bind(v,L),enumerable:!0});if(x)B.set(v,I);return I},q3=(v)=>{var X=(p??=new WeakMap).get(v),q;if(X)return X;if(X=D({},"__esModule",{value:!0}),v&&typeof v==="object"||typeof v==="function"){for(var x of w(v))if(!c.call(X,x))D(X,x,{get:A.bind(v,x),enumerable:!(q=X3(v,x))||q.enumerable})}return p.set(v,X),X},p;var H3=(v)=>v;function Y3(v,X){this[v]=H3.bind(null,X)}var k3=(v,X)=>{for(var q in X)D(v,q,{get:X[q],enumerable:!0,configurable:!0,set:Y3.bind(X,q)})};var f=(v,X)=>()=>(v&&(X=v(v=0)),X);function y3(){function v(){let X=Date.now(),q=W||X;return W=q,X>W?X:q+1}return x3+v().toString(36)}function g(v){return async function(q,x=!0){let B=await m.SwapKitApi.getChainBalance({address:q,chain:v,scamFilter:x}),{baseDecimal:R}=V.getChainConfig(v),I=B.map(({identifier:O,value:h,decimal:j})=>{return new V.AssetValue({decimal:j||R,identifier:O,value:h})});if(!I.some((O)=>O.isGasAsset))return[V.AssetValue.from({chain:v}),...I];return I}}var V,m,x3,W=0;var i=f(()=>{V=require("@swapkit/helpers"),m=require("@swapkit/helpers/api"),x3=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function U3(){let v=Date.now();if(y&&v-o<R3)return y;return y=await d.getHttpEndpoint(),o=v,y}async function K3(){let[v]=$.SKConfig.get("rpcUrls")[$.Chain.Ton]??[];if(v)return v;return await U3()}function N3(v={}){let X,q,x;async function B(){if(!X){let z=v.provider??await K3();X=new G.TonClient({endpoint:z})}return X}async function R(){return(await L()).address.toString()}async function I(){if(x)return x;return x=await K.match(v).with({phrase:K.P.string},async({phrase:z})=>n.mnemonicToWalletKey(z.split(" "))).with({signer:K.P.any},({signer:z})=>z).otherwise(()=>{return}),x}async function L(z){if(!q||z){let Q=await I(),Z=await B(),Y=z||Q;if(!Y)throw new $.SwapKitError("core_wallet_connection_not_found");let H=G.WalletContractV4.create({publicKey:Y.publicKey,workchain:0});q=Z.open(H)}return q}let O=g($.Chain.Ton);async function h({assetValue:z,recipient:Q,memo:Z,sender:Y,sweep:H}){if(z.isGasAsset){let v3=Z?S(Z).toBoc().toString("base64"):void 0,z3=H?L3:void 0;return[{address:Q,amount:z.getBaseValue("string"),payload:v3,sendMode:z3}]}if(H)throw new $.SwapKitError({errorKey:"core_swap_invalid_params",info:{asset:z.toString(),reason:"TON sweep is only supported for the native gas asset"}});let k=z.address;if(!k)throw new $.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:z.toString()}});let J=Y??await R(),N=await C({jettonMasterAddress:k,ownerAddress:J}),U=G.Address.parse(Q),P=G.Address.parse(J),u=z.getBaseValue("bigint"),F=Z?S(Z):void 0,_=e({destinationAddress:U,forwardPayload:F,jettonAmount:u,responseAddress:P});return[{address:N.toString(),amount:J3.toString(),payload:_.toBoc().toString("base64")}]}function j({sender:z,...Q}){return h({...Q,sender:z})}function M(z){return z.map((Q)=>{let Z=Q.payload?G.Cell.fromBase64(Q.payload):void 0,Y=Q.stateInit?G.loadStateInit(G.Cell.fromBase64(Q.stateInit).asSlice()):void 0,H=G.Address.parse(Q.address),k=G.Address.isFriendly(Q.address)?G.Address.parseFriendly(Q.address).isBounceable:!0;return G.internal({body:Z,bounce:k,init:Y,to:H,value:BigInt(Q.amount)})})}async function b(z){let Q=await I(),Z=await L();if(!Z||!Q)throw new $.SwapKitError("core_wallet_connection_not_found");let Y=await B(),{state:H}=await Y.getContractState(Z.address),k=H==="active",J=k?await Z.getSeqno():0,N=Z.createTransfer({messages:M(z),secretKey:Q.secretKey,sendMode:z[0]?.sendMode??l,seqno:J}),U=G.external({body:N,init:k?void 0:Z.init,to:Z.address});return G.beginCell().store(G.storeMessage(U)).endCell()}async function T(z){return await(await B()).sendFile(z.toBoc()),z.hash().toString("hex")}async function E(z){let Q=await b(z);return T(Q)}async function a({assetValue:z,recipient:Q,memo:Z,sweep:Y}){let H=await j({assetValue:z,memo:Z,recipient:Q,sweep:Y});return E(H)}async function s({sender:z,...Q}){let{baseDecimal:Z}=$.getChainConfig($.Chain.Ton),Y=await K.match(z).with(K.P.string,(J)=>{return G.Address.parseFriendly(J).address}).otherwise(async()=>{return(await L()).address});if(!Y)throw new $.SwapKitError("toolbox_fee_estimation_failed",{chain:$.Chain.Ton});let H=$.AssetValue.from({chain:$.Chain.Ton,value:"0.01"}),k=await B();try{let J=await j({sender:z,...Q}),N=await I(),U=await L();if(!U||!N)return H;let P=await U.getSeqno(),u=U.createTransfer({messages:M(J),secretKey:N.secretKey,sendMode:J[0]?.sendMode??l,seqno:P}),{source_fees:F}=await k.estimateExternalMessageFee(Y,{body:u,ignoreSignature:!0,initCode:null,initData:null}),_=F.in_fwd_fee+F.storage_fee+F.gas_fee+F.fwd_fee;return H.set($.SwapKitNumber.fromBigInt(BigInt(_),Z))}catch{return H}}async function C({jettonMasterAddress:z,ownerAddress:Q}){try{let Z=await B(),Y=G.Address.parse(z),H=G.Address.parse(Q);return await Z.open(G.JettonMaster.create(Y)).getWalletAddress(H)}catch{throw new $.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:z,ownerAddress:Q}})}}function e({jettonAmount:z,destinationAddress:Q,responseAddress:Z,forwardAmount:Y=B3,forwardPayload:H}){let k=G.beginCell().storeUint(I3,32).storeUint(0,64).storeCoins(z).storeAddress(Q).storeAddress(Z).storeBit(0).storeCoins(Y);if(H)k.storeBit(1).storeRef(H);else k.storeBit(0);return k.endCell()}function S(z){return G.beginCell().storeUint(0,32).storeStringTail(z).endCell()}return{broadcastTransaction:T,createTransaction:j,estimateTransactionFee:s,getAddress:R,getBalance:O,getJettonWalletAddress:C,sign:b,signAndBroadcastTransaction:E,transfer:a,validateAddress:r}}function r(v){try{return G.Address.parse(v),!0}catch{return!1}}var d,$,n,G,K,I3=260734629,B3,J3,l,L3,R3=60000,y,o=0;var t=f(()=>{i();d=require("@orbs-network/ton-access"),$=require("@swapkit/helpers"),n=require("@ton/crypto"),G=require("@ton/ton"),K=require("ts-pattern"),B3=G.toNano("0.01"),J3=G.toNano("0.05"),l=G.SendMode.PAY_GAS_SEPARATELY+G.SendMode.IGNORE_ERRORS,L3=G.SendMode.CARRY_ALL_REMAINING_BALANCE+G.SendMode.IGNORE_ERRORS});var O3={};k3(O3,{validateTonAddress:()=>r,getTONToolbox:()=>N3});module.exports=q3(O3);var j3=f(()=>{t()});j3();
@@ -1 +1 @@
1
- var s=Object.defineProperty;var e=(v)=>v;function xx(v,Q){this[v]=e.bind(null,Q)}var vx=(v,Q)=>{for(var $ in Q)s(v,$,{get:Q[$],enumerable:!0,configurable:!0,set:xx.bind(Q,$)})};var P=(v,Q)=>()=>(v&&(Q=v(v=0)),Q);var Px=((v)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(v,{get:(Q,$)=>(typeof require<"u"?require:Q)[$]}):v)(function(v){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+v+'" is not supported')});import{AssetValue as w,getChainConfig as zx}from"@swapkit/helpers";import{SwapKitApi as Gx}from"@swapkit/helpers/api";function Mx(){function v(){let Q=Date.now(),$=f||Q;return f=$,Q>f?Q:$+1}return Qx+v().toString(36)}function C(v){return async function($,I=!0){let H=await Gx.getChainBalance({address:$,chain:v,scamFilter:I}),{baseDecimal:U}=zx(v),N=H.map(({identifier:K,value:u,decimal:L})=>{return new w({decimal:L||U,identifier:K,value:u})});if(!N.some((K)=>K.isGasAsset))return[w.from({chain:v}),...N];return N}}var Qx,f=0;var c=P(()=>{Qx=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{getHttpEndpoint as Xx}from"@orbs-network/ton-access";import{AssetValue as Yx,Chain as p,getChainConfig as Zx,SKConfig as $x,SwapKitError as J,SwapKitNumber as kx}from"@swapkit/helpers";import{mnemonicToWalletKey as qx}from"@ton/crypto";import{Address as k,beginCell as V,Cell as A,external as Hx,internal as Nx,JettonMaster as Bx,loadStateInit as Ix,SendMode as m,storeMessage as Ox,TonClient as yx,toNano as o,WalletContractV4 as Rx}from"@ton/ton";import{match as i,P as T}from"ts-pattern";async function Ux(){let v=Date.now();if(D&&v-l<px)return D;return D=await Xx(),l=v,D}async function Dx(){let[v]=$x.get("rpcUrls")[p.Ton]??[];if(v)return v;return await Ux()}function ux(v={}){let Q,$,I;async function H(){if(!Q){let x=v.provider??await Dx();Q=new yx({endpoint:x})}return Q}async function U(){return(await R()).address.toString()}async function N(){if(I)return I;return I=await i(v).with({phrase:T.string},async({phrase:x})=>qx(x.split(" "))).with({signer:T.any},({signer:x})=>x).otherwise(()=>{return}),I}async function R(x){if(!$||x){let z=await N(),G=await H(),X=x||z;if(!X)throw new J("core_wallet_connection_not_found");let Y=Rx.create({publicKey:X.publicKey,workchain:0});$=G.open(Y)}return $}let K=C(p.Ton);async function u({assetValue:x,recipient:z,memo:G,sender:X}){if(x.isGasAsset){let j=G?S(G).toBoc().toString("base64"):void 0;return[{address:z,amount:x.getBaseValue("string"),payload:j}]}let Y=x.address;if(!Y)throw new J({errorKey:"core_swap_contract_not_found",info:{asset:x.toString()}});let Z=X??await U(),q=await E({jettonMasterAddress:Y,ownerAddress:Z}),O=k.parse(z),B=k.parse(Z),F=x.getBaseValue("bigint"),h=G?S(G):void 0,y=a({destinationAddress:O,forwardPayload:h,jettonAmount:F,responseAddress:B});return[{address:q.toString(),amount:Jx.toString(),payload:y.toBoc().toString("base64")}]}function L({sender:x,...z}){return u({...z,sender:x})}function M(x){return x.map((z)=>{let G=z.payload?A.fromBase64(z.payload):void 0,X=z.stateInit?Ix(A.fromBase64(z.stateInit).asSlice()):void 0,Y=k.parse(z.address),Z=k.isFriendly(z.address)?k.parseFriendly(z.address).isBounceable:!0;return Nx({body:G,bounce:Z,init:X,to:Y,value:BigInt(z.amount)})})}async function _(x){let z=await N(),G=await R();if(!G||!z)throw new J("core_wallet_connection_not_found");let X=await H(),{state:Y}=await X.getContractState(G.address),Z=Y==="active",q=Z?await G.getSeqno():0,O=G.createTransfer({messages:M(x),secretKey:z.secretKey,sendMode:g,seqno:q}),B=Hx({body:O,init:Z?void 0:G.init,to:G.address});return V().store(Ox(B)).endCell()}async function b(x){return await(await H()).sendFile(x.toBoc()),x.hash().toString("hex")}async function W(x){let z=await _(x);return b(z)}async function n({assetValue:x,recipient:z,memo:G}){let X=await L({assetValue:x,memo:G,recipient:z});return W(X)}async function t({sender:x,...z}){let{baseDecimal:G}=Zx(p.Ton),X=await i(x).with(T.string,(q)=>{return k.parseFriendly(q).address}).otherwise(async()=>{return(await R()).address});if(!X)throw new J("toolbox_fee_estimation_failed",{chain:p.Ton});let Y=Yx.from({chain:p.Ton,value:"0.01"}),Z=await H();try{let q=await L({sender:x,...z}),O=await N(),B=await R();if(!B||!O)return Y;let F=await B.getSeqno(),h=B.createTransfer({messages:M(q),secretKey:O.secretKey,sendMode:g,seqno:F}),{source_fees:y}=await Z.estimateExternalMessageFee(X,{body:h,ignoreSignature:!0,initCode:null,initData:null}),j=y.in_fwd_fee+y.storage_fee+y.gas_fee+y.fwd_fee;return Y.set(kx.fromBigInt(BigInt(j),G))}catch{return Y}}async function E({jettonMasterAddress:x,ownerAddress:z}){try{let G=await H(),X=k.parse(x),Y=k.parse(z);return await G.open(Bx.create(X)).getWalletAddress(Y)}catch{throw new J({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:x,ownerAddress:z}})}}function a({jettonAmount:x,destinationAddress:z,responseAddress:G,forwardAmount:X=Lx,forwardPayload:Y}){let Z=V().storeUint(Kx,32).storeUint(0,64).storeCoins(x).storeAddress(z).storeAddress(G).storeBit(0).storeCoins(X);if(Y)Z.storeBit(1).storeRef(Y);else Z.storeBit(0);return Z.endCell()}function S(x){return V().storeUint(0,32).storeStringTail(x).endCell()}return{broadcastTransaction:b,createTransaction:L,estimateTransactionFee:t,getAddress:U,getBalance:K,getJettonWalletAddress:E,sign:_,signAndBroadcastTransaction:W,transfer:n,validateAddress:d}}function d(v){try{return k.parse(v),!0}catch{return!1}}var Kx=260734629,Lx,Jx,g,px=60000,D,l=0;var r=P(()=>{c();Lx=o("0.01"),Jx=o("0.05"),g=m.PAY_GAS_SEPARATELY+m.IGNORE_ERRORS});var hx={};vx(hx,{validateTonAddress:()=>d,getTONToolbox:()=>ux});var jx=P(()=>{r()});jx();export{d as validateTonAddress,ux as getTONToolbox};
1
+ var v3=Object.defineProperty;var z3=(z)=>z;function G3(z,X){this[z]=z3.bind(null,X)}var Q3=(z,X)=>{for(var H in X)v3(z,H,{get:X[H],enumerable:!0,configurable:!0,set:G3.bind(X,H)})};var _=(z,X)=>()=>(z&&(X=z(z=0)),X);var W3=((z)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(z,{get:(X,H)=>(typeof require<"u"?require:X)[H]}):z)(function(z){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+z+'" is not supported')});import{AssetValue as w,getChainConfig as X3}from"@swapkit/helpers";import{SwapKitApi as Z3}from"@swapkit/helpers/api";function E3(){function z(){let X=Date.now(),H=f||X;return f=H,X>f?X:H+1}return $3+z().toString(36)}function c(z){return async function(H,J=!0){let x=await Z3.getChainBalance({address:H,chain:z,scamFilter:J}),{baseDecimal:j}=X3(z),I=x.map(({identifier:N,value:y,decimal:F})=>{return new w({decimal:F||j,identifier:N,value:y})});if(!I.some((N)=>N.isGasAsset))return[w.from({chain:z}),...I];return I}}var $3,f=0;var A=_(()=>{$3=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{getHttpEndpoint as q3}from"@orbs-network/ton-access";import{AssetValue as H3,Chain as O,getChainConfig as Y3,SKConfig as k3,SwapKitError as U,SwapKitNumber as x3}from"@swapkit/helpers";import{mnemonicToWalletKey as I3}from"@ton/crypto";import{Address as k,beginCell as W,Cell as m,external as B3,internal as J3,JettonMaster as L3,loadStateInit as R3,SendMode as V,storeMessage as U3,TonClient as K3,toNano as o,WalletContractV4 as N3}from"@ton/ton";import{match as g,P as M}from"ts-pattern";async function y3(){let z=Date.now();if(D&&z-l<V3)return D;return D=await q3(),l=z,D}async function h3(){let[z]=k3.get("rpcUrls")[O.Ton]??[];if(z)return z;return await y3()}function P3(z={}){let X,H,J;async function x(){if(!X){let v=z.provider??await h3();X=new K3({endpoint:v})}return X}async function j(){return(await K()).address.toString()}async function I(){if(J)return J;return J=await g(z).with({phrase:M.string},async({phrase:v})=>I3(v.split(" "))).with({signer:M.any},({signer:v})=>v).otherwise(()=>{return}),J}async function K(v){if(!H||v){let G=await I(),Q=await x(),$=v||G;if(!$)throw new U("core_wallet_connection_not_found");let Z=N3.create({publicKey:$.publicKey,workchain:0});H=Q.open(Z)}return H}let N=c(O.Ton);async function y({assetValue:v,recipient:G,memo:Q,sender:$,sweep:Z}){if(v.isGasAsset){let s=Q?p(Q).toBoc().toString("base64"):void 0,e=Z?D3:void 0;return[{address:G,amount:v.getBaseValue("string"),payload:s,sendMode:e}]}if(Z)throw new U({errorKey:"core_swap_invalid_params",info:{asset:v.toString(),reason:"TON sweep is only supported for the native gas asset"}});let q=v.address;if(!q)throw new U({errorKey:"core_swap_contract_not_found",info:{asset:v.toString()}});let Y=$??await j(),L=await S({jettonMasterAddress:q,ownerAddress:Y}),B=k.parse(G),h=k.parse(Y),P=v.getBaseValue("bigint"),R=Q?p(Q):void 0,u=a({destinationAddress:B,forwardPayload:R,jettonAmount:P,responseAddress:h});return[{address:L.toString(),amount:j3.toString(),payload:u.toBoc().toString("base64")}]}function F({sender:v,...G}){return y({...G,sender:v})}function b(v){return v.map((G)=>{let Q=G.payload?m.fromBase64(G.payload):void 0,$=G.stateInit?R3(m.fromBase64(G.stateInit).asSlice()):void 0,Z=k.parse(G.address),q=k.isFriendly(G.address)?k.parseFriendly(G.address).isBounceable:!0;return J3({body:Q,bounce:q,init:$,to:Z,value:BigInt(G.amount)})})}async function T(v){let G=await I(),Q=await K();if(!Q||!G)throw new U("core_wallet_connection_not_found");let $=await x(),{state:Z}=await $.getContractState(Q.address),q=Z==="active",Y=q?await Q.getSeqno():0,L=Q.createTransfer({messages:b(v),secretKey:G.secretKey,sendMode:v[0]?.sendMode??i,seqno:Y}),B=B3({body:L,init:q?void 0:Q.init,to:Q.address});return W().store(U3(B)).endCell()}async function E(v){return await(await x()).sendFile(v.toBoc()),v.hash().toString("hex")}async function C(v){let G=await T(v);return E(G)}async function r({assetValue:v,recipient:G,memo:Q,sweep:$}){let Z=await F({assetValue:v,memo:Q,recipient:G,sweep:$});return C(Z)}async function t({sender:v,...G}){let{baseDecimal:Q}=Y3(O.Ton),$=await g(v).with(M.string,(Y)=>{return k.parseFriendly(Y).address}).otherwise(async()=>{return(await K()).address});if(!$)throw new U("toolbox_fee_estimation_failed",{chain:O.Ton});let Z=H3.from({chain:O.Ton,value:"0.01"}),q=await x();try{let Y=await F({sender:v,...G}),L=await I(),B=await K();if(!B||!L)return Z;let h=await B.getSeqno(),P=B.createTransfer({messages:b(Y),secretKey:L.secretKey,sendMode:Y[0]?.sendMode??i,seqno:h}),{source_fees:R}=await q.estimateExternalMessageFee($,{body:P,ignoreSignature:!0,initCode:null,initData:null}),u=R.in_fwd_fee+R.storage_fee+R.gas_fee+R.fwd_fee;return Z.set(x3.fromBigInt(BigInt(u),Q))}catch{return Z}}async function S({jettonMasterAddress:v,ownerAddress:G}){try{let Q=await x(),$=k.parse(v),Z=k.parse(G);return await Q.open(L3.create($)).getWalletAddress(Z)}catch{throw new U({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:v,ownerAddress:G}})}}function a({jettonAmount:v,destinationAddress:G,responseAddress:Q,forwardAmount:$=O3,forwardPayload:Z}){let q=W().storeUint(F3,32).storeUint(0,64).storeCoins(v).storeAddress(G).storeAddress(Q).storeBit(0).storeCoins($);if(Z)q.storeBit(1).storeRef(Z);else q.storeBit(0);return q.endCell()}function p(v){return W().storeUint(0,32).storeStringTail(v).endCell()}return{broadcastTransaction:E,createTransaction:F,estimateTransactionFee:t,getAddress:j,getBalance:N,getJettonWalletAddress:S,sign:T,signAndBroadcastTransaction:C,transfer:r,validateAddress:d}}function d(z){try{return k.parse(z),!0}catch{return!1}}var F3=260734629,O3,j3,i,D3,V3=60000,D,l=0;var n=_(()=>{A();O3=o("0.01"),j3=o("0.05"),i=V.PAY_GAS_SEPARATELY+V.IGNORE_ERRORS,D3=V.CARRY_ALL_REMAINING_BALANCE+V.IGNORE_ERRORS});var _3={};Q3(_3,{validateTonAddress:()=>d,getTONToolbox:()=>P3});var f3=_(()=>{n()});f3();export{d as validateTonAddress,P3 as getTONToolbox};
@@ -5,6 +5,7 @@ export declare function getTONToolbox(toolboxParams?: TONToolboxParams): {
5
5
  broadcastTransaction: (transferCell: Cell) => Promise<string>;
6
6
  createTransaction: ({ sender, ...params }: GenericTransferParams & {
7
7
  sender?: string;
8
+ sweep?: boolean;
8
9
  }) => Promise<TONTransactionMessage[]>;
9
10
  estimateTransactionFee: ({ sender, ...params }: GenericTransferParams & {
10
11
  sender?: string;
@@ -17,7 +18,9 @@ export declare function getTONToolbox(toolboxParams?: TONToolboxParams): {
17
18
  }) => Promise<Address>;
18
19
  sign: (messages: TONTransactionMessage[]) => Promise<Cell>;
19
20
  signAndBroadcastTransaction: (messages: TONTransactionMessage[]) => Promise<string>;
20
- transfer: ({ assetValue, recipient, memo }: GenericTransferParams) => Promise<string>;
21
+ transfer: ({ assetValue, recipient, memo, sweep }: GenericTransferParams & {
22
+ sweep?: boolean;
23
+ }) => Promise<string>;
21
24
  validateAddress: typeof validateTonAddress;
22
25
  };
23
26
  export declare function validateTonAddress(address: string): boolean;
@@ -18,5 +18,6 @@ export type TONTransactionMessage = {
18
18
  amount: string;
19
19
  payload?: string;
20
20
  stateInit?: string;
21
+ sendMode?: number;
21
22
  };
22
23
  export type TONWallet = ReturnType<typeof getTONToolbox>;
package/package.json CHANGED
@@ -196,5 +196,5 @@
196
196
  "type-check:go": "tsgo"
197
197
  },
198
198
  "type": "module",
199
- "version": "4.18.0"
199
+ "version": "4.19.0"
200
200
  }