@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.
- package/CHANGELOG.md +11 -0
- package/dist/src/index.cjs +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/ton/index.cjs +1 -1
- package/dist/src/ton/index.js +1 -1
- package/dist/types/ton/toolbox.d.ts +4 -1
- package/dist/types/ton/types.d.ts +1 -0
- package/package.json +1 -1
package/dist/src/ton/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
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();
|
package/dist/src/ton/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
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
|
|
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;
|
package/package.json
CHANGED