@uswap/toolboxes 4.3.10 → 4.3.11
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/dist/src/cardano/index.cjs.map +2 -2
- package/dist/src/cardano/index.js.map +2 -2
- package/dist/src/cosmos/index.cjs +2 -2
- package/dist/src/cosmos/index.cjs.map +8 -8
- package/dist/src/cosmos/index.js +2 -2
- package/dist/src/cosmos/index.js.map +8 -8
- package/dist/src/evm/index.cjs +2 -2
- package/dist/src/evm/index.cjs.map +5 -5
- package/dist/src/evm/index.js +2 -2
- package/dist/src/evm/index.js.map +5 -5
- package/dist/src/index.cjs +3 -3
- package/dist/src/index.cjs.map +32 -32
- package/dist/src/index.js +3 -3
- package/dist/src/index.js.map +32 -32
- package/dist/src/near/index.cjs +2 -2
- package/dist/src/near/index.cjs.map +5 -5
- package/dist/src/near/index.js +2 -2
- package/dist/src/near/index.js.map +5 -5
- package/dist/src/radix/index.cjs +2 -2
- package/dist/src/radix/index.cjs.map +3 -3
- package/dist/src/radix/index.js +2 -2
- package/dist/src/radix/index.js.map +3 -3
- package/dist/src/ripple/index.cjs +2 -2
- package/dist/src/ripple/index.cjs.map +3 -3
- package/dist/src/ripple/index.js +2 -2
- package/dist/src/ripple/index.js.map +3 -3
- package/dist/src/solana/index.cjs.map +2 -2
- package/dist/src/solana/index.js.map +2 -2
- package/dist/src/substrate/index.cjs +2 -2
- package/dist/src/substrate/index.cjs.map +4 -4
- package/dist/src/substrate/index.js +2 -2
- package/dist/src/substrate/index.js.map +4 -4
- package/dist/src/sui/index.cjs.map +2 -2
- package/dist/src/sui/index.js.map +2 -2
- package/dist/src/ton/index.cjs +2 -2
- package/dist/src/ton/index.cjs.map +3 -3
- package/dist/src/ton/index.js +2 -2
- package/dist/src/ton/index.js.map +3 -3
- package/dist/src/tron/index.cjs.map +3 -3
- package/dist/src/tron/index.js.map +3 -3
- package/dist/src/utxo/index.cjs +3 -3
- package/dist/src/utxo/index.cjs.map +11 -11
- package/dist/src/utxo/index.js +3 -3
- package/dist/src/utxo/index.js.map +11 -11
- package/dist/types/cardano/toolbox.d.ts +0 -2
- package/dist/types/cardano/toolbox.d.ts.map +1 -1
- package/dist/types/cosmos/thorchainUtils/addressFormat.d.ts +0 -2
- package/dist/types/cosmos/thorchainUtils/addressFormat.d.ts.map +1 -1
- package/dist/types/cosmos/thorchainUtils/messages.d.ts +0 -2
- package/dist/types/cosmos/thorchainUtils/messages.d.ts.map +1 -1
- package/dist/types/cosmos/toolbox/cosmos.d.ts +4 -6
- package/dist/types/cosmos/toolbox/cosmos.d.ts.map +1 -1
- package/dist/types/cosmos/toolbox/index.d.ts +0 -2
- package/dist/types/cosmos/toolbox/index.d.ts.map +1 -1
- package/dist/types/cosmos/toolbox/thorchain.d.ts +4 -6
- package/dist/types/cosmos/toolbox/thorchain.d.ts.map +1 -1
- package/dist/types/cosmos/util.d.ts +0 -2
- package/dist/types/cosmos/util.d.ts.map +1 -1
- package/dist/types/evm/toolbox/baseEVMToolbox.d.ts +0 -2
- package/dist/types/evm/toolbox/baseEVMToolbox.d.ts.map +1 -1
- package/dist/types/evm/toolbox/evm.d.ts.map +1 -1
- package/dist/types/evm/toolbox/op.d.ts +0 -2
- package/dist/types/evm/toolbox/op.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/near/helpers/core.d.ts +0 -2
- package/dist/types/near/helpers/core.d.ts.map +1 -1
- package/dist/types/near/toolbox.d.ts +0 -2
- package/dist/types/near/toolbox.d.ts.map +1 -1
- package/dist/types/radix/index.d.ts +2 -4
- package/dist/types/radix/index.d.ts.map +1 -1
- package/dist/types/ripple/index.d.ts +0 -2
- package/dist/types/ripple/index.d.ts.map +1 -1
- package/dist/types/solana/toolbox.d.ts +0 -2
- package/dist/types/solana/toolbox.d.ts.map +1 -1
- package/dist/types/substrate/balance.d.ts +3 -0
- package/dist/types/substrate/balance.d.ts.map +1 -1
- package/dist/types/substrate/substrate.d.ts +0 -2
- package/dist/types/substrate/substrate.d.ts.map +1 -1
- package/dist/types/sui/toolbox.d.ts +0 -2
- package/dist/types/sui/toolbox.d.ts.map +1 -1
- package/dist/types/ton/toolbox.d.ts +0 -2
- package/dist/types/ton/toolbox.d.ts.map +1 -1
- package/dist/types/tron/helpers/trongrid.d.ts +0 -2
- package/dist/types/tron/helpers/trongrid.d.ts.map +1 -1
- package/dist/types/tron/toolbox.d.ts +0 -2
- package/dist/types/tron/toolbox.d.ts.map +1 -1
- package/dist/types/utils.d.ts +3 -0
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/types/utxo/helpers/api.d.ts +0 -2
- package/dist/types/utxo/helpers/api.d.ts.map +1 -1
- package/dist/types/utxo/helpers/bchaddrjs.d.ts +0 -2
- package/dist/types/utxo/helpers/bchaddrjs.d.ts.map +1 -1
- package/dist/types/utxo/helpers/coinselect.d.ts +0 -2
- package/dist/types/utxo/helpers/coinselect.d.ts.map +1 -1
- package/dist/types/utxo/helpers/txSize.d.ts +0 -2
- package/dist/types/utxo/helpers/txSize.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/bitcoinCash.d.ts +0 -2
- package/dist/types/utxo/toolbox/bitcoinCash.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/index.d.ts +0 -2
- package/dist/types/utxo/toolbox/index.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/utxo.d.ts +0 -2
- package/dist/types/utxo/toolbox/utxo.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/zcash.d.ts +0 -2
- package/dist/types/utxo/toolbox/zcash.d.ts.map +1 -1
- package/package.json +5 -11
- package/src/cardano/toolbox.ts +0 -2
- package/src/cosmos/thorchainUtils/addressFormat.ts +0 -2
- package/src/cosmos/thorchainUtils/messages.ts +0 -2
- package/src/cosmos/toolbox/cosmos.ts +9 -11
- package/src/cosmos/toolbox/index.ts +0 -2
- package/src/cosmos/toolbox/thorchain.ts +6 -8
- package/src/cosmos/util.ts +1 -3
- package/src/evm/__tests__/ethereum.test.ts +6 -2
- package/src/evm/toolbox/baseEVMToolbox.ts +4 -6
- package/src/evm/toolbox/op.ts +0 -2
- package/src/index.ts +0 -2
- package/src/near/helpers/core.ts +0 -2
- package/src/near/toolbox.ts +0 -2
- package/src/radix/index.ts +3 -5
- package/src/ripple/index.ts +2 -4
- package/src/solana/toolbox.ts +0 -2
- package/src/substrate/balance.ts +9 -5
- package/src/substrate/substrate.ts +2 -4
- package/src/sui/toolbox.ts +0 -2
- package/src/ton/toolbox.ts +2 -4
- package/src/tron/__tests__/toolbox.test.ts +6 -2
- package/src/tron/helpers/trongrid.ts +0 -2
- package/src/tron/toolbox.ts +1 -3
- package/src/utils.ts +6 -2
- package/src/utxo/helpers/api.ts +2 -4
- package/src/utxo/helpers/bchaddrjs.ts +0 -2
- package/src/utxo/helpers/coinselect.ts +0 -2
- package/src/utxo/helpers/txSize.ts +0 -2
- package/src/utxo/toolbox/bitcoinCash.ts +0 -2
- package/src/utxo/toolbox/index.ts +0 -2
- package/src/utxo/toolbox/utxo.ts +2 -4
- package/src/utxo/toolbox/zcash.ts +2 -4
package/dist/src/near/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Bt=Object.create;var{getPrototypeOf:Ft,defineProperty:D,getOwnPropertyNames:mt,getOwnPropertyDescriptor:bt}=Object,Tt=Object.prototype.hasOwnProperty;var P=(t,r,e)=>{e=t!=null?Bt(Ft(t)):{};let N=r||!t||!t.__esModule?D(e,"default",{value:t,enumerable:!0}):e;for(let m of mt(t))if(!Tt.call(N,m))D(N,m,{get:()=>t[m],enumerable:!0});return N},et=new WeakMap,It=(t)=>{var r=et.get(t),e;if(r)return r;if(r=D({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")mt(t).map((N)=>!Tt.call(r,N)&&D(r,N,{get:()=>t[N],enumerable:!(e=bt(t,N))||e.enumerable}));return et.set(t,r),r};var Yt=(t,r)=>{for(var e in r)D(t,e,{get:r[e],enumerable:!0,configurable:!0,set:(N)=>r[e]=()=>N})};var L=(t,r)=>()=>(t&&(r=t(t=0)),r);async function F(){let{validateAccountId:t}=await import("near-sdk-js");return(r)=>{try{return t(r)}catch{let e=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return r.length>=2&&r.length<=64&&e.test(r)}}}async function b(t){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:e}=await import("@near-js/crypto"),N=t.index||0,m=t.derivationPath?B.derivationPathToString(t.derivationPath.slice(0,3)):`m/44'/397'/${N}'`,{secretKey:_}=r(t.phrase,m),s=e.fromString(_);return gt(s)}async function W(t){let{KeyPair:r}=await import("@near-js/crypto"),e=r.fromString(t);return gt(e)}function gt(t){return new ft(t)}async function I(t,r){let N=(await t.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((O)=>O.access_key.permission==="FullAccess");if(!N)throw new B.USwapError("toolbox_near_no_public_key_found");let{PublicKey:m}=await import("@near-js/crypto"),_=m.fromString(N.public_key);return{nonce:N.access_key.nonce||0,publicKey:_}}var Nt,B,ft;var Z=L(()=>{Nt=require("@near-js/signers"),B=require("@uswap/helpers");ft=class ft extends Nt.KeyPairSigner{#t;constructor(t){super(t);this.#t=t}getAddress(){let t=this.#t.getPublicKey(),r=Buffer.from(t.data).toString("hex");return Promise.resolve(r)}}});function $(t){return"recipient"in t&&"amount"in t&&!("contractId"in t)}function p(t){return"contractId"in t&&"methodName"in t}function z(t){return"actions"in t}function X(t){return"newAccountId"in t}function H(t){return"contractCode"in t}function a(t){return"customEstimator"in t}function k(t){let r=0;for(let e of t)switch(e.enum){case"transfer":r+=Number(C.SIMPLE_TRANSFER);break;case"functionCall":r+=Number(C.CONTRACT_CALL);break;case"createAccount":r+=Number(C.ACCOUNT_CREATION);break;case"deployContract":r+=Number(C.CONTRACT_DEPLOYMENT);break;case"addKey":r+=Number(C.ACCESS_KEY_ADDITION);break;case"deleteKey":r+=Number(C.ACCESS_KEY_DELETION);break;case"stake":r+=Number(C.STAKE);break;default:r+=Number(C.CONTRACT_CALL)}return r.toString()}function w(t){if(t==="ft_transfer"||t==="ft_transfer_call")return C.TOKEN_TRANSFER;if(t==="storage_deposit")return C.STORAGE_DEPOSIT;return C.CONTRACT_CALL}function qt(t){return(BigInt(t)*BigInt(1000000000000)).toString()}function Jt(t){return(BigInt(t)/BigInt(1000000000000)).toString()}var C;var V=L(()=>{C={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 j({account:t,contractId:r,viewMethods:e,changeMethods:N}){let{Contract:m}=await import("@near-js/accounts");return new m(t,r,{changeMethods:N,useLocalViewExecution:!0,viewMethods:e})}function Ht(){function t(){let r=Date.now(),e=v||r;return v=e,r>v?r:e+1}return Mt+t().toString(36)}function st(t){return async function(e,N=!0){let m=await Pt.SwapKitApi.getChainBalance({address:e,chain:t,scamFilter:N}),{baseDecimal:_}=S.getChainConfig(t),s=m.map(({identifier:R,value:Y,decimal:q})=>{return new S.AssetValue({decimal:q||_,identifier:R,value:Y})});if(!s.some((R)=>R.isGasAsset))return[S.AssetValue.from({chain:t}),...s];return s}}var S,Pt,Mt,v=0;var xt=L(()=>{S=require("@uswap/helpers"),Pt=require("@uswap/helpers/api"),Mt=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function Qt(t){let{P:r,match:e}=await import("ts-pattern"),{JsonRpcProvider:N}=await import("@near-js/providers"),m=await e(t).with({phrase:r.string},async(n)=>{return await b(n)}).with({signer:r.any},({signer:n})=>n).otherwise(()=>{return}),_=await o.getRPCUrl(o.Chain.Near),s=new N({url:_});async function O(n){let{Account:i}=await import("@near-js/accounts"),T=n||await R();return new i(T,s,m)}async function R(){if(!m)throw new o.USwapError("toolbox_near_no_signer");return await m.getAddress()}async function Y(n){return(await d({changeMethods:[],contractId:n.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:n.accountId})}async function q(n){let T=[await M({args:{account_id:n.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await M({args:{amount:n.assetValue.getBaseValue("string"),memo:n.memo||null,receiver_id:n.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return tt({actions:T,receiverId:n.contractId})}async function Et(n){if(!m)throw new o.USwapError("toolbox_near_no_signer");let{assetValue:i,recipient:T,memo:x}=n,E=await R();if(!i.isGasAsset&&i.address){if(!await Y({accountId:T,contractId:i.address}))return q({assetValue:i,contractId:i.address,memo:x,recipient:T})}let f=await U({...n,sender:E});return c(f)}async function U(n){let{recipient:i,assetValue:T,memo:x,attachedDeposit:E,sender:f,functionCall:g}=n,A=await F();if(!A(i))throw new o.USwapError("toolbox_near_invalid_address",{recipient:i});if(!A(f))throw new o.USwapError("toolbox_near_invalid_address",{signerId:f});if(g)return J({...g,sender:f});if(!T.isGasAsset){let ot=T.address;if(!ot)throw new o.USwapError("toolbox_near_missing_contract_address");return J({args:{amount:T.getBaseValue("string"),memo:x||null,receiver_id:i},attachedDeposit:E||"1",contractId:ot,gas:"250000000000000",methodName:"ft_transfer",sender:f})}let{publicKey:G,nonce:y}=await I(s,f),nt=T.getBaseValue("bigint"),{actionCreators:rt,createTransaction:Gt}=await import("@near-js/transactions"),{baseDecode:Dt}=await import("@near-js/utils"),it=[rt.transfer(nt)];if(x&&E)it.push(rt.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(E)));let St=await s.block({finality:"final"}),yt=Dt(St.header.hash);return Gt(f,G,i,y+1,it,yt)}function At(n){let i=n.encode();return Buffer.from(i).toString("base64")}async function J(n){let{sender:i}=n,{publicKey:T,nonce:x}=await I(s,i),{createTransaction:E,actionCreators:f}=await import("@near-js/transactions"),{baseDecode:g}=await import("@near-js/utils"),A=await s.block({finality:"final"}),G=g(A.header.hash),y=[f.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))];return E(i,T,n.contractId,x+1,y,G)}async function M(n){let{actionCreators:i}=await import("@near-js/transactions");return i.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))}async function h(n){if(!m)throw new o.USwapError("toolbox_near_no_signer");let[i,T]=await m.signTransaction(n);return T}async function l(n){return(await s.sendTransaction(n)).transaction.hash}async function c(n){if(!m)throw new o.USwapError("toolbox_near_no_signer");try{let i=await h(n);return await l(i)}catch{return m.signAndSendTransactions?.({transactions:[n]})}}async function Ot(n){if("assetValue"in n){let E=BigInt("115123062500")+BigInt("108059500000"),f=await _t(),g=E*BigInt(f.toString()),{baseDecimal:A}=o.getChainConfig(o.Chain.Near);return o.AssetValue.from({chain:o.Chain.Near,fromBaseDecimal:A,value:g.toString()})}let i=m?await O():void 0;return Q(n,i)}async function _t(){try{return await s.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Rt(n,i,T){if(!m)throw new o.USwapError("toolbox_near_no_signer");let x=await O(),{formatNearAmount:E}=await import("@near-js/utils"),{PublicKey:f}=await import("@near-js/crypto"),g=E(T)||"0";return(await x.createAccount(n,f.fromString(i),BigInt(g))).transaction.hash}async function ut(n){try{if(!m)throw new o.USwapError("toolbox_near_no_signer");let{actionCreators:i}=await import("@near-js/transactions"),{contractId:T,methodName:x,args:E,deposit:f}=n,g=await O(),A=await Q({args:E||{},contractId:T,methodName:x}),G=i.functionCall(x,E||{},A.getBaseValue("bigint"),BigInt(f||"1"));return(await g.signAndSendTransaction({actions:[G],receiverId:T})).transaction_outcome.id}catch(i){throw new o.USwapError("toolbox_near_transfer_failed",{error:i})}}async function d(n){let i=await O();return j({account:i,changeMethods:n.changeMethods,contractId:n.contractId,viewMethods:n.viewMethods})}async function tt(n){if(!m)throw new o.USwapError("toolbox_near_no_signer");if(n.actions.length===0)throw new o.USwapError("toolbox_near_empty_batch");return(await(await O()).signAndSendTransaction({actions:n.actions,receiverId:n.receiverId})).transaction.hash}async function Q(n,i){let{baseDecimal:T}=o.getChainConfig(o.Chain.Near),x=await e(n).when($,()=>C.SIMPLE_TRANSFER).when(p,(g)=>w(g.methodName)).when(z,(g)=>k(g.actions)).when(X,()=>C.ACCOUNT_CREATION).when(H,()=>C.CONTRACT_DEPLOYMENT).when(a,(g)=>{if(!i)throw new o.USwapError("toolbox_near_no_account");return g.customEstimator(i)}).otherwise(()=>{throw new o.USwapError("toolbox_near_invalid_gas_params")}),f=BigInt(x)*BigInt(1000000000000);return o.AssetValue.from({chain:o.Chain.Near,fromBaseDecimal:T,value:f})}async function Lt(){try{return(await s.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:l,callFunction:ut,createAction:M,createContract:d,createContractFunctionCall:J,createSubAccount:Rt,createTransaction:U,estimateGas:Q,estimateTransactionFee:Ot,executeBatchTransaction:tt,getAddress:R,getBalance:st(o.Chain.Near),getGasPrice:Lt,getPublicKey:async()=>m?(await m.getPublicKey()).toString():"",getSignerFromPhrase:(n)=>b(n),getSignerFromPrivateKey:W,provider:s,serializeTransaction:At,signAndSendTransaction:c,signTransaction:h,transfer:Et,validateAddress:await F()}}var o;var K=L(()=>{xt();Z();V();o=require("@uswap/helpers")});var Ct=L(()=>{K()});var Wt={};Yt(Wt,{tgasToGas:()=>qt,isSimpleTransfer:()=>$,isCustomEstimator:()=>a,isContractDeployment:()=>H,isContractCall:()=>p,isBatchTransaction:()=>z,isAccountCreation:()=>X,getValidateNearAddress:()=>F,getNearToolbox:()=>Qt,getNearSignerFromPrivateKey:()=>W,getNearSignerFromPhrase:()=>b,getFullAccessPublicKey:()=>I,getContractMethodGas:()=>w,gasToTGas:()=>Jt,estimateBatchGas:()=>k,createNearContract:()=>j,GAS_COSTS:()=>C});module.exports=It(Wt);var Zt=L(()=>{Z();V();K();Ct()});Zt();
|
|
1
|
+
var Bt=Object.create;var{getPrototypeOf:Ft,defineProperty:S,getOwnPropertyNames:mt,getOwnPropertyDescriptor:bt}=Object,Tt=Object.prototype.hasOwnProperty;var s=(t,r,e)=>{e=t!=null?Bt(Ft(t)):{};let N=r||!t||!t.__esModule?S(e,"default",{value:t,enumerable:!0}):e;for(let m of mt(t))if(!Tt.call(N,m))S(N,m,{get:()=>t[m],enumerable:!0});return N},et=new WeakMap,It=(t)=>{var r=et.get(t),e;if(r)return r;if(r=S({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")mt(t).map((N)=>!Tt.call(r,N)&&S(r,N,{get:()=>t[N],enumerable:!(e=bt(t,N))||e.enumerable}));return et.set(t,r),r};var Yt=(t,r)=>{for(var e in r)S(t,e,{get:r[e],enumerable:!0,configurable:!0,set:(N)=>r[e]=()=>N})};var L=(t,r)=>()=>(t&&(r=t(t=0)),r);async function F(){let{validateAccountId:t}=await import("near-sdk-js");return(r)=>{try{return t(r)}catch{let e=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return r.length>=2&&r.length<=64&&e.test(r)}}}async function b(t){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:e}=await import("@near-js/crypto"),N=t.index||0,m=t.derivationPath?B.derivationPathToString(t.derivationPath.slice(0,3)):`m/44'/397'/${N}'`,{secretKey:_}=r(t.phrase,m),P=e.fromString(_);return gt(P)}async function Q(t){let{KeyPair:r}=await import("@near-js/crypto"),e=r.fromString(t);return gt(e)}function gt(t){return new ft(t)}async function I(t,r){let N=(await t.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((O)=>O.access_key.permission==="FullAccess");if(!N)throw new B.USwapError("toolbox_near_no_public_key_found");let{PublicKey:m}=await import("@near-js/crypto"),_=m.fromString(N.public_key);return{nonce:N.access_key.nonce||0,publicKey:_}}var Nt,B,ft;var W=L(()=>{Nt=require("@near-js/signers"),B=require("@uswap/helpers");ft=class ft extends Nt.KeyPairSigner{#t;constructor(t){super(t);this.#t=t}getAddress(){let t=this.#t.getPublicKey(),r=Buffer.from(t.data).toString("hex");return Promise.resolve(r)}}});function Z(t){return"recipient"in t&&"amount"in t&&!("contractId"in t)}function $(t){return"contractId"in t&&"methodName"in t}function p(t){return"actions"in t}function H(t){return"newAccountId"in t}function X(t){return"contractCode"in t}function a(t){return"customEstimator"in t}function k(t){let r=0;for(let e of t)switch(e.enum){case"transfer":r+=Number(C.SIMPLE_TRANSFER);break;case"functionCall":r+=Number(C.CONTRACT_CALL);break;case"createAccount":r+=Number(C.ACCOUNT_CREATION);break;case"deployContract":r+=Number(C.CONTRACT_DEPLOYMENT);break;case"addKey":r+=Number(C.ACCESS_KEY_ADDITION);break;case"deleteKey":r+=Number(C.ACCESS_KEY_DELETION);break;case"stake":r+=Number(C.STAKE);break;default:r+=Number(C.CONTRACT_CALL)}return r.toString()}function w(t){if(t==="ft_transfer"||t==="ft_transfer_call")return C.TOKEN_TRANSFER;if(t==="storage_deposit")return C.STORAGE_DEPOSIT;return C.CONTRACT_CALL}function Mt(t){return(BigInt(t)*BigInt(1000000000000)).toString()}function qt(t){return(BigInt(t)/BigInt(1000000000000)).toString()}var C;var V=L(()=>{C={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 j({account:t,contractId:r,viewMethods:e,changeMethods:N}){let{Contract:m}=await import("@near-js/accounts");return new m(t,r,{changeMethods:N,useLocalViewExecution:!0,viewMethods:e})}function Xt(){function t(){let r=Date.now(),e=v||r;return v=e,r>v?r:e+1}return Jt+t().toString(36)}function Pt(t){return async function(e,N=!0){let m=await st.USwapApi.getChainBalance({address:e,chain:t,scamFilter:N}),{baseDecimal:_}=D.getChainConfig(t),P=m.map(({identifier:R,value:Y,decimal:M})=>{return new D.AssetValue({decimal:M||_,identifier:R,value:Y})});if(!P.some((R)=>R.isGasAsset))return[D.AssetValue.from({chain:t}),...P];return P}}var D,st,Jt,v=0;var xt=L(()=>{D=require("@uswap/helpers"),st=require("@uswap/helpers/api"),Jt=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function zt(t){let{P:r,match:e}=await import("ts-pattern"),{JsonRpcProvider:N}=await import("@near-js/providers"),m=await e(t).with({phrase:r.string},async(n)=>{return await b(n)}).with({signer:r.any},({signer:n})=>n).otherwise(()=>{return}),_=await o.getRPCUrl(o.Chain.Near),P=new N({url:_});async function O(n){let{Account:i}=await import("@near-js/accounts"),T=n||await R();return new i(T,P,m)}async function R(){if(!m)throw new o.USwapError("toolbox_near_no_signer");return await m.getAddress()}async function Y(n){return(await d({changeMethods:[],contractId:n.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:n.accountId})}async function M(n){let T=[await J({args:{account_id:n.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await J({args:{amount:n.assetValue.getBaseValue("string"),memo:n.memo||null,receiver_id:n.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return tt({actions:T,receiverId:n.contractId})}async function Et(n){if(!m)throw new o.USwapError("toolbox_near_no_signer");let{assetValue:i,recipient:T,memo:x}=n,E=await R();if(!i.isGasAsset&&i.address){if(!await Y({accountId:T,contractId:i.address}))return M({assetValue:i,contractId:i.address,memo:x,recipient:T})}let f=await l({...n,sender:E});return c(f)}async function l(n){let{recipient:i,assetValue:T,memo:x,attachedDeposit:E,sender:f,functionCall:g}=n,A=await F();if(!A(i))throw new o.USwapError("toolbox_near_invalid_address",{recipient:i});if(!A(f))throw new o.USwapError("toolbox_near_invalid_address",{signerId:f});if(g)return q({...g,sender:f});if(!T.isGasAsset){let ot=T.address;if(!ot)throw new o.USwapError("toolbox_near_missing_contract_address");return q({args:{amount:T.getBaseValue("string"),memo:x||null,receiver_id:i},attachedDeposit:E||"1",contractId:ot,gas:"250000000000000",methodName:"ft_transfer",sender:f})}let{publicKey:G,nonce:y}=await I(P,f),nt=T.getBaseValue("bigint"),{actionCreators:rt,createTransaction:Gt}=await import("@near-js/transactions"),{baseDecode:St}=await import("@near-js/utils"),it=[rt.transfer(nt)];if(x&&E)it.push(rt.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(E)));let Dt=await P.block({finality:"final"}),yt=St(Dt.header.hash);return Gt(f,G,i,y+1,it,yt)}function At(n){let i=n.encode();return Buffer.from(i).toString("base64")}async function q(n){let{sender:i}=n,{publicKey:T,nonce:x}=await I(P,i),{createTransaction:E,actionCreators:f}=await import("@near-js/transactions"),{baseDecode:g}=await import("@near-js/utils"),A=await P.block({finality:"final"}),G=g(A.header.hash),y=[f.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))];return E(i,T,n.contractId,x+1,y,G)}async function J(n){let{actionCreators:i}=await import("@near-js/transactions");return i.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))}async function K(n){if(!m)throw new o.USwapError("toolbox_near_no_signer");let[i,T]=await m.signTransaction(n);return T}async function h(n){return(await P.sendTransaction(n)).transaction.hash}async function c(n){if(!m)throw new o.USwapError("toolbox_near_no_signer");try{let i=await K(n);return await h(i)}catch{return m.signAndSendTransactions?.({transactions:[n]})}}async function Ot(n){if("assetValue"in n){let E=BigInt("115123062500")+BigInt("108059500000"),f=await _t(),g=E*BigInt(f.toString()),{baseDecimal:A}=o.getChainConfig(o.Chain.Near);return o.AssetValue.from({chain:o.Chain.Near,fromBaseDecimal:A,value:g.toString()})}let i=m?await O():void 0;return z(n,i)}async function _t(){try{return await P.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Rt(n,i,T){if(!m)throw new o.USwapError("toolbox_near_no_signer");let x=await O(),{formatNearAmount:E}=await import("@near-js/utils"),{PublicKey:f}=await import("@near-js/crypto"),g=E(T)||"0";return(await x.createAccount(n,f.fromString(i),BigInt(g))).transaction.hash}async function ut(n){try{if(!m)throw new o.USwapError("toolbox_near_no_signer");let{actionCreators:i}=await import("@near-js/transactions"),{contractId:T,methodName:x,args:E,deposit:f}=n,g=await O(),A=await z({args:E||{},contractId:T,methodName:x}),G=i.functionCall(x,E||{},A.getBaseValue("bigint"),BigInt(f||"1"));return(await g.signAndSendTransaction({actions:[G],receiverId:T})).transaction_outcome.id}catch(i){throw new o.USwapError("toolbox_near_transfer_failed",{error:i})}}async function d(n){let i=await O();return j({account:i,changeMethods:n.changeMethods,contractId:n.contractId,viewMethods:n.viewMethods})}async function tt(n){if(!m)throw new o.USwapError("toolbox_near_no_signer");if(n.actions.length===0)throw new o.USwapError("toolbox_near_empty_batch");return(await(await O()).signAndSendTransaction({actions:n.actions,receiverId:n.receiverId})).transaction.hash}async function z(n,i){let{baseDecimal:T}=o.getChainConfig(o.Chain.Near),x=await e(n).when(Z,()=>C.SIMPLE_TRANSFER).when($,(g)=>w(g.methodName)).when(p,(g)=>k(g.actions)).when(H,()=>C.ACCOUNT_CREATION).when(X,()=>C.CONTRACT_DEPLOYMENT).when(a,(g)=>{if(!i)throw new o.USwapError("toolbox_near_no_account");return g.customEstimator(i)}).otherwise(()=>{throw new o.USwapError("toolbox_near_invalid_gas_params")}),f=BigInt(x)*BigInt(1000000000000);return o.AssetValue.from({chain:o.Chain.Near,fromBaseDecimal:T,value:f})}async function Lt(){try{return(await P.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:h,callFunction:ut,createAction:J,createContract:d,createContractFunctionCall:q,createSubAccount:Rt,createTransaction:l,estimateGas:z,estimateTransactionFee:Ot,executeBatchTransaction:tt,getAddress:R,getBalance:Pt(o.Chain.Near),getGasPrice:Lt,getPublicKey:async()=>m?(await m.getPublicKey()).toString():"",getSignerFromPhrase:(n)=>b(n),getSignerFromPrivateKey:Q,provider:P,serializeTransaction:At,signAndSendTransaction:c,signTransaction:K,transfer:Et,validateAddress:await F()}}var o;var U=L(()=>{xt();W();V();o=require("@uswap/helpers")});var Ct=L(()=>{U()});var Qt={};Yt(Qt,{tgasToGas:()=>Mt,isSimpleTransfer:()=>Z,isCustomEstimator:()=>a,isContractDeployment:()=>X,isContractCall:()=>$,isBatchTransaction:()=>p,isAccountCreation:()=>H,getValidateNearAddress:()=>F,getNearToolbox:()=>zt,getNearSignerFromPrivateKey:()=>Q,getNearSignerFromPhrase:()=>b,getFullAccessPublicKey:()=>I,getContractMethodGas:()=>w,gasToTGas:()=>qt,estimateBatchGas:()=>k,createNearContract:()=>j,GAS_COSTS:()=>C});module.exports=It(Qt);var Wt=L(()=>{W();V();U();Ct()});Wt();
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=FBD7589D9174C15964756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/near/helpers/core.ts", "../src/near/helpers/gasEstimation.ts", "../src/near/helpers/nep141.ts", "../src/utils.ts", "../src/near/toolbox.ts", "../src/near/types.ts", "../src/near/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\n *
|
|
5
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type { KeyPair } from \"@near-js/crypto\";\nimport type { Provider } from \"@near-js/providers\";\nimport { KeyPairSigner } from \"@near-js/signers\";\nimport { type DerivationPathArray, derivationPathToString, USwapError } from \"@uswap/helpers\";\nimport type { NearSigner } from \"../types\";\n\nexport async function getValidateNearAddress() {\n const { validateAccountId } = await import(\"near-sdk-js\");\n return (address: string) => {\n // Use the official NEAR SDK validation function if available\n try {\n return validateAccountId(address);\n } catch {\n const ACCOUNT_ID_REGEX = /^(([a-z\\d]+[-_])*[a-z\\d]+\\.)*([a-z\\d]+[-_])*[a-z\\d]+$/;\n\n return address.length >= 2 && address.length <= 64 && ACCOUNT_ID_REGEX.test(address);\n }\n };\n}\n\nexport async function getNearSignerFromPhrase(params: {\n phrase: string;\n derivationPath?: DerivationPathArray;\n index?: number;\n}) {\n const { parseSeedPhrase } = await import(\"near-seed-phrase\");\n const { KeyPair } = await import(\"@near-js/crypto\");\n\n const index = params.index || 0;\n const derivationPath = params.derivationPath\n ? derivationPathToString(params.derivationPath.slice(0, 3) as [number, number, number])\n : `m/44'/397'/${index}'`;\n\n const { secretKey } = parseSeedPhrase(params.phrase, derivationPath);\n const keyPair = KeyPair.fromString(secretKey as any);\n\n return createNearSignerFromKeyPair(keyPair);\n}\n\nexport async function getNearSignerFromPrivateKey(privateKey: string) {\n const { KeyPair } = await import(\"@near-js/crypto\");\n const keyPair = KeyPair.fromString(privateKey as any);\n return createNearSignerFromKeyPair(keyPair);\n}\n\nclass SKKeyPairSigner extends KeyPairSigner {\n #keyPair: KeyPair;\n\n constructor(keyPair: KeyPair) {\n super(keyPair);\n this.#keyPair = keyPair;\n }\n\n getAddress(): Promise<string> {\n const publicKey = this.#keyPair.getPublicKey();\n const hexAddress = Buffer.from(publicKey.data).toString(\"hex\");\n return Promise.resolve(hexAddress);\n }\n}\n\nfunction createNearSignerFromKeyPair(keyPair: KeyPair): NearSigner {\n const keyPairSigner = new SKKeyPairSigner(keyPair);\n\n return keyPairSigner;\n}\n\nexport async function getFullAccessPublicKey(provider: Provider, accountId: string) {\n const response = await provider.query({\n account_id: accountId,\n finality: \"final\",\n request_type: \"view_access_key_list\",\n });\n\n const fullAccessKey = (response as any).keys.find((key: any) => key.access_key.permission === \"FullAccess\");\n\n if (!fullAccessKey) {\n throw new USwapError(\"toolbox_near_no_public_key_found\");\n }\n const { PublicKey } = await import(\"@near-js/crypto\");\n\n const publicKey = PublicKey.fromString(fullAccessKey.public_key);\n const nonce = (fullAccessKey.access_key.nonce as number) || 0;\n\n return { nonce, publicKey };\n}\n",
|
|
6
6
|
"import type { Account } from \"@near-js/accounts\";\nimport type { NearGasEstimateParams } from \"../types/contract\";\n\nexport const GAS_COSTS = {\n ACCESS_KEY_ADDITION: \"5\",\n ACCESS_KEY_DELETION: \"5\",\n ACCOUNT_CREATION: \"30\",\n CONTRACT_CALL: \"150\",\n CONTRACT_DEPLOYMENT: \"200\",\n SIMPLE_TRANSFER: \"1\",\n STAKE: \"10\",\n STORAGE_DEPOSIT: \"150\",\n TOKEN_TRANSFER: \"150\",\n} as const;\n\nexport function isSimpleTransfer(params: NearGasEstimateParams): params is { recipient: string; amount: string } {\n return \"recipient\" in params && \"amount\" in params && !(\"contractId\" in params);\n}\n\nexport function isContractCall(\n params: NearGasEstimateParams,\n): params is { contractId: string; methodName: string; args?: Record<string, any>; attachedDeposit?: string } {\n return \"contractId\" in params && \"methodName\" in params;\n}\n\nexport function isBatchTransaction(params: NearGasEstimateParams): params is { actions: any[] } {\n return \"actions\" in params;\n}\n\nexport function isAccountCreation(\n params: NearGasEstimateParams,\n): params is { newAccountId: string; publicKey?: string } {\n return \"newAccountId\" in params;\n}\n\nexport function isContractDeployment(params: NearGasEstimateParams): params is { contractCode: Uint8Array } {\n return \"contractCode\" in params;\n}\n\nexport function isCustomEstimator(\n params: NearGasEstimateParams,\n): params is { customEstimator: (account: Account) => Promise<string> } {\n return \"customEstimator\" in params;\n}\n\nexport function estimateBatchGas(actions: any[]) {\n let totalGas = 0;\n\n for (const action of actions) {\n switch (action.enum) {\n case \"transfer\":\n totalGas += Number(GAS_COSTS.SIMPLE_TRANSFER);\n break;\n case \"functionCall\":\n totalGas += Number(GAS_COSTS.CONTRACT_CALL);\n break;\n case \"createAccount\":\n totalGas += Number(GAS_COSTS.ACCOUNT_CREATION);\n break;\n case \"deployContract\":\n totalGas += Number(GAS_COSTS.CONTRACT_DEPLOYMENT);\n break;\n case \"addKey\":\n totalGas += Number(GAS_COSTS.ACCESS_KEY_ADDITION);\n break;\n case \"deleteKey\":\n totalGas += Number(GAS_COSTS.ACCESS_KEY_DELETION);\n break;\n case \"stake\":\n totalGas += Number(GAS_COSTS.STAKE);\n break;\n default:\n totalGas += Number(GAS_COSTS.CONTRACT_CALL);\n }\n }\n\n return totalGas.toString();\n}\n\nexport function getContractMethodGas(methodName: string) {\n if (methodName === \"ft_transfer\" || methodName === \"ft_transfer_call\") {\n return GAS_COSTS.TOKEN_TRANSFER;\n }\n if (methodName === \"storage_deposit\") {\n return GAS_COSTS.STORAGE_DEPOSIT;\n }\n return GAS_COSTS.CONTRACT_CALL;\n}\n\nexport function tgasToGas(tgas: string): string {\n return (BigInt(tgas) * BigInt(10 ** 12)).toString();\n}\n\nexport function gasToTGas(gas: string): string {\n return (BigInt(gas) / BigInt(10 ** 12)).toString();\n}\n",
|
|
7
7
|
"import type { Account, Contract } from \"@near-js/accounts\";\n\nexport interface NEP141Metadata {\n spec: string;\n name: string;\n symbol: string;\n icon?: string;\n reference?: string;\n reference_hash?: string;\n decimals: number;\n}\n\nexport interface StorageBalance {\n total: string;\n available: string;\n}\n\nexport interface StorageBalanceBounds {\n min: string;\n max?: string;\n}\n\nexport type NEP141Token = {\n transfer: (receiverId: string, amount: string, memo?: string) => Promise<void>;\n transferCall: (receiverId: string, amount: string, msg: string, memo?: string) => Promise<void>;\n balanceOf: (accountId: string) => Promise<string>;\n totalSupply: () => Promise<string>;\n metadata: () => Promise<NEP141Metadata>;\n storageBalanceOf: (accountId: string) => Promise<StorageBalance | null>;\n storageDeposit: (accountId?: string, amount?: string) => Promise<StorageBalance>;\n ensureStorage: (accountId: string) => Promise<void>;\n contract: Contract;\n};\n\n// Create a Near contract instance\nexport async function createNearContract<T extends Contract>({\n account,\n contractId,\n viewMethods,\n changeMethods,\n}: {\n account: Account;\n contractId: string;\n viewMethods: string[];\n changeMethods: string[];\n}) {\n const { Contract } = await import(\"@near-js/accounts\");\n\n return new Contract(account, contractId, { changeMethods, useLocalViewExecution: true, viewMethods }) as T;\n}\n",
|
|
8
|
-
"
|
|
9
|
-
"/**\n * Based on code from SwapKit (https://github.com/swapkit/SwapKit),\n * licensed under the Apache License 2.0.\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type { Account, Contract } from \"@near-js/accounts\";\nimport type { SignedTransaction, Transaction } from \"@near-js/transactions\";\nimport { AssetValue, Chain, getChainConfig, getRPCUrl, USwapError } from \"@uswap/helpers\";\nimport { getBalance } from \"../utils\";\nimport {\n getFullAccessPublicKey,\n getNearSignerFromPhrase,\n getNearSignerFromPrivateKey,\n getValidateNearAddress,\n} from \"./helpers/core\";\nimport {\n estimateBatchGas,\n GAS_COSTS,\n getContractMethodGas,\n isAccountCreation,\n isBatchTransaction,\n isContractCall,\n isContractDeployment,\n isCustomEstimator,\n isSimpleTransfer,\n} from \"./helpers/gasEstimation\";\nimport { createNearContract } from \"./helpers/nep141\";\nimport type {\n NearCreateTransactionParams,\n NearFunctionCallParams,\n NearToolboxParams,\n NearTransferParams,\n} from \"./types\";\nimport type { NearContractInterface, NearGasEstimateParams } from \"./types/contract\";\nimport type { NEP141StorageContract } from \"./types/nep141\";\nimport type {\n BatchTransaction,\n ContractFunctionCallParams,\n CreateActionParams,\n GetSignerFromPhraseParams,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams) {\n const { P, match } = await import(\"ts-pattern\");\n const { JsonRpcProvider } = await import(\"@near-js/providers\");\n const signer = await match(toolboxParams)\n .with({ phrase: P.string }, async (params) => {\n const signer = await getNearSignerFromPhrase(params);\n return signer;\n })\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n const url = await getRPCUrl(Chain.Near);\n\n const provider = new JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"@near-js/accounts\");\n\n const _address = address || (await getAddress());\n\n const account = new Account(_address, provider, signer);\n\n return account;\n }\n\n async function getAddress() {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n const address = await signer.getAddress();\n return address;\n }\n\n async function checkStorageBalance(params: { contractId: string; accountId: string }) {\n const contract = await createContract<NEP141StorageContract>({\n changeMethods: [],\n contractId: params.contractId,\n viewMethods: [\"storage_balance_of\"],\n });\n\n return contract.storage_balance_of({ account_id: params.accountId });\n }\n\n async function transferTokenWithStorageDeposit(params: {\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n contractId: string;\n }) {\n const storageDeposit = \"1250000000000000000000\"; // 0.00125 NEAR default\n\n const actions = [\n await createAction({\n args: { account_id: params.recipient },\n attachedDeposit: storageDeposit,\n gas: \"150000000000000\", // 150 TGas for storage_deposit\n methodName: \"storage_deposit\",\n }),\n await createAction({\n args: {\n amount: params.assetValue.getBaseValue(\"string\"),\n memo: params.memo || null,\n receiver_id: params.recipient,\n },\n attachedDeposit: \"1\",\n gas: \"150000000000000\", // 150 TGas for ft_transfer\n methodName: \"ft_transfer\",\n }),\n ];\n\n return executeBatchTransaction({ actions, receiverId: params.contractId });\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const { assetValue, recipient, memo } = params;\n const sender = await getAddress();\n\n // Handle NEP-141 token transfers - check if recipient needs storage\n if (!assetValue.isGasAsset && assetValue.address) {\n const storageBalance = await checkStorageBalance({ accountId: recipient, contractId: assetValue.address });\n\n if (!storageBalance) {\n return transferTokenWithStorageDeposit({ assetValue, contractId: assetValue.address, memo, recipient });\n }\n }\n\n // Standard transfer (native NEAR or token with registered storage)\n const transaction = await createTransaction({ ...params, sender });\n return signAndSendTransaction(transaction);\n }\n\n async function createTransaction(params: NearCreateTransactionParams) {\n const { recipient, assetValue, memo, attachedDeposit, sender: signerId, functionCall } = params;\n const validateNearAddress = await getValidateNearAddress();\n\n if (!validateNearAddress(recipient)) {\n throw new USwapError(\"toolbox_near_invalid_address\", { recipient: recipient });\n }\n\n if (!validateNearAddress(signerId)) {\n throw new USwapError(\"toolbox_near_invalid_address\", { signerId: signerId });\n }\n\n if (functionCall) {\n return createContractFunctionCall({ ...functionCall, sender: signerId });\n }\n\n if (!assetValue.isGasAsset) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new USwapError(\"toolbox_near_missing_contract_address\");\n }\n\n return createContractFunctionCall({\n args: { amount: assetValue.getBaseValue(\"string\"), memo: memo || null, receiver_id: recipient },\n attachedDeposit: attachedDeposit || \"1\",\n contractId,\n gas: \"250000000000000\",\n methodName: \"ft_transfer\",\n sender: signerId,\n });\n }\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, signerId);\n const baseAmount = assetValue.getBaseValue(\"bigint\");\n\n const { actionCreators, createTransaction } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n\n const txActions = [actionCreators.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(actionCreators.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n return createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n function serializeTransaction(transaction: Transaction) {\n const serializedTx = transaction.encode();\n return Buffer.from(serializedTx).toString(\"base64\");\n }\n\n async function createContractFunctionCall(params: ContractFunctionCallParams) {\n const { sender: accountId } = params;\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, accountId);\n\n const { createTransaction, actionCreators } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n const actions = [\n actionCreators.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n ),\n ];\n\n const transaction = createTransaction(accountId, publicKey, params.contractId, nonce + 1, actions, blockHash);\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { actionCreators } = await import(\"@near-js/transactions\");\n\n const action = actionCreators.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n );\n\n return action;\n }\n\n async function signTransaction(transaction: Transaction): Promise<SignedTransaction> {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const [_hash, signedTx] = await signer.signTransaction(transaction);\n return signedTx;\n }\n\n async function broadcastTransaction(signedTransaction: SignedTransaction) {\n const result = await provider.sendTransaction(signedTransaction);\n return result.transaction.hash;\n }\n\n async function signAndSendTransaction(transaction: Transaction) {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n try {\n const signedTx = await signTransaction(transaction);\n const txHash = await broadcastTransaction(signedTx);\n return txHash;\n } catch {\n return signer.signAndSendTransactions?.({ transactions: [transaction] });\n }\n }\n\n async function estimateTransactionFee(params: NearTransferParams | NearGasEstimateParams) {\n if (\"assetValue\" in params) {\n const baseTransferCost = \"115123062500\";\n const receiptCreationCost = \"108059500000\";\n\n const totalGasUnits = BigInt(baseTransferCost) + BigInt(receiptCreationCost);\n\n const gasPrice = await getCurrentGasPrice();\n\n const totalCostYocto = totalGasUnits * BigInt(gasPrice.toString());\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: totalCostYocto.toString() });\n }\n\n const account = signer ? await getAccount() : undefined;\n return estimateGas(params, account);\n }\n\n async function getCurrentGasPrice() {\n try {\n const result = await provider.query({\n account_id: \"system\",\n args_base64: \"\",\n finality: \"final\",\n method_name: \"gas_price\",\n request_type: \"call_function\",\n });\n\n return result;\n } catch {\n return \"100000000\"; // 0.0001 NEAR per Tgas\n }\n }\n\n async function createSubAccount(subAccountId: string, publicKey: string, initialBalance: string): Promise<string> {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const account = await getAccount();\n const { formatNearAmount } = await import(\"@near-js/utils\");\n const { PublicKey } = await import(\"@near-js/crypto\");\n\n const balanceInYocto = formatNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(subAccountId, PublicKey.fromString(publicKey), BigInt(balanceInYocto));\n\n return result.transaction.hash;\n }\n\n async function callFunction(params: NearFunctionCallParams): Promise<string> {\n try {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const { actionCreators } = await import(\"@near-js/transactions\");\n\n const { contractId, methodName, args, deposit } = params;\n const account = await getAccount();\n\n const estimatedGas = await estimateGas({ args: args || {}, contractId, methodName });\n\n const functionAction = actionCreators.functionCall(\n methodName,\n args || {},\n estimatedGas.getBaseValue(\"bigint\"),\n BigInt(deposit || \"1\"),\n );\n\n const result = await account.signAndSendTransaction({ actions: [functionAction], receiverId: contractId });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new USwapError(\"toolbox_near_transfer_failed\", { error });\n }\n }\n\n // Create typed contract interface\n async function createContract<T extends Contract = Contract>(contractInterface: NearContractInterface): Promise<T> {\n const account = await getAccount();\n\n return createNearContract<T>({\n account,\n changeMethods: contractInterface.changeMethods,\n contractId: contractInterface.contractId,\n viewMethods: contractInterface.viewMethods,\n });\n }\n\n async function executeBatchTransaction(batch: BatchTransaction): Promise<string> {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n if (batch.actions.length === 0) {\n throw new USwapError(\"toolbox_near_empty_batch\");\n }\n\n const account = await getAccount();\n\n // Use account.signAndSendTransaction for batch operations\n const result = await account.signAndSendTransaction({ actions: batch.actions, receiverId: batch.receiverId });\n\n return result.transaction.hash;\n }\n\n async function estimateGas(params: NearGasEstimateParams, account?: Account) {\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n const gasInTGas = await match(params)\n .when(isSimpleTransfer, () => GAS_COSTS.SIMPLE_TRANSFER)\n .when(isContractCall, (p) => getContractMethodGas(p.methodName))\n .when(isBatchTransaction, (p) => estimateBatchGas(p.actions))\n .when(isAccountCreation, () => GAS_COSTS.ACCOUNT_CREATION)\n .when(isContractDeployment, () => GAS_COSTS.CONTRACT_DEPLOYMENT)\n .when(isCustomEstimator, (p) => {\n if (!account) {\n throw new USwapError(\"toolbox_near_no_account\");\n }\n return p.customEstimator(account);\n })\n .otherwise(() => {\n throw new USwapError(\"toolbox_near_invalid_gas_params\");\n });\n\n const gasInUnits = BigInt(gasInTGas) * BigInt(10 ** 12);\n const costInYoctoNear = gasInUnits;\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: costInYoctoNear });\n }\n\n // Get current gas price from network\n async function getGasPrice() {\n try {\n const result = await provider.gasPrice(null);\n return result.gas_price || \"100000000\";\n } catch {\n // Fallback to default\n return \"100000000\";\n }\n }\n\n return {\n broadcastTransaction,\n callFunction,\n createAction,\n createContract,\n createContractFunctionCall,\n createSubAccount,\n createTransaction,\n estimateGas,\n estimateTransactionFee,\n executeBatchTransaction,\n getAddress,\n getBalance: getBalance(Chain.Near),\n getGasPrice,\n getPublicKey: async () => (signer ? (await signer.getPublicKey()).toString() : \"\"),\n getSignerFromPhrase: (params: GetSignerFromPhraseParams) => getNearSignerFromPhrase(params),\n getSignerFromPrivateKey: getNearSignerFromPrivateKey,\n provider,\n serializeTransaction,\n signAndSendTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
|
|
8
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { AssetValue, type Chain, getChainConfig } from \"@uswap/helpers\";\nimport { USwapApi } from \"@uswap/helpers/api\";\n\nconst pid = typeof process !== \"undefined\" && process.pid ? process.pid.toString(36) : \"\";\n\nlet last = 0;\nexport function uniqid() {\n function now() {\n const time = Date.now();\n const lastTime = last || time;\n last = lastTime;\n\n return time > last ? time : lastTime + 1;\n }\n\n return pid + now().toString(36);\n}\n\nexport function getBalance<T extends Chain>(chain: T) {\n return async function getBalance(address: string, scamFilter = true) {\n const balances = await USwapApi.getChainBalance({ address, chain, scamFilter });\n const { baseDecimal } = getChainConfig(chain);\n const assetValues = balances.map(({ identifier, value, decimal }) => {\n return new AssetValue({ decimal: decimal || baseDecimal, identifier, value });\n });\n\n const hasNativeAsset = assetValues.some((asset) => asset.isGasAsset);\n if (!hasNativeAsset) {\n return [AssetValue.from({ chain }), ...assetValues];\n }\n\n return assetValues;\n };\n}\n",
|
|
9
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type { Account, Contract } from \"@near-js/accounts\";\nimport type { SignedTransaction, Transaction } from \"@near-js/transactions\";\nimport { AssetValue, Chain, getChainConfig, getRPCUrl, USwapError } from \"@uswap/helpers\";\nimport { getBalance } from \"../utils\";\nimport {\n getFullAccessPublicKey,\n getNearSignerFromPhrase,\n getNearSignerFromPrivateKey,\n getValidateNearAddress,\n} from \"./helpers/core\";\nimport {\n estimateBatchGas,\n GAS_COSTS,\n getContractMethodGas,\n isAccountCreation,\n isBatchTransaction,\n isContractCall,\n isContractDeployment,\n isCustomEstimator,\n isSimpleTransfer,\n} from \"./helpers/gasEstimation\";\nimport { createNearContract } from \"./helpers/nep141\";\nimport type {\n NearCreateTransactionParams,\n NearFunctionCallParams,\n NearToolboxParams,\n NearTransferParams,\n} from \"./types\";\nimport type { NearContractInterface, NearGasEstimateParams } from \"./types/contract\";\nimport type { NEP141StorageContract } from \"./types/nep141\";\nimport type {\n BatchTransaction,\n ContractFunctionCallParams,\n CreateActionParams,\n GetSignerFromPhraseParams,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams) {\n const { P, match } = await import(\"ts-pattern\");\n const { JsonRpcProvider } = await import(\"@near-js/providers\");\n const signer = await match(toolboxParams)\n .with({ phrase: P.string }, async (params) => {\n const signer = await getNearSignerFromPhrase(params);\n return signer;\n })\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n const url = await getRPCUrl(Chain.Near);\n\n const provider = new JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"@near-js/accounts\");\n\n const _address = address || (await getAddress());\n\n const account = new Account(_address, provider, signer);\n\n return account;\n }\n\n async function getAddress() {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n const address = await signer.getAddress();\n return address;\n }\n\n async function checkStorageBalance(params: { contractId: string; accountId: string }) {\n const contract = await createContract<NEP141StorageContract>({\n changeMethods: [],\n contractId: params.contractId,\n viewMethods: [\"storage_balance_of\"],\n });\n\n return contract.storage_balance_of({ account_id: params.accountId });\n }\n\n async function transferTokenWithStorageDeposit(params: {\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n contractId: string;\n }) {\n const storageDeposit = \"1250000000000000000000\"; // 0.00125 NEAR default\n\n const actions = [\n await createAction({\n args: { account_id: params.recipient },\n attachedDeposit: storageDeposit,\n gas: \"150000000000000\", // 150 TGas for storage_deposit\n methodName: \"storage_deposit\",\n }),\n await createAction({\n args: {\n amount: params.assetValue.getBaseValue(\"string\"),\n memo: params.memo || null,\n receiver_id: params.recipient,\n },\n attachedDeposit: \"1\",\n gas: \"150000000000000\", // 150 TGas for ft_transfer\n methodName: \"ft_transfer\",\n }),\n ];\n\n return executeBatchTransaction({ actions, receiverId: params.contractId });\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const { assetValue, recipient, memo } = params;\n const sender = await getAddress();\n\n // Handle NEP-141 token transfers - check if recipient needs storage\n if (!assetValue.isGasAsset && assetValue.address) {\n const storageBalance = await checkStorageBalance({ accountId: recipient, contractId: assetValue.address });\n\n if (!storageBalance) {\n return transferTokenWithStorageDeposit({ assetValue, contractId: assetValue.address, memo, recipient });\n }\n }\n\n // Standard transfer (native NEAR or token with registered storage)\n const transaction = await createTransaction({ ...params, sender });\n return signAndSendTransaction(transaction);\n }\n\n async function createTransaction(params: NearCreateTransactionParams) {\n const { recipient, assetValue, memo, attachedDeposit, sender: signerId, functionCall } = params;\n const validateNearAddress = await getValidateNearAddress();\n\n if (!validateNearAddress(recipient)) {\n throw new USwapError(\"toolbox_near_invalid_address\", { recipient: recipient });\n }\n\n if (!validateNearAddress(signerId)) {\n throw new USwapError(\"toolbox_near_invalid_address\", { signerId: signerId });\n }\n\n if (functionCall) {\n return createContractFunctionCall({ ...functionCall, sender: signerId });\n }\n\n if (!assetValue.isGasAsset) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new USwapError(\"toolbox_near_missing_contract_address\");\n }\n\n return createContractFunctionCall({\n args: { amount: assetValue.getBaseValue(\"string\"), memo: memo || null, receiver_id: recipient },\n attachedDeposit: attachedDeposit || \"1\",\n contractId,\n gas: \"250000000000000\",\n methodName: \"ft_transfer\",\n sender: signerId,\n });\n }\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, signerId);\n const baseAmount = assetValue.getBaseValue(\"bigint\");\n\n const { actionCreators, createTransaction } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n\n const txActions = [actionCreators.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(actionCreators.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n return createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n function serializeTransaction(transaction: Transaction) {\n const serializedTx = transaction.encode();\n return Buffer.from(serializedTx).toString(\"base64\");\n }\n\n async function createContractFunctionCall(params: ContractFunctionCallParams) {\n const { sender: accountId } = params;\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, accountId);\n\n const { createTransaction, actionCreators } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n const actions = [\n actionCreators.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n ),\n ];\n\n const transaction = createTransaction(accountId, publicKey, params.contractId, nonce + 1, actions, blockHash);\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { actionCreators } = await import(\"@near-js/transactions\");\n\n const action = actionCreators.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n );\n\n return action;\n }\n\n async function signTransaction(transaction: Transaction): Promise<SignedTransaction> {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const [_hash, signedTx] = await signer.signTransaction(transaction);\n return signedTx;\n }\n\n async function broadcastTransaction(signedTransaction: SignedTransaction) {\n const result = await provider.sendTransaction(signedTransaction);\n return result.transaction.hash;\n }\n\n async function signAndSendTransaction(transaction: Transaction) {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n try {\n const signedTx = await signTransaction(transaction);\n const txHash = await broadcastTransaction(signedTx);\n return txHash;\n } catch {\n return signer.signAndSendTransactions?.({ transactions: [transaction] });\n }\n }\n\n async function estimateTransactionFee(params: NearTransferParams | NearGasEstimateParams) {\n if (\"assetValue\" in params) {\n const baseTransferCost = \"115123062500\";\n const receiptCreationCost = \"108059500000\";\n\n const totalGasUnits = BigInt(baseTransferCost) + BigInt(receiptCreationCost);\n\n const gasPrice = await getCurrentGasPrice();\n\n const totalCostYocto = totalGasUnits * BigInt(gasPrice.toString());\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: totalCostYocto.toString() });\n }\n\n const account = signer ? await getAccount() : undefined;\n return estimateGas(params, account);\n }\n\n async function getCurrentGasPrice() {\n try {\n const result = await provider.query({\n account_id: \"system\",\n args_base64: \"\",\n finality: \"final\",\n method_name: \"gas_price\",\n request_type: \"call_function\",\n });\n\n return result;\n } catch {\n return \"100000000\"; // 0.0001 NEAR per Tgas\n }\n }\n\n async function createSubAccount(subAccountId: string, publicKey: string, initialBalance: string): Promise<string> {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const account = await getAccount();\n const { formatNearAmount } = await import(\"@near-js/utils\");\n const { PublicKey } = await import(\"@near-js/crypto\");\n\n const balanceInYocto = formatNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(subAccountId, PublicKey.fromString(publicKey), BigInt(balanceInYocto));\n\n return result.transaction.hash;\n }\n\n async function callFunction(params: NearFunctionCallParams): Promise<string> {\n try {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const { actionCreators } = await import(\"@near-js/transactions\");\n\n const { contractId, methodName, args, deposit } = params;\n const account = await getAccount();\n\n const estimatedGas = await estimateGas({ args: args || {}, contractId, methodName });\n\n const functionAction = actionCreators.functionCall(\n methodName,\n args || {},\n estimatedGas.getBaseValue(\"bigint\"),\n BigInt(deposit || \"1\"),\n );\n\n const result = await account.signAndSendTransaction({ actions: [functionAction], receiverId: contractId });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new USwapError(\"toolbox_near_transfer_failed\", { error });\n }\n }\n\n // Create typed contract interface\n async function createContract<T extends Contract = Contract>(contractInterface: NearContractInterface): Promise<T> {\n const account = await getAccount();\n\n return createNearContract<T>({\n account,\n changeMethods: contractInterface.changeMethods,\n contractId: contractInterface.contractId,\n viewMethods: contractInterface.viewMethods,\n });\n }\n\n async function executeBatchTransaction(batch: BatchTransaction): Promise<string> {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n if (batch.actions.length === 0) {\n throw new USwapError(\"toolbox_near_empty_batch\");\n }\n\n const account = await getAccount();\n\n // Use account.signAndSendTransaction for batch operations\n const result = await account.signAndSendTransaction({ actions: batch.actions, receiverId: batch.receiverId });\n\n return result.transaction.hash;\n }\n\n async function estimateGas(params: NearGasEstimateParams, account?: Account) {\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n const gasInTGas = await match(params)\n .when(isSimpleTransfer, () => GAS_COSTS.SIMPLE_TRANSFER)\n .when(isContractCall, (p) => getContractMethodGas(p.methodName))\n .when(isBatchTransaction, (p) => estimateBatchGas(p.actions))\n .when(isAccountCreation, () => GAS_COSTS.ACCOUNT_CREATION)\n .when(isContractDeployment, () => GAS_COSTS.CONTRACT_DEPLOYMENT)\n .when(isCustomEstimator, (p) => {\n if (!account) {\n throw new USwapError(\"toolbox_near_no_account\");\n }\n return p.customEstimator(account);\n })\n .otherwise(() => {\n throw new USwapError(\"toolbox_near_invalid_gas_params\");\n });\n\n const gasInUnits = BigInt(gasInTGas) * BigInt(10 ** 12);\n const costInYoctoNear = gasInUnits;\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: costInYoctoNear });\n }\n\n // Get current gas price from network\n async function getGasPrice() {\n try {\n const result = await provider.gasPrice(null);\n return result.gas_price || \"100000000\";\n } catch {\n // Fallback to default\n return \"100000000\";\n }\n }\n\n return {\n broadcastTransaction,\n callFunction,\n createAction,\n createContract,\n createContractFunctionCall,\n createSubAccount,\n createTransaction,\n estimateGas,\n estimateTransactionFee,\n executeBatchTransaction,\n getAddress,\n getBalance: getBalance(Chain.Near),\n getGasPrice,\n getPublicKey: async () => (signer ? (await signer.getPublicKey()).toString() : \"\"),\n getSignerFromPhrase: (params: GetSignerFromPhraseParams) => getNearSignerFromPhrase(params),\n getSignerFromPrivateKey: getNearSignerFromPrivateKey,\n provider,\n serializeTransaction,\n signAndSendTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
|
|
10
10
|
"import type { Signer } from \"@near-js/signers\";\nimport type { SignedTransaction, Transaction } from \"@near-js/transactions\";\nimport type {\n ChainSigner,\n DerivationPathArray,\n GenericCreateTransactionParams,\n GenericTransferParams,\n} from \"@uswap/helpers\";\n\nexport interface NearSigner extends Signer, Omit<ChainSigner<Transaction, SignedTransaction>, \"signTransaction\"> {\n signAndSendTransactions?(params: { transactions: Transaction[] }): Promise<string>;\n}\n\nexport type NearToolboxParams =\n | { signer?: NearSigner; accountId?: string }\n | { phrase?: string; index?: number; derivationPath?: DerivationPathArray };\n\nexport interface NearTransferParams extends GenericTransferParams {}\n\nexport interface NearConfig {\n networkId: \"mainnet\" | \"testnet\" | \"betanet\";\n nodeUrl: string;\n walletUrl?: string;\n helperUrl?: string;\n keyStore?: any;\n}\n\nexport interface NearFunctionCallParams {\n contractId: string;\n methodName: string;\n args: Uint8Array | Record<string, any>;\n deposit?: bigint | string | number;\n gas?: bigint | string | number;\n}\n\nexport interface NearCreateTransactionParams extends Omit<GenericCreateTransactionParams, \"feeRate\"> {\n attachedDeposit?: string;\n functionCall?: { methodName: string; args: object; attachedDeposit: string; gas: string; contractId: string };\n}\n\nexport * from \"./toolbox\";\nexport * from \"./types/contract\";\nexport * from \"./types/nep141\";\nexport * from \"./types/toolbox\";\n",
|
|
11
11
|
"import type { getNearToolbox } from \"./toolbox\";\n\nexport * from \"./helpers/core\";\nexport * from \"./helpers/gasEstimation\";\nexport * from \"./helpers/nep141\";\nexport * from \"./toolbox\";\nexport * from \"./types\";\n\nexport type NearWallet = Awaited<ReturnType<typeof getNearToolbox>>;\n\nexport type {\n NearCallParams,\n NearContractInterface,\n NearGasEstimateParams,\n} from \"./types/contract\";\nexport type {\n FungibleTokenMetadata,\n StorageBalance,\n StorageBalanceBounds,\n TokenTransferParams,\n} from \"./types/nep141\";\n"
|
|
12
12
|
],
|
|
13
|
-
"mappings": "
|
|
14
|
-
"debugId": "
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "FBD7589D9174C15964756E2164756E21",
|
|
15
15
|
"names": []
|
|
16
16
|
}
|
package/dist/src/near/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var St=Object.create;var{getPrototypeOf:yt,defineProperty:Q,getOwnPropertyNames:Bt}=Object;var Ft=Object.prototype.hasOwnProperty;var g=(t,r,o)=>{o=t!=null?St(yt(t)):{};let N=r||!t||!t.__esModule?Q(o,"default",{value:t,enumerable:!0}):o;for(let e of Bt(t))if(!Ft.call(N,e))Q(N,e,{get:()=>t[e],enumerable:!0});return N};var bt=(t,r)=>{for(var o in r)Q(t,o,{get:r[o],enumerable:!0,configurable:!0,set:(N)=>r[o]=()=>N})};var G=(t,r)=>()=>(t&&(r=t(t=0)),r);var P=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(r,o)=>(typeof require<"u"?require:r)[o]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});import{KeyPairSigner as It}from"@near-js/signers";import{derivationPathToString as Yt,USwapError as qt}from"@uswap/helpers";async function B(){let{validateAccountId:t}=await import("near-sdk-js");return(r)=>{try{return t(r)}catch{let o=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return r.length>=2&&r.length<=64&&o.test(r)}}}async function F(t){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:o}=await import("@near-js/crypto"),N=t.index||0,e=t.derivationPath?Yt(t.derivationPath.slice(0,3)):`m/44'/397'/${N}'`,{secretKey:R}=r(t.phrase,e),s=o.fromString(R);return mt(s)}async function W(t){let{KeyPair:r}=await import("@near-js/crypto"),o=r.fromString(t);return mt(o)}function mt(t){return new et(t)}async function b(t,r){let N=(await t.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((_)=>_.access_key.permission==="FullAccess");if(!N)throw new qt("toolbox_near_no_public_key_found");let{PublicKey:e}=await import("@near-js/crypto"),R=e.fromString(N.public_key);return{nonce:N.access_key.nonce||0,publicKey:R}}var et;var Z=G(()=>{et=class et extends It{#t;constructor(t){super(t);this.#t=t}getAddress(){let t=this.#t.getPublicKey(),r=Buffer.from(t.data).toString("hex");return Promise.resolve(r)}}});function $(t){return"recipient"in t&&"amount"in t&&!("contractId"in t)}function p(t){return"contractId"in t&&"methodName"in t}function z(t){return"actions"in t}function X(t){return"newAccountId"in t}function H(t){return"contractCode"in t}function a(t){return"customEstimator"in t}function k(t){let r=0;for(let o of t)switch(o.enum){case"transfer":r+=Number(C.SIMPLE_TRANSFER);break;case"functionCall":r+=Number(C.CONTRACT_CALL);break;case"createAccount":r+=Number(C.ACCOUNT_CREATION);break;case"deployContract":r+=Number(C.CONTRACT_DEPLOYMENT);break;case"addKey":r+=Number(C.ACCESS_KEY_ADDITION);break;case"deleteKey":r+=Number(C.ACCESS_KEY_DELETION);break;case"stake":r+=Number(C.STAKE);break;default:r+=Number(C.CONTRACT_CALL)}return r.toString()}function w(t){if(t==="ft_transfer"||t==="ft_transfer_call")return C.TOKEN_TRANSFER;if(t==="storage_deposit")return C.STORAGE_DEPOSIT;return C.CONTRACT_CALL}function Jt(t){return(BigInt(t)*BigInt(1000000000000)).toString()}function Mt(t){return(BigInt(t)/BigInt(1000000000000)).toString()}var C;var V=G(()=>{C={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 j({account:t,contractId:r,viewMethods:o,changeMethods:N}){let{Contract:e}=await import("@near-js/accounts");return new e(t,r,{changeMethods:N,useLocalViewExecution:!0,viewMethods:o})}import{AssetValue as Tt,getChainConfig as Qt}from"@uswap/helpers";import{SwapKitApi as Wt}from"@uswap/helpers/api";function Ut(){function t(){let r=Date.now(),o=v||r;return v=o,r>v?r:o+1}return Zt+t().toString(36)}function Nt(t){return async function(o,N=!0){let e=await Wt.getChainBalance({address:o,chain:t,scamFilter:N}),{baseDecimal:R}=Qt(t),s=e.map(({identifier:u,value:I,decimal:Y})=>{return new Tt({decimal:Y||R,identifier:u,value:I})});if(!s.some((u)=>u.isGasAsset))return[Tt.from({chain:t}),...s];return s}}var Zt,v=0;var ft=G(()=>{Zt=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{AssetValue as gt,Chain as D,getChainConfig as Pt,getRPCUrl as $t,USwapError as A}from"@uswap/helpers";async function pt(t){let{P:r,match:o}=await import("ts-pattern"),{JsonRpcProvider:N}=await import("@near-js/providers"),e=await o(t).with({phrase:r.string},async(n)=>{return await F(n)}).with({signer:r.any},({signer:n})=>n).otherwise(()=>{return}),R=await $t(D.Near),s=new N({url:R});async function _(n){let{Account:i}=await import("@near-js/accounts"),m=n||await u();return new i(m,s,e)}async function u(){if(!e)throw new A("toolbox_near_no_signer");return await e.getAddress()}async function I(n){return(await d({changeMethods:[],contractId:n.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:n.accountId})}async function Y(n){let m=[await J({args:{account_id:n.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await J({args:{amount:n.assetValue.getBaseValue("string"),memo:n.memo||null,receiver_id:n.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return tt({actions:m,receiverId:n.contractId})}async function xt(n){if(!e)throw new A("toolbox_near_no_signer");let{assetValue:i,recipient:m,memo:x}=n,E=await u();if(!i.isGasAsset&&i.address){if(!await I({accountId:m,contractId:i.address}))return Y({assetValue:i,contractId:i.address,memo:x,recipient:m})}let T=await U({...n,sender:E});return c(T)}async function U(n){let{recipient:i,assetValue:m,memo:x,attachedDeposit:E,sender:T,functionCall:f}=n,O=await B();if(!O(i))throw new A("toolbox_near_invalid_address",{recipient:i});if(!O(T))throw new A("toolbox_near_invalid_address",{signerId:T});if(f)return q({...f,sender:T});if(!m.isGasAsset){let ot=m.address;if(!ot)throw new A("toolbox_near_missing_contract_address");return q({args:{amount:m.getBaseValue("string"),memo:x||null,receiver_id:i},attachedDeposit:E||"1",contractId:ot,gas:"250000000000000",methodName:"ft_transfer",sender:T})}let{publicKey:S,nonce:y}=await b(s,T),nt=m.getBaseValue("bigint"),{actionCreators:rt,createTransaction:ut}=await import("@near-js/transactions"),{baseDecode:Lt}=await import("@near-js/utils"),it=[rt.transfer(nt)];if(x&&E)it.push(rt.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(E)));let Gt=await s.block({finality:"final"}),Dt=Lt(Gt.header.hash);return ut(T,S,i,y+1,it,Dt)}function Ct(n){let i=n.encode();return Buffer.from(i).toString("base64")}async function q(n){let{sender:i}=n,{publicKey:m,nonce:x}=await b(s,i),{createTransaction:E,actionCreators:T}=await import("@near-js/transactions"),{baseDecode:f}=await import("@near-js/utils"),O=await s.block({finality:"final"}),S=f(O.header.hash),y=[T.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))];return E(i,m,n.contractId,x+1,y,S)}async function J(n){let{actionCreators:i}=await import("@near-js/transactions");return i.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))}async function h(n){if(!e)throw new A("toolbox_near_no_signer");let[i,m]=await e.signTransaction(n);return m}async function l(n){return(await s.sendTransaction(n)).transaction.hash}async function c(n){if(!e)throw new A("toolbox_near_no_signer");try{let i=await h(n);return await l(i)}catch{return e.signAndSendTransactions?.({transactions:[n]})}}async function Et(n){if("assetValue"in n){let E=BigInt("115123062500")+BigInt("108059500000"),T=await At(),f=E*BigInt(T.toString()),{baseDecimal:O}=Pt(D.Near);return gt.from({chain:D.Near,fromBaseDecimal:O,value:f.toString()})}let i=e?await _():void 0;return M(n,i)}async function At(){try{return await s.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Ot(n,i,m){if(!e)throw new A("toolbox_near_no_signer");let x=await _(),{formatNearAmount:E}=await import("@near-js/utils"),{PublicKey:T}=await import("@near-js/crypto"),f=E(m)||"0";return(await x.createAccount(n,T.fromString(i),BigInt(f))).transaction.hash}async function _t(n){try{if(!e)throw new A("toolbox_near_no_signer");let{actionCreators:i}=await import("@near-js/transactions"),{contractId:m,methodName:x,args:E,deposit:T}=n,f=await _(),O=await M({args:E||{},contractId:m,methodName:x}),S=i.functionCall(x,E||{},O.getBaseValue("bigint"),BigInt(T||"1"));return(await f.signAndSendTransaction({actions:[S],receiverId:m})).transaction_outcome.id}catch(i){throw new A("toolbox_near_transfer_failed",{error:i})}}async function d(n){let i=await _();return j({account:i,changeMethods:n.changeMethods,contractId:n.contractId,viewMethods:n.viewMethods})}async function tt(n){if(!e)throw new A("toolbox_near_no_signer");if(n.actions.length===0)throw new A("toolbox_near_empty_batch");return(await(await _()).signAndSendTransaction({actions:n.actions,receiverId:n.receiverId})).transaction.hash}async function M(n,i){let{baseDecimal:m}=Pt(D.Near),x=await o(n).when($,()=>C.SIMPLE_TRANSFER).when(p,(f)=>w(f.methodName)).when(z,(f)=>k(f.actions)).when(X,()=>C.ACCOUNT_CREATION).when(H,()=>C.CONTRACT_DEPLOYMENT).when(a,(f)=>{if(!i)throw new A("toolbox_near_no_account");return f.customEstimator(i)}).otherwise(()=>{throw new A("toolbox_near_invalid_gas_params")}),T=BigInt(x)*BigInt(1000000000000);return gt.from({chain:D.Near,fromBaseDecimal:m,value:T})}async function Rt(){try{return(await s.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:l,callFunction:_t,createAction:J,createContract:d,createContractFunctionCall:q,createSubAccount:Ot,createTransaction:U,estimateGas:M,estimateTransactionFee:Et,executeBatchTransaction:tt,getAddress:u,getBalance:Nt(D.Near),getGasPrice:Rt,getPublicKey:async()=>e?(await e.getPublicKey()).toString():"",getSignerFromPhrase:(n)=>F(n),getSignerFromPrivateKey:W,provider:s,serializeTransaction:Ct,signAndSendTransaction:c,signTransaction:h,transfer:xt,validateAddress:await B()}}var K=G(()=>{ft();Z();V()});var st=G(()=>{K()});var zt={};bt(zt,{tgasToGas:()=>Jt,isSimpleTransfer:()=>$,isCustomEstimator:()=>a,isContractDeployment:()=>H,isContractCall:()=>p,isBatchTransaction:()=>z,isAccountCreation:()=>X,getValidateNearAddress:()=>B,getNearToolbox:()=>pt,getNearSignerFromPrivateKey:()=>W,getNearSignerFromPhrase:()=>F,getFullAccessPublicKey:()=>b,getContractMethodGas:()=>w,gasToTGas:()=>Mt,estimateBatchGas:()=>k,createNearContract:()=>j,GAS_COSTS:()=>C});var Xt=G(()=>{Z();V();K();st()});Xt();export{Jt as tgasToGas,$ as isSimpleTransfer,a as isCustomEstimator,H as isContractDeployment,p as isContractCall,z as isBatchTransaction,X as isAccountCreation,B as getValidateNearAddress,pt as getNearToolbox,W as getNearSignerFromPrivateKey,F as getNearSignerFromPhrase,b as getFullAccessPublicKey,w as getContractMethodGas,Mt as gasToTGas,k as estimateBatchGas,j as createNearContract,C as GAS_COSTS};
|
|
1
|
+
var Dt=Object.create;var{getPrototypeOf:yt,defineProperty:z,getOwnPropertyNames:Bt}=Object;var Ft=Object.prototype.hasOwnProperty;var g=(t,r,o)=>{o=t!=null?Dt(yt(t)):{};let N=r||!t||!t.__esModule?z(o,"default",{value:t,enumerable:!0}):o;for(let e of Bt(t))if(!Ft.call(N,e))z(N,e,{get:()=>t[e],enumerable:!0});return N};var bt=(t,r)=>{for(var o in r)z(t,o,{get:r[o],enumerable:!0,configurable:!0,set:(N)=>r[o]=()=>N})};var G=(t,r)=>()=>(t&&(r=t(t=0)),r);var s=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(r,o)=>(typeof require<"u"?require:r)[o]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});import{KeyPairSigner as It}from"@near-js/signers";import{derivationPathToString as Yt,USwapError as Mt}from"@uswap/helpers";async function B(){let{validateAccountId:t}=await import("near-sdk-js");return(r)=>{try{return t(r)}catch{let o=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return r.length>=2&&r.length<=64&&o.test(r)}}}async function F(t){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:o}=await import("@near-js/crypto"),N=t.index||0,e=t.derivationPath?Yt(t.derivationPath.slice(0,3)):`m/44'/397'/${N}'`,{secretKey:R}=r(t.phrase,e),P=o.fromString(R);return mt(P)}async function Q(t){let{KeyPair:r}=await import("@near-js/crypto"),o=r.fromString(t);return mt(o)}function mt(t){return new et(t)}async function b(t,r){let N=(await t.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((_)=>_.access_key.permission==="FullAccess");if(!N)throw new Mt("toolbox_near_no_public_key_found");let{PublicKey:e}=await import("@near-js/crypto"),R=e.fromString(N.public_key);return{nonce:N.access_key.nonce||0,publicKey:R}}var et;var W=G(()=>{et=class et extends It{#t;constructor(t){super(t);this.#t=t}getAddress(){let t=this.#t.getPublicKey(),r=Buffer.from(t.data).toString("hex");return Promise.resolve(r)}}});function Z(t){return"recipient"in t&&"amount"in t&&!("contractId"in t)}function $(t){return"contractId"in t&&"methodName"in t}function p(t){return"actions"in t}function H(t){return"newAccountId"in t}function X(t){return"contractCode"in t}function a(t){return"customEstimator"in t}function k(t){let r=0;for(let o of t)switch(o.enum){case"transfer":r+=Number(C.SIMPLE_TRANSFER);break;case"functionCall":r+=Number(C.CONTRACT_CALL);break;case"createAccount":r+=Number(C.ACCOUNT_CREATION);break;case"deployContract":r+=Number(C.CONTRACT_DEPLOYMENT);break;case"addKey":r+=Number(C.ACCESS_KEY_ADDITION);break;case"deleteKey":r+=Number(C.ACCESS_KEY_DELETION);break;case"stake":r+=Number(C.STAKE);break;default:r+=Number(C.CONTRACT_CALL)}return r.toString()}function w(t){if(t==="ft_transfer"||t==="ft_transfer_call")return C.TOKEN_TRANSFER;if(t==="storage_deposit")return C.STORAGE_DEPOSIT;return C.CONTRACT_CALL}function qt(t){return(BigInt(t)*BigInt(1000000000000)).toString()}function Jt(t){return(BigInt(t)/BigInt(1000000000000)).toString()}var C;var V=G(()=>{C={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 j({account:t,contractId:r,viewMethods:o,changeMethods:N}){let{Contract:e}=await import("@near-js/accounts");return new e(t,r,{changeMethods:N,useLocalViewExecution:!0,viewMethods:o})}import{AssetValue as Tt,getChainConfig as zt}from"@uswap/helpers";import{USwapApi as Qt}from"@uswap/helpers/api";function lt(){function t(){let r=Date.now(),o=v||r;return v=o,r>v?r:o+1}return Wt+t().toString(36)}function Nt(t){return async function(o,N=!0){let e=await Qt.getChainBalance({address:o,chain:t,scamFilter:N}),{baseDecimal:R}=zt(t),P=e.map(({identifier:u,value:I,decimal:Y})=>{return new Tt({decimal:Y||R,identifier:u,value:I})});if(!P.some((u)=>u.isGasAsset))return[Tt.from({chain:t}),...P];return P}}var Wt,v=0;var ft=G(()=>{Wt=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{AssetValue as gt,Chain as S,getChainConfig as st,getRPCUrl as Zt,USwapError as A}from"@uswap/helpers";async function $t(t){let{P:r,match:o}=await import("ts-pattern"),{JsonRpcProvider:N}=await import("@near-js/providers"),e=await o(t).with({phrase:r.string},async(n)=>{return await F(n)}).with({signer:r.any},({signer:n})=>n).otherwise(()=>{return}),R=await Zt(S.Near),P=new N({url:R});async function _(n){let{Account:i}=await import("@near-js/accounts"),m=n||await u();return new i(m,P,e)}async function u(){if(!e)throw new A("toolbox_near_no_signer");return await e.getAddress()}async function I(n){return(await d({changeMethods:[],contractId:n.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:n.accountId})}async function Y(n){let m=[await q({args:{account_id:n.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await q({args:{amount:n.assetValue.getBaseValue("string"),memo:n.memo||null,receiver_id:n.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return tt({actions:m,receiverId:n.contractId})}async function xt(n){if(!e)throw new A("toolbox_near_no_signer");let{assetValue:i,recipient:m,memo:x}=n,E=await u();if(!i.isGasAsset&&i.address){if(!await I({accountId:m,contractId:i.address}))return Y({assetValue:i,contractId:i.address,memo:x,recipient:m})}let T=await l({...n,sender:E});return c(T)}async function l(n){let{recipient:i,assetValue:m,memo:x,attachedDeposit:E,sender:T,functionCall:f}=n,O=await B();if(!O(i))throw new A("toolbox_near_invalid_address",{recipient:i});if(!O(T))throw new A("toolbox_near_invalid_address",{signerId:T});if(f)return M({...f,sender:T});if(!m.isGasAsset){let ot=m.address;if(!ot)throw new A("toolbox_near_missing_contract_address");return M({args:{amount:m.getBaseValue("string"),memo:x||null,receiver_id:i},attachedDeposit:E||"1",contractId:ot,gas:"250000000000000",methodName:"ft_transfer",sender:T})}let{publicKey:D,nonce:y}=await b(P,T),nt=m.getBaseValue("bigint"),{actionCreators:rt,createTransaction:ut}=await import("@near-js/transactions"),{baseDecode:Lt}=await import("@near-js/utils"),it=[rt.transfer(nt)];if(x&&E)it.push(rt.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(E)));let Gt=await P.block({finality:"final"}),St=Lt(Gt.header.hash);return ut(T,D,i,y+1,it,St)}function Ct(n){let i=n.encode();return Buffer.from(i).toString("base64")}async function M(n){let{sender:i}=n,{publicKey:m,nonce:x}=await b(P,i),{createTransaction:E,actionCreators:T}=await import("@near-js/transactions"),{baseDecode:f}=await import("@near-js/utils"),O=await P.block({finality:"final"}),D=f(O.header.hash),y=[T.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))];return E(i,m,n.contractId,x+1,y,D)}async function q(n){let{actionCreators:i}=await import("@near-js/transactions");return i.functionCall(n.methodName,Buffer.from(JSON.stringify(n.args)),BigInt(n.gas),BigInt(n.attachedDeposit))}async function K(n){if(!e)throw new A("toolbox_near_no_signer");let[i,m]=await e.signTransaction(n);return m}async function h(n){return(await P.sendTransaction(n)).transaction.hash}async function c(n){if(!e)throw new A("toolbox_near_no_signer");try{let i=await K(n);return await h(i)}catch{return e.signAndSendTransactions?.({transactions:[n]})}}async function Et(n){if("assetValue"in n){let E=BigInt("115123062500")+BigInt("108059500000"),T=await At(),f=E*BigInt(T.toString()),{baseDecimal:O}=st(S.Near);return gt.from({chain:S.Near,fromBaseDecimal:O,value:f.toString()})}let i=e?await _():void 0;return J(n,i)}async function At(){try{return await P.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Ot(n,i,m){if(!e)throw new A("toolbox_near_no_signer");let x=await _(),{formatNearAmount:E}=await import("@near-js/utils"),{PublicKey:T}=await import("@near-js/crypto"),f=E(m)||"0";return(await x.createAccount(n,T.fromString(i),BigInt(f))).transaction.hash}async function _t(n){try{if(!e)throw new A("toolbox_near_no_signer");let{actionCreators:i}=await import("@near-js/transactions"),{contractId:m,methodName:x,args:E,deposit:T}=n,f=await _(),O=await J({args:E||{},contractId:m,methodName:x}),D=i.functionCall(x,E||{},O.getBaseValue("bigint"),BigInt(T||"1"));return(await f.signAndSendTransaction({actions:[D],receiverId:m})).transaction_outcome.id}catch(i){throw new A("toolbox_near_transfer_failed",{error:i})}}async function d(n){let i=await _();return j({account:i,changeMethods:n.changeMethods,contractId:n.contractId,viewMethods:n.viewMethods})}async function tt(n){if(!e)throw new A("toolbox_near_no_signer");if(n.actions.length===0)throw new A("toolbox_near_empty_batch");return(await(await _()).signAndSendTransaction({actions:n.actions,receiverId:n.receiverId})).transaction.hash}async function J(n,i){let{baseDecimal:m}=st(S.Near),x=await o(n).when(Z,()=>C.SIMPLE_TRANSFER).when($,(f)=>w(f.methodName)).when(p,(f)=>k(f.actions)).when(H,()=>C.ACCOUNT_CREATION).when(X,()=>C.CONTRACT_DEPLOYMENT).when(a,(f)=>{if(!i)throw new A("toolbox_near_no_account");return f.customEstimator(i)}).otherwise(()=>{throw new A("toolbox_near_invalid_gas_params")}),T=BigInt(x)*BigInt(1000000000000);return gt.from({chain:S.Near,fromBaseDecimal:m,value:T})}async function Rt(){try{return(await P.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}return{broadcastTransaction:h,callFunction:_t,createAction:q,createContract:d,createContractFunctionCall:M,createSubAccount:Ot,createTransaction:l,estimateGas:J,estimateTransactionFee:Et,executeBatchTransaction:tt,getAddress:u,getBalance:Nt(S.Near),getGasPrice:Rt,getPublicKey:async()=>e?(await e.getPublicKey()).toString():"",getSignerFromPhrase:(n)=>F(n),getSignerFromPrivateKey:Q,provider:P,serializeTransaction:Ct,signAndSendTransaction:c,signTransaction:K,transfer:xt,validateAddress:await B()}}var U=G(()=>{ft();W();V()});var Pt=G(()=>{U()});var pt={};bt(pt,{tgasToGas:()=>qt,isSimpleTransfer:()=>Z,isCustomEstimator:()=>a,isContractDeployment:()=>X,isContractCall:()=>$,isBatchTransaction:()=>p,isAccountCreation:()=>H,getValidateNearAddress:()=>B,getNearToolbox:()=>$t,getNearSignerFromPrivateKey:()=>Q,getNearSignerFromPhrase:()=>F,getFullAccessPublicKey:()=>b,getContractMethodGas:()=>w,gasToTGas:()=>Jt,estimateBatchGas:()=>k,createNearContract:()=>j,GAS_COSTS:()=>C});var Ht=G(()=>{W();V();U();Pt()});Ht();export{qt as tgasToGas,Z as isSimpleTransfer,a as isCustomEstimator,X as isContractDeployment,$ as isContractCall,p as isBatchTransaction,H as isAccountCreation,B as getValidateNearAddress,$t as getNearToolbox,Q as getNearSignerFromPrivateKey,F as getNearSignerFromPhrase,b as getFullAccessPublicKey,w as getContractMethodGas,Jt as gasToTGas,k as estimateBatchGas,j as createNearContract,C as GAS_COSTS};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=8659ABD03C7B91A464756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/near/helpers/core.ts", "../src/near/helpers/gasEstimation.ts", "../src/near/helpers/nep141.ts", "../src/utils.ts", "../src/near/toolbox.ts", "../src/near/types.ts", "../src/near/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\n *
|
|
5
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type { KeyPair } from \"@near-js/crypto\";\nimport type { Provider } from \"@near-js/providers\";\nimport { KeyPairSigner } from \"@near-js/signers\";\nimport { type DerivationPathArray, derivationPathToString, USwapError } from \"@uswap/helpers\";\nimport type { NearSigner } from \"../types\";\n\nexport async function getValidateNearAddress() {\n const { validateAccountId } = await import(\"near-sdk-js\");\n return (address: string) => {\n // Use the official NEAR SDK validation function if available\n try {\n return validateAccountId(address);\n } catch {\n const ACCOUNT_ID_REGEX = /^(([a-z\\d]+[-_])*[a-z\\d]+\\.)*([a-z\\d]+[-_])*[a-z\\d]+$/;\n\n return address.length >= 2 && address.length <= 64 && ACCOUNT_ID_REGEX.test(address);\n }\n };\n}\n\nexport async function getNearSignerFromPhrase(params: {\n phrase: string;\n derivationPath?: DerivationPathArray;\n index?: number;\n}) {\n const { parseSeedPhrase } = await import(\"near-seed-phrase\");\n const { KeyPair } = await import(\"@near-js/crypto\");\n\n const index = params.index || 0;\n const derivationPath = params.derivationPath\n ? derivationPathToString(params.derivationPath.slice(0, 3) as [number, number, number])\n : `m/44'/397'/${index}'`;\n\n const { secretKey } = parseSeedPhrase(params.phrase, derivationPath);\n const keyPair = KeyPair.fromString(secretKey as any);\n\n return createNearSignerFromKeyPair(keyPair);\n}\n\nexport async function getNearSignerFromPrivateKey(privateKey: string) {\n const { KeyPair } = await import(\"@near-js/crypto\");\n const keyPair = KeyPair.fromString(privateKey as any);\n return createNearSignerFromKeyPair(keyPair);\n}\n\nclass SKKeyPairSigner extends KeyPairSigner {\n #keyPair: KeyPair;\n\n constructor(keyPair: KeyPair) {\n super(keyPair);\n this.#keyPair = keyPair;\n }\n\n getAddress(): Promise<string> {\n const publicKey = this.#keyPair.getPublicKey();\n const hexAddress = Buffer.from(publicKey.data).toString(\"hex\");\n return Promise.resolve(hexAddress);\n }\n}\n\nfunction createNearSignerFromKeyPair(keyPair: KeyPair): NearSigner {\n const keyPairSigner = new SKKeyPairSigner(keyPair);\n\n return keyPairSigner;\n}\n\nexport async function getFullAccessPublicKey(provider: Provider, accountId: string) {\n const response = await provider.query({\n account_id: accountId,\n finality: \"final\",\n request_type: \"view_access_key_list\",\n });\n\n const fullAccessKey = (response as any).keys.find((key: any) => key.access_key.permission === \"FullAccess\");\n\n if (!fullAccessKey) {\n throw new USwapError(\"toolbox_near_no_public_key_found\");\n }\n const { PublicKey } = await import(\"@near-js/crypto\");\n\n const publicKey = PublicKey.fromString(fullAccessKey.public_key);\n const nonce = (fullAccessKey.access_key.nonce as number) || 0;\n\n return { nonce, publicKey };\n}\n",
|
|
6
6
|
"import type { Account } from \"@near-js/accounts\";\nimport type { NearGasEstimateParams } from \"../types/contract\";\n\nexport const GAS_COSTS = {\n ACCESS_KEY_ADDITION: \"5\",\n ACCESS_KEY_DELETION: \"5\",\n ACCOUNT_CREATION: \"30\",\n CONTRACT_CALL: \"150\",\n CONTRACT_DEPLOYMENT: \"200\",\n SIMPLE_TRANSFER: \"1\",\n STAKE: \"10\",\n STORAGE_DEPOSIT: \"150\",\n TOKEN_TRANSFER: \"150\",\n} as const;\n\nexport function isSimpleTransfer(params: NearGasEstimateParams): params is { recipient: string; amount: string } {\n return \"recipient\" in params && \"amount\" in params && !(\"contractId\" in params);\n}\n\nexport function isContractCall(\n params: NearGasEstimateParams,\n): params is { contractId: string; methodName: string; args?: Record<string, any>; attachedDeposit?: string } {\n return \"contractId\" in params && \"methodName\" in params;\n}\n\nexport function isBatchTransaction(params: NearGasEstimateParams): params is { actions: any[] } {\n return \"actions\" in params;\n}\n\nexport function isAccountCreation(\n params: NearGasEstimateParams,\n): params is { newAccountId: string; publicKey?: string } {\n return \"newAccountId\" in params;\n}\n\nexport function isContractDeployment(params: NearGasEstimateParams): params is { contractCode: Uint8Array } {\n return \"contractCode\" in params;\n}\n\nexport function isCustomEstimator(\n params: NearGasEstimateParams,\n): params is { customEstimator: (account: Account) => Promise<string> } {\n return \"customEstimator\" in params;\n}\n\nexport function estimateBatchGas(actions: any[]) {\n let totalGas = 0;\n\n for (const action of actions) {\n switch (action.enum) {\n case \"transfer\":\n totalGas += Number(GAS_COSTS.SIMPLE_TRANSFER);\n break;\n case \"functionCall\":\n totalGas += Number(GAS_COSTS.CONTRACT_CALL);\n break;\n case \"createAccount\":\n totalGas += Number(GAS_COSTS.ACCOUNT_CREATION);\n break;\n case \"deployContract\":\n totalGas += Number(GAS_COSTS.CONTRACT_DEPLOYMENT);\n break;\n case \"addKey\":\n totalGas += Number(GAS_COSTS.ACCESS_KEY_ADDITION);\n break;\n case \"deleteKey\":\n totalGas += Number(GAS_COSTS.ACCESS_KEY_DELETION);\n break;\n case \"stake\":\n totalGas += Number(GAS_COSTS.STAKE);\n break;\n default:\n totalGas += Number(GAS_COSTS.CONTRACT_CALL);\n }\n }\n\n return totalGas.toString();\n}\n\nexport function getContractMethodGas(methodName: string) {\n if (methodName === \"ft_transfer\" || methodName === \"ft_transfer_call\") {\n return GAS_COSTS.TOKEN_TRANSFER;\n }\n if (methodName === \"storage_deposit\") {\n return GAS_COSTS.STORAGE_DEPOSIT;\n }\n return GAS_COSTS.CONTRACT_CALL;\n}\n\nexport function tgasToGas(tgas: string): string {\n return (BigInt(tgas) * BigInt(10 ** 12)).toString();\n}\n\nexport function gasToTGas(gas: string): string {\n return (BigInt(gas) / BigInt(10 ** 12)).toString();\n}\n",
|
|
7
7
|
"import type { Account, Contract } from \"@near-js/accounts\";\n\nexport interface NEP141Metadata {\n spec: string;\n name: string;\n symbol: string;\n icon?: string;\n reference?: string;\n reference_hash?: string;\n decimals: number;\n}\n\nexport interface StorageBalance {\n total: string;\n available: string;\n}\n\nexport interface StorageBalanceBounds {\n min: string;\n max?: string;\n}\n\nexport type NEP141Token = {\n transfer: (receiverId: string, amount: string, memo?: string) => Promise<void>;\n transferCall: (receiverId: string, amount: string, msg: string, memo?: string) => Promise<void>;\n balanceOf: (accountId: string) => Promise<string>;\n totalSupply: () => Promise<string>;\n metadata: () => Promise<NEP141Metadata>;\n storageBalanceOf: (accountId: string) => Promise<StorageBalance | null>;\n storageDeposit: (accountId?: string, amount?: string) => Promise<StorageBalance>;\n ensureStorage: (accountId: string) => Promise<void>;\n contract: Contract;\n};\n\n// Create a Near contract instance\nexport async function createNearContract<T extends Contract>({\n account,\n contractId,\n viewMethods,\n changeMethods,\n}: {\n account: Account;\n contractId: string;\n viewMethods: string[];\n changeMethods: string[];\n}) {\n const { Contract } = await import(\"@near-js/accounts\");\n\n return new Contract(account, contractId, { changeMethods, useLocalViewExecution: true, viewMethods }) as T;\n}\n",
|
|
8
|
-
"
|
|
9
|
-
"/**\n * Based on code from SwapKit (https://github.com/swapkit/SwapKit),\n * licensed under the Apache License 2.0.\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type { Account, Contract } from \"@near-js/accounts\";\nimport type { SignedTransaction, Transaction } from \"@near-js/transactions\";\nimport { AssetValue, Chain, getChainConfig, getRPCUrl, USwapError } from \"@uswap/helpers\";\nimport { getBalance } from \"../utils\";\nimport {\n getFullAccessPublicKey,\n getNearSignerFromPhrase,\n getNearSignerFromPrivateKey,\n getValidateNearAddress,\n} from \"./helpers/core\";\nimport {\n estimateBatchGas,\n GAS_COSTS,\n getContractMethodGas,\n isAccountCreation,\n isBatchTransaction,\n isContractCall,\n isContractDeployment,\n isCustomEstimator,\n isSimpleTransfer,\n} from \"./helpers/gasEstimation\";\nimport { createNearContract } from \"./helpers/nep141\";\nimport type {\n NearCreateTransactionParams,\n NearFunctionCallParams,\n NearToolboxParams,\n NearTransferParams,\n} from \"./types\";\nimport type { NearContractInterface, NearGasEstimateParams } from \"./types/contract\";\nimport type { NEP141StorageContract } from \"./types/nep141\";\nimport type {\n BatchTransaction,\n ContractFunctionCallParams,\n CreateActionParams,\n GetSignerFromPhraseParams,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams) {\n const { P, match } = await import(\"ts-pattern\");\n const { JsonRpcProvider } = await import(\"@near-js/providers\");\n const signer = await match(toolboxParams)\n .with({ phrase: P.string }, async (params) => {\n const signer = await getNearSignerFromPhrase(params);\n return signer;\n })\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n const url = await getRPCUrl(Chain.Near);\n\n const provider = new JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"@near-js/accounts\");\n\n const _address = address || (await getAddress());\n\n const account = new Account(_address, provider, signer);\n\n return account;\n }\n\n async function getAddress() {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n const address = await signer.getAddress();\n return address;\n }\n\n async function checkStorageBalance(params: { contractId: string; accountId: string }) {\n const contract = await createContract<NEP141StorageContract>({\n changeMethods: [],\n contractId: params.contractId,\n viewMethods: [\"storage_balance_of\"],\n });\n\n return contract.storage_balance_of({ account_id: params.accountId });\n }\n\n async function transferTokenWithStorageDeposit(params: {\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n contractId: string;\n }) {\n const storageDeposit = \"1250000000000000000000\"; // 0.00125 NEAR default\n\n const actions = [\n await createAction({\n args: { account_id: params.recipient },\n attachedDeposit: storageDeposit,\n gas: \"150000000000000\", // 150 TGas for storage_deposit\n methodName: \"storage_deposit\",\n }),\n await createAction({\n args: {\n amount: params.assetValue.getBaseValue(\"string\"),\n memo: params.memo || null,\n receiver_id: params.recipient,\n },\n attachedDeposit: \"1\",\n gas: \"150000000000000\", // 150 TGas for ft_transfer\n methodName: \"ft_transfer\",\n }),\n ];\n\n return executeBatchTransaction({ actions, receiverId: params.contractId });\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const { assetValue, recipient, memo } = params;\n const sender = await getAddress();\n\n // Handle NEP-141 token transfers - check if recipient needs storage\n if (!assetValue.isGasAsset && assetValue.address) {\n const storageBalance = await checkStorageBalance({ accountId: recipient, contractId: assetValue.address });\n\n if (!storageBalance) {\n return transferTokenWithStorageDeposit({ assetValue, contractId: assetValue.address, memo, recipient });\n }\n }\n\n // Standard transfer (native NEAR or token with registered storage)\n const transaction = await createTransaction({ ...params, sender });\n return signAndSendTransaction(transaction);\n }\n\n async function createTransaction(params: NearCreateTransactionParams) {\n const { recipient, assetValue, memo, attachedDeposit, sender: signerId, functionCall } = params;\n const validateNearAddress = await getValidateNearAddress();\n\n if (!validateNearAddress(recipient)) {\n throw new USwapError(\"toolbox_near_invalid_address\", { recipient: recipient });\n }\n\n if (!validateNearAddress(signerId)) {\n throw new USwapError(\"toolbox_near_invalid_address\", { signerId: signerId });\n }\n\n if (functionCall) {\n return createContractFunctionCall({ ...functionCall, sender: signerId });\n }\n\n if (!assetValue.isGasAsset) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new USwapError(\"toolbox_near_missing_contract_address\");\n }\n\n return createContractFunctionCall({\n args: { amount: assetValue.getBaseValue(\"string\"), memo: memo || null, receiver_id: recipient },\n attachedDeposit: attachedDeposit || \"1\",\n contractId,\n gas: \"250000000000000\",\n methodName: \"ft_transfer\",\n sender: signerId,\n });\n }\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, signerId);\n const baseAmount = assetValue.getBaseValue(\"bigint\");\n\n const { actionCreators, createTransaction } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n\n const txActions = [actionCreators.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(actionCreators.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n return createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n function serializeTransaction(transaction: Transaction) {\n const serializedTx = transaction.encode();\n return Buffer.from(serializedTx).toString(\"base64\");\n }\n\n async function createContractFunctionCall(params: ContractFunctionCallParams) {\n const { sender: accountId } = params;\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, accountId);\n\n const { createTransaction, actionCreators } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n const actions = [\n actionCreators.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n ),\n ];\n\n const transaction = createTransaction(accountId, publicKey, params.contractId, nonce + 1, actions, blockHash);\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { actionCreators } = await import(\"@near-js/transactions\");\n\n const action = actionCreators.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n );\n\n return action;\n }\n\n async function signTransaction(transaction: Transaction): Promise<SignedTransaction> {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const [_hash, signedTx] = await signer.signTransaction(transaction);\n return signedTx;\n }\n\n async function broadcastTransaction(signedTransaction: SignedTransaction) {\n const result = await provider.sendTransaction(signedTransaction);\n return result.transaction.hash;\n }\n\n async function signAndSendTransaction(transaction: Transaction) {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n try {\n const signedTx = await signTransaction(transaction);\n const txHash = await broadcastTransaction(signedTx);\n return txHash;\n } catch {\n return signer.signAndSendTransactions?.({ transactions: [transaction] });\n }\n }\n\n async function estimateTransactionFee(params: NearTransferParams | NearGasEstimateParams) {\n if (\"assetValue\" in params) {\n const baseTransferCost = \"115123062500\";\n const receiptCreationCost = \"108059500000\";\n\n const totalGasUnits = BigInt(baseTransferCost) + BigInt(receiptCreationCost);\n\n const gasPrice = await getCurrentGasPrice();\n\n const totalCostYocto = totalGasUnits * BigInt(gasPrice.toString());\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: totalCostYocto.toString() });\n }\n\n const account = signer ? await getAccount() : undefined;\n return estimateGas(params, account);\n }\n\n async function getCurrentGasPrice() {\n try {\n const result = await provider.query({\n account_id: \"system\",\n args_base64: \"\",\n finality: \"final\",\n method_name: \"gas_price\",\n request_type: \"call_function\",\n });\n\n return result;\n } catch {\n return \"100000000\"; // 0.0001 NEAR per Tgas\n }\n }\n\n async function createSubAccount(subAccountId: string, publicKey: string, initialBalance: string): Promise<string> {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const account = await getAccount();\n const { formatNearAmount } = await import(\"@near-js/utils\");\n const { PublicKey } = await import(\"@near-js/crypto\");\n\n const balanceInYocto = formatNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(subAccountId, PublicKey.fromString(publicKey), BigInt(balanceInYocto));\n\n return result.transaction.hash;\n }\n\n async function callFunction(params: NearFunctionCallParams): Promise<string> {\n try {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const { actionCreators } = await import(\"@near-js/transactions\");\n\n const { contractId, methodName, args, deposit } = params;\n const account = await getAccount();\n\n const estimatedGas = await estimateGas({ args: args || {}, contractId, methodName });\n\n const functionAction = actionCreators.functionCall(\n methodName,\n args || {},\n estimatedGas.getBaseValue(\"bigint\"),\n BigInt(deposit || \"1\"),\n );\n\n const result = await account.signAndSendTransaction({ actions: [functionAction], receiverId: contractId });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new USwapError(\"toolbox_near_transfer_failed\", { error });\n }\n }\n\n // Create typed contract interface\n async function createContract<T extends Contract = Contract>(contractInterface: NearContractInterface): Promise<T> {\n const account = await getAccount();\n\n return createNearContract<T>({\n account,\n changeMethods: contractInterface.changeMethods,\n contractId: contractInterface.contractId,\n viewMethods: contractInterface.viewMethods,\n });\n }\n\n async function executeBatchTransaction(batch: BatchTransaction): Promise<string> {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n if (batch.actions.length === 0) {\n throw new USwapError(\"toolbox_near_empty_batch\");\n }\n\n const account = await getAccount();\n\n // Use account.signAndSendTransaction for batch operations\n const result = await account.signAndSendTransaction({ actions: batch.actions, receiverId: batch.receiverId });\n\n return result.transaction.hash;\n }\n\n async function estimateGas(params: NearGasEstimateParams, account?: Account) {\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n const gasInTGas = await match(params)\n .when(isSimpleTransfer, () => GAS_COSTS.SIMPLE_TRANSFER)\n .when(isContractCall, (p) => getContractMethodGas(p.methodName))\n .when(isBatchTransaction, (p) => estimateBatchGas(p.actions))\n .when(isAccountCreation, () => GAS_COSTS.ACCOUNT_CREATION)\n .when(isContractDeployment, () => GAS_COSTS.CONTRACT_DEPLOYMENT)\n .when(isCustomEstimator, (p) => {\n if (!account) {\n throw new USwapError(\"toolbox_near_no_account\");\n }\n return p.customEstimator(account);\n })\n .otherwise(() => {\n throw new USwapError(\"toolbox_near_invalid_gas_params\");\n });\n\n const gasInUnits = BigInt(gasInTGas) * BigInt(10 ** 12);\n const costInYoctoNear = gasInUnits;\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: costInYoctoNear });\n }\n\n // Get current gas price from network\n async function getGasPrice() {\n try {\n const result = await provider.gasPrice(null);\n return result.gas_price || \"100000000\";\n } catch {\n // Fallback to default\n return \"100000000\";\n }\n }\n\n return {\n broadcastTransaction,\n callFunction,\n createAction,\n createContract,\n createContractFunctionCall,\n createSubAccount,\n createTransaction,\n estimateGas,\n estimateTransactionFee,\n executeBatchTransaction,\n getAddress,\n getBalance: getBalance(Chain.Near),\n getGasPrice,\n getPublicKey: async () => (signer ? (await signer.getPublicKey()).toString() : \"\"),\n getSignerFromPhrase: (params: GetSignerFromPhraseParams) => getNearSignerFromPhrase(params),\n getSignerFromPrivateKey: getNearSignerFromPrivateKey,\n provider,\n serializeTransaction,\n signAndSendTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
|
|
8
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { AssetValue, type Chain, getChainConfig } from \"@uswap/helpers\";\nimport { USwapApi } from \"@uswap/helpers/api\";\n\nconst pid = typeof process !== \"undefined\" && process.pid ? process.pid.toString(36) : \"\";\n\nlet last = 0;\nexport function uniqid() {\n function now() {\n const time = Date.now();\n const lastTime = last || time;\n last = lastTime;\n\n return time > last ? time : lastTime + 1;\n }\n\n return pid + now().toString(36);\n}\n\nexport function getBalance<T extends Chain>(chain: T) {\n return async function getBalance(address: string, scamFilter = true) {\n const balances = await USwapApi.getChainBalance({ address, chain, scamFilter });\n const { baseDecimal } = getChainConfig(chain);\n const assetValues = balances.map(({ identifier, value, decimal }) => {\n return new AssetValue({ decimal: decimal || baseDecimal, identifier, value });\n });\n\n const hasNativeAsset = assetValues.some((asset) => asset.isGasAsset);\n if (!hasNativeAsset) {\n return [AssetValue.from({ chain }), ...assetValues];\n }\n\n return assetValues;\n };\n}\n",
|
|
9
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type { Account, Contract } from \"@near-js/accounts\";\nimport type { SignedTransaction, Transaction } from \"@near-js/transactions\";\nimport { AssetValue, Chain, getChainConfig, getRPCUrl, USwapError } from \"@uswap/helpers\";\nimport { getBalance } from \"../utils\";\nimport {\n getFullAccessPublicKey,\n getNearSignerFromPhrase,\n getNearSignerFromPrivateKey,\n getValidateNearAddress,\n} from \"./helpers/core\";\nimport {\n estimateBatchGas,\n GAS_COSTS,\n getContractMethodGas,\n isAccountCreation,\n isBatchTransaction,\n isContractCall,\n isContractDeployment,\n isCustomEstimator,\n isSimpleTransfer,\n} from \"./helpers/gasEstimation\";\nimport { createNearContract } from \"./helpers/nep141\";\nimport type {\n NearCreateTransactionParams,\n NearFunctionCallParams,\n NearToolboxParams,\n NearTransferParams,\n} from \"./types\";\nimport type { NearContractInterface, NearGasEstimateParams } from \"./types/contract\";\nimport type { NEP141StorageContract } from \"./types/nep141\";\nimport type {\n BatchTransaction,\n ContractFunctionCallParams,\n CreateActionParams,\n GetSignerFromPhraseParams,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams) {\n const { P, match } = await import(\"ts-pattern\");\n const { JsonRpcProvider } = await import(\"@near-js/providers\");\n const signer = await match(toolboxParams)\n .with({ phrase: P.string }, async (params) => {\n const signer = await getNearSignerFromPhrase(params);\n return signer;\n })\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n const url = await getRPCUrl(Chain.Near);\n\n const provider = new JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"@near-js/accounts\");\n\n const _address = address || (await getAddress());\n\n const account = new Account(_address, provider, signer);\n\n return account;\n }\n\n async function getAddress() {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n const address = await signer.getAddress();\n return address;\n }\n\n async function checkStorageBalance(params: { contractId: string; accountId: string }) {\n const contract = await createContract<NEP141StorageContract>({\n changeMethods: [],\n contractId: params.contractId,\n viewMethods: [\"storage_balance_of\"],\n });\n\n return contract.storage_balance_of({ account_id: params.accountId });\n }\n\n async function transferTokenWithStorageDeposit(params: {\n recipient: string;\n assetValue: AssetValue;\n memo?: string;\n contractId: string;\n }) {\n const storageDeposit = \"1250000000000000000000\"; // 0.00125 NEAR default\n\n const actions = [\n await createAction({\n args: { account_id: params.recipient },\n attachedDeposit: storageDeposit,\n gas: \"150000000000000\", // 150 TGas for storage_deposit\n methodName: \"storage_deposit\",\n }),\n await createAction({\n args: {\n amount: params.assetValue.getBaseValue(\"string\"),\n memo: params.memo || null,\n receiver_id: params.recipient,\n },\n attachedDeposit: \"1\",\n gas: \"150000000000000\", // 150 TGas for ft_transfer\n methodName: \"ft_transfer\",\n }),\n ];\n\n return executeBatchTransaction({ actions, receiverId: params.contractId });\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const { assetValue, recipient, memo } = params;\n const sender = await getAddress();\n\n // Handle NEP-141 token transfers - check if recipient needs storage\n if (!assetValue.isGasAsset && assetValue.address) {\n const storageBalance = await checkStorageBalance({ accountId: recipient, contractId: assetValue.address });\n\n if (!storageBalance) {\n return transferTokenWithStorageDeposit({ assetValue, contractId: assetValue.address, memo, recipient });\n }\n }\n\n // Standard transfer (native NEAR or token with registered storage)\n const transaction = await createTransaction({ ...params, sender });\n return signAndSendTransaction(transaction);\n }\n\n async function createTransaction(params: NearCreateTransactionParams) {\n const { recipient, assetValue, memo, attachedDeposit, sender: signerId, functionCall } = params;\n const validateNearAddress = await getValidateNearAddress();\n\n if (!validateNearAddress(recipient)) {\n throw new USwapError(\"toolbox_near_invalid_address\", { recipient: recipient });\n }\n\n if (!validateNearAddress(signerId)) {\n throw new USwapError(\"toolbox_near_invalid_address\", { signerId: signerId });\n }\n\n if (functionCall) {\n return createContractFunctionCall({ ...functionCall, sender: signerId });\n }\n\n if (!assetValue.isGasAsset) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new USwapError(\"toolbox_near_missing_contract_address\");\n }\n\n return createContractFunctionCall({\n args: { amount: assetValue.getBaseValue(\"string\"), memo: memo || null, receiver_id: recipient },\n attachedDeposit: attachedDeposit || \"1\",\n contractId,\n gas: \"250000000000000\",\n methodName: \"ft_transfer\",\n sender: signerId,\n });\n }\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, signerId);\n const baseAmount = assetValue.getBaseValue(\"bigint\");\n\n const { actionCreators, createTransaction } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n\n const txActions = [actionCreators.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(actionCreators.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n return createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n function serializeTransaction(transaction: Transaction) {\n const serializedTx = transaction.encode();\n return Buffer.from(serializedTx).toString(\"base64\");\n }\n\n async function createContractFunctionCall(params: ContractFunctionCallParams) {\n const { sender: accountId } = params;\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, accountId);\n\n const { createTransaction, actionCreators } = await import(\"@near-js/transactions\");\n const { baseDecode } = await import(\"@near-js/utils\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = baseDecode(block.header.hash);\n\n const actions = [\n actionCreators.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n ),\n ];\n\n const transaction = createTransaction(accountId, publicKey, params.contractId, nonce + 1, actions, blockHash);\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { actionCreators } = await import(\"@near-js/transactions\");\n\n const action = actionCreators.functionCall(\n params.methodName,\n Buffer.from(JSON.stringify(params.args)),\n BigInt(params.gas),\n BigInt(params.attachedDeposit),\n );\n\n return action;\n }\n\n async function signTransaction(transaction: Transaction): Promise<SignedTransaction> {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const [_hash, signedTx] = await signer.signTransaction(transaction);\n return signedTx;\n }\n\n async function broadcastTransaction(signedTransaction: SignedTransaction) {\n const result = await provider.sendTransaction(signedTransaction);\n return result.transaction.hash;\n }\n\n async function signAndSendTransaction(transaction: Transaction) {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n try {\n const signedTx = await signTransaction(transaction);\n const txHash = await broadcastTransaction(signedTx);\n return txHash;\n } catch {\n return signer.signAndSendTransactions?.({ transactions: [transaction] });\n }\n }\n\n async function estimateTransactionFee(params: NearTransferParams | NearGasEstimateParams) {\n if (\"assetValue\" in params) {\n const baseTransferCost = \"115123062500\";\n const receiptCreationCost = \"108059500000\";\n\n const totalGasUnits = BigInt(baseTransferCost) + BigInt(receiptCreationCost);\n\n const gasPrice = await getCurrentGasPrice();\n\n const totalCostYocto = totalGasUnits * BigInt(gasPrice.toString());\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: totalCostYocto.toString() });\n }\n\n const account = signer ? await getAccount() : undefined;\n return estimateGas(params, account);\n }\n\n async function getCurrentGasPrice() {\n try {\n const result = await provider.query({\n account_id: \"system\",\n args_base64: \"\",\n finality: \"final\",\n method_name: \"gas_price\",\n request_type: \"call_function\",\n });\n\n return result;\n } catch {\n return \"100000000\"; // 0.0001 NEAR per Tgas\n }\n }\n\n async function createSubAccount(subAccountId: string, publicKey: string, initialBalance: string): Promise<string> {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const account = await getAccount();\n const { formatNearAmount } = await import(\"@near-js/utils\");\n const { PublicKey } = await import(\"@near-js/crypto\");\n\n const balanceInYocto = formatNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(subAccountId, PublicKey.fromString(publicKey), BigInt(balanceInYocto));\n\n return result.transaction.hash;\n }\n\n async function callFunction(params: NearFunctionCallParams): Promise<string> {\n try {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n const { actionCreators } = await import(\"@near-js/transactions\");\n\n const { contractId, methodName, args, deposit } = params;\n const account = await getAccount();\n\n const estimatedGas = await estimateGas({ args: args || {}, contractId, methodName });\n\n const functionAction = actionCreators.functionCall(\n methodName,\n args || {},\n estimatedGas.getBaseValue(\"bigint\"),\n BigInt(deposit || \"1\"),\n );\n\n const result = await account.signAndSendTransaction({ actions: [functionAction], receiverId: contractId });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new USwapError(\"toolbox_near_transfer_failed\", { error });\n }\n }\n\n // Create typed contract interface\n async function createContract<T extends Contract = Contract>(contractInterface: NearContractInterface): Promise<T> {\n const account = await getAccount();\n\n return createNearContract<T>({\n account,\n changeMethods: contractInterface.changeMethods,\n contractId: contractInterface.contractId,\n viewMethods: contractInterface.viewMethods,\n });\n }\n\n async function executeBatchTransaction(batch: BatchTransaction): Promise<string> {\n if (!signer) {\n throw new USwapError(\"toolbox_near_no_signer\");\n }\n\n if (batch.actions.length === 0) {\n throw new USwapError(\"toolbox_near_empty_batch\");\n }\n\n const account = await getAccount();\n\n // Use account.signAndSendTransaction for batch operations\n const result = await account.signAndSendTransaction({ actions: batch.actions, receiverId: batch.receiverId });\n\n return result.transaction.hash;\n }\n\n async function estimateGas(params: NearGasEstimateParams, account?: Account) {\n const { baseDecimal } = getChainConfig(Chain.Near);\n\n const gasInTGas = await match(params)\n .when(isSimpleTransfer, () => GAS_COSTS.SIMPLE_TRANSFER)\n .when(isContractCall, (p) => getContractMethodGas(p.methodName))\n .when(isBatchTransaction, (p) => estimateBatchGas(p.actions))\n .when(isAccountCreation, () => GAS_COSTS.ACCOUNT_CREATION)\n .when(isContractDeployment, () => GAS_COSTS.CONTRACT_DEPLOYMENT)\n .when(isCustomEstimator, (p) => {\n if (!account) {\n throw new USwapError(\"toolbox_near_no_account\");\n }\n return p.customEstimator(account);\n })\n .otherwise(() => {\n throw new USwapError(\"toolbox_near_invalid_gas_params\");\n });\n\n const gasInUnits = BigInt(gasInTGas) * BigInt(10 ** 12);\n const costInYoctoNear = gasInUnits;\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: baseDecimal, value: costInYoctoNear });\n }\n\n // Get current gas price from network\n async function getGasPrice() {\n try {\n const result = await provider.gasPrice(null);\n return result.gas_price || \"100000000\";\n } catch {\n // Fallback to default\n return \"100000000\";\n }\n }\n\n return {\n broadcastTransaction,\n callFunction,\n createAction,\n createContract,\n createContractFunctionCall,\n createSubAccount,\n createTransaction,\n estimateGas,\n estimateTransactionFee,\n executeBatchTransaction,\n getAddress,\n getBalance: getBalance(Chain.Near),\n getGasPrice,\n getPublicKey: async () => (signer ? (await signer.getPublicKey()).toString() : \"\"),\n getSignerFromPhrase: (params: GetSignerFromPhraseParams) => getNearSignerFromPhrase(params),\n getSignerFromPrivateKey: getNearSignerFromPrivateKey,\n provider,\n serializeTransaction,\n signAndSendTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
|
|
10
10
|
"import type { Signer } from \"@near-js/signers\";\nimport type { SignedTransaction, Transaction } from \"@near-js/transactions\";\nimport type {\n ChainSigner,\n DerivationPathArray,\n GenericCreateTransactionParams,\n GenericTransferParams,\n} from \"@uswap/helpers\";\n\nexport interface NearSigner extends Signer, Omit<ChainSigner<Transaction, SignedTransaction>, \"signTransaction\"> {\n signAndSendTransactions?(params: { transactions: Transaction[] }): Promise<string>;\n}\n\nexport type NearToolboxParams =\n | { signer?: NearSigner; accountId?: string }\n | { phrase?: string; index?: number; derivationPath?: DerivationPathArray };\n\nexport interface NearTransferParams extends GenericTransferParams {}\n\nexport interface NearConfig {\n networkId: \"mainnet\" | \"testnet\" | \"betanet\";\n nodeUrl: string;\n walletUrl?: string;\n helperUrl?: string;\n keyStore?: any;\n}\n\nexport interface NearFunctionCallParams {\n contractId: string;\n methodName: string;\n args: Uint8Array | Record<string, any>;\n deposit?: bigint | string | number;\n gas?: bigint | string | number;\n}\n\nexport interface NearCreateTransactionParams extends Omit<GenericCreateTransactionParams, \"feeRate\"> {\n attachedDeposit?: string;\n functionCall?: { methodName: string; args: object; attachedDeposit: string; gas: string; contractId: string };\n}\n\nexport * from \"./toolbox\";\nexport * from \"./types/contract\";\nexport * from \"./types/nep141\";\nexport * from \"./types/toolbox\";\n",
|
|
11
11
|
"import type { getNearToolbox } from \"./toolbox\";\n\nexport * from \"./helpers/core\";\nexport * from \"./helpers/gasEstimation\";\nexport * from \"./helpers/nep141\";\nexport * from \"./toolbox\";\nexport * from \"./types\";\n\nexport type NearWallet = Awaited<ReturnType<typeof getNearToolbox>>;\n\nexport type {\n NearCallParams,\n NearContractInterface,\n NearGasEstimateParams,\n} from \"./types/contract\";\nexport type {\n FungibleTokenMetadata,\n StorageBalance,\n StorageBalanceBounds,\n TokenTransferParams,\n} from \"./types/nep141\";\n"
|
|
12
12
|
],
|
|
13
|
-
"mappings": "
|
|
14
|
-
"debugId": "
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "8659ABD03C7B91A464756E2164756E21",
|
|
15
15
|
"names": []
|
|
16
16
|
}
|
package/dist/src/radix/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var v=Object.create;var{getPrototypeOf:x,defineProperty:V,getOwnPropertyNames:Z,getOwnPropertyDescriptor:B}=Object,_=Object.prototype.hasOwnProperty;var $=(j,z,H)=>{H=j!=null?v(x(j)):{};let J=z||!j||!j.__esModule?V(H,"default",{value:j,enumerable:!0}):H;for(let K of Z(j))if(!_.call(J,K))V(J,K,{get:()=>j[K],enumerable:!0});return J},Y=new WeakMap,I=(j)=>{var z=Y.get(j),H;if(z)return z;if(z=V({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function")Z(j).map((J)=>!_.call(z,J)&&V(z,J,{get:()=>j[J],enumerable:!(H=B(j,J))||H.enumerable}));return Y.set(j,z),z};var S=(j,z)=>{for(var H in z)V(j,H,{get:z[H],enumerable:!0,configurable:!0,set:(J)=>z[H]=()=>J})};var T=(j,z)=>()=>(j&&(z=j(j=0)),z);var P={};S(P,{radixValidateAddress:()=>q,RadixToolbox:()=>F});module.exports=I(P);function q(j){return j.startsWith("account_rdx1")&&j.length===66}function C({networkApi:j}){return async function(H){let J=await D({address:H,networkApi:j}),K=await h({networkApi:j,resources:J});if(!K.some((O)=>O.isGasAsset))return[N.AssetValue.from({chain:N.Chain.Radix}),...K];return K}}async function D({address:j,networkApi:z}){let H=!0,J,K=[],L=await E(z);while(H){let O={address:j,at_ledger_state:{state_version:L},cursor:J,limit_per_page:100},Q=await z.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:O});if(K=K.concat(Q.items),Q.next_cursor)J=Q.next_cursor;else H=!1}return K}async function h({resources:j,networkApi:z}){let H=[],J=50,K=[];for(let L=0;L<j.length;L+=50)K.push(j.slice(L,L+50));for(let L of K){let O=L.map((M)=>M.resource_address),Q=await z.state.getEntityDetailsVaultAggregated(O),X=new Map;for(let M of Q)if(M.details!==void 0){let U=M.metadata?.items.find((G)=>G.key==="symbol"),W=U?.value.typed.type==="String"?U.value.typed.value:"?";if(M.details.type==="FungibleResource")X.set(M.address,{decimals:M.details.divisibility,symbol:W})}for(let M of L)if(M.aggregation_level==="Global"){let U=X.get(M.resource_address)||{decimals:0,symbol:"?"},W=N.AssetValue.from({asset:U.symbol!==N.Chain.Radix?`${N.Chain.Radix}.${U.symbol}-${M.resource_address}`:"XRD.XRD",value:M.amount});H.push(W)}}return H}function E(j){return j.status.getCurrent().then((z)=>z.ledger_state.state_version)}var N,F=async({dappConfig:j}={})=>{let{RadixDappToolkit:z}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:H}=await import("@radixdlt/babylon-gateway-api-sdk"),J=j||N.
|
|
1
|
+
var v=Object.create;var{getPrototypeOf:x,defineProperty:V,getOwnPropertyNames:Z,getOwnPropertyDescriptor:B}=Object,_=Object.prototype.hasOwnProperty;var $=(j,z,H)=>{H=j!=null?v(x(j)):{};let J=z||!j||!j.__esModule?V(H,"default",{value:j,enumerable:!0}):H;for(let K of Z(j))if(!_.call(J,K))V(J,K,{get:()=>j[K],enumerable:!0});return J},Y=new WeakMap,I=(j)=>{var z=Y.get(j),H;if(z)return z;if(z=V({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function")Z(j).map((J)=>!_.call(z,J)&&V(z,J,{get:()=>j[J],enumerable:!(H=B(j,J))||H.enumerable}));return Y.set(j,z),z};var S=(j,z)=>{for(var H in z)V(j,H,{get:z[H],enumerable:!0,configurable:!0,set:(J)=>z[H]=()=>J})};var T=(j,z)=>()=>(j&&(z=j(j=0)),z);var P={};S(P,{radixValidateAddress:()=>q,RadixToolbox:()=>F});module.exports=I(P);function q(j){return j.startsWith("account_rdx1")&&j.length===66}function C({networkApi:j}){return async function(H){let J=await D({address:H,networkApi:j}),K=await h({networkApi:j,resources:J});if(!K.some((O)=>O.isGasAsset))return[N.AssetValue.from({chain:N.Chain.Radix}),...K];return K}}async function D({address:j,networkApi:z}){let H=!0,J,K=[],L=await E(z);while(H){let O={address:j,at_ledger_state:{state_version:L},cursor:J,limit_per_page:100},Q=await z.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:O});if(K=K.concat(Q.items),Q.next_cursor)J=Q.next_cursor;else H=!1}return K}async function h({resources:j,networkApi:z}){let H=[],J=50,K=[];for(let L=0;L<j.length;L+=50)K.push(j.slice(L,L+50));for(let L of K){let O=L.map((M)=>M.resource_address),Q=await z.state.getEntityDetailsVaultAggregated(O),X=new Map;for(let M of Q)if(M.details!==void 0){let U=M.metadata?.items.find((G)=>G.key==="symbol"),W=U?.value.typed.type==="String"?U.value.typed.value:"?";if(M.details.type==="FungibleResource")X.set(M.address,{decimals:M.details.divisibility,symbol:W})}for(let M of L)if(M.aggregation_level==="Global"){let U=X.get(M.resource_address)||{decimals:0,symbol:"?"},W=N.AssetValue.from({asset:U.symbol!==N.Chain.Radix?`${N.Chain.Radix}.${U.symbol}-${M.resource_address}`:"XRD.XRD",value:M.amount});H.push(W)}}return H}function E(j){return j.status.getCurrent().then((z)=>z.ledger_state.state_version)}var N,F=async({dappConfig:j}={})=>{let{RadixDappToolkit:z}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:H}=await import("@radixdlt/babylon-gateway-api-sdk"),J=j||N.USwapConfig.get("integrations").radix,K=z({...J,networkId:J.network?.networkId||1}),L=H.initialize(K.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:C({networkApi:L}),networkApi:L,signAndBroadcast:()=>{throw new N.USwapError("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:q}};var R=T(()=>{N=require("@uswap/helpers")});R();
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=133492FC17916A3A64756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/radix/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\n *
|
|
5
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type {\n FungibleResourcesCollectionItem,\n GatewayApiClient,\n StateEntityDetailsVaultResponseItem,\n StateEntityFungiblesPageRequest,\n StateEntityFungiblesPageResponse,\n} from \"@radixdlt/babylon-gateway-api-sdk\";\nimport { AssetValue, Chain, USwapConfig, type USwapConfigIntegrations, USwapError } from \"@uswap/helpers\";\n\nexport type RadixWallet = Awaited<ReturnType<typeof RadixToolbox>>;\n\ntype RadixGetBalanceParams = { address: string; networkApi: GatewayApiClient };\n// Could not find anything sync in SDK, ask Radix team\nexport function radixValidateAddress(address: string) {\n return address.startsWith(\"account_rdx1\") && address.length === 66;\n}\n\nfunction getBalance({ networkApi }: { networkApi: GatewayApiClient }) {\n return async function getBalance(address: string) {\n const fungibleResources = await fetchFungibleResources({ address, networkApi });\n const fungibleBalances = await convertResourcesToBalances({ networkApi, resources: fungibleResources });\n\n const hasNativeAsset = fungibleBalances.some((asset) => asset.isGasAsset);\n if (!hasNativeAsset) {\n return [AssetValue.from({ chain: Chain.Radix }), ...fungibleBalances];\n }\n\n return fungibleBalances;\n };\n}\n\nasync function fetchFungibleResources({\n address,\n networkApi,\n}: RadixGetBalanceParams): Promise<FungibleResourcesCollectionItem[]> {\n let hasNextPage = true;\n let nextCursor: string | undefined;\n let fungibleResources: FungibleResourcesCollectionItem[] = [];\n const stateVersion = await currentStateVersion(networkApi);\n while (hasNextPage) {\n const stateEntityFungiblesPageRequest: StateEntityFungiblesPageRequest = {\n address: address,\n at_ledger_state: { state_version: stateVersion },\n cursor: nextCursor,\n limit_per_page: 100,\n };\n\n const stateEntityFungiblesPageResponse: StateEntityFungiblesPageResponse =\n await networkApi.state.innerClient.entityFungiblesPage({\n stateEntityFungiblesPageRequest: stateEntityFungiblesPageRequest,\n });\n\n fungibleResources = fungibleResources.concat(stateEntityFungiblesPageResponse.items);\n if (stateEntityFungiblesPageResponse.next_cursor) {\n nextCursor = stateEntityFungiblesPageResponse.next_cursor;\n } else {\n hasNextPage = false;\n }\n }\n return fungibleResources;\n}\n\nasync function convertResourcesToBalances({\n resources,\n networkApi,\n}: {\n resources: FungibleResourcesCollectionItem[]; //| NonFungibleResourcesCollectionItem[];\n networkApi: GatewayApiClient;\n}): Promise<AssetValue[]> {\n const balances: AssetValue[] = [];\n const BATCH_SIZE = 50;\n\n // Split resources into batches of up to 50 items\n const resourceBatches: FungibleResourcesCollectionItem[][] = [];\n for (let i = 0; i < resources.length; i += BATCH_SIZE) {\n resourceBatches.push(resources.slice(i, i + BATCH_SIZE));\n }\n\n for (const batch of resourceBatches) {\n const addresses = batch.map((item) => item.resource_address);\n const response: StateEntityDetailsVaultResponseItem[] =\n await networkApi.state.getEntityDetailsVaultAggregated(addresses);\n\n const divisibilities = new Map<string, { decimals: number; symbol: string }>();\n\n for (const result of response) {\n if (result.details !== undefined) {\n const metaDataSymbol = result.metadata?.items.find((item) => item.key === \"symbol\");\n const symbol = metaDataSymbol?.value.typed.type === \"String\" ? metaDataSymbol.value.typed.value : \"?\";\n\n if (result.details.type === \"FungibleResource\") {\n divisibilities.set(result.address, { decimals: result.details.divisibility, symbol });\n }\n }\n }\n\n for (const item of batch) {\n if (item.aggregation_level === \"Global\") {\n const assetInfo = divisibilities.get(item.resource_address) || { decimals: 0, symbol: \"?\" };\n\n const balance = AssetValue.from({\n asset:\n assetInfo.symbol !== Chain.Radix\n ? `${Chain.Radix}.${assetInfo.symbol}-${item.resource_address}`\n : \"XRD.XRD\",\n value: item.amount,\n });\n balances.push(balance);\n }\n }\n }\n\n return balances;\n}\n\nfunction currentStateVersion(networkApi: GatewayApiClient) {\n return networkApi.status.getCurrent().then((status) => status.ledger_state.state_version);\n}\n\nexport const RadixToolbox = async ({ dappConfig }: { dappConfig?: USwapConfigIntegrations[\"radix\"] } = {}) => {\n const { RadixDappToolkit } = await import(\"@radixdlt/radix-dapp-toolkit\");\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const config = dappConfig || USwapConfig.get(\"integrations\").radix;\n\n const radixToolkit = RadixDappToolkit({ ...config, networkId: config.network?.networkId || 1 });\n\n const networkApi = GatewayApiClient.initialize(radixToolkit.gatewayApi.clientConfig);\n\n return {\n getAddress: () => \"\",\n getBalance: getBalance({ networkApi }),\n networkApi,\n signAndBroadcast: (() => {\n throw new USwapError(\"toolbox_radix_method_not_supported\", { method: \"signAndBroadcast\" });\n }) as (params: any) => Promise<string>,\n validateAddress: radixValidateAddress,\n };\n};\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "wxBAiBO,SAAS,CAAoB,CAAC,EAAiB,CACpD,OAAO,EAAQ,WAAW,cAAc,GAAK,EAAQ,SAAW,GAGlE,SAAS,CAAU,EAAG,cAAgD,CACpE,OAAO,cAAyB,CAAC,EAAiB,CAChD,IAAM,EAAoB,MAAM,EAAuB,CAAE,UAAS,YAAW,CAAC,EACxE,EAAmB,MAAM,EAA2B,CAAE,aAAY,UAAW,CAAkB,CAAC,EAGtG,GAAI,CADmB,EAAiB,KAAK,CAAC,IAAU,EAAM,UAAU,EAEtE,MAAO,CAAC,aAAW,KAAK,CAAE,MAAO,QAAM,KAAM,CAAC,EAAG,GAAG,CAAgB,EAGtE,OAAO,GAIX,eAAe,CAAsB,EACnC,UACA,cACoE,CACpE,IAAI,EAAc,GACd,EACA,EAAuD,CAAC,EACtD,EAAe,MAAM,EAAoB,CAAU,EACzD,MAAO,EAAa,CAClB,IAAM,EAAmE,CACvE,QAAS,EACT,gBAAiB,CAAE,cAAe,CAAa,EAC/C,OAAQ,EACR,eAAgB,GAClB,EAEM,EACJ,MAAM,EAAW,MAAM,YAAY,oBAAoB,CACrD,gCAAiC,CACnC,CAAC,EAGH,GADA,EAAoB,EAAkB,OAAO,EAAiC,KAAK,EAC/E,EAAiC,YACnC,EAAa,EAAiC,YAE9C,OAAc,GAGlB,OAAO,EAGT,eAAe,CAA0B,EACvC,YACA,cAIwB,CACxB,IAAM,EAAyB,CAAC,EAC1B,EAAa,GAGb,EAAuD,CAAC,EAC9D,QAAS,EAAI,EAAG,EAAI,EAAU,OAAQ,GAJnB,GAKjB,EAAgB,KAAK,EAAU,MAAM,EAAG,EALvB,EAKqC,CAAC,EAGzD,QAAW,KAAS,EAAiB,CACnC,IAAM,EAAY,EAAM,IAAI,CAAC,IAAS,EAAK,gBAAgB,EACrD,EACJ,MAAM,EAAW,MAAM,gCAAgC,CAAS,EAE5D,EAAiB,IAAI,IAE3B,QAAW,KAAU,EACnB,GAAI,EAAO,UAAY,OAAW,CAChC,IAAM,EAAiB,EAAO,UAAU,MAAM,KAAK,CAAC,IAAS,EAAK,MAAQ,QAAQ,EAC5E,EAAS,GAAgB,MAAM,MAAM,OAAS,SAAW,EAAe,MAAM,MAAM,MAAQ,IAElG,GAAI,EAAO,QAAQ,OAAS,mBAC1B,EAAe,IAAI,EAAO,QAAS,CAAE,SAAU,EAAO,QAAQ,aAAc,QAAO,CAAC,EAK1F,QAAW,KAAQ,EACjB,GAAI,EAAK,oBAAsB,SAAU,CACvC,IAAM,EAAY,EAAe,IAAI,EAAK,gBAAgB,GAAK,CAAE,SAAU,EAAG,OAAQ,GAAI,EAEpF,EAAU,aAAW,KAAK,CAC9B,MACE,EAAU,SAAW,QAAM,MACvB,GAAG,QAAM,SAAS,EAAU,UAAU,EAAK,mBAC3C,UACN,MAAO,EAAK,MACd,CAAC,EACD,EAAS,KAAK,CAAO,GAK3B,OAAO,EAGT,SAAS,CAAmB,CAAC,EAA8B,CACzD,OAAO,EAAW,OAAO,WAAW,EAAE,KAAK,CAAC,IAAW,EAAO,aAAa,aAAa,MA7G1F,EAgHa,EAAe,OAAS,cAAkE,CAAC,IAAM,CAC5G,IAAQ,oBAAqB,KAAa,yCAClC,oBAAqB,KAAa,6CACpC,EAAS,GAAc,cAAY,IAAI,cAAc,EAAE,MAEvD,EAAe,EAAiB,IAAK,EAAQ,UAAW,EAAO,SAAS,WAAa,CAAE,CAAC,EAExF,EAAa,EAAiB,WAAW,EAAa,WAAW,YAAY,EAEnF,MAAO,CACL,WAAY,IAAM,GAClB,WAAY,EAAW,CAAE,YAAW,CAAC,EACrC,aACA,iBAAmB,IAAM,CACvB,MAAM,IAAI,aAAW,qCAAsC,CAAE,OAAQ,kBAAmB,CAAC,GAE3F,gBAAiB,CACnB,gBAjIF",
|
|
8
|
+
"debugId": "133492FC17916A3A64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/src/radix/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var G=Object.create;var{getPrototypeOf:v,defineProperty:V,getOwnPropertyNames:x}=Object;var B=Object.prototype.hasOwnProperty;var Y=(j,z,H)=>{H=j!=null?G(v(j)):{};let K=z||!j||!j.__esModule?V(H,"default",{value:j,enumerable:!0}):H;for(let J of x(j))if(!B.call(K,J))V(K,J,{get:()=>j[J],enumerable:!0});return K};var I=(j,z)=>{for(var H in z)V(j,H,{get:z[H],enumerable:!0,configurable:!0,set:(K)=>z[H]=()=>K})};var S=(j,z)=>()=>(j&&(z=j(j=0)),z);var Z=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(z,H)=>(typeof require<"u"?require:z)[H]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});var R={};I(R,{radixValidateAddress:()=>$,RadixToolbox:()=>P});import{AssetValue as _,Chain as W,
|
|
1
|
+
var G=Object.create;var{getPrototypeOf:v,defineProperty:V,getOwnPropertyNames:x}=Object;var B=Object.prototype.hasOwnProperty;var Y=(j,z,H)=>{H=j!=null?G(v(j)):{};let K=z||!j||!j.__esModule?V(H,"default",{value:j,enumerable:!0}):H;for(let J of x(j))if(!B.call(K,J))V(K,J,{get:()=>j[J],enumerable:!0});return K};var I=(j,z)=>{for(var H in z)V(j,H,{get:z[H],enumerable:!0,configurable:!0,set:(K)=>z[H]=()=>K})};var S=(j,z)=>()=>(j&&(z=j(j=0)),z);var Z=((j)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(j,{get:(z,H)=>(typeof require<"u"?require:z)[H]}):j)(function(j){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+j+'" is not supported')});var R={};I(R,{radixValidateAddress:()=>$,RadixToolbox:()=>P});import{AssetValue as _,Chain as W,USwapConfig as T,USwapError as C}from"@uswap/helpers";function $(j){return j.startsWith("account_rdx1")&&j.length===66}function D({networkApi:j}){return async function(H){let K=await h({address:H,networkApi:j}),J=await E({networkApi:j,resources:K});if(!J.some((N)=>N.isGasAsset))return[_.from({chain:W.Radix}),...J];return J}}async function h({address:j,networkApi:z}){let H=!0,K,J=[],L=await F(z);while(H){let N={address:j,at_ledger_state:{state_version:L},cursor:K,limit_per_page:100},O=await z.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:N});if(J=J.concat(O.items),O.next_cursor)K=O.next_cursor;else H=!1}return J}async function E({resources:j,networkApi:z}){let H=[],K=50,J=[];for(let L=0;L<j.length;L+=50)J.push(j.slice(L,L+50));for(let L of J){let N=L.map((M)=>M.resource_address),O=await z.state.getEntityDetailsVaultAggregated(N),X=new Map;for(let M of O)if(M.details!==void 0){let Q=M.metadata?.items.find((q)=>q.key==="symbol"),U=Q?.value.typed.type==="String"?Q.value.typed.value:"?";if(M.details.type==="FungibleResource")X.set(M.address,{decimals:M.details.divisibility,symbol:U})}for(let M of L)if(M.aggregation_level==="Global"){let Q=X.get(M.resource_address)||{decimals:0,symbol:"?"},U=_.from({asset:Q.symbol!==W.Radix?`${W.Radix}.${Q.symbol}-${M.resource_address}`:"XRD.XRD",value:M.amount});H.push(U)}}return H}function F(j){return j.status.getCurrent().then((z)=>z.ledger_state.state_version)}var P=async({dappConfig:j}={})=>{let{RadixDappToolkit:z}=await import("@radixdlt/radix-dapp-toolkit"),{GatewayApiClient:H}=await import("@radixdlt/babylon-gateway-api-sdk"),K=j||T.get("integrations").radix,J=z({...K,networkId:K.network?.networkId||1}),L=H.initialize(J.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:D({networkApi:L}),networkApi:L,signAndBroadcast:()=>{throw new C("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:$}};var f=()=>{};f();export{$ as radixValidateAddress,P as RadixToolbox};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=633BEA2D0D8D689664756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|