@swapkit/toolboxes 4.0.19 → 4.0.21
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/cosmos/index.cjs +2 -2
- package/dist/src/cosmos/index.cjs.map +7 -7
- package/dist/src/cosmos/index.js +2 -2
- package/dist/src/cosmos/index.js.map +7 -7
- package/dist/src/evm/index.cjs +2 -2
- package/dist/src/evm/index.cjs.map +6 -6
- package/dist/src/evm/index.js +2 -2
- package/dist/src/evm/index.js.map +6 -6
- package/dist/src/index.cjs +3 -3
- package/dist/src/index.cjs.map +22 -22
- package/dist/src/index.js +3 -3
- package/dist/src/index.js.map +22 -22
- package/dist/src/near/index.cjs +2 -2
- package/dist/src/near/index.cjs.map +7 -7
- package/dist/src/near/index.js +2 -2
- package/dist/src/near/index.js.map +7 -7
- 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 +2 -2
- package/dist/src/solana/index.cjs.map +3 -3
- package/dist/src/solana/index.js +2 -2
- package/dist/src/solana/index.js.map +3 -3
- package/dist/src/substrate/index.cjs +2 -2
- package/dist/src/substrate/index.cjs.map +3 -3
- package/dist/src/substrate/index.js +2 -2
- package/dist/src/substrate/index.js.map +3 -3
- package/dist/src/tron/index.cjs +2 -2
- package/dist/src/tron/index.cjs.map +3 -3
- package/dist/src/tron/index.js +2 -2
- package/dist/src/tron/index.js.map +3 -3
- package/dist/src/utxo/index.cjs +3 -3
- package/dist/src/utxo/index.cjs.map +6 -6
- package/dist/src/utxo/index.js +3 -3
- package/dist/src/utxo/index.js.map +6 -6
- package/dist/types/cosmos/thorchainUtils/messages.d.ts +7 -7
- package/dist/types/cosmos/thorchainUtils/messages.d.ts.map +1 -1
- package/dist/types/cosmos/thorchainUtils/registry.d.ts +2 -2
- package/dist/types/cosmos/thorchainUtils/registry.d.ts.map +1 -1
- package/dist/types/cosmos/toolbox/cosmos.d.ts.map +1 -1
- package/dist/types/cosmos/toolbox/thorchain.d.ts +5 -5
- package/dist/types/cosmos/toolbox/thorchain.d.ts.map +1 -1
- package/dist/types/cosmos/types.d.ts +3 -3
- package/dist/types/cosmos/types.d.ts.map +1 -1
- package/dist/types/cosmos/util.d.ts +1 -1
- package/dist/types/cosmos/util.d.ts.map +1 -1
- package/dist/types/evm/helpers.d.ts +1 -1
- package/dist/types/evm/helpers.d.ts.map +1 -1
- 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/index.d.ts +5 -5
- package/dist/types/evm/toolbox/index.d.ts.map +1 -1
- package/dist/types/evm/toolbox/op.d.ts +15 -13
- package/dist/types/evm/toolbox/op.d.ts.map +1 -1
- package/dist/types/near/helpers/core.d.ts.map +1 -1
- package/dist/types/near/helpers/gasEstimation.d.ts +4 -4
- package/dist/types/near/helpers/gasEstimation.d.ts.map +1 -1
- package/dist/types/near/toolbox.d.ts.map +1 -1
- package/dist/types/near/types/toolbox.d.ts +5 -13
- package/dist/types/near/types/toolbox.d.ts.map +1 -1
- package/dist/types/near/types.d.ts +2 -0
- package/dist/types/near/types.d.ts.map +1 -1
- package/dist/types/ripple/index.d.ts.map +1 -1
- package/dist/types/solana/toolbox.d.ts.map +1 -1
- package/dist/types/substrate/substrate.d.ts +3 -3
- package/dist/types/substrate/substrate.d.ts.map +1 -1
- package/dist/types/tron/toolbox.d.ts.map +1 -1
- package/dist/types/tron/types.d.ts +1 -0
- package/dist/types/tron/types.d.ts.map +1 -1
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/bitcoinCash.d.ts +1 -1
- package/dist/types/utxo/toolbox/bitcoinCash.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/index.d.ts +1 -1
- package/dist/types/utxo/toolbox/index.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/utxo.d.ts +2 -2
- package/dist/types/utxo/toolbox/utxo.d.ts.map +1 -1
- package/dist/types/utxo/toolbox/zcash.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/src/near/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var E1=Object.create;var{getPrototypeOf:N1,defineProperty:T,getOwnPropertyNames:J1,getOwnPropertyDescriptor:v1}=Object,L1=Object.prototype.hasOwnProperty;var R=(q,W,J)=>{J=q!=null?E1(N1(q)):{};let L=W||!q||!q.__esModule?T(J,"default",{value:q,enumerable:!0}):J;for(let $ of J1(q))if(!L1.call(L,$))T(L,$,{get:()=>q[$],enumerable:!0});return L},x1=new WeakMap,b1=(q)=>{var W=x1.get(q),J;if(W)return W;if(W=T({},"__esModule",{value:!0}),q&&typeof q==="object"||typeof q==="function")J1(q).map((L)=>!L1.call(W,L)&&T(W,L,{get:()=>q[L],enumerable:!(J=v1(q,L))||J.enumerable}));return x1.set(q,W),W};var P1=(q,W)=>{for(var J in W)T(q,J,{get:W[J],enumerable:!0,configurable:!0,set:(L)=>W[J]=()=>L})};var F=(q,W)=>()=>(q&&(W=q(q=0)),W);async function E(){let{validateAccountId:q}=await import("near-sdk-js");return(W)=>{try{return q(W)}catch{let J=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return W.length>=2&&W.length<=64&&J.test(W)}}}async function v(q){let{parseSeedPhrase:W}=await import("near-seed-phrase"),{KeyPair:J}=await import("near-api-js"),L=q.index||0,$=q.derivationPath?N.derivationPathToString(q.derivationPath.slice(0,3)):`m/44'/397'/${L}'`,{secretKey:Y}=W(q.phrase,$),z=J.fromString(Y);return $1(z)}async function I(q){let{KeyPair:W}=await import("near-api-js/lib/utils"),J=W.fromString(q);return $1(J)}function $1(q){return new Z1(q)}async function b(q,W){let L=(await q.query({account_id:W,finality:"final",request_type:"view_access_key_list"})).keys.find((H)=>H.access_key.permission==="FullAccess");if(!L)throw new N.SwapKitError("toolbox_near_invalid_address");let{utils:$}=await import("near-api-js"),Y=$.PublicKey.fromString(L.public_key);return{nonce:L.access_key.nonce||0,publicKey:Y}}var N,Q1,Z1;var h=F(()=>{N=require("@swapkit/helpers"),Q1=require("near-api-js");Z1=class Z1 extends Q1.KeyPairSigner{#q;constructor(q){super(q);this.#q=q}getAddress(){let q=this.#q.getPublicKey(),W=Buffer.from(q.data).toString("hex");return Promise.resolve(W)}}});function S(q){return"recipient"in q&&"amount"in q&&!("contractId"in q)}function g(q){return"contractId"in q&&"methodName"in q}function l(q){return"actions"in q}function u(q){return"newAccountId"in q}function m(q){return"contractCode"in q}function p(q){return"customEstimator"in q}function d(q){let W=0;for(let J of q)switch(J.enum){case"transfer":W+=Number(f.SIMPLE_TRANSFER);break;case"functionCall":W+=Number(f.CONTRACT_CALL);break;case"createAccount":W+=Number(f.ACCOUNT_CREATION);break;case"deployContract":W+=Number(f.CONTRACT_DEPLOYMENT);break;case"addKey":W+=Number(f.ACCESS_KEY_ADDITION);break;case"deleteKey":W+=Number(f.ACCESS_KEY_DELETION);break;case"stake":W+=Number(f.STAKE);break;default:W+=Number(f.CONTRACT_CALL)}return W.toString()}function o(q){if(q==="ft_transfer"||q==="ft_transfer_call")return f.TOKEN_TRANSFER;if(q==="storage_deposit")return f.STORAGE_DEPOSIT;return f.CONTRACT_CALL}function y1(q){return(BigInt(q)*BigInt(1000000000000)).toString()}function C1(q){return(BigInt(q)/BigInt(1000000000000)).toString()}var f;var i=F(()=>{f={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"100",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"100",TOKEN_TRANSFER:"100"}});async function P({account:q,contractId:W,viewMethods:J,changeMethods:L}){let{Contract:$}=await import("near-api-js");return new $(q,W,{changeMethods:L,useLocalViewExecution:!0,viewMethods:J})}async function n({contractId:q,account:W}){let J=(await import("bn.js")).default,L=await P({account:W,changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"],contractId:q,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"]}),$=async(Y)=>{if(!await L.storage_balance_of({account_id:Y})){let O=(await L.storage_balance_bounds())?.min||"1250000000000000000000";await L.storage_deposit({account_id:Y},new J("100000000000000"),new J(O))}};return{balanceOf:(Y)=>L.ft_balance_of({account_id:Y}),contract:L,ensureStorage:$,metadata:()=>L.ft_metadata(),storageBalanceOf:(Y)=>L.storage_balance_of({account_id:Y}),storageDeposit:(Y,z)=>L.storage_deposit({account_id:Y},new J("100000000000000"),new J(z||"1250000000000000000000")),totalSupply:()=>L.ft_total_supply(),transfer:async(Y,z,H)=>{return await $(Y),L.ft_transfer({amount:z,memo:H,receiver_id:Y},new J("100000000000000"),new J("1"))},transferCall:async(Y,z,H,O)=>{return await $(Y),L.ft_transfer_call({amount:z,memo:O,msg:H,receiver_id:Y},new J("100000000000000"),new J("1"))}}}function u1(){function q(){let W=Date.now(),J=c||W;return c=J,W>c?W:J+1}return G1+q().toString(36)}function U1(q){return async function(J,L=!0){return(await X1.SwapKitApi.getChainBalance({address:J,chain:q,scamFilter:L})).map(({identifier:Y,value:z,decimal:H})=>{return new y.AssetValue({decimal:H||y.BaseDecimal[q],identifier:Y,value:z})})}}var y,X1,G1,c=0;var Y1=F(()=>{y=require("@swapkit/helpers"),X1=require("@swapkit/helpers/api"),G1=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function K1(q){let{P:W,match:J}=await import("ts-pattern"),{providers:L}=await import("near-api-js"),$=await J(q).with({phrase:W.string},async(x)=>{return await v(x)}).with({signer:W.any},({signer:x})=>x).otherwise(()=>{return}),Y=await Z.getRPCUrl(Z.Chain.Near),z=new L.JsonRpcProvider({url:Y});async function H(x){let{Account:Q}=await import("near-api-js"),X=x||await O();return new Q(X,z,$)}async function O(){if(!$)throw new Z.SwapKitError("toolbox_near_no_signer");return await $.getAddress()}async function D1(x){if(!$)throw new Z.SwapKitError("toolbox_near_no_signer");let{recipient:Q,assetValue:X}=x;if(!(await E())(Q))throw new Z.SwapKitError("toolbox_near_invalid_address");let V=await H();if(X.isGasAsset===!1){let D=X.address;if(!D)throw new Z.SwapKitError("toolbox_near_missing_contract_address");let U=X.getBaseValue("string");return e({args:{amount:U,memo:x.memo,receiver_id:Q},contractId:D,methodName:"ft_transfer"})}try{let D=X.getBaseValue("string");return(await V.transfer({amount:D,receiverId:Q})).transaction_outcome.id}catch(D){throw new Z.SwapKitError("toolbox_near_transfer_failed",{error:D})}}async function H1(x){let{recipient:Q,assetValue:X,memo:M,feeRate:V,attachedDeposit:D,sender:U}=x,w=await E();if(!w(Q))throw new Z.SwapKitError("toolbox_near_invalid_address",{address:Q});if(!w(U))throw new Z.SwapKitError("toolbox_near_invalid_address",{address:U});if(!X.isGasAsset){let W1=X.address;if(!W1)throw new Z.SwapKitError("toolbox_near_missing_contract_address");return t({args:{amount:X.getBaseValue("string"),memo:M||null,receiver_id:Q},attachedDeposit:"1",contractId:W1,gas:V.toString()||"100000000000000",methodName:"ft_transfer",sender:U})}let{publicKey:B,nonce:_}=await b(z,U),G=X.getBaseValue("bigint"),{SCHEMA:K}=await import("near-api-js/lib/transaction"),{transactions:k,utils:A}=await import("near-api-js"),a=[k.transfer(G)];if(M&&D)a.push(k.functionCall("memo",{memo:M},BigInt(V),BigInt(D)));let F1=await z.block({finality:"final"}),q1=A.serialize.base_decode(F1.header.hash),_1=k.createTransaction(U,B,Q,_,a,q1),k1=A.serialize.serialize(K.Transaction,_1),T1=Buffer.from(k1).toString("base64");return{details:{blockHash:A.serialize.base_encode(q1),nonce:_,signerId:U},publicKey:B.toString(),serialized:T1}}async function t(x){let{sender:Q}=x,{publicKey:X,nonce:M}=await b(z,Q),{SCHEMA:V}=await import("near-api-js/lib/transaction"),{transactions:D,utils:U}=await import("near-api-js"),w=await z.block({finality:"final"}),B=U.serialize.base_decode(w.header.hash),_=[D.functionCall(x.methodName,Buffer.from(JSON.stringify(x.args)),BigInt(x.gas),BigInt(x.attachedDeposit))],G=D.createTransaction(Q,X,x.contractId,M,_,B),K=U.serialize.serialize(V.Transaction,G),k=Buffer.from(K).toString("base64");return{details:{blockHash:U.serialize.base_encode(B),methodName:x.methodName,nonce:M,receiverId:x.contractId,signerId:Q},publicKey:X.toString(),serialized:k}}async function M1(x){if(!$)throw new Z.SwapKitError("toolbox_near_no_signer");let[Q,X]=await $.signTransaction(x);return X}async function R1(x){return(await z.sendTransaction(x)).transaction.hash}async function f1(x){if("assetValue"in x){let V=BigInt("115123062500")+BigInt("108059500000"),D=await V1(),U=V*BigInt(D.toString());return Z.AssetValue.from({chain:Z.Chain.Near,fromBaseDecimal:Z.BaseDecimal[Z.Chain.Near],value:U.toString()})}let Q=$?await H():void 0;return C(x,Q)}async function V1(){try{return await z.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function B1(x,Q,X){if(!$)throw new Z.SwapKitError("toolbox_near_no_signer");let M=await H(),{utils:V}=await import("near-api-js"),D=V.format.parseNearAmount(X)||"0";return(await M.createAccount(x,V.PublicKey.fromString(Q),BigInt(D))).transaction.hash}async function e(x){try{if(!$)throw new Z.SwapKitError("toolbox_near_no_signer");let{transactions:Q}=await import("near-api-js"),{contractId:X,methodName:M,args:V,deposit:D}=x,U=await H(),w=await C({args:V||{},contractId:X,methodName:M}),B=Q.functionCall(M,V||{},w.getBaseValue("bigint"),BigInt(D||"0"));return(await U.signAndSendTransaction({actions:[B],receiverId:X})).transaction_outcome.id}catch(Q){throw new Z.SwapKitError("toolbox_near_transfer_failed",{error:Q})}}async function j1(x){let Q=await H();return P({account:Q,changeMethods:x.changeMethods,contractId:x.contractId,viewMethods:x.viewMethods})}async function O1(x){if(!$)throw new Z.SwapKitError("toolbox_near_no_signer");if(x.actions.length===0)throw new Z.SwapKitError("toolbox_near_empty_batch");return(await(await H()).signAndSendTransaction({actions:x.actions,receiverId:x.receiverId})).transaction.hash}async function w1(x){let Q=await H();return n({account:Q,contractId:x})}async function C(x,Q){let X=await J(x).when(S,()=>f.SIMPLE_TRANSFER).when(g,(U)=>o(U.methodName)).when(l,(U)=>d(U.actions)).when(u,()=>f.ACCOUNT_CREATION).when(m,()=>f.CONTRACT_DEPLOYMENT).when(p,(U)=>{if(!Q)throw new Z.SwapKitError("toolbox_near_no_account");return U.customEstimator(Q)}).otherwise(()=>{throw new Z.SwapKitError("toolbox_near_invalid_gas_params")}),M=await r(),D=BigInt(X)*BigInt(1000000000000)*BigInt(M);return Z.AssetValue.from({chain:Z.Chain.Near,fromBaseDecimal:Z.BaseDecimal[Z.Chain.Near],value:D})}async function r(){try{return(await z.gasPrice(null)).gas_price||"100000000"}catch(x){return"100000000"}}return{broadcastTransaction:R1,callFunction:e,createContract:j1,createContractFunctionCall:t,createSubAccount:B1,createTransaction:H1,estimateGas:C,estimateTransactionFee:f1,executeBatchTransaction:O1,getAddress:O,getBalance:U1(Z.Chain.Near),getGasPrice:r,getPublicKey:async()=>$?(await $.getPublicKey()).toString():"",getSignerFromPhrase:(x)=>v(x),getSignerFromPrivateKey:I,nep141:w1,provider:z,signTransaction:M1,transfer:D1,validateAddress:await E()}}var Z;var s=F(()=>{Z=require("@swapkit/helpers");Y1();h();i()});var z1=F(()=>{s()});var A1={};P1(A1,{tgasToGas:()=>y1,isSimpleTransfer:()=>S,isCustomEstimator:()=>p,isContractDeployment:()=>m,isContractCall:()=>g,isBatchTransaction:()=>l,isAccountCreation:()=>u,getValidateNearAddress:()=>E,getNearToolbox:()=>K1,getNearSignerFromPrivateKey:()=>I,getNearSignerFromPhrase:()=>v,getFullAccessPublicKey:()=>b,getContractMethodGas:()=>o,gasToTGas:()=>C1,estimateBatchGas:()=>d,createNearContract:()=>P,createNEP141Token:()=>n,GAS_COSTS:()=>f});module.exports=b1(A1);var I1=F(()=>{h();i();s();z1()});I1();
|
|
1
|
+
var bn=Object.create;var{getPrototypeOf:an,defineProperty:S,getOwnPropertyNames:d,getOwnPropertyDescriptor:Un}=Object,c=Object.prototype.hasOwnProperty;var E=(n,r,i)=>{i=n!=null?bn(an(n)):{};let o=r||!n||!n.__esModule?S(i,"default",{value:n,enumerable:!0}):i;for(let m of d(n))if(!c.call(o,m))S(o,m,{get:()=>n[m],enumerable:!0});return o},K=new WeakMap,Yn=(n)=>{var r=K.get(n),i;if(r)return r;if(r=S({},"__esModule",{value:!0}),n&&typeof n==="object"||typeof n==="function")d(n).map((o)=>!c.call(r,o)&&S(r,o,{get:()=>n[o],enumerable:!(i=Un(n,o))||i.enumerable}));return K.set(n,r),r};var qn=(n,r)=>{for(var i in r)S(n,i,{get:r[i],enumerable:!0,configurable:!0,set:(o)=>r[i]=()=>o})};var D=(n,r)=>()=>(n&&(r=n(n=0)),r);async function G(){let{validateAccountId:n}=await import("near-sdk-js");return(r)=>{try{return n(r)}catch{let i=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return r.length>=2&&r.length<=64&&i.test(r)}}}async function a(n){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:i}=await import("near-api-js"),o=n.index||0,m=n.derivationPath?b.derivationPathToString(n.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:P}=r(n.phrase,m),N=i.fromString(P);return rn(N)}async function M(n){let{KeyPair:r}=await import("near-api-js/lib/utils"),i=r.fromString(n);return rn(i)}function rn(n){return new tn(n)}async function U(n,r){let o=(await n.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((O)=>O.access_key.permission==="FullAccess");if(!o)throw new b.SwapKitError("toolbox_near_invalid_address");let{utils:m}=await import("near-api-js"),P=m.PublicKey.fromString(o.public_key);return{nonce:o.access_key.nonce||0,publicKey:P}}var b,nn,tn;var Q=D(()=>{b=require("@swapkit/helpers"),nn=require("near-api-js");tn=class tn extends nn.KeyPairSigner{#n;constructor(n){super(n);this.#n=n}getAddress(){let n=this.#n.getPublicKey(),r=Buffer.from(n.data).toString("hex");return Promise.resolve(r)}}});function Z(n){return"recipient"in n&&"amount"in n&&!("contractId"in n)}function $(n){return"contractId"in n&&"methodName"in n}function p(n){return"actions"in n}function z(n){return"newAccountId"in n}function X(n){return"contractCode"in n}function H(n){return"customEstimator"in n}function k(n){let r=0;for(let i of n)switch(i.enum){case"transfer":r+=Number(_.SIMPLE_TRANSFER);break;case"functionCall":r+=Number(_.CONTRACT_CALL);break;case"createAccount":r+=Number(_.ACCOUNT_CREATION);break;case"deployContract":r+=Number(_.CONTRACT_DEPLOYMENT);break;case"addKey":r+=Number(_.ACCESS_KEY_ADDITION);break;case"deleteKey":r+=Number(_.ACCESS_KEY_DELETION);break;case"stake":r+=Number(_.STAKE);break;default:r+=Number(_.CONTRACT_CALL)}return r.toString()}function V(n){if(n==="ft_transfer"||n==="ft_transfer_call")return _.TOKEN_TRANSFER;if(n==="storage_deposit")return _.STORAGE_DEPOSIT;return _.CONTRACT_CALL}function Fn(n){return(BigInt(n)*BigInt(1000000000000)).toString()}function Jn(n){return(BigInt(n)/BigInt(1000000000000)).toString()}var _;var w=D(()=>{_={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 Y({account:n,contractId:r,viewMethods:i,changeMethods:o}){let{Contract:m}=await import("near-api-js");return new m(n,r,{changeMethods:o,useLocalViewExecution:!0,viewMethods:i})}async function j({contractId:n,account:r}){let i=(await import("bn.js")).default,o=await Y({account:r,changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"],contractId:n,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"]}),m=async(P)=>{if(!await o.storage_balance_of({account_id:P})){let A=(await o.storage_balance_bounds())?.min||"1250000000000000000000";await o.storage_deposit({account_id:P},new i("100000000000000"),new i(A))}};return{balanceOf:(P)=>o.ft_balance_of({account_id:P}),contract:o,ensureStorage:m,metadata:()=>o.ft_metadata(),storageBalanceOf:(P)=>o.storage_balance_of({account_id:P}),storageDeposit:(P,N)=>o.storage_deposit({account_id:P},new i("100000000000000"),new i(N||"1250000000000000000000")),totalSupply:()=>o.ft_total_supply(),transfer:async(P,N,O)=>{return await m(P),o.ft_transfer({amount:N,memo:O,receiver_id:P},new i("100000000000000"),new i("1"))},transferCall:async(P,N,O,A)=>{return await m(P),o.ft_transfer_call({amount:N,memo:A,msg:O,receiver_id:P},new i("100000000000000"),new i("1"))}}}function Xn(){function n(){let r=Date.now(),i=h||r;return h=i,r>h?r:i+1}return Wn+n().toString(36)}function on(n){return async function(i,o=!0){let m=await Tn.SwapKitApi.getChainBalance({address:i,chain:n,scamFilter:o}),{baseDecimal:P}=q.getChainConfig(n);return m.map(({identifier:N,value:O,decimal:A})=>{return new q.AssetValue({decimal:A||P,identifier:N,value:O})})}}var q,Tn,Wn,h=0;var en=D(()=>{q=require("@swapkit/helpers"),Tn=require("@swapkit/helpers/api"),Wn=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function Bn(n){let{P:r,match:i}=await import("ts-pattern"),{providers:o}=await import("near-api-js"),m=await i(n).with({phrase:r.string},async(t)=>{return await a(t)}).with({signer:r.any},({signer:t})=>t).otherwise(()=>{return}),P=await e.getRPCUrl(e.Chain.Near),N=new o.JsonRpcProvider({url:P});async function O(t){let{Account:T}=await import("near-api-js"),f=t||await A();return new T(f,N,m)}async function A(){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");return await m.getAddress()}async function fn(t){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");let{recipient:T,assetValue:f}=t;if(!(await G())(T))throw new e.SwapKitError("toolbox_near_invalid_address");let s=await O();if(f.isGasAsset===!1){let g=f.address;if(!g)throw new e.SwapKitError("toolbox_near_missing_contract_address");let x=f.getBaseValue("string");return v({args:{amount:x,memo:t.memo,receiver_id:T},contractId:g,methodName:"ft_transfer"})}try{let g=f.getBaseValue("string");return(await s.transfer({amount:g,receiverId:T})).transaction_outcome.id}catch(g){throw new e.SwapKitError("toolbox_near_transfer_failed",{error:g})}}async function gn(t){let{recipient:T,assetValue:f,memo:C,attachedDeposit:s,sender:g,functionCall:x}=t,y=await G();if(!y(T))throw new e.SwapKitError("toolbox_near_invalid_address",{recipient:T});if(!y(g))throw new e.SwapKitError("toolbox_near_invalid_address",{signerId:g});if(x)return F({...x,sender:g});if(!f.isGasAsset){let I=f.address;if(!I)throw new e.SwapKitError("toolbox_near_missing_contract_address");return F({args:{amount:f.getBaseValue("string"),memo:C||null,receiver_id:T},attachedDeposit:s||"1",contractId:I,gas:"250000000000000",methodName:"ft_transfer",sender:g})}let{publicKey:L,nonce:W}=await U(N,g),Dn=f.getBaseValue("bigint"),{transactions:B,utils:Ln}=await import("near-api-js"),u=[B.transfer(Dn)];if(C&&s)u.push(B.functionCall("memo",{memo:C},BigInt("250000000000000"),BigInt(s)));let Sn=await N.block({finality:"final"}),Gn=Ln.serialize.base_decode(Sn.header.hash);return B.createTransaction(g,L,T,W+1,u,Gn)}async function Pn(t){let{SCHEMA:T}=await import("near-api-js/lib/transaction"),{utils:f}=await import("near-api-js"),C=f.serialize.serialize(T.Transaction,t);return Buffer.from(C).toString("base64")}async function F(t){let{sender:T}=t,{publicKey:f,nonce:C}=await U(N,T),{transactions:s,utils:g}=await import("near-api-js"),x=await N.block({finality:"final"}),y=g.serialize.base_decode(x.header.hash),L=[s.functionCall(t.methodName,Buffer.from(JSON.stringify(t.args)),BigInt(t.gas),BigInt(t.attachedDeposit))];return s.createTransaction(T,f,t.contractId,C+1,L,y)}async function Nn(t){let{transactions:T}=await import("near-api-js");return T.functionCall(t.methodName,Buffer.from(JSON.stringify(t.args)),BigInt(t.gas),BigInt(t.attachedDeposit))}async function xn(t){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");let[T,f]=await m.signTransaction(t);return f}async function Cn(t){return(await N.sendTransaction(t)).transaction.hash}async function sn(t){if("assetValue"in t){let s=BigInt("115123062500")+BigInt("108059500000"),g=await En(),x=s*BigInt(g.toString()),{baseDecimal:y}=e.getChainConfig(e.Chain.Near);return e.AssetValue.from({chain:e.Chain.Near,fromBaseDecimal:y,value:x.toString()})}let T=m?await O():void 0;return J(t,T)}async function En(){try{return await N.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function On(t,T,f){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");let C=await O(),{utils:s}=await import("near-api-js"),g=s.format.parseNearAmount(f)||"0";return(await C.createAccount(t,s.PublicKey.fromString(T),BigInt(g))).transaction.hash}async function v(t){try{if(!m)throw new e.SwapKitError("toolbox_near_no_signer");let{transactions:T}=await import("near-api-js"),{contractId:f,methodName:C,args:s,deposit:g}=t,x=await O(),y=await J({args:s||{},contractId:f,methodName:C}),L=T.functionCall(C,s||{},y.getBaseValue("bigint"),BigInt(g||"1"));return(await x.signAndSendTransaction({actions:[L],receiverId:f})).transaction_outcome.id}catch(T){throw new e.SwapKitError("toolbox_near_transfer_failed",{error:T})}}async function _n(t){let T=await O();return Y({account:T,changeMethods:t.changeMethods,contractId:t.contractId,viewMethods:t.viewMethods})}async function An(t){if(!m)throw new e.SwapKitError("toolbox_near_no_signer");if(t.actions.length===0)throw new e.SwapKitError("toolbox_near_empty_batch");return(await(await O()).signAndSendTransaction({actions:t.actions,receiverId:t.receiverId})).transaction.hash}async function yn(t){let T=await O();return j({account:T,contractId:t})}async function J(t,T){let{baseDecimal:f}=e.getChainConfig(e.Chain.Near),C=await i(t).when(Z,()=>_.SIMPLE_TRANSFER).when($,(x)=>V(x.methodName)).when(p,(x)=>k(x.actions)).when(z,()=>_.ACCOUNT_CREATION).when(X,()=>_.CONTRACT_DEPLOYMENT).when(H,(x)=>{if(!T)throw new e.SwapKitError("toolbox_near_no_account");return x.customEstimator(T)}).otherwise(()=>{throw new e.SwapKitError("toolbox_near_invalid_gas_params")}),g=BigInt(C)*BigInt(1000000000000);return e.AssetValue.from({chain:e.Chain.Near,fromBaseDecimal:f,value:g})}async function Rn(){try{return(await N.gasPrice(null)).gas_price||"100000000"}catch(t){return"100000000"}}return{broadcastTransaction:Cn,callFunction:v,createAction:Nn,createContract:_n,createContractFunctionCall:F,createSubAccount:On,createTransaction:gn,estimateGas:J,estimateTransactionFee:sn,executeBatchTransaction:An,getAddress:A,getBalance:on(e.Chain.Near),getGasPrice:Rn,getPublicKey:async()=>m?(await m.getPublicKey()).toString():"",getSignerFromPhrase:(t)=>a(t),getSignerFromPrivateKey:M,nep141:yn,provider:N,serializeTransaction:Pn,signTransaction:xn,transfer:fn,validateAddress:await G()}}var e;var l=D(()=>{e=require("@swapkit/helpers");en();Q();w()});var mn=D(()=>{l()});var Mn={};qn(Mn,{tgasToGas:()=>Fn,isSimpleTransfer:()=>Z,isCustomEstimator:()=>H,isContractDeployment:()=>X,isContractCall:()=>$,isBatchTransaction:()=>p,isAccountCreation:()=>z,getValidateNearAddress:()=>G,getNearToolbox:()=>Bn,getNearSignerFromPrivateKey:()=>M,getNearSignerFromPhrase:()=>a,getFullAccessPublicKey:()=>U,getContractMethodGas:()=>V,gasToTGas:()=>Jn,estimateBatchGas:()=>k,createNearContract:()=>Y,createNEP141Token:()=>j,GAS_COSTS:()=>_});module.exports=Yn(Mn);var Qn=D(()=>{Q();w();l();mn()});Qn();
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=A423ECE9DBBB731E64756E2164756E21
|
|
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
|
-
"import type { Provider } from \"@near-js/providers\";\nimport { type DerivationPathArray, derivationPathToString, SwapKitError } from \"@swapkit/helpers\";\nimport { type KeyPair, KeyPairSigner } from \"near-api-js\";\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-api-js\");\n\n
|
|
6
|
-
"import type { Account } from \"near-api-js\";\nimport type { NearGasEstimateParams } from \"../types/contract\";\n\
|
|
5
|
+
"import type { Provider } from \"@near-js/providers\";\nimport { type DerivationPathArray, derivationPathToString, SwapKitError } from \"@swapkit/helpers\";\nimport { type KeyPair, KeyPairSigner } from \"near-api-js\";\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-api-js\");\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-api-js/lib/utils\");\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 SwapKitError(\"toolbox_near_invalid_address\");\n }\n\n const { utils } = await import(\"near-api-js\");\n const publicKey = utils.PublicKey.fromString(fullAccessKey.public_key);\n const nonce = (fullAccessKey.access_key.nonce as number) || 0;\n\n return { nonce, publicKey };\n}\n",
|
|
6
|
+
"import type { Account } from \"near-api-js\";\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-api-js\";\n\nconst DEFAULT_STORAGE_DEPOSIT = \"1250000000000000000000\"; // 0.00125 NEAR\n\n// NEP-141 metadata interface\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\n// Storage balance response\nexport interface StorageBalance {\n total: string;\n available: string;\n}\n\n// Storage balance bounds\nexport interface StorageBalanceBounds {\n min: string;\n max?: string;\n}\n\n// BN.js is dynamically imported, but we need the type\n// Using any here is acceptable as BN.js doesn't export proper TypeScript types\ntype BN = any; // BN.js instance\n\n// Define NEP-141 contract interface\nexport interface NEP141Contract extends Contract {\n // View methods\n ft_balance_of(args: { account_id: string }): Promise<string>;\n ft_total_supply(): Promise<string>;\n ft_metadata(): Promise<NEP141Metadata>;\n storage_balance_of(args: { account_id: string }): Promise<StorageBalance | null>;\n storage_balance_bounds(): Promise<StorageBalanceBounds>;\n\n // Change methods\n ft_transfer(args: { receiver_id: string; amount: string; memo?: string }, gas: BN, deposit: BN): Promise<void>;\n ft_transfer_call(\n args: { receiver_id: string; amount: string; msg: string; memo?: string },\n gas: BN,\n deposit: BN,\n ): Promise<void>;\n storage_deposit(\n args: { account_id?: string; registration_only?: boolean },\n gas: BN,\n deposit: BN,\n ): Promise<StorageBalance>;\n storage_withdraw(args: { amount?: string }, gas: BN, deposit?: BN): Promise<StorageBalance>;\n storage_unregister(force?: boolean, gas?: BN): Promise<boolean>;\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: NEP141Contract;\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}): Promise<T> {\n const { Contract } = await import(\"near-api-js\");\n\n return new Contract(account, contractId, {\n changeMethods,\n useLocalViewExecution: true, // Enable local view execution for efficiency\n viewMethods,\n }) as T;\n}\n\nexport async function createNEP141Token({\n contractId,\n account,\n}: {\n contractId: string;\n account: Account;\n}): Promise<NEP141Token> {\n const BN = (await import(\"bn.js\")).default;\n\n const contract = await createNearContract<NEP141Contract>({\n account,\n changeMethods: [\"ft_transfer\", \"ft_transfer_call\", \"storage_deposit\", \"storage_withdraw\", \"storage_unregister\"],\n contractId,\n viewMethods: [\"ft_balance_of\", \"ft_total_supply\", \"ft_metadata\", \"storage_balance_of\", \"storage_balance_bounds\"],\n });\n\n // Helper to ensure storage before transfers\n const ensureStorageFor = async (accountId: string) => {\n const balance = await contract.storage_balance_of({ account_id: accountId });\n if (!balance) {\n // Get minimum storage requirement\n const bounds = await contract.storage_balance_bounds();\n const deposit = bounds?.min || DEFAULT_STORAGE_DEPOSIT;\n\n await contract.storage_deposit(\n { account_id: accountId },\n new BN(\"100000000000000\"), // 100 TGas\n new BN(deposit),\n );\n }\n };\n\n return {\n balanceOf: (accountId: string) => contract.ft_balance_of({ account_id: accountId }),\n\n // Raw contract access for advanced use cases\n contract,\n\n ensureStorage: ensureStorageFor,\n\n metadata: () => contract.ft_metadata(),\n\n storageBalanceOf: (accountId: string) => contract.storage_balance_of({ account_id: accountId }),\n\n storageDeposit: (accountId?: string, amount?: string) =>\n contract.storage_deposit(\n { account_id: accountId },\n new BN(\"100000000000000\"),\n new BN(amount || DEFAULT_STORAGE_DEPOSIT),\n ),\n\n totalSupply: () => contract.ft_total_supply(),\n transfer: async (receiverId: string, amount: string, memo?: string) => {\n // Ensure recipient has storage before transfer\n await ensureStorageFor(receiverId);\n\n return contract.ft_transfer(\n { amount, memo, receiver_id: receiverId },\n new BN(\"100000000000000\"), // 100 TGas\n new BN(\"1\"), // 1 yoctoNEAR for security\n );\n },\n\n transferCall: async (receiverId: string, amount: string, msg: string, memo?: string) => {\n // Ensure recipient has storage before transfer\n await ensureStorageFor(receiverId);\n\n return contract.ft_transfer_call(\n { amount, memo, msg, receiver_id: receiverId },\n new BN(\"100000000000000\"), // 100 TGas\n new BN(\"1\"), // 1 yoctoNEAR for security\n );\n },\n };\n}\n",
|
|
8
|
-
"import { AssetValue,
|
|
9
|
-
"import { AssetValue, BaseDecimal, Chain, getRPCUrl, SwapKitError } from \"@swapkit/helpers\";\nimport type { Account, Contract } from \"near-api-js\";\nimport type { SignedTransaction, Transaction } from \"near-api-js/lib/transaction\";\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 { createNEP141Token, 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 {\n BatchTransaction,\n ContractFunctionCallParams,\n GetSignerFromPhraseParams,\n NearToolbox,\n SerializedTransaction,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams): Promise<NearToolbox> {\n const { P, match } = await import(\"ts-pattern\");\n const { providers } = await import(\"near-api-js\");\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 providers.JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"near-api-js\");\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 SwapKitError(\"toolbox_near_no_signer\");\n }\n const address = await signer.getAddress();\n return address;\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { recipient, assetValue } = params;\n\n const nearValidateAddress = await getValidateNearAddress();\n\n if (!nearValidateAddress(recipient)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\");\n }\n\n const account = await getAccount();\n\n if (assetValue.isGasAsset === false) {\n // NEP-141 token transfer\n const contractId = assetValue.address;\n if (!contractId) {\n throw new SwapKitError(\"toolbox_near_missing_contract_address\");\n }\n\n const amount = assetValue.getBaseValue(\"string\");\n\n return callFunction({\n args: { amount, memo: params.memo, receiver_id: recipient },\n contractId,\n methodName: \"ft_transfer\",\n });\n }\n\n try {\n const transferAmount = assetValue.getBaseValue(\"string\");\n\n const result = await account.transfer({ amount: transferAmount, receiverId: recipient });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new SwapKitError(\"toolbox_near_transfer_failed\", { error });\n }\n }\n\n async function createTransaction(params: NearCreateTransactionParams): Promise<SerializedTransaction> {\n const { recipient, assetValue, memo, feeRate: gas, attachedDeposit, sender: signerId } = params;\n const validateNearAddress = await getValidateNearAddress();\n\n if (!validateNearAddress(recipient)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\", { address: recipient });\n }\n\n if (!validateNearAddress(signerId)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\", { address: signerId });\n }\n\n // Handle NEP-141 token transfers\n if (!assetValue.isGasAsset) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new SwapKitError(\"toolbox_near_missing_contract_address\");\n }\n\n return createContractFunctionCall({\n args: { amount: assetValue.getBaseValue(\"string\"), memo: memo || null, receiver_id: recipient },\n attachedDeposit: \"1\", // 1 yoctoNEAR required for NEP-141 transfers\n contractId,\n gas: gas.toString() || \"100000000000000\", // 100 TGas default\n methodName: \"ft_transfer\",\n sender: signerId,\n });\n }\n\n // Native NEAR transfer\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, signerId);\n const baseAmount = assetValue.getBaseValue(\"bigint\");\n\n const { SCHEMA } = await import(\"near-api-js/lib/transaction\");\n const { transactions, utils } = await import(\"near-api-js\");\n\n const txActions = [transactions.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(transactions.functionCall(\"memo\", { memo }, BigInt(gas), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n const transaction = transactions.createTransaction(signerId, publicKey, recipient, nonce, txActions, blockHash);\n\n const serializedTx = utils.serialize.serialize(SCHEMA.Transaction, transaction);\n const serializedBase64 = Buffer.from(serializedTx).toString(\"base64\");\n\n return {\n details: { blockHash: utils.serialize.base_encode(blockHash), nonce: nonce, signerId },\n publicKey: publicKey.toString(),\n serialized: serializedBase64,\n };\n }\n\n async function createContractFunctionCall(params: ContractFunctionCallParams): Promise<SerializedTransaction> {\n const { sender: accountId } = params;\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, accountId);\n\n const { SCHEMA } = await import(\"near-api-js/lib/transaction\");\n const { transactions, utils } = await import(\"near-api-js\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n const actions = [\n transactions.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 = transactions.createTransaction(\n accountId,\n publicKey,\n params.contractId,\n nonce,\n actions,\n blockHash,\n );\n\n const serializedTx = utils.serialize.serialize(SCHEMA.Transaction, transaction);\n const serializedBase64 = Buffer.from(serializedTx).toString(\"base64\");\n\n return {\n details: {\n blockHash: utils.serialize.base_encode(blockHash),\n methodName: params.methodName,\n nonce: nonce,\n receiverId: params.contractId,\n signerId: accountId,\n },\n publicKey: publicKey.toString(),\n serialized: serializedBase64,\n };\n }\n\n async function signTransaction(transaction: Transaction): Promise<SignedTransaction> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n // Use the new signer interface method\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 estimateTransactionFee(params: NearTransferParams | NearGasEstimateParams) {\n if (\"assetValue\" in params) {\n const baseTransferCost = \"115123062500\"; // gas units for transfer\n const receiptCreationCost = \"108059500000\"; // gas units for receipt\n\n const totalGasUnits = BigInt(baseTransferCost) + BigInt(receiptCreationCost);\n\n const gasPrice = await getCurrentGasPrice();\n\n // NEAR doesn't support fee multipliers - gas price is fixed by the network\n const totalCostYocto = totalGasUnits * BigInt(gasPrice.toString());\n\n return AssetValue.from({\n chain: Chain.Near,\n fromBaseDecimal: BaseDecimal[Chain.Near],\n value: totalCostYocto.toString(),\n });\n }\n\n // Handle new gas estimation params\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 SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const account = await getAccount();\n const { utils } = await import(\"near-api-js\");\n\n const balanceInYocto = utils.format.parseNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(\n subAccountId,\n utils.PublicKey.fromString(publicKey),\n BigInt(balanceInYocto),\n );\n\n return result.transaction.hash;\n }\n\n async function callFunction(params: NearFunctionCallParams): Promise<string> {\n try {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { transactions } = await import(\"near-api-js\");\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 = transactions.functionCall(\n methodName,\n args || {},\n estimatedGas.getBaseValue(\"bigint\"),\n BigInt(deposit || \"0\"),\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 SwapKitError(\"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 SwapKitError(\"toolbox_near_no_signer\");\n }\n\n if (batch.actions.length === 0) {\n throw new SwapKitError(\"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 nep141(contractId: string) {\n const account = await getAccount();\n return createNEP141Token({ account, contractId });\n }\n\n async function estimateGas(params: NearGasEstimateParams, account?: Account) {\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 SwapKitError(\"toolbox_near_no_account\");\n }\n return p.customEstimator(account);\n })\n .otherwise(() => {\n throw new SwapKitError(\"toolbox_near_invalid_gas_params\");\n });\n\n // Convert TGas to gas price in NEAR\n const gasPrice = await getGasPrice();\n const gasInUnits = BigInt(gasInTGas) * BigInt(10 ** 12); // Convert TGas to gas units\n const costInYoctoNear = gasInUnits * BigInt(gasPrice);\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: BaseDecimal[Chain.Near], 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 (_error) {\n // Fallback to default\n return \"100000000\";\n }\n }\n\n return {\n broadcastTransaction,\n callFunction,\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 nep141,\n provider,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
|
|
10
|
-
"import type {\n ChainSigner,\n DerivationPathArray,\n GenericCreateTransactionParams,\n GenericTransferParams,\n} from \"@swapkit/helpers\";\nimport type { KeyPairSigner, Signer, transactions } from \"near-api-js\";\n\ninterface NearKeyPairSigner\n extends KeyPairSigner,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\ninterface NearGeneralSigner\n extends Signer,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\
|
|
8
|
+
"import { AssetValue, type Chain, getChainConfig } from \"@swapkit/helpers\";\nimport { SwapKitApi } from \"@swapkit/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 SwapKitApi.getChainBalance({ address, chain, scamFilter });\n const { baseDecimal } = getChainConfig(chain);\n return balances.map(({ identifier, value, decimal }) => {\n return new AssetValue({ decimal: decimal || baseDecimal, identifier, value });\n });\n };\n}\n",
|
|
9
|
+
"import { AssetValue, Chain, getChainConfig, getRPCUrl, SwapKitError } from \"@swapkit/helpers\";\nimport type { Account, Contract } from \"near-api-js\";\nimport type { SignedTransaction, Transaction } from \"near-api-js/lib/transaction\";\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 { createNEP141Token, 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 {\n BatchTransaction,\n ContractFunctionCallParams,\n CreateActionParams,\n GetSignerFromPhraseParams,\n NearToolbox,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams): Promise<NearToolbox> {\n const { P, match } = await import(\"ts-pattern\");\n const { providers } = await import(\"near-api-js\");\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 providers.JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"near-api-js\");\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 SwapKitError(\"toolbox_near_no_signer\");\n }\n const address = await signer.getAddress();\n return address;\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { recipient, assetValue } = params;\n\n const nearValidateAddress = await getValidateNearAddress();\n\n if (!nearValidateAddress(recipient)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\");\n }\n\n const account = await getAccount();\n\n if (assetValue.isGasAsset === false) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new SwapKitError(\"toolbox_near_missing_contract_address\");\n }\n\n const amount = assetValue.getBaseValue(\"string\");\n\n return callFunction({\n args: { amount, memo: params.memo, receiver_id: recipient },\n contractId,\n methodName: \"ft_transfer\",\n });\n }\n\n try {\n const transferAmount = assetValue.getBaseValue(\"string\");\n\n const result = await account.transfer({ amount: transferAmount, receiverId: recipient });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new SwapKitError(\"toolbox_near_transfer_failed\", { error });\n }\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 SwapKitError(\"toolbox_near_invalid_address\", { recipient: recipient });\n }\n\n if (!validateNearAddress(signerId)) {\n throw new SwapKitError(\"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 SwapKitError(\"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 { transactions, utils } = await import(\"near-api-js\");\n\n const txActions = [transactions.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(transactions.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n return transactions.createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n async function serializeTransaction(transaction: Transaction) {\n const { SCHEMA } = await import(\"near-api-js/lib/transaction\");\n const { utils } = await import(\"near-api-js\");\n\n const serializedTx = utils.serialize.serialize(SCHEMA.Transaction, transaction);\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 { transactions, utils } = await import(\"near-api-js\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n const actions = [\n transactions.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 = transactions.createTransaction(\n accountId,\n publicKey,\n params.contractId,\n nonce + 1,\n actions,\n blockHash,\n );\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { transactions } = await import(\"near-api-js\");\n\n const action = transactions.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 SwapKitError(\"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 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 SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const account = await getAccount();\n const { utils } = await import(\"near-api-js\");\n\n const balanceInYocto = utils.format.parseNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(\n subAccountId,\n utils.PublicKey.fromString(publicKey),\n BigInt(balanceInYocto),\n );\n\n return result.transaction.hash;\n }\n\n async function callFunction(params: NearFunctionCallParams): Promise<string> {\n try {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { transactions } = await import(\"near-api-js\");\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 = transactions.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 SwapKitError(\"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 SwapKitError(\"toolbox_near_no_signer\");\n }\n\n if (batch.actions.length === 0) {\n throw new SwapKitError(\"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 nep141(contractId: string) {\n const account = await getAccount();\n return createNEP141Token({ account, contractId });\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 SwapKitError(\"toolbox_near_no_account\");\n }\n return p.customEstimator(account);\n })\n .otherwise(() => {\n throw new SwapKitError(\"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 (_error) {\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 nep141,\n provider,\n serializeTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
|
|
10
|
+
"import type {\n ChainSigner,\n DerivationPathArray,\n GenericCreateTransactionParams,\n GenericTransferParams,\n} from \"@swapkit/helpers\";\nimport type { KeyPairSigner, Signer, transactions } from \"near-api-js\";\n\ninterface NearKeyPairSigner\n extends KeyPairSigner,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\ninterface NearGeneralSigner\n extends Signer,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\nexport type NearSigner = NearKeyPairSigner | NearGeneralSigner;\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 GenericCreateTransactionParams {\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 NEP141Contract,\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": "A423ECE9DBBB731E64756E2164756E21",
|
|
15
15
|
"names": []
|
|
16
16
|
}
|
package/dist/src/near/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _1=Object.create;var{getPrototypeOf:k1,defineProperty:A,getOwnPropertyNames:T1}=Object;var E1=Object.prototype.hasOwnProperty;var M=(q,x,J)=>{J=q!=null?_1(k1(q)):{};let Q=x||!q||!q.__esModule?A(J,"default",{value:q,enumerable:!0}):J;for(let Z of T1(q))if(!E1.call(Q,Z))A(Q,Z,{get:()=>q[Z],enumerable:!0});return Q};var N1=(q,x)=>{for(var J in x)A(q,J,{get:x[J],enumerable:!0,configurable:!0,set:(Q)=>x[J]=()=>Q})};var _=(q,x)=>()=>(q&&(x=q(q=0)),x);var R=((q)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(q,{get:(x,J)=>(typeof require<"u"?require:x)[J]}):q)(function(q){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+q+'" is not supported')});import{derivationPathToString as v1,SwapKitError as b1}from"@swapkit/helpers";import{KeyPairSigner as P1}from"near-api-js";async function N(){let{validateAccountId:q}=await import("near-sdk-js");return(x)=>{try{return q(x)}catch{let J=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return x.length>=2&&x.length<=64&&J.test(x)}}}async function v(q){let{parseSeedPhrase:x}=await import("near-seed-phrase"),{KeyPair:J}=await import("near-api-js"),Q=q.index||0,Z=q.derivationPath?v1(q.derivationPath.slice(0,3)):`m/44'/397'/${Q}'`,{secretKey:U}=x(q.phrase,Z),Y=J.fromString(U);return J1(Y)}async function I(q){let{KeyPair:x}=await import("near-api-js/lib/utils"),J=x.fromString(q);return J1(J)}function J1(q){return new x1(q)}async function b(q,x){let Q=(await q.query({account_id:x,finality:"final",request_type:"view_access_key_list"})).keys.find((D)=>D.access_key.permission==="FullAccess");if(!Q)throw new b1("toolbox_near_invalid_address");let{utils:Z}=await import("near-api-js"),U=Z.PublicKey.fromString(Q.public_key);return{nonce:Q.access_key.nonce||0,publicKey:U}}var x1;var h=_(()=>{x1=class x1 extends P1{#q;constructor(q){super(q);this.#q=q}getAddress(){let q=this.#q.getPublicKey(),x=Buffer.from(q.data).toString("hex");return Promise.resolve(x)}}});function S(q){return"recipient"in q&&"amount"in q&&!("contractId"in q)}function g(q){return"contractId"in q&&"methodName"in q}function l(q){return"actions"in q}function u(q){return"newAccountId"in q}function m(q){return"contractCode"in q}function p(q){return"customEstimator"in q}function d(q){let x=0;for(let J of q)switch(J.enum){case"transfer":x+=Number(f.SIMPLE_TRANSFER);break;case"functionCall":x+=Number(f.CONTRACT_CALL);break;case"createAccount":x+=Number(f.ACCOUNT_CREATION);break;case"deployContract":x+=Number(f.CONTRACT_DEPLOYMENT);break;case"addKey":x+=Number(f.ACCESS_KEY_ADDITION);break;case"deleteKey":x+=Number(f.ACCESS_KEY_DELETION);break;case"stake":x+=Number(f.STAKE);break;default:x+=Number(f.CONTRACT_CALL)}return x.toString()}function o(q){if(q==="ft_transfer"||q==="ft_transfer_call")return f.TOKEN_TRANSFER;if(q==="storage_deposit")return f.STORAGE_DEPOSIT;return f.CONTRACT_CALL}function y1(q){return(BigInt(q)*BigInt(1000000000000)).toString()}function C1(q){return(BigInt(q)/BigInt(1000000000000)).toString()}var f;var i=_(()=>{f={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"100",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"100",TOKEN_TRANSFER:"100"}});async function P({account:q,contractId:x,viewMethods:J,changeMethods:Q}){let{Contract:Z}=await import("near-api-js");return new Z(q,x,{changeMethods:Q,useLocalViewExecution:!0,viewMethods:J})}async function n({contractId:q,account:x}){let J=(await import("bn.js")).default,Q=await P({account:x,changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"],contractId:q,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"]}),Z=async(U)=>{if(!await Q.storage_balance_of({account_id:U})){let w=(await Q.storage_balance_bounds())?.min||"1250000000000000000000";await Q.storage_deposit({account_id:U},new J("100000000000000"),new J(w))}};return{balanceOf:(U)=>Q.ft_balance_of({account_id:U}),contract:Q,ensureStorage:Z,metadata:()=>Q.ft_metadata(),storageBalanceOf:(U)=>Q.storage_balance_of({account_id:U}),storageDeposit:(U,Y)=>Q.storage_deposit({account_id:U},new J("100000000000000"),new J(Y||"1250000000000000000000")),totalSupply:()=>Q.ft_total_supply(),transfer:async(U,Y,D)=>{return await Z(U),Q.ft_transfer({amount:Y,memo:D,receiver_id:U},new J("100000000000000"),new J("1"))},transferCall:async(U,Y,D,w)=>{return await Z(U),Q.ft_transfer_call({amount:Y,memo:w,msg:D,receiver_id:U},new J("100000000000000"),new J("1"))}}}import{AssetValue as G1,BaseDecimal as K1}from"@swapkit/helpers";import{SwapKitApi as A1}from"@swapkit/helpers/api";function s1(){function q(){let x=Date.now(),J=c||x;return c=J,x>c?x:J+1}return I1+q().toString(36)}function L1(q){return async function(J,Q=!0){return(await A1.getChainBalance({address:J,chain:q,scamFilter:Q})).map(({identifier:U,value:Y,decimal:D})=>{return new G1({decimal:D||K1[q],identifier:U,value:Y})})}}var I1,c=0;var Q1=_(()=>{I1=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{AssetValue as Z1,BaseDecimal as $1,Chain as k,getRPCUrl as h1,SwapKitError as V}from"@swapkit/helpers";async function S1(q){let{P:x,match:J}=await import("ts-pattern"),{providers:Q}=await import("near-api-js"),Z=await J(q).with({phrase:x.string},async(W)=>{return await v(W)}).with({signer:x.any},({signer:W})=>W).otherwise(()=>{return}),U=await h1(k.Near),Y=new Q.JsonRpcProvider({url:U});async function D(W){let{Account:L}=await import("near-api-js"),$=W||await w();return new L($,Y,Z)}async function w(){if(!Z)throw new V("toolbox_near_no_signer");return await Z.getAddress()}async function U1(W){if(!Z)throw new V("toolbox_near_no_signer");let{recipient:L,assetValue:$}=W;if(!(await N())(L))throw new V("toolbox_near_invalid_address");let B=await D();if($.isGasAsset===!1){let z=$.address;if(!z)throw new V("toolbox_near_missing_contract_address");let X=$.getBaseValue("string");return e({args:{amount:X,memo:W.memo,receiver_id:L},contractId:z,methodName:"ft_transfer"})}try{let z=$.getBaseValue("string");return(await B.transfer({amount:z,receiverId:L})).transaction_outcome.id}catch(z){throw new V("toolbox_near_transfer_failed",{error:z})}}async function Y1(W){let{recipient:L,assetValue:$,memo:H,feeRate:B,attachedDeposit:z,sender:X}=W,F=await N();if(!F(L))throw new V("toolbox_near_invalid_address",{address:L});if(!F(X))throw new V("toolbox_near_invalid_address",{address:X});if(!$.isGasAsset){let W1=$.address;if(!W1)throw new V("toolbox_near_missing_contract_address");return t({args:{amount:$.getBaseValue("string"),memo:H||null,receiver_id:L},attachedDeposit:"1",contractId:W1,gas:B.toString()||"100000000000000",methodName:"ft_transfer",sender:X})}let{publicKey:j,nonce:T}=await b(Y,X),C=$.getBaseValue("bigint"),{SCHEMA:G}=await import("near-api-js/lib/transaction"),{transactions:E,utils:K}=await import("near-api-js"),a=[E.transfer(C)];if(H&&z)a.push(E.functionCall("memo",{memo:H},BigInt(B),BigInt(z)));let j1=await Y.block({finality:"final"}),q1=K.serialize.base_decode(j1.header.hash),O1=E.createTransaction(X,j,L,T,a,q1),w1=K.serialize.serialize(G.Transaction,O1),F1=Buffer.from(w1).toString("base64");return{details:{blockHash:K.serialize.base_encode(q1),nonce:T,signerId:X},publicKey:j.toString(),serialized:F1}}async function t(W){let{sender:L}=W,{publicKey:$,nonce:H}=await b(Y,L),{SCHEMA:B}=await import("near-api-js/lib/transaction"),{transactions:z,utils:X}=await import("near-api-js"),F=await Y.block({finality:"final"}),j=X.serialize.base_decode(F.header.hash),T=[z.functionCall(W.methodName,Buffer.from(JSON.stringify(W.args)),BigInt(W.gas),BigInt(W.attachedDeposit))],C=z.createTransaction(L,$,W.contractId,H,T,j),G=X.serialize.serialize(B.Transaction,C),E=Buffer.from(G).toString("base64");return{details:{blockHash:X.serialize.base_encode(j),methodName:W.methodName,nonce:H,receiverId:W.contractId,signerId:L},publicKey:$.toString(),serialized:E}}async function z1(W){if(!Z)throw new V("toolbox_near_no_signer");let[L,$]=await Z.signTransaction(W);return $}async function D1(W){return(await Y.sendTransaction(W)).transaction.hash}async function H1(W){if("assetValue"in W){let B=BigInt("115123062500")+BigInt("108059500000"),z=await M1(),X=B*BigInt(z.toString());return Z1.from({chain:k.Near,fromBaseDecimal:$1[k.Near],value:X.toString()})}let L=Z?await D():void 0;return y(W,L)}async function M1(){try{return await Y.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function R1(W,L,$){if(!Z)throw new V("toolbox_near_no_signer");let H=await D(),{utils:B}=await import("near-api-js"),z=B.format.parseNearAmount($)||"0";return(await H.createAccount(W,B.PublicKey.fromString(L),BigInt(z))).transaction.hash}async function e(W){try{if(!Z)throw new V("toolbox_near_no_signer");let{transactions:L}=await import("near-api-js"),{contractId:$,methodName:H,args:B,deposit:z}=W,X=await D(),F=await y({args:B||{},contractId:$,methodName:H}),j=L.functionCall(H,B||{},F.getBaseValue("bigint"),BigInt(z||"0"));return(await X.signAndSendTransaction({actions:[j],receiverId:$})).transaction_outcome.id}catch(L){throw new V("toolbox_near_transfer_failed",{error:L})}}async function f1(W){let L=await D();return P({account:L,changeMethods:W.changeMethods,contractId:W.contractId,viewMethods:W.viewMethods})}async function V1(W){if(!Z)throw new V("toolbox_near_no_signer");if(W.actions.length===0)throw new V("toolbox_near_empty_batch");return(await(await D()).signAndSendTransaction({actions:W.actions,receiverId:W.receiverId})).transaction.hash}async function B1(W){let L=await D();return n({account:L,contractId:W})}async function y(W,L){let $=await J(W).when(S,()=>f.SIMPLE_TRANSFER).when(g,(X)=>o(X.methodName)).when(l,(X)=>d(X.actions)).when(u,()=>f.ACCOUNT_CREATION).when(m,()=>f.CONTRACT_DEPLOYMENT).when(p,(X)=>{if(!L)throw new V("toolbox_near_no_account");return X.customEstimator(L)}).otherwise(()=>{throw new V("toolbox_near_invalid_gas_params")}),H=await r(),z=BigInt($)*BigInt(1000000000000)*BigInt(H);return Z1.from({chain:k.Near,fromBaseDecimal:$1[k.Near],value:z})}async function r(){try{return(await Y.gasPrice(null)).gas_price||"100000000"}catch(W){return"100000000"}}return{broadcastTransaction:D1,callFunction:e,createContract:f1,createContractFunctionCall:t,createSubAccount:R1,createTransaction:Y1,estimateGas:y,estimateTransactionFee:H1,executeBatchTransaction:V1,getAddress:w,getBalance:L1(k.Near),getGasPrice:r,getPublicKey:async()=>Z?(await Z.getPublicKey()).toString():"",getSignerFromPhrase:(W)=>v(W),getSignerFromPrivateKey:I,nep141:B1,provider:Y,signTransaction:z1,transfer:U1,validateAddress:await N()}}var s=_(()=>{Q1();h();i()});var X1=_(()=>{s()});var g1={};N1(g1,{tgasToGas:()=>y1,isSimpleTransfer:()=>S,isCustomEstimator:()=>p,isContractDeployment:()=>m,isContractCall:()=>g,isBatchTransaction:()=>l,isAccountCreation:()=>u,getValidateNearAddress:()=>N,getNearToolbox:()=>S1,getNearSignerFromPrivateKey:()=>I,getNearSignerFromPhrase:()=>v,getFullAccessPublicKey:()=>b,getContractMethodGas:()=>o,gasToTGas:()=>C1,estimateBatchGas:()=>d,createNearContract:()=>P,createNEP141Token:()=>n,GAS_COSTS:()=>f});var l1=_(()=>{h();i();s();X1()});l1();export{y1 as tgasToGas,S as isSimpleTransfer,p as isCustomEstimator,m as isContractDeployment,g as isContractCall,l as isBatchTransaction,u as isAccountCreation,N as getValidateNearAddress,S1 as getNearToolbox,I as getNearSignerFromPrivateKey,v as getNearSignerFromPhrase,b as getFullAccessPublicKey,o as getContractMethodGas,C1 as gasToTGas,d as estimateBatchGas,P as createNearContract,n as createNEP141Token,f as GAS_COSTS};
|
|
1
|
+
var Ln=Object.create;var{getPrototypeOf:Sn,defineProperty:B,getOwnPropertyNames:Gn}=Object;var bn=Object.prototype.hasOwnProperty;var s=(n,r,i)=>{i=n!=null?Ln(Sn(n)):{};let o=r||!n||!n.__esModule?B(i,"default",{value:n,enumerable:!0}):i;for(let e of Gn(n))if(!bn.call(o,e))B(o,e,{get:()=>n[e],enumerable:!0});return o};var an=(n,r)=>{for(var i in r)B(n,i,{get:r[i],enumerable:!0,configurable:!0,set:(o)=>r[i]=()=>o})};var L=(n,r)=>()=>(n&&(r=n(n=0)),r);var E=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(r,i)=>(typeof require<"u"?require:r)[i]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});import{derivationPathToString as Un,SwapKitError as Yn}from"@swapkit/helpers";import{KeyPairSigner as qn}from"near-api-js";async function b(){let{validateAccountId:n}=await import("near-sdk-js");return(r)=>{try{return n(r)}catch{let i=/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/;return r.length>=2&&r.length<=64&&i.test(r)}}}async function a(n){let{parseSeedPhrase:r}=await import("near-seed-phrase"),{KeyPair:i}=await import("near-api-js"),o=n.index||0,e=n.derivationPath?Un(n.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:g}=r(n.phrase,e),P=i.fromString(g);return d(P)}async function M(n){let{KeyPair:r}=await import("near-api-js/lib/utils"),i=r.fromString(n);return d(i)}function d(n){return new K(n)}async function U(n,r){let o=(await n.query({account_id:r,finality:"final",request_type:"view_access_key_list"})).keys.find((O)=>O.access_key.permission==="FullAccess");if(!o)throw new Yn("toolbox_near_invalid_address");let{utils:e}=await import("near-api-js"),g=e.PublicKey.fromString(o.public_key);return{nonce:o.access_key.nonce||0,publicKey:g}}var K;var Q=L(()=>{K=class K extends qn{#n;constructor(n){super(n);this.#n=n}getAddress(){let n=this.#n.getPublicKey(),r=Buffer.from(n.data).toString("hex");return Promise.resolve(r)}}});function Z(n){return"recipient"in n&&"amount"in n&&!("contractId"in n)}function $(n){return"contractId"in n&&"methodName"in n}function p(n){return"actions"in n}function z(n){return"newAccountId"in n}function X(n){return"contractCode"in n}function H(n){return"customEstimator"in n}function k(n){let r=0;for(let i of n)switch(i.enum){case"transfer":r+=Number(_.SIMPLE_TRANSFER);break;case"functionCall":r+=Number(_.CONTRACT_CALL);break;case"createAccount":r+=Number(_.ACCOUNT_CREATION);break;case"deployContract":r+=Number(_.CONTRACT_DEPLOYMENT);break;case"addKey":r+=Number(_.ACCESS_KEY_ADDITION);break;case"deleteKey":r+=Number(_.ACCESS_KEY_DELETION);break;case"stake":r+=Number(_.STAKE);break;default:r+=Number(_.CONTRACT_CALL)}return r.toString()}function V(n){if(n==="ft_transfer"||n==="ft_transfer_call")return _.TOKEN_TRANSFER;if(n==="storage_deposit")return _.STORAGE_DEPOSIT;return _.CONTRACT_CALL}function Fn(n){return(BigInt(n)*BigInt(1000000000000)).toString()}function Jn(n){return(BigInt(n)/BigInt(1000000000000)).toString()}var _;var w=L(()=>{_={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 Y({account:n,contractId:r,viewMethods:i,changeMethods:o}){let{Contract:e}=await import("near-api-js");return new e(n,r,{changeMethods:o,useLocalViewExecution:!0,viewMethods:i})}async function j({contractId:n,account:r}){let i=(await import("bn.js")).default,o=await Y({account:r,changeMethods:["ft_transfer","ft_transfer_call","storage_deposit","storage_withdraw","storage_unregister"],contractId:n,viewMethods:["ft_balance_of","ft_total_supply","ft_metadata","storage_balance_of","storage_balance_bounds"]}),e=async(g)=>{if(!await o.storage_balance_of({account_id:g})){let y=(await o.storage_balance_bounds())?.min||"1250000000000000000000";await o.storage_deposit({account_id:g},new i("100000000000000"),new i(y))}};return{balanceOf:(g)=>o.ft_balance_of({account_id:g}),contract:o,ensureStorage:e,metadata:()=>o.ft_metadata(),storageBalanceOf:(g)=>o.storage_balance_of({account_id:g}),storageDeposit:(g,P)=>o.storage_deposit({account_id:g},new i("100000000000000"),new i(P||"1250000000000000000000")),totalSupply:()=>o.ft_total_supply(),transfer:async(g,P,O)=>{return await e(g),o.ft_transfer({amount:P,memo:O,receiver_id:g},new i("100000000000000"),new i("1"))},transferCall:async(g,P,O,y)=>{return await e(g),o.ft_transfer_call({amount:P,memo:y,msg:O,receiver_id:g},new i("100000000000000"),new i("1"))}}}import{AssetValue as Wn,getChainConfig as Bn}from"@swapkit/helpers";import{SwapKitApi as Mn}from"@swapkit/helpers/api";function vn(){function n(){let r=Date.now(),i=h||r;return h=i,r>h?r:i+1}return Qn+n().toString(36)}function c(n){return async function(i,o=!0){let e=await Mn.getChainBalance({address:i,chain:n,scamFilter:o}),{baseDecimal:g}=Bn(n);return e.map(({identifier:P,value:O,decimal:y})=>{return new Wn({decimal:y||g,identifier:P,value:O})})}}var Qn,h=0;var nn=L(()=>{Qn=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{AssetValue as tn,Chain as S,getChainConfig as rn,getRPCUrl as Zn,SwapKitError as A}from"@swapkit/helpers";async function $n(n){let{P:r,match:i}=await import("ts-pattern"),{providers:o}=await import("near-api-js"),e=await i(n).with({phrase:r.string},async(t)=>{return await a(t)}).with({signer:r.any},({signer:t})=>t).otherwise(()=>{return}),g=await Zn(S.Near),P=new o.JsonRpcProvider({url:g});async function O(t){let{Account:T}=await import("near-api-js"),m=t||await y();return new T(m,P,e)}async function y(){if(!e)throw new A("toolbox_near_no_signer");return await e.getAddress()}async function on(t){if(!e)throw new A("toolbox_near_no_signer");let{recipient:T,assetValue:m}=t;if(!(await b())(T))throw new A("toolbox_near_invalid_address");let C=await O();if(m.isGasAsset===!1){let f=m.address;if(!f)throw new A("toolbox_near_missing_contract_address");let N=m.getBaseValue("string");return v({args:{amount:N,memo:t.memo,receiver_id:T},contractId:f,methodName:"ft_transfer"})}try{let f=m.getBaseValue("string");return(await C.transfer({amount:f,receiverId:T})).transaction_outcome.id}catch(f){throw new A("toolbox_near_transfer_failed",{error:f})}}async function en(t){let{recipient:T,assetValue:m,memo:x,attachedDeposit:C,sender:f,functionCall:N}=t,R=await b();if(!R(T))throw new A("toolbox_near_invalid_address",{recipient:T});if(!R(f))throw new A("toolbox_near_invalid_address",{signerId:f});if(N)return q({...N,sender:f});if(!m.isGasAsset){let I=m.address;if(!I)throw new A("toolbox_near_missing_contract_address");return q({args:{amount:m.getBaseValue("string"),memo:x||null,receiver_id:T},attachedDeposit:C||"1",contractId:I,gas:"250000000000000",methodName:"ft_transfer",sender:f})}let{publicKey:G,nonce:J}=await U(P,f),An=m.getBaseValue("bigint"),{transactions:W,utils:yn}=await import("near-api-js"),u=[W.transfer(An)];if(x&&C)u.push(W.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(C)));let Rn=await P.block({finality:"final"}),Dn=yn.serialize.base_decode(Rn.header.hash);return W.createTransaction(f,G,T,J+1,u,Dn)}async function mn(t){let{SCHEMA:T}=await import("near-api-js/lib/transaction"),{utils:m}=await import("near-api-js"),x=m.serialize.serialize(T.Transaction,t);return Buffer.from(x).toString("base64")}async function q(t){let{sender:T}=t,{publicKey:m,nonce:x}=await U(P,T),{transactions:C,utils:f}=await import("near-api-js"),N=await P.block({finality:"final"}),R=f.serialize.base_decode(N.header.hash),G=[C.functionCall(t.methodName,Buffer.from(JSON.stringify(t.args)),BigInt(t.gas),BigInt(t.attachedDeposit))];return C.createTransaction(T,m,t.contractId,x+1,G,R)}async function fn(t){let{transactions:T}=await import("near-api-js");return T.functionCall(t.methodName,Buffer.from(JSON.stringify(t.args)),BigInt(t.gas),BigInt(t.attachedDeposit))}async function gn(t){if(!e)throw new A("toolbox_near_no_signer");let[T,m]=await e.signTransaction(t);return m}async function Pn(t){return(await P.sendTransaction(t)).transaction.hash}async function Nn(t){if("assetValue"in t){let C=BigInt("115123062500")+BigInt("108059500000"),f=await xn(),N=C*BigInt(f.toString()),{baseDecimal:R}=rn(S.Near);return tn.from({chain:S.Near,fromBaseDecimal:R,value:N.toString()})}let T=e?await O():void 0;return F(t,T)}async function xn(){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 Cn(t,T,m){if(!e)throw new A("toolbox_near_no_signer");let x=await O(),{utils:C}=await import("near-api-js"),f=C.format.parseNearAmount(m)||"0";return(await x.createAccount(t,C.PublicKey.fromString(T),BigInt(f))).transaction.hash}async function v(t){try{if(!e)throw new A("toolbox_near_no_signer");let{transactions:T}=await import("near-api-js"),{contractId:m,methodName:x,args:C,deposit:f}=t,N=await O(),R=await F({args:C||{},contractId:m,methodName:x}),G=T.functionCall(x,C||{},R.getBaseValue("bigint"),BigInt(f||"1"));return(await N.signAndSendTransaction({actions:[G],receiverId:m})).transaction_outcome.id}catch(T){throw new A("toolbox_near_transfer_failed",{error:T})}}async function sn(t){let T=await O();return Y({account:T,changeMethods:t.changeMethods,contractId:t.contractId,viewMethods:t.viewMethods})}async function En(t){if(!e)throw new A("toolbox_near_no_signer");if(t.actions.length===0)throw new A("toolbox_near_empty_batch");return(await(await O()).signAndSendTransaction({actions:t.actions,receiverId:t.receiverId})).transaction.hash}async function On(t){let T=await O();return j({account:T,contractId:t})}async function F(t,T){let{baseDecimal:m}=rn(S.Near),x=await i(t).when(Z,()=>_.SIMPLE_TRANSFER).when($,(N)=>V(N.methodName)).when(p,(N)=>k(N.actions)).when(z,()=>_.ACCOUNT_CREATION).when(X,()=>_.CONTRACT_DEPLOYMENT).when(H,(N)=>{if(!T)throw new A("toolbox_near_no_account");return N.customEstimator(T)}).otherwise(()=>{throw new A("toolbox_near_invalid_gas_params")}),f=BigInt(x)*BigInt(1000000000000);return tn.from({chain:S.Near,fromBaseDecimal:m,value:f})}async function _n(){try{return(await P.gasPrice(null)).gas_price||"100000000"}catch(t){return"100000000"}}return{broadcastTransaction:Pn,callFunction:v,createAction:fn,createContract:sn,createContractFunctionCall:q,createSubAccount:Cn,createTransaction:en,estimateGas:F,estimateTransactionFee:Nn,executeBatchTransaction:En,getAddress:y,getBalance:c(S.Near),getGasPrice:_n,getPublicKey:async()=>e?(await e.getPublicKey()).toString():"",getSignerFromPhrase:(t)=>a(t),getSignerFromPrivateKey:M,nep141:On,provider:P,serializeTransaction:mn,signTransaction:gn,transfer:on,validateAddress:await b()}}var l=L(()=>{nn();Q();w()});var Tn=L(()=>{l()});var pn={};an(pn,{tgasToGas:()=>Fn,isSimpleTransfer:()=>Z,isCustomEstimator:()=>H,isContractDeployment:()=>X,isContractCall:()=>$,isBatchTransaction:()=>p,isAccountCreation:()=>z,getValidateNearAddress:()=>b,getNearToolbox:()=>$n,getNearSignerFromPrivateKey:()=>M,getNearSignerFromPhrase:()=>a,getFullAccessPublicKey:()=>U,getContractMethodGas:()=>V,gasToTGas:()=>Jn,estimateBatchGas:()=>k,createNearContract:()=>Y,createNEP141Token:()=>j,GAS_COSTS:()=>_});var zn=L(()=>{Q();w();l();Tn()});zn();export{Fn as tgasToGas,Z as isSimpleTransfer,H as isCustomEstimator,X as isContractDeployment,$ as isContractCall,p as isBatchTransaction,z as isAccountCreation,b as getValidateNearAddress,$n as getNearToolbox,M as getNearSignerFromPrivateKey,a as getNearSignerFromPhrase,U as getFullAccessPublicKey,V as getContractMethodGas,Jn as gasToTGas,k as estimateBatchGas,Y as createNearContract,j as createNEP141Token,_ as GAS_COSTS};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=E3FE8B4106D3310B64756E2164756E21
|
|
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
|
-
"import type { Provider } from \"@near-js/providers\";\nimport { type DerivationPathArray, derivationPathToString, SwapKitError } from \"@swapkit/helpers\";\nimport { type KeyPair, KeyPairSigner } from \"near-api-js\";\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-api-js\");\n\n
|
|
6
|
-
"import type { Account } from \"near-api-js\";\nimport type { NearGasEstimateParams } from \"../types/contract\";\n\
|
|
5
|
+
"import type { Provider } from \"@near-js/providers\";\nimport { type DerivationPathArray, derivationPathToString, SwapKitError } from \"@swapkit/helpers\";\nimport { type KeyPair, KeyPairSigner } from \"near-api-js\";\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-api-js\");\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-api-js/lib/utils\");\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 SwapKitError(\"toolbox_near_invalid_address\");\n }\n\n const { utils } = await import(\"near-api-js\");\n const publicKey = utils.PublicKey.fromString(fullAccessKey.public_key);\n const nonce = (fullAccessKey.access_key.nonce as number) || 0;\n\n return { nonce, publicKey };\n}\n",
|
|
6
|
+
"import type { Account } from \"near-api-js\";\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-api-js\";\n\nconst DEFAULT_STORAGE_DEPOSIT = \"1250000000000000000000\"; // 0.00125 NEAR\n\n// NEP-141 metadata interface\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\n// Storage balance response\nexport interface StorageBalance {\n total: string;\n available: string;\n}\n\n// Storage balance bounds\nexport interface StorageBalanceBounds {\n min: string;\n max?: string;\n}\n\n// BN.js is dynamically imported, but we need the type\n// Using any here is acceptable as BN.js doesn't export proper TypeScript types\ntype BN = any; // BN.js instance\n\n// Define NEP-141 contract interface\nexport interface NEP141Contract extends Contract {\n // View methods\n ft_balance_of(args: { account_id: string }): Promise<string>;\n ft_total_supply(): Promise<string>;\n ft_metadata(): Promise<NEP141Metadata>;\n storage_balance_of(args: { account_id: string }): Promise<StorageBalance | null>;\n storage_balance_bounds(): Promise<StorageBalanceBounds>;\n\n // Change methods\n ft_transfer(args: { receiver_id: string; amount: string; memo?: string }, gas: BN, deposit: BN): Promise<void>;\n ft_transfer_call(\n args: { receiver_id: string; amount: string; msg: string; memo?: string },\n gas: BN,\n deposit: BN,\n ): Promise<void>;\n storage_deposit(\n args: { account_id?: string; registration_only?: boolean },\n gas: BN,\n deposit: BN,\n ): Promise<StorageBalance>;\n storage_withdraw(args: { amount?: string }, gas: BN, deposit?: BN): Promise<StorageBalance>;\n storage_unregister(force?: boolean, gas?: BN): Promise<boolean>;\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: NEP141Contract;\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}): Promise<T> {\n const { Contract } = await import(\"near-api-js\");\n\n return new Contract(account, contractId, {\n changeMethods,\n useLocalViewExecution: true, // Enable local view execution for efficiency\n viewMethods,\n }) as T;\n}\n\nexport async function createNEP141Token({\n contractId,\n account,\n}: {\n contractId: string;\n account: Account;\n}): Promise<NEP141Token> {\n const BN = (await import(\"bn.js\")).default;\n\n const contract = await createNearContract<NEP141Contract>({\n account,\n changeMethods: [\"ft_transfer\", \"ft_transfer_call\", \"storage_deposit\", \"storage_withdraw\", \"storage_unregister\"],\n contractId,\n viewMethods: [\"ft_balance_of\", \"ft_total_supply\", \"ft_metadata\", \"storage_balance_of\", \"storage_balance_bounds\"],\n });\n\n // Helper to ensure storage before transfers\n const ensureStorageFor = async (accountId: string) => {\n const balance = await contract.storage_balance_of({ account_id: accountId });\n if (!balance) {\n // Get minimum storage requirement\n const bounds = await contract.storage_balance_bounds();\n const deposit = bounds?.min || DEFAULT_STORAGE_DEPOSIT;\n\n await contract.storage_deposit(\n { account_id: accountId },\n new BN(\"100000000000000\"), // 100 TGas\n new BN(deposit),\n );\n }\n };\n\n return {\n balanceOf: (accountId: string) => contract.ft_balance_of({ account_id: accountId }),\n\n // Raw contract access for advanced use cases\n contract,\n\n ensureStorage: ensureStorageFor,\n\n metadata: () => contract.ft_metadata(),\n\n storageBalanceOf: (accountId: string) => contract.storage_balance_of({ account_id: accountId }),\n\n storageDeposit: (accountId?: string, amount?: string) =>\n contract.storage_deposit(\n { account_id: accountId },\n new BN(\"100000000000000\"),\n new BN(amount || DEFAULT_STORAGE_DEPOSIT),\n ),\n\n totalSupply: () => contract.ft_total_supply(),\n transfer: async (receiverId: string, amount: string, memo?: string) => {\n // Ensure recipient has storage before transfer\n await ensureStorageFor(receiverId);\n\n return contract.ft_transfer(\n { amount, memo, receiver_id: receiverId },\n new BN(\"100000000000000\"), // 100 TGas\n new BN(\"1\"), // 1 yoctoNEAR for security\n );\n },\n\n transferCall: async (receiverId: string, amount: string, msg: string, memo?: string) => {\n // Ensure recipient has storage before transfer\n await ensureStorageFor(receiverId);\n\n return contract.ft_transfer_call(\n { amount, memo, msg, receiver_id: receiverId },\n new BN(\"100000000000000\"), // 100 TGas\n new BN(\"1\"), // 1 yoctoNEAR for security\n );\n },\n };\n}\n",
|
|
8
|
-
"import { AssetValue,
|
|
9
|
-
"import { AssetValue, BaseDecimal, Chain, getRPCUrl, SwapKitError } from \"@swapkit/helpers\";\nimport type { Account, Contract } from \"near-api-js\";\nimport type { SignedTransaction, Transaction } from \"near-api-js/lib/transaction\";\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 { createNEP141Token, 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 {\n BatchTransaction,\n ContractFunctionCallParams,\n GetSignerFromPhraseParams,\n NearToolbox,\n SerializedTransaction,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams): Promise<NearToolbox> {\n const { P, match } = await import(\"ts-pattern\");\n const { providers } = await import(\"near-api-js\");\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 providers.JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"near-api-js\");\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 SwapKitError(\"toolbox_near_no_signer\");\n }\n const address = await signer.getAddress();\n return address;\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { recipient, assetValue } = params;\n\n const nearValidateAddress = await getValidateNearAddress();\n\n if (!nearValidateAddress(recipient)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\");\n }\n\n const account = await getAccount();\n\n if (assetValue.isGasAsset === false) {\n // NEP-141 token transfer\n const contractId = assetValue.address;\n if (!contractId) {\n throw new SwapKitError(\"toolbox_near_missing_contract_address\");\n }\n\n const amount = assetValue.getBaseValue(\"string\");\n\n return callFunction({\n args: { amount, memo: params.memo, receiver_id: recipient },\n contractId,\n methodName: \"ft_transfer\",\n });\n }\n\n try {\n const transferAmount = assetValue.getBaseValue(\"string\");\n\n const result = await account.transfer({ amount: transferAmount, receiverId: recipient });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new SwapKitError(\"toolbox_near_transfer_failed\", { error });\n }\n }\n\n async function createTransaction(params: NearCreateTransactionParams): Promise<SerializedTransaction> {\n const { recipient, assetValue, memo, feeRate: gas, attachedDeposit, sender: signerId } = params;\n const validateNearAddress = await getValidateNearAddress();\n\n if (!validateNearAddress(recipient)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\", { address: recipient });\n }\n\n if (!validateNearAddress(signerId)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\", { address: signerId });\n }\n\n // Handle NEP-141 token transfers\n if (!assetValue.isGasAsset) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new SwapKitError(\"toolbox_near_missing_contract_address\");\n }\n\n return createContractFunctionCall({\n args: { amount: assetValue.getBaseValue(\"string\"), memo: memo || null, receiver_id: recipient },\n attachedDeposit: \"1\", // 1 yoctoNEAR required for NEP-141 transfers\n contractId,\n gas: gas.toString() || \"100000000000000\", // 100 TGas default\n methodName: \"ft_transfer\",\n sender: signerId,\n });\n }\n\n // Native NEAR transfer\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, signerId);\n const baseAmount = assetValue.getBaseValue(\"bigint\");\n\n const { SCHEMA } = await import(\"near-api-js/lib/transaction\");\n const { transactions, utils } = await import(\"near-api-js\");\n\n const txActions = [transactions.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(transactions.functionCall(\"memo\", { memo }, BigInt(gas), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n const transaction = transactions.createTransaction(signerId, publicKey, recipient, nonce, txActions, blockHash);\n\n const serializedTx = utils.serialize.serialize(SCHEMA.Transaction, transaction);\n const serializedBase64 = Buffer.from(serializedTx).toString(\"base64\");\n\n return {\n details: { blockHash: utils.serialize.base_encode(blockHash), nonce: nonce, signerId },\n publicKey: publicKey.toString(),\n serialized: serializedBase64,\n };\n }\n\n async function createContractFunctionCall(params: ContractFunctionCallParams): Promise<SerializedTransaction> {\n const { sender: accountId } = params;\n\n const { publicKey, nonce } = await getFullAccessPublicKey(provider, accountId);\n\n const { SCHEMA } = await import(\"near-api-js/lib/transaction\");\n const { transactions, utils } = await import(\"near-api-js\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n const actions = [\n transactions.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 = transactions.createTransaction(\n accountId,\n publicKey,\n params.contractId,\n nonce,\n actions,\n blockHash,\n );\n\n const serializedTx = utils.serialize.serialize(SCHEMA.Transaction, transaction);\n const serializedBase64 = Buffer.from(serializedTx).toString(\"base64\");\n\n return {\n details: {\n blockHash: utils.serialize.base_encode(blockHash),\n methodName: params.methodName,\n nonce: nonce,\n receiverId: params.contractId,\n signerId: accountId,\n },\n publicKey: publicKey.toString(),\n serialized: serializedBase64,\n };\n }\n\n async function signTransaction(transaction: Transaction): Promise<SignedTransaction> {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n // Use the new signer interface method\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 estimateTransactionFee(params: NearTransferParams | NearGasEstimateParams) {\n if (\"assetValue\" in params) {\n const baseTransferCost = \"115123062500\"; // gas units for transfer\n const receiptCreationCost = \"108059500000\"; // gas units for receipt\n\n const totalGasUnits = BigInt(baseTransferCost) + BigInt(receiptCreationCost);\n\n const gasPrice = await getCurrentGasPrice();\n\n // NEAR doesn't support fee multipliers - gas price is fixed by the network\n const totalCostYocto = totalGasUnits * BigInt(gasPrice.toString());\n\n return AssetValue.from({\n chain: Chain.Near,\n fromBaseDecimal: BaseDecimal[Chain.Near],\n value: totalCostYocto.toString(),\n });\n }\n\n // Handle new gas estimation params\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 SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const account = await getAccount();\n const { utils } = await import(\"near-api-js\");\n\n const balanceInYocto = utils.format.parseNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(\n subAccountId,\n utils.PublicKey.fromString(publicKey),\n BigInt(balanceInYocto),\n );\n\n return result.transaction.hash;\n }\n\n async function callFunction(params: NearFunctionCallParams): Promise<string> {\n try {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { transactions } = await import(\"near-api-js\");\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 = transactions.functionCall(\n methodName,\n args || {},\n estimatedGas.getBaseValue(\"bigint\"),\n BigInt(deposit || \"0\"),\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 SwapKitError(\"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 SwapKitError(\"toolbox_near_no_signer\");\n }\n\n if (batch.actions.length === 0) {\n throw new SwapKitError(\"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 nep141(contractId: string) {\n const account = await getAccount();\n return createNEP141Token({ account, contractId });\n }\n\n async function estimateGas(params: NearGasEstimateParams, account?: Account) {\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 SwapKitError(\"toolbox_near_no_account\");\n }\n return p.customEstimator(account);\n })\n .otherwise(() => {\n throw new SwapKitError(\"toolbox_near_invalid_gas_params\");\n });\n\n // Convert TGas to gas price in NEAR\n const gasPrice = await getGasPrice();\n const gasInUnits = BigInt(gasInTGas) * BigInt(10 ** 12); // Convert TGas to gas units\n const costInYoctoNear = gasInUnits * BigInt(gasPrice);\n\n return AssetValue.from({ chain: Chain.Near, fromBaseDecimal: BaseDecimal[Chain.Near], 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 (_error) {\n // Fallback to default\n return \"100000000\";\n }\n }\n\n return {\n broadcastTransaction,\n callFunction,\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 nep141,\n provider,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
|
|
10
|
-
"import type {\n ChainSigner,\n DerivationPathArray,\n GenericCreateTransactionParams,\n GenericTransferParams,\n} from \"@swapkit/helpers\";\nimport type { KeyPairSigner, Signer, transactions } from \"near-api-js\";\n\ninterface NearKeyPairSigner\n extends KeyPairSigner,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\ninterface NearGeneralSigner\n extends Signer,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\
|
|
8
|
+
"import { AssetValue, type Chain, getChainConfig } from \"@swapkit/helpers\";\nimport { SwapKitApi } from \"@swapkit/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 SwapKitApi.getChainBalance({ address, chain, scamFilter });\n const { baseDecimal } = getChainConfig(chain);\n return balances.map(({ identifier, value, decimal }) => {\n return new AssetValue({ decimal: decimal || baseDecimal, identifier, value });\n });\n };\n}\n",
|
|
9
|
+
"import { AssetValue, Chain, getChainConfig, getRPCUrl, SwapKitError } from \"@swapkit/helpers\";\nimport type { Account, Contract } from \"near-api-js\";\nimport type { SignedTransaction, Transaction } from \"near-api-js/lib/transaction\";\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 { createNEP141Token, 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 {\n BatchTransaction,\n ContractFunctionCallParams,\n CreateActionParams,\n GetSignerFromPhraseParams,\n NearToolbox,\n} from \"./types/toolbox\";\n\nexport async function getNearToolbox(toolboxParams?: NearToolboxParams): Promise<NearToolbox> {\n const { P, match } = await import(\"ts-pattern\");\n const { providers } = await import(\"near-api-js\");\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 providers.JsonRpcProvider({ url });\n\n async function getAccount(address?: string) {\n const { Account } = await import(\"near-api-js\");\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 SwapKitError(\"toolbox_near_no_signer\");\n }\n const address = await signer.getAddress();\n return address;\n }\n\n async function transfer(params: NearTransferParams) {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { recipient, assetValue } = params;\n\n const nearValidateAddress = await getValidateNearAddress();\n\n if (!nearValidateAddress(recipient)) {\n throw new SwapKitError(\"toolbox_near_invalid_address\");\n }\n\n const account = await getAccount();\n\n if (assetValue.isGasAsset === false) {\n const contractId = assetValue.address;\n if (!contractId) {\n throw new SwapKitError(\"toolbox_near_missing_contract_address\");\n }\n\n const amount = assetValue.getBaseValue(\"string\");\n\n return callFunction({\n args: { amount, memo: params.memo, receiver_id: recipient },\n contractId,\n methodName: \"ft_transfer\",\n });\n }\n\n try {\n const transferAmount = assetValue.getBaseValue(\"string\");\n\n const result = await account.transfer({ amount: transferAmount, receiverId: recipient });\n\n return result.transaction_outcome.id;\n } catch (error) {\n throw new SwapKitError(\"toolbox_near_transfer_failed\", { error });\n }\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 SwapKitError(\"toolbox_near_invalid_address\", { recipient: recipient });\n }\n\n if (!validateNearAddress(signerId)) {\n throw new SwapKitError(\"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 SwapKitError(\"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 { transactions, utils } = await import(\"near-api-js\");\n\n const txActions = [transactions.transfer(baseAmount)];\n\n if (memo && attachedDeposit) {\n txActions.push(transactions.functionCall(\"memo\", { memo }, BigInt(\"250000000000000\"), BigInt(attachedDeposit)));\n }\n\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n return transactions.createTransaction(signerId, publicKey, recipient, nonce + 1, txActions, blockHash);\n }\n\n async function serializeTransaction(transaction: Transaction) {\n const { SCHEMA } = await import(\"near-api-js/lib/transaction\");\n const { utils } = await import(\"near-api-js\");\n\n const serializedTx = utils.serialize.serialize(SCHEMA.Transaction, transaction);\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 { transactions, utils } = await import(\"near-api-js\");\n const block = await provider.block({ finality: \"final\" });\n const blockHash = utils.serialize.base_decode(block.header.hash);\n\n const actions = [\n transactions.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 = transactions.createTransaction(\n accountId,\n publicKey,\n params.contractId,\n nonce + 1,\n actions,\n blockHash,\n );\n\n return transaction;\n }\n\n async function createAction(params: CreateActionParams) {\n const { transactions } = await import(\"near-api-js\");\n\n const action = transactions.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 SwapKitError(\"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 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 SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const account = await getAccount();\n const { utils } = await import(\"near-api-js\");\n\n const balanceInYocto = utils.format.parseNearAmount(initialBalance) || \"0\";\n\n const result = await account.createAccount(\n subAccountId,\n utils.PublicKey.fromString(publicKey),\n BigInt(balanceInYocto),\n );\n\n return result.transaction.hash;\n }\n\n async function callFunction(params: NearFunctionCallParams): Promise<string> {\n try {\n if (!signer) {\n throw new SwapKitError(\"toolbox_near_no_signer\");\n }\n\n const { transactions } = await import(\"near-api-js\");\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 = transactions.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 SwapKitError(\"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 SwapKitError(\"toolbox_near_no_signer\");\n }\n\n if (batch.actions.length === 0) {\n throw new SwapKitError(\"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 nep141(contractId: string) {\n const account = await getAccount();\n return createNEP141Token({ account, contractId });\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 SwapKitError(\"toolbox_near_no_account\");\n }\n return p.customEstimator(account);\n })\n .otherwise(() => {\n throw new SwapKitError(\"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 (_error) {\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 nep141,\n provider,\n serializeTransaction,\n signTransaction,\n transfer,\n validateAddress: await getValidateNearAddress(),\n };\n}\n",
|
|
10
|
+
"import type {\n ChainSigner,\n DerivationPathArray,\n GenericCreateTransactionParams,\n GenericTransferParams,\n} from \"@swapkit/helpers\";\nimport type { KeyPairSigner, Signer, transactions } from \"near-api-js\";\n\ninterface NearKeyPairSigner\n extends KeyPairSigner,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\ninterface NearGeneralSigner\n extends Signer,\n Omit<ChainSigner<typeof transactions.Transaction, typeof transactions.SignedTransaction>, \"signTransaction\"> {}\n\nexport type NearSigner = NearKeyPairSigner | NearGeneralSigner;\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 GenericCreateTransactionParams {\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 NEP141Contract,\n StorageBalance,\n StorageBalanceBounds,\n TokenTransferParams,\n} from \"./types/nep141\";\n"
|
|
12
12
|
],
|
|
13
|
-
"mappings": "gsBACA,iCAAmC,mBAAwB,0BAC3D,wBAAuB,qBAGvB,eAAsB,CAAsB,EAAG,CAC7C,IAAQ,qBAAsB,KAAa,uBAC3C,MAAO,CAAC,IAAoB,CAE1B,GAAI,CACF,OAAO,EAAkB,CAAO,EAChC,KAAM,CACN,IAAM,EAAmB,wDAEzB,OAAO,EAAQ,QAAU,GAAK,EAAQ,QAAU,IAAM,EAAiB,KAAK,CAAO,IAKzF,eAAsB,CAAuB,CAAC,EAI3C,CACD,IAAQ,mBAAoB,KAAa,6BACjC,WAAY,KAAa,
|
|
14
|
-
"debugId": "
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "E3FE8B4106D3310B64756E2164756E21",
|
|
15
15
|
"names": []
|
|
16
16
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var f=Object.create;var{getPrototypeOf:R,defineProperty:$,getOwnPropertyNames:W,getOwnPropertyDescriptor:D}=Object,H=Object.prototype.hasOwnProperty;var h=(j,y,G)=>{G=j!=null?f(R(j)):{};let z=y||!j||!j.__esModule?$(G,"default",{value:j,enumerable:!0}):G;for(let Y of W(j))if(!H.call(z,Y))$(z,Y,{get:()=>j[Y],enumerable:!0});return z},N=new WeakMap,b=(j)=>{var y=N.get(j),G;if(y)return y;if(y=$({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function")W(j).map((z)=>!H.call(y,z)&&$(y,z,{get:()=>j[z],enumerable:!(G=D(j,z))||G.enumerable}));return N.set(j,y),y};var K=(j,y)=>{for(var G in y)$(j,G,{get:y[G],enumerable:!0,configurable:!0,set:(z)=>y[G]=()=>z})};var A=(j,y)=>()=>(j&&(y=j(j=0)),y);var E={};K(E,{rippleValidateAddress:()=>v,hashes:()=>_.hashes,getRippleToolbox:()=>w});module.exports=b(E);function O(j){let y=X.Wallet.fromMnemonic(j);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(G)=>Promise.resolve(y.sign(G))}}function v(j){return X.isValidAddress(j)}var q,X,_,T,w=async(j={})=>{let y="signer"in j&&j.signer?j.signer:("phrase"in j)&&j.phrase?O(j.phrase):void 0,G=await q.getRPCUrl(q.Chain.Ripple);if(!G)throw new q.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:q.Chain.Ripple}});let z=new X.Client(G);await z.connect();let Y=()=>{if(!y)throw new q.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},P=async(J)=>{let Q=J||await Y(),{baseDecimal:M}=q.getChainConfig(q.Chain.Ripple);try{let k=(await z.request({account:Q,command:"account_info"})).result.account_data.Balance;return[q.AssetValue.from({chain:q.Chain.Ripple,fromBaseDecimal:M,value:k})]}catch(Z){if(Z.data.error_code===T.ACCOUNT_NOT_FOUND)return[q.AssetValue.from({chain:q.Chain.Ripple,value:0})];throw new q.SwapKitError("toolbox_ripple_get_balance_error",{info:{address:Q,error:Z}})}},U=async()=>{let Q=(await z.request({command:"fee"})).result.drops.open_ledger_fee,{baseDecimal:M}=q.getChainConfig(q.Chain.Ripple);return q.AssetValue.from({chain:q.Chain.Ripple,fromBaseDecimal:M,value:q.SwapKitNumber.fromBigInt(BigInt(Q),M)})},B=async({assetValue:J,recipient:Q,memo:M,sender:Z})=>{if(!v(Q))throw new q.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let k=Z||await Y();if(!J.isGasAsset||J.chain!==q.Chain.Ripple)throw new q.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:J.toString()}});let L={Account:k,Amount:X.xrpToDrops(J.getValue("string")),Destination:Q,TransactionType:"Payment"};if(M)L.Memos=[{Memo:{MemoData:Buffer.from(M).toString("hex")}}];return await z.autofill(L)},F=(J)=>{if(!y)throw new q.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(J)},I=async(J)=>{let M=(await z.submitAndWait(J)).result;if(M.validated)return M.hash;throw new q.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:q.Chain.Ripple}})};return{broadcastTransaction:I,createSigner:O,createTransaction:B,disconnect:()=>z.disconnect(),estimateTransactionFee:U,getAddress:Y,getBalance:P,signer:y,signTransaction:F,transfer:async(J)=>{if(!y)throw new q.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let Q=await y.getAddress(),M=await B({...J,sender:Q}),Z=await F(M);return I(Z.tx_blob)},validateAddress:v}};var S=A(()=>{q=require("@swapkit/helpers"),X=require("xrpl"),_=require("xrpl"),T={ACCOUNT_NOT_FOUND:19}});S();
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=F858F59EA373234A64756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.cjs.map
|