@swapkit/toolboxes 4.15.4 → 4.15.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/aptos/index.cjs +1 -1
- package/dist/src/cardano/index.cjs +1 -1
- package/dist/src/cosmos/index.cjs +1 -1
- package/dist/src/evm/index.cjs +1 -1
- package/dist/src/hypercore/index.cjs +1 -1
- package/dist/src/index.cjs +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/near/index.cjs +1 -1
- package/dist/src/near/index.js +1 -1
- package/dist/src/radix/index.cjs +1 -1
- package/dist/src/ripple/index.cjs +1 -1
- package/dist/src/solana/index.cjs +1 -1
- package/dist/src/starknet/index.cjs +1 -1
- package/dist/src/stellar/index.cjs +1 -1
- package/dist/src/substrate/index.cjs +1 -1
- package/dist/src/sui/index.cjs +1 -1
- package/dist/src/ton/index.cjs +1 -1
- package/dist/src/tron/index.cjs +1 -1
- package/dist/src/utxo/index.cjs +1 -1
- package/dist/types/near/helpers/core.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/src/near/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames,getOwnPropertyDescriptor:__getOwnPropDesc}=Object,__hasOwnProp=Object.prototype.hasOwnProperty;function __accessProp(key){return this[key]}var __toESMCache_node,__toESMCache_esm,__toESM=(mod,isNodeMode,target)=>{var canCache=mod!=null&&typeof mod==="object";if(canCache){var cache=isNodeMode?__toESMCache_node??=new WeakMap:__toESMCache_esm??=new WeakMap,cached=cache.get(mod);if(cached)return cached}target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:__accessProp.bind(mod,key),enumerable:!0});if(canCache)cache.set(mod,to);return to},__toCommonJS=(from)=>{var entry=(__moduleCache??=new WeakMap).get(from),desc;if(entry)return entry;if(entry=__defProp({},"__esModule",{value:!0}),from&&typeof from==="object"||typeof from==="function"){for(var key of __getOwnPropNames(from))if(!__hasOwnProp.call(entry,key))__defProp(entry,key,{get:__accessProp.bind(from,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return __moduleCache.set(from,entry),entry},__moduleCache;var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0,configurable:!0,set:__exportSetter.bind(all,name)})};var __esm=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res);function validateNearAddress(address){return address.length>=2&&address.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(address)}async function getNearSignerFromPhrase(params){let{parseSeedPhrase}=await import("near-seed-phrase"),{KeyPair}=await import("@near-js/crypto"),index=params.index||0,derivationPath=params.derivationPath?import_helpers.derivationPathToString(params.derivationPath.slice(0,3)):`m/44'/397'/${index}'`,{secretKey}=parseSeedPhrase(params.phrase,derivationPath),keyPair=KeyPair.fromString(secretKey);return createNearSignerFromKeyPair(keyPair)}async function getNearSignerFromPrivateKey(privateKey){let{KeyPair}=await import("@near-js/crypto"),keyPair=KeyPair.fromString(privateKey);return createNearSignerFromKeyPair(keyPair)}function createNearSignerFromKeyPair(keyPair){return new SKKeyPairSigner(keyPair)}async function getFullAccessPublicKey(provider,accountId){let fullAccessKey=(await provider.query({account_id:accountId,finality:"final",request_type:"view_access_key_list"})).keys.find((key)=>key.access_key.permission==="FullAccess");if(!fullAccessKey)throw new import_helpers.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey}=await import("@near-js/crypto"),publicKey=PublicKey.fromString(fullAccessKey.public_key);return{nonce:fullAccessKey.access_key.nonce||0,publicKey}}var import_signers,import_helpers,SKKeyPairSigner;var init_core=__esm(()=>{import_signers=require("@near-js/signers"),import_helpers=require("@swapkit/helpers");SKKeyPairSigner=class SKKeyPairSigner extends import_signers.KeyPairSigner{#keyPair;constructor(keyPair){super(keyPair);this.#keyPair=keyPair}getAddress(){let publicKey=this.#keyPair.getPublicKey(),hexAddress=Buffer.from(publicKey.data).toString("hex");return Promise.resolve(hexAddress)}}});function isSimpleTransfer(params){return"recipient"in params&&"amount"in params&&!("contractId"in params)}function isContractCall(params){return"contractId"in params&&"methodName"in params}function isBatchTransaction(params){return"actions"in params}function isAccountCreation(params){return"newAccountId"in params}function isContractDeployment(params){return"contractCode"in params}function isCustomEstimator(params){return"customEstimator"in params}function estimateBatchGas(actions){let totalGas=0;for(let action of actions)switch(action.enum){case"transfer":totalGas+=Number(GAS_COSTS.SIMPLE_TRANSFER);break;case"functionCall":totalGas+=Number(GAS_COSTS.CONTRACT_CALL);break;case"createAccount":totalGas+=Number(GAS_COSTS.ACCOUNT_CREATION);break;case"deployContract":totalGas+=Number(GAS_COSTS.CONTRACT_DEPLOYMENT);break;case"addKey":totalGas+=Number(GAS_COSTS.ACCESS_KEY_ADDITION);break;case"deleteKey":totalGas+=Number(GAS_COSTS.ACCESS_KEY_DELETION);break;case"stake":totalGas+=Number(GAS_COSTS.STAKE);break;default:totalGas+=Number(GAS_COSTS.CONTRACT_CALL)}return totalGas.toString()}function getContractMethodGas(methodName){if(methodName==="ft_transfer"||methodName==="ft_transfer_call")return GAS_COSTS.TOKEN_TRANSFER;if(methodName==="storage_deposit")return GAS_COSTS.STORAGE_DEPOSIT;return GAS_COSTS.CONTRACT_CALL}function tgasToGas(tgas){return(BigInt(tgas)*BigInt(1000000000000)).toString()}function gasToTGas(gas){return(BigInt(gas)/BigInt(1000000000000)).toString()}var GAS_COSTS;var init_gasEstimation=__esm(()=>{GAS_COSTS={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 createNearContract({account,contractId,viewMethods,changeMethods}){let{Contract}=await import("@near-js/accounts");return new Contract(account,contractId,{changeMethods,useLocalViewExecution:!0,viewMethods})}function uniqid(){function now(){let time=Date.now(),lastTime=last||time;return last=lastTime,time>last?time:lastTime+1}return pid+now().toString(36)}function getBalance(chain){return async function(address,scamFilter=!0){let balances=await import_api.SwapKitApi.getChainBalance({address,chain,scamFilter}),{baseDecimal}=import_helpers2.getChainConfig(chain),assetValues=balances.map(({identifier,value,decimal})=>{return new import_helpers2.AssetValue({decimal:decimal||baseDecimal,identifier,value})});if(!assetValues.some((asset)=>asset.isGasAsset))return[import_helpers2.AssetValue.from({chain}),...assetValues];return assetValues}}var import_helpers2,import_api,pid,last=0;var init_utils=__esm(()=>{import_helpers2=require("@swapkit/helpers"),import_api=require("@swapkit/helpers/api"),pid=typeof process<"u"&&process.pid?process.pid.toString(36):""});function getNearToolbox(toolboxParams){let cachedSigner;async function getSigner(){if(cachedSigner)return cachedSigner;return cachedSigner=await import_ts_pattern.match(toolboxParams).with({phrase:import_ts_pattern.P.string},async(params)=>{return await getNearSignerFromPhrase(params)}).with({signer:import_ts_pattern.P.any},({signer})=>signer).otherwise(()=>{return}),cachedSigner}async function getNearProvider(){let url=await import_helpers3.getRPCUrl(import_helpers3.Chain.Near);return new import_providers.JsonRpcProvider({url})}async function getAccount(address){let{Account}=await import("@near-js/accounts"),provider=await getNearProvider(),signer=await getSigner(),accountAddress=address||await getAddress();return new Account(accountAddress,provider,signer)}async function getAddress(){let signer=await getSigner();if(!signer)throw new import_helpers3.SwapKitError("toolbox_near_no_signer");return await signer.getAddress()}async function checkStorageBalance(params){return(await createContract({changeMethods:[],contractId:params.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:params.accountId})}async function transferTokenWithStorageDeposit(params){let actions=[await createAction({args:{account_id:params.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await createAction({args:{amount:params.assetValue.getBaseValue("string"),memo:params.memo||null,receiver_id:params.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return executeBatchTransaction({actions,receiverId:params.contractId})}async function transfer(params){if(!await getSigner())throw new import_helpers3.SwapKitError("toolbox_near_no_signer");let{assetValue,recipient,memo}=params,sender=await getAddress();if(!assetValue.isGasAsset&&assetValue.address){if(!await checkStorageBalance({accountId:recipient,contractId:assetValue.address}))return transferTokenWithStorageDeposit({assetValue,contractId:assetValue.address,memo,recipient})}let transaction=await createTransaction({...params,sender});return signAndBroadcastTransaction(transaction)}async function createTransaction({recipient,assetValue,memo,attachedDeposit,sender,functionCall}){let provider=await getNearProvider();if(!validateNearAddress(recipient))throw new import_helpers3.SwapKitError("toolbox_near_invalid_address",{recipient});if(!validateNearAddress(sender))throw new import_helpers3.SwapKitError("toolbox_near_invalid_address",{sender});if(functionCall)return createContractFunctionCall({...functionCall,sender});if(!assetValue.isGasAsset){let contractId=assetValue.address;if(!contractId)throw new import_helpers3.SwapKitError("toolbox_near_missing_contract_address");return createContractFunctionCall({args:{amount:assetValue.getBaseValue("string"),memo:memo||null,receiver_id:recipient},attachedDeposit:attachedDeposit||"1",contractId,gas:"250000000000000",methodName:"ft_transfer",sender})}let{publicKey,nonce}=await getFullAccessPublicKey(provider,sender),baseAmount=assetValue.getBaseValue("bigint"),{actionCreators,createTransaction:createTransaction2}=await import("@near-js/transactions"),{baseDecode}=await import("@near-js/utils"),txActions=[actionCreators.transfer(baseAmount)];if(memo&&attachedDeposit)txActions.push(actionCreators.functionCall("memo",{memo},BigInt("250000000000000"),BigInt(attachedDeposit)));let block=await provider.block({finality:"final"}),blockHash=baseDecode(block.header.hash);return createTransaction2(sender,publicKey,recipient,nonce+1,txActions,blockHash)}function serializeTransaction(transaction){let serializedTx=transaction.encode();return Buffer.from(serializedTx).toString("base64")}async function createContractFunctionCall({args,attachedDeposit,contractId,gas,methodName,sender:accountId}){let provider=await getNearProvider(),{publicKey,nonce}=await getFullAccessPublicKey(provider,accountId),{createTransaction:createTransaction2,actionCreators}=await import("@near-js/transactions"),{baseDecode}=await import("@near-js/utils"),block=await provider.block({finality:"final"}),blockHash=baseDecode(block.header.hash),actions=[actionCreators.functionCall(methodName,Buffer.from(JSON.stringify(args)),BigInt(gas),BigInt(attachedDeposit))];return createTransaction2(accountId,publicKey,contractId,nonce+1,actions,blockHash)}async function createAction(params){let{actionCreators}=await import("@near-js/transactions");return actionCreators.functionCall(params.methodName,Buffer.from(JSON.stringify(params.args)),BigInt(params.gas),BigInt(params.attachedDeposit))}async function signTransaction(transaction){let signer=await getSigner();if(!signer)throw new import_helpers3.SwapKitError("toolbox_near_no_signer");let[_hash,signedTx]=await signer.signTransaction(transaction);return signedTx}async function broadcastTransaction(signedTransaction){return(await(await getNearProvider()).sendTransaction(signedTransaction)).transaction.hash}async function signAndBroadcastTransaction(transaction){let signer=await getSigner();if(!signer)throw new import_helpers3.SwapKitError("toolbox_near_no_signer");try{let signedTx=await signTransaction(transaction);return await broadcastTransaction(signedTx)}catch{return signer.signAndSendTransactions?.({transactions:[transaction]})}}async function estimateTransactionFee(params){let signer=await getSigner();if("assetValue"in params){let gasPrice=await getCurrentGasPrice();try{let rpcUrl=await import_helpers3.getRPCUrl(import_helpers3.Chain.Near),response=await fetch(rpcUrl,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config}}=await response.json(),{execution:receiptExecution,send_sir:receiptSendSir}=runtime_config.transaction_costs.action_receipt_creation_config,{execution:creationExecution,send_sir:creationSendSir}=runtime_config.transaction_costs.action_creation_config.transfer_cost,transferGas=BigInt(creationSendSir)+BigInt(creationExecution),receiptGas=BigInt(receiptSendSir)+BigInt(receiptExecution),totalCost=(transferGas+receiptGas)*BigInt(gasPrice.toString());return import_helpers3.AssetValue.from({chain:import_helpers3.Chain.Near,value:totalCost})}catch(error){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",error);let fallbackTransferGas=BigInt("115123062500"),fallbackReceiptGas=BigInt("108059500000"),totalCost=(fallbackTransferGas+fallbackReceiptGas)*BigInt(gasPrice.toString());return import_helpers3.AssetValue.from({chain:import_helpers3.Chain.Near,value:totalCost})}}let account=signer?await getAccount():void 0;return estimateGasLimit(params,account)}async function getCurrentGasPrice(){let provider=await getNearProvider();try{return await provider.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function createSubAccount(subAccountId,publicKey,initialBalance){if(!await getSigner())throw new import_helpers3.SwapKitError("toolbox_near_no_signer");let account=await getAccount(),{formatNearAmount}=await import("@near-js/utils"),{PublicKey}=await import("@near-js/crypto"),balanceInYocto=formatNearAmount(initialBalance)||"0";return(await account.createAccount(subAccountId,PublicKey.fromString(publicKey),BigInt(balanceInYocto))).transaction.hash}async function callFunction(params){let signer=await getSigner();try{if(!signer)throw new import_helpers3.SwapKitError("toolbox_near_no_signer");let{actionCreators}=await import("@near-js/transactions"),{contractId,methodName,args,deposit}=params,account=await getAccount(),estimatedGas=await estimateGasLimit({args:args||{},contractId,methodName}),functionAction=actionCreators.functionCall(methodName,args||{},estimatedGas.getBaseValue("bigint"),BigInt(deposit||"1"));return(await account.signAndSendTransaction({actions:[functionAction],receiverId:contractId})).transaction_outcome.id}catch(error){throw new import_helpers3.SwapKitError("toolbox_near_transfer_failed",{error})}}async function createContract(contractInterface){let account=await getAccount();return createNearContract({account,changeMethods:contractInterface.changeMethods,contractId:contractInterface.contractId,viewMethods:contractInterface.viewMethods})}async function executeBatchTransaction(batch){if(!await getSigner())throw new import_helpers3.SwapKitError("toolbox_near_no_signer");if(batch.actions.length===0)throw new import_helpers3.SwapKitError("toolbox_near_empty_batch");return(await(await getAccount()).signAndSendTransaction({actions:batch.actions,receiverId:batch.receiverId})).transaction.hash}async function estimateGasLimit(params,account){let gasInTGas=await import_ts_pattern.match(params).when(isSimpleTransfer,()=>GAS_COSTS.SIMPLE_TRANSFER).when(isContractCall,(p)=>getContractMethodGas(p.methodName)).when(isBatchTransaction,(p)=>estimateBatchGas(p.actions)).when(isAccountCreation,()=>GAS_COSTS.ACCOUNT_CREATION).when(isContractDeployment,()=>GAS_COSTS.CONTRACT_DEPLOYMENT).when(isCustomEstimator,(p)=>{if(!account)throw new import_helpers3.SwapKitError("toolbox_near_no_account");return p.customEstimator(account)}).otherwise(()=>{throw new import_helpers3.SwapKitError("toolbox_near_invalid_gas_params")}),gasInUnits=BigInt(gasInTGas)*BigInt(1000000000000);return import_helpers3.AssetValue.from({chain:import_helpers3.Chain.Near,value:gasInUnits})}function estimateGas(params,account){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),estimateGasLimit(params,account)}async function getGasPrice(){let provider=await getNearProvider();try{return(await provider.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function getPublicKey(){let signer=await getSigner();return signer?(await signer.getPublicKey()).toString():""}return{broadcastTransaction,callFunction,createAction,createContract,createContractFunctionCall,createSubAccount,createTransaction,estimateGas,estimateGasLimit,estimateTransactionFee,executeBatchTransaction,getAddress,getBalance:getBalance(import_helpers3.Chain.Near),getGasPrice,getNearProvider,getPublicKey,getSignerFromPhrase:getNearSignerFromPhrase,getSignerFromPrivateKey:getNearSignerFromPrivateKey,serializeTransaction,signAndBroadcastTransaction,signTransaction,transfer,validateAddress:validateNearAddress}}var import_providers,import_helpers3,import_ts_pattern;var init_toolbox=__esm(()=>{init_utils();init_core();init_gasEstimation();import_providers=require("@near-js/providers"),import_helpers3=require("@swapkit/helpers"),import_ts_pattern=require("ts-pattern")});var init_types=__esm(()=>{init_toolbox()});var exports_near={};__export(exports_near,{validateNearAddress:()=>validateNearAddress,tgasToGas:()=>tgasToGas,isSimpleTransfer:()=>isSimpleTransfer,isCustomEstimator:()=>isCustomEstimator,isContractDeployment:()=>isContractDeployment,isContractCall:()=>isContractCall,isBatchTransaction:()=>isBatchTransaction,isAccountCreation:()=>isAccountCreation,getNearToolbox:()=>getNearToolbox,getNearSignerFromPrivateKey:()=>getNearSignerFromPrivateKey,getNearSignerFromPhrase:()=>getNearSignerFromPhrase,getFullAccessPublicKey:()=>getFullAccessPublicKey,getContractMethodGas:()=>getContractMethodGas,gasToTGas:()=>gasToTGas,estimateBatchGas:()=>estimateBatchGas,createNearContract:()=>createNearContract,GAS_COSTS:()=>GAS_COSTS});module.exports=__toCommonJS(exports_near);var init_near=__esm(()=>{init_core();init_gasEstimation();init_toolbox();init_types()});init_near();
|
|
1
|
+
var bf=Object.create;var{getPrototypeOf:Ff,defineProperty:w,getOwnPropertyNames:Cf,getOwnPropertyDescriptor:wf}=Object,Lf=Object.prototype.hasOwnProperty;function Df(f){return this[f]}var mf,yf,kf=(f,N,E)=>{var C=f!=null&&typeof f==="object";if(C){var Y=N?mf??=new WeakMap:yf??=new WeakMap,B=Y.get(f);if(B)return B}E=f!=null?bf(Ff(f)):{};let M=N||!f||!f.__esModule?w(E,"default",{value:f,enumerable:!0}):E;for(let I of Cf(f))if(!Lf.call(M,I))w(M,I,{get:Df.bind(f,I),enumerable:!0});if(C)Y.set(f,M);return M},jf=(f)=>{var N=(Rf??=new WeakMap).get(f),E;if(N)return N;if(N=w({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var C of Cf(f))if(!Lf.call(N,C))w(N,C,{get:Df.bind(f,C),enumerable:!(E=wf(f,C))||E.enumerable})}return Rf.set(f,N),N},Rf;var Vf=(f)=>f;function Sf(f,N){this[f]=Vf.bind(null,N)}var Pf=(f,N)=>{for(var E in N)w(f,E,{get:N[E],enumerable:!0,configurable:!0,set:Sf.bind(N,E)})};var Z=(f,N)=>()=>(f&&(N=f(f=0)),N);function m(f){return f.length>=2&&f.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(f)}async function S(f){let{KeyPair:N}=await import("@near-js/crypto"),E=f.index||0,C=f.derivationPath?V.derivationPathToString(f.derivationPath.slice(0,3)):`m/44'/397'/${E}'`,{secretKey:Y}=Af.parseSeedPhrase(f.phrase,C),B=N.fromString(Y);return Bf(B)}async function K(f){let{KeyPair:N}=await import("@near-js/crypto"),E=N.fromString(f);return Bf(E)}function Bf(f){return new qf(f)}async function P(f,N){let C=(await f.query({account_id:N,finality:"final",request_type:"view_access_key_list"})).keys.find((I)=>I.access_key.permission==="FullAccess");if(!C)throw new V.SwapKitError("toolbox_near_no_public_key_found");let{PublicKey:Y}=await import("@near-js/crypto"),B=Y.fromString(C.public_key);return{nonce:C.access_key.nonce||0,publicKey:B}}var Yf,V,Af,qf;var h=Z(()=>{Yf=require("@near-js/signers"),V=require("@swapkit/helpers"),Af=kf(require("near-seed-phrase"));qf=class qf extends Yf.KeyPairSigner{#f;constructor(f){super(f);this.#f=f}getAddress(){let f=this.#f.getPublicKey(),N=Buffer.from(f.data).toString("hex");return Promise.resolve(N)}}});function o(f){return"recipient"in f&&"amount"in f&&!("contractId"in f)}function p(f){return"contractId"in f&&"methodName"in f}function l(f){return"actions"in f}function n(f){return"newAccountId"in f}function t(f){return"contractCode"in f}function d(f){return"customEstimator"in f}function i(f){let N=0;for(let E of f)switch(E.enum){case"transfer":N+=Number(q.SIMPLE_TRANSFER);break;case"functionCall":N+=Number(q.CONTRACT_CALL);break;case"createAccount":N+=Number(q.ACCOUNT_CREATION);break;case"deployContract":N+=Number(q.CONTRACT_DEPLOYMENT);break;case"addKey":N+=Number(q.ACCESS_KEY_ADDITION);break;case"deleteKey":N+=Number(q.ACCESS_KEY_DELETION);break;case"stake":N+=Number(q.STAKE);break;default:N+=Number(q.CONTRACT_CALL)}return N.toString()}function r(f){if(f==="ft_transfer"||f==="ft_transfer_call")return q.TOKEN_TRANSFER;if(f==="storage_deposit")return q.STORAGE_DEPOSIT;return q.CONTRACT_CALL}function uf(f){return(BigInt(f)*BigInt(1000000000000)).toString()}function vf(f){return(BigInt(f)/BigInt(1000000000000)).toString()}var q;var s=Z(()=>{q={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function c({account:f,contractId:N,viewMethods:E,changeMethods:C}){let{Contract:Y}=await import("@near-js/accounts");return new Y(f,N,{changeMethods:C,useLocalViewExecution:!0,viewMethods:E})}function df(){function f(){let N=Date.now(),E=e||N;return e=E,N>e?N:E+1}return gf+f().toString(36)}function Uf(f){return async function(E,C=!0){let Y=await Mf.SwapKitApi.getChainBalance({address:E,chain:f,scamFilter:C}),{baseDecimal:B}=y.getChainConfig(f),M=Y.map(({identifier:J,value:k,decimal:u})=>{return new y.AssetValue({decimal:u||B,identifier:J,value:k})});if(!M.some((J)=>J.isGasAsset))return[y.AssetValue.from({chain:f}),...M];return M}}var y,Mf,gf,e=0;var Gf=Z(()=>{y=require("@swapkit/helpers"),Mf=require("@swapkit/helpers/api"),gf=typeof process<"u"&&process.pid?process.pid.toString(36):""});function Kf(f){let N;async function E(){if(N)return N;return N=await $.match(f).with({phrase:$.P.string},async(T)=>{return await S(T)}).with({signer:$.P.any},({signer:T})=>T).otherwise(()=>{return}),N}async function C(){let T=await _.getRPCUrl(_.Chain.Near);return new If.JsonRpcProvider({url:T})}async function Y(T){let{Account:x}=await import("@near-js/accounts"),O=await C(),L=await E(),R=T||await B();return new x(R,O,L)}async function B(){let T=await E();if(!T)throw new _.SwapKitError("toolbox_near_no_signer");return await T.getAddress()}async function M(T){return(await xf({changeMethods:[],contractId:T.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:T.accountId})}async function I(T){let O=[await g({args:{account_id:T.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await g({args:{amount:T.assetValue.getBaseValue("string"),memo:T.memo||null,receiver_id:T.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return Ef({actions:O,receiverId:T.contractId})}async function J(T){if(!await E())throw new _.SwapKitError("toolbox_near_no_signer");let{assetValue:O,recipient:L,memo:R}=T,D=await B();if(!O.isGasAsset&&O.address){if(!await M({accountId:L,contractId:O.address}))return I({assetValue:O,contractId:O.address,memo:R,recipient:L})}let A=await k({...T,sender:D});return Nf(A)}async function k({recipient:T,assetValue:x,memo:O,attachedDeposit:L,sender:R,functionCall:D}){let A=await C();if(!m(T))throw new _.SwapKitError("toolbox_near_invalid_address",{recipient:T});if(!m(R))throw new _.SwapKitError("toolbox_near_invalid_address",{sender:R});if(D)return v({...D,sender:R});if(!x.isGasAsset){let _f=x.address;if(!_f)throw new _.SwapKitError("toolbox_near_missing_contract_address");return v({args:{amount:x.getBaseValue("string"),memo:O||null,receiver_id:T},attachedDeposit:L||"1",contractId:_f,gas:"250000000000000",methodName:"ft_transfer",sender:R})}let{publicKey:U,nonce:G}=await P(A,R),Q=x.getBaseValue("bigint"),{actionCreators:W,createTransaction:z}=await import("@near-js/transactions"),{baseDecode:H}=await import("@near-js/utils"),b=[W.transfer(Q)];if(O&&L)b.push(W.functionCall("memo",{memo:O},BigInt("250000000000000"),BigInt(L)));let F=await A.block({finality:"final"}),Of=H(F.header.hash);return z(R,U,T,G+1,b,Of)}function u(T){let x=T.encode();return Buffer.from(x).toString("base64")}async function v({args:T,attachedDeposit:x,contractId:O,gas:L,methodName:R,sender:D}){let A=await C(),{publicKey:U,nonce:G}=await P(A,D),{createTransaction:Q,actionCreators:W}=await import("@near-js/transactions"),{baseDecode:z}=await import("@near-js/utils"),H=await A.block({finality:"final"}),b=z(H.header.hash),F=[W.functionCall(R,Buffer.from(JSON.stringify(T)),BigInt(L),BigInt(x))];return Q(D,U,O,G+1,F,b)}async function g(T){let{actionCreators:x}=await import("@near-js/transactions");return x.functionCall(T.methodName,Buffer.from(JSON.stringify(T.args)),BigInt(T.gas),BigInt(T.attachedDeposit))}async function ff(T){let x=await E();if(!x)throw new _.SwapKitError("toolbox_near_no_signer");let[O,L]=await x.signTransaction(T);return L}async function Tf(T){return(await(await C()).sendTransaction(T)).transaction.hash}async function Nf(T){let x=await E();if(!x)throw new _.SwapKitError("toolbox_near_no_signer");try{let O=await ff(T);return await Tf(O)}catch{return x.signAndSendTransactions?.({transactions:[T]})}}async function Wf(T){let x=await E();if("assetValue"in T){let L=await Xf();try{let R=await _.getRPCUrl(_.Chain.Near),D=await fetch(R,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:A}}=await D.json(),{execution:U,send_sir:G}=A.transaction_costs.action_receipt_creation_config,{execution:Q,send_sir:W}=A.transaction_costs.action_creation_config.transfer_cost,z=BigInt(W)+BigInt(Q),H=BigInt(G)+BigInt(U),F=(z+H)*BigInt(L.toString());return _.AssetValue.from({chain:_.Chain.Near,value:F})}catch(R){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",R);let D=BigInt("115123062500"),A=BigInt("108059500000"),G=(D+A)*BigInt(L.toString());return _.AssetValue.from({chain:_.Chain.Near,value:G})}}let O=x?await Y():void 0;return j(T,O)}async function Xf(){let T=await C();try{return await T.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Zf(T,x,O){if(!await E())throw new _.SwapKitError("toolbox_near_no_signer");let R=await Y(),{formatNearAmount:D}=await import("@near-js/utils"),{PublicKey:A}=await import("@near-js/crypto"),U=D(O)||"0";return(await R.createAccount(T,A.fromString(x),BigInt(U))).transaction.hash}async function $f(T){let x=await E();try{if(!x)throw new _.SwapKitError("toolbox_near_no_signer");let{actionCreators:O}=await import("@near-js/transactions"),{contractId:L,methodName:R,args:D,deposit:A}=T,U=await Y(),G=await j({args:D||{},contractId:L,methodName:R}),Q=O.functionCall(R,D||{},G.getBaseValue("bigint"),BigInt(A||"1"));return(await U.signAndSendTransaction({actions:[Q],receiverId:L})).transaction_outcome.id}catch(O){throw new _.SwapKitError("toolbox_near_transfer_failed",{error:O})}}async function xf(T){let x=await Y();return c({account:x,changeMethods:T.changeMethods,contractId:T.contractId,viewMethods:T.viewMethods})}async function Ef(T){if(!await E())throw new _.SwapKitError("toolbox_near_no_signer");if(T.actions.length===0)throw new _.SwapKitError("toolbox_near_empty_batch");return(await(await Y()).signAndSendTransaction({actions:T.actions,receiverId:T.receiverId})).transaction.hash}async function j(T,x){let O=await $.match(T).when(o,()=>q.SIMPLE_TRANSFER).when(p,(R)=>r(R.methodName)).when(l,(R)=>i(R.actions)).when(n,()=>q.ACCOUNT_CREATION).when(t,()=>q.CONTRACT_DEPLOYMENT).when(d,(R)=>{if(!x)throw new _.SwapKitError("toolbox_near_no_account");return R.customEstimator(x)}).otherwise(()=>{throw new _.SwapKitError("toolbox_near_invalid_gas_params")}),L=BigInt(O)*BigInt(1000000000000);return _.AssetValue.from({chain:_.Chain.Near,value:L})}function Jf(T,x){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),j(T,x)}async function zf(){let T=await C();try{return(await T.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function Hf(){let T=await E();return T?(await T.getPublicKey()).toString():""}return{broadcastTransaction:Tf,callFunction:$f,createAction:g,createContract:xf,createContractFunctionCall:v,createSubAccount:Zf,createTransaction:k,estimateGas:Jf,estimateGasLimit:j,estimateTransactionFee:Wf,executeBatchTransaction:Ef,getAddress:B,getBalance:Uf(_.Chain.Near),getGasPrice:zf,getNearProvider:C,getPublicKey:Hf,getSignerFromPhrase:S,getSignerFromPrivateKey:K,serializeTransaction:u,signAndBroadcastTransaction:Nf,signTransaction:ff,transfer:J,validateAddress:m}}var If,_,$;var a=Z(()=>{Gf();h();s();If=require("@near-js/providers"),_=require("@swapkit/helpers"),$=require("ts-pattern")});var Qf=Z(()=>{a()});var hf={};Pf(hf,{validateNearAddress:()=>m,tgasToGas:()=>uf,isSimpleTransfer:()=>o,isCustomEstimator:()=>d,isContractDeployment:()=>t,isContractCall:()=>p,isBatchTransaction:()=>l,isAccountCreation:()=>n,getNearToolbox:()=>Kf,getNearSignerFromPrivateKey:()=>K,getNearSignerFromPhrase:()=>S,getFullAccessPublicKey:()=>P,getContractMethodGas:()=>r,gasToTGas:()=>vf,estimateBatchGas:()=>i,createNearContract:()=>c,GAS_COSTS:()=>q});module.exports=jf(hf);var of=Z(()=>{h();s();a();Qf()});of();
|
package/dist/src/near/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Zf=Object.defineProperty;var $f=(f)=>f;function Jf(f,N){this[f]=$f.bind(null,N)}var zf=(f,N)=>{for(var O in N)Zf(f,O,{get:N[O],enumerable:!0,configurable:!0,set:Jf.bind(N,O)})};var Z=(f,N)=>()=>(f&&(N=f(f=0)),N);var A=((f)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(f,{get:(N,O)=>(typeof require<"u"?require:N)[O]}):f)(function(f){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+f+'" is not supported')});import{KeyPairSigner as Hf}from"@near-js/signers";import{derivationPathToString as bf,SwapKitError as Ff}from"@swapkit/helpers";function w(f){return f.length>=2&&f.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(f)}async function j(f){let{parseSeedPhrase:N}=await import("near-seed-phrase"),{KeyPair:O}=await import("@near-js/crypto"),C=f.index||0,B=f.derivationPath?bf(f.derivationPath.slice(0,3)):`m/44'/397'/${C}'`,{secretKey:G}=N(f.phrase,B),I=O.fromString(G);return Rf(I)}async function v(f){let{KeyPair:N}=await import("@near-js/crypto"),O=N.fromString(f);return Rf(O)}function Rf(f){return new _f(f)}async function V(f,N){let C=(await f.query({account_id:N,finality:"final",request_type:"view_access_key_list"})).keys.find((m)=>m.access_key.permission==="FullAccess");if(!C)throw new Ff("toolbox_near_no_public_key_found");let{PublicKey:B}=await import("@near-js/crypto"),G=B.fromString(C.public_key);return{nonce:C.access_key.nonce||0,publicKey:G}}var _f;var g=Z(()=>{_f=class _f extends Hf{#f;constructor(f){super(f);this.#f=f}getAddress(){let f=this.#f.getPublicKey(),N=Buffer.from(f.data).toString("hex");return Promise.resolve(N)}}});function K(f){return"recipient"in f&&"amount"in f&&!("contractId"in f)}function h(f){return"contractId"in f&&"methodName"in f}function o(f){return"actions"in f}function l(f){return"newAccountId"in f}function p(f){return"contractCode"in f}function n(f){return"customEstimator"in f}function t(f){let N=0;for(let O of f)switch(O.enum){case"transfer":N+=Number(Y.SIMPLE_TRANSFER);break;case"functionCall":N+=Number(Y.CONTRACT_CALL);break;case"createAccount":N+=Number(Y.ACCOUNT_CREATION);break;case"deployContract":N+=Number(Y.CONTRACT_DEPLOYMENT);break;case"addKey":N+=Number(Y.ACCESS_KEY_ADDITION);break;case"deleteKey":N+=Number(Y.ACCESS_KEY_DELETION);break;case"stake":N+=Number(Y.STAKE);break;default:N+=Number(Y.CONTRACT_CALL)}return N.toString()}function d(f){if(f==="ft_transfer"||f==="ft_transfer_call")return Y.TOKEN_TRANSFER;if(f==="storage_deposit")return Y.STORAGE_DEPOSIT;return Y.CONTRACT_CALL}function wf(f){return(BigInt(f)*BigInt(1000000000000)).toString()}function mf(f){return(BigInt(f)/BigInt(1000000000000)).toString()}var Y;var i=Z(()=>{Y={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function r({account:f,contractId:N,viewMethods:O,changeMethods:C}){let{Contract:B}=await import("@near-js/accounts");return new B(f,N,{changeMethods:C,useLocalViewExecution:!0,viewMethods:O})}import{AssetValue as Cf,getChainConfig as yf}from"@swapkit/helpers";import{SwapKitApi as kf}from"@swapkit/helpers/api";function tf(){function f(){let N=Date.now(),O=s||N;return s=O,N>s?N:O+1}return jf+f().toString(36)}function Lf(f){return async function(O,C=!0){let B=await kf.getChainBalance({address:O,chain:f,scamFilter:C}),{baseDecimal:G}=yf(f),I=B.map(({identifier:J,value:y,decimal:S})=>{return new Cf({decimal:S||G,identifier:J,value:y})});if(!I.some((J)=>J.isGasAsset))return[Cf.from({chain:f}),...I];return I}}var jf,s=0;var Df=Z(()=>{jf=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{JsonRpcProvider as Vf}from"@near-js/providers";import{AssetValue as c,Chain as $,getRPCUrl as Yf,SwapKitError as q}from"@swapkit/helpers";import{match as Af,P as qf}from"ts-pattern";function Sf(f){let N;async function O(){if(N)return N;return N=await Af(f).with({phrase:qf.string},async(T)=>{return await j(T)}).with({signer:qf.any},({signer:T})=>T).otherwise(()=>{return}),N}async function C(){let T=await Yf($.Near);return new Vf({url:T})}async function B(T){let{Account:x}=await import("@near-js/accounts"),E=await C(),R=await O(),_=T||await G();return new x(_,E,R)}async function G(){let T=await O();if(!T)throw new q("toolbox_near_no_signer");return await T.getAddress()}async function I(T){return(await Nf({changeMethods:[],contractId:T.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:T.accountId})}async function m(T){let E=[await u({args:{account_id:T.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await u({args:{amount:T.assetValue.getBaseValue("string"),memo:T.memo||null,receiver_id:T.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return xf({actions:E,receiverId:T.contractId})}async function J(T){if(!await O())throw new q("toolbox_near_no_signer");let{assetValue:E,recipient:R,memo:_}=T,L=await G();if(!E.isGasAsset&&E.address){if(!await I({accountId:R,contractId:E.address}))return m({assetValue:E,contractId:E.address,memo:_,recipient:R})}let D=await y({...T,sender:L});return Tf(D)}async function y({recipient:T,assetValue:x,memo:E,attachedDeposit:R,sender:_,functionCall:L}){let D=await C();if(!w(T))throw new q("toolbox_near_invalid_address",{recipient:T});if(!w(_))throw new q("toolbox_near_invalid_address",{sender:_});if(L)return P({...L,sender:_});if(!x.isGasAsset){let Of=x.address;if(!Of)throw new q("toolbox_near_missing_contract_address");return P({args:{amount:x.getBaseValue("string"),memo:E||null,receiver_id:T},attachedDeposit:R||"1",contractId:Of,gas:"250000000000000",methodName:"ft_transfer",sender:_})}let{publicKey:M,nonce:U}=await V(D,_),Q=x.getBaseValue("bigint"),{actionCreators:W,createTransaction:z}=await import("@near-js/transactions"),{baseDecode:H}=await import("@near-js/utils"),b=[W.transfer(Q)];if(E&&R)b.push(W.functionCall("memo",{memo:E},BigInt("250000000000000"),BigInt(R)));let F=await D.block({finality:"final"}),Ef=H(F.header.hash);return z(_,M,T,U+1,b,Ef)}function S(T){let x=T.encode();return Buffer.from(x).toString("base64")}async function P({args:T,attachedDeposit:x,contractId:E,gas:R,methodName:_,sender:L}){let D=await C(),{publicKey:M,nonce:U}=await V(D,L),{createTransaction:Q,actionCreators:W}=await import("@near-js/transactions"),{baseDecode:z}=await import("@near-js/utils"),H=await D.block({finality:"final"}),b=z(H.header.hash),F=[W.functionCall(_,Buffer.from(JSON.stringify(T)),BigInt(R),BigInt(x))];return Q(L,M,E,U+1,F,b)}async function u(T){let{actionCreators:x}=await import("@near-js/transactions");return x.functionCall(T.methodName,Buffer.from(JSON.stringify(T.args)),BigInt(T.gas),BigInt(T.attachedDeposit))}async function a(T){let x=await O();if(!x)throw new q("toolbox_near_no_signer");let[E,R]=await x.signTransaction(T);return R}async function ff(T){return(await(await C()).sendTransaction(T)).transaction.hash}async function Tf(T){let x=await O();if(!x)throw new q("toolbox_near_no_signer");try{let E=await a(T);return await ff(E)}catch{return x.signAndSendTransactions?.({transactions:[T]})}}async function Mf(T){let x=await O();if("assetValue"in T){let R=await Uf();try{let _=await Yf($.Near),L=await fetch(_,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:D}}=await L.json(),{execution:M,send_sir:U}=D.transaction_costs.action_receipt_creation_config,{execution:Q,send_sir:W}=D.transaction_costs.action_creation_config.transfer_cost,z=BigInt(W)+BigInt(Q),H=BigInt(U)+BigInt(M),F=(z+H)*BigInt(R.toString());return c.from({chain:$.Near,value:F})}catch(_){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",_);let L=BigInt("115123062500"),D=BigInt("108059500000"),U=(L+D)*BigInt(R.toString());return c.from({chain:$.Near,value:U})}}let E=x?await B():void 0;return k(T,E)}async function Uf(){let T=await C();try{return await T.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Gf(T,x,E){if(!await O())throw new q("toolbox_near_no_signer");let _=await B(),{formatNearAmount:L}=await import("@near-js/utils"),{PublicKey:D}=await import("@near-js/crypto"),M=L(E)||"0";return(await _.createAccount(T,D.fromString(x),BigInt(M))).transaction.hash}async function If(T){let x=await O();try{if(!x)throw new q("toolbox_near_no_signer");let{actionCreators:E}=await import("@near-js/transactions"),{contractId:R,methodName:_,args:L,deposit:D}=T,M=await B(),U=await k({args:L||{},contractId:R,methodName:_}),Q=E.functionCall(_,L||{},U.getBaseValue("bigint"),BigInt(D||"1"));return(await M.signAndSendTransaction({actions:[Q],receiverId:R})).transaction_outcome.id}catch(E){throw new q("toolbox_near_transfer_failed",{error:E})}}async function Nf(T){let x=await B();return r({account:x,changeMethods:T.changeMethods,contractId:T.contractId,viewMethods:T.viewMethods})}async function xf(T){if(!await O())throw new q("toolbox_near_no_signer");if(T.actions.length===0)throw new q("toolbox_near_empty_batch");return(await(await B()).signAndSendTransaction({actions:T.actions,receiverId:T.receiverId})).transaction.hash}async function k(T,x){let E=await Af(T).when(K,()=>Y.SIMPLE_TRANSFER).when(h,(_)=>d(_.methodName)).when(o,(_)=>t(_.actions)).when(l,()=>Y.ACCOUNT_CREATION).when(p,()=>Y.CONTRACT_DEPLOYMENT).when(n,(_)=>{if(!x)throw new q("toolbox_near_no_account");return _.customEstimator(x)}).otherwise(()=>{throw new q("toolbox_near_invalid_gas_params")}),R=BigInt(E)*BigInt(1000000000000);return c.from({chain:$.Near,value:R})}function Qf(T,x){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),k(T,x)}async function Wf(){let T=await C();try{return(await T.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function Xf(){let T=await O();return T?(await T.getPublicKey()).toString():""}return{broadcastTransaction:ff,callFunction:If,createAction:u,createContract:Nf,createContractFunctionCall:P,createSubAccount:Gf,createTransaction:y,estimateGas:Qf,estimateGasLimit:k,estimateTransactionFee:Mf,executeBatchTransaction:xf,getAddress:G,getBalance:Lf($.Near),getGasPrice:Wf,getNearProvider:C,getPublicKey:Xf,getSignerFromPhrase:j,getSignerFromPrivateKey:v,serializeTransaction:S,signAndBroadcastTransaction:Tf,signTransaction:a,transfer:J,validateAddress:w}}var e=Z(()=>{Df();g();i()});var Bf=Z(()=>{e()});var Pf={};zf(Pf,{validateNearAddress:()=>w,tgasToGas:()=>wf,isSimpleTransfer:()=>K,isCustomEstimator:()=>n,isContractDeployment:()=>p,isContractCall:()=>h,isBatchTransaction:()=>o,isAccountCreation:()=>l,getNearToolbox:()=>Sf,getNearSignerFromPrivateKey:()=>v,getNearSignerFromPhrase:()=>j,getFullAccessPublicKey:()=>V,getContractMethodGas:()=>d,gasToTGas:()=>mf,estimateBatchGas:()=>t,createNearContract:()=>r,GAS_COSTS:()=>Y});var uf=Z(()=>{g();i();e();Bf()});uf();export{w as validateNearAddress,wf as tgasToGas,K as isSimpleTransfer,n as isCustomEstimator,p as isContractDeployment,h as isContractCall,o as isBatchTransaction,l as isAccountCreation,Sf as getNearToolbox,v as getNearSignerFromPrivateKey,j as getNearSignerFromPhrase,V as getFullAccessPublicKey,d as getContractMethodGas,mf as gasToTGas,t as estimateBatchGas,r as createNearContract,Y as GAS_COSTS};
|
|
1
|
+
var $f=Object.defineProperty;var Jf=(f)=>f;function zf(f,N){this[f]=Jf.bind(null,N)}var Hf=(f,N)=>{for(var O in N)$f(f,O,{get:N[O],enumerable:!0,configurable:!0,set:zf.bind(N,O)})};var Z=(f,N)=>()=>(f&&(N=f(f=0)),N);var B=((f)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(f,{get:(N,O)=>(typeof require<"u"?require:N)[O]}):f)(function(f){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+f+'" is not supported')});import{KeyPairSigner as bf}from"@near-js/signers";import{derivationPathToString as Ff,SwapKitError as wf}from"@swapkit/helpers";import*as _f from"near-seed-phrase";function w(f){return f.length>=2&&f.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(f)}async function j(f){let{KeyPair:N}=await import("@near-js/crypto"),O=f.index||0,C=f.derivationPath?Ff(f.derivationPath.slice(0,3)):`m/44'/397'/${O}'`,{secretKey:q}=_f.parseSeedPhrase(f.phrase,C),G=N.fromString(q);return Cf(G)}async function v(f){let{KeyPair:N}=await import("@near-js/crypto"),O=N.fromString(f);return Cf(O)}function Cf(f){return new Rf(f)}async function V(f,N){let C=(await f.query({account_id:N,finality:"final",request_type:"view_access_key_list"})).keys.find((m)=>m.access_key.permission==="FullAccess");if(!C)throw new wf("toolbox_near_no_public_key_found");let{PublicKey:q}=await import("@near-js/crypto"),G=q.fromString(C.public_key);return{nonce:C.access_key.nonce||0,publicKey:G}}var Rf;var g=Z(()=>{Rf=class Rf extends bf{#f;constructor(f){super(f);this.#f=f}getAddress(){let f=this.#f.getPublicKey(),N=Buffer.from(f.data).toString("hex");return Promise.resolve(N)}}});function K(f){return"recipient"in f&&"amount"in f&&!("contractId"in f)}function h(f){return"contractId"in f&&"methodName"in f}function o(f){return"actions"in f}function p(f){return"newAccountId"in f}function l(f){return"contractCode"in f}function n(f){return"customEstimator"in f}function t(f){let N=0;for(let O of f)switch(O.enum){case"transfer":N+=Number(Y.SIMPLE_TRANSFER);break;case"functionCall":N+=Number(Y.CONTRACT_CALL);break;case"createAccount":N+=Number(Y.ACCOUNT_CREATION);break;case"deployContract":N+=Number(Y.CONTRACT_DEPLOYMENT);break;case"addKey":N+=Number(Y.ACCESS_KEY_ADDITION);break;case"deleteKey":N+=Number(Y.ACCESS_KEY_DELETION);break;case"stake":N+=Number(Y.STAKE);break;default:N+=Number(Y.CONTRACT_CALL)}return N.toString()}function d(f){if(f==="ft_transfer"||f==="ft_transfer_call")return Y.TOKEN_TRANSFER;if(f==="storage_deposit")return Y.STORAGE_DEPOSIT;return Y.CONTRACT_CALL}function mf(f){return(BigInt(f)*BigInt(1000000000000)).toString()}function yf(f){return(BigInt(f)/BigInt(1000000000000)).toString()}var Y;var i=Z(()=>{Y={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function r({account:f,contractId:N,viewMethods:O,changeMethods:C}){let{Contract:q}=await import("@near-js/accounts");return new q(f,N,{changeMethods:C,useLocalViewExecution:!0,viewMethods:O})}import{AssetValue as Lf,getChainConfig as kf}from"@swapkit/helpers";import{SwapKitApi as jf}from"@swapkit/helpers/api";function df(){function f(){let N=Date.now(),O=s||N;return s=O,N>s?N:O+1}return Vf+f().toString(36)}function Df(f){return async function(O,C=!0){let q=await jf.getChainBalance({address:O,chain:f,scamFilter:C}),{baseDecimal:G}=kf(f),X=q.map(({identifier:J,value:y,decimal:S})=>{return new Lf({decimal:S||G,identifier:J,value:y})});if(!X.some((J)=>J.isGasAsset))return[Lf.from({chain:f}),...X];return X}}var Vf,s=0;var Yf=Z(()=>{Vf=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{JsonRpcProvider as Sf}from"@near-js/providers";import{AssetValue as c,Chain as $,getRPCUrl as Af,SwapKitError as A}from"@swapkit/helpers";import{match as qf,P as Bf}from"ts-pattern";function Pf(f){let N;async function O(){if(N)return N;return N=await qf(f).with({phrase:Bf.string},async(T)=>{return await j(T)}).with({signer:Bf.any},({signer:T})=>T).otherwise(()=>{return}),N}async function C(){let T=await Af($.Near);return new Sf({url:T})}async function q(T){let{Account:x}=await import("@near-js/accounts"),E=await C(),R=await O(),_=T||await G();return new x(_,E,R)}async function G(){let T=await O();if(!T)throw new A("toolbox_near_no_signer");return await T.getAddress()}async function X(T){return(await Nf({changeMethods:[],contractId:T.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:T.accountId})}async function m(T){let E=[await u({args:{account_id:T.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await u({args:{amount:T.assetValue.getBaseValue("string"),memo:T.memo||null,receiver_id:T.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return xf({actions:E,receiverId:T.contractId})}async function J(T){if(!await O())throw new A("toolbox_near_no_signer");let{assetValue:E,recipient:R,memo:_}=T,L=await G();if(!E.isGasAsset&&E.address){if(!await X({accountId:R,contractId:E.address}))return m({assetValue:E,contractId:E.address,memo:_,recipient:R})}let D=await y({...T,sender:L});return Tf(D)}async function y({recipient:T,assetValue:x,memo:E,attachedDeposit:R,sender:_,functionCall:L}){let D=await C();if(!w(T))throw new A("toolbox_near_invalid_address",{recipient:T});if(!w(_))throw new A("toolbox_near_invalid_address",{sender:_});if(L)return P({...L,sender:_});if(!x.isGasAsset){let Of=x.address;if(!Of)throw new A("toolbox_near_missing_contract_address");return P({args:{amount:x.getBaseValue("string"),memo:E||null,receiver_id:T},attachedDeposit:R||"1",contractId:Of,gas:"250000000000000",methodName:"ft_transfer",sender:_})}let{publicKey:M,nonce:U}=await V(D,_),I=x.getBaseValue("bigint"),{actionCreators:Q,createTransaction:z}=await import("@near-js/transactions"),{baseDecode:H}=await import("@near-js/utils"),b=[Q.transfer(I)];if(E&&R)b.push(Q.functionCall("memo",{memo:E},BigInt("250000000000000"),BigInt(R)));let F=await D.block({finality:"final"}),Ef=H(F.header.hash);return z(_,M,T,U+1,b,Ef)}function S(T){let x=T.encode();return Buffer.from(x).toString("base64")}async function P({args:T,attachedDeposit:x,contractId:E,gas:R,methodName:_,sender:L}){let D=await C(),{publicKey:M,nonce:U}=await V(D,L),{createTransaction:I,actionCreators:Q}=await import("@near-js/transactions"),{baseDecode:z}=await import("@near-js/utils"),H=await D.block({finality:"final"}),b=z(H.header.hash),F=[Q.functionCall(_,Buffer.from(JSON.stringify(T)),BigInt(R),BigInt(x))];return I(L,M,E,U+1,F,b)}async function u(T){let{actionCreators:x}=await import("@near-js/transactions");return x.functionCall(T.methodName,Buffer.from(JSON.stringify(T.args)),BigInt(T.gas),BigInt(T.attachedDeposit))}async function a(T){let x=await O();if(!x)throw new A("toolbox_near_no_signer");let[E,R]=await x.signTransaction(T);return R}async function ff(T){return(await(await C()).sendTransaction(T)).transaction.hash}async function Tf(T){let x=await O();if(!x)throw new A("toolbox_near_no_signer");try{let E=await a(T);return await ff(E)}catch{return x.signAndSendTransactions?.({transactions:[T]})}}async function Uf(T){let x=await O();if("assetValue"in T){let R=await Gf();try{let _=await Af($.Near),L=await fetch(_,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:D}}=await L.json(),{execution:M,send_sir:U}=D.transaction_costs.action_receipt_creation_config,{execution:I,send_sir:Q}=D.transaction_costs.action_creation_config.transfer_cost,z=BigInt(Q)+BigInt(I),H=BigInt(U)+BigInt(M),F=(z+H)*BigInt(R.toString());return c.from({chain:$.Near,value:F})}catch(_){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",_);let L=BigInt("115123062500"),D=BigInt("108059500000"),U=(L+D)*BigInt(R.toString());return c.from({chain:$.Near,value:U})}}let E=x?await q():void 0;return k(T,E)}async function Gf(){let T=await C();try{return await T.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function If(T,x,E){if(!await O())throw new A("toolbox_near_no_signer");let _=await q(),{formatNearAmount:L}=await import("@near-js/utils"),{PublicKey:D}=await import("@near-js/crypto"),M=L(E)||"0";return(await _.createAccount(T,D.fromString(x),BigInt(M))).transaction.hash}async function Qf(T){let x=await O();try{if(!x)throw new A("toolbox_near_no_signer");let{actionCreators:E}=await import("@near-js/transactions"),{contractId:R,methodName:_,args:L,deposit:D}=T,M=await q(),U=await k({args:L||{},contractId:R,methodName:_}),I=E.functionCall(_,L||{},U.getBaseValue("bigint"),BigInt(D||"1"));return(await M.signAndSendTransaction({actions:[I],receiverId:R})).transaction_outcome.id}catch(E){throw new A("toolbox_near_transfer_failed",{error:E})}}async function Nf(T){let x=await q();return r({account:x,changeMethods:T.changeMethods,contractId:T.contractId,viewMethods:T.viewMethods})}async function xf(T){if(!await O())throw new A("toolbox_near_no_signer");if(T.actions.length===0)throw new A("toolbox_near_empty_batch");return(await(await q()).signAndSendTransaction({actions:T.actions,receiverId:T.receiverId})).transaction.hash}async function k(T,x){let E=await qf(T).when(K,()=>Y.SIMPLE_TRANSFER).when(h,(_)=>d(_.methodName)).when(o,(_)=>t(_.actions)).when(p,()=>Y.ACCOUNT_CREATION).when(l,()=>Y.CONTRACT_DEPLOYMENT).when(n,(_)=>{if(!x)throw new A("toolbox_near_no_account");return _.customEstimator(x)}).otherwise(()=>{throw new A("toolbox_near_invalid_gas_params")}),R=BigInt(E)*BigInt(1000000000000);return c.from({chain:$.Near,value:R})}function Wf(T,x){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),k(T,x)}async function Xf(){let T=await C();try{return(await T.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function Zf(){let T=await O();return T?(await T.getPublicKey()).toString():""}return{broadcastTransaction:ff,callFunction:Qf,createAction:u,createContract:Nf,createContractFunctionCall:P,createSubAccount:If,createTransaction:y,estimateGas:Wf,estimateGasLimit:k,estimateTransactionFee:Uf,executeBatchTransaction:xf,getAddress:G,getBalance:Df($.Near),getGasPrice:Xf,getNearProvider:C,getPublicKey:Zf,getSignerFromPhrase:j,getSignerFromPrivateKey:v,serializeTransaction:S,signAndBroadcastTransaction:Tf,signTransaction:a,transfer:J,validateAddress:w}}var e=Z(()=>{Yf();g();i()});var Mf=Z(()=>{e()});var uf={};Hf(uf,{validateNearAddress:()=>w,tgasToGas:()=>mf,isSimpleTransfer:()=>K,isCustomEstimator:()=>n,isContractDeployment:()=>l,isContractCall:()=>h,isBatchTransaction:()=>o,isAccountCreation:()=>p,getNearToolbox:()=>Pf,getNearSignerFromPrivateKey:()=>v,getNearSignerFromPhrase:()=>j,getFullAccessPublicKey:()=>V,getContractMethodGas:()=>d,gasToTGas:()=>yf,estimateBatchGas:()=>t,createNearContract:()=>r,GAS_COSTS:()=>Y});var vf=Z(()=>{g();i();e();Mf()});vf();export{w as validateNearAddress,mf as tgasToGas,K as isSimpleTransfer,n as isCustomEstimator,l as isContractDeployment,h as isContractCall,o as isBatchTransaction,p as isAccountCreation,Pf as getNearToolbox,v as getNearSignerFromPrivateKey,j as getNearSignerFromPhrase,V as getFullAccessPublicKey,d as getContractMethodGas,yf as gasToTGas,t as estimateBatchGas,r as createNearContract,Y as GAS_COSTS};
|
package/dist/src/radix/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var v=Object.create;var{getPrototypeOf:B,defineProperty:U,getOwnPropertyNames:Y,getOwnPropertyDescriptor:C}=Object,Z=Object.prototype.hasOwnProperty;function _(j){return this[j]}var D,I,g=(j,z,G)=>{var H=j!=null&&typeof j==="object";if(H){var J=z?D??=new WeakMap:I??=new WeakMap,K=J.get(j);if(K)return K}G=j!=null?v(B(j)):{};let N=z||!j||!j.__esModule?U(G,"default",{value:j,enumerable:!0}):G;for(let O of Y(j))if(!Z.call(N,O))U(N,O,{get:_.bind(j,O),enumerable:!0});if(H)J.set(j,N);return N},S=(j)=>{var z=(X??=new WeakMap).get(j),G;if(z)return z;if(z=U({},"__esModule",{value:!0}),j&&typeof j==="object"||typeof j==="function"){for(var H of Y(j))if(!Z.call(z,H))U(z,H,{get:_.bind(j,H),enumerable:!(G=C(j,H))||G.enumerable})}return X.set(j,z),z},X;var h=(j)=>j;function E(j,z){this[j]=h.bind(null,z)}var F=(j,z)=>{for(var G in z)U(j,G,{get:z[G],enumerable:!0,configurable:!0,set:E.bind(z,G)})};var P=(j,z)=>()=>(j&&(z=j(j=0)),z);var k={};F(k,{validateRadixAddress:()=>x,getRadixToolbox:()=>d});module.exports=S(k);function x(j){return j.startsWith("account_rdx1")&&j.length===66}function R({networkApi:j}){return async function(G){let H=await f({address:G,networkApi:j}),J=await w({networkApi:j,resources:H});if(!J.some((N)=>N.isGasAsset))return[M.AssetValue.from({chain:M.Chain.Radix}),...J];return J}}async function f({address:j,networkApi:z}){let G=!0,H,J=[],K=await A(z);while(G){let N={address:j,at_ledger_state:{state_version:K},cursor:H,limit_per_page:100},O=await z.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:N});if(J=J.concat(O.items),O.next_cursor)H=O.next_cursor;else G=!1}return J}async function w({resources:j,networkApi:z}){let G=[],H=50,J=[];for(let K=0;K<j.length;K+=50)J.push(j.slice(K,K+50));for(let K of J){let N=K.map((L)=>L.resource_address),O=await z.state.getEntityDetailsVaultAggregated(N),W=new Map;for(let L of O)if(L.details!==void 0){let Q=L.metadata?.items.find((T)=>T.key==="symbol"),V=Q?.value.typed.type==="String"?Q.value.typed.value:"?";if(L.details.type==="FungibleResource")W.set(L.address,{decimals:L.details.divisibility,symbol:V})}for(let L of K)if(L.aggregation_level==="Global"){let Q=W.get(L.resource_address)||{decimals:0,symbol:"?"},V=M.AssetValue.from({asset:Q.symbol!==M.Chain.Radix?`${M.Chain.Radix}.${Q.symbol}-${L.resource_address}`:"XRD.XRD",value:L.amount});G.push(V)}}return G}async function A(j){return(await j.status.getCurrent()).ledger_state.state_version}function d({dappConfig:j}={}){let z=j||M.SKConfig.get("integrations").radix,G=q.RadixDappToolkit({...z,networkId:z.network?.networkId||1}),H=$.GatewayApiClient.initialize(G.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:R({networkApi:H}),networkApi:H,signAndBroadcast:()=>{throw new M.SwapKitError("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:x}}var $,q,M;var y=P(()=>{$=require("@radixdlt/babylon-gateway-api-sdk"),q=require("@radixdlt/radix-dapp-toolkit"),M=require("@swapkit/helpers")});y();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames,getOwnPropertyDescriptor:__getOwnPropDesc}=Object,__hasOwnProp=Object.prototype.hasOwnProperty;function __accessProp(key){return this[key]}var __toESMCache_node,__toESMCache_esm,__toESM=(mod,isNodeMode,target)=>{var canCache=mod!=null&&typeof mod==="object";if(canCache){var cache=isNodeMode?__toESMCache_node??=new WeakMap:__toESMCache_esm??=new WeakMap,cached=cache.get(mod);if(cached)return cached}target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:__accessProp.bind(mod,key),enumerable:!0});if(canCache)cache.set(mod,to);return to},__toCommonJS=(from)=>{var entry=(__moduleCache??=new WeakMap).get(from),desc;if(entry)return entry;if(entry=__defProp({},"__esModule",{value:!0}),from&&typeof from==="object"||typeof from==="function"){for(var key of __getOwnPropNames(from))if(!__hasOwnProp.call(entry,key))__defProp(entry,key,{get:__accessProp.bind(from,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return __moduleCache.set(from,entry),entry},__moduleCache;var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0,configurable:!0,set:__exportSetter.bind(all,name)})};var __esm=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res);function isHexCurrency(code){return/^[0-9A-Fa-f]{40}$/.test(code)}function currencyToHex(currency){if(isHexCurrency(currency))return currency.toUpperCase();if(currency.length<=3){let asciiHex=Buffer.from(currency.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${asciiHex}${"0".repeat(10)}`.toUpperCase()}let hex=Buffer.from(currency).toString("hex").toUpperCase();if(hex.length>40)throw new import_helpers.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:currency,reason:"Currency exceeds maximum length (20 bytes)"}});return hex.padEnd(40,"0")}function hexToCurrency(hex){if(!isHexCurrency(hex))return hex;if(hex.toUpperCase().startsWith("00")){let asciiHex=hex.slice(24,30);try{let decoded=Buffer.from(asciiHex,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(decoded)&&decoded.length>0)return decoded}catch{}return hex.toUpperCase()}try{let trimmedHex=hex.replace(/0+$/,""),evenHex=trimmedHex.length%2===0?trimmedHex:`${trimmedHex}0`,decoded=Buffer.from(evenHex,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(decoded))return decoded}catch{}return hex.toUpperCase()}function normalizeCurrency(code){if(isHexCurrency(code))return code.toUpperCase();if(code.length<=3)return code;return currencyToHex(code)}var import_helpers;var init_currency=__esm(()=>{import_helpers=require("@swapkit/helpers")});async function getXrplTokenInfo(currency,issuer){let normalized=normalizeCurrency(currency),knownToken=XRPL_KNOWN_TOKENS.find((t)=>normalizeCurrency(t.currency)===normalized&&t.issuer===issuer);if(knownToken)return knownToken;try{let response=await import_helpers2.RequestClient.get(`https://api.xrplmeta.org/token/${currency}:${issuer}`);if(response)return{currency,decimals:15,description:response.desc,domain:response.domain,icon:response.icon,issuer,name:response.name,verified:response.self_assessment?.is_regulated||response.self_assessment?.is_licensed}}catch(error){import_helpers2.warnOnce({condition:!0,id:`xrpl_token_lookup_${currency}_${issuer}`,warning:`Failed to fetch XRPL token info for ${currency}:${issuer}: ${error}`})}return{currency,decimals:15,issuer,verified:!1}}function getKnownTokensByIssuer(issuer){return XRPL_KNOWN_TOKENS.filter((t)=>t.issuer===issuer)}function isKnownToken(currency,issuer){let normalized=normalizeCurrency(currency);return XRPL_KNOWN_TOKENS.some((t)=>normalizeCurrency(t.currency)===normalized&&t.issuer===issuer)}var import_helpers2,XRPL_KNOWN_TOKENS;var init_tokens=__esm(()=>{init_currency();import_helpers2=require("@swapkit/helpers"),XRPL_KNOWN_TOKENS=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var exports_ripple={};__export(exports_ripple,{validateRippleAddress:()=>validateRippleAddress,parseXrplTokenIdentifier:()=>parseXrplTokenIdentifier,normalizeCurrency:()=>normalizeCurrency,isKnownToken:()=>isKnownToken,isHexCurrency:()=>isHexCurrency,hexToCurrency:()=>hexToCurrency,hashes:()=>import_xrpl2.hashes,getXrplTokenInfo:()=>getXrplTokenInfo,getRippleToolbox:()=>getRippleToolbox,getKnownTokensByIssuer:()=>getKnownTokensByIssuer,formatXrplTokenIdentifier:()=>formatXrplTokenIdentifier,currencyToHex:()=>currencyToHex,XRPL_TOKEN_ERROR_CODES:()=>XRPL_TOKEN_ERROR_CODES,XRPL_KNOWN_TOKENS:()=>XRPL_KNOWN_TOKENS});module.exports=__toCommonJS(exports_ripple);function parseXrplTokenIdentifier(identifier){let result=identifier.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!result?.[1]||!result?.[2])return null;if(!import_xrpl.isValidAddress(result[2]))return null;return{currency:result[1],issuer:result[2]}}function formatXrplTokenIdentifier(currency2,issuer){return`${import_helpers3.Chain.Ripple}.${currency2}-${issuer}`}function buildTransactionAmount(assetValue){if(assetValue.isGasAsset)return import_xrpl.xrpToDrops(assetValue.getValue("string"));let tokenInfo=parseXrplTokenIdentifier(assetValue.toString());if(!tokenInfo)throw new import_helpers3.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:assetValue.toString()}});return{currency:tokenInfo.currency,issuer:tokenInfo.issuer,value:assetValue.getValue("string")}}function createSigner(phrase){let wallet=import_xrpl.Wallet.fromMnemonic(phrase);return{getAddress:()=>Promise.resolve(wallet.address),signTransaction:(tx)=>Promise.resolve(wallet.sign(tx))}}function validateRippleAddress(address){return import_xrpl.isValidAddress(address)}function getRippleToolbox(params={}){let signer=import_ts_pattern.match(params).with({phrase:import_ts_pattern.P.string},({phrase})=>createSigner(phrase)).with({signer:import_ts_pattern.P.any},({signer:signer2})=>signer2).otherwise(()=>{return}),client;async function createRippleClient(){let rpcUrl=await import_helpers3.getRPCUrl(import_helpers3.Chain.Ripple);if(!rpcUrl)throw new import_helpers3.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:import_helpers3.Chain.Ripple}});let client2=new import_xrpl.Client(rpcUrl);return await client2.connect(),client2}async function getClient(){if(client){let clientPromise=await client.catch(()=>null);if(clientPromise?.isConnected())return clientPromise}return client=createRippleClient(),client}let getAddress=()=>{if(!signer)throw new import_helpers3.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return signer.getAddress()},getBalance=async(checkAddress)=>{let address=checkAddress||await getAddress(),{baseDecimal}=import_helpers3.getChainConfig(import_helpers3.Chain.Ripple),client2=await getClient();try{let[accountInfo,accountLines]=await Promise.all([client2.request({account:address,command:"account_info"}),client2.request({account:address,command:"account_lines"})]),xrpBalance=accountInfo.result.account_data.Balance,balances=[import_helpers3.AssetValue.from({chain:import_helpers3.Chain.Ripple,fromBaseDecimal:baseDecimal,value:xrpBalance})];for(let line of accountLines.result.lines){let tokenIdentifier=formatXrplTokenIdentifier(line.currency,line.account);if(Number.parseFloat(line.balance)!==0)balances.push(import_helpers3.AssetValue.from({asset:tokenIdentifier,asyncTokenLookup:!1,value:line.balance}))}return balances}catch(error){if(error.data?.error_code===RIPPLE_ERROR_CODES.ACCOUNT_NOT_FOUND)return[import_helpers3.AssetValue.from({chain:import_helpers3.Chain.Ripple,value:0})];throw new import_helpers3.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{address,error}})}},estimateTransactionFee=async()=>{let{baseDecimal}=import_helpers3.getChainConfig(import_helpers3.Chain.Ripple),feeDrops=(await(await getClient()).request({command:"fee"})).result.drops.open_ledger_fee;return import_helpers3.AssetValue.from({chain:import_helpers3.Chain.Ripple,fromBaseDecimal:baseDecimal,value:feeDrops})};async function getTrustLines(address){let targetAddress=address||await getAddress(),client2=await getClient();try{return(await client2.request({account:targetAddress,command:"account_lines"})).result.lines.map((line)=>({account:line.account,authorized:line.authorized??!1,balance:line.balance,currency:line.currency,freeze:line.freeze??!1,freezePeer:line.freeze_peer??!1,limit:line.limit,limitPeer:line.limit_peer,noRipple:line.no_ripple??!1,noRipplePeer:line.no_ripple_peer??!1,peerAuthorized:line.peer_authorized??!1,qualityIn:line.quality_in??0,qualityOut:line.quality_out??0}))}catch(error){if(error.data?.error_code===RIPPLE_ERROR_CODES.ACCOUNT_NOT_FOUND)return[];throw new import_helpers3.SwapKitError({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:targetAddress,error}})}}async function hasTrustLine({address,currency:currency2,issuer}){let trustLines=await getTrustLines(address),normalizedInput=currencyToHex(currency2);return trustLines.some((line)=>{return currencyToHex(line.currency)===normalizedInput&&line.account===issuer})}async function setTrustLine({currency:currency2,issuer,limit,sender}){let senderAddress=sender||await getAddress();if(!validateRippleAddress(issuer))throw new import_helpers3.SwapKitError({errorKey:"core_transaction_invalid_recipient_address",info:{address:issuer}});let limitValue=Number.parseFloat(limit);if(Number.isNaN(limitValue)||limitValue<0)throw new import_helpers3.SwapKitError({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit}});let client2=await getClient(),trustSetTx={Account:senderAddress,LimitAmount:{currency:currency2,issuer,value:limit},TransactionType:"TrustSet"};return client2.autofill(trustSetTx)}async function createTransaction({assetValue,recipient,memo,sender,destinationTag,extendBySeconds=150}){if(!validateRippleAddress(recipient))throw new import_helpers3.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let senderAddress=sender||await getAddress();if(assetValue.chain!==import_helpers3.Chain.Ripple)throw new import_helpers3.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:assetValue.toString()}});let amount=buildTransactionAmount(assetValue),transaction={Account:senderAddress,Amount:amount,Destination:recipient,TransactionType:"Payment",...destinationTag!==void 0&&{DestinationTag:destinationTag}};if(memo)transaction.Memos=[{Memo:{MemoData:Buffer.from(memo).toString("hex")}}];let preparedTx=await(await getClient()).autofill(transaction);if(preparedTx.LastLedgerSequence&&extendBySeconds>0)preparedTx.LastLedgerSequence+=Math.ceil(extendBySeconds/4);return preparedTx}function signTransaction(tx){if(!signer)throw new import_helpers3.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return signer.signTransaction(tx)}async function broadcastTransaction(signedTxHex){let submitResult=await(await getClient()).submitAndWait(signedTxHex),{result}=submitResult;if(result.validated)return result.hash;let txResult=result.meta?.TransactionResult,reason=import_ts_pattern.match(txResult).with(XRPL_TOKEN_ERROR_CODES.tecNO_LINE,()=>"No trust line exists for this token").with(XRPL_TOKEN_ERROR_CODES.tecPATH_DRY,()=>"Payment path could not deliver funds").with(XRPL_TOKEN_ERROR_CODES.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new import_helpers3.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:import_helpers3.Chain.Ripple,...reason?{reason}:{txResult}}})}let signAndBroadcastTransaction=async(tx)=>{try{let signedTx=await signTransaction(tx);return broadcastTransaction(signedTx.tx_blob)}catch(error){if(error instanceof import_helpers3.SwapKitError)throw error;throw new import_helpers3.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:import_helpers3.Chain.Ripple,error}})}};async function transfer(params2){if(!signer)throw new import_helpers3.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let sender=await signer.getAddress(),tx=await createTransaction({...params2,sender}),signedTx=await signTransaction(tx);return broadcastTransaction(signedTx.tx_blob)}async function setTrustLineAndBroadcast(params2){if(!signer)throw new import_helpers3.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let sender=await signer.getAddress(),tx=await setTrustLine({...params2,sender}),signedTx=await signTransaction(tx);return broadcastTransaction(signedTx.tx_blob)}function disconnect(){let pendingClient=client;if(client=null,pendingClient)pendingClient.then((client2)=>{if(client2?.isConnected())return client2.disconnect();return}).catch((e)=>{console.warn("XRPL Cleanup failed silently:",e)})}return{broadcastTransaction,createSigner,createTransaction,disconnect,estimateTransactionFee,getAddress,getBalance,getTrustLines,hasTrustLine,setTrustLine,setTrustLineAndBroadcast,signAndBroadcastTransaction,signTransaction,transfer,validateAddress:validateRippleAddress}}var import_helpers3,import_ts_pattern,import_xrpl,import_xrpl2,RIPPLE_ERROR_CODES,XRPL_TOKEN_ERROR_CODES;var init_ripple=__esm(()=>{init_currency();import_helpers3=require("@swapkit/helpers"),import_ts_pattern=require("ts-pattern"),import_xrpl=require("xrpl");init_currency();init_tokens();import_xrpl2=require("xrpl"),RIPPLE_ERROR_CODES={ACCOUNT_NOT_FOUND:19},XRPL_TOKEN_ERROR_CODES={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});init_ripple();
|
|
1
|
+
var e=Object.create;var{getPrototypeOf:mm,defineProperty:Q,getOwnPropertyNames:C,getOwnPropertyDescriptor:fm}=Object,p=Object.prototype.hasOwnProperty;function T(m){return this[m]}var vm,Um,Bm=(m,f,G)=>{var $=m!=null&&typeof m==="object";if($){var W=f?vm??=new WeakMap:Um??=new WeakMap,D=W.get(m);if(D)return D}G=m!=null?e(mm(m)):{};let Z=f||!m||!m.__esModule?Q(G,"default",{value:m,enumerable:!0}):G;for(let F of C(m))if(!p.call(Z,F))Q(Z,F,{get:T.bind(m,F),enumerable:!0});if($)W.set(m,Z);return Z},bm=(m)=>{var f=(g??=new WeakMap).get(m),G;if(f)return f;if(f=Q({},"__esModule",{value:!0}),m&&typeof m==="object"||typeof m==="function"){for(var $ of C(m))if(!p.call(f,$))Q(f,$,{get:T.bind(m,$),enumerable:!(G=fm(m,$))||G.enumerable})}return g.set(m,f),f},g;var Gm=(m)=>m;function km(m,f){this[m]=Gm.bind(null,f)}var Wm=(m,f)=>{for(var G in f)Q(m,G,{get:f[G],enumerable:!0,configurable:!0,set:km.bind(f,G)})};var A=(m,f)=>()=>(m&&(f=m(m=0)),f);function P(m){return/^[0-9A-Fa-f]{40}$/.test(m)}function _(m){if(P(m))return m.toUpperCase();if(m.length<=3){let G=Buffer.from(m.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${G}${"0".repeat(10)}`.toUpperCase()}let f=Buffer.from(m).toString("hex").toUpperCase();if(f.length>40)throw new u.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:m,reason:"Currency exceeds maximum length (20 bytes)"}});return f.padEnd(40,"0")}function zm(m){if(!P(m))return m;if(m.toUpperCase().startsWith("00")){let f=m.slice(24,30);try{let G=Buffer.from(f,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(G)&&G.length>0)return G}catch{}return m.toUpperCase()}try{let f=m.replace(/0+$/,""),G=f.length%2===0?f:`${f}0`,$=Buffer.from(G,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test($))return $}catch{}return m.toUpperCase()}function Y(m){if(P(m))return m.toUpperCase();if(m.length<=3)return m;return _(m)}var u;var H=A(()=>{u=require("@swapkit/helpers")});async function Mm(m,f){let G=Y(m),$=O.find((W)=>Y(W.currency)===G&&W.issuer===f);if($)return $;try{let W=await w.RequestClient.get(`https://api.xrplmeta.org/token/${m}:${f}`);if(W)return{currency:m,decimals:15,description:W.desc,domain:W.domain,icon:W.icon,issuer:f,name:W.name,verified:W.self_assessment?.is_regulated||W.self_assessment?.is_licensed}}catch(W){w.warnOnce({condition:!0,id:`xrpl_token_lookup_${m}_${f}`,warning:`Failed to fetch XRPL token info for ${m}:${f}: ${W}`})}return{currency:m,decimals:15,issuer:f,verified:!1}}function $m(m){return O.filter((f)=>f.issuer===m)}function jm(m,f){let G=Y(m);return O.some(($)=>Y($.currency)===G&&$.issuer===f)}var w,O;var h=A(()=>{H();w=require("@swapkit/helpers"),O=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var Xm={};Wm(Xm,{validateRippleAddress:()=>K,parseXrplTokenIdentifier:()=>d,normalizeCurrency:()=>Y,isKnownToken:()=>jm,isHexCurrency:()=>P,hexToCurrency:()=>zm,hashes:()=>i.hashes,getXrplTokenInfo:()=>Mm,getRippleToolbox:()=>Dm,getKnownTokensByIssuer:()=>$m,formatXrplTokenIdentifier:()=>l,currencyToHex:()=>_,XRPL_TOKEN_ERROR_CODES:()=>R,XRPL_KNOWN_TOKENS:()=>O});module.exports=bm(Xm);function d(m){let f=m.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!f?.[1]||!f?.[2])return null;if(!q.isValidAddress(f[2]))return null;return{currency:f[1],issuer:f[2]}}function l(m,f){return`${v.Chain.Ripple}.${m}-${f}`}function qm(m){if(m.isGasAsset)return q.xrpToDrops(m.getValue("string"));let f=d(m.toString());if(!f)throw new v.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:m.toString()}});return{currency:f.currency,issuer:f.issuer,value:m.getValue("string")}}function c(m){let f=q.Wallet.fromMnemonic(m);return{getAddress:()=>Promise.resolve(f.address),signTransaction:(G)=>Promise.resolve(f.sign(G))}}function K(m){return q.isValidAddress(m)}function Dm(m={}){let f=N.match(m).with({phrase:N.P.string},({phrase:U})=>c(U)).with({signer:N.P.any},({signer:U})=>U).otherwise(()=>{return}),G;async function $(){let U=await v.getRPCUrl(v.Chain.Ripple);if(!U)throw new v.SwapKitError({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:v.Chain.Ripple}});let b=new q.Client(U);return await b.connect(),b}async function W(){if(G){let U=await G.catch(()=>null);if(U?.isConnected())return U}return G=$(),G}let D=()=>{if(!f)throw new v.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return f.getAddress()},Z=async(U)=>{let b=U||await D(),{baseDecimal:M}=v.getChainConfig(v.Chain.Ripple),z=await W();try{let[k,j]=await Promise.all([z.request({account:b,command:"account_info"}),z.request({account:b,command:"account_lines"})]),B=k.result.account_data.Balance,J=[v.AssetValue.from({chain:v.Chain.Ripple,fromBaseDecimal:M,value:B})];for(let X of j.result.lines){let V=l(X.currency,X.account);if(Number.parseFloat(X.balance)!==0)J.push(v.AssetValue.from({asset:V,asyncTokenLookup:!1,value:X.balance}))}return J}catch(k){if(k.data?.error_code===x.ACCOUNT_NOT_FOUND)return[v.AssetValue.from({chain:v.Chain.Ripple,value:0})];throw new v.SwapKitError({errorKey:"toolbox_ripple_get_balance_error",info:{address:b,error:k}})}},F=async()=>{let{baseDecimal:U}=v.getChainConfig(v.Chain.Ripple),z=(await(await W()).request({command:"fee"})).result.drops.open_ledger_fee;return v.AssetValue.from({chain:v.Chain.Ripple,fromBaseDecimal:U,value:z})};async function S(U){let b=U||await D(),M=await W();try{return(await M.request({account:b,command:"account_lines"})).result.lines.map((k)=>({account:k.account,authorized:k.authorized??!1,balance:k.balance,currency:k.currency,freeze:k.freeze??!1,freezePeer:k.freeze_peer??!1,limit:k.limit,limitPeer:k.limit_peer,noRipple:k.no_ripple??!1,noRipplePeer:k.no_ripple_peer??!1,peerAuthorized:k.peer_authorized??!1,qualityIn:k.quality_in??0,qualityOut:k.quality_out??0}))}catch(z){if(z.data?.error_code===x.ACCOUNT_NOT_FOUND)return[];throw new v.SwapKitError({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:b,error:z}})}}async function n({address:U,currency:b,issuer:M}){let z=await S(U),k=_(b);return z.some((j)=>{return _(j.currency)===k&&j.account===M})}async function E({currency:U,issuer:b,limit:M,sender:z}){let k=z||await D();if(!K(b))throw new v.SwapKitError({errorKey:"core_transaction_invalid_recipient_address",info:{address:b}});let j=Number.parseFloat(M);if(Number.isNaN(j)||j<0)throw new v.SwapKitError({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:M}});let B=await W(),J={Account:k,LimitAmount:{currency:U,issuer:b,value:M},TransactionType:"TrustSet"};return B.autofill(J)}async function o({assetValue:U,recipient:b,memo:M,sender:z,destinationTag:k,extendBySeconds:j=150}){if(!K(b))throw new v.SwapKitError({errorKey:"core_transaction_invalid_recipient_address"});let B=z||await D();if(U.chain!==v.Chain.Ripple)throw new v.SwapKitError({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:U.toString()}});let J=qm(U),X={Account:B,Amount:J,Destination:b,TransactionType:"Payment",...k!==void 0&&{DestinationTag:k}};if(M)X.Memos=[{Memo:{MemoData:Buffer.from(M).toString("hex")}}];let y=await(await W()).autofill(X);if(y.LastLedgerSequence&&j>0)y.LastLedgerSequence+=Math.ceil(j/4);return y}function I(U){if(!f)throw new v.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});return f.signTransaction(U)}async function L(U){let M=await(await W()).submitAndWait(U),{result:z}=M;if(z.validated)return z.hash;let k=z.meta?.TransactionResult,j=N.match(k).with(R.tecNO_LINE,()=>"No trust line exists for this token").with(R.tecPATH_DRY,()=>"Payment path could not deliver funds").with(R.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new v.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:v.Chain.Ripple,...j?{reason:j}:{txResult:k}}})}let t=async(U)=>{try{let b=await I(U);return L(b.tx_blob)}catch(b){if(b instanceof v.SwapKitError)throw b;throw new v.SwapKitError({errorKey:"toolbox_ripple_broadcast_error",info:{chain:v.Chain.Ripple,error:b}})}};async function a(U){if(!f)throw new v.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let b=await f.getAddress(),M=await o({...U,sender:b}),z=await I(M);return L(z.tx_blob)}async function s(U){if(!f)throw new v.SwapKitError({errorKey:"toolbox_ripple_signer_not_found"});let b=await f.getAddress(),M=await E({...U,sender:b}),z=await I(M);return L(z.tx_blob)}function r(){let U=G;if(G=null,U)U.then((b)=>{if(b?.isConnected())return b.disconnect();return}).catch((b)=>{console.warn("XRPL Cleanup failed silently:",b)})}return{broadcastTransaction:L,createSigner:c,createTransaction:o,disconnect:r,estimateTransactionFee:F,getAddress:D,getBalance:Z,getTrustLines:S,hasTrustLine:n,setTrustLine:E,setTrustLineAndBroadcast:s,signAndBroadcastTransaction:t,signTransaction:I,transfer:a,validateAddress:K}}var v,N,q,i,x,R;var Zm=A(()=>{H();v=require("@swapkit/helpers"),N=require("ts-pattern"),q=require("xrpl");H();h();i=require("xrpl"),x={ACCOUNT_NOT_FOUND:19},R={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});Zm();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames,getOwnPropertyDescriptor:__getOwnPropDesc}=Object,__hasOwnProp=Object.prototype.hasOwnProperty;function __accessProp(key){return this[key]}var __toESMCache_node,__toESMCache_esm,__toESM=(mod,isNodeMode,target)=>{var canCache=mod!=null&&typeof mod==="object";if(canCache){var cache=isNodeMode?__toESMCache_node??=new WeakMap:__toESMCache_esm??=new WeakMap,cached=cache.get(mod);if(cached)return cached}target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:__accessProp.bind(mod,key),enumerable:!0});if(canCache)cache.set(mod,to);return to},__toCommonJS=(from)=>{var entry=(__moduleCache??=new WeakMap).get(from),desc;if(entry)return entry;if(entry=__defProp({},"__esModule",{value:!0}),from&&typeof from==="object"||typeof from==="function"){for(var key of __getOwnPropNames(from))if(!__hasOwnProp.call(entry,key))__defProp(entry,key,{get:__accessProp.bind(from,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return __moduleCache.set(from,entry),entry},__moduleCache;var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0,configurable:!0,set:__exportSetter.bind(all,name)})};var __esm=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res);function uniqid(){function now(){let time=Date.now(),lastTime=last||time;return last=lastTime,time>last?time:lastTime+1}return pid+now().toString(36)}function getBalance(chain){return async function(address,scamFilter=!0){let balances=await import_api.SwapKitApi.getChainBalance({address,chain,scamFilter}),{baseDecimal}=import_helpers.getChainConfig(chain),assetValues=balances.map(({identifier,value,decimal})=>{return new import_helpers.AssetValue({decimal:decimal||baseDecimal,identifier,value})});if(!assetValues.some((asset)=>asset.isGasAsset))return[import_helpers.AssetValue.from({chain}),...assetValues];return assetValues}}var import_helpers,import_api,pid,last=0;var init_utils=__esm(()=>{import_helpers=require("@swapkit/helpers"),import_api=require("@swapkit/helpers/api"),pid=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function fetchTokenMetaData(mintAddress){let assetValue=import_helpers2.AssetValue.from({address:mintAddress,chain:import_helpers2.Chain.Solana});if(assetValue.symbol!=="UNKNOWN")return{decimals:assetValue.decimal||0,id:mintAddress,logoURI:assetValue.getIconUrl(),name:assetValue.symbol,symbol:assetValue.ticker};let url=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(mintAddress)}`;try{let res=await fetch(url);if(!res.ok)return null;let arr=await res.json();if(!Array.isArray(arr)||arr.length===0)return null;return arr.find((t)=>t.id===mintAddress)||null}catch{return null}}async function getSolanaBalance(address){let connection=await getConnection(),{PublicKey:PublicKey2}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID}=await import("@solana/spl-token"),publicKey=new PublicKey2(address),{baseDecimal}=import_helpers2.getChainConfig(import_helpers2.Chain.Solana),solBalance=await connection.getBalance(publicKey),balances=[import_helpers2.AssetValue.from({chain:import_helpers2.Chain.Solana,fromBaseDecimal:baseDecimal,value:solBalance||0})],tokenAccounts=await connection.getParsedTokenAccountsByOwner(publicKey,{programId:TOKEN_PROGRAM_ID});for(let{account}of tokenAccounts.value){let tokenInfo=account.data.parsed.info,mintAddress=tokenInfo.mint,amount=tokenInfo.tokenAmount.amount;if(Number(amount)===0)continue;let metadata=await fetchTokenMetaData(mintAddress),ticker=metadata?.symbol||"UNKNOWN",decimals=metadata?.decimals||tokenInfo.tokenAmount.decimals;balances.push(import_helpers2.AssetValue.from({asset:`${import_helpers2.Chain.Solana}.${ticker}-${mintAddress}`,fromBaseDecimal:decimals,value:amount}))}return balances}function validateSolanaAddress(address){try{let pubkey=new import_web3.PublicKey(address);return import_web3.PublicKey.isOnCurve(pubkey.toBytes())}catch{return!1}}function getSolanaToolbox(toolboxParams){let index=toolboxParams&&"index"in toolboxParams?toolboxParams.index||0:0,derivationPath=import_helpers2.derivationPathToString(toolboxParams&&"derivationPath"in toolboxParams&&toolboxParams.derivationPath?toolboxParams.derivationPath:import_helpers2.updateDerivationPath(import_helpers2.NetworkDerivationPath[import_helpers2.Chain.Solana],{index})),cachedSigner;async function getSigner(){if(cachedSigner)return cachedSigner;return cachedSigner=await import_ts_pattern.match(toolboxParams).with({phrase:import_ts_pattern.P.string},({phrase})=>createKeysForPath({derivationPath,phrase})).with({signer:import_ts_pattern.P.any},({signer})=>signer).otherwise(()=>{return}),cachedSigner}async function getAddress(){let signer=await getSigner();return signer?.publicKey?getAddressFromPubKey(signer.publicKey):""}return{broadcastTransaction:broadcastTransaction(getConnection),createKeysForPath,createTransaction:createTransaction(getConnection),createTransactionFromInstructions,estimateTransactionFee:estimateTransactionFee(getConnection),getAddress,getAddressFromPubKey,getBalance:getBalance(import_helpers2.Chain.Solana),getBalanceFromRPC:getSolanaBalance,getConnection,getPubkeyFromAddress:(address)=>new import_web3.PublicKey(address),signAndBroadcastTransaction:async(transaction)=>{let signedTx=await signTransaction(getConnection,getSigner)(transaction);return broadcastTransaction(getConnection)(signedTx)},signTransaction:signTransaction(getConnection,getSigner),transfer:transfer(getConnection,getSigner),validateAddress:validateSolanaAddress}}function estimateTransactionFee(getConnection){return async({recipient,assetValue,memo,isProgramDerivedAddress,sender})=>{let connection=await getConnection(),message=(await createTransaction(getConnection)({assetValue,isProgramDerivedAddress,memo,recipient,sender})).compileMessage(),feeInLamports=await connection.getFeeForMessage(message);if(feeInLamports.value===null)throw new import_helpers2.SwapKitError("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal}=import_helpers2.getChainConfig(import_helpers2.Chain.Solana);return import_helpers2.AssetValue.from({chain:import_helpers2.Chain.Solana,fromBaseDecimal:baseDecimal,value:feeInLamports.value})}}async function getConnection(){let{Connection}=await import("@solana/web3.js"),rpcUrl=await import_helpers2.getRPCUrl(import_helpers2.Chain.Solana);return new Connection(rpcUrl,{commitment:"confirmed",fetchMiddleware:(info,init,callback)=>{let headers={};for(let[key,value]of Object.entries(init?.headers??{})){let lower=key.toLowerCase();if(lower!=="pragma"&&lower!=="solana-client")headers[key]=value}callback(info,{...init,headers})}})}function createAssetTransaction(getConnection2){return async({assetValue,recipient,sender,isProgramDerivedAddress})=>{let connection=await getConnection2(),fromPubkey=new import_web3.PublicKey(sender);if(assetValue.isGasAsset){let{Transaction,SystemProgram}=await import("@solana/web3.js");return new Transaction().add(SystemProgram.transfer({fromPubkey,lamports:assetValue.getBaseValue("number"),toPubkey:new import_web3.PublicKey(recipient)}))}if(assetValue.address)return createSolanaTokenTransaction({amount:assetValue.getBaseValue("number"),connection,decimals:assetValue.decimal,from:fromPubkey,isProgramDerivedAddress,recipient,tokenAddress:assetValue.address});return}}async function createSolanaTokenTransaction({tokenAddress,recipient,from,connection,amount,decimals,isProgramDerivedAddress}){let{getAssociatedTokenAddress,getAccount,createAssociatedTokenAccountInstruction,createTransferCheckedInstruction}=await import("@solana/spl-token"),{Transaction}=await import("@solana/web3.js"),transaction=new Transaction,tokenPublicKey=new import_web3.PublicKey(tokenAddress),fromSPLAddress=await getAssociatedTokenAddress(tokenPublicKey,from),recipientPublicKey=new import_web3.PublicKey(recipient),recipientSPLAddress=await getAssociatedTokenAddress(tokenPublicKey,recipientPublicKey,isProgramDerivedAddress),recipientAccountExists=!1;try{await getAccount(connection,recipientSPLAddress),recipientAccountExists=!0}catch{}if(!recipientAccountExists)transaction.add(createAssociatedTokenAccountInstruction(from,recipientSPLAddress,recipientPublicKey,tokenPublicKey));return transaction.add(createTransferCheckedInstruction(fromSPLAddress,tokenPublicKey,recipientSPLAddress,from,amount,decimals)),transaction}function createTransaction(getConnection2){return async({recipient,assetValue,memo,isProgramDerivedAddress,sender})=>{let{createMemoInstruction}=await import("@solana/spl-memo"),fromPubkey=new import_web3.PublicKey(sender);if(!(isProgramDerivedAddress||validateSolanaAddress(recipient)))throw new import_helpers2.SwapKitError("core_transaction_invalid_recipient_address");let connection=await getConnection2(),transaction=await createAssetTransaction(getConnection2)({assetValue,isProgramDerivedAddress,recipient,sender});if(!transaction)throw new import_helpers2.SwapKitError("core_transaction_invalid_sender_address");if(memo)transaction.add(createMemoInstruction(memo));let blockHash=await connection.getLatestBlockhash();return transaction.recentBlockhash=blockHash.blockhash,transaction.feePayer=fromPubkey,transaction}}async function createTransactionFromInstructions({instructions}){let{Transaction}=await import("@solana/web3.js"),transaction=new Transaction().add(...instructions);if(!transaction)throw new import_helpers2.SwapKitError("core_transaction_invalid_sender_address");return transaction}function transfer(getConnection2,getSigner){return async({recipient,assetValue,memo,isProgramDerivedAddress})=>{let signer=await getSigner();if(!signer)throw new import_helpers2.SwapKitError("core_transaction_invalid_sender_address");let sender=signer.publicKey?.toString()??(await signer.connect()).publicKey.toString(),transaction=await createTransaction(getConnection2)({assetValue,isProgramDerivedAddress,memo,recipient,sender});if("signTransaction"in signer){let signedTransaction=await signer.signTransaction(transaction);return broadcastTransaction(getConnection2)(signedTransaction)}return transaction.sign(signer),broadcastTransaction(getConnection2)(transaction)}}function broadcastTransaction(getConnection2){return async(transaction)=>{return(await getConnection2()).sendRawTransaction(transaction.serialize())}}function signTransaction(getConnection2,getSigner){return async(transaction)=>{let signer=await getSigner();if(!signer)throw new import_helpers2.SwapKitError("toolbox_solana_no_signer");let{VersionedTransaction}=await import("@solana/web3.js");if(!(transaction instanceof VersionedTransaction)){let blockHash=await(await getConnection2()).getLatestBlockhash();transaction.recentBlockhash=blockHash.blockhash,transaction.feePayer=signer.publicKey||void 0}if("connect"in signer)return await signer.signTransaction(transaction);return transaction.sign([signer]),transaction}}async function createKeysForPath({phrase,derivationPath=import_helpers2.DerivationPath.SOL}){let{HDKey}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync}=await import("@scure/bip39"),{Keypair}=await import("@solana/web3.js"),seed=mnemonicToSeedSync(phrase),hdKey=HDKey.fromMasterSeed(seed);return Keypair.fromSeed(hdKey.derive(derivationPath,!0).privateKey)}function getAddressFromPubKey(publicKey){return publicKey.toString()}var import_web3,import_helpers2,import_ts_pattern;var init_toolbox=__esm(()=>{init_utils();import_web3=require("@solana/web3.js"),import_helpers2=require("@swapkit/helpers"),import_ts_pattern=require("ts-pattern")});var exports_solana={};__export(exports_solana,{validateSolanaAddress:()=>validateSolanaAddress,getSolanaToolbox:()=>getSolanaToolbox,fetchTokenMetaData:()=>fetchTokenMetaData,createKeysForPath:()=>createKeysForPath});module.exports=__toCommonJS(exports_solana);var init_solana=__esm(()=>{init_toolbox()});init_solana();
|
|
1
|
+
var o=Object.create;var{getPrototypeOf:D,defineProperty:N,getOwnPropertyNames:$,getOwnPropertyDescriptor:C}=Object,I=Object.prototype.hasOwnProperty;function M(p){return this[p]}var k,r,wp=(p,l,f)=>{var a=p!=null&&typeof p==="object";if(a){var w=l?k??=new WeakMap:r??=new WeakMap,u=w.get(p);if(u)return u}f=p!=null?o(D(p)):{};let T=l||!p||!p.__esModule?N(f,"default",{value:p,enumerable:!0}):f;for(let y of $(p))if(!I.call(T,y))N(T,y,{get:M.bind(p,y),enumerable:!0});if(a)w.set(p,T);return T},d=(p)=>{var l=(_??=new WeakMap).get(p),f;if(l)return l;if(l=N({},"__esModule",{value:!0}),p&&typeof p==="object"||typeof p==="function"){for(var a of $(p))if(!I.call(l,a))N(l,a,{get:M.bind(p,a),enumerable:!(f=C(p,a))||f.enumerable})}return _.set(p,l),l},_;var s=(p)=>p;function t(p,l){this[p]=s.bind(null,l)}var e=(p,l)=>{for(var f in l)N(p,f,{get:l[f],enumerable:!0,configurable:!0,set:t.bind(l,f)})};var L=(p,l)=>()=>(p&&(l=p(p=0)),l);function yp(){function p(){let l=Date.now(),f=Q||l;return Q=f,l>Q?l:f+1}return c+p().toString(36)}function A(p){return async function(f,a=!0){let w=await V.SwapKitApi.getChainBalance({address:f,chain:p,scamFilter:a}),{baseDecimal:u}=P.getChainConfig(p),T=w.map(({identifier:b,value:G,decimal:m})=>{return new P.AssetValue({decimal:m||u,identifier:b,value:G})});if(!T.some((b)=>b.isGasAsset))return[P.AssetValue.from({chain:p}),...T];return T}}var P,V,c,Q=0;var E=L(()=>{P=require("@swapkit/helpers"),V=require("@swapkit/helpers/api"),c=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function H(p){let l=x.AssetValue.from({address:p,chain:x.Chain.Solana});if(l.symbol!=="UNKNOWN")return{decimals:l.decimal||0,id:p,logoURI:l.getIconUrl(),name:l.symbol,symbol:l.ticker};let f=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(p)}`;try{let a=await fetch(f);if(!a.ok)return null;let w=await a.json();if(!Array.isArray(w)||w.length===0)return null;return w.find((T)=>T.id===p)||null}catch{return null}}async function g(p){let l=await O(),{PublicKey:f}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:a}=await import("@solana/spl-token"),w=new f(p),{baseDecimal:u}=x.getChainConfig(x.Chain.Solana),T=await l.getBalance(w),y=[x.AssetValue.from({chain:x.Chain.Solana,fromBaseDecimal:u,value:T||0})],b=await l.getParsedTokenAccountsByOwner(w,{programId:a});for(let{account:G}of b.value){let m=G.data.parsed.info,q=m.mint,S=m.tokenAmount.amount;if(Number(S)===0)continue;let R=await H(q),F=R?.symbol||"UNKNOWN",W=R?.decimals||m.tokenAmount.decimals;y.push(x.AssetValue.from({asset:`${x.Chain.Solana}.${F}-${q}`,fromBaseDecimal:W,value:S}))}return y}function X(p){try{let l=new B.PublicKey(p);return B.PublicKey.isOnCurve(l.toBytes())}catch{return!1}}function i(p){let l=p&&"index"in p?p.index||0:0,f=x.derivationPathToString(p&&"derivationPath"in p&&p.derivationPath?p.derivationPath:x.updateDerivationPath(x.NetworkDerivationPath[x.Chain.Solana],{index:l})),a;async function w(){if(a)return a;return a=await j.match(p).with({phrase:j.P.string},({phrase:T})=>U({derivationPath:f,phrase:T})).with({signer:j.P.any},({signer:T})=>T).otherwise(()=>{return}),a}async function u(){let T=await w();return T?.publicKey?v(T.publicKey):""}return{broadcastTransaction:z(O),createKeysForPath:U,createTransaction:Y(O),createTransactionFromInstructions:fp,estimateTransactionFee:n(O),getAddress:u,getAddressFromPubKey:v,getBalance:A(x.Chain.Solana),getBalanceFromRPC:g,getConnection:O,getPubkeyFromAddress:(T)=>new B.PublicKey(T),signAndBroadcastTransaction:async(T)=>{let y=await h(O,w)(T);return z(O)(y)},signTransaction:h(O,w),transfer:Tp(O,w),validateAddress:X}}function n(p){return async({recipient:l,assetValue:f,memo:a,isProgramDerivedAddress:w,sender:u})=>{let T=await p(),b=(await Y(p)({assetValue:f,isProgramDerivedAddress:w,memo:a,recipient:l,sender:u})).compileMessage(),G=await T.getFeeForMessage(b);if(G.value===null)throw new x.SwapKitError("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:m}=x.getChainConfig(x.Chain.Solana);return x.AssetValue.from({chain:x.Chain.Solana,fromBaseDecimal:m,value:G.value})}}async function O(){let{Connection:p}=await import("@solana/web3.js"),l=await x.getRPCUrl(x.Chain.Solana);return new p(l,{commitment:"confirmed",fetchMiddleware:(f,a,w)=>{let u={};for(let[T,y]of Object.entries(a?.headers??{})){let b=T.toLowerCase();if(b!=="pragma"&&b!=="solana-client")u[T]=y}w(f,{...a,headers:u})}})}function pp(p){return async({assetValue:l,recipient:f,sender:a,isProgramDerivedAddress:w})=>{let u=await p(),T=new B.PublicKey(a);if(l.isGasAsset){let{Transaction:y,SystemProgram:b}=await import("@solana/web3.js");return new y().add(b.transfer({fromPubkey:T,lamports:l.getBaseValue("number"),toPubkey:new B.PublicKey(f)}))}if(l.address)return lp({amount:l.getBaseValue("number"),connection:u,decimals:l.decimal,from:T,isProgramDerivedAddress:w,recipient:f,tokenAddress:l.address});return}}async function lp({tokenAddress:p,recipient:l,from:f,connection:a,amount:w,decimals:u,isProgramDerivedAddress:T}){let{getAssociatedTokenAddress:y,getAccount:b,createAssociatedTokenAccountInstruction:G,createTransferCheckedInstruction:m}=await import("@solana/spl-token"),{Transaction:q}=await import("@solana/web3.js"),S=new q,R=new B.PublicKey(p),F=await y(R,f),W=new B.PublicKey(l),J=await y(R,W,T),Z=!1;try{await b(a,J),Z=!0}catch{}if(!Z)S.add(G(f,J,W,R));return S.add(m(F,R,J,f,w,u)),S}function Y(p){return async({recipient:l,assetValue:f,memo:a,isProgramDerivedAddress:w,sender:u})=>{let{createMemoInstruction:T}=await import("@solana/spl-memo"),y=new B.PublicKey(u);if(!(w||X(l)))throw new x.SwapKitError("core_transaction_invalid_recipient_address");let b=await p(),G=await pp(p)({assetValue:f,isProgramDerivedAddress:w,recipient:l,sender:u});if(!G)throw new x.SwapKitError("core_transaction_invalid_sender_address");if(a)G.add(T(a));let m=await b.getLatestBlockhash();return G.recentBlockhash=m.blockhash,G.feePayer=y,G}}async function fp({instructions:p}){let{Transaction:l}=await import("@solana/web3.js"),f=new l().add(...p);if(!f)throw new x.SwapKitError("core_transaction_invalid_sender_address");return f}function Tp(p,l){return async({recipient:f,assetValue:a,memo:w,isProgramDerivedAddress:u})=>{let T=await l();if(!T)throw new x.SwapKitError("core_transaction_invalid_sender_address");let y=T.publicKey?.toString()??(await T.connect()).publicKey.toString(),b=await Y(p)({assetValue:a,isProgramDerivedAddress:u,memo:w,recipient:f,sender:y});if("signTransaction"in T){let G=await T.signTransaction(b);return z(p)(G)}return b.sign(T),z(p)(b)}}function z(p){return async(l)=>{return(await p()).sendRawTransaction(l.serialize())}}function h(p,l){return async(f)=>{let a=await l();if(!a)throw new x.SwapKitError("toolbox_solana_no_signer");let{VersionedTransaction:w}=await import("@solana/web3.js");if(!(f instanceof w)){let T=await(await p()).getLatestBlockhash();f.recentBlockhash=T.blockhash,f.feePayer=a.publicKey||void 0}if("connect"in a)return await a.signTransaction(f);return f.sign([a]),f}}async function U({phrase:p,derivationPath:l=x.DerivationPath.SOL}){let{HDKey:f}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:a}=await import("@scure/bip39"),{Keypair:w}=await import("@solana/web3.js"),u=a(p),T=f.fromMasterSeed(u);return w.fromSeed(T.derive(l,!0).privateKey)}function v(p){return p.toString()}var B,x,j;var K=L(()=>{E();B=require("@solana/web3.js"),x=require("@swapkit/helpers"),j=require("ts-pattern")});var ap={};e(ap,{validateSolanaAddress:()=>X,getSolanaToolbox:()=>i,fetchTokenMetaData:()=>H,createKeysForPath:()=>U});module.exports=d(ap);var xp=L(()=>{K()});xp();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames,getOwnPropertyDescriptor:__getOwnPropDesc}=Object,__hasOwnProp=Object.prototype.hasOwnProperty;function __accessProp(key){return this[key]}var __toESMCache_node,__toESMCache_esm,__toESM=(mod,isNodeMode,target)=>{var canCache=mod!=null&&typeof mod==="object";if(canCache){var cache=isNodeMode?__toESMCache_node??=new WeakMap:__toESMCache_esm??=new WeakMap,cached=cache.get(mod);if(cached)return cached}target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:__accessProp.bind(mod,key),enumerable:!0});if(canCache)cache.set(mod,to);return to},__toCommonJS=(from)=>{var entry=(__moduleCache??=new WeakMap).get(from),desc;if(entry)return entry;if(entry=__defProp({},"__esModule",{value:!0}),from&&typeof from==="object"||typeof from==="function"){for(var key of __getOwnPropNames(from))if(!__hasOwnProp.call(entry,key))__defProp(entry,key,{get:__accessProp.bind(from,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return __moduleCache.set(from,entry),entry},__moduleCache;var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0,configurable:!0,set:__exportSetter.bind(all,name)})};var __esm=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res);function uniqid(){function now(){let time=Date.now(),lastTime=last||time;return last=lastTime,time>last?time:lastTime+1}return pid+now().toString(36)}function getBalance(chain){return async function(address,scamFilter=!0){let balances=await import_api.SwapKitApi.getChainBalance({address,chain,scamFilter}),{baseDecimal}=import_helpers.getChainConfig(chain),assetValues=balances.map(({identifier,value,decimal})=>{return new import_helpers.AssetValue({decimal:decimal||baseDecimal,identifier,value})});if(!assetValues.some((asset)=>asset.isGasAsset))return[import_helpers.AssetValue.from({chain}),...assetValues];return assetValues}}var import_helpers,import_api,pid,last=0;var init_utils=__esm(()=>{import_helpers=require("@swapkit/helpers"),import_api=require("@swapkit/helpers/api"),pid=typeof process<"u"&&process.pid?process.pid.toString(36):""});function validateStarknetAddress(address){if(!address)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(address)}async function deriveStarknetKeys({phrase,derivationPath=import_helpers2.DerivationPath.STRK}){let{HDKey}=await import("@scure/bip32"),{mnemonicToSeedSync}=await import("@scure/bip39"),{ec,hash,encode,CallData}=await import("starknet"),seed=mnemonicToSeedSync(phrase),derived=HDKey.fromMasterSeed(seed).derive(derivationPath);if(!derived.privateKey)throw new import_helpers2.SwapKitError("toolbox_starknet_no_signer");let rawKey=encode.addHexPrefix(Buffer.from(derived.privateKey).toString("hex")),groundKey=ec.starkCurve.grindKey(rawKey),privateKey=encode.addHexPrefix(groundKey),publicKey=ec.starkCurve.getStarkKey(privateKey),constructorCallData=CallData.compile([publicKey,0]);return{address:hash.calculateContractAddressFromHash(publicKey,OZ_ACCOUNT_CLASS_HASH,constructorCallData,0),privateKey,publicKey}}async function createKeysForPath({phrase,derivationPath=import_helpers2.DerivationPath.STRK}){let{Account,RpcProvider}=await import("starknet"),{privateKey,address}=await deriveStarknetKeys({derivationPath,phrase}),rpcUrl=await import_helpers2.getRPCUrl(import_helpers2.Chain.Starknet),provider=new RpcProvider({nodeUrl:rpcUrl});return new Account({address,provider,signer:privateKey})}function getStarknetToolbox(toolboxParams){let chain=import_helpers2.Chain.Starknet,index=toolboxParams&&"index"in toolboxParams?toolboxParams.index||0:0,derivationPath=import_helpers2.derivationPathToString(toolboxParams&&"derivationPath"in toolboxParams&&toolboxParams.derivationPath?toolboxParams.derivationPath:import_helpers2.updateDerivationPath(import_helpers2.NetworkDerivationPath[chain],{index})),cachedSigner,cachedProvider,cachedPublicKey;async function getProvider(){if(cachedProvider)return cachedProvider;let{RpcProvider}=await import("starknet"),rpcUrl=await import_helpers2.getRPCUrl(chain);return cachedProvider=new RpcProvider({nodeUrl:rpcUrl}),cachedProvider}async function isAccountDeployed(address){let provider=await getProvider(),targetAddress=address||await getAddress();if(!targetAddress)return!1;try{return await provider.getClassHashAt(targetAddress),!0}catch(error){if(error instanceof Error&&error.message.includes("Contract not found"))return!1;let errorObj=error;if(errorObj?.code===20||errorObj?.code===19)return!1;throw error}}async function deployAccount(){let{CallData,hash}=await import("starknet"),provider=await getProvider(),signer=await getSigner();if(!signer)throw new import_helpers2.SwapKitError("toolbox_starknet_no_signer");if(!cachedPublicKey)throw new import_helpers2.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await isAccountDeployed())return signer.address;let constructorCallData=CallData.compile([cachedPublicKey,0]);if(hash.calculateContractAddressFromHash(cachedPublicKey,OZ_ACCOUNT_CLASS_HASH,constructorCallData,0).toLowerCase()!==signer.address.toLowerCase())throw new import_helpers2.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let deployPayload={addressSalt:cachedPublicKey,classHash:OZ_ACCOUNT_CLASS_HASH,constructorCalldata:constructorCallData},{transaction_hash}=await signer.deployAccount(deployPayload);return await provider.waitForTransaction(transaction_hash),transaction_hash}async function ensureAccountDeployed(){if(!await isAccountDeployed()){if(!cachedPublicKey)throw new import_helpers2.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await deployAccount()}}async function getSigner(){if(cachedSigner)return cachedSigner;return cachedSigner=await import_ts_pattern.match(toolboxParams).with({phrase:import_ts_pattern.P.string},async({phrase})=>{let{Account,RpcProvider}=await import("starknet"),{privateKey,address,publicKey}=await deriveStarknetKeys({derivationPath,phrase});cachedPublicKey=publicKey;let rpcUrl=await import_helpers2.getRPCUrl(import_helpers2.Chain.Starknet),provider=new RpcProvider({nodeUrl:rpcUrl});return new Account({address,provider,signer:privateKey})}).with({address:import_ts_pattern.P.string,privateKey:import_ts_pattern.P.string},async({privateKey,address})=>{let{Account}=await import("starknet"),provider=await getProvider();return new Account({address,provider,signer:privateKey})}).with({signer:import_ts_pattern.P.instanceOf(Object)},({signer})=>signer).otherwise(()=>{return}),cachedSigner}async function getAddress(){return(await getSigner())?.address??""}async function getBalanceFromRpc(address){let provider=await getProvider(),{uint256,CallData}=await import("starknet"),balances=[],balanceContracts=[STRK_CONTRACT_ADDRESS,ETH_CONTRACT_ADDRESS];for(let contractAddress of balanceContracts)try{let[high="0",low="0"]=await provider.callContract({calldata:CallData.compile({account:address}),contractAddress,entrypoint:"balanceOf"}),rawBalance=uint256.uint256ToBN({high,low});import_ts_pattern.match(contractAddress).with(STRK_CONTRACT_ADDRESS,()=>{balances.push(import_helpers2.AssetValue.from({chain,value:rawBalance}))}).with(ETH_CONTRACT_ADDRESS,()=>{if(rawBalance>0n)balances.push(import_helpers2.AssetValue.from({asset:`${chain}.ETH-${contractAddress}`,value:rawBalance}))}).otherwise(()=>{})}catch{}return balances}async function createTransaction({recipient,assetValue}){let{CallData,uint256}=await import("starknet");if(!validateStarknetAddress(recipient))throw new import_helpers2.SwapKitError("core_transaction_invalid_recipient_address",{address:recipient});let contractAddress=assetValue.isGasAsset?STRK_CONTRACT_ADDRESS:assetValue.address;if(!contractAddress)throw new import_helpers2.SwapKitError("toolbox_starknet_invalid_address",{address:contractAddress,assetValue});let amount=uint256.bnToUint256(assetValue.getBaseValue("bigint"));return[{calldata:CallData.compile([recipient,amount]),contractAddress,entrypoint:"transfer"}]}async function estimateTransactionFee({recipient,assetValue,sender}){let{baseDecimal}=import_helpers2.getChainConfig(import_helpers2.Chain.Starknet),signer=await getSigner(),account=await import_ts_pattern.match({sender,signer}).with({sender:import_ts_pattern.P.string},async({sender:sender2})=>{let{Account}=await import("starknet"),provider=await getProvider();return new Account({address:sender2,provider,signer:"0x0"})}).with({signer:import_ts_pattern.P.nonNullable},({signer:signer2})=>signer2).otherwise((params)=>{throw new import_helpers2.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params}})});try{let calls=await createTransaction({assetValue,recipient}),estimateFeeResponse=await account.estimateInvokeFee(calls);if(estimateFeeResponse?.overall_fee)return import_helpers2.AssetValue.from({chain,fromBaseDecimal:baseDecimal,value:estimateFeeResponse.overall_fee})}catch(error){throw new import_helpers2.SwapKitError("toolbox_starknet_fee_estimation_failed",error)}return import_helpers2.AssetValue.from({chain,value:"0.00001"})}async function transfer({recipient,assetValue,memo}){let signer=await getSigner();if(!signer)throw new import_helpers2.SwapKitError("toolbox_starknet_no_signer");await ensureAccountDeployed();let calls=await createTransaction({assetValue,memo,recipient});return(await signer.execute(calls)).transaction_hash}async function signMessage(typedData){let signer=await getSigner();if(!signer)throw new import_helpers2.SwapKitError("toolbox_starknet_no_signer");let signature=await signer.signMessage(typedData);return Array.isArray(signature)?signature:[signature.r.toString(),signature.s.toString()]}async function broadcastTransaction(calls){let signer=await getSigner();if(!signer)throw new import_helpers2.SwapKitError("toolbox_starknet_no_signer");return await ensureAccountDeployed(),(await signer.execute(calls)).transaction_hash}function signAndBroadcastTransaction(calls){return broadcastTransaction(calls)}function getBalanceWithFallback(address,scamFilter=!0){try{return getBalance(chain)(address,scamFilter)}catch{return getBalanceFromRpc(address)}}return{broadcastTransaction,createKeysForPath,createTransaction,deployAccount,estimateTransactionFee,getAddress,getBalance:getBalanceWithFallback,getProvider,isAccountDeployed,signAndBroadcastTransaction,signMessage,transfer,validateAddress:validateStarknetAddress}}var import_helpers2,import_ts_pattern,STRK_CONTRACT_ADDRESS="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",ETH_CONTRACT_ADDRESS="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",OZ_ACCOUNT_CLASS_HASH="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var init_toolbox=__esm(()=>{init_utils();import_helpers2=require("@swapkit/helpers"),import_ts_pattern=require("ts-pattern")});var exports_starknet={};__export(exports_starknet,{validateStarknetAddress:()=>validateStarknetAddress,starknetCreateKeysForPath:()=>createKeysForPath,getStarknetToolbox:()=>getStarknetToolbox,deriveStarknetKeys:()=>deriveStarknetKeys});module.exports=__toCommonJS(exports_starknet);var init_starknet=__esm(()=>{init_toolbox()});init_starknet();
|
|
1
|
+
var a=Object.create;var{getPrototypeOf:e,defineProperty:V,getOwnPropertyNames:h,getOwnPropertyDescriptor:ff}=Object,p=Object.prototype.hasOwnProperty;function P(f){return this[f]}var qf,Gf,Mf=(f,G,W)=>{var M=f!=null&&typeof f==="object";if(M){var L=G?qf??=new WeakMap:Gf??=new WeakMap,Z=L.get(f);if(Z)return Z}W=f!=null?a(e(f)):{};let X=G||!f||!f.__esModule?V(W,"default",{value:f,enumerable:!0}):W;for(let j of h(f))if(!p.call(X,j))V(X,j,{get:P.bind(f,j),enumerable:!0});if(M)L.set(f,X);return X},zf=(f)=>{var G=(g??=new WeakMap).get(f),W;if(G)return G;if(G=V({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var M of h(f))if(!p.call(G,M))V(G,M,{get:P.bind(f,M),enumerable:!(W=ff(f,M))||W.enumerable})}return g.set(f,G),G},g;var If=(f)=>f;function Jf(f,G){this[f]=If.bind(null,G)}var Qf=(f,G)=>{for(var W in G)V(f,W,{get:G[W],enumerable:!0,configurable:!0,set:Jf.bind(G,W)})};var C=(f,G)=>()=>(f&&(G=f(f=0)),G);function Lf(){function f(){let G=Date.now(),W=K||G;return K=W,G>K?G:W+1}return Wf+f().toString(36)}function n(f){return async function(W,M=!0){let L=await l.SwapKitApi.getChainBalance({address:W,chain:f,scamFilter:M}),{baseDecimal:Z}=E.getChainConfig(f),X=L.map(({identifier:x,value:w,decimal:U})=>{return new E.AssetValue({decimal:U||Z,identifier:x,value:w})});if(!X.some((x)=>x.isGasAsset))return[E.AssetValue.from({chain:f}),...X];return X}}var E,l,Wf,K=0;var o=C(()=>{E=require("@swapkit/helpers"),l=require("@swapkit/helpers/api"),Wf=typeof process<"u"&&process.pid?process.pid.toString(36):""});function _(f){if(!f)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(f)}async function m({phrase:f,derivationPath:G=q.DerivationPath.STRK}){let{HDKey:W}=await import("@scure/bip32"),{mnemonicToSeedSync:M}=await import("@scure/bip39"),{ec:L,hash:Z,encode:X,CallData:j}=await import("starknet"),x=M(f),U=W.fromMasterSeed(x).derive(G);if(!U.privateKey)throw new q.SwapKitError("toolbox_starknet_no_signer");let H=X.addHexPrefix(Buffer.from(U.privateKey).toString("hex")),T=L.starkCurve.grindKey(H),R=X.addHexPrefix(T),k=L.starkCurve.getStarkKey(R),y=j.compile([k,0]);return{address:Z.calculateContractAddressFromHash(k,v,y,0),privateKey:R,publicKey:k}}async function A({phrase:f,derivationPath:G=q.DerivationPath.STRK}){let{Account:W,RpcProvider:M}=await import("starknet"),{privateKey:L,address:Z}=await m({derivationPath:G,phrase:f}),X=await q.getRPCUrl(q.Chain.Starknet),j=new M({nodeUrl:X});return new W({address:Z,provider:j,signer:L})}function c(f){let G=q.Chain.Starknet,W=f&&"index"in f?f.index||0:0,M=q.derivationPathToString(f&&"derivationPath"in f&&f.derivationPath?f.derivationPath:q.updateDerivationPath(q.NetworkDerivationPath[G],{index:W})),L,Z,X;async function j(){if(Z)return Z;let{RpcProvider:z}=await import("starknet"),I=await q.getRPCUrl(G);return Z=new z({nodeUrl:I}),Z}async function x(z){let I=await j(),J=z||await T();if(!J)return!1;try{return await I.getClassHashAt(J),!0}catch(Q){if(Q instanceof Error&&Q.message.includes("Contract not found"))return!1;let Y=Q;if(Y?.code===20||Y?.code===19)return!1;throw Q}}async function w(){let{CallData:z,hash:I}=await import("starknet"),J=await j(),Q=await H();if(!Q)throw new q.SwapKitError("toolbox_starknet_no_signer");if(!X)throw new q.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await x())return Q.address;let B=z.compile([X,0]);if(I.calculateContractAddressFromHash(X,v,B,0).toLowerCase()!==Q.address.toLowerCase())throw new q.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let N={addressSalt:X,classHash:v,constructorCalldata:B},{transaction_hash:O}=await Q.deployAccount(N);return await J.waitForTransaction(O),O}async function U(){if(!await x()){if(!X)throw new q.SwapKitError({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await w()}}async function H(){if(L)return L;return L=await F.match(f).with({phrase:F.P.string},async({phrase:z})=>{let{Account:I,RpcProvider:J}=await import("starknet"),{privateKey:Q,address:Y,publicKey:B}=await m({derivationPath:M,phrase:z});X=B;let $=await q.getRPCUrl(q.Chain.Starknet),N=new J({nodeUrl:$});return new I({address:Y,provider:N,signer:Q})}).with({address:F.P.string,privateKey:F.P.string},async({privateKey:z,address:I})=>{let{Account:J}=await import("starknet"),Q=await j();return new J({address:I,provider:Q,signer:z})}).with({signer:F.P.instanceOf(Object)},({signer:z})=>z).otherwise(()=>{return}),L}async function T(){return(await H())?.address??""}async function R(z){let I=await j(),{uint256:J,CallData:Q}=await import("starknet"),Y=[],B=[b,d];for(let $ of B)try{let[N="0",O="0"]=await I.callContract({calldata:Q.compile({account:z}),contractAddress:$,entrypoint:"balanceOf"}),D=J.uint256ToBN({high:N,low:O});F.match($).with(b,()=>{Y.push(q.AssetValue.from({chain:G,value:D}))}).with(d,()=>{if(D>0n)Y.push(q.AssetValue.from({asset:`${G}.ETH-${$}`,value:D}))}).otherwise(()=>{})}catch{}return Y}async function k({recipient:z,assetValue:I}){let{CallData:J,uint256:Q}=await import("starknet");if(!_(z))throw new q.SwapKitError("core_transaction_invalid_recipient_address",{address:z});let Y=I.isGasAsset?b:I.address;if(!Y)throw new q.SwapKitError("toolbox_starknet_invalid_address",{address:Y,assetValue:I});let B=Q.bnToUint256(I.getBaseValue("bigint"));return[{calldata:J.compile([z,B]),contractAddress:Y,entrypoint:"transfer"}]}async function y({recipient:z,assetValue:I,sender:J}){let{baseDecimal:Q}=q.getChainConfig(q.Chain.Starknet),Y=await H(),B=await F.match({sender:J,signer:Y}).with({sender:F.P.string},async({sender:$})=>{let{Account:N}=await import("starknet"),O=await j();return new N({address:$,provider:O,signer:"0x0"})}).with({signer:F.P.nonNullable},({signer:$})=>$).otherwise(($)=>{throw new q.SwapKitError({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:$}})});try{let $=await k({assetValue:I,recipient:z}),N=await B.estimateInvokeFee($);if(N?.overall_fee)return q.AssetValue.from({chain:G,fromBaseDecimal:Q,value:N.overall_fee})}catch($){throw new q.SwapKitError("toolbox_starknet_fee_estimation_failed",$)}return q.AssetValue.from({chain:G,value:"0.00001"})}async function u({recipient:z,assetValue:I,memo:J}){let Q=await H();if(!Q)throw new q.SwapKitError("toolbox_starknet_no_signer");await U();let Y=await k({assetValue:I,memo:J,recipient:z});return(await Q.execute(Y)).transaction_hash}async function t(z){let I=await H();if(!I)throw new q.SwapKitError("toolbox_starknet_no_signer");let J=await I.signMessage(z);return Array.isArray(J)?J:[J.r.toString(),J.s.toString()]}async function S(z){let I=await H();if(!I)throw new q.SwapKitError("toolbox_starknet_no_signer");return await U(),(await I.execute(z)).transaction_hash}function s(z){return S(z)}function r(z,I=!0){try{return n(G)(z,I)}catch{return R(z)}}return{broadcastTransaction:S,createKeysForPath:A,createTransaction:k,deployAccount:w,estimateTransactionFee:y,getAddress:T,getBalance:r,getProvider:j,isAccountDeployed:x,signAndBroadcastTransaction:s,signMessage:t,transfer:u,validateAddress:_}}var q,F,b="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",d="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",v="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var i=C(()=>{o();q=require("@swapkit/helpers"),F=require("ts-pattern")});var Yf={};Qf(Yf,{validateStarknetAddress:()=>_,starknetCreateKeysForPath:()=>A,getStarknetToolbox:()=>c,deriveStarknetKeys:()=>m});module.exports=zf(Yf);var $f=C(()=>{i()});$f();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var u=Object.create;var{getPrototypeOf:l,defineProperty:I,getOwnPropertyNames:E,getOwnPropertyDescriptor:p}=Object,T=Object.prototype.hasOwnProperty;function w(x){return this[x]}var o,c,Px=(x,P,L)=>{var X=x!=null&&typeof x==="object";if(X){var M=P?o??=new WeakMap:c??=new WeakMap,_=M.get(x);if(_)return _}L=x!=null?u(l(x)):{};let R=P||!x||!x.__esModule?I(L,"default",{value:x,enumerable:!0}):L;for(let Z of E(x))if(!T.call(R,Z))I(R,Z,{get:w.bind(x,Z),enumerable:!0});if(X)M.set(x,R);return R},d=(x)=>{var P=(H??=new WeakMap).get(x),L;if(P)return P;if(P=I({},"__esModule",{value:!0}),x&&typeof x==="object"||typeof x==="function"){for(var X of E(x))if(!T.call(P,X))I(P,X,{get:w.bind(x,X),enumerable:!(L=p(x,X))||L.enumerable})}return H.set(x,P),P},H;var n=(x)=>x;function i(x,P){this[x]=n.bind(null,P)}var t=(x,P)=>{for(var L in P)I(x,L,{get:P[L],enumerable:!0,configurable:!0,set:i.bind(P,L)})};var k=(x,P)=>()=>(x&&(P=x(x=0)),P);function N(x){if(!x||typeof x!=="string"||!x.startsWith("G")||x.length!==56)return!1;return s.test(x)}async function r(x){if(!N(x))return!1;try{let{StrKey:P}=await import("@stellar/stellar-sdk");return P.isValidEd25519PublicKey(x)}catch{return!1}}function y(x={}){let P,L=x.derivationPath||f.NetworkDerivationPath[f.Chain.Stellar],X=f.derivationPathToString(L.slice(0,3));async function M({phrase:j,path:q}){let{HDKey:J}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:Q}=await import("@scure/bip39"),{Keypair:G}=await import("@stellar/stellar-sdk"),Y=Q(j),U=J.fromMasterSeed(Y).derive(q,!0);return G.fromRawEd25519Seed(Buffer.from(U.privateKey))}async function _(){if(P)return P;let j=F.match(x).with({phrase:F.P.string},({phrase:q})=>q).otherwise(()=>{return});if(!j)throw new f.SwapKitError("toolbox_stellar_no_signer");return P=await M({path:X,phrase:j}),P}async function R(){let{Horizon:j}=await import("@stellar/stellar-sdk"),q=await f.getRPCUrl(f.Chain.Stellar);return new j.Server(q)}async function Z(){try{return(await _()).publicKey()}catch{return""}}async function v(j){let q=j||await Z();if(!q)throw new f.SwapKitError("toolbox_stellar_account_not_found");try{return(await(await R()).loadAccount(q)).balances.map((G)=>{if(G.asset_type==="native")return f.AssetValue.from({chain:f.Chain.Stellar,value:G.balance});let Y="asset_code"in G?G.asset_code:"",W="asset_issuer"in G?G.asset_issuer:"";return f.AssetValue.from({asset:`${f.Chain.Stellar}.${Y}-${W}`,asyncTokenLookup:!1,value:G.balance})})}catch{return[f.AssetValue.from({chain:f.Chain.Stellar,value:0})]}}async function B({recipient:j,assetValue:q,memo:J,sender:Q}){if(J){if(new TextEncoder().encode(J).length>28)throw new f.SwapKitError("helpers_invalid_memo_type")}if(!await r(j))throw new f.SwapKitError("core_transaction_invalid_recipient_address");let Y=Q||await Z();if(!Y)throw new f.SwapKitError("toolbox_stellar_no_signer");let{Asset:W,Memo:U,Networks:V,Operation:D,TransactionBuilder:h}=await import("@stellar/stellar-sdk"),O=await R(),b=await O.fetchBaseFee(),m=await O.loadAccount(Y),$=new h(m,{fee:String(b),networkPassphrase:V.PUBLIC});if(q.isGasAsset)try{await O.loadAccount(j),$.addOperation(D.payment({amount:q.getValue("string"),asset:W.native(),destination:j}))}catch{$.addOperation(D.createAccount({destination:j,startingBalance:q.getValue("string")}))}else $.addOperation(D.payment({amount:q.getValue("string"),asset:new W(q.symbol,q.address),destination:j}));if(J)$.addMemo(U.text(J));return $.setTimeout(30).build()}async function C(j){let{TransactionBuilder:q,Networks:J}=await import("@stellar/stellar-sdk"),Q=await _(),G=q.fromXDR(j.toXDR(),J.PUBLIC);return G.sign(Q),G}async function z(j){try{let q=await R(),{hash:J}=await q.submitTransaction(j);return J}catch(q){throw new f.SwapKitError("toolbox_stellar_broadcast_error",q)}}async function K({recipient:j,assetValue:q,memo:J}){let Q=await _(),G=Q.publicKey(),Y=await B({assetValue:q,memo:J,recipient:j,sender:G});Y.sign(Q);try{return(await(await R()).submitTransaction(Y)).hash}catch(W){if(W instanceof f.SwapKitError)throw W;throw new f.SwapKitError("toolbox_stellar_transaction_failed",W)}}async function g(j){let q=await C(j);return z(q)}async function A(){let{baseDecimal:j}=f.getChainConfig(f.Chain.Stellar);try{let Q=(await(await R()).feeStats()).fee_charged.p50;return f.AssetValue.from({chain:f.Chain.Stellar,fromBaseDecimal:j,value:Q})}catch{return f.AssetValue.from({chain:f.Chain.Stellar,fromBaseDecimal:j,value:"100"})}}return{broadcastTransaction:z,createTransaction:B,estimateTransactionFee:A,getAddress:Z,getBalance:v,signAndBroadcastTransaction:g,signTransaction:C,transfer:K,validateAddress:N}}var f,F,s;var S=k(()=>{f=require("@swapkit/helpers"),F=require("ts-pattern"),s=/^G[A-Z2-7]{55}$/});var a={};t(a,{validateStellarAddress:()=>N,getStellarToolbox:()=>y});module.exports=d(a);var e=k(()=>{S()});e();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames,getOwnPropertyDescriptor:__getOwnPropDesc}=Object,__hasOwnProp=Object.prototype.hasOwnProperty;function __accessProp(key){return this[key]}var __toESMCache_node,__toESMCache_esm,__toESM=(mod,isNodeMode,target)=>{var canCache=mod!=null&&typeof mod==="object";if(canCache){var cache=isNodeMode?__toESMCache_node??=new WeakMap:__toESMCache_esm??=new WeakMap,cached=cache.get(mod);if(cached)return cached}target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:__accessProp.bind(mod,key),enumerable:!0});if(canCache)cache.set(mod,to);return to},__toCommonJS=(from)=>{var entry=(__moduleCache??=new WeakMap).get(from),desc;if(entry)return entry;if(entry=__defProp({},"__esModule",{value:!0}),from&&typeof from==="object"||typeof from==="function"){for(var key of __getOwnPropNames(from))if(!__hasOwnProp.call(entry,key))__defProp(entry,key,{get:__accessProp.bind(from,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return __moduleCache.set(from,entry),entry},__moduleCache;var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0,configurable:!0,set:__exportSetter.bind(all,name)})};var __esm=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res);var exports_substrate={};__export(exports_substrate,{isKeyringPair:()=>isKeyringPair,getSubstrateToolbox:()=>getSubstrateToolbox,getSubstrateAddressValidator:()=>getSubstrateAddressValidator,createSubstrateToolbox:()=>createSubstrateToolbox,createKeyring:()=>createKeyring,SubstrateNetwork:()=>SubstrateNetwork});module.exports=__toCommonJS(exports_substrate);var import_api=require("@polkadot/api"),import_util=require("@polkadot/util"),import_util_crypto=require("@polkadot/util-crypto"),import_helpers2=require("@swapkit/helpers"),import_ts_pattern=require("ts-pattern");var import_helpers=require("@swapkit/helpers");async function getSubstrateBalance(api,gasAsset,address){let defaultBalance=[gasAsset.set(0)];if(!address)return defaultBalance;try{let account=await api.query.system?.account?.(address);if(!account)return defaultBalance;let{data:{free}}=account,freeBalance=import_helpers.SwapKitNumber.fromBigInt(BigInt(free.toString()),gasAsset.decimal).getValue("string");return[gasAsset.set(freeBalance)]}catch(error){let errorMessage=error instanceof Error?error.message:String(error);return console.error(`Error fetching substrate balance: ${errorMessage}`),defaultBalance}}async function getChainflipBalance(api,gasAsset,address){let defaultBalance=[gasAsset.set(0)];if(!address)return defaultBalance;try{let flipAccount=await api.query.flip?.account?.(address);if(!flipAccount)return defaultBalance;let balance=flipAccount.balance||flipAccount.data?.balance;if(!balance||balance.isEmpty)return defaultBalance;let balanceStr=import_helpers.SwapKitNumber.fromBigInt(BigInt(balance.toString()),gasAsset.decimal).getValue("string");return[gasAsset.set(balanceStr)]}catch(error){let errorMessage=error instanceof Error?error.message:String(error);return console.error(`Error fetching chainflip balance: ${errorMessage}`),defaultBalance}}function createBalanceGetter(chain,api){return function(address){let gasAsset=import_helpers.AssetValue.from({chain});switch(chain){case import_helpers.Chain.Chainflip:return getChainflipBalance(api,gasAsset,address);default:return getSubstrateBalance(api,gasAsset,address)}}}var polkadotNetwork={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},chainflipNetwork={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},substrateNetwork={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},SubstrateNetwork={DOT:polkadotNetwork,FLIP:chainflipNetwork,GENERIC:substrateNetwork};function getSubstrateToolbox(chain,params){return import_ts_pattern.match(chain).with(...import_helpers2.SubstrateChains,(chain2)=>createSubstrateToolbox({chain:chain2,...params})).exhaustive()}function isKeyringPair(account){return"address"in account}async function createKeyring(phrase,networkPrefix){let{Keyring}=await import("@polkadot/api"),{cryptoWaitReady}=await import("@polkadot/util-crypto");return await cryptoWaitReady(),new Keyring({ss58Format:networkPrefix,type:"sr25519"}).addFromUri(phrase)}var getNonce=(api,address)=>api.rpc.system.accountNextIndex(address),createTransaction=(api,{recipient,assetValue})=>api.tx.balances?.transferAllowDeath?.(recipient,assetValue.getBaseValue("number")),transfer=async(api,signer,{recipient,assetValue,sender})=>{let transfer2=createTransaction(api,{assetValue,recipient});if(!transfer2)throw new import_helpers2.SwapKitError("toolbox_substrate_transfer_error");let isKeyring=isKeyringPair(signer),address=isKeyring?signer.address:sender;if(!address)throw new import_helpers2.SwapKitError("core_transaction_invalid_sender_address");let nonce=await getNonce(api,address);return(await transfer2.signAndSend(isKeyring?signer:address,{nonce,signer:isKeyring?void 0:signer})).toString()},estimateTransactionFee=async(api,signer,gasAsset,{recipient,assetValue,sender})=>{let transfer2=createTransaction(api,{assetValue,recipient}),address=isKeyringPair(signer)?signer.address:sender;if(!address)return Promise.resolve(gasAsset.set(0));let paymentInfo=await transfer2?.paymentInfo(address,{nonce:await getNonce(api,address)})||{partialFee:0};return gasAsset.set(import_helpers2.SwapKitNumber.fromBigInt(BigInt(paymentInfo.partialFee.toString()),gasAsset.decimal).getValue("string"))},broadcast=async(tx,callback)=>{if(callback)return tx.send(callback);return(await tx.send()).toString()},sign=async(signer,tx)=>{return await tx.signAsync(signer)},signAndBroadcastKeyring=(signer,tx,callback)=>{if(callback)return tx.signAndSend(signer,callback);return tx.signAndSend(signer).toString()},signAndBroadcast=async({signer,address,tx,callback,api})=>{let nonce=await getNonce(api,address);if(callback)tx.signAndSend(address,{nonce,signer},callback);return tx.signAndSend(address,{nonce,signer}).toString()};function convertAddress(address,newPrefix){let decodedAddress=import_util_crypto.decodeAddress(address);return import_util_crypto.encodeAddress(decodedAddress,newPrefix)}function decodeAddress(address,networkPrefix){return import_util.isHex(address)?import_util.hexToU8a(address):import_util_crypto.decodeAddress(address,void 0,networkPrefix)}function encodeAddress(address,encoding="ss58",networkPrefix){if(encoding==="hex")return import_util.u8aToHex(address);return import_util_crypto.encodeAddress(address,networkPrefix)}function getSubstrateAddressValidator({chain,prefix}){let networkPrefix=prefix||import_ts_pattern.match(chain).with(import_helpers2.Chain.Polkadot,()=>SubstrateNetwork.DOT.prefix).with(import_helpers2.Chain.Chainflip,()=>SubstrateNetwork.FLIP.prefix).otherwise(()=>SubstrateNetwork.GENERIC.prefix);return function(address){try{let decodedAddress=decodeAddress(address,networkPrefix);return encodeAddress(decodedAddress,"ss58",networkPrefix),!0}catch{return!1}}}function createSubstrateToolbox({chain,generic=!1,...signerParams}){let gasAsset=import_helpers2.AssetValue.from({chain}),cachedSigner;async function getApi(){let rpcUrl=await import_helpers2.getRPCUrl(chain),provider=new import_api.WsProvider(rpcUrl);return import_api.ApiPromise.create({noInitWarn:!0,provider})}async function getSigner(){if(cachedSigner)return cachedSigner;return cachedSigner=await import_ts_pattern.match(signerParams).with({phrase:import_ts_pattern.P.string},({phrase})=>createKeyring(phrase,SubstrateNetwork[chain].prefix)).with({signer:import_ts_pattern.P.any},({signer})=>signer).otherwise(()=>{return}),cachedSigner}let network=generic?SubstrateNetwork.GENERIC:SubstrateNetwork[chain];async function getAddress(keyring){let signer=await getSigner(),keyringPair=keyring||signer;if(!keyringPair)throw new import_helpers2.SwapKitError("core_wallet_not_keypair_wallet");return isKeyringPair(keyringPair)?keyringPair.address:void 0}return{broadcast,convertAddress,createKeyring:(phrase)=>createKeyring(phrase,network.prefix),createTransaction:async(params)=>{let api=await getApi();return createTransaction(api,params)},decodeAddress,encodeAddress,estimateTransactionFee:async(params)=>{let signer=await getSigner();if(!signer)throw new import_helpers2.SwapKitError("core_wallet_not_keypair_wallet");let api=await getApi();return estimateTransactionFee(api,signer,gasAsset,params)},gasAsset,getAddress,getApi,getBalance:async(targetAddress)=>{let api=await getApi(),balanceGetter=createBalanceGetter(chain,api),address=targetAddress||await getAddress();return balanceGetter(address)},network,sign:async(tx)=>{let signer=await getSigner();if(!signer)throw new import_helpers2.SwapKitError("core_wallet_not_keypair_wallet");if(isKeyringPair(signer))return sign(signer,tx);throw new import_helpers2.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:async({tx,callback,address})=>{let signer=await getSigner();if(!signer)throw new import_helpers2.SwapKitError("core_wallet_not_keypair_wallet");if(isKeyringPair(signer))return signAndBroadcastKeyring(signer,tx,callback);let api=await getApi();if(address)return signAndBroadcast({address,api,callback,signer,tx});throw new import_helpers2.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:async(params)=>{let signer=await getSigner();if(!signer)throw new import_helpers2.SwapKitError("core_wallet_not_keypair_wallet");let api=await getApi();return transfer(api,signer,params)},validateAddress:getSubstrateAddressValidator({chain,prefix:network.prefix})}}
|
|
1
|
+
var D=Object.create;var{getPrototypeOf:G,defineProperty:S,getOwnPropertyNames:_,getOwnPropertyDescriptor:F}=Object,v=Object.prototype.hasOwnProperty;function A(e){return this[e]}var M,U,ie=(e,t,r)=>{var n=e!=null&&typeof e==="object";if(n){var i=t?M??=new WeakMap:U??=new WeakMap,a=i.get(e);if(a)return a}r=e!=null?D(G(e)):{};let s=t||!e||!e.__esModule?S(r,"default",{value:e,enumerable:!0}):r;for(let p of _(e))if(!v.call(s,p))S(s,p,{get:A.bind(e,p),enumerable:!0});if(n)i.set(e,s);return s},V=(e)=>{var t=(T??=new WeakMap).get(e),r;if(t)return t;if(t=S({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function"){for(var n of _(e))if(!v.call(t,n))S(t,n,{get:A.bind(e,n),enumerable:!(r=F(e,n))||r.enumerable})}return T.set(e,t),t},T;var W=(e)=>e;function H(e,t){this[e]=W.bind(null,t)}var L=(e,t)=>{for(var r in t)S(e,r,{get:t[r],enumerable:!0,configurable:!0,set:H.bind(t,r)})};var ae=(e,t)=>()=>(e&&(t=e(e=0)),t);var ne={};L(ne,{isKeyringPair:()=>b,getSubstrateToolbox:()=>Q,getSubstrateAddressValidator:()=>j,createSubstrateToolbox:()=>R,createKeyring:()=>h,SubstrateNetwork:()=>m});module.exports=V(ne);var x=require("@polkadot/api"),w=require("@polkadot/util"),P=require("@polkadot/util-crypto"),c=require("@swapkit/helpers"),y=require("ts-pattern");var l=require("@swapkit/helpers");async function O(e,t,r){let n=[t.set(0)];if(!r)return n;try{let i=await e.query.system?.account?.(r);if(!i)return n;let{data:{free:a}}=i,s=l.SwapKitNumber.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(s)]}catch(i){let a=i instanceof Error?i.message:String(i);return console.error(`Error fetching substrate balance: ${a}`),n}}async function q(e,t,r){let n=[t.set(0)];if(!r)return n;try{let i=await e.query.flip?.account?.(r);if(!i)return n;let a=i.balance||i.data?.balance;if(!a||a.isEmpty)return n;let s=l.SwapKitNumber.fromBigInt(BigInt(a.toString()),t.decimal).getValue("string");return[t.set(s)]}catch(i){let a=i instanceof Error?i.message:String(i);return console.error(`Error fetching chainflip balance: ${a}`),n}}function C(e,t){return function(n){let i=l.AssetValue.from({chain:e});switch(e){case l.Chain.Chainflip:return q(t,i,n);default:return O(t,i,n)}}}var z={decimals:[10],displayName:"Polkadot Relay Chain",network:"polkadot",prefix:0,standardAccount:"*25519",symbols:["DOT"],website:"https://polkadot.network"},B={decimals:[18],displayName:"Chainflip",network:"chainflip",prefix:2112,standardAccount:"*25519",symbols:["FLIP"],website:"https://chainflip.io/"},J={decimals:[],displayName:"Substrate",network:"substrate",prefix:42,standardAccount:"*25519",symbols:[],website:"https://substrate.io/"},m={DOT:z,FLIP:B,GENERIC:J};function Q(e,t){return y.match(e).with(...c.SubstrateChains,(r)=>R({chain:r,...t})).exhaustive()}function b(e){return"address"in e}async function h(e,t){let{Keyring:r}=await import("@polkadot/api"),{cryptoWaitReady:n}=await import("@polkadot/util-crypto");return await n(),new r({ss58Format:t,type:"sr25519"}).addFromUri(e)}var I=(e,t)=>e.rpc.system.accountNextIndex(t),k=(e,{recipient:t,assetValue:r})=>e.tx.balances?.transferAllowDeath?.(t,r.getBaseValue("number")),X=async(e,t,{recipient:r,assetValue:n,sender:i})=>{let a=k(e,{assetValue:n,recipient:r});if(!a)throw new c.SwapKitError("toolbox_substrate_transfer_error");let s=b(t),p=s?t.address:i;if(!p)throw new c.SwapKitError("core_transaction_invalid_sender_address");let g=await I(e,p);return(await a.signAndSend(s?t:p,{nonce:g,signer:s?void 0:t})).toString()},Y=async(e,t,r,{recipient:n,assetValue:i,sender:a})=>{let s=k(e,{assetValue:i,recipient:n}),p=b(t)?t.address:a;if(!p)return Promise.resolve(r.set(0));let g=await s?.paymentInfo(p,{nonce:await I(e,p)})||{partialFee:0};return r.set(c.SwapKitNumber.fromBigInt(BigInt(g.partialFee.toString()),r.decimal).getValue("string"))},Z=async(e,t)=>{if(t)return e.send(t);return(await e.send()).toString()},$=async(e,t)=>{return await t.signAsync(e)},ee=(e,t,r)=>{if(r)return t.signAndSend(e,r);return t.signAndSend(e).toString()},te=async({signer:e,address:t,tx:r,callback:n,api:i})=>{let a=await I(i,t);if(n)r.signAndSend(t,{nonce:a,signer:e},n);return r.signAndSend(t,{nonce:a,signer:e}).toString()};function re(e,t){let r=P.decodeAddress(e);return P.encodeAddress(r,t)}function E(e,t){return w.isHex(e)?w.hexToU8a(e):P.decodeAddress(e,void 0,t)}function K(e,t="ss58",r){if(t==="hex")return w.u8aToHex(e);return P.encodeAddress(e,r)}function j({chain:e,prefix:t}){let r=t||y.match(e).with(c.Chain.Polkadot,()=>m.DOT.prefix).with(c.Chain.Chainflip,()=>m.FLIP.prefix).otherwise(()=>m.GENERIC.prefix);return function(i){try{let a=E(i,r);return K(a,"ss58",r),!0}catch{return!1}}}function R({chain:e,generic:t=!1,...r}){let n=c.AssetValue.from({chain:e}),i;async function a(){let o=await c.getRPCUrl(e),d=new x.WsProvider(o);return x.ApiPromise.create({noInitWarn:!0,provider:d})}async function s(){if(i)return i;return i=await y.match(r).with({phrase:y.P.string},({phrase:o})=>h(o,m[e].prefix)).with({signer:y.P.any},({signer:o})=>o).otherwise(()=>{return}),i}let p=t?m.GENERIC:m[e];async function g(o){let d=await s(),u=o||d;if(!u)throw new c.SwapKitError("core_wallet_not_keypair_wallet");return b(u)?u.address:void 0}return{broadcast:Z,convertAddress:re,createKeyring:(o)=>h(o,p.prefix),createTransaction:async(o)=>{let d=await a();return k(d,o)},decodeAddress:E,encodeAddress:K,estimateTransactionFee:async(o)=>{let d=await s();if(!d)throw new c.SwapKitError("core_wallet_not_keypair_wallet");let u=await a();return Y(u,d,n,o)},gasAsset:n,getAddress:g,getApi:a,getBalance:async(o)=>{let d=await a(),u=C(e,d),f=o||await g();return u(f)},network:p,sign:async(o)=>{let d=await s();if(!d)throw new c.SwapKitError("core_wallet_not_keypair_wallet");if(b(d))return $(d,o);throw new c.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},signAndBroadcast:async({tx:o,callback:d,address:u})=>{let f=await s();if(!f)throw new c.SwapKitError("core_wallet_not_keypair_wallet");if(b(f))return ee(f,o,d);let N=await a();if(u)return te({address:u,api:N,callback:d,signer:f,tx:o});throw new c.SwapKitError("core_wallet_not_keypair_wallet","Signer does not have keyring pair capabilities required for signing.")},transfer:async(o)=>{let d=await s();if(!d)throw new c.SwapKitError("core_wallet_not_keypair_wallet");let u=await a();return X(u,d,o)},validateAddress:j({chain:e,prefix:p.prefix})}}
|
package/dist/src/sui/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var g=Object.create;var{getPrototypeOf:u,defineProperty:f,getOwnPropertyNames:I,getOwnPropertyDescriptor:l}=Object,E=Object.prototype.hasOwnProperty;function K(b){return this[b]}var d,c,G5=(b,O,W)=>{var L=b!=null&&typeof b==="object";if(L){var M=O?d??=new WeakMap:c??=new WeakMap,X=M.get(b);if(X)return X}W=b!=null?g(u(b)):{};let Y=O||!b||!b.__esModule?f(W,"default",{value:b,enumerable:!0}):W;for(let v of I(b))if(!E.call(Y,v))f(Y,v,{get:K.bind(b,v),enumerable:!0});if(L)M.set(b,Y);return Y},o=(b)=>{var O=(F??=new WeakMap).get(b),W;if(O)return O;if(O=f({},"__esModule",{value:!0}),b&&typeof b==="object"||typeof b==="function"){for(var L of I(b))if(!E.call(O,L))f(O,L,{get:K.bind(b,L),enumerable:!(W=l(b,L))||W.enumerable})}return F.set(b,O),O},F;var r=(b)=>b;function i(b,O){this[b]=r.bind(null,O)}var t=(b,O)=>{for(var W in O)f(b,W,{get:O[W],enumerable:!0,configurable:!0,set:i.bind(O,W)})};var w=(b,O)=>()=>(b&&(O=b(b=0)),O);async function h(b,O,W,L=[],M){let X=await b.getCoins({coinType:W,cursor:M,owner:O}),Y=[...L,...X.data];return X.hasNextPage?h(b,O,W,Y,X.nextCursor):Y}function n(b,O,W){let L=O.reduce((D,j)=>D+BigInt(j.balance),0n);if(L<W)throw new P.SwapKitError("toolbox_sui_insufficient_balance",{available:L.toString(),required:W.toString()});let{ids:M}=O.reduce((D,j)=>{if(D.total>=W)return D;return{ids:[...D.ids,j.coinObjectId],total:D.total+BigInt(j.balance)}},{ids:[],total:0n}),X=M[0],Y=M.slice(1);if(Y.length>0)b.mergeCoins(X,Y);let[v]=b.splitCoins(X,[W]);return v}function A(b){try{return y.isValidSuiAddress(b)}catch{return!1}}function x(b){return"signWithIntent"in b}function a({provider:b,...O}={}){let W;async function L(){if(W)return W;return W=await k.match(O).with({phrase:k.P.string},async({phrase:G})=>{let{Ed25519Keypair:R}=await import("@mysten/sui/keypairs/ed25519");return R.deriveKeypair(G)}).with({signer:k.P.any},({signer:G})=>G).otherwise(()=>{return}),W}async function M(G=b){let{SuiClient:R,getFullnodeUrl:z}=await import("@mysten/sui/client");return new R({url:G||z("mainnet")})}async function X(){return(await L())?.toSuiAddress()||""}function Y(G){try{let R=P.AssetValue.from({address:G,chain:P.Chain.Sui});return{asset:R.toString(),decimals:R.decimal}}catch{}return null}async function v(G){let R=G||await X();if(!R)throw new P.SwapKitError("toolbox_sui_address_required");let{baseDecimal:z,chain:J}=P.getChainConfig(P.Chain.Sui);try{let Z=await M(),{totalBalance:N}=await Z.getBalance({owner:R}),q=[P.AssetValue.from({chain:J,fromBaseDecimal:z,value:N})],Q=await Z.getAllBalances({owner:R});for(let{coinType:_,totalBalance:$}of Q){if(_==="0x2::sui::SUI"||Number($)<=0)continue;let U=Y(_);if(U)q.push(P.AssetValue.from({asset:U.asset,fromBaseDecimal:U.decimals,value:$}))}return q}catch{return[P.AssetValue.from({chain:J})]}}async function D(G){let R=P.AssetValue.from({chain:P.Chain.Sui,value:"0.01"});if(!G)return R;try{let z=await M(),{txBytes:J}=await j(G),{effects:{status:Z,gasUsed:N}}=await z.dryRunTransactionBlock({transactionBlock:J});if(Z.status!=="success")return R;let q=Number(N.computationCost)+Number(N.storageCost)-Number(N.storageRebate);return P.AssetValue.from({chain:P.Chain.Sui,value:q.toString()})}catch{return R}}async function j({recipient:G,assetValue:R,gasBudget:z,sender:J}){let{Transaction:Z}=await import("@mysten/sui/transactions"),N=J||await X();if(!N)throw new P.SwapKitError("toolbox_sui_no_sender");try{let q=new Z;if(q.setSender(N),R.isGasAsset||R.symbol==="SUI"){let[$]=q.splitCoins(q.gas,[R.getBaseValue("string")]);q.transferObjects([$],G)}else{let $=R.address;if(!$)throw new P.SwapKitError("toolbox_sui_missing_coin_type");let U=await M(),T=R.getBaseValue("bigint"),H=await h(U,N,$);if(!H.length)throw new P.SwapKitError("toolbox_sui_no_coins_found",{coinType:$});let C=n(q,H,T);q.transferObjects([C],G)}if(z)q.setGasBudget(z);let Q=await M(),_=await q.build({client:Q});return{tx:q,txBytes:_}}catch(q){if(q instanceof P.SwapKitError)throw q;throw new P.SwapKitError("toolbox_sui_transaction_creation_error",{error:q})}}async function V(G){let R=await L();if(!R)throw new P.SwapKitError("toolbox_sui_no_signer");if(G instanceof Uint8Array)return R.signTransaction(G);let{txBytes:z}="tx"in G?G:await j(G);return R.signTransaction(z)}async function S({assetValue:G,gasBudget:R,recipient:z}){let J=await L();if(!J)throw new P.SwapKitError("toolbox_sui_no_signer");let Z=J.toSuiAddress()||await X();if(!Z)throw new P.SwapKitError("toolbox_sui_no_sender");let{txBytes:N}=await j({assetValue:G,gasBudget:R,recipient:z,sender:Z}),q=await M();if(!x(J)){let _=await J.signTransaction(N),{digest:$}=await q.executeTransactionBlock({signature:_.signature,transactionBlock:_.bytes});return $}let{digest:Q}=await q.signAndExecuteTransaction({signer:J,transaction:N});return Q}async function B(G){let R=await M(),{digest:z}=await R.executeTransactionBlock({signature:G.signature,transactionBlock:G.bytes});return z}async function p(G){let R=await L();if(!R)throw new P.SwapKitError("toolbox_sui_no_signer");let z=await M(),J;if(typeof G==="string")J=Uint8Array.from(Buffer.from(G,"base64"));else if(G instanceof Uint8Array)J=G;else J=await G.build({client:z});if(!x(R)){let N=await R.signTransaction(J),{digest:q}=await z.executeTransactionBlock({signature:N.signature,transactionBlock:N.bytes});return q}let{digest:Z}=await z.signAndExecuteTransaction({signer:R,transaction:J});return Z}return{broadcastTransaction:B,createTransaction:j,estimateTransactionFee:D,getAddress:X,getBalance:v,signAndBroadcastTransaction:p,signTransaction:V,transfer:S,validateAddress:A}}var y,P,k;var m=w(()=>{y=require("@mysten/sui/utils"),P=require("@swapkit/helpers"),k=require("ts-pattern")});var e={};t(e,{validateSuiAddress:()=>A,getSuiToolbox:()=>a});module.exports=o(e);var b5=w(()=>{m()});b5();
|
package/dist/src/ton/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var tt=Object.create;var{getPrototypeOf:et,defineProperty:h,getOwnPropertyNames:I,getOwnPropertyDescriptor:nt}=Object,U=Object.prototype.hasOwnProperty;function j(t){return this[t]}var rt,st,At=(t,s,i)=>{var f=t!=null&&typeof t==="object";if(f){var g=s?rt??=new WeakMap:st??=new WeakMap,w=g.get(t);if(w)return w}i=t!=null?tt(et(t)):{};let u=s||!t||!t.__esModule?h(i,"default",{value:t,enumerable:!0}):i;for(let p of I(t))if(!U.call(u,p))h(u,p,{get:j.bind(t,p),enumerable:!0});if(f)g.set(t,u);return u},ot=(t)=>{var s=(G??=new WeakMap).get(t),i;if(s)return s;if(s=h({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var f of I(t))if(!U.call(s,f))h(s,f,{get:j.bind(t,f),enumerable:!(i=nt(t,f))||i.enumerable})}return G.set(t,s),s},G;var at=(t)=>t;function it(t,s){this[t]=at.bind(null,s)}var ct=(t,s)=>{for(var i in s)h(t,i,{get:s[i],enumerable:!0,configurable:!0,set:it.bind(s,i)})};var P=(t,s)=>()=>(t&&(s=t(t=0)),s);function Ct(){function t(){let s=Date.now(),i=E||s;return E=i,s>E?s:i+1}return dt+t().toString(36)}function J(t){return async function(i,f=!0){let g=await q.SwapKitApi.getChainBalance({address:i,chain:t,scamFilter:f}),{baseDecimal:w}=b.getChainConfig(t),u=g.map(({identifier:C,value:N,decimal:S})=>{return new b.AssetValue({decimal:S||w,identifier:C,value:N})});if(!u.some((C)=>C.isGasAsset))return[b.AssetValue.from({chain:t}),...u];return u}}var b,q,dt,E=0;var L=P(()=>{b=require("@swapkit/helpers"),q=require("@swapkit/helpers/api"),dt=typeof process<"u"&&process.pid?process.pid.toString(36):""});async function pt(){let t=Date.now();if(O&&t-k<gt)return O;try{return O=await Y.getHttpEndpoint(),k=t,O}catch{return a.getRPCUrl(a.Chain.Ton)}}function Tt(t={}){let s,i,f;async function g(){if(!s){let e=t.provider??await pt();s=new n.TonClient({endpoint:e})}return s}async function w(){return(await p()).address.toString()}async function u(){if(f)return f;return f=await m.match(t).with({phrase:m.P.string},async({phrase:e})=>H.mnemonicToWalletKey(e.split(" "))).with({signer:m.P.any},({signer:e})=>e).otherwise(()=>{return}),f}async function p(e){if(!i||e){let r=await u(),o=await g(),c=e||r;if(!c)throw new a.SwapKitError("core_wallet_connection_not_found");let d=n.WalletContractV4.create({publicKey:c.publicKey,workchain:0});i=o.open(d)}return i}let C=J(a.Chain.Ton);async function N({assetValue:e,recipient:r,memo:o,sender:c}){if(e.isGasAsset){let M=o?v(o).toBoc().toString("base64"):void 0;return[{address:r,amount:e.getBaseValue("string"),payload:M}]}let d=e.address;if(!d)throw new a.SwapKitError({errorKey:"core_swap_contract_not_found",info:{asset:e.toString()}});let l=c??await w(),T=await W({jettonMasterAddress:d,ownerAddress:l}),A=n.Address.parse(r),y=n.Address.parse(l),B=e.getBaseValue("bigint"),x=o?v(o):void 0,_=$({destinationAddress:A,forwardPayload:x,jettonAmount:B,responseAddress:y});return[{address:T.toString(),amount:ut.toString(),payload:_.toBoc().toString("base64")}]}function S({sender:e,...r}){return N({...r,sender:e})}function D(e){return e.map((r)=>{let o=r.payload?n.Cell.fromBase64(r.payload):void 0,c=r.stateInit?n.loadStateInit(n.Cell.fromBase64(r.stateInit).asSlice()):void 0,d=n.Address.parse(r.address),l=n.Address.isFriendly(r.address)?n.Address.parseFriendly(r.address).isBounceable:!0;return n.internal({body:o,bounce:l,init:c,to:d,value:BigInt(r.amount)})})}async function K(e){let r=await u(),o=await p();if(!o||!r)throw new a.SwapKitError("core_wallet_connection_not_found");let c=await g(),{state:d}=await c.getContractState(o.address),l=d==="active",T=l?await o.getSeqno():0,A=o.createTransfer({messages:D(e),secretKey:r.secretKey,sendMode:V,seqno:T}),y=n.external({body:A,init:l?void 0:o.init,to:o.address});return n.beginCell().store(n.storeMessage(y)).endCell()}async function F(e){return await(await g()).sendFile(e.toBoc()),e.hash().toString("hex")}async function R(e){let r=await K(e);return F(r)}async function X({assetValue:e,recipient:r,memo:o}){let c=await S({assetValue:e,memo:o,recipient:r});return R(c)}async function Z({sender:e,...r}){let{baseDecimal:o}=a.getChainConfig(a.Chain.Ton),c=await m.match(e).with(m.P.string,(T)=>{return n.Address.parseFriendly(T).address}).otherwise(async()=>{return(await p()).address});if(!c)throw new a.SwapKitError("toolbox_fee_estimation_failed",{chain:a.Chain.Ton});let d=a.AssetValue.from({chain:a.Chain.Ton,value:"0.01"}),l=await g();try{let T=await S({sender:e,...r}),A=await u(),y=await p();if(!y||!A)return d;let B=await y.getSeqno(),x=y.createTransfer({messages:D(T),secretKey:A.secretKey,sendMode:V,seqno:B}),{source_fees:_}=await l.estimateExternalMessageFee(c,{body:x,ignoreSignature:!0,initCode:null,initData:null}),M=_.in_fwd_fee+_.storage_fee+_.gas_fee+_.fwd_fee;return d.set(a.SwapKitNumber.fromBigInt(BigInt(M),o))}catch{return d}}async function W({jettonMasterAddress:e,ownerAddress:r}){try{let o=await g(),c=n.Address.parse(e),d=n.Address.parse(r);return await o.open(n.JettonMaster.create(c)).getWalletAddress(d)}catch{throw new a.SwapKitError({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:e,ownerAddress:r}})}}function $({jettonAmount:e,destinationAddress:r,responseAddress:o,forwardAmount:c=ft,forwardPayload:d}){let l=n.beginCell().storeUint(lt,32).storeUint(0,64).storeCoins(e).storeAddress(r).storeAddress(o).storeBit(0).storeCoins(c);if(d)l.storeBit(1).storeRef(d);else l.storeBit(0);return l.endCell()}function v(e){return n.beginCell().storeUint(0,32).storeStringTail(e).endCell()}return{broadcastTransaction:F,createTransaction:S,estimateTransactionFee:Z,getAddress:w,getBalance:C,getJettonWalletAddress:W,sign:K,signAndBroadcastTransaction:R,transfer:X,validateAddress:z}}function z(t){try{return n.Address.parse(t),!0}catch{return!1}}var Y,a,H,n,m,lt=260734629,ft,ut,V,gt=60000,O,k=0;var Q=P(()=>{L();Y=require("@orbs-network/ton-access"),a=require("@swapkit/helpers"),H=require("@ton/crypto"),n=require("@ton/ton"),m=require("ts-pattern"),ft=n.toNano("0.01"),ut=n.toNano("0.05"),V=n.SendMode.PAY_GAS_SEPARATELY+n.SendMode.IGNORE_ERRORS});var yt={};ct(yt,{validateTonAddress:()=>z,getTONToolbox:()=>Tt});module.exports=ot(yt);var mt=P(()=>{Q()});mt();
|