@swapkit/toolboxes 4.15.3 → 4.15.5

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 Hf=Object.create;var{getPrototypeOf:bf,defineProperty:w,getOwnPropertyNames:Cf,getOwnPropertyDescriptor:Ff}=Object,Lf=Object.prototype.hasOwnProperty;function Df(f){return this[f]}var wf,mf,hf=(f,N,E)=>{var C=f!=null&&typeof f==="object";if(C){var Y=N?wf??=new WeakMap:mf??=new WeakMap,M=Y.get(f);if(M)return M}E=f!=null?Hf(bf(f)):{};let B=N||!f||!f.__esModule?w(E,"default",{value:f,enumerable:!0}):E;for(let I of Cf(f))if(!Lf.call(B,I))w(B,I,{get:Df.bind(f,I),enumerable:!0});if(C)Y.set(f,B);return B},yf=(f)=>{var N=(Rf??=new WeakMap).get(f),E;if(N)return N;if(N=w({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var C of Cf(f))if(!Lf.call(N,C))w(N,C,{get:Df.bind(f,C),enumerable:!(E=Ff(f,C))||E.enumerable})}return Rf.set(f,N),N},Rf;var kf=(f)=>f;function jf(f,N){this[f]=kf.bind(null,N)}var Vf=(f,N)=>{for(var E in N)w(f,E,{get:N[E],enumerable:!0,configurable:!0,set:jf.bind(N,E)})};var Z=(f,N)=>()=>(f&&(N=f(f=0)),N);function m(f){return f.length>=2&&f.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(f)}async function S(f){let{parseSeedPhrase:N}=await import("near-seed-phrase"),{KeyPair:E}=await import("@near-js/crypto"),C=f.index||0,Y=f.derivationPath?V.derivationPathToString(f.derivationPath.slice(0,3)):`m/44'/397'/${C}'`,{secretKey:M}=N(f.phrase,Y),B=E.fromString(M);return qf(B)}async function K(f){let{KeyPair:N}=await import("@near-js/crypto"),E=N.fromString(f);return qf(E)}function qf(f){return new Af(f)}async function P(f,N){let C=(await f.query({account_id:N,finality:"final",request_type:"view_access_key_list"})).keys.find((I)=>I.access_key.permission==="FullAccess");if(!C)throw new V.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:Y}=await import("@near-js/crypto"),M=Y.fromString(C.public_key);return{nonce:C.access_key.nonce||0,publicKey:M}}var Yf,V,Af;var h=Z(()=>{Yf=require("@near-js/signers"),V=require("@swapkit/helpers");Af=class Af extends Yf.KeyPairSigner{#f;constructor(f){super(f);this.#f=f}getAddress(){let f=this.#f.getPublicKey(),N=Buffer.from(f.data).toString("hex");return Promise.resolve(N)}}});function o(f){return"recipient"in f&&"amount"in f&&!("contractId"in f)}function l(f){return"contractId"in f&&"methodName"in f}function p(f){return"actions"in f}function n(f){return"newAccountId"in f}function t(f){return"contractCode"in f}function d(f){return"customEstimator"in f}function i(f){let N=0;for(let E of f)switch(E.enum){case"transfer":N+=Number(q.SIMPLE_TRANSFER);break;case"functionCall":N+=Number(q.CONTRACT_CALL);break;case"createAccount":N+=Number(q.ACCOUNT_CREATION);break;case"deployContract":N+=Number(q.CONTRACT_DEPLOYMENT);break;case"addKey":N+=Number(q.ACCESS_KEY_ADDITION);break;case"deleteKey":N+=Number(q.ACCESS_KEY_DELETION);break;case"stake":N+=Number(q.STAKE);break;default:N+=Number(q.CONTRACT_CALL)}return N.toString()}function r(f){if(f==="ft_transfer"||f==="ft_transfer_call")return q.TOKEN_TRANSFER;if(f==="storage_deposit")return q.STORAGE_DEPOSIT;return q.CONTRACT_CALL}function Sf(f){return(BigInt(f)*BigInt(1000000000000)).toString()}function Pf(f){return(BigInt(f)/BigInt(1000000000000)).toString()}var q;var s=Z(()=>{q={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function c({account:f,contractId:N,viewMethods:E,changeMethods:C}){let{Contract:Y}=await import("@near-js/accounts");return new Y(f,N,{changeMethods:C,useLocalViewExecution:!0,viewMethods:E})}function tf(){function f(){let N=Date.now(),E=e||N;return e=E,N>e?N:E+1}return uf+f().toString(36)}function Mf(f){return async function(E,C=!0){let Y=await Bf.SwapKitApi.getChainBalance({address:E,chain:f,scamFilter:C}),{baseDecimal:M}=y.getChainConfig(f),B=Y.map(({identifier:J,value:k,decimal:u})=>{return new y.AssetValue({decimal:u||M,identifier:J,value:k})});if(!B.some((J)=>J.isGasAsset))return[y.AssetValue.from({chain:f}),...B];return B}}var y,Bf,uf,e=0;var Uf=Z(()=>{y=require("@swapkit/helpers"),Bf=require("@swapkit/helpers/api"),uf=typeof process<"u"&&process.pid?process.pid.toString(36):""});function vf(f){let N;async function E(){if(N)return N;return N=await $.match(f).with({phrase:$.P.string},async(T)=>{return await S(T)}).with({signer:$.P.any},({signer:T})=>T).otherwise(()=>{return}),N}async function C(){let T=await _.getRPCUrl(_.Chain.Near);return new Gf.JsonRpcProvider({url:T})}async function Y(T){let{Account:x}=await import("@near-js/accounts"),O=await C(),L=await E(),R=T||await M();return new x(R,O,L)}async function M(){let T=await E();if(!T)throw new _.SwapKitError("toolbox_near_no_signer");return await T.getAddress()}async function B(T){return(await xf({changeMethods:[],contractId:T.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:T.accountId})}async function I(T){let O=[await g({args:{account_id:T.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await g({args:{amount:T.assetValue.getBaseValue("string"),memo:T.memo||null,receiver_id:T.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return Ef({actions:O,receiverId:T.contractId})}async function J(T){if(!await E())throw new _.SwapKitError("toolbox_near_no_signer");let{assetValue:O,recipient:L,memo:R}=T,D=await M();if(!O.isGasAsset&&O.address){if(!await B({accountId:L,contractId:O.address}))return I({assetValue:O,contractId:O.address,memo:R,recipient:L})}let A=await k({...T,sender:D});return Nf(A)}async function k({recipient:T,assetValue:x,memo:O,attachedDeposit:L,sender:R,functionCall:D}){let A=await C();if(!m(T))throw new _.SwapKitError("toolbox_near_invalid_address",{recipient:T});if(!m(R))throw new _.SwapKitError("toolbox_near_invalid_address",{sender:R});if(D)return v({...D,sender:R});if(!x.isGasAsset){let _f=x.address;if(!_f)throw new _.SwapKitError("toolbox_near_missing_contract_address");return v({args:{amount:x.getBaseValue("string"),memo:O||null,receiver_id:T},attachedDeposit:L||"1",contractId:_f,gas:"250000000000000",methodName:"ft_transfer",sender:R})}let{publicKey:U,nonce:G}=await P(A,R),Q=x.getBaseValue("bigint"),{actionCreators:W,createTransaction:z}=await import("@near-js/transactions"),{baseDecode:H}=await import("@near-js/utils"),b=[W.transfer(Q)];if(O&&L)b.push(W.functionCall("memo",{memo:O},BigInt("250000000000000"),BigInt(L)));let F=await A.block({finality:"final"}),Of=H(F.header.hash);return z(R,U,T,G+1,b,Of)}function u(T){let x=T.encode();return Buffer.from(x).toString("base64")}async function v({args:T,attachedDeposit:x,contractId:O,gas:L,methodName:R,sender:D}){let A=await C(),{publicKey:U,nonce:G}=await P(A,D),{createTransaction:Q,actionCreators:W}=await import("@near-js/transactions"),{baseDecode:z}=await import("@near-js/utils"),H=await A.block({finality:"final"}),b=z(H.header.hash),F=[W.functionCall(R,Buffer.from(JSON.stringify(T)),BigInt(L),BigInt(x))];return Q(D,U,O,G+1,F,b)}async function g(T){let{actionCreators:x}=await import("@near-js/transactions");return x.functionCall(T.methodName,Buffer.from(JSON.stringify(T.args)),BigInt(T.gas),BigInt(T.attachedDeposit))}async function ff(T){let x=await E();if(!x)throw new _.SwapKitError("toolbox_near_no_signer");let[O,L]=await x.signTransaction(T);return L}async function Tf(T){return(await(await C()).sendTransaction(T)).transaction.hash}async function Nf(T){let x=await E();if(!x)throw new _.SwapKitError("toolbox_near_no_signer");try{let O=await ff(T);return await Tf(O)}catch{return x.signAndSendTransactions?.({transactions:[T]})}}async function Qf(T){let x=await E();if("assetValue"in T){let L=await Wf();try{let R=await _.getRPCUrl(_.Chain.Near),D=await fetch(R,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:A}}=await D.json(),{execution:U,send_sir:G}=A.transaction_costs.action_receipt_creation_config,{execution:Q,send_sir:W}=A.transaction_costs.action_creation_config.transfer_cost,z=BigInt(W)+BigInt(Q),H=BigInt(G)+BigInt(U),F=(z+H)*BigInt(L.toString());return _.AssetValue.from({chain:_.Chain.Near,value:F})}catch(R){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",R);let D=BigInt("115123062500"),A=BigInt("108059500000"),G=(D+A)*BigInt(L.toString());return _.AssetValue.from({chain:_.Chain.Near,value:G})}}let O=x?await Y():void 0;return j(T,O)}async function Wf(){let T=await C();try{return await T.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Xf(T,x,O){if(!await E())throw new _.SwapKitError("toolbox_near_no_signer");let R=await Y(),{formatNearAmount:D}=await import("@near-js/utils"),{PublicKey:A}=await import("@near-js/crypto"),U=D(O)||"0";return(await R.createAccount(T,A.fromString(x),BigInt(U))).transaction.hash}async function Zf(T){let x=await E();try{if(!x)throw new _.SwapKitError("toolbox_near_no_signer");let{actionCreators:O}=await import("@near-js/transactions"),{contractId:L,methodName:R,args:D,deposit:A}=T,U=await Y(),G=await j({args:D||{},contractId:L,methodName:R}),Q=O.functionCall(R,D||{},G.getBaseValue("bigint"),BigInt(A||"1"));return(await U.signAndSendTransaction({actions:[Q],receiverId:L})).transaction_outcome.id}catch(O){throw new _.SwapKitError("toolbox_near_transfer_failed",{error:O})}}async function xf(T){let x=await Y();return c({account:x,changeMethods:T.changeMethods,contractId:T.contractId,viewMethods:T.viewMethods})}async function Ef(T){if(!await E())throw new _.SwapKitError("toolbox_near_no_signer");if(T.actions.length===0)throw new _.SwapKitError("toolbox_near_empty_batch");return(await(await Y()).signAndSendTransaction({actions:T.actions,receiverId:T.receiverId})).transaction.hash}async function j(T,x){let O=await $.match(T).when(o,()=>q.SIMPLE_TRANSFER).when(l,(R)=>r(R.methodName)).when(p,(R)=>i(R.actions)).when(n,()=>q.ACCOUNT_CREATION).when(t,()=>q.CONTRACT_DEPLOYMENT).when(d,(R)=>{if(!x)throw new _.SwapKitError("toolbox_near_no_account");return R.customEstimator(x)}).otherwise(()=>{throw new _.SwapKitError("toolbox_near_invalid_gas_params")}),L=BigInt(O)*BigInt(1000000000000);return _.AssetValue.from({chain:_.Chain.Near,value:L})}function $f(T,x){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),j(T,x)}async function Jf(){let T=await C();try{return(await T.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function zf(){let T=await E();return T?(await T.getPublicKey()).toString():""}return{broadcastTransaction:Tf,callFunction:Zf,createAction:g,createContract:xf,createContractFunctionCall:v,createSubAccount:Xf,createTransaction:k,estimateGas:$f,estimateGasLimit:j,estimateTransactionFee:Qf,executeBatchTransaction:Ef,getAddress:M,getBalance:Mf(_.Chain.Near),getGasPrice:Jf,getNearProvider:C,getPublicKey:zf,getSignerFromPhrase:S,getSignerFromPrivateKey:K,serializeTransaction:u,signAndBroadcastTransaction:Nf,signTransaction:ff,transfer:J,validateAddress:m}}var Gf,_,$;var a=Z(()=>{Uf();h();s();Gf=require("@near-js/providers"),_=require("@swapkit/helpers"),$=require("ts-pattern")});var If=Z(()=>{a()});var gf={};Vf(gf,{validateNearAddress:()=>m,tgasToGas:()=>Sf,isSimpleTransfer:()=>o,isCustomEstimator:()=>d,isContractDeployment:()=>t,isContractCall:()=>l,isBatchTransaction:()=>p,isAccountCreation:()=>n,getNearToolbox:()=>vf,getNearSignerFromPrivateKey:()=>K,getNearSignerFromPhrase:()=>S,getFullAccessPublicKey:()=>P,getContractMethodGas:()=>r,gasToTGas:()=>Pf,estimateBatchGas:()=>i,createNearContract:()=>c,GAS_COSTS:()=>q});module.exports=yf(gf);var Kf=Z(()=>{h();s();a();If()});Kf();
1
+ var bf=Object.create;var{getPrototypeOf:Ff,defineProperty:w,getOwnPropertyNames:Cf,getOwnPropertyDescriptor:wf}=Object,Lf=Object.prototype.hasOwnProperty;function Df(f){return this[f]}var mf,yf,kf=(f,N,E)=>{var C=f!=null&&typeof f==="object";if(C){var Y=N?mf??=new WeakMap:yf??=new WeakMap,B=Y.get(f);if(B)return B}E=f!=null?bf(Ff(f)):{};let M=N||!f||!f.__esModule?w(E,"default",{value:f,enumerable:!0}):E;for(let I of Cf(f))if(!Lf.call(M,I))w(M,I,{get:Df.bind(f,I),enumerable:!0});if(C)Y.set(f,M);return M},jf=(f)=>{var N=(Rf??=new WeakMap).get(f),E;if(N)return N;if(N=w({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var C of Cf(f))if(!Lf.call(N,C))w(N,C,{get:Df.bind(f,C),enumerable:!(E=wf(f,C))||E.enumerable})}return Rf.set(f,N),N},Rf;var Vf=(f)=>f;function Sf(f,N){this[f]=Vf.bind(null,N)}var Pf=(f,N)=>{for(var E in N)w(f,E,{get:N[E],enumerable:!0,configurable:!0,set:Sf.bind(N,E)})};var Z=(f,N)=>()=>(f&&(N=f(f=0)),N);function m(f){return f.length>=2&&f.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(f)}async function S(f){let{KeyPair:N}=await import("@near-js/crypto"),E=f.index||0,C=f.derivationPath?V.derivationPathToString(f.derivationPath.slice(0,3)):`m/44'/397'/${E}'`,{secretKey:Y}=Af.parseSeedPhrase(f.phrase,C),B=N.fromString(Y);return Bf(B)}async function K(f){let{KeyPair:N}=await import("@near-js/crypto"),E=N.fromString(f);return Bf(E)}function Bf(f){return new qf(f)}async function P(f,N){let C=(await f.query({account_id:N,finality:"final",request_type:"view_access_key_list"})).keys.find((I)=>I.access_key.permission==="FullAccess");if(!C)throw new V.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:Y}=await import("@near-js/crypto"),B=Y.fromString(C.public_key);return{nonce:C.access_key.nonce||0,publicKey:B}}var Yf,V,Af,qf;var h=Z(()=>{Yf=require("@near-js/signers"),V=require("@swapkit/helpers"),Af=kf(require("near-seed-phrase"));qf=class qf extends Yf.KeyPairSigner{#f;constructor(f){super(f);this.#f=f}getAddress(){let f=this.#f.getPublicKey(),N=Buffer.from(f.data).toString("hex");return Promise.resolve(N)}}});function o(f){return"recipient"in f&&"amount"in f&&!("contractId"in f)}function p(f){return"contractId"in f&&"methodName"in f}function l(f){return"actions"in f}function n(f){return"newAccountId"in f}function t(f){return"contractCode"in f}function d(f){return"customEstimator"in f}function i(f){let N=0;for(let E of f)switch(E.enum){case"transfer":N+=Number(q.SIMPLE_TRANSFER);break;case"functionCall":N+=Number(q.CONTRACT_CALL);break;case"createAccount":N+=Number(q.ACCOUNT_CREATION);break;case"deployContract":N+=Number(q.CONTRACT_DEPLOYMENT);break;case"addKey":N+=Number(q.ACCESS_KEY_ADDITION);break;case"deleteKey":N+=Number(q.ACCESS_KEY_DELETION);break;case"stake":N+=Number(q.STAKE);break;default:N+=Number(q.CONTRACT_CALL)}return N.toString()}function r(f){if(f==="ft_transfer"||f==="ft_transfer_call")return q.TOKEN_TRANSFER;if(f==="storage_deposit")return q.STORAGE_DEPOSIT;return q.CONTRACT_CALL}function uf(f){return(BigInt(f)*BigInt(1000000000000)).toString()}function vf(f){return(BigInt(f)/BigInt(1000000000000)).toString()}var q;var s=Z(()=>{q={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function c({account:f,contractId:N,viewMethods:E,changeMethods:C}){let{Contract:Y}=await import("@near-js/accounts");return new Y(f,N,{changeMethods:C,useLocalViewExecution:!0,viewMethods:E})}function df(){function f(){let N=Date.now(),E=e||N;return e=E,N>e?N:E+1}return gf+f().toString(36)}function Uf(f){return async function(E,C=!0){let Y=await Mf.SwapKitApi.getChainBalance({address:E,chain:f,scamFilter:C}),{baseDecimal:B}=y.getChainConfig(f),M=Y.map(({identifier:J,value:k,decimal:u})=>{return new y.AssetValue({decimal:u||B,identifier:J,value:k})});if(!M.some((J)=>J.isGasAsset))return[y.AssetValue.from({chain:f}),...M];return M}}var y,Mf,gf,e=0;var Gf=Z(()=>{y=require("@swapkit/helpers"),Mf=require("@swapkit/helpers/api"),gf=typeof process<"u"&&process.pid?process.pid.toString(36):""});function Kf(f){let N;async function E(){if(N)return N;return N=await $.match(f).with({phrase:$.P.string},async(T)=>{return await S(T)}).with({signer:$.P.any},({signer:T})=>T).otherwise(()=>{return}),N}async function C(){let T=await _.getRPCUrl(_.Chain.Near);return new If.JsonRpcProvider({url:T})}async function Y(T){let{Account:x}=await import("@near-js/accounts"),O=await C(),L=await E(),R=T||await B();return new x(R,O,L)}async function B(){let T=await E();if(!T)throw new _.SwapKitError("toolbox_near_no_signer");return await T.getAddress()}async function M(T){return(await xf({changeMethods:[],contractId:T.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:T.accountId})}async function I(T){let O=[await g({args:{account_id:T.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await g({args:{amount:T.assetValue.getBaseValue("string"),memo:T.memo||null,receiver_id:T.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return Ef({actions:O,receiverId:T.contractId})}async function J(T){if(!await E())throw new _.SwapKitError("toolbox_near_no_signer");let{assetValue:O,recipient:L,memo:R}=T,D=await B();if(!O.isGasAsset&&O.address){if(!await M({accountId:L,contractId:O.address}))return I({assetValue:O,contractId:O.address,memo:R,recipient:L})}let A=await k({...T,sender:D});return Nf(A)}async function k({recipient:T,assetValue:x,memo:O,attachedDeposit:L,sender:R,functionCall:D}){let A=await C();if(!m(T))throw new _.SwapKitError("toolbox_near_invalid_address",{recipient:T});if(!m(R))throw new _.SwapKitError("toolbox_near_invalid_address",{sender:R});if(D)return v({...D,sender:R});if(!x.isGasAsset){let _f=x.address;if(!_f)throw new _.SwapKitError("toolbox_near_missing_contract_address");return v({args:{amount:x.getBaseValue("string"),memo:O||null,receiver_id:T},attachedDeposit:L||"1",contractId:_f,gas:"250000000000000",methodName:"ft_transfer",sender:R})}let{publicKey:U,nonce:G}=await P(A,R),Q=x.getBaseValue("bigint"),{actionCreators:W,createTransaction:z}=await import("@near-js/transactions"),{baseDecode:H}=await import("@near-js/utils"),b=[W.transfer(Q)];if(O&&L)b.push(W.functionCall("memo",{memo:O},BigInt("250000000000000"),BigInt(L)));let F=await A.block({finality:"final"}),Of=H(F.header.hash);return z(R,U,T,G+1,b,Of)}function u(T){let x=T.encode();return Buffer.from(x).toString("base64")}async function v({args:T,attachedDeposit:x,contractId:O,gas:L,methodName:R,sender:D}){let A=await C(),{publicKey:U,nonce:G}=await P(A,D),{createTransaction:Q,actionCreators:W}=await import("@near-js/transactions"),{baseDecode:z}=await import("@near-js/utils"),H=await A.block({finality:"final"}),b=z(H.header.hash),F=[W.functionCall(R,Buffer.from(JSON.stringify(T)),BigInt(L),BigInt(x))];return Q(D,U,O,G+1,F,b)}async function g(T){let{actionCreators:x}=await import("@near-js/transactions");return x.functionCall(T.methodName,Buffer.from(JSON.stringify(T.args)),BigInt(T.gas),BigInt(T.attachedDeposit))}async function ff(T){let x=await E();if(!x)throw new _.SwapKitError("toolbox_near_no_signer");let[O,L]=await x.signTransaction(T);return L}async function Tf(T){return(await(await C()).sendTransaction(T)).transaction.hash}async function Nf(T){let x=await E();if(!x)throw new _.SwapKitError("toolbox_near_no_signer");try{let O=await ff(T);return await Tf(O)}catch{return x.signAndSendTransactions?.({transactions:[T]})}}async function Wf(T){let x=await E();if("assetValue"in T){let L=await Xf();try{let R=await _.getRPCUrl(_.Chain.Near),D=await fetch(R,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:A}}=await D.json(),{execution:U,send_sir:G}=A.transaction_costs.action_receipt_creation_config,{execution:Q,send_sir:W}=A.transaction_costs.action_creation_config.transfer_cost,z=BigInt(W)+BigInt(Q),H=BigInt(G)+BigInt(U),F=(z+H)*BigInt(L.toString());return _.AssetValue.from({chain:_.Chain.Near,value:F})}catch(R){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",R);let D=BigInt("115123062500"),A=BigInt("108059500000"),G=(D+A)*BigInt(L.toString());return _.AssetValue.from({chain:_.Chain.Near,value:G})}}let O=x?await Y():void 0;return j(T,O)}async function Xf(){let T=await C();try{return await T.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Zf(T,x,O){if(!await E())throw new _.SwapKitError("toolbox_near_no_signer");let R=await Y(),{formatNearAmount:D}=await import("@near-js/utils"),{PublicKey:A}=await import("@near-js/crypto"),U=D(O)||"0";return(await R.createAccount(T,A.fromString(x),BigInt(U))).transaction.hash}async function $f(T){let x=await E();try{if(!x)throw new _.SwapKitError("toolbox_near_no_signer");let{actionCreators:O}=await import("@near-js/transactions"),{contractId:L,methodName:R,args:D,deposit:A}=T,U=await Y(),G=await j({args:D||{},contractId:L,methodName:R}),Q=O.functionCall(R,D||{},G.getBaseValue("bigint"),BigInt(A||"1"));return(await U.signAndSendTransaction({actions:[Q],receiverId:L})).transaction_outcome.id}catch(O){throw new _.SwapKitError("toolbox_near_transfer_failed",{error:O})}}async function xf(T){let x=await Y();return c({account:x,changeMethods:T.changeMethods,contractId:T.contractId,viewMethods:T.viewMethods})}async function Ef(T){if(!await E())throw new _.SwapKitError("toolbox_near_no_signer");if(T.actions.length===0)throw new _.SwapKitError("toolbox_near_empty_batch");return(await(await Y()).signAndSendTransaction({actions:T.actions,receiverId:T.receiverId})).transaction.hash}async function j(T,x){let O=await $.match(T).when(o,()=>q.SIMPLE_TRANSFER).when(p,(R)=>r(R.methodName)).when(l,(R)=>i(R.actions)).when(n,()=>q.ACCOUNT_CREATION).when(t,()=>q.CONTRACT_DEPLOYMENT).when(d,(R)=>{if(!x)throw new _.SwapKitError("toolbox_near_no_account");return R.customEstimator(x)}).otherwise(()=>{throw new _.SwapKitError("toolbox_near_invalid_gas_params")}),L=BigInt(O)*BigInt(1000000000000);return _.AssetValue.from({chain:_.Chain.Near,value:L})}function Jf(T,x){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),j(T,x)}async function zf(){let T=await C();try{return(await T.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function Hf(){let T=await E();return T?(await T.getPublicKey()).toString():""}return{broadcastTransaction:Tf,callFunction:$f,createAction:g,createContract:xf,createContractFunctionCall:v,createSubAccount:Zf,createTransaction:k,estimateGas:Jf,estimateGasLimit:j,estimateTransactionFee:Wf,executeBatchTransaction:Ef,getAddress:B,getBalance:Uf(_.Chain.Near),getGasPrice:zf,getNearProvider:C,getPublicKey:Hf,getSignerFromPhrase:S,getSignerFromPrivateKey:K,serializeTransaction:u,signAndBroadcastTransaction:Nf,signTransaction:ff,transfer:J,validateAddress:m}}var If,_,$;var a=Z(()=>{Gf();h();s();If=require("@near-js/providers"),_=require("@swapkit/helpers"),$=require("ts-pattern")});var Qf=Z(()=>{a()});var hf={};Pf(hf,{validateNearAddress:()=>m,tgasToGas:()=>uf,isSimpleTransfer:()=>o,isCustomEstimator:()=>d,isContractDeployment:()=>t,isContractCall:()=>p,isBatchTransaction:()=>l,isAccountCreation:()=>n,getNearToolbox:()=>Kf,getNearSignerFromPrivateKey:()=>K,getNearSignerFromPhrase:()=>S,getFullAccessPublicKey:()=>P,getContractMethodGas:()=>r,gasToTGas:()=>vf,estimateBatchGas:()=>i,createNearContract:()=>c,GAS_COSTS:()=>q});module.exports=jf(hf);var of=Z(()=>{h();s();a();Qf()});of();
@@ -1 +1 @@
1
- var Zf=Object.defineProperty;var $f=(f)=>f;function Jf(f,N){this[f]=$f.bind(null,N)}var zf=(f,N)=>{for(var O in N)Zf(f,O,{get:N[O],enumerable:!0,configurable:!0,set:Jf.bind(N,O)})};var Z=(f,N)=>()=>(f&&(N=f(f=0)),N);var A=((f)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(f,{get:(N,O)=>(typeof require<"u"?require:N)[O]}):f)(function(f){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+f+'" is not supported')});import{KeyPairSigner as Hf}from"@near-js/signers";import{derivationPathToString as bf,SwapKitError as Ff}from"@swapkit/helpers";function w(f){return f.length>=2&&f.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(f)}async function j(f){let{parseSeedPhrase:N}=await import("near-seed-phrase"),{KeyPair:O}=await import("@near-js/crypto"),C=f.index||0,B=f.derivationPath?bf(f.derivationPath.slice(0,3)):`m/44'/397'/${C}'`,{secretKey:G}=N(f.phrase,B),I=O.fromString(G);return Rf(I)}async function v(f){let{KeyPair:N}=await import("@near-js/crypto"),O=N.fromString(f);return Rf(O)}function Rf(f){return new _f(f)}async function V(f,N){let C=(await f.query({account_id:N,finality:"final",request_type:"view_access_key_list"})).keys.find((m)=>m.access_key.permission==="FullAccess");if(!C)throw new Ff("toolbox_near_no_public_key_found");let{PublicKey:B}=await import("@near-js/crypto"),G=B.fromString(C.public_key);return{nonce:C.access_key.nonce||0,publicKey:G}}var _f;var g=Z(()=>{_f=class _f extends Hf{#f;constructor(f){super(f);this.#f=f}getAddress(){let f=this.#f.getPublicKey(),N=Buffer.from(f.data).toString("hex");return Promise.resolve(N)}}});function K(f){return"recipient"in f&&"amount"in f&&!("contractId"in f)}function h(f){return"contractId"in f&&"methodName"in f}function o(f){return"actions"in f}function l(f){return"newAccountId"in f}function p(f){return"contractCode"in f}function n(f){return"customEstimator"in f}function t(f){let N=0;for(let O of f)switch(O.enum){case"transfer":N+=Number(Y.SIMPLE_TRANSFER);break;case"functionCall":N+=Number(Y.CONTRACT_CALL);break;case"createAccount":N+=Number(Y.ACCOUNT_CREATION);break;case"deployContract":N+=Number(Y.CONTRACT_DEPLOYMENT);break;case"addKey":N+=Number(Y.ACCESS_KEY_ADDITION);break;case"deleteKey":N+=Number(Y.ACCESS_KEY_DELETION);break;case"stake":N+=Number(Y.STAKE);break;default:N+=Number(Y.CONTRACT_CALL)}return N.toString()}function d(f){if(f==="ft_transfer"||f==="ft_transfer_call")return Y.TOKEN_TRANSFER;if(f==="storage_deposit")return Y.STORAGE_DEPOSIT;return Y.CONTRACT_CALL}function wf(f){return(BigInt(f)*BigInt(1000000000000)).toString()}function mf(f){return(BigInt(f)/BigInt(1000000000000)).toString()}var Y;var i=Z(()=>{Y={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function r({account:f,contractId:N,viewMethods:O,changeMethods:C}){let{Contract:B}=await import("@near-js/accounts");return new B(f,N,{changeMethods:C,useLocalViewExecution:!0,viewMethods:O})}import{AssetValue as Cf,getChainConfig as yf}from"@swapkit/helpers";import{SwapKitApi as kf}from"@swapkit/helpers/api";function tf(){function f(){let N=Date.now(),O=s||N;return s=O,N>s?N:O+1}return jf+f().toString(36)}function Lf(f){return async function(O,C=!0){let B=await kf.getChainBalance({address:O,chain:f,scamFilter:C}),{baseDecimal:G}=yf(f),I=B.map(({identifier:J,value:y,decimal:S})=>{return new Cf({decimal:S||G,identifier:J,value:y})});if(!I.some((J)=>J.isGasAsset))return[Cf.from({chain:f}),...I];return I}}var jf,s=0;var Df=Z(()=>{jf=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{JsonRpcProvider as Vf}from"@near-js/providers";import{AssetValue as c,Chain as $,getRPCUrl as Yf,SwapKitError as q}from"@swapkit/helpers";import{match as Af,P as qf}from"ts-pattern";function Sf(f){let N;async function O(){if(N)return N;return N=await Af(f).with({phrase:qf.string},async(T)=>{return await j(T)}).with({signer:qf.any},({signer:T})=>T).otherwise(()=>{return}),N}async function C(){let T=await Yf($.Near);return new Vf({url:T})}async function B(T){let{Account:x}=await import("@near-js/accounts"),E=await C(),R=await O(),_=T||await G();return new x(_,E,R)}async function G(){let T=await O();if(!T)throw new q("toolbox_near_no_signer");return await T.getAddress()}async function I(T){return(await Nf({changeMethods:[],contractId:T.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:T.accountId})}async function m(T){let E=[await u({args:{account_id:T.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await u({args:{amount:T.assetValue.getBaseValue("string"),memo:T.memo||null,receiver_id:T.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return xf({actions:E,receiverId:T.contractId})}async function J(T){if(!await O())throw new q("toolbox_near_no_signer");let{assetValue:E,recipient:R,memo:_}=T,L=await G();if(!E.isGasAsset&&E.address){if(!await I({accountId:R,contractId:E.address}))return m({assetValue:E,contractId:E.address,memo:_,recipient:R})}let D=await y({...T,sender:L});return Tf(D)}async function y({recipient:T,assetValue:x,memo:E,attachedDeposit:R,sender:_,functionCall:L}){let D=await C();if(!w(T))throw new q("toolbox_near_invalid_address",{recipient:T});if(!w(_))throw new q("toolbox_near_invalid_address",{sender:_});if(L)return P({...L,sender:_});if(!x.isGasAsset){let Of=x.address;if(!Of)throw new q("toolbox_near_missing_contract_address");return P({args:{amount:x.getBaseValue("string"),memo:E||null,receiver_id:T},attachedDeposit:R||"1",contractId:Of,gas:"250000000000000",methodName:"ft_transfer",sender:_})}let{publicKey:M,nonce:U}=await V(D,_),Q=x.getBaseValue("bigint"),{actionCreators:W,createTransaction:z}=await import("@near-js/transactions"),{baseDecode:H}=await import("@near-js/utils"),b=[W.transfer(Q)];if(E&&R)b.push(W.functionCall("memo",{memo:E},BigInt("250000000000000"),BigInt(R)));let F=await D.block({finality:"final"}),Ef=H(F.header.hash);return z(_,M,T,U+1,b,Ef)}function S(T){let x=T.encode();return Buffer.from(x).toString("base64")}async function P({args:T,attachedDeposit:x,contractId:E,gas:R,methodName:_,sender:L}){let D=await C(),{publicKey:M,nonce:U}=await V(D,L),{createTransaction:Q,actionCreators:W}=await import("@near-js/transactions"),{baseDecode:z}=await import("@near-js/utils"),H=await D.block({finality:"final"}),b=z(H.header.hash),F=[W.functionCall(_,Buffer.from(JSON.stringify(T)),BigInt(R),BigInt(x))];return Q(L,M,E,U+1,F,b)}async function u(T){let{actionCreators:x}=await import("@near-js/transactions");return x.functionCall(T.methodName,Buffer.from(JSON.stringify(T.args)),BigInt(T.gas),BigInt(T.attachedDeposit))}async function a(T){let x=await O();if(!x)throw new q("toolbox_near_no_signer");let[E,R]=await x.signTransaction(T);return R}async function ff(T){return(await(await C()).sendTransaction(T)).transaction.hash}async function Tf(T){let x=await O();if(!x)throw new q("toolbox_near_no_signer");try{let E=await a(T);return await ff(E)}catch{return x.signAndSendTransactions?.({transactions:[T]})}}async function Mf(T){let x=await O();if("assetValue"in T){let R=await Uf();try{let _=await Yf($.Near),L=await fetch(_,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:D}}=await L.json(),{execution:M,send_sir:U}=D.transaction_costs.action_receipt_creation_config,{execution:Q,send_sir:W}=D.transaction_costs.action_creation_config.transfer_cost,z=BigInt(W)+BigInt(Q),H=BigInt(U)+BigInt(M),F=(z+H)*BigInt(R.toString());return c.from({chain:$.Near,value:F})}catch(_){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",_);let L=BigInt("115123062500"),D=BigInt("108059500000"),U=(L+D)*BigInt(R.toString());return c.from({chain:$.Near,value:U})}}let E=x?await B():void 0;return k(T,E)}async function Uf(){let T=await C();try{return await T.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Gf(T,x,E){if(!await O())throw new q("toolbox_near_no_signer");let _=await B(),{formatNearAmount:L}=await import("@near-js/utils"),{PublicKey:D}=await import("@near-js/crypto"),M=L(E)||"0";return(await _.createAccount(T,D.fromString(x),BigInt(M))).transaction.hash}async function If(T){let x=await O();try{if(!x)throw new q("toolbox_near_no_signer");let{actionCreators:E}=await import("@near-js/transactions"),{contractId:R,methodName:_,args:L,deposit:D}=T,M=await B(),U=await k({args:L||{},contractId:R,methodName:_}),Q=E.functionCall(_,L||{},U.getBaseValue("bigint"),BigInt(D||"1"));return(await M.signAndSendTransaction({actions:[Q],receiverId:R})).transaction_outcome.id}catch(E){throw new q("toolbox_near_transfer_failed",{error:E})}}async function Nf(T){let x=await B();return r({account:x,changeMethods:T.changeMethods,contractId:T.contractId,viewMethods:T.viewMethods})}async function xf(T){if(!await O())throw new q("toolbox_near_no_signer");if(T.actions.length===0)throw new q("toolbox_near_empty_batch");return(await(await B()).signAndSendTransaction({actions:T.actions,receiverId:T.receiverId})).transaction.hash}async function k(T,x){let E=await Af(T).when(K,()=>Y.SIMPLE_TRANSFER).when(h,(_)=>d(_.methodName)).when(o,(_)=>t(_.actions)).when(l,()=>Y.ACCOUNT_CREATION).when(p,()=>Y.CONTRACT_DEPLOYMENT).when(n,(_)=>{if(!x)throw new q("toolbox_near_no_account");return _.customEstimator(x)}).otherwise(()=>{throw new q("toolbox_near_invalid_gas_params")}),R=BigInt(E)*BigInt(1000000000000);return c.from({chain:$.Near,value:R})}function Qf(T,x){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),k(T,x)}async function Wf(){let T=await C();try{return(await T.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function Xf(){let T=await O();return T?(await T.getPublicKey()).toString():""}return{broadcastTransaction:ff,callFunction:If,createAction:u,createContract:Nf,createContractFunctionCall:P,createSubAccount:Gf,createTransaction:y,estimateGas:Qf,estimateGasLimit:k,estimateTransactionFee:Mf,executeBatchTransaction:xf,getAddress:G,getBalance:Lf($.Near),getGasPrice:Wf,getNearProvider:C,getPublicKey:Xf,getSignerFromPhrase:j,getSignerFromPrivateKey:v,serializeTransaction:S,signAndBroadcastTransaction:Tf,signTransaction:a,transfer:J,validateAddress:w}}var e=Z(()=>{Df();g();i()});var Bf=Z(()=>{e()});var Pf={};zf(Pf,{validateNearAddress:()=>w,tgasToGas:()=>wf,isSimpleTransfer:()=>K,isCustomEstimator:()=>n,isContractDeployment:()=>p,isContractCall:()=>h,isBatchTransaction:()=>o,isAccountCreation:()=>l,getNearToolbox:()=>Sf,getNearSignerFromPrivateKey:()=>v,getNearSignerFromPhrase:()=>j,getFullAccessPublicKey:()=>V,getContractMethodGas:()=>d,gasToTGas:()=>mf,estimateBatchGas:()=>t,createNearContract:()=>r,GAS_COSTS:()=>Y});var uf=Z(()=>{g();i();e();Bf()});uf();export{w as validateNearAddress,wf as tgasToGas,K as isSimpleTransfer,n as isCustomEstimator,p as isContractDeployment,h as isContractCall,o as isBatchTransaction,l as isAccountCreation,Sf as getNearToolbox,v as getNearSignerFromPrivateKey,j as getNearSignerFromPhrase,V as getFullAccessPublicKey,d as getContractMethodGas,mf as gasToTGas,t as estimateBatchGas,r as createNearContract,Y as GAS_COSTS};
1
+ var $f=Object.defineProperty;var Jf=(f)=>f;function zf(f,N){this[f]=Jf.bind(null,N)}var Hf=(f,N)=>{for(var O in N)$f(f,O,{get:N[O],enumerable:!0,configurable:!0,set:zf.bind(N,O)})};var Z=(f,N)=>()=>(f&&(N=f(f=0)),N);var B=((f)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(f,{get:(N,O)=>(typeof require<"u"?require:N)[O]}):f)(function(f){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+f+'" is not supported')});import{KeyPairSigner as bf}from"@near-js/signers";import{derivationPathToString as Ff,SwapKitError as wf}from"@swapkit/helpers";import*as _f from"near-seed-phrase";function w(f){return f.length>=2&&f.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(f)}async function j(f){let{KeyPair:N}=await import("@near-js/crypto"),O=f.index||0,C=f.derivationPath?Ff(f.derivationPath.slice(0,3)):`m/44'/397'/${O}'`,{secretKey:q}=_f.parseSeedPhrase(f.phrase,C),G=N.fromString(q);return Cf(G)}async function v(f){let{KeyPair:N}=await import("@near-js/crypto"),O=N.fromString(f);return Cf(O)}function Cf(f){return new Rf(f)}async function V(f,N){let C=(await f.query({account_id:N,finality:"final",request_type:"view_access_key_list"})).keys.find((m)=>m.access_key.permission==="FullAccess");if(!C)throw new wf("toolbox_near_no_public_key_found");let{PublicKey:q}=await import("@near-js/crypto"),G=q.fromString(C.public_key);return{nonce:C.access_key.nonce||0,publicKey:G}}var Rf;var g=Z(()=>{Rf=class Rf extends bf{#f;constructor(f){super(f);this.#f=f}getAddress(){let f=this.#f.getPublicKey(),N=Buffer.from(f.data).toString("hex");return Promise.resolve(N)}}});function K(f){return"recipient"in f&&"amount"in f&&!("contractId"in f)}function h(f){return"contractId"in f&&"methodName"in f}function o(f){return"actions"in f}function p(f){return"newAccountId"in f}function l(f){return"contractCode"in f}function n(f){return"customEstimator"in f}function t(f){let N=0;for(let O of f)switch(O.enum){case"transfer":N+=Number(Y.SIMPLE_TRANSFER);break;case"functionCall":N+=Number(Y.CONTRACT_CALL);break;case"createAccount":N+=Number(Y.ACCOUNT_CREATION);break;case"deployContract":N+=Number(Y.CONTRACT_DEPLOYMENT);break;case"addKey":N+=Number(Y.ACCESS_KEY_ADDITION);break;case"deleteKey":N+=Number(Y.ACCESS_KEY_DELETION);break;case"stake":N+=Number(Y.STAKE);break;default:N+=Number(Y.CONTRACT_CALL)}return N.toString()}function d(f){if(f==="ft_transfer"||f==="ft_transfer_call")return Y.TOKEN_TRANSFER;if(f==="storage_deposit")return Y.STORAGE_DEPOSIT;return Y.CONTRACT_CALL}function mf(f){return(BigInt(f)*BigInt(1000000000000)).toString()}function yf(f){return(BigInt(f)/BigInt(1000000000000)).toString()}var Y;var i=Z(()=>{Y={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function r({account:f,contractId:N,viewMethods:O,changeMethods:C}){let{Contract:q}=await import("@near-js/accounts");return new q(f,N,{changeMethods:C,useLocalViewExecution:!0,viewMethods:O})}import{AssetValue as Lf,getChainConfig as kf}from"@swapkit/helpers";import{SwapKitApi as jf}from"@swapkit/helpers/api";function df(){function f(){let N=Date.now(),O=s||N;return s=O,N>s?N:O+1}return Vf+f().toString(36)}function Df(f){return async function(O,C=!0){let q=await jf.getChainBalance({address:O,chain:f,scamFilter:C}),{baseDecimal:G}=kf(f),X=q.map(({identifier:J,value:y,decimal:S})=>{return new Lf({decimal:S||G,identifier:J,value:y})});if(!X.some((J)=>J.isGasAsset))return[Lf.from({chain:f}),...X];return X}}var Vf,s=0;var Yf=Z(()=>{Vf=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{JsonRpcProvider as Sf}from"@near-js/providers";import{AssetValue as c,Chain as $,getRPCUrl as Af,SwapKitError as A}from"@swapkit/helpers";import{match as qf,P as Bf}from"ts-pattern";function Pf(f){let N;async function O(){if(N)return N;return N=await qf(f).with({phrase:Bf.string},async(T)=>{return await j(T)}).with({signer:Bf.any},({signer:T})=>T).otherwise(()=>{return}),N}async function C(){let T=await Af($.Near);return new Sf({url:T})}async function q(T){let{Account:x}=await import("@near-js/accounts"),E=await C(),R=await O(),_=T||await G();return new x(_,E,R)}async function G(){let T=await O();if(!T)throw new A("toolbox_near_no_signer");return await T.getAddress()}async function X(T){return(await Nf({changeMethods:[],contractId:T.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:T.accountId})}async function m(T){let E=[await u({args:{account_id:T.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await u({args:{amount:T.assetValue.getBaseValue("string"),memo:T.memo||null,receiver_id:T.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return xf({actions:E,receiverId:T.contractId})}async function J(T){if(!await O())throw new A("toolbox_near_no_signer");let{assetValue:E,recipient:R,memo:_}=T,L=await G();if(!E.isGasAsset&&E.address){if(!await X({accountId:R,contractId:E.address}))return m({assetValue:E,contractId:E.address,memo:_,recipient:R})}let D=await y({...T,sender:L});return Tf(D)}async function y({recipient:T,assetValue:x,memo:E,attachedDeposit:R,sender:_,functionCall:L}){let D=await C();if(!w(T))throw new A("toolbox_near_invalid_address",{recipient:T});if(!w(_))throw new A("toolbox_near_invalid_address",{sender:_});if(L)return P({...L,sender:_});if(!x.isGasAsset){let Of=x.address;if(!Of)throw new A("toolbox_near_missing_contract_address");return P({args:{amount:x.getBaseValue("string"),memo:E||null,receiver_id:T},attachedDeposit:R||"1",contractId:Of,gas:"250000000000000",methodName:"ft_transfer",sender:_})}let{publicKey:M,nonce:U}=await V(D,_),I=x.getBaseValue("bigint"),{actionCreators:Q,createTransaction:z}=await import("@near-js/transactions"),{baseDecode:H}=await import("@near-js/utils"),b=[Q.transfer(I)];if(E&&R)b.push(Q.functionCall("memo",{memo:E},BigInt("250000000000000"),BigInt(R)));let F=await D.block({finality:"final"}),Ef=H(F.header.hash);return z(_,M,T,U+1,b,Ef)}function S(T){let x=T.encode();return Buffer.from(x).toString("base64")}async function P({args:T,attachedDeposit:x,contractId:E,gas:R,methodName:_,sender:L}){let D=await C(),{publicKey:M,nonce:U}=await V(D,L),{createTransaction:I,actionCreators:Q}=await import("@near-js/transactions"),{baseDecode:z}=await import("@near-js/utils"),H=await D.block({finality:"final"}),b=z(H.header.hash),F=[Q.functionCall(_,Buffer.from(JSON.stringify(T)),BigInt(R),BigInt(x))];return I(L,M,E,U+1,F,b)}async function u(T){let{actionCreators:x}=await import("@near-js/transactions");return x.functionCall(T.methodName,Buffer.from(JSON.stringify(T.args)),BigInt(T.gas),BigInt(T.attachedDeposit))}async function a(T){let x=await O();if(!x)throw new A("toolbox_near_no_signer");let[E,R]=await x.signTransaction(T);return R}async function ff(T){return(await(await C()).sendTransaction(T)).transaction.hash}async function Tf(T){let x=await O();if(!x)throw new A("toolbox_near_no_signer");try{let E=await a(T);return await ff(E)}catch{return x.signAndSendTransactions?.({transactions:[T]})}}async function Uf(T){let x=await O();if("assetValue"in T){let R=await Gf();try{let _=await Af($.Near),L=await fetch(_,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:D}}=await L.json(),{execution:M,send_sir:U}=D.transaction_costs.action_receipt_creation_config,{execution:I,send_sir:Q}=D.transaction_costs.action_creation_config.transfer_cost,z=BigInt(Q)+BigInt(I),H=BigInt(U)+BigInt(M),F=(z+H)*BigInt(R.toString());return c.from({chain:$.Near,value:F})}catch(_){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",_);let L=BigInt("115123062500"),D=BigInt("108059500000"),U=(L+D)*BigInt(R.toString());return c.from({chain:$.Near,value:U})}}let E=x?await q():void 0;return k(T,E)}async function Gf(){let T=await C();try{return await T.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function If(T,x,E){if(!await O())throw new A("toolbox_near_no_signer");let _=await q(),{formatNearAmount:L}=await import("@near-js/utils"),{PublicKey:D}=await import("@near-js/crypto"),M=L(E)||"0";return(await _.createAccount(T,D.fromString(x),BigInt(M))).transaction.hash}async function Qf(T){let x=await O();try{if(!x)throw new A("toolbox_near_no_signer");let{actionCreators:E}=await import("@near-js/transactions"),{contractId:R,methodName:_,args:L,deposit:D}=T,M=await q(),U=await k({args:L||{},contractId:R,methodName:_}),I=E.functionCall(_,L||{},U.getBaseValue("bigint"),BigInt(D||"1"));return(await M.signAndSendTransaction({actions:[I],receiverId:R})).transaction_outcome.id}catch(E){throw new A("toolbox_near_transfer_failed",{error:E})}}async function Nf(T){let x=await q();return r({account:x,changeMethods:T.changeMethods,contractId:T.contractId,viewMethods:T.viewMethods})}async function xf(T){if(!await O())throw new A("toolbox_near_no_signer");if(T.actions.length===0)throw new A("toolbox_near_empty_batch");return(await(await q()).signAndSendTransaction({actions:T.actions,receiverId:T.receiverId})).transaction.hash}async function k(T,x){let E=await qf(T).when(K,()=>Y.SIMPLE_TRANSFER).when(h,(_)=>d(_.methodName)).when(o,(_)=>t(_.actions)).when(p,()=>Y.ACCOUNT_CREATION).when(l,()=>Y.CONTRACT_DEPLOYMENT).when(n,(_)=>{if(!x)throw new A("toolbox_near_no_account");return _.customEstimator(x)}).otherwise(()=>{throw new A("toolbox_near_invalid_gas_params")}),R=BigInt(E)*BigInt(1000000000000);return c.from({chain:$.Near,value:R})}function Wf(T,x){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),k(T,x)}async function Xf(){let T=await C();try{return(await T.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function Zf(){let T=await O();return T?(await T.getPublicKey()).toString():""}return{broadcastTransaction:ff,callFunction:Qf,createAction:u,createContract:Nf,createContractFunctionCall:P,createSubAccount:If,createTransaction:y,estimateGas:Wf,estimateGasLimit:k,estimateTransactionFee:Uf,executeBatchTransaction:xf,getAddress:G,getBalance:Df($.Near),getGasPrice:Xf,getNearProvider:C,getPublicKey:Zf,getSignerFromPhrase:j,getSignerFromPrivateKey:v,serializeTransaction:S,signAndBroadcastTransaction:Tf,signTransaction:a,transfer:J,validateAddress:w}}var e=Z(()=>{Yf();g();i()});var Mf=Z(()=>{e()});var uf={};Hf(uf,{validateNearAddress:()=>w,tgasToGas:()=>mf,isSimpleTransfer:()=>K,isCustomEstimator:()=>n,isContractDeployment:()=>l,isContractCall:()=>h,isBatchTransaction:()=>o,isAccountCreation:()=>p,getNearToolbox:()=>Pf,getNearSignerFromPrivateKey:()=>v,getNearSignerFromPhrase:()=>j,getFullAccessPublicKey:()=>V,getContractMethodGas:()=>d,gasToTGas:()=>yf,estimateBatchGas:()=>t,createNearContract:()=>r,GAS_COSTS:()=>Y});var vf=Z(()=>{g();i();e();Mf()});vf();export{w as validateNearAddress,mf as tgasToGas,K as isSimpleTransfer,n as isCustomEstimator,l as isContractDeployment,h as isContractCall,o as isBatchTransaction,p as isAccountCreation,Pf as getNearToolbox,v as getNearSignerFromPrivateKey,j as getNearSignerFromPhrase,V as getFullAccessPublicKey,d as getContractMethodGas,yf as gasToTGas,t as estimateBatchGas,r as createNearContract,Y as GAS_COSTS};
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/near/helpers/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,KAAK,mBAAmB,EAAwC,MAAM,kBAAkB,CAAC;AAClG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,WAKlD;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,uBAaA;AAED,wBAAsB,2BAA2B,CAAC,UAAU,EAAE,MAAM,uBAInE;AAuBD,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;;;GAkBjF"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/near/helpers/core.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,KAAK,mBAAmB,EAAwC,MAAM,kBAAkB,CAAC;AAElG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,WAKlD;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,uBAYA;AAED,wBAAsB,2BAA2B,CAAC,UAAU,EAAE,MAAM,uBAInE;AAuBD,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM;;;GAkBjF"}
package/package.json CHANGED
@@ -33,7 +33,7 @@
33
33
  "@stricahq/bip32ed25519": "1.1.2",
34
34
  "@stricahq/cbors": "~1.0.2",
35
35
  "@stricahq/typhonjs": "~3.0.1",
36
- "@swapkit/helpers": "4.13.3",
36
+ "@swapkit/helpers": "4.13.4",
37
37
  "@swapkit/utxo-signer": "2.1.1",
38
38
  "@ton/crypto": "~3.3.0",
39
39
  "@ton/ton": "~15.4.0",
@@ -196,5 +196,5 @@
196
196
  "type-check:go": "tsgo"
197
197
  },
198
198
  "type": "module",
199
- "version": "4.15.3"
199
+ "version": "4.15.5"
200
200
  }