@gurge/sdk-react-native 0.3.86 → 0.3.94

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.
Files changed (96) hide show
  1. package/common/src/API/getCoingeckoPrice.cjs +1 -1
  2. package/common/src/API/proxyAccountsCalls.cjs +1 -1
  3. package/common/src/crypto/EddsaRN.cjs +1 -1
  4. package/common/src/crypto/ecdh-sealed-keys.cjs +1 -1
  5. package/common/src/crypto/ecdh-sealed-keys.mjs +2 -2
  6. package/common/src/crypto/ecdh.cjs +1 -1
  7. package/common/src/crypto/ecdh.mjs +4 -0
  8. package/common/src/crypto/poseidon.cjs +1 -1
  9. package/common/src/crypto/preProcessing.cjs +1 -1
  10. package/common/src/crypto/preProcessing.mjs +2 -2
  11. package/common/src/data-structures/AccountActions/AccountActions.cjs +1 -1
  12. package/common/src/data-structures/Hinkal/Hinkal.cjs +1 -1
  13. package/common/src/data-structures/Hinkal/hinkalSolanaClaimUtxo.cjs +1 -1
  14. package/common/src/data-structures/Hinkal/hinkalSolanaDeposit.cjs +1 -1
  15. package/common/src/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
  16. package/common/src/data-structures/Hinkal/hinkalSolanaProxySend.cjs +1 -1
  17. package/common/src/data-structures/Hinkal/hinkalSolanaProxyShield.cjs +1 -1
  18. package/common/src/data-structures/Hinkal/hinkalSolanaProxySwap.cjs +1 -1
  19. package/common/src/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
  20. package/common/src/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
  21. package/common/src/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
  22. package/common/src/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
  23. package/common/src/data-structures/Hinkal/prepareDepositOnChainUtxosZkProof.cjs +1 -1
  24. package/common/src/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
  25. package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +1 -1
  26. package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.cjs +1 -1
  27. package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
  28. package/common/src/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
  29. package/common/src/data-structures/crypto-keys/encryptDecryptUtxo.cjs +1 -1
  30. package/common/src/data-structures/crypto-keys/keys.cjs +1 -1
  31. package/common/src/data-structures/crypto-keys/keys.mjs +2 -2
  32. package/common/src/data-structures/event-service/evm/AbstractNullifierSnapshotService.cjs +1 -1
  33. package/common/src/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
  34. package/common/src/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.cjs +1 -1
  35. package/common/src/data-structures/event-service/solana/SolanaBlockchainEventEmitter.cjs +1 -1
  36. package/common/src/data-structures/http/BasicHttpClient.cjs +1 -1
  37. package/common/src/functions/pre-transaction/convert-okx-instructions.cjs +1 -1
  38. package/common/src/functions/pre-transaction/ensureAmountChanges.cjs +1 -1
  39. package/common/src/functions/pre-transaction/getSolanaCalldataHash.cjs +1 -1
  40. package/common/src/functions/pre-transaction/sendV0Transaction.cjs +1 -1
  41. package/common/src/functions/pre-transaction/solana.cjs +1 -1
  42. package/common/src/functions/pre-transaction/solanaTransfer.utils.cjs +1 -1
  43. package/common/src/functions/private-wallet/emporium.helpers.cjs +1 -1
  44. package/common/src/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
  45. package/common/src/functions/snarkjs/common.snarkjs.cjs +1 -1
  46. package/common/src/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
  47. package/common/src/functions/snarkjs/fetchOnChainRootHashes.cjs +1 -1
  48. package/common/src/functions/snarkjs/signedMessageHash.cjs +1 -1
  49. package/common/src/functions/snarkjs/verifyCommitmentValidationData.cjs +1 -1
  50. package/common/src/functions/utils/abi.utils.cjs +1 -1
  51. package/common/src/functions/utils/addresses.cjs +1 -1
  52. package/common/src/functions/utils/convertEmporiumOpToCallInfo.cjs +1 -1
  53. package/common/src/functions/utils/create-provider.cjs +1 -1
  54. package/common/src/functions/utils/encryptInputForEnclave.cjs +1 -1
  55. package/common/src/functions/utils/encryptInputForEnclave.mjs +2 -2
  56. package/common/src/functions/utils/external-action.utils.cjs +1 -1
  57. package/common/src/functions/utils/getSignerFromContract.cjs +1 -1
  58. package/common/src/functions/utils/getUtxosFromReceiptSolana.cjs +1 -1
  59. package/common/src/functions/utils/mnemonics.cjs +1 -1
  60. package/common/src/functions/utils/publicBalance.utils.cjs +1 -1
  61. package/common/src/functions/utils/solana-memo.cjs +1 -1
  62. package/common/src/functions/utils/solanaMint.utils.cjs +1 -1
  63. package/common/src/functions/utils/tron.utils.cjs +1 -1
  64. package/common/src/functions/utils/userAgent.cjs +1 -1
  65. package/common/src/functions/web3/etherFunctions.cjs +1 -1
  66. package/common/src/functions/web3/events/getInputUtxoAndBalance.cjs +1 -1
  67. package/common/src/functions/web3/events/getInputUtxosEnclave.cjs +1 -1
  68. package/common/src/functions/web3/events/getShieldedBalance.cjs +1 -1
  69. package/common/src/functions/web3/functionCalls/approveToken.cjs +1 -1
  70. package/common/src/functions/web3/functionCalls/constructBatchCall.cjs +1 -1
  71. package/common/src/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
  72. package/common/src/functions/web3/getContractMetadata.cjs +1 -1
  73. package/common/src/functions/web3/okxAPI.cjs +1 -1
  74. package/common/src/functions/web3/uniswapAPI.cjs +1 -1
  75. package/common/src/mutexes/chainBalanceRwLock.cjs +1 -1
  76. package/common/src/mutexes/mutex.cjs +1 -1
  77. package/common/src/providers/EthersProviderAdapter.cjs +1 -1
  78. package/common/src/providers/SolanaProviderAdapter.cjs +1 -1
  79. package/common/src/providers/WagmiProviderAdapter.cjs +1 -1
  80. package/common/src/types/hinkal.types.cjs +1 -1
  81. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.cjs +1 -1
  82. package/common/src/webworker/utxoWorker/utxoWorkerLauncher.ts?worker&url.mjs +1 -1
  83. package/common/src/webworker/viteWorkerURL.constant.mjs +3 -3
  84. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.cjs +1 -1
  85. package/common/src/webworker/zkProofWorker/zkProofWorkerLauncher.ts?worker&url.mjs +1 -1
  86. package/package.json +3 -2
  87. package/react-native/HinkalProvider.cjs +1 -1
  88. package/react-native/HinkalProvider.mjs +1 -0
  89. package/react-native/HinkalWebViewWorker.cjs +1 -1
  90. package/react-native/bridge/HinkalRNWorker.cjs +1 -1
  91. package/shims/libsodium-wrappers.cjs +3 -0
  92. package/shims/libsodium-wrappers.mjs +3 -0
  93. package/vendor/libsodium/dist/modules/libsodium.cjs +0 -1
  94. package/vendor/libsodium/dist/modules/libsodium.mjs +0 -3711
  95. package/vendor/libsodium-wrappers/dist/modules/libsodium-wrappers.cjs +0 -1
  96. package/vendor/libsodium-wrappers/dist/modules/libsodium-wrappers.mjs +0 -3623
@@ -1,7 +1,7 @@
1
- import { __toESM as e } from "../../../../../../_virtual/_rolldown/runtime.mjs";
1
+ import { __toESM as e } from "../../../../_virtual/_rolldown/runtime.mjs";
2
2
  import { CIRCOM_P as t } from "../../constants/protocol.constants.mjs";
3
3
  import { poseidonHash as n } from "../../crypto/poseidon.mjs";
4
- import { require_libsodium_wrappers as r } from "../../../../vendor/libsodium-wrappers/dist/modules/libsodium-wrappers.mjs";
4
+ import { require_libsodium_wrappers as r } from "../../../../shims/libsodium-wrappers.mjs";
5
5
  import { babyJubInstance as i } from "../../crypto/babyJub.mjs";
6
6
  import { eddsaInstance as a } from "../../crypto/eddsa.mjs";
7
7
  import { AttachableMemoryCacheDevice as o } from "../cacheDevices/AttachableMemoryCacheDevice.mjs";
@@ -1 +1 @@
1
- require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`./AbstractSnapshotService.cjs`);let t=require(`ethers`);var n=class extends e.AbstractSnapshotService{constructor(e){super(e,`Nullified`)}_nullifiers;get nullifiers(){return this._nullifiers}serializeSnapshot(e){return{nullifiers:Array.from(e.payload.nullifiers).map(e=>e.toString()),latestBlockNumber:e.latestBlockNumber}}deserializeSnapshot(e){return{latestBlockNumber:e.latestBlockNumber??0,payload:{nullifiers:new Set(e.nullifiers??[])}}}acceptEvent(e,t){try{return this._nullifiers.has(e.nullifier)?!1:(this._nullifiers.add(e.nullifier),!0)}catch(e){return console.error(e),!1}}mapEvent(e){let n=e.getArg(`nullifier`);return{nullifier:t.ethers.toBeHex(n)}}getSnapshotPayload(){return{nullifiers:this._nullifiers}}populateSnapshot({payload:{nullifiers:e}}){this._nullifiers=e}};exports.AbstractNullifierSnapshotService=n;
1
+ require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`./AbstractSnapshotService.cjs`);let t=require(`ethers`);var n=class extends e.AbstractSnapshotService{constructor(e){super(e,`Nullified`)}_nullifiers;get nullifiers(){return this._nullifiers}serializeSnapshot(e){return{nullifiers:Array.from(e.payload.nullifiers).map(e=>e.toString()),latestBlockNumber:e.latestBlockNumber}}deserializeSnapshot(e){return{latestBlockNumber:e.latestBlockNumber??0,payload:{nullifiers:new Set(e.nullifiers??[])}}}acceptEvent(e,t){try{return this._nullifiers.has(e.nullifier)?!1:(this._nullifiers.add(e.nullifier),!0)}catch(e){return console.error(e),!1}}mapEvent(e){let n=e.getArg(`nullifier`);return{nullifier:t.ethers.toBeHex(n)}}getSnapshotPayload(){return{nullifiers:this._nullifiers}}populateSnapshot({payload:{nullifiers:e}}){this._nullifiers=e}};exports.AbstractNullifierSnapshotService=n;
@@ -1 +1 @@
1
- require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../error-handling/logger.cjs`),t=require(`../../../functions/utils/resolve-sync.utils.cjs`),n=require(`../../../constants/reorg-depths.constants.cjs`),r=require(`../../../functions/utils/getSignerFromContract.cjs`),i=require(`../../BlockchainEvent/BlockchainEvent.cjs`);let a=require(`ethers`);var o=class{RETRY_MIN_PAGE_SIZE=100;MAX_RETRIES=20;_chainId;contract;depositOnChainUtxosContract;_latestBlockNumber;_initialBlockNumber;onEventsProcessed;eventProcessors=new Set;maxPageSize;_isReady=!1;isServer;inProgress;eventsFetchingMutex;constructor(e,t,n,r,i,a,o){this.contract=t,this.depositOnChainUtxosContract=o,this._chainId=e,this._initialBlockNumber=n,this.maxPageSize=a,this.isServer=r,this.inProgress=!1,this.eventsFetchingMutex=i}get latestBlockNumber(){return this._latestBlockNumber??this._initialBlockNumber}get chainId(){return this._chainId}get isReady(){return this._isReady}syncFromAtMost(e){(this._latestBlockNumber===void 0||e<this._latestBlockNumber)&&(this._latestBlockNumber=e)}advanceLatestBlockNumber(e){e>(this._latestBlockNumber??this._initialBlockNumber)&&(this._latestBlockNumber=e)}intervalClear(){this._isReady=!1,this.eventProcessors=new Set,this.clear()}async init(){if(this._isReady)throw Error(`Already initialized`);this._isReady=!0,await this.retrieveEvents(this.latestBlockNumber+1),this.startUpdateListener()}requireReady(){if(!this._isReady)throw Error(`Not ready`)}async getEventsForSingleContract(e,t,n,r=0){try{return(await e.queryFilter(`*`,t,n)).filter(e=>e instanceof a.ethers.EventLog)}catch(i){if(r<this.MAX_RETRIES&&n-t>this.RETRY_MIN_PAGE_SIZE){let i=Math.floor((t+n)/2),a=await this.getEventsForSingleContract(e,t,i,r+1),o=await this.getEventsForSingleContract(e,i+1,n,r+1);return[...a,...o]}throw i}}addEventProcessorFunction(e){if(this._isReady)throw Error(`Can't add event processor after event emitter initialized`);this.eventProcessors.add(e)}async getEventsInRange(e,n){let r=[],a=t.getSequence(e,n,this.maxPageSize);await t.resolveSync(a.map(({from:e,to:t})=>async()=>{let n=await this.getEventsForSingleContract(this.contract,e,t);r.push(...n)}));let o=this.depositOnChainUtxosContract;return o&&await t.resolveSync(a.map(({from:e,to:t})=>async()=>{let n=await this.getEventsForSingleContract(o,e,t);r.push(...n)})),r.map(e=>i.BlockchainEvent.fromEthers(e))}async getLastBlockNumberForEventRequest(){let e=await r.getProviderFromContract(this.contract).getBlockNumber();if(!this.isServer)return e;let{chainId:t}=await r.getProviderFromContract(this.contract).getNetwork();return Math.max(this.latestBlockNumber,e-n.blockReorgDepth[Number(t)]+1)}async retrieveEvents(t,n=!1){return this.requireReady(),await this.eventsFetchingMutex.runExclusive(async()=>{try{if(this.inProgress&&!n)return!1;this.inProgress=!0;let e=await this.getLastBlockNumberForEventRequest();if(e<t)return this.inProgress=!1,!1;let r=await this.getEventsInRange(t,e);return await this.processEvents(r,e),this._latestBlockNumber=e,this.inProgress=!1,!0}catch(t){return e.Logger.error(`retrieveEvents error`,t),this.inProgress=!1,!1}})}async processEvents(e,t){let n=(await Promise.all([...this.eventProcessors].map(n=>n(e,t)))).reduce((e,t)=>e+t,0);this.onEventsProcessed?.(n)}};exports.BlockchainEventEmitter=o;
1
+ require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../../error-handling/logger.cjs`),t=require(`../../../functions/utils/resolve-sync.utils.cjs`),n=require(`../../../constants/reorg-depths.constants.cjs`),r=require(`../../../functions/utils/getSignerFromContract.cjs`),i=require(`../../BlockchainEvent/BlockchainEvent.cjs`);let a=require(`ethers`);var o=class{RETRY_MIN_PAGE_SIZE=100;MAX_RETRIES=20;_chainId;contract;depositOnChainUtxosContract;_latestBlockNumber;_initialBlockNumber;onEventsProcessed;eventProcessors=new Set;maxPageSize;_isReady=!1;isServer;inProgress;eventsFetchingMutex;constructor(e,t,n,r,i,a,o){this.contract=t,this.depositOnChainUtxosContract=o,this._chainId=e,this._initialBlockNumber=n,this.maxPageSize=a,this.isServer=r,this.inProgress=!1,this.eventsFetchingMutex=i}get latestBlockNumber(){return this._latestBlockNumber??this._initialBlockNumber}get chainId(){return this._chainId}get isReady(){return this._isReady}syncFromAtMost(e){(this._latestBlockNumber===void 0||e<this._latestBlockNumber)&&(this._latestBlockNumber=e)}advanceLatestBlockNumber(e){e>(this._latestBlockNumber??this._initialBlockNumber)&&(this._latestBlockNumber=e)}intervalClear(){this._isReady=!1,this.eventProcessors=new Set,this.clear()}async init(){if(this._isReady)throw Error(`Already initialized`);this._isReady=!0,await this.retrieveEvents(this.latestBlockNumber+1),this.startUpdateListener()}requireReady(){if(!this._isReady)throw Error(`Not ready`)}async getEventsForSingleContract(e,t,n,r=0){try{return(await e.queryFilter(`*`,t,n)).filter(e=>e instanceof a.ethers.EventLog)}catch(i){if(r<this.MAX_RETRIES&&n-t>this.RETRY_MIN_PAGE_SIZE){let i=Math.floor((t+n)/2),a=await this.getEventsForSingleContract(e,t,i,r+1),o=await this.getEventsForSingleContract(e,i+1,n,r+1);return[...a,...o]}throw i}}addEventProcessorFunction(e){if(this._isReady)throw Error(`Can't add event processor after event emitter initialized`);this.eventProcessors.add(e)}async getEventsInRange(e,n){let r=[],a=t.getSequence(e,n,this.maxPageSize);await t.resolveSync(a.map(({from:e,to:t})=>async()=>{let n=await this.getEventsForSingleContract(this.contract,e,t);r.push(...n)}));let o=this.depositOnChainUtxosContract;return o&&await t.resolveSync(a.map(({from:e,to:t})=>async()=>{let n=await this.getEventsForSingleContract(o,e,t);r.push(...n)})),r.map(e=>i.BlockchainEvent.fromEthers(e))}async getLastBlockNumberForEventRequest(){let e=await r.getProviderFromContract(this.contract).getBlockNumber();if(!this.isServer)return e;let{chainId:t}=await r.getProviderFromContract(this.contract).getNetwork();return Math.max(this.latestBlockNumber,e-n.blockReorgDepth[Number(t)]+1)}async retrieveEvents(t,n=!1){return this.requireReady(),await this.eventsFetchingMutex.runExclusive(async()=>{try{if(this.inProgress&&!n)return!1;this.inProgress=!0;let e=await this.getLastBlockNumberForEventRequest();if(e<t)return this.inProgress=!1,!1;let r=await this.getEventsInRange(t,e);return await this.processEvents(r,e),this._latestBlockNumber=e,this.inProgress=!1,!0}catch(t){return e.Logger.error(`retrieveEvents error`,t),this.inProgress=!1,!1}})}async processEvents(e,t){let n=(await Promise.all([...this.eventProcessors].map(n=>n(e,t)))).reduce((e,t)=>e+t,0);this.onEventsProcessed?.(n)}};exports.BlockchainEventEmitter=o;
@@ -1 +1 @@
1
- require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../functions/utils/amounts.utils.cjs`),t=require(`./AbstractSolanaSnapshotService.cjs`);let n=require(`ethers`);var r=class extends t.AbstractSolanaSnapshotService{constructor(e){super(e,`Nullified`)}_nullifiers;get nullifiers(){return this._nullifiers}serializeSnapshot(e){return{nullifiers:Array.from(e.payload.nullifiers).map(e=>e.toString()),latestBlockNumber:e.latestBlockNumber}}deserializeSnapshot(e){return{latestBlockNumber:e.latestBlockNumber??0,payload:{nullifiers:new Set(e.nullifiers??[])}}}acceptEvent(e,t){try{return this._nullifiers.has(e.nullifier)?!1:(this._nullifiers.add(e.nullifier),!0)}catch(e){return console.error(e),!1}}mapEvent(t){return{nullifier:n.ethers.toBeHex(e.advancedToBigInt(t.getArg(`nullifier`)))}}getSnapshotPayload(){return{nullifiers:this._nullifiers}}populateSnapshot({payload:{nullifiers:e}}){this._nullifiers=e}};exports.AbstractSolanaNullifierSnapshotService=r;
1
+ require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../../functions/utils/amounts.utils.cjs`),t=require(`./AbstractSolanaSnapshotService.cjs`);let n=require(`ethers`);var r=class extends t.AbstractSolanaSnapshotService{constructor(e){super(e,`Nullified`)}_nullifiers;get nullifiers(){return this._nullifiers}serializeSnapshot(e){return{nullifiers:Array.from(e.payload.nullifiers).map(e=>e.toString()),latestBlockNumber:e.latestBlockNumber}}deserializeSnapshot(e){return{latestBlockNumber:e.latestBlockNumber??0,payload:{nullifiers:new Set(e.nullifiers??[])}}}acceptEvent(e,t){try{return this._nullifiers.has(e.nullifier)?!1:(this._nullifiers.add(e.nullifier),!0)}catch(e){return console.error(e),!1}}mapEvent(t){return{nullifier:n.ethers.toBeHex(e.advancedToBigInt(t.getArg(`nullifier`)))}}getSnapshotPayload(){return{nullifiers:this._nullifiers}}populateSnapshot({payload:{nullifiers:e}}){this._nullifiers=e}};exports.AbstractSolanaNullifierSnapshotService=r;
@@ -1 +1 @@
1
- require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../functions/utils/serialize.utils.cjs`),t=require(`../../../error-handling/logger.cjs`),n=require(`../../../functions/utils/resolve-sync.utils.cjs`),r=require(`../../BlockchainEvent/BlockchainEvent.cjs`);let i=require(`@coral-xyz/anchor`);var a=1e3,o=20,s=class{_chainId;connection;programId;_latestSlot;_initialSlot;onEventsProcessed;eventProcessors=new Set;maxPageSize;_isReady=!1;isServer;inProgress;anchorParser;anchorCoder;eventsFetchingMutex;constructor(e,t,n,r,i,a,o){this._chainId=e,this.connection=t,this.programId=n,this._initialSlot=r,this.maxPageSize=o,this.isServer=i,this.inProgress=!1,this.eventsFetchingMutex=a}get chainId(){return this._chainId}get latestBlockNumber(){return this._latestSlot??this._initialSlot}get isReady(){return this._isReady}setIdl(e){try{let t=new i.BorshCoder(e);this.anchorCoder=t,this.anchorParser=new i.EventParser(this.programId,t)}catch(e){t.Logger.error(`Failed to initialize Anchor EventParser:`,e),this.anchorParser=void 0,this.anchorCoder=void 0}}syncFromAtMost(e){(this._latestSlot===void 0||e<this._latestSlot)&&(this._latestSlot=e)}advanceLatestBlockNumber(e){e>(this._latestSlot??this._initialSlot)&&(this._latestSlot=e)}intervalClear(){this._isReady=!1,this.eventProcessors=new Set,this.clear()}async init(){if(this._isReady)throw Error(`Already initialized`);this._isReady=!0,await this.retrieveEvents(this.latestBlockNumber+1,!1,!0),this.startUpdateListener()}requireReady(){if(!this._isReady)throw Error(`Not ready`)}addEventProcessorFunction(e){if(this._isReady)throw Error(`Can't add event processor after event emitter initialized`);this.eventProcessors.add(e)}async getEventsInRange(e,t){return(await this.getProgramEvents(e,t)).map(e=>r.BlockchainEvent.fromSolanaEvent(e))}async getLastBlockNumberForEventRequest(){let e=await this.connection.getSlot();return this.isServer?Math.max(this.latestBlockNumber,e-32+1):e}async retrieveEvents(e,i=!1,a=!1){let o=e;return this.requireReady(),await this.eventsFetchingMutex.runExclusive(async()=>{try{if(this.inProgress&&!i)return!1;this.inProgress=!0;let e=await this.getLastBlockNumberForEventRequest();if(e<o)return this.inProgress=!1,!1;let t=n.getSequence(o,e,this.maxPageSize),s=[];await n.resolveSync(t.map(({from:e,to:t})=>async()=>{let n=await this.getProgramEvents(e,t,a);s.push(...n)})),s.sort((e,t)=>e.slot-t.slot);let c=s.map(e=>r.BlockchainEvent.fromSolanaEvent(e));return await this.processEvents(c,e),this._latestSlot=e,this.inProgress=!1,!0}catch(e){return t.Logger.error(`retrieveEvents error:`,e),this.inProgress=!1,!1}})}async getProgramEvents(e,n,r=!1){let i=[],s=r?a:o;try{let r=await this.connection.getSignaturesForAddress(this.programId,{limit:s,before:void 0}),a=r.length;for(;a>=s&&r[r.length-1].slot>=e;){let e=r[r.length-1],t=await this.connection.getSignaturesForAddress(this.programId,{limit:s,before:e.signature});if(t.length===0)break;r.push(...t),a=t.length}let o=r.filter(t=>t.slot>=e&&t.slot<=n).map(async e=>{try{let t=await this.connection.getTransaction(e.signature,{commitment:`confirmed`,maxSupportedTransactionVersion:0});return t&&t.meta&&!t.meta.err?this.parseTransactionForEvents(t,e.signature,e.slot,t.blockTime||null):[]}catch(n){return t.Logger.error(`Failed to get transaction ${e.signature}:`,n),[]}}),c=await Promise.all(o);i.push(...c.flat())}catch(e){t.Logger.error(`Error getting program events:`,e)}return i}parseTransactionForEvents(t,n,r,i){let a=this.parseLogsForEvents(t?.meta?.logMessages??[],n,r,i),o=this.parseCpiForEvents(t,n,r,i),s=[...a,...o];if(s.length===0)return[];let c=new Set;return s.filter(t=>{let n=`${t.signature}:${t.eventName}:${e.safeJsonStringify(t.data)}`;return c.has(n)?!1:(c.add(n),!0)})}parseLogsForEvents(e,n,r,i){if(!this.anchorParser)return[];try{return Array.from(this.anchorParser.parseLogs(e)).map(({name:e,data:t})=>({signature:n,slot:r,blockTime:i||0,programId:this.programId,data:t,eventName:e}))}catch(e){return t.Logger.error(`Anchor EventParser failed; falling back to generic parsing:`,e),[]}}parseCpiForEvents(e,n,r,a){if(!e||!this.anchorCoder)return[];let o=e.meta?.innerInstructions??[];if(o.length===0)return[];try{return o.flatMap(e=>e.instructions??[]).map(e=>{try{if(!e?.data)return null;let t=i.utils.bytes.bs58.decode(e.data);if(t.length<=8)return null;let o=i.utils.bytes.base64.encode(t.subarray(8)),s=this.anchorCoder?.events.decode(o);return s?{signature:n,slot:r,blockTime:a||0,programId:this.programId,data:s.data,eventName:s.name}:null}catch{return null}}).filter(e=>e!==null)}catch(e){return t.Logger.error(`Failed to parse emit_cpi events:`,e),[]}}async processEvents(e,t){let n=(await Promise.all([...this.eventProcessors].map(n=>n(e,t)))).reduce((e,t)=>e+t,0);this.onEventsProcessed?.(n)}};exports.SolanaBlockchainEventEmitter=s;
1
+ require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../../functions/utils/serialize.utils.cjs`),t=require(`../../../error-handling/logger.cjs`),n=require(`../../../functions/utils/resolve-sync.utils.cjs`),r=require(`../../BlockchainEvent/BlockchainEvent.cjs`);let i=require(`@coral-xyz/anchor`);var a=1e3,o=20,s=class{_chainId;connection;programId;_latestSlot;_initialSlot;onEventsProcessed;eventProcessors=new Set;maxPageSize;_isReady=!1;isServer;inProgress;anchorParser;anchorCoder;eventsFetchingMutex;constructor(e,t,n,r,i,a,o){this._chainId=e,this.connection=t,this.programId=n,this._initialSlot=r,this.maxPageSize=o,this.isServer=i,this.inProgress=!1,this.eventsFetchingMutex=a}get chainId(){return this._chainId}get latestBlockNumber(){return this._latestSlot??this._initialSlot}get isReady(){return this._isReady}setIdl(e){try{let t=new i.BorshCoder(e);this.anchorCoder=t,this.anchorParser=new i.EventParser(this.programId,t)}catch(e){t.Logger.error(`Failed to initialize Anchor EventParser:`,e),this.anchorParser=void 0,this.anchorCoder=void 0}}syncFromAtMost(e){(this._latestSlot===void 0||e<this._latestSlot)&&(this._latestSlot=e)}advanceLatestBlockNumber(e){e>(this._latestSlot??this._initialSlot)&&(this._latestSlot=e)}intervalClear(){this._isReady=!1,this.eventProcessors=new Set,this.clear()}async init(){if(this._isReady)throw Error(`Already initialized`);this._isReady=!0,await this.retrieveEvents(this.latestBlockNumber+1,!1,!0),this.startUpdateListener()}requireReady(){if(!this._isReady)throw Error(`Not ready`)}addEventProcessorFunction(e){if(this._isReady)throw Error(`Can't add event processor after event emitter initialized`);this.eventProcessors.add(e)}async getEventsInRange(e,t){return(await this.getProgramEvents(e,t)).map(e=>r.BlockchainEvent.fromSolanaEvent(e))}async getLastBlockNumberForEventRequest(){let e=await this.connection.getSlot();return this.isServer?Math.max(this.latestBlockNumber,e-32+1):e}async retrieveEvents(e,i=!1,a=!1){let o=e;return this.requireReady(),await this.eventsFetchingMutex.runExclusive(async()=>{try{if(this.inProgress&&!i)return!1;this.inProgress=!0;let e=await this.getLastBlockNumberForEventRequest();if(e<o)return this.inProgress=!1,!1;let t=n.getSequence(o,e,this.maxPageSize),s=[];await n.resolveSync(t.map(({from:e,to:t})=>async()=>{let n=await this.getProgramEvents(e,t,a);s.push(...n)})),s.sort((e,t)=>e.slot-t.slot);let c=s.map(e=>r.BlockchainEvent.fromSolanaEvent(e));return await this.processEvents(c,e),this._latestSlot=e,this.inProgress=!1,!0}catch(e){return t.Logger.error(`retrieveEvents error:`,e),this.inProgress=!1,!1}})}async getProgramEvents(e,n,r=!1){let i=[],s=r?a:o;try{let r=await this.connection.getSignaturesForAddress(this.programId,{limit:s,before:void 0}),a=r.length;for(;a>=s&&r[r.length-1].slot>=e;){let e=r[r.length-1],t=await this.connection.getSignaturesForAddress(this.programId,{limit:s,before:e.signature});if(t.length===0)break;r.push(...t),a=t.length}let o=r.filter(t=>t.slot>=e&&t.slot<=n).map(async e=>{try{let t=await this.connection.getTransaction(e.signature,{commitment:`confirmed`,maxSupportedTransactionVersion:0});return t&&t.meta&&!t.meta.err?this.parseTransactionForEvents(t,e.signature,e.slot,t.blockTime||null):[]}catch(n){return t.Logger.error(`Failed to get transaction ${e.signature}:`,n),[]}}),c=await Promise.all(o);i.push(...c.flat())}catch(e){t.Logger.error(`Error getting program events:`,e)}return i}parseTransactionForEvents(t,n,r,i){let a=this.parseLogsForEvents(t?.meta?.logMessages??[],n,r,i),o=this.parseCpiForEvents(t,n,r,i),s=[...a,...o];if(s.length===0)return[];let c=new Set;return s.filter(t=>{let n=`${t.signature}:${t.eventName}:${e.safeJsonStringify(t.data)}`;return c.has(n)?!1:(c.add(n),!0)})}parseLogsForEvents(e,n,r,i){if(!this.anchorParser)return[];try{return Array.from(this.anchorParser.parseLogs(e)).map(({name:e,data:t})=>({signature:n,slot:r,blockTime:i||0,programId:this.programId,data:t,eventName:e}))}catch(e){return t.Logger.error(`Anchor EventParser failed; falling back to generic parsing:`,e),[]}}parseCpiForEvents(e,n,r,a){if(!e||!this.anchorCoder)return[];let o=e.meta?.innerInstructions??[];if(o.length===0)return[];try{return o.flatMap(e=>e.instructions??[]).map(e=>{try{if(!e?.data)return null;let t=i.utils.bytes.bs58.decode(e.data);if(t.length<=8)return null;let o=i.utils.bytes.base64.encode(t.subarray(8)),s=this.anchorCoder?.events.decode(o);return s?{signature:n,slot:r,blockTime:a||0,programId:this.programId,data:s.data,eventName:s.name}:null}catch{return null}}).filter(e=>e!==null)}catch(e){return t.Logger.error(`Failed to parse emit_cpi events:`,e),[]}}async processEvents(e,t){let n=(await Promise.all([...this.eventProcessors].map(n=>n(e,t)))).reduce((e,t)=>e+t,0);this.onEventsProcessed?.(n)}};exports.SolanaBlockchainEventEmitter=s;
@@ -1 +1 @@
1
- const e=require(`../../../../_virtual/_rolldown/runtime.cjs`);let t=require(`axios`);t=e.__toESM(t);var n=class{axiosInstance;constructor(){this.axiosInstance=t.default.create()}async get(e,t){return(await this.axiosInstance.get(e,t)).data}async post(e,t,n){return(await this.axiosInstance.post(e,t,n)).data}async put(e,t,n){return(await this.axiosInstance.put(e,t,n)).data}async patch(e,t,n){return(await this.axiosInstance.patch(e,t,n)).data}async delete(e,t){return(await this.axiosInstance.delete(e,t)).data}};exports.BasicHttpClient=n;
1
+ const e=require("../../../../_virtual/_rolldown/runtime.cjs");let t=require(`axios`);t=e.__toESM(t);var n=class{axiosInstance;constructor(){this.axiosInstance=t.default.create()}async get(e,t){return(await this.axiosInstance.get(e,t)).data}async post(e,t,n){return(await this.axiosInstance.post(e,t,n)).data}async put(e,t,n){return(await this.axiosInstance.put(e,t,n)).data}async patch(e,t,n){return(await this.axiosInstance.patch(e,t,n)).data}async delete(e,t){return(await this.axiosInstance.delete(e,t)).data}};exports.BasicHttpClient=n;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);let e=require(`@solana/web3.js`);var t=255,n=(n,r)=>{let i=[],a=[];return n.forEach(n=>{let o=Buffer.from(n.accounts.map(n=>{if(n.pubkey.toString()===r.toString())return t;let a=i.findIndex(e=>e.pubkey.toBase58()===n.pubkey);return a===-1?(i.push({pubkey:new e.PublicKey(n.pubkey),isSigner:!1,isWritable:n.isWritable}),i.length-1):(i[a].isWritable!==n.isWritable&&(i[a].isWritable=!0),a)})),s=Buffer.from(n.data,`base64`),c=i.findIndex(e=>e.pubkey.toBase58()===n.programId);c===-1?(i.push({pubkey:new e.PublicKey(n.programId),isSigner:!1,isWritable:!1}),a.push({data:s,programIndex:i.length-1,accountIndexes:o})):a.push({data:s,programIndex:c,accountIndexes:o})}),{hinkalInstructions:a,remainingAccounts:i}};exports.convertOKXToHinkalInstructions=n;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");let e=require(`@solana/web3.js`);var t=255,n=(n,r)=>{let i=[],a=[];return n.forEach(n=>{let o=Buffer.from(n.accounts.map(n=>{if(n.pubkey.toString()===r.toString())return t;let a=i.findIndex(e=>e.pubkey.toBase58()===n.pubkey);return a===-1?(i.push({pubkey:new e.PublicKey(n.pubkey),isSigner:!1,isWritable:n.isWritable}),i.length-1):(i[a].isWritable!==n.isWritable&&(i[a].isWritable=!0),a)})),s=Buffer.from(n.data,`base64`),c=i.findIndex(e=>e.pubkey.toBase58()===n.programId);c===-1?(i.push({pubkey:new e.PublicKey(n.programId),isSigner:!1,isWritable:!1}),a.push({data:s,programIndex:i.length-1,accountIndexes:o})):a.push({data:s,programIndex:c,accountIndexes:o})}),{hinkalInstructions:a,remainingAccounts:i}};exports.convertOKXToHinkalInstructions=n;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../snarkjs/common.snarkjs.cjs`);let n=require(`lodash`);var r=(r,i,a)=>{let o=t.calcAmountChanges(r,i),s=a.map(t=>t<0n?e.CIRCOM_P+t:t);if(o.length!==s.length||!(0,n.isEqual)(o,s))throw Error(`Amount changes are not equal`)};exports.ensureAmountChanges=r;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/protocol.constants.cjs`),t=require(`../snarkjs/common.snarkjs.cjs`);let n=require(`lodash`);var r=(r,i,a)=>{let o=t.calcAmountChanges(r,i),s=a.map(t=>t<0n?e.CIRCOM_P+t:t);if(o.length!==s.length||!(0,n.isEqual)(o,s))throw Error(`Amount changes are not equal`)};exports.ensureAmountChanges=r;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`);let t=require(`ethers`),n=require(`@coral-xyz/anchor`);var r=(r,i,a,o,s,c,l,u)=>{let d=new n.BN(s.toString()),f=new n.BN(c.toString()),p=o.reduce((e,t)=>[...e,...new n.BN(t.length).toArray(`be`,8),...t],[]),m=l.reduce((e,t)=>{let r=[...new n.BN(t.programIndex).toArray(`be`,1),...new n.BN(t.accountIndexes.length).toArray(`be`,8),...t.accountIndexes,...new n.BN(t.data.length).toArray(`be`,8),...t.data];return[...e,...r]},[]),h=u.reduce((e,t)=>[...e,+!!t.isWritable,...t.pubkey.toBytes()],[]),g=[r.tokenNumber,r.nullifierAmount,r.outputAmount,...i.toBytes(),...a.toBytes(),...p,...d.toArray(`be`,8),...f.toArray(`be`,8),...m,...h];return BigInt(t.ethers.sha256(new Uint8Array(g)))%e.CIRCOM_P};exports.getSolanaCalldataHash=r;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/protocol.constants.cjs`);let t=require(`ethers`),n=require(`@coral-xyz/anchor`);var r=(r,i,a,o,s,c,l,u)=>{let d=new n.BN(s.toString()),f=new n.BN(c.toString()),p=o.reduce((e,t)=>[...e,...new n.BN(t.length).toArray(`be`,8),...t],[]),m=l.reduce((e,t)=>{let r=[...new n.BN(t.programIndex).toArray(`be`,1),...new n.BN(t.accountIndexes.length).toArray(`be`,8),...t.accountIndexes,...new n.BN(t.data.length).toArray(`be`,8),...t.data];return[...e,...r]},[]),h=u.reduce((e,t)=>[...e,+!!t.isWritable,...t.pubkey.toBytes()],[]),g=[r.tokenNumber,r.nullifierAmount,r.outputAmount,...i.toBytes(),...a.toBytes(),...p,...d.toArray(`be`,8),...f.toArray(`be`,8),...m,...h];return BigInt(t.ethers.sha256(new Uint8Array(g)))%e.CIRCOM_P};exports.getSolanaCalldataHash=r;
@@ -1,2 +1,2 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../utils/serialize.utils.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../error-handling/logger.cjs`),r=require(`../../data-structures/AccountActions/AccountActions.cjs`),i=require(`../../types/fee.types.cjs`),a=require(`../web3/getSolanaPriorityFee.cjs`),o=require(`../utils/process.utils.cjs`),s=require(`../../error-handling/retrySolanaError.cjs`);let c=require(`@solana/web3.js`);require(`@solana/spl-token`);var l=5e3,u=6e4,d=async(e,t,n=`confirmed`)=>await o.pollForValue(()=>e.getTransaction(t,{commitment:n,maxSupportedTransactionVersion:0}),{timeoutMs:u,intervalMs:l})??null,f=async(r,i,a,o,s=!1)=>{try{let{blockhash:l}=await r.getLatestBlockhash(),u=new c.VersionedTransaction(new c.TransactionMessage({payerKey:i,recentBlockhash:l,instructions:[c.ComputeBudgetProgram.setComputeUnitLimit({units:t.MAX_COMPUTE_UNIT_LIMIT}),...s?[c.ComputeBudgetProgram.requestHeapFrame({bytes:t.MAX_SOLANA_HEAP_FRAME_BYTES})]:[],...a]}).compileToV0Message(o)),d=await r.simulateTransaction(u,{sigVerify:!1,replaceRecentBlockhash:!0});d.value.err&&n.Logger.error(`Solana compute-unit simulation failed:`,{error:e.safeJsonStringify(d.value.err),logs:d.value.logs});let{unitsConsumed:f}=d.value;if(!f)return t.MAX_COMPUTE_UNIT_LIMIT;let p=Math.ceil(f*(1+t.COMPUTE_UNIT_PADDING_PERCENTAGE));return Math.max(t.MIN_COMPUTE_UNIT_LIMIT,Math.min(p,t.MAX_COMPUTE_UNIT_LIMIT))}catch(e){return n.Logger.error(`Solana compute-unit estimation threw:`,e),t.MAX_COMPUTE_UNIT_LIMIT}},p=(e,t,n,r)=>{let i=new Set;return t&&i.add(t.toBase58()),n?.forEach(e=>i.add(e.toBase58())),e.forEach(e=>{i.add(e.programId.toBase58()),e.keys.forEach(e=>{i.add(e.pubkey.toBase58())})}),r&&r.forEach(e=>{i.add(e.key.toBase58()),e.state.addresses.forEach(e=>{i.add(e.toBase58())})}),[...i].map(e=>new c.PublicKey(e))},m=(t,r)=>{if(!t)throw Error(`Failed to fetch Solana transaction details for signature${r?` ${r}`:``}`);if(t.meta?.err){let i=e.safeJsonStringify(t.meta.err),a=t.meta.logMessages?.join(`
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../utils/serialize.utils.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../error-handling/logger.cjs`),r=require(`../../data-structures/AccountActions/AccountActions.cjs`),i=require(`../../types/fee.types.cjs`),a=require(`../web3/getSolanaPriorityFee.cjs`),o=require(`../utils/process.utils.cjs`),s=require(`../../error-handling/retrySolanaError.cjs`);let c=require(`@solana/web3.js`);require(`@solana/spl-token`);var l=5e3,u=6e4,d=async(e,t,n=`confirmed`)=>await o.pollForValue(()=>e.getTransaction(t,{commitment:n,maxSupportedTransactionVersion:0}),{timeoutMs:u,intervalMs:l})??null,f=async(r,i,a,o,s=!1)=>{try{let{blockhash:l}=await r.getLatestBlockhash(),u=new c.VersionedTransaction(new c.TransactionMessage({payerKey:i,recentBlockhash:l,instructions:[c.ComputeBudgetProgram.setComputeUnitLimit({units:t.MAX_COMPUTE_UNIT_LIMIT}),...s?[c.ComputeBudgetProgram.requestHeapFrame({bytes:t.MAX_SOLANA_HEAP_FRAME_BYTES})]:[],...a]}).compileToV0Message(o)),d=await r.simulateTransaction(u,{sigVerify:!1,replaceRecentBlockhash:!0});d.value.err&&n.Logger.error(`Solana compute-unit simulation failed:`,{error:e.safeJsonStringify(d.value.err),logs:d.value.logs});let{unitsConsumed:f}=d.value;if(!f)return t.MAX_COMPUTE_UNIT_LIMIT;let p=Math.ceil(f*(1+t.COMPUTE_UNIT_PADDING_PERCENTAGE));return Math.max(t.MIN_COMPUTE_UNIT_LIMIT,Math.min(p,t.MAX_COMPUTE_UNIT_LIMIT))}catch(e){return n.Logger.error(`Solana compute-unit estimation threw:`,e),t.MAX_COMPUTE_UNIT_LIMIT}},p=(e,t,n,r)=>{let i=new Set;return t&&i.add(t.toBase58()),n?.forEach(e=>i.add(e.toBase58())),e.forEach(e=>{i.add(e.programId.toBase58()),e.keys.forEach(e=>{i.add(e.pubkey.toBase58())})}),r&&r.forEach(e=>{i.add(e.key.toBase58()),e.state.addresses.forEach(e=>{i.add(e.toBase58())})}),[...i].map(e=>new c.PublicKey(e))},m=(t,r)=>{if(!t)throw Error(`Failed to fetch Solana transaction details for signature${r?` ${r}`:``}`);if(t.meta?.err){let i=e.safeJsonStringify(t.meta.err),a=t.meta.logMessages?.join(`
2
2
  `);n.Logger.error(`Solana transaction failed on-chain`,{signature:r,error:i,logs:t.meta.logMessages});let o=r?` (signature: ${r})`:``;throw Error(a?`Solana transaction failed on-chain${o}: ${i}\n${a}`:`Solana transaction failed on-chain${o}: ${i}`)}},h=async(e,n,r,i,o,s=!1)=>{if(r.some(e=>e.programId.equals(c.ComputeBudgetProgram.programId)))return r.map(e=>e.programId.equals(c.ComputeBudgetProgram.programId)&&e.data[0]===2?c.ComputeBudgetProgram.setComputeUnitLimit({units:t.MAX_COMPUTE_UNIT_LIMIT}):e);let l=r.filter(e=>!e.programId.equals(c.ComputeBudgetProgram.programId)),u=await f(e,n,l,i,s),d=c.ComputeBudgetProgram.setComputeUnitLimit({units:u}),m=e.rpcEndpoint.includes(`helius`)?await a.getSolanaPriorityFee(p(l,n,[c.ComputeBudgetProgram.programId],i),o):0;return[d,c.ComputeBudgetProgram.setComputeUnitPrice({microLamports:m}),...s?[c.ComputeBudgetProgram.requestHeapFrame({bytes:t.MAX_SOLANA_HEAP_FRAME_BYTES})]:[],...l]},g=async({connection:e,chainId:t,subAccount:n,payerPublicKey:a,instructions:o,lookupTableAccounts:l})=>{let u=r.AccountActions.getPrivateKeyFromSubAccount(t,n);if(!u)throw Error(`Private key is not available`);for(let t=0;t<10;t+=1){let n=t===9;try{let t=await h(e,a,o,l,n?i.SolanaPriorityFeeMode.HIGH:i.SolanaPriorityFeeMode.RECOMMENDED),{blockhash:s,lastValidBlockHeight:f}=await e.getLatestBlockhash(),p=new c.VersionedTransaction(new c.TransactionMessage({payerKey:a,recentBlockhash:s,instructions:t}).compileToV0Message(l)),g=await r.AccountActions.sendAndSignSolanaTransactionFromPrivateKey(e,u,p,!0);return await e.confirmTransaction({signature:g,blockhash:s,lastValidBlockHeight:f},`confirmed`),m(await d(e,g),g),g}catch(e){if(s.shouldRetryForSolanaError(e)&&!n)continue;throw e}}throw Error(`Failed to send proxy v0 transaction due to expired blockheight after all retries`)};exports.estimateComputeUnitLimit=f,exports.fetchSolanaTransaction=d,exports.getAccountsFromInstructions=p,exports.sendProxyV0Transaction=g;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../crypto/poseidon.cjs`);let t=require(`@solana/web3.js`),n=require(`@coral-xyz/anchor`);var r=e=>new TextEncoder().encode(e),i=e=>{let t=[],n=e;for(;n>0n;)t.unshift(Number(n%256n)),n/=256n;for(;t.length<32;)t.unshift(0);return t},a=e=>({extraRandomization:i(e.extraRandomization),stealthAddress:i(e.stealthAddress),h0:i(e.H0),h1:i(e.H1)}),o=(e,n)=>{let i=[r(`hinkal`),n.toBytes()],[a]=t.PublicKey.findProgramAddressSync(i,e);return a},s=(e,n)=>{let i=[r(`hinkal_merkle`),n.toBytes()],[a]=t.PublicKey.findProgramAddressSync(i,e);return a},c=(e,i,a)=>{let o=[r(`hinkal_swapper`),i.toBytes(),new Uint8Array(new n.BN(a.toString()).toArray(`be`,32))],[s]=t.PublicKey.findProgramAddressSync(o,e);return s},l=(t,n,r)=>c(t,n,e.poseidonFunction(r)),u=(e,n)=>{let i=[r(`hinkal_vault`),n.toBytes()],[a]=t.PublicKey.findProgramAddressSync(i,e);return a};exports.buildAnchorStealthAddressStructure=a,exports.encodeToByte32Array=i,exports.getMerkleAccountPublicKey=s,exports.getStorageAccountPublicKey=o,exports.getStorageVaultPublicKey=u,exports.getSwapperAccountPublicKey=c,exports.getSwapperAccountPublicKeyFromSalt=l;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../crypto/poseidon.cjs`);let t=require(`@solana/web3.js`),n=require(`@coral-xyz/anchor`);var r=e=>new TextEncoder().encode(e),i=e=>{let t=[],n=e;for(;n>0n;)t.unshift(Number(n%256n)),n/=256n;for(;t.length<32;)t.unshift(0);return t},a=e=>({extraRandomization:i(e.extraRandomization),stealthAddress:i(e.stealthAddress),h0:i(e.H0),h1:i(e.H1)}),o=(e,n)=>{let i=[r(`hinkal`),n.toBytes()],[a]=t.PublicKey.findProgramAddressSync(i,e);return a},s=(e,n)=>{let i=[r(`hinkal_merkle`),n.toBytes()],[a]=t.PublicKey.findProgramAddressSync(i,e);return a},c=(e,i,a)=>{let o=[r(`hinkal_swapper`),i.toBytes(),new Uint8Array(new n.BN(a.toString()).toArray(`be`,32))],[s]=t.PublicKey.findProgramAddressSync(o,e);return s},l=(t,n,r)=>c(t,n,e.poseidonFunction(r)),u=(e,n)=>{let i=[r(`hinkal_vault`),n.toBytes()],[a]=t.PublicKey.findProgramAddressSync(i,e);return a};exports.buildAnchorStealthAddressStructure=a,exports.encodeToByte32Array=i,exports.getMerkleAccountPublicKey=s,exports.getStorageAccountPublicKey=o,exports.getStorageVaultPublicKey=u,exports.getSwapperAccountPublicKey=c,exports.getSwapperAccountPublicKeyFromSalt=l;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`),require(`../../constants/protocol.constants.cjs`);let e=require(`@solana/web3.js`),t=require(`@solana/spl-token`);var n=async(n,r,i,a,o)=>{let{erc20TokenAddress:s,is2022Program:c,decimals:l}=a,u=[];if(s===`11111111111111111111111111111111`)return u.push(e.SystemProgram.transfer({fromPubkey:r,toPubkey:i,lamports:Number(o)})),{instructions:u,programId:e.SystemProgram.programId};let d=c?t.TOKEN_2022_PROGRAM_ID:t.TOKEN_PROGRAM_ID,f=new e.PublicKey(s),p=await(0,t.getAssociatedTokenAddress)(f,r,!0,d),m=await(0,t.getAssociatedTokenAddress)(f,i,!0,d);return await n.getAccountInfo(m)||u.push((0,t.createAssociatedTokenAccountInstruction)(r,m,i,f,d)),c?u.push((0,t.createTransferCheckedInstruction)(p,f,m,r,o,l,[],d)):u.push((0,t.createTransferInstruction)(p,m,r,o,[],d)),{instructions:u,programId:d}};exports.buildSolanaTransferInstructions=n;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs"),require(`../../constants/protocol.constants.cjs`);let e=require(`@solana/web3.js`),t=require(`@solana/spl-token`);var n=async(n,r,i,a,o)=>{let{erc20TokenAddress:s,is2022Program:c,decimals:l}=a,u=[];if(s===`11111111111111111111111111111111`)return u.push(e.SystemProgram.transfer({fromPubkey:r,toPubkey:i,lamports:Number(o)})),{instructions:u,programId:e.SystemProgram.programId};let d=c?t.TOKEN_2022_PROGRAM_ID:t.TOKEN_PROGRAM_ID,f=new e.PublicKey(s),p=await(0,t.getAssociatedTokenAddress)(f,r,!0,d),m=await(0,t.getAssociatedTokenAddress)(f,i,!0,d);return await n.getAccountInfo(m)||u.push((0,t.createAssociatedTokenAccountInstruction)(r,m,i,f,d)),c?u.push((0,t.createTransferCheckedInstruction)(p,f,m,r,o,l,[],d)):u.push((0,t.createTransferInstruction)(p,m,r,o,[],d)),{instructions:u,programId:d}};exports.buildSolanaTransferInstructions=n;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../utils/caseInsensitive.utils.cjs`),r=require(`../../types/ethereum-network.types.cjs`),i=require(`../../error-handling/logger.cjs`),a=require(`../utils/create-provider.cjs`),o=require(`../../data-structures/AccountActions/AccountActions.cjs`),s=require(`../utils/getContractAddress.cjs`);require(`../utils/index.cjs`);let c=require(`ethers`);var l=e=>{if(typeof e.target==`string`)return e.target;if(e.address)return e.address;throw Error(`Contract address not found`)},u=({contract:e,func:t,args:n,callDataString:r,invokeWallet:i,value:a})=>{let o=new Uint8Array,s=r?c.ethers.getBytesCopy(r):new Uint8Array;if(typeof e==`object`){if(o=c.ethers.getBytesCopy(l(e)),r?.length&&r?.length>0)throw Error(`If function and args are providedm no calldata is needed`);t&&n&&!r&&(s=c.ethers.getBytesCopy(e.interface.encodeFunctionData(t,n)))}else o=c.ethers.getBytesCopy(e);let u=c.ethers.getBytesCopy(new Uint8Array([+!!i])),d=c.ethers.zeroPadValue(c.ethers.toBeHex(a??0n),16),f=c.ethers.concat([o,u,d,s]);return c.ethers.hexlify(f)},d=async(n,r,i,a,s,l)=>{let u=e.getOnchainChainId(n),d=i?await o.AccountActions.signTypedDataFromPrivateKey(u,i,{name:`Emporium`,version:`1.0.0`,chainId:u,verifyingContract:r},{EmporiumSignature:[{name:`message`,type:`uint256`},{name:`ops`,type:`bytes[]`}]},{message:s,ops:a}):void 0,{v:f,r:p,s:m}=d?c.ethers.Signature.from(d):{v:0,r:c.ethers.ZeroHash,s:c.ethers.ZeroHash};return c.ethers.AbiCoder.defaultAbiCoder().encode([`tuple(uint8 v,bytes32 r, bytes32 s, uint256 message, address signerAddress, bytes[] ops)`],[{v:f,r:p,s:m,message:s??0n,signerAddress:l??t.zeroAddress,ops:a}])},f=(e,t,n,r)=>u(e?{contract:e,func:`transfer`,args:[t,n],invokeWallet:r}:{contract:t,value:n,invokeWallet:r}),p=(e,i,a,o,c)=>{let l=e.getContractWithFetcher(i,r.ContractType.HinkalContract);return a.map((a,u)=>f(n.caseInsensitiveEqual(a,t.zeroAddress)?void 0:e.getContractWithFetcher(i,r.ContractType.ERC20Contract,a),c??s.getContractAddress(l),o[u],!0))},m=(e,t,n,r)=>u({contract:e,func:`approve`,args:[t,n],invokeWallet:r}),h=(e,i,a,o,s,c,l,u)=>{let d=[];for(let s=0;s<a.length;s+=1){let c=a[s],u=n.caseInsensitiveEqual(c,t.zeroAddress)?void 0:e.getContractWithFetcher(i,r.ContractType.ERC20Contract,c);d.push(f(u,l,o[s],!1))}if(u)for(let a=0;a<s.length;a+=1){let o=s[a];if(!n.caseInsensitiveEqual(o,t.zeroAddress)){let t=e.getContractWithFetcher(i,r.ContractType.ERC20Contract,o);d.push(m(t,u,c[a],!0))}}return d},g=(e,r,i,a,o,s,c,l)=>{let d=[],f=[o],p=[s];l.nativeFee>0n&&!n.caseInsensitiveEqual(o,t.zeroAddress)&&(f.push(t.zeroAddress),p.push(l.nativeFee));let m=h(e,r,f,p,[o],[c],i,a);d.push(...m);let g=l.nativeFee;return n.caseInsensitiveEqual(o,t.zeroAddress)&&(g+=c),d.push(u({contract:a,callDataString:l.calldata,value:g>0n?g:void 0,invokeWallet:!0})),d},_=`0xef0100`,v=async(e,t)=>{try{let n=a.createJsonRpcProvider(e),r=await n.getCode(t);if(r===`0x`||!r)return{delegated:!1,implementation:void 0,nonce:void 0};if(r.toLowerCase().startsWith(_)&&r.length===48){let e=`0x${r.slice(8)}`,i=await n.getTransactionCount(t);return{delegated:!0,implementation:c.ethers.getAddress(e),nonce:i}}else throw Error(`checkEOAWithDelegation: It is a contract`)}catch(e){throw i.Logger.error(`checkEOAWithDelegation error`,{error:e}),e}},y=r=>{let{hinkalWalletAddress:i}=e.networkRegistry[r].contractData;if(!i||n.caseInsensitiveEqual(i,t.zeroAddress))throw Error(`Hinkal Wallet Address is not set`);return i},b=async(t,r)=>{if(t===e.chainIds.localhost||!r)return;let i=e.getOnchainChainId(t),{delegated:a,implementation:s}=await v(t,o.AccountActions.getSignerAddressFromPrivateKey(t,r)),c=y(t);if(!a||!n.caseInsensitiveEqual(s,c)){let e=await o.AccountActions.authorizeDelegation(i,r,c);return{v:e.signature.v.toString(),r:e.signature.r,s:e.signature.s,nonce:e.nonce.toString(),address:c,chainId:String(i)}}};exports.checkEOAWithDelegation=v,exports.createApproveEmporiumOp=m,exports.createLifiBridgeOps=g,exports.createTransaferEmporiumOpsBatch=p,exports.createTransferToEmporiumOp=f,exports.emporiumOp=u,exports.encodeEmporiumMetadata=d,exports.generateFundAndApproveOps=h,exports.getAuthorizationDataIfNeeded=b;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../utils/caseInsensitive.utils.cjs`),r=require(`../../types/ethereum-network.types.cjs`),i=require(`../../error-handling/logger.cjs`),a=require(`../utils/create-provider.cjs`),o=require(`../../data-structures/AccountActions/AccountActions.cjs`),s=require(`../utils/getContractAddress.cjs`);require(`../utils/index.cjs`);let c=require(`ethers`);var l=e=>{if(typeof e.target==`string`)return e.target;if(e.address)return e.address;throw Error(`Contract address not found`)},u=({contract:e,func:t,args:n,callDataString:r,invokeWallet:i,value:a})=>{let o=new Uint8Array,s=r?c.ethers.getBytesCopy(r):new Uint8Array;if(typeof e==`object`){if(o=c.ethers.getBytesCopy(l(e)),r?.length&&r?.length>0)throw Error(`If function and args are providedm no calldata is needed`);t&&n&&!r&&(s=c.ethers.getBytesCopy(e.interface.encodeFunctionData(t,n)))}else o=c.ethers.getBytesCopy(e);let u=c.ethers.getBytesCopy(new Uint8Array([+!!i])),d=c.ethers.zeroPadValue(c.ethers.toBeHex(a??0n),16),f=c.ethers.concat([o,u,d,s]);return c.ethers.hexlify(f)},d=async(n,r,i,a,s,l)=>{let u=e.getOnchainChainId(n),d=i?await o.AccountActions.signTypedDataFromPrivateKey(u,i,{name:`Emporium`,version:`1.0.0`,chainId:u,verifyingContract:r},{EmporiumSignature:[{name:`message`,type:`uint256`},{name:`ops`,type:`bytes[]`}]},{message:s,ops:a}):void 0,{v:f,r:p,s:m}=d?c.ethers.Signature.from(d):{v:0,r:c.ethers.ZeroHash,s:c.ethers.ZeroHash};return c.ethers.AbiCoder.defaultAbiCoder().encode([`tuple(uint8 v,bytes32 r, bytes32 s, uint256 message, address signerAddress, bytes[] ops)`],[{v:f,r:p,s:m,message:s??0n,signerAddress:l??t.zeroAddress,ops:a}])},f=(e,t,n,r)=>u(e?{contract:e,func:`transfer`,args:[t,n],invokeWallet:r}:{contract:t,value:n,invokeWallet:r}),p=(e,i,a,o,c)=>{let l=e.getContractWithFetcher(i,r.ContractType.HinkalContract);return a.map((a,u)=>f(n.caseInsensitiveEqual(a,t.zeroAddress)?void 0:e.getContractWithFetcher(i,r.ContractType.ERC20Contract,a),c??s.getContractAddress(l),o[u],!0))},m=(e,t,n,r)=>u({contract:e,func:`approve`,args:[t,n],invokeWallet:r}),h=(e,i,a,o,s,c,l,u)=>{let d=[];for(let s=0;s<a.length;s+=1){let c=a[s],u=n.caseInsensitiveEqual(c,t.zeroAddress)?void 0:e.getContractWithFetcher(i,r.ContractType.ERC20Contract,c);d.push(f(u,l,o[s],!1))}if(u)for(let a=0;a<s.length;a+=1){let o=s[a];if(!n.caseInsensitiveEqual(o,t.zeroAddress)){let t=e.getContractWithFetcher(i,r.ContractType.ERC20Contract,o);d.push(m(t,u,c[a],!0))}}return d},g=(e,r,i,a,o,s,c,l)=>{let d=[],f=[o],p=[s];l.nativeFee>0n&&!n.caseInsensitiveEqual(o,t.zeroAddress)&&(f.push(t.zeroAddress),p.push(l.nativeFee));let m=h(e,r,f,p,[o],[c],i,a);d.push(...m);let g=l.nativeFee;return n.caseInsensitiveEqual(o,t.zeroAddress)&&(g+=c),d.push(u({contract:a,callDataString:l.calldata,value:g>0n?g:void 0,invokeWallet:!0})),d},_=`0xef0100`,v=async(e,t)=>{try{let n=a.createJsonRpcProvider(e),r=await n.getCode(t);if(r===`0x`||!r)return{delegated:!1,implementation:void 0,nonce:void 0};if(r.toLowerCase().startsWith(_)&&r.length===48){let e=`0x${r.slice(8)}`,i=await n.getTransactionCount(t);return{delegated:!0,implementation:c.ethers.getAddress(e),nonce:i}}else throw Error(`checkEOAWithDelegation: It is a contract`)}catch(e){throw i.Logger.error(`checkEOAWithDelegation error`,{error:e}),e}},y=r=>{let{hinkalWalletAddress:i}=e.networkRegistry[r].contractData;if(!i||n.caseInsensitiveEqual(i,t.zeroAddress))throw Error(`Hinkal Wallet Address is not set`);return i},b=async(t,r)=>{if(t===e.chainIds.localhost||!r)return;let i=e.getOnchainChainId(t),{delegated:a,implementation:s}=await v(t,o.AccountActions.getSignerAddressFromPrivateKey(t,r)),c=y(t);if(!a||!n.caseInsensitiveEqual(s,c)){let e=await o.AccountActions.authorizeDelegation(i,r,c);return{v:e.signature.v.toString(),r:e.signature.r,s:e.signature.s,nonce:e.nonce.toString(),address:c,chainId:String(i)}}};exports.checkEOAWithDelegation=v,exports.createApproveEmporiumOp=m,exports.createLifiBridgeOps=g,exports.createTransaferEmporiumOpsBatch=p,exports.createTransferToEmporiumOp=f,exports.emporiumOp=u,exports.encodeEmporiumMetadata=d,exports.generateFundAndApproveOps=h,exports.getAuthorizationDataIfNeeded=b;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../utils/caseInsensitive.utils.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`),i=require(`../../error-handling/logger.cjs`),a=require(`../utils/string.utils.cjs`),o=require(`../utils/erc20tokenFunctions.cjs`),s=require(`../../constants/addresses.constants.cjs`),c=require(`../utils/getContractAddress.cjs`),l=require(`./emporium.helpers.cjs`),u=require(`../pre-transaction/getExternalSwapAddress.cjs`);let d=require(`ethers`);var f=(e,t,n,r,i,a,o=!1)=>{let s={tokenIn:t,tokenOut:r,fee:BigInt(a),recipient:i,amountIn:n,amountOutMinimum:0,sqrtPriceLimitX96:0};return l.emporiumOp({contract:new d.ethers.Contract(e,[`function exactInputSingle(tuple(address tokenIn,address tokenOut,uint24 fee,address recipient,uint256 amountIn,uint256 amountOutMinimum,uint160 sqrtPriceLimitX96)) external payable returns (uint256 amountOut)`]),func:`exactInputSingle`,args:[s],invokeWallet:o})},p=(e,t,n,r,i,o,s=!1)=>l.emporiumOp({contract:n,callDataString:a.replaceAllInstances(r,u.getExternalSwapAddress(e,t).slice(2),i.slice(2)),value:o,invokeWallet:s}),m=async(e,n)=>{let r=(await o.getErc20TokensForChainAPI(n)).find(e=>e.symbol===`USDT`);return r?t.caseInsensitiveEqual(e,r.erc20TokenAddress):!1},h=async(e,t,n,r,a,o)=>{if(await m(c.getContractAddress(n),e))try{await n.allowance(r,a)>0n&&t.push(l.createApproveEmporiumOp(n,a,0n,o))}catch(e){i.Logger.error(`Error in nullifyUsdtApprovalIfNeeded`,e)}},g=async(t,r,i,a,o,c,u,f)=>{if(i!==e.zeroAddress){let f=s.SWAP_FEE_TAKER_ADDRESSES[r],p=t.getContractWithFetcher(r,n.ContractType.ERC20Contract,i),m=await p.balanceOf(a);await h(r,c,p,a,f,u),c.push(l.createApproveEmporiumOp(p,f,2n**256n-1n,u));let g=new d.ethers.Contract(f,[`function takeSwapFee(address token, uint256 beforeBalance, uint256 variableRate, address relay) external payable`]),_=o;c.push(l.emporiumOp({contract:g,func:`takeSwapFee`,args:[i,m,e.HINKAL_SWAP_VARIABLE_RATE,_],invokeWallet:u}))}else{let t=o;c.push(l.emporiumOp({contract:t,value:f*e.HINKAL_SWAP_VARIABLE_RATE/10000n,invokeWallet:u}))}},_=async(t,i,a,o,c,u,m,_,v,y,b,x,S=!1)=>{let C=m<0n?-1n*m:m,w=[],T=s.NATIVE_TOKEN_WRAPPER_ADDRESSES[i],E=!1,D;if(a===r.ExternalActionId.OneInch||a===r.ExternalActionId.Lifi){if(u!==e.zeroAddress){let e=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,u);w.push(l.createApproveEmporiumOp(e,o,C,S))}let s=0n;return u===e.zeroAddress&&(s+=C),_&&v===e.zeroAddress&&_<0n&&(s+=-1n*_),D=p(i,a,o,c,b,s>0n?s:void 0,S),w.push(D),(a===r.ExternalActionId.OneInch||y&&a===r.ExternalActionId.Lifi)&&v&&_!==void 0&&await g(t,i,v,b,x,w,S,_),w}if(!v||!_)throw Error(`There should be output token for UniSwap and Odos`);if(u===e.zeroAddress){let e=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,T);w.push(l.emporiumOp({contract:e,func:`deposit`,value:C,invokeWallet:S})),u=T}let O=0n;if(v===e.zeroAddress&&(v=T,E=!0,O=await t.getContractWithFetcher(i,n.ContractType.ERC20Contract,T).balanceOf(b)),u!==e.zeroAddress){let e=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,u);await h(i,w,e,b,o,S),w.push(l.createApproveEmporiumOp(e,o,C,S))}if(D=a===r.ExternalActionId.Uniswap?f(o,u,C,v,b,c,S):p(i,a,o,c,b,void 0,S),w.push(D),await g(t,i,v,b,x,w,S,_),E){let e=s.WRAPPER_TOKEN_EXCHANGE_ADDRESSES[i],r=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,T);w.push(l.createApproveEmporiumOp(r,e,2n**256n-1n,S));let a=new d.ethers.Contract(e,[`function withdrawBalanceDifference(uint256 beforeBalance) external`]);w.push(l.emporiumOp({contract:a,func:`withdrawBalanceDifference`,args:[O],invokeWallet:S}))}return w};exports.createSwapToEmporiumOpForUniswap=f,exports.createSwapToEmporiumOps=_;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/protocol.constants.cjs`),t=require(`../utils/caseInsensitive.utils.cjs`),n=require(`../../types/ethereum-network.types.cjs`),r=require(`../../types/external-action.types.cjs`),i=require(`../../error-handling/logger.cjs`),a=require(`../utils/string.utils.cjs`),o=require(`../utils/erc20tokenFunctions.cjs`),s=require(`../../constants/addresses.constants.cjs`),c=require(`../utils/getContractAddress.cjs`),l=require(`./emporium.helpers.cjs`),u=require(`../pre-transaction/getExternalSwapAddress.cjs`);let d=require(`ethers`);var f=(e,t,n,r,i,a,o=!1)=>{let s={tokenIn:t,tokenOut:r,fee:BigInt(a),recipient:i,amountIn:n,amountOutMinimum:0,sqrtPriceLimitX96:0};return l.emporiumOp({contract:new d.ethers.Contract(e,[`function exactInputSingle(tuple(address tokenIn,address tokenOut,uint24 fee,address recipient,uint256 amountIn,uint256 amountOutMinimum,uint160 sqrtPriceLimitX96)) external payable returns (uint256 amountOut)`]),func:`exactInputSingle`,args:[s],invokeWallet:o})},p=(e,t,n,r,i,o,s=!1)=>l.emporiumOp({contract:n,callDataString:a.replaceAllInstances(r,u.getExternalSwapAddress(e,t).slice(2),i.slice(2)),value:o,invokeWallet:s}),m=async(e,n)=>{let r=(await o.getErc20TokensForChainAPI(n)).find(e=>e.symbol===`USDT`);return r?t.caseInsensitiveEqual(e,r.erc20TokenAddress):!1},h=async(e,t,n,r,a,o)=>{if(await m(c.getContractAddress(n),e))try{await n.allowance(r,a)>0n&&t.push(l.createApproveEmporiumOp(n,a,0n,o))}catch(e){i.Logger.error(`Error in nullifyUsdtApprovalIfNeeded`,e)}},g=async(t,r,i,a,o,c,u,f)=>{if(i!==e.zeroAddress){let f=s.SWAP_FEE_TAKER_ADDRESSES[r],p=t.getContractWithFetcher(r,n.ContractType.ERC20Contract,i),m=await p.balanceOf(a);await h(r,c,p,a,f,u),c.push(l.createApproveEmporiumOp(p,f,2n**256n-1n,u));let g=new d.ethers.Contract(f,[`function takeSwapFee(address token, uint256 beforeBalance, uint256 variableRate, address relay) external payable`]),_=o;c.push(l.emporiumOp({contract:g,func:`takeSwapFee`,args:[i,m,e.HINKAL_SWAP_VARIABLE_RATE,_],invokeWallet:u}))}else{let t=o;c.push(l.emporiumOp({contract:t,value:f*e.HINKAL_SWAP_VARIABLE_RATE/10000n,invokeWallet:u}))}},_=async(t,i,a,o,c,u,m,_,v,y,b,x,S=!1)=>{let C=m<0n?-1n*m:m,w=[],T=s.NATIVE_TOKEN_WRAPPER_ADDRESSES[i],E=!1,D;if(a===r.ExternalActionId.OneInch||a===r.ExternalActionId.Lifi){if(u!==e.zeroAddress){let e=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,u);w.push(l.createApproveEmporiumOp(e,o,C,S))}let s=0n;return u===e.zeroAddress&&(s+=C),_&&v===e.zeroAddress&&_<0n&&(s+=-1n*_),D=p(i,a,o,c,b,s>0n?s:void 0,S),w.push(D),(a===r.ExternalActionId.OneInch||y&&a===r.ExternalActionId.Lifi)&&v&&_!==void 0&&await g(t,i,v,b,x,w,S,_),w}if(!v||!_)throw Error(`There should be output token for UniSwap and Odos`);if(u===e.zeroAddress){let e=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,T);w.push(l.emporiumOp({contract:e,func:`deposit`,value:C,invokeWallet:S})),u=T}let O=0n;if(v===e.zeroAddress&&(v=T,E=!0,O=await t.getContractWithFetcher(i,n.ContractType.ERC20Contract,T).balanceOf(b)),u!==e.zeroAddress){let e=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,u);await h(i,w,e,b,o,S),w.push(l.createApproveEmporiumOp(e,o,C,S))}if(D=a===r.ExternalActionId.Uniswap?f(o,u,C,v,b,c,S):p(i,a,o,c,b,void 0,S),w.push(D),await g(t,i,v,b,x,w,S,_),E){let e=s.WRAPPER_TOKEN_EXCHANGE_ADDRESSES[i],r=t.getContractWithFetcher(i,n.ContractType.ERC20Contract,T);w.push(l.createApproveEmporiumOp(r,e,2n**256n-1n,S));let a=new d.ethers.Contract(e,[`function withdrawBalanceDifference(uint256 beforeBalance) external`]);w.push(l.emporiumOp({contract:a,func:`withdrawBalanceDifference`,args:[O],invokeWallet:S}))}return w};exports.createSwapToEmporiumOpForUniswap=f,exports.createSwapToEmporiumOps=_;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../data-structures/crypto-keys/keys.cjs`),n=require(`../../types/circom-data.types.cjs`),r=require(`../../data-structures/crypto-keys/encryptDecryptUtxo.cjs`),i=require(`../utils/external-action.utils.cjs`),a=require(`./getOriginalSender.cjs`),o=require(`../utils/bit.operations.cjs`);let s=require(`ethers`);var c=e=>{if(e.H0?.[0]!==void 0&&e.H0[1]!==void 0)return[e.H0[0],e.H0[1]];if(e.randomization!==void 0)return t.UserKeys.getH0FromRandomization(e.randomization);throw Error(`UTXO missing H0 coordinates for proof input`)},l=e=>{if(e.isNewStyle)return`0`;if(e.randomization!==void 0)return e.randomization.toString();throw Error(`UTXO missing randomization for old-style proof input`)},u=Array.from({length:25},()=>`0`),d=e=>e.length>0&&e.every(e=>e.every(e=>BigInt(e.amount)===0n)),f=e=>({inCommitmentSiblings:e.map(e=>e.map(()=>[...u])),inCommitmentSiblingSides:e.map(e=>e.map(()=>[...u])),inNullifiers:e.map(e=>e.map(()=>`0`))}),p=e=>e.map(e=>e.map(e=>e.amount===0n?`0`:e.getCommitment())),m=(t,n,r=!1)=>{let i=[];for(let a=0;a<t.length;a+=1){let o=0n,s=0n;for(let e=0;e<t[a].length;e+=1)o+=t[a][e].amount;for(let e=0;e<n[a].length;e+=1)s+=n[a][e].amount;s-o<0?r?i.push(s-o):i.push(e.CIRCOM_P+(s-o)):i.push(s-o)}return i},h=e=>e.map(e=>e>=0n?0n:e),g=e=>{if(e.length===0)return[];let t=[[``]];for(let n=0;n<e.length;n+=1)n>0&&t.push([``]),e[n].forEach((e,i)=>{t[n][i]=`0x${Buffer.from(r.encryptUtxo(e)).toString(`hex`)}`});return t},_=e=>{let t={...e};return t.amountChanges=e.amountChanges.map(e=>e.toString()),t.calldataHash=e.calldataHash.toString(),t.rootHashAccessToken=e.rootHashAccessToken?.toString(),t.stealthAddressStructure.extraRandomization=e.stealthAddressStructure.extraRandomization.toString(),t.stealthAddressStructure.stealthAddress=e.stealthAddressStructure.stealthAddress.toString(),t.stealthAddressStructure.H0=e.stealthAddressStructure.H0.toString(),t.stealthAddressStructure.H1=e.stealthAddressStructure.H1.toString(),t.rootHashHinkal=e.rootHashHinkal?.toString(),t.externalActionId=e.externalActionId?.toString(),t.slippageValues=e.slippageValues.map(e=>e.toString()),t.hinkalLogicArgs.inHinkalAddress=e.hinkalLogicArgs.inHinkalAddress.toString(),t.hinkalLogicArgs.executeApprovalChanges=e.hinkalLogicArgs.executeApprovalChanges.map(e=>e.toString()),t.hinkalLogicArgs.useApprovalUtxoData=e.hinkalLogicArgs.useApprovalUtxoData.map(e=>({approvalChanges:e.approvalChanges.map(e=>e.toString()),externalApprovalAddresses:e.externalApprovalAddresses,conversionInHinkalAddress:e.conversionInHinkalAddress.map(e=>e.toString())})),t.feeStructure.flatFee=e.feeStructure.flatFee.toString(),t.feeStructure.variableRate=e.feeStructure.variableRate.toString(),t},v=(t,r,o,c,l,u,d,f,p,m,h,g)=>{let _=Object.values(d||n.defaultHookData),v=g??a.getOriginalSender(o??e.zeroAddress,r),y=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint16`,`address`,`address`,`uint256`,`bytes`],[t,r,o,typeof c==`bigint`?c:i.getExternalActionIdHash(c),l]),b=s.ethers.AbiCoder.defaultAbiCoder().encode([`tuple(address, address, bytes, bytes)`,`bytes[][]`,`tuple(address, uint256, uint256)`,`int256[]`,`bool[]`,`tuple(uint8 v, bytes32 r, bytes32 s, uint256 accessKey, uint256 nonce, address ethereumAddress)`,`address`],[_,u,[m.feeToken,m.flatFee,m.variableRate],f,p,h,v]),x=BigInt(s.ethers.keccak256(y)),S=BigInt(s.ethers.keccak256(b)),C=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint256`,`uint256`],[x,S]);return BigInt(s.ethers.keccak256(C))%e.CIRCOM_P},y=(e,t,n,r,i)=>e.startsWith(`mainEVMCircuitMin0`)?3:2+t.length+n.length+1+r.flat().length+i.flat().length+1+1+1+1+1+1,b=(e,n,r)=>{let i=t.UserKeys.getH1FromH0(e,n),a=BigInt(t.UserKeys.getStealthAddressNewStyle(e,n,r));return{extraRandomization:o.addHighestBitToNumber(e[0]),H0:e[1],H1:i[1],stealthAddress:a}},x=(e,n,r)=>{let{H0:i}=t.UserKeys.getRandomizedStealthPair(e,n);return b(i,n,r)},S=(e,t)=>t.length===0?`mainEVMCircuitMin0`:`mainEVMCircuit${e.length}x${e[0].length}x${t[0].length}`;exports.buildOutCommitments=p,exports.buildZeroInputMerkleDataFromSerialized=f,exports.calcAmountChanges=m,exports.calcEncryptedOutputs=g,exports.calcPublicSignalCount=y,exports.calcStealthAddressStructure=x,exports.calcStealthAddressStructureFromH0=b,exports.createCallDataHash=v,exports.getSlippageValues=h,exports.getUtxoCircuitH0Coords=c,exports.getUtxoCircuitInRandomization=l,exports.getZkProofVerifierName=S,exports.hasOnlyZeroAmounts=d,exports.serializeCircomData=_;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../data-structures/crypto-keys/keys.cjs`),n=require(`../../types/circom-data.types.cjs`),r=require(`../../data-structures/crypto-keys/encryptDecryptUtxo.cjs`),i=require(`../utils/external-action.utils.cjs`),a=require(`./getOriginalSender.cjs`),o=require(`../utils/bit.operations.cjs`);let s=require(`ethers`);var c=e=>{if(e.H0?.[0]!==void 0&&e.H0[1]!==void 0)return[e.H0[0],e.H0[1]];if(e.randomization!==void 0)return t.UserKeys.getH0FromRandomization(e.randomization);throw Error(`UTXO missing H0 coordinates for proof input`)},l=e=>{if(e.isNewStyle)return`0`;if(e.randomization!==void 0)return e.randomization.toString();throw Error(`UTXO missing randomization for old-style proof input`)},u=Array.from({length:25},()=>`0`),d=e=>e.length>0&&e.every(e=>e.every(e=>BigInt(e.amount)===0n)),f=e=>({inCommitmentSiblings:e.map(e=>e.map(()=>[...u])),inCommitmentSiblingSides:e.map(e=>e.map(()=>[...u])),inNullifiers:e.map(e=>e.map(()=>`0`))}),p=e=>e.map(e=>e.map(e=>e.amount===0n?`0`:e.getCommitment())),m=(t,n,r=!1)=>{let i=[];for(let a=0;a<t.length;a+=1){let o=0n,s=0n;for(let e=0;e<t[a].length;e+=1)o+=t[a][e].amount;for(let e=0;e<n[a].length;e+=1)s+=n[a][e].amount;s-o<0?r?i.push(s-o):i.push(e.CIRCOM_P+(s-o)):i.push(s-o)}return i},h=e=>e.map(e=>e>=0n?0n:e),g=e=>{if(e.length===0)return[];let t=[[``]];for(let n=0;n<e.length;n+=1)n>0&&t.push([``]),e[n].forEach((e,i)=>{t[n][i]=`0x${Buffer.from(r.encryptUtxo(e)).toString(`hex`)}`});return t},_=e=>{let t={...e};return t.amountChanges=e.amountChanges.map(e=>e.toString()),t.calldataHash=e.calldataHash.toString(),t.rootHashAccessToken=e.rootHashAccessToken?.toString(),t.stealthAddressStructure.extraRandomization=e.stealthAddressStructure.extraRandomization.toString(),t.stealthAddressStructure.stealthAddress=e.stealthAddressStructure.stealthAddress.toString(),t.stealthAddressStructure.H0=e.stealthAddressStructure.H0.toString(),t.stealthAddressStructure.H1=e.stealthAddressStructure.H1.toString(),t.rootHashHinkal=e.rootHashHinkal?.toString(),t.externalActionId=e.externalActionId?.toString(),t.slippageValues=e.slippageValues.map(e=>e.toString()),t.hinkalLogicArgs.inHinkalAddress=e.hinkalLogicArgs.inHinkalAddress.toString(),t.hinkalLogicArgs.executeApprovalChanges=e.hinkalLogicArgs.executeApprovalChanges.map(e=>e.toString()),t.hinkalLogicArgs.useApprovalUtxoData=e.hinkalLogicArgs.useApprovalUtxoData.map(e=>({approvalChanges:e.approvalChanges.map(e=>e.toString()),externalApprovalAddresses:e.externalApprovalAddresses,conversionInHinkalAddress:e.conversionInHinkalAddress.map(e=>e.toString())})),t.feeStructure.flatFee=e.feeStructure.flatFee.toString(),t.feeStructure.variableRate=e.feeStructure.variableRate.toString(),t},v=(t,r,o,c,l,u,d,f,p,m,h,g)=>{let _=Object.values(d||n.defaultHookData),v=g??a.getOriginalSender(o??e.zeroAddress,r),y=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint16`,`address`,`address`,`uint256`,`bytes`],[t,r,o,typeof c==`bigint`?c:i.getExternalActionIdHash(c),l]),b=s.ethers.AbiCoder.defaultAbiCoder().encode([`tuple(address, address, bytes, bytes)`,`bytes[][]`,`tuple(address, uint256, uint256)`,`int256[]`,`bool[]`,`tuple(uint8 v, bytes32 r, bytes32 s, uint256 accessKey, uint256 nonce, address ethereumAddress)`,`address`],[_,u,[m.feeToken,m.flatFee,m.variableRate],f,p,h,v]),x=BigInt(s.ethers.keccak256(y)),S=BigInt(s.ethers.keccak256(b)),C=s.ethers.AbiCoder.defaultAbiCoder().encode([`uint256`,`uint256`],[x,S]);return BigInt(s.ethers.keccak256(C))%e.CIRCOM_P},y=(e,t,n,r,i)=>e.startsWith(`mainEVMCircuitMin0`)?3:2+t.length+n.length+1+r.flat().length+i.flat().length+1+1+1+1+1+1,b=(e,n,r)=>{let i=t.UserKeys.getH1FromH0(e,n),a=BigInt(t.UserKeys.getStealthAddressNewStyle(e,n,r));return{extraRandomization:o.addHighestBitToNumber(e[0]),H0:e[1],H1:i[1],stealthAddress:a}},x=(e,n,r)=>{let{H0:i}=t.UserKeys.getRandomizedStealthPair(e,n);return b(i,n,r)},S=(e,t)=>t.length===0?`mainEVMCircuitMin0`:`mainEVMCircuit${e.length}x${e[0].length}x${t[0].length}`;exports.buildOutCommitments=p,exports.buildZeroInputMerkleDataFromSerialized=f,exports.calcAmountChanges=m,exports.calcEncryptedOutputs=g,exports.calcPublicSignalCount=y,exports.calcStealthAddressStructure=x,exports.calcStealthAddressStructureFromH0=b,exports.createCallDataHash=v,exports.getSlippageValues=h,exports.getUtxoCircuitH0Coords=c,exports.getUtxoCircuitInRandomization=l,exports.getZkProofVerifierName=S,exports.hasOnlyZeroAmounts=d,exports.serializeCircomData=_;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`),n=require(`../web3/etherFunctions.cjs`),r=require(`../utils/solanaMint.utils.cjs`),i=require(`../utils/bit.operations.cjs`),a=require(`./common.snarkjs.cjs`),o=require(`../pre-transaction/solana.cjs`),s=require(`./signedMessageHash.cjs`);require(`../pre-transaction/index.cjs`);const c=require(`./generateMainAndCommitmentZkProof.cjs`);require(`../utils/index.cjs`);const l=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`),u=require(`../pre-transaction/getSolanaCalldataHash.cjs`);require(`../web3/index.cjs`);let d=require(`@solana/web3.js`);var f=async(f,p,m,h,g,_,v,y,b,x,S,C,w,T=e.chainIds.solanaLocalnet,E=[],D=[],O=0n)=>{let k=new d.PublicKey(x),A=new d.PublicKey(S),j=m.getShieldedPrivateKey(),{pubSpendingBJJPoint:M}=m.getSpendingKeyPair(),N=a.calcStealthAddressStructure(v,j,m.getSpendingKeyPair().pubSpendingBJJPoint),P=n.randomBigInt(31),F=t.poseidonFunction(P),I=t.poseidonFunction(O),L=h.map(e=>r.formatMintAddress(e)),R=L.map(e=>e.mintAccountPart1),z=L.map(e=>e.mintAccountPart2),B=u.getSolanaCalldataHash(C,k,A,w,y,b,E,D),V=`${C.tokenNumber}x${C.nullifierAmount}x${C.outputAmount}`,H=a.calcAmountChanges(g,_),{inCommitmentSiblings:U,inCommitmentSiblingSides:W,rootHashHinkal:G,inNullifiers:K}=await l.getDataFromWorkers(T,p,g.map(e=>e.map(e=>e.getConstructableParams()))),q=a.buildOutCommitments(_),J=i.takeOffHighestBit(N.extraRandomization),Y=N.H0,X=s.computeSignedMessageHashSolana({rootHashHinkal:G,mintAccountPart1:R,mintAccountPart2:z,amountChanges:H,outTimeStamp:BigInt(_[0][0].timeStamp),inNullifiers:K,outCommitments:q,calldataHash:B,message:F,swapperAccountAdditionalSeed:I,outH1Ay:N.H1,H0Ax:J,H0Ay:Y}),{R8:Z,S:Q}=m.signEddsa(X),$={rootHashHinkal:G,spendingPublicKey:M,eddsaSignature:[Z[0],Z[1],Q],signedMessageHash:X,nullifyingPrivateKey:j,mintAccountPart1:R,mintAccountPart2:z,amountChanges:H,inAmounts:g.map(e=>e.map(e=>e.amount.toString())),inRandomizations:g.map(e=>e.map(e=>a.getUtxoCircuitInRandomization(e))),inH0Ax:g.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:g.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:g.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:g.map(e=>e.map(e=>e.timeStamp)),inNullifiers:K,inCommitmentSiblings:U,inCommitmentSiblingSides:W,outAmounts:_.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:BigInt(_[0][0].timeStamp),outPublicKeys:_.map(e=>e.map(e=>e.getStealthAddress())),outCommitments:q,calldataHash:B,messageSeed:P,swapperAccountSalt:O,H0Ax:J,H0Ay:Y},{zkCallData:ee,publicSignals:te,commitmentValidationData:ne}=await c.generateMainAndCommitmentZkProof(T,m,h,g,`mainSolanaCircuit${V}`,$,f),[re,ie,ae]=ee;return{proofAArr:re.map(BigInt).map(o.encodeToByte32Array).flat(),proofBArr:ie.flat().map(BigInt).map(o.encodeToByte32Array).flat(),proofCArr:ae.map(BigInt).map(o.encodeToByte32Array).flat(),publicInputsArr:te.map(BigInt).map(o.encodeToByte32Array),commitmentValidationData:ne}};exports.constructSolanaZkProof=f;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`),t=require(`../../crypto/poseidon.cjs`),n=require(`../web3/etherFunctions.cjs`),r=require(`../utils/solanaMint.utils.cjs`),i=require(`../utils/bit.operations.cjs`),a=require(`./common.snarkjs.cjs`),o=require(`../pre-transaction/solana.cjs`),s=require(`./signedMessageHash.cjs`);require(`../pre-transaction/index.cjs`);const c=require(`./generateMainAndCommitmentZkProof.cjs`);require(`../utils/index.cjs`);const l=require(`./getMerkleTreeSiblingsAndRootHashes.cjs`),u=require(`../pre-transaction/getSolanaCalldataHash.cjs`);require(`../web3/index.cjs`);let d=require(`@solana/web3.js`);var f=async(f,p,m,h,g,_,v,y,b,x,S,C,w,T=e.chainIds.solanaLocalnet,E=[],D=[],O=0n)=>{let k=new d.PublicKey(x),A=new d.PublicKey(S),j=m.getShieldedPrivateKey(),{pubSpendingBJJPoint:M}=m.getSpendingKeyPair(),N=a.calcStealthAddressStructure(v,j,m.getSpendingKeyPair().pubSpendingBJJPoint),P=n.randomBigInt(31),F=t.poseidonFunction(P),I=t.poseidonFunction(O),L=h.map(e=>r.formatMintAddress(e)),R=L.map(e=>e.mintAccountPart1),z=L.map(e=>e.mintAccountPart2),B=u.getSolanaCalldataHash(C,k,A,w,y,b,E,D),V=`${C.tokenNumber}x${C.nullifierAmount}x${C.outputAmount}`,H=a.calcAmountChanges(g,_),{inCommitmentSiblings:U,inCommitmentSiblingSides:W,rootHashHinkal:G,inNullifiers:K}=await l.getDataFromWorkers(T,p,g.map(e=>e.map(e=>e.getConstructableParams()))),q=a.buildOutCommitments(_),J=i.takeOffHighestBit(N.extraRandomization),Y=N.H0,X=s.computeSignedMessageHashSolana({rootHashHinkal:G,mintAccountPart1:R,mintAccountPart2:z,amountChanges:H,outTimeStamp:BigInt(_[0][0].timeStamp),inNullifiers:K,outCommitments:q,calldataHash:B,message:F,swapperAccountAdditionalSeed:I,outH1Ay:N.H1,H0Ax:J,H0Ay:Y}),{R8:Z,S:Q}=m.signEddsa(X),$={rootHashHinkal:G,spendingPublicKey:M,eddsaSignature:[Z[0],Z[1],Q],signedMessageHash:X,nullifyingPrivateKey:j,mintAccountPart1:R,mintAccountPart2:z,amountChanges:H,inAmounts:g.map(e=>e.map(e=>e.amount.toString())),inRandomizations:g.map(e=>e.map(e=>a.getUtxoCircuitInRandomization(e))),inH0Ax:g.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[0].toString())),inH0Ay:g.map(e=>e.map(e=>a.getUtxoCircuitH0Coords(e)[1].toString())),isNewStyle:g.map(e=>e.map(e=>!!e.isNewStyle)),inTimeStamps:g.map(e=>e.map(e=>e.timeStamp)),inNullifiers:K,inCommitmentSiblings:U,inCommitmentSiblingSides:W,outAmounts:_.map(e=>e.map(e=>e.amount.toString())),outTimeStamp:BigInt(_[0][0].timeStamp),outPublicKeys:_.map(e=>e.map(e=>e.getStealthAddress())),outCommitments:q,calldataHash:B,messageSeed:P,swapperAccountSalt:O,H0Ax:J,H0Ay:Y},{zkCallData:ee,publicSignals:te,commitmentValidationData:ne}=await c.generateMainAndCommitmentZkProof(T,m,h,g,`mainSolanaCircuit${V}`,$,f),[re,ie,ae]=ee;return{proofAArr:re.map(BigInt).map(o.encodeToByte32Array).flat(),proofBArr:ie.flat().map(BigInt).map(o.encodeToByte32Array).flat(),proofCArr:ae.map(BigInt).map(o.encodeToByte32Array).flat(),publicInputsArr:te.map(BigInt).map(o.encodeToByte32Array),commitmentValidationData:ne}};exports.constructSolanaZkProof=f;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../types/ethereum-network.types.cjs`),n=require(`../pre-transaction/solana.cjs`),r=require(`../utils/create-provider.cjs`),i=require(`../web3/getContractMetadata.cjs`),a=require(`../web3/fetchSolanaMerkleTreeRootHash.cjs`);let o=require(`@solana/web3.js`),s=require(`@coral-xyz/anchor`);var c=()=>{let e=o.Keypair.generate();return{publicKey:e.publicKey,payer:e,signTransaction:async e=>e,signAllTransactions:async e=>e}},l=async e=>({hinkalRootHash:await i.getContractWithFetcherByChainId(e,t.ContractType.HinkalContract).getRootHash()}),u=async t=>{let{contractData:i,fetchRpcUrl:l}=e.networkRegistry[t],{hinkalIdl:u,hinkalAddress:d,originalDeployer:f}=i;if(!u||!d||!f||!l)throw Error(`Missing Solana configuration for chain ${t}`);return{hinkalRootHash:await a.fetchSolanaMerkleTreeRootHash(new s.Program(u,new s.AnchorProvider(r.createCustomSolanaConnection(l),c(),{preflightCommitment:`confirmed`,commitment:`confirmed`})),n.getMerkleAccountPublicKey(new o.PublicKey(d),new o.PublicKey(f)))}},d=async t=>e.isSolanaLike(t)?u(t):l(t);exports.fetchOnChainRootHashes=d;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`),t=require(`../../types/ethereum-network.types.cjs`),n=require(`../pre-transaction/solana.cjs`),r=require(`../utils/create-provider.cjs`),i=require(`../web3/getContractMetadata.cjs`),a=require(`../web3/fetchSolanaMerkleTreeRootHash.cjs`);let o=require(`@solana/web3.js`),s=require(`@coral-xyz/anchor`);var c=()=>{let e=o.Keypair.generate();return{publicKey:e.publicKey,payer:e,signTransaction:async e=>e,signAllTransactions:async e=>e}},l=async e=>({hinkalRootHash:await i.getContractWithFetcherByChainId(e,t.ContractType.HinkalContract).getRootHash()}),u=async t=>{let{contractData:i,fetchRpcUrl:l}=e.networkRegistry[t],{hinkalIdl:u,hinkalAddress:d,originalDeployer:f}=i;if(!u||!d||!f||!l)throw Error(`Missing Solana configuration for chain ${t}`);return{hinkalRootHash:await a.fetchSolanaMerkleTreeRootHash(new s.Program(u,new s.AnchorProvider(r.createCustomSolanaConnection(l),c(),{preflightCommitment:`confirmed`,commitment:`confirmed`})),n.getMerkleAccountPublicKey(new o.PublicKey(d),new o.PublicKey(f)))}},d=async t=>e.isSolanaLike(t)?u(t):l(t);exports.fetchOnChainRootHashes=d;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../pre-transaction/solana.cjs`);let n=require(`ethers`),r=require(`@coral-xyz/anchor`);var i=e=>[...new r.BN(e.length).toArray(`be`,8),...e.flatMap(e=>t.encodeToByte32Array(e))],a=t=>BigInt(n.ethers.keccak256(t))%e.CIRCOM_P,o=[`uint256`,`uint256[]`,`uint256[]`,`uint256`,`uint256[]`,`uint256[]`,`uint256`,`uint256`,`uint256`,`uint256`,`uint256`],s=e=>a(n.ethers.AbiCoder.defaultAbiCoder().encode(o,[e.rootHashHinkal,e.erc20TokenAddresses.map(e=>n.ethers.getBigInt(e)),e.amountChanges,e.outTimeStamp,e.inNullifiers.flat().map(e=>BigInt(e)),e.outCommitments.flat().map(e=>BigInt(e)),e.calldataHash,e.message,e.outH1Ay,e.H0Ax,e.H0Ay])),c=r=>{let a=r.inNullifiers.flat().map(e=>BigInt(e)),o=r.outCommitments.flat().map(e=>BigInt(e)),s=[...t.encodeToByte32Array(r.rootHashHinkal),...i(r.mintAccountPart1),...i(r.mintAccountPart2),...i(r.amountChanges),...t.encodeToByte32Array(r.outTimeStamp),...i(a),...i(o),...t.encodeToByte32Array(r.calldataHash),...t.encodeToByte32Array(r.message),...t.encodeToByte32Array(r.swapperAccountAdditionalSeed),...t.encodeToByte32Array(r.outH1Ay),...t.encodeToByte32Array(r.H0Ax),...t.encodeToByte32Array(r.H0Ay)];return BigInt(n.ethers.sha256(new Uint8Array(s)))%e.CIRCOM_P};exports.computeSignedMessageHashEvm=s,exports.computeSignedMessageHashSolana=c;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/protocol.constants.cjs`),t=require(`../pre-transaction/solana.cjs`);let n=require(`ethers`),r=require(`@coral-xyz/anchor`);var i=e=>[...new r.BN(e.length).toArray(`be`,8),...e.flatMap(e=>t.encodeToByte32Array(e))],a=t=>BigInt(n.ethers.keccak256(t))%e.CIRCOM_P,o=[`uint256`,`uint256[]`,`uint256[]`,`uint256`,`uint256[]`,`uint256[]`,`uint256`,`uint256`,`uint256`,`uint256`,`uint256`],s=e=>a(n.ethers.AbiCoder.defaultAbiCoder().encode(o,[e.rootHashHinkal,e.erc20TokenAddresses.map(e=>n.ethers.getBigInt(e)),e.amountChanges,e.outTimeStamp,e.inNullifiers.flat().map(e=>BigInt(e)),e.outCommitments.flat().map(e=>BigInt(e)),e.calldataHash,e.message,e.outH1Ay,e.H0Ax,e.H0Ay])),c=r=>{let a=r.inNullifiers.flat().map(e=>BigInt(e)),o=r.outCommitments.flat().map(e=>BigInt(e)),s=[...t.encodeToByte32Array(r.rootHashHinkal),...i(r.mintAccountPart1),...i(r.mintAccountPart2),...i(r.amountChanges),...t.encodeToByte32Array(r.outTimeStamp),...i(a),...i(o),...t.encodeToByte32Array(r.calldataHash),...t.encodeToByte32Array(r.message),...t.encodeToByte32Array(r.swapperAccountAdditionalSeed),...t.encodeToByte32Array(r.outH1Ay),...t.encodeToByte32Array(r.H0Ax),...t.encodeToByte32Array(r.H0Ay)];return BigInt(n.ethers.sha256(new Uint8Array(s)))%e.CIRCOM_P};exports.computeSignedMessageHashEvm=s,exports.computeSignedMessageHashSolana=c;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`),require(`../../data-structures/http/HttpClient.cjs`),require(`./common.snarkjs.cjs`),require(`../utils/bytes32.utils.cjs`),require(`./getZKFiles.cjs`);const e=require(`../../../../shims/snarkjs.cjs`);require(`ethers`),e.default;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs"),require(`../../data-structures/http/HttpClient.cjs`),require(`./common.snarkjs.cjs`),require(`../utils/bytes32.utils.cjs`),require(`./getZKFiles.cjs`);const e=require(`../../../../shims/snarkjs.cjs`);require(`ethers`),e.default;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);let e=require(`ethers`);var t=t=>JSON.parse(new e.ethers.Interface(t).formatJson()),n=e=>Object.fromEntries(Object.entries(e).map(([e,n])=>[e,t(n)]));exports.toJsonAbi=t,exports.withJsonAbis=n;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");let e=require(`ethers`);var t=t=>JSON.parse(new e.ethers.Interface(t).formatJson()),n=e=>Object.fromEntries(Object.entries(e).map(([e,n])=>[e,t(n)]));exports.toJsonAbi=t,exports.withJsonAbis=n;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`),require(`../../constants/chains.constants.cjs`),require(`../../constants/protocol.constants.cjs`);let e=require(`ethers`);require(`@solana/web3.js`),require(`tronweb`);var t=[`http://`,`https://`,`/payment/`,`.app/`,`.com/`,`.netlify.`],n=e=>{if(t.some(t=>e.includes(t)))return!1;let[n,r,i,a,o]=e.split(`,`),s=!n||!o||!r||!i||!a,c=n?.substring(0,2)!==`0x`||o?.substring(0,2)!==`0x`,l=o?.length!==66||n?.length>66||n?.length<64,u=e?.includes(`"`);return!(s||c||l||u)},r=e=>{if(t.some(t=>e.includes(t)))return!1;let[n,r,i,a,o]=e.split(`,`),s=!n||!r||!i||!a||!o,c=r?.substring(0,2)!==`0x`||i?.substring(0,2)!==`0x`,l=i?.length!==66||r?.length>66||r?.length<64,u=e?.includes(`"`);return!(s||c||l||u)},i=e=>{let[t,n,r,i]=e.split(`,`);return{extraRandomization:BigInt(n)|1n<<255n,stealthAddress:BigInt(t),H0:BigInt(r),H1:BigInt(i)}},a=t=>e.ethers.keccak256(e.ethers.toUtf8Bytes(t.toLowerCase())),o=t=>e.ethers.keccak256(e.ethers.toUtf8Bytes(t));exports.constructStealthAddressStructure=i,exports.hashEthereumAddress=a,exports.hashString=o,exports.isValidOldStylePrivateAddress=r,exports.isValidPrivateAddress=n;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs"),require(`../../constants/chains.constants.cjs`),require(`../../constants/protocol.constants.cjs`);let e=require(`ethers`);require(`@solana/web3.js`),require(`tronweb`);var t=[`http://`,`https://`,`/payment/`,`.app/`,`.com/`,`.netlify.`],n=e=>{if(t.some(t=>e.includes(t)))return!1;let[n,r,i,a,o]=e.split(`,`),s=!n||!o||!r||!i||!a,c=n?.substring(0,2)!==`0x`||o?.substring(0,2)!==`0x`,l=o?.length!==66||n?.length>66||n?.length<64,u=e?.includes(`"`);return!(s||c||l||u)},r=e=>{if(t.some(t=>e.includes(t)))return!1;let[n,r,i,a,o]=e.split(`,`),s=!n||!r||!i||!a||!o,c=r?.substring(0,2)!==`0x`||i?.substring(0,2)!==`0x`,l=i?.length!==66||r?.length>66||r?.length<64,u=e?.includes(`"`);return!(s||c||l||u)},i=e=>{let[t,n,r,i]=e.split(`,`);return{extraRandomization:BigInt(n)|1n<<255n,stealthAddress:BigInt(t),H0:BigInt(r),H1:BigInt(i)}},a=t=>e.ethers.keccak256(e.ethers.toUtf8Bytes(t.toLowerCase())),o=t=>e.ethers.keccak256(e.ethers.toUtf8Bytes(t));exports.constructStealthAddressStructure=i,exports.hashEthereumAddress=a,exports.hashString=o,exports.isValidOldStylePrivateAddress=r,exports.isValidPrivateAddress=n;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);let t=require(`ethers`);var n=(n,r,i)=>{let{hinkalAddress:a}=e.networkRegistry[i].contractData,o=t.ethers.getBytes(n),s=o.slice(0,20),c=o.slice(20,21),[l,u,d,f]=[s,o.slice(21,37),c,o.slice(37)].map(e=>t.ethers.hexlify(e));return{from:BigInt(d)>0?r:a,to:l,value:BigInt(u),calldata:f}};exports.convertEmporiumOpToCallInfo=n;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`);let t=require(`ethers`);var n=(n,r,i)=>{let{hinkalAddress:a}=e.networkRegistry[i].contractData,o=t.ethers.getBytes(n),s=o.slice(0,20),c=o.slice(20,21),[l,u,d,f]=[s,o.slice(21,37),c,o.slice(37)].map(e=>t.ethers.hexlify(e));return{from:BigInt(d)>0?r:a,to:l,value:BigInt(u),calldata:f}};exports.convertEmporiumOpToCallInfo=n;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`);let t=require(`ethers`),n=require(`@solana/web3.js`);var r=n=>{let{fetchRpcUrl:r}=e.networkRegistry[n];if(!r)throw Error(`RPC URL not found for the specified chain ID`);return new t.JsonRpcProvider(r,e.getOnchainChainId(n),{staticNetwork:!0})},i=(e,t=`confirmed`)=>new n.Connection(e,t);exports.createCustomSolanaConnection=i,exports.createJsonRpcProvider=r;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`);let t=require(`ethers`),n=require(`@solana/web3.js`);var r=n=>{let{fetchRpcUrl:r}=e.networkRegistry[n];if(!r)throw Error(`RPC URL not found for the specified chain ID`);return new t.JsonRpcProvider(r,e.getOnchainChainId(n),{staticNetwork:!0})},i=(e,t=`confirmed`)=>new n.Connection(e,t);exports.createCustomSolanaConnection=i,exports.createJsonRpcProvider=r;
@@ -1 +1 @@
1
- const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`./serialize.utils.cjs`),n=require(`../../../../vendor/libsodium-wrappers/dist/modules/libsodium-wrappers.cjs`),r=require(`./enclaveHandshakeService.cjs`);let i=require(`ethers`),a=require(`node-forge`);a=e.__toESM(a);var o=e.__toESM(n.default),s=e=>typeof e==`bigint`||typeof e==`number`?e.toString():e,c=e=>a.util.hexToBytes(e.replace(`0x`,``)),l=e=>{let t=structuredClone(e);return Object.entries(t).forEach(([e,n])=>{t[e]=s(n),Array.isArray(n)&&(Array.isArray(n[0])?t[e]=n.map(e=>e.map(s)):t[e]=n.map(s))}),t},u=(e,t)=>{let n=a.util.decode64(e),r=a.asn1.fromDer(a.util.createBuffer(n)),i=a.pki.publicKeyFromAsn1(r),o=a.util.binary.raw.encode(t),s=i.encrypt(o,`RSA-OAEP`,{md:a.md.sha1.create(),mgf1:{md:a.md.sha1.create()}});return a.util.encode64(s)},d=(e,t)=>{let n=o.default.randombytes_buf(o.default.crypto_secretbox_NONCEBYTES),r=o.default.crypto_secretbox_easy(t,n,e),s=c(i.ethers.hexlify(n)+i.ethers.hexlify(r).slice(2));return a.util.encode64(s)},f=(e,t)=>{let n=o.default.randombytes_buf(o.default.crypto_secretbox_KEYBYTES);return{keyCiphertext:u(t,n),inputCiphertext:d(n,e)}},p=(e,n)=>{let r=typeof e==`string`?e:t.safeJsonStringify(l(e));return f(new TextEncoder().encode(r),n)},m=async e=>p(e,await r.enclaveHandshakeService.getPublicKey()),h=async e=>f(e,await r.enclaveHandshakeService.getPublicKey());exports.makeEnclaveHandshakeAndEncryptInput=m,exports.makeEnclaveHandshakeAndEncryptUint8Array=h;
1
+ const e=require("../../../../_virtual/_rolldown/runtime.cjs"),t=require(`./serialize.utils.cjs`),n=require(`../../../../shims/libsodium-wrappers.cjs`),r=require(`./enclaveHandshakeService.cjs`);let i=require(`ethers`),a=require(`node-forge`);a=e.__toESM(a);var o=e.__toESM(n.default),s=e=>typeof e==`bigint`||typeof e==`number`?e.toString():e,c=e=>a.util.hexToBytes(e.replace(`0x`,``)),l=e=>{let t=structuredClone(e);return Object.entries(t).forEach(([e,n])=>{t[e]=s(n),Array.isArray(n)&&(Array.isArray(n[0])?t[e]=n.map(e=>e.map(s)):t[e]=n.map(s))}),t},u=(e,t)=>{let n=a.util.decode64(e),r=a.asn1.fromDer(a.util.createBuffer(n)),i=a.pki.publicKeyFromAsn1(r),o=a.util.binary.raw.encode(t),s=i.encrypt(o,`RSA-OAEP`,{md:a.md.sha1.create(),mgf1:{md:a.md.sha1.create()}});return a.util.encode64(s)},d=(e,t)=>{let n=o.default.randombytes_buf(o.default.crypto_secretbox_NONCEBYTES),r=o.default.crypto_secretbox_easy(t,n,e),s=c(i.ethers.hexlify(n)+i.ethers.hexlify(r).slice(2));return a.util.encode64(s)},f=(e,t)=>{let n=o.default.randombytes_buf(o.default.crypto_secretbox_KEYBYTES);return{keyCiphertext:u(t,n),inputCiphertext:d(n,e)}},p=(e,n)=>{let r=typeof e==`string`?e:t.safeJsonStringify(l(e));return f(new TextEncoder().encode(r),n)},m=async e=>p(e,await r.enclaveHandshakeService.getPublicKey()),h=async e=>f(e,await r.enclaveHandshakeService.getPublicKey());exports.makeEnclaveHandshakeAndEncryptInput=m,exports.makeEnclaveHandshakeAndEncryptUint8Array=h;
@@ -1,6 +1,6 @@
1
- import { __toESM as e } from "../../../../../../_virtual/_rolldown/runtime.mjs";
1
+ import { __toESM as e } from "../../../../_virtual/_rolldown/runtime.mjs";
2
2
  import { safeJsonStringify as t } from "./serialize.utils.mjs";
3
- import { require_libsodium_wrappers as n } from "../../../../vendor/libsodium-wrappers/dist/modules/libsodium-wrappers.mjs";
3
+ import { require_libsodium_wrappers as n } from "../../../../shims/libsodium-wrappers.mjs";
4
4
  import { enclaveHandshakeService as r } from "./enclaveHandshakeService.mjs";
5
5
  import { ethers as i } from "ethers";
6
6
  import * as a from "node-forge";
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`);let t=require(`ethers`);var n=n=>n===0n?0n:BigInt(t.ethers.id(n))%e.CIRCOM_P;exports.getExternalActionIdHash=n;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/protocol.constants.cjs`);let t=require(`ethers`);var n=n=>n===0n?0n:BigInt(t.ethers.id(n))%e.CIRCOM_P;exports.getExternalActionIdHash=n;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);let e=require(`ethers`);var t=t=>{let{runner:n}=t;if(!(n instanceof e.ethers.AbstractSigner))throw Error(`expected signer`);return n},n=e=>{let{runner:t}=e;if(!t)throw Error(`expected provider`);return t.provider??t};exports.getProviderFromContract=n,exports.getSignerFromContract=t;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");let e=require(`ethers`);var t=t=>{let{runner:n}=t;if(!(n instanceof e.ethers.AbstractSigner))throw Error(`expected signer`);return n},n=e=>{let{runner:t}=e;if(!t)throw Error(`expected provider`);return t.provider??t};exports.getProviderFromContract=n,exports.getSignerFromContract=t;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`),require(`../../constants/chains.constants.cjs`);const e=require(`./caseInsensitive.utils.cjs`),t=require(`../../crypto/poseidon.cjs`),n=require(`../../data-structures/utxo/Utxo.cjs`);require(`../../data-structures/crypto-keys/encryptDecryptUtxo.cjs`);const r=require(`./bit.operations.cjs`),i=require(`./bytes32.utils.cjs`);let a=require(`ethers`),o=require(`@solana/web3.js`),s=require(`@coral-xyz/anchor`);var c=(c,l,u,d)=>[...new s.EventParser(l.programId,new s.BorshCoder(l.idl)).parseLogs(c.meta?.logMessages??[])].filter(({name:t})=>e.caseInsensitiveEqual(t,`newCommitment`)).filter(({data:e})=>e.encryptedOutput.length===0).map(e=>{let{onChainData:s}=e.data,[c,l,d,f,p,m,,h]=s.map(i.convertBytes32ToBigInt),[,g,_]=s,v=new o.PublicKey([...g.slice(16),..._.slice(16)]),y=t.poseidonHash(l,d),b=r.extractHighestBit(f)===1n,x=new n.Utxo({amount:c,timeStamp:h.toString(),nullifyingKey:u.getShieldedPrivateKey(),mintAddress:v.toBase58(),erc20TokenAddress:y,stealthAddress:a.ethers.toBeHex(p),isNewStyle:b,...b?{H0:[r.takeOffHighestBit(f),m]}:{randomization:f}});return x.getStealthAddress(),x}).filter(t=>e.caseInsensitiveEqual(t.erc20TokenAddress,d));exports.getOnChainUtxosFromReceiptSolana=c;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs"),require(`../../constants/chains.constants.cjs`);const e=require(`./caseInsensitive.utils.cjs`),t=require(`../../crypto/poseidon.cjs`),n=require(`../../data-structures/utxo/Utxo.cjs`);require(`../../data-structures/crypto-keys/encryptDecryptUtxo.cjs`);const r=require(`./bit.operations.cjs`),i=require(`./bytes32.utils.cjs`);let a=require(`ethers`),o=require(`@solana/web3.js`),s=require(`@coral-xyz/anchor`);var c=(c,l,u,d)=>[...new s.EventParser(l.programId,new s.BorshCoder(l.idl)).parseLogs(c.meta?.logMessages??[])].filter(({name:t})=>e.caseInsensitiveEqual(t,`newCommitment`)).filter(({data:e})=>e.encryptedOutput.length===0).map(e=>{let{onChainData:s}=e.data,[c,l,d,f,p,m,,h]=s.map(i.convertBytes32ToBigInt),[,g,_]=s,v=new o.PublicKey([...g.slice(16),..._.slice(16)]),y=t.poseidonHash(l,d),b=r.extractHighestBit(f)===1n,x=new n.Utxo({amount:c,timeStamp:h.toString(),nullifyingKey:u.getShieldedPrivateKey(),mintAddress:v.toBase58(),erc20TokenAddress:y,stealthAddress:a.ethers.toBeHex(p),isNewStyle:b,...b?{H0:[r.takeOffHighestBit(f),m]}:{randomization:f}});return x.getStealthAddress(),x}).filter(t=>e.caseInsensitiveEqual(t.erc20TokenAddress,d));exports.getOnChainUtxosFromReceiptSolana=c;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);let e=require(`ethers`);var t=t=>{let n=t.join(` `),r=e.ethers.toUtf8Bytes(n);return e.ethers.keccak256(r)};exports.generateHashFromSeedPhrases=t;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");let e=require(`ethers`);var t=t=>{let n=t.join(` `),r=e.ethers.toUtf8Bytes(n);return e.ethers.keccak256(r)};exports.generateHashFromSeedPhrases=t;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`),require(`../../constants/chains.constants.cjs`);const e=require(`../../constants/protocol.constants.cjs`);require(`../../data-structures/http/index.cjs`),require(`./addresses.cjs`),require(`../../externalABIs/index.cjs`);const t=require(`../../error-handling/logger.cjs`);require(`./erc20tokenFunctions.cjs`);const n=require(`./create-provider.cjs`),r=require(`../../externalABIs/swapAbi.cjs`);require(`./ipfs.cjs`);let i=require(`ethers`);require(`@solana/web3.js`),require(`@solana/spl-token`);var a=async(t,n,a)=>{try{let o=a.erc20TokenAddress,s,c=new i.ethers.Contract(a.erc20TokenAddress,r.ERC20ABI,t);s=o===e.zeroAddress?await t.getBalance(n):await c?.balanceOf(n);let l=s;return l<=0n?null:{token:a,balance:l}}catch{return null}},o=async(a,o,s)=>{try{let t=n.createJsonRpcProvider(a),c=new i.ethers.Contract(s,r.ERC20ABI,t),l;return l=s===e.zeroAddress?await t.getBalance(o):await c?.balanceOf(o),l}catch{return t.Logger.error(`Failed to fetch public balance for address ${o}`),null}};exports.getPublicBalance=a,exports.getPublicBalanceByTokenAddress=o;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs"),require(`../../constants/chains.constants.cjs`);const e=require(`../../constants/protocol.constants.cjs`);require(`../../data-structures/http/index.cjs`),require(`./addresses.cjs`),require(`../../externalABIs/index.cjs`);const t=require(`../../error-handling/logger.cjs`);require(`./erc20tokenFunctions.cjs`);const n=require(`./create-provider.cjs`),r=require(`../../externalABIs/swapAbi.cjs`);require(`./ipfs.cjs`);let i=require(`ethers`);require(`@solana/web3.js`),require(`@solana/spl-token`);var a=async(t,n,a)=>{try{let o=a.erc20TokenAddress,s,c=new i.ethers.Contract(a.erc20TokenAddress,r.ERC20ABI,t);s=o===e.zeroAddress?await t.getBalance(n):await c?.balanceOf(n);let l=s;return l<=0n?null:{token:a,balance:l}}catch{return null}},o=async(a,o,s)=>{try{let t=n.createJsonRpcProvider(a),c=new i.ethers.Contract(s,r.ERC20ABI,t),l;return l=s===e.zeroAddress?await t.getBalance(o):await c?.balanceOf(o),l}catch{return t.Logger.error(`Failed to fetch public balance for address ${o}`),null}};exports.getPublicBalance=a,exports.getPublicBalanceByTokenAddress=o;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`),new(require(`@solana/web3.js`)).PublicKey(`MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr`);
1
+ require("../../../../_virtual/_rolldown/runtime.cjs"),new(require(`@solana/web3.js`)).PublicKey(`MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr`);
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../crypto/poseidon.cjs`);let t=require(`ethers`),n=require(`@solana/web3.js`);var r=e=>{let n=e.toBytes();return BigInt(t.ethers.hexlify(n))},i=t=>{let i=typeof t==`string`?new n.PublicKey(t):t,a=r(i),o=a/2n**128n,s=a%2n**128n;return{mintAccountPart1:o,mintAccountPart2:s,compressedAddress:e.poseidonHash(o,s),mintPublicKey:i}};exports.convertPublicKeyToBigint=r,exports.formatMintAddress=i;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../crypto/poseidon.cjs`);let t=require(`ethers`),n=require(`@solana/web3.js`);var r=e=>{let n=e.toBytes();return BigInt(t.ethers.hexlify(n))},i=t=>{let i=typeof t==`string`?new n.PublicKey(t):t,a=r(i),o=a/2n**128n,s=a%2n**128n;return{mintAccountPart1:o,mintAccountPart2:s,compressedAddress:e.poseidonHash(o,s),mintPublicKey:i}};exports.convertPublicKeyToBigint=r,exports.formatMintAddress=i;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`./caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../snarkjs/constant.cjs`),a=require(`../../data-structures/http/HttpClient.cjs`),o=require(`../../externalABIs/index.cjs`),s=require(`../../error-handling/logger.cjs`);let c=require(`ethers`),l=require(`tronweb`);var u=2000n,d=e=>{let t=e.trim(),n=t.startsWith(`0x`)?t.slice(2):t;if(!/^[0-9a-fA-F]{64}$/.test(n))throw Error(`Tron private key must be 32 bytes (64 hex characters), with or without 0x prefix`);return n},f=(t,n)=>{let r=e.networkRegistry[t].fetchRpcUrl,i=n?d(n):void 0,a=i?new l.TronWeb({fullHost:r,privateKey:i}):new l.TronWeb({fullHost:r});return n||a.setAddress(`T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb`),a},p=e=>e?.startsWith(`T`)?e:l.TronWeb.address.fromHex(e),m=e=>e.startsWith(`0x`)?p(e):e,h=e=>{if(e.startsWith(`0x`))return e;if(e.startsWith(`41`))return e.replace(`41`,`0x`);if(e.startsWith(`T`))return h(l.TronWeb.address.toHex(e));throw Error(`Failed to convert address to hex format`)},g=t=>{if(t===e.chainIds.tronNile)return`https://nile.trongrid.io`;if(t===e.chainIds.tronMainnet)return`https://api.trongrid.io`;throw Error(`Unsupported Tron chain for wallet RPC: ${t}`)},_=(e,t)=>e.map(e=>Array.isArray(e)?_(e,t):t(e)),v=(e,t,n)=>{let r=new c.ethers.Interface(e);if(!r.getFunction(t))throw Error(`${t} ABI is missing for Tron call data creation`);let i=_(n,e=>typeof e==`string`&&e.startsWith(`T`)?h(e):e);return r.encodeFunctionData(t,i)},y=(e,t,n)=>e?BigInt(Math.max((e[t]??0)-(e[n]??0),0)):0n,b=(e,t)=>{let n=e.find(e=>e.key===t);if(!n||typeof n.value!=`number`)throw Error(`Missing Tron chain parameter: ${t}`);return BigInt(n.value)},x=async e=>{let t=`${g(e)}/wallet/getchainparameters`,n=await a.httpClient.post(t,{});if(!n?.chainParameter?.length)throw Error(`Failed to fetch Tron chain parameters from wallet RPC`);return n.chainParameter},S=async(e,t)=>{let n=`${g(e)}/wallet/getaccountresource`,r=h(t),i=r.startsWith(`0x`)?`41${r.slice(2)}`:r;return await a.httpClient.post(n,{address:i,visible:!1})},C=async(e,n,r,i,a,o)=>{let s={input:a,callValue:Number(o),feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN},[c,l]=await Promise.all([e.transactionBuilder.estimateEnergy(r,``,s,[],i),e.transactionBuilder.triggerConstantContract(r,``,s,[],i)]),d=await x(n),f=b(d,`getEnergyFee`),p=b(d,`getTransactionFee`),m=await S(n,i),h=BigInt(c?.energy_required??l?.energy_used??0),g=y(m,`EnergyLimit`,`EnergyUsed`),_=(h>g?h-g:0n)*f,v=BigInt(Math.ceil((l?.transaction?.raw_data_hex?.length??0)/2)),C=y(m,`freeNetLimit`,`freeNetUsed`)+y(m,`NetLimit`,`NetUsed`),w=_+(v>C?v-C:0n)*p,T=w+w*u/10000n;return T>BigInt(1e9)?BigInt(t.TRON_DEFAULT_FEE_LIMIT_SUN):T},w=e=>{let t=e[0].map(BigInt),n=e[1][0].map(BigInt),r=e[1][1].map(BigInt),i=e[2].map(BigInt),a=e[3].map(BigInt);return{a:t,b:[[n[1],n[0]],[r[1],r[0]]],c:i,publicSignals:a}},T=(e,t)=>{let n=c.ethers.AbiCoder.defaultAbiCoder().encode([`uint16`,`uint16`,`uint16`,`uint256`],[e.tokenNumber,e.nullifierAmount,e.outputAmount,t]);return BigInt(c.ethers.keccak256(n))},E=async(e,t,n,r,o,s)=>{let l=T(o,s),u=e.map(String),d=n.map(String),f=r.map(String),p={a:u,b:[t[0].map(String),t[1].map(String)],c:d,inputs:f,verifier_id:String(l)},m=await a.httpClient.post(`${i.ENCLAVE_URL}/sign-proof`,p),{v:h,r:g,s:_}=c.ethers.Signature.from(m.signature.trim());return{v:h,r:g,s:_}},D=e=>[e.rootHashHinkal,e.erc20TokenAddresses,e.tokenIds,e.amountChanges,e.onChainCreation,e.slippageValues,e.inputNullifiers,e.outCommitments,e.encryptedOutputs,[e.feeStructure.feeToken,e.feeStructure.flatFee,e.feeStructure.variableRate],e.timeStamp,[e.stealthAddressStructure.extraRandomization,e.stealthAddressStructure.stealthAddress,e.stealthAddressStructure.H0,e.stealthAddressStructure.H1],e.rootHashAccessToken,e.calldataHash,e.publicSignalCount,e.relay,e.externalAddress,e.externalActionId,e.externalActionMetadata,[e.hinkalLogicArgs.hinkalLogicAction,e.hinkalLogicArgs.inHinkalAddress,e.hinkalLogicArgs.executeApprovalChanges,e.hinkalLogicArgs.doPreTxApproval,e.hinkalLogicArgs.useApprovalUtxoData.map(e=>[e.approvalChanges,e.externalApprovalAddresses,e.conversionInHinkalAddress])],[e.hookData.preHookContract,e.hookData.hookContract,e.hookData.preHookMetadata,e.hookData.postHookMetadata],[e.signatureData.v,e.signatureData.r,e.signatureData.s,e.signatureData.accessKey,e.signatureData.nonce,e.signatureData.ethereumAddress],e.originalSender],O=async(e,t,n,r,i=!0)=>{if(e){let{a:e,b:a,c:o,publicSignals:s}=w(t),c=await E(e,a,o,s,n,BigInt(r.externalActionId)),l={v:c.v,r:c.r,s:c.s};return i&&(t[1]=[[t[1][0][1],t[1][0][0]],[t[1][1][1],t[1][1][0]]]),l}},k=(e,r)=>{let i=0n,a=new Map;for(let o=0;o<e.length;o+=1)if(n.caseInsensitiveEqual(e[o].erc20TokenAddress,t.zeroAddress))i+=r[o];else{let t=p(e[o].erc20TokenAddress);a.set(t,(a.get(t)??0n)+r[o])}return{totalTrxValue:i,tokensNeedingApproval:a}},A=async(e,n,i,a,o,c)=>{let l=BigInt(await e.trx.getBalance(a)),u=BigInt(t.TRON_DEFAULT_FEE_LIMIT_SUN);try{u=await C(e,n,i,a,o,c)}catch(e){s.Logger.error(`Error estimating Tron deposit fee`,e)}if(l<c+u)throw Error(r.insufficientResourcesErrorCodes.INSUFFICIENT_TRON_BALANCE_FOR_FEE)},j=async(e,n,r,i)=>{let a=Array.from(i.entries());for(let i=0;i<a.length;i+=1){let[s,c]=a[i],l=await e.contract(o.ERC20ABI,s).allowance(n,r).call({from:n});if(BigInt(String(l))<c){let{transaction:i}=await e.transactionBuilder.triggerSmartContract(s,`approve(address,uint256)`,{feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN},[{type:`address`,value:r},{type:`uint256`,value:c.toString()}],n),a=await e.trx.sign(i),o=await e.trx.sendRawTransaction(a);if(!o.result){let e=o.code??`UNKNOWN`,t=o.message?Buffer.from(o.message,`hex`).toString():`no message`;throw Error(`Tron token approval failed: ${e} - ${t}`)}}}};exports.addressToHexFormat=h,exports.approveTronTokens=j,exports.assertTronSufficientBalance=A,exports.circomDataToArray=D,exports.createTronCallData=v,exports.createTronWeb=f,exports.estimateTronFeeSunWithPadding=C,exports.evmHexToTronBase58Address=p,exports.fetchTronAccountResources=S,exports.fetchTronChainParameters=x,exports.generateProofSignatureRemotely=E,exports.getAvailableResource=y,exports.getChainParameterValue=b,exports.getTronWalletRpcUrl=g,exports.getVerifierId=T,exports.normalizeTronPrivateKey=d,exports.parseZkCalldata=w,exports.reorderZkCallData=O,exports.splitTronTokensByNative=k,exports.toTronBase58IfHex=m;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`./caseInsensitive.utils.cjs`),r=require(`../../error-handling/error-codes.constants.cjs`),i=require(`../snarkjs/constant.cjs`),a=require(`../../data-structures/http/HttpClient.cjs`),o=require(`../../externalABIs/index.cjs`),s=require(`../../error-handling/logger.cjs`);let c=require(`ethers`),l=require(`tronweb`);var u=2000n,d=e=>{let t=e.trim(),n=t.startsWith(`0x`)?t.slice(2):t;if(!/^[0-9a-fA-F]{64}$/.test(n))throw Error(`Tron private key must be 32 bytes (64 hex characters), with or without 0x prefix`);return n},f=(t,n)=>{let r=e.networkRegistry[t].fetchRpcUrl,i=n?d(n):void 0,a=i?new l.TronWeb({fullHost:r,privateKey:i}):new l.TronWeb({fullHost:r});return n||a.setAddress(`T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb`),a},p=e=>e?.startsWith(`T`)?e:l.TronWeb.address.fromHex(e),m=e=>e.startsWith(`0x`)?p(e):e,h=e=>{if(e.startsWith(`0x`))return e;if(e.startsWith(`41`))return e.replace(`41`,`0x`);if(e.startsWith(`T`))return h(l.TronWeb.address.toHex(e));throw Error(`Failed to convert address to hex format`)},g=t=>{if(t===e.chainIds.tronNile)return`https://nile.trongrid.io`;if(t===e.chainIds.tronMainnet)return`https://api.trongrid.io`;throw Error(`Unsupported Tron chain for wallet RPC: ${t}`)},_=(e,t)=>e.map(e=>Array.isArray(e)?_(e,t):t(e)),v=(e,t,n)=>{let r=new c.ethers.Interface(e);if(!r.getFunction(t))throw Error(`${t} ABI is missing for Tron call data creation`);let i=_(n,e=>typeof e==`string`&&e.startsWith(`T`)?h(e):e);return r.encodeFunctionData(t,i)},y=(e,t,n)=>e?BigInt(Math.max((e[t]??0)-(e[n]??0),0)):0n,b=(e,t)=>{let n=e.find(e=>e.key===t);if(!n||typeof n.value!=`number`)throw Error(`Missing Tron chain parameter: ${t}`);return BigInt(n.value)},x=async e=>{let t=`${g(e)}/wallet/getchainparameters`,n=await a.httpClient.post(t,{});if(!n?.chainParameter?.length)throw Error(`Failed to fetch Tron chain parameters from wallet RPC`);return n.chainParameter},S=async(e,t)=>{let n=`${g(e)}/wallet/getaccountresource`,r=h(t),i=r.startsWith(`0x`)?`41${r.slice(2)}`:r;return await a.httpClient.post(n,{address:i,visible:!1})},C=async(e,n,r,i,a,o)=>{let s={input:a,callValue:Number(o),feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN},[c,l]=await Promise.all([e.transactionBuilder.estimateEnergy(r,``,s,[],i),e.transactionBuilder.triggerConstantContract(r,``,s,[],i)]),d=await x(n),f=b(d,`getEnergyFee`),p=b(d,`getTransactionFee`),m=await S(n,i),h=BigInt(c?.energy_required??l?.energy_used??0),g=y(m,`EnergyLimit`,`EnergyUsed`),_=(h>g?h-g:0n)*f,v=BigInt(Math.ceil((l?.transaction?.raw_data_hex?.length??0)/2)),C=y(m,`freeNetLimit`,`freeNetUsed`)+y(m,`NetLimit`,`NetUsed`),w=_+(v>C?v-C:0n)*p,T=w+w*u/10000n;return T>BigInt(1e9)?BigInt(t.TRON_DEFAULT_FEE_LIMIT_SUN):T},w=e=>{let t=e[0].map(BigInt),n=e[1][0].map(BigInt),r=e[1][1].map(BigInt),i=e[2].map(BigInt),a=e[3].map(BigInt);return{a:t,b:[[n[1],n[0]],[r[1],r[0]]],c:i,publicSignals:a}},T=(e,t)=>{let n=c.ethers.AbiCoder.defaultAbiCoder().encode([`uint16`,`uint16`,`uint16`,`uint256`],[e.tokenNumber,e.nullifierAmount,e.outputAmount,t]);return BigInt(c.ethers.keccak256(n))},E=async(e,t,n,r,o,s)=>{let l=T(o,s),u=e.map(String),d=n.map(String),f=r.map(String),p={a:u,b:[t[0].map(String),t[1].map(String)],c:d,inputs:f,verifier_id:String(l)},m=await a.httpClient.post(`${i.ENCLAVE_URL}/sign-proof`,p),{v:h,r:g,s:_}=c.ethers.Signature.from(m.signature.trim());return{v:h,r:g,s:_}},D=e=>[e.rootHashHinkal,e.erc20TokenAddresses,e.tokenIds,e.amountChanges,e.onChainCreation,e.slippageValues,e.inputNullifiers,e.outCommitments,e.encryptedOutputs,[e.feeStructure.feeToken,e.feeStructure.flatFee,e.feeStructure.variableRate],e.timeStamp,[e.stealthAddressStructure.extraRandomization,e.stealthAddressStructure.stealthAddress,e.stealthAddressStructure.H0,e.stealthAddressStructure.H1],e.rootHashAccessToken,e.calldataHash,e.publicSignalCount,e.relay,e.externalAddress,e.externalActionId,e.externalActionMetadata,[e.hinkalLogicArgs.hinkalLogicAction,e.hinkalLogicArgs.inHinkalAddress,e.hinkalLogicArgs.executeApprovalChanges,e.hinkalLogicArgs.doPreTxApproval,e.hinkalLogicArgs.useApprovalUtxoData.map(e=>[e.approvalChanges,e.externalApprovalAddresses,e.conversionInHinkalAddress])],[e.hookData.preHookContract,e.hookData.hookContract,e.hookData.preHookMetadata,e.hookData.postHookMetadata],[e.signatureData.v,e.signatureData.r,e.signatureData.s,e.signatureData.accessKey,e.signatureData.nonce,e.signatureData.ethereumAddress],e.originalSender],O=async(e,t,n,r,i=!0)=>{if(e){let{a:e,b:a,c:o,publicSignals:s}=w(t),c=await E(e,a,o,s,n,BigInt(r.externalActionId)),l={v:c.v,r:c.r,s:c.s};return i&&(t[1]=[[t[1][0][1],t[1][0][0]],[t[1][1][1],t[1][1][0]]]),l}},k=(e,r)=>{let i=0n,a=new Map;for(let o=0;o<e.length;o+=1)if(n.caseInsensitiveEqual(e[o].erc20TokenAddress,t.zeroAddress))i+=r[o];else{let t=p(e[o].erc20TokenAddress);a.set(t,(a.get(t)??0n)+r[o])}return{totalTrxValue:i,tokensNeedingApproval:a}},A=async(e,n,i,a,o,c)=>{let l=BigInt(await e.trx.getBalance(a)),u=BigInt(t.TRON_DEFAULT_FEE_LIMIT_SUN);try{u=await C(e,n,i,a,o,c)}catch(e){s.Logger.error(`Error estimating Tron deposit fee`,e)}if(l<c+u)throw Error(r.insufficientResourcesErrorCodes.INSUFFICIENT_TRON_BALANCE_FOR_FEE)},j=async(e,n,r,i)=>{let a=Array.from(i.entries());for(let i=0;i<a.length;i+=1){let[s,c]=a[i],l=await e.contract(o.ERC20ABI,s).allowance(n,r).call({from:n});if(BigInt(String(l))<c){let{transaction:i}=await e.transactionBuilder.triggerSmartContract(s,`approve(address,uint256)`,{feeLimit:t.TRON_DEFAULT_FEE_LIMIT_SUN},[{type:`address`,value:r},{type:`uint256`,value:c.toString()}],n),a=await e.trx.sign(i),o=await e.trx.sendRawTransaction(a);if(!o.result){let e=o.code??`UNKNOWN`,t=o.message?Buffer.from(o.message,`hex`).toString():`no message`;throw Error(`Tron token approval failed: ${e} - ${t}`)}}}};exports.addressToHexFormat=h,exports.approveTronTokens=j,exports.assertTronSufficientBalance=A,exports.circomDataToArray=D,exports.createTronCallData=v,exports.createTronWeb=f,exports.estimateTronFeeSunWithPadding=C,exports.evmHexToTronBase58Address=p,exports.fetchTronAccountResources=S,exports.fetchTronChainParameters=x,exports.generateProofSignatureRemotely=E,exports.getAvailableResource=y,exports.getChainParameterValue=b,exports.getTronWalletRpcUrl=g,exports.getVerifierId=T,exports.normalizeTronPrivateKey=d,exports.parseZkCalldata=w,exports.reorderZkCallData=O,exports.splitTronTokensByNative=k,exports.toTronBase58IfHex=m;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`),new(require(`ua-parser-js`)).UAParser;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs"),new(require(`ua-parser-js`)).UAParser;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../error-handling/error-codes.constants.cjs`);let t=require(`ethers`);var n=e=>BigInt(t.ethers.hexlify(t.ethers.randomBytes(e))),r=(e,n)=>t.ethers.formatUnits(n,e.decimals),i=(n,r)=>{let i=10**(18-n.decimals);try{return t.ethers.parseUnits(r)/BigInt(i)}catch{throw Error(e.transactionErrorCodes.DECIMALS_LIMIT)}},a=(n,r,i)=>{let a=t.ethers.formatUnits(n,r.decimals),o=BigInt(10**(18-i));try{let e=t.ethers.parseUnits(a)/o;return t.ethers.formatUnits(e,i)}catch{throw Error(e.transactionErrorCodes.DECIMALS_LIMIT)}};exports.getAmountInToken=r,exports.getAmountInWei=i,exports.getAmountWithPrecision=a,exports.randomBigInt=n;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../error-handling/error-codes.constants.cjs`);let t=require(`ethers`);var n=e=>BigInt(t.ethers.hexlify(t.ethers.randomBytes(e))),r=(e,n)=>t.ethers.formatUnits(n,e.decimals),i=(n,r)=>{let i=10**(18-n.decimals);try{return t.ethers.parseUnits(r)/BigInt(i)}catch{throw Error(e.transactionErrorCodes.DECIMALS_LIMIT)}},a=(n,r,i)=>{let a=t.ethers.formatUnits(n,r.decimals),o=BigInt(10**(18-i));try{let e=t.ethers.parseUnits(a)/o;return t.ethers.formatUnits(e,i)}catch{throw Error(e.transactionErrorCodes.DECIMALS_LIMIT)}};exports.getAmountInToken=r,exports.getAmountInWei=i,exports.getAmountWithPrecision=a,exports.randomBigInt=n;
@@ -1 +1 @@
1
- require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants/chains.constants.cjs`),t=require(`../../utils/caseInsensitive.utils.cjs`),n=require(`../../../data-structures/utxo/Utxo.cjs`),r=require(`../../utils/upToDateState.cjs`),i=require(`../../utils/cacheFunctions.cjs`),a=require(`../../utils/encodeTokenWithId.cjs`),o=require(`../../utils/solanaMint.utils.cjs`),s=require(`./getInputUtxosEnclave.cjs`),c=require(`../../utils/addresses.cjs`),l=require(`../../../API/scheduled-transactions-calls.cjs`),u=require(`../../utils/tron.utils.cjs`);var d=new(require(`async-mutex`)).Mutex,f=async(e,t)=>e.allowParallelBalanceLocalDecryption?t():d.runExclusive(t),p=e=>e?.[0]===0n&&e?.[1]===1n,m=async(e,t,n,a,o,s,c,l,u)=>f(e,async()=>{u+=1;let d=s.slice(u),{lastOutput:f,additionalEncryptedOutputs:p}=await e.utxoUtils.batchProcess(d,l,t,n),m=[...c,...p];return await r.checkAddressNotUpdated(e,a),i.setHinkalCache({lastOutput:f,encryptedOutputs:m},e,n,o),await e.utxoUtils.buildBatchProcess(m,t,n)}),h=async(e,t,n,r)=>{let{utxos:a,encryptedOutputs:o,lastOutput:c}=await s.getInputUtxosEnclave(e,n,t);return i.setHinkalCache({encryptedOutputs:o,lastOutput:c},e,n,r),a},g=async(e,t,n,r,i,a,o,s,c)=>{try{return await h(e,t,n,i)}catch{return m(e,t,n,r,i,a,o,s,c)}},_=e=>{if(Array.isArray(e))return e;if(e!==void 0)return[e]},v=async(e,t,n)=>await e.utxoUtils.batchFilterUtxosWithNullifier(t,n),y=(e,t,r,i,a,o,s,c)=>{for(e.sort((e,t)=>e.amount<=t.amount?1:-1);e.length<t||e.length>t&&e.length<6;)if(e.push(new n.Utxo({amount:0n,erc20TokenAddress:o,mintAddress:c,nullifyingKey:i,spendingPublicKey:a,isNewStyle:!0})),r)for(;e.length>6;)e.splice(e.length-1)},b=async({hinkal:e,chainId:t,passedShieldedPublicKey:n=void 0,ethAddress:a=void 0,resetCacheBefore:o=!1,allowRemoteDecryption:s=!1,useBlockedUtxos:c=!1})=>{let l=a??await e.getEthereumAddress(),u=n??e.userKeys.getShieldedPublicKey(),{userKeys:d}=e,f=e.encryptedOutputsByChain[t],h=e.nullifiersByChain[t],_=Array.from(f);o&&i.resetCache(e,t,u);let{encryptedOutputs:y,lastOutput:b}=i.getHinkalCache(e,t,u);await r.checkAddressNotUpdated(e,l);let x=b!==``,S=_.findIndex(e=>e.value===b),C=S>-1,w=!x&&S===-1,T=e.areMerkleTreeUpdatesDisabled(),E=!T&&(C||!s&&w),D=!T&&s&&w,O=!E&&!D,k=[];E?k=await m(e,d,t,l,u,_,y,b,S):D?k=await g(e,d,t,l,u,_,y,b,S):O&&(k=await e.utxoUtils.buildBatchProcess(y,d,t)),await r.checkAddressNotUpdated(e,l);let A=await v(e,k,h);return{inputUtxos:(c?A.filter(e=>e.isBlocked):A.filter(e=>!e.isBlocked)).filter(e=>!p(e.H0))}},x=async({hinkal:t,chainId:n,passedShieldedPublicKey:r=void 0,ethAddress:i=void 0,resetCacheBefore:a=!1,allowRemoteDecryption:o=!1})=>{let s=i??await t.getEthereumAddressByChain(n),d=c.hashEthereumAddress(e.isTronLike(n)?u.addressToHexFormat(s):s),{inputUtxos:f}=await b({hinkal:t,chainId:n,passedShieldedPublicKey:r,ethAddress:s,resetCacheBefore:a,allowRemoteDecryption:o,useBlockedUtxos:!0});if(!f.length)return{inputUtxos:[]};let{indexes:p}=await l.getScheduledTransactionsNullifierIndexes({hashedEthereumAddress:d,nullifiers:f.map(e=>e.getNullifier())});return{inputUtxos:p.map(e=>f[e]).filter(e=>!!e)}},S=async({hinkal:n,tokenWithId:r,minInput:i=2,sliceIfMore6:s=!0,chainId:c,passedShieldedPrivateKey:l=void 0,passedShieldedPublicKey:u=void 0,ethAddress:d=void 0,resetCacheBefore:f=!1,ensuredTokensWithId:p,allowRemoteDecryption:m=!1,useBlockedUtxos:h=!1})=>{let g=l??n.userKeys.getShieldedPrivateKey(),v=n.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,{inputUtxos:S}=h?await x({hinkal:n,chainId:c,ethAddress:d,passedShieldedPrivateKey:l,resetCacheBefore:f,allowRemoteDecryption:m}):await b({hinkal:n,tokenWithId:r,minInput:i,sliceIfMore6:s,chainId:c,passedShieldedPrivateKey:l,passedShieldedPublicKey:u,ethAddress:d,resetCacheBefore:f,allowRemoteDecryption:m}),C=_(r),w=new Map;S.forEach(e=>{let n=e.getTokenAddress(c);if(C&&!C.some(e=>t.caseInsensitiveEqual(e.erc20TokenAddress,n)))return;let r=a.encodeTokenWithId(c,{erc20TokenAddress:n,tokenId:0}),i=w.get(r)??[];w.set(r,[...i,e])}),p?.forEach(e=>{let t=a.encodeTokenWithId(c,{erc20TokenAddress:e.erc20TokenAddress,tokenId:0});w.set(t,w.get(t)??[])});for(let[t,n]of w){let r=t.split(`-`)[0],a=Number(t.split(`-`)[1]),l=e.isSolanaLike(c),u=l?r:void 0;y(n,i,s,g,v,l?o.formatMintAddress(r).compressedAddress.toLowerCase():r.toLowerCase(),a,u)}return w};exports.attemptGetInputUtxosRemotely=g,exports.getInputUtxoAndBalance=b,exports.getInputUtxoAndBalanceOfStuckUtxos=x,exports.getInputUtxoAndBalancePerToken=S,exports.getInputUtxosRemotely=h;
1
+ require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../../constants/chains.constants.cjs`),t=require(`../../utils/caseInsensitive.utils.cjs`),n=require(`../../../data-structures/utxo/Utxo.cjs`),r=require(`../../utils/upToDateState.cjs`),i=require(`../../utils/cacheFunctions.cjs`),a=require(`../../utils/encodeTokenWithId.cjs`),o=require(`../../utils/solanaMint.utils.cjs`),s=require(`./getInputUtxosEnclave.cjs`),c=require(`../../utils/addresses.cjs`),l=require(`../../../API/scheduled-transactions-calls.cjs`),u=require(`../../utils/tron.utils.cjs`);var d=new(require(`async-mutex`)).Mutex,f=async(e,t)=>e.allowParallelBalanceLocalDecryption?t():d.runExclusive(t),p=e=>e?.[0]===0n&&e?.[1]===1n,m=async(e,t,n,a,o,s,c,l,u)=>f(e,async()=>{u+=1;let d=s.slice(u),{lastOutput:f,additionalEncryptedOutputs:p}=await e.utxoUtils.batchProcess(d,l,t,n),m=[...c,...p];return await r.checkAddressNotUpdated(e,a),i.setHinkalCache({lastOutput:f,encryptedOutputs:m},e,n,o),await e.utxoUtils.buildBatchProcess(m,t,n)}),h=async(e,t,n,r)=>{let{utxos:a,encryptedOutputs:o,lastOutput:c}=await s.getInputUtxosEnclave(e,n,t);return i.setHinkalCache({encryptedOutputs:o,lastOutput:c},e,n,r),a},g=async(e,t,n,r,i,a,o,s,c)=>{try{return await h(e,t,n,i)}catch{return m(e,t,n,r,i,a,o,s,c)}},_=e=>{if(Array.isArray(e))return e;if(e!==void 0)return[e]},v=async(e,t,n)=>await e.utxoUtils.batchFilterUtxosWithNullifier(t,n),y=(e,t,r,i,a,o,s,c)=>{for(e.sort((e,t)=>e.amount<=t.amount?1:-1);e.length<t||e.length>t&&e.length<6;)if(e.push(new n.Utxo({amount:0n,erc20TokenAddress:o,mintAddress:c,nullifyingKey:i,spendingPublicKey:a,isNewStyle:!0})),r)for(;e.length>6;)e.splice(e.length-1)},b=async({hinkal:e,chainId:t,passedShieldedPublicKey:n=void 0,ethAddress:a=void 0,resetCacheBefore:o=!1,allowRemoteDecryption:s=!1,useBlockedUtxos:c=!1})=>{let l=a??await e.getEthereumAddress(),u=n??e.userKeys.getShieldedPublicKey(),{userKeys:d}=e,f=e.encryptedOutputsByChain[t],h=e.nullifiersByChain[t],_=Array.from(f);o&&i.resetCache(e,t,u);let{encryptedOutputs:y,lastOutput:b}=i.getHinkalCache(e,t,u);await r.checkAddressNotUpdated(e,l);let x=b!==``,S=_.findIndex(e=>e.value===b),C=S>-1,w=!x&&S===-1,T=e.areMerkleTreeUpdatesDisabled(),E=!T&&(C||!s&&w),D=!T&&s&&w,O=!E&&!D,k=[];E?k=await m(e,d,t,l,u,_,y,b,S):D?k=await g(e,d,t,l,u,_,y,b,S):O&&(k=await e.utxoUtils.buildBatchProcess(y,d,t)),await r.checkAddressNotUpdated(e,l);let A=await v(e,k,h);return{inputUtxos:(c?A.filter(e=>e.isBlocked):A.filter(e=>!e.isBlocked)).filter(e=>!p(e.H0))}},x=async({hinkal:t,chainId:n,passedShieldedPublicKey:r=void 0,ethAddress:i=void 0,resetCacheBefore:a=!1,allowRemoteDecryption:o=!1})=>{let s=i??await t.getEthereumAddressByChain(n),d=c.hashEthereumAddress(e.isTronLike(n)?u.addressToHexFormat(s):s),{inputUtxos:f}=await b({hinkal:t,chainId:n,passedShieldedPublicKey:r,ethAddress:s,resetCacheBefore:a,allowRemoteDecryption:o,useBlockedUtxos:!0});if(!f.length)return{inputUtxos:[]};let{indexes:p}=await l.getScheduledTransactionsNullifierIndexes({hashedEthereumAddress:d,nullifiers:f.map(e=>e.getNullifier())});return{inputUtxos:p.map(e=>f[e]).filter(e=>!!e)}},S=async({hinkal:n,tokenWithId:r,minInput:i=2,sliceIfMore6:s=!0,chainId:c,passedShieldedPrivateKey:l=void 0,passedShieldedPublicKey:u=void 0,ethAddress:d=void 0,resetCacheBefore:f=!1,ensuredTokensWithId:p,allowRemoteDecryption:m=!1,useBlockedUtxos:h=!1})=>{let g=l??n.userKeys.getShieldedPrivateKey(),v=n.userKeys.getSpendingKeyPair().pubSpendingBJJPoint,{inputUtxos:S}=h?await x({hinkal:n,chainId:c,ethAddress:d,passedShieldedPrivateKey:l,resetCacheBefore:f,allowRemoteDecryption:m}):await b({hinkal:n,tokenWithId:r,minInput:i,sliceIfMore6:s,chainId:c,passedShieldedPrivateKey:l,passedShieldedPublicKey:u,ethAddress:d,resetCacheBefore:f,allowRemoteDecryption:m}),C=_(r),w=new Map;S.forEach(e=>{let n=e.getTokenAddress(c);if(C&&!C.some(e=>t.caseInsensitiveEqual(e.erc20TokenAddress,n)))return;let r=a.encodeTokenWithId(c,{erc20TokenAddress:n,tokenId:0}),i=w.get(r)??[];w.set(r,[...i,e])}),p?.forEach(e=>{let t=a.encodeTokenWithId(c,{erc20TokenAddress:e.erc20TokenAddress,tokenId:0});w.set(t,w.get(t)??[])});for(let[t,n]of w){let r=t.split(`-`)[0],a=Number(t.split(`-`)[1]),l=e.isSolanaLike(c),u=l?r:void 0;y(n,i,s,g,v,l?o.formatMintAddress(r).compressedAddress.toLowerCase():r.toLowerCase(),a,u)}return w};exports.attemptGetInputUtxosRemotely=g,exports.getInputUtxoAndBalance=b,exports.getInputUtxoAndBalanceOfStuckUtxos=x,exports.getInputUtxoAndBalancePerToken=S,exports.getInputUtxosRemotely=h;
@@ -1 +1 @@
1
- require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants/chains.constants.cjs`),t=require(`../../../data-structures/crypto-keys/keys.cjs`),n=require(`../../../data-structures/utxo/Utxo.cjs`),r=require(`../../utils/encryptInputForEnclave.cjs`),i=require(`../../utils/solanaMint.utils.cjs`),a=require(`../../utils/customEnclaveFunctionsRegister.cjs`),o=require(`../../utils/serialize-utxos.utils.cjs`);let s=require(`ethers`),c=require(`@solana/web3.js`);var l=e=>{if(!e)return;let t=s.ethers.getBytes(e);if(t.length!==32)return;let n=new c.PublicKey(t),r=n.toBase58(),{compressedAddress:a}=i.formatMintAddress(n);return{mintBase58:r,compressedAddress:a}},u=async(e,t,n)=>{let{keyCiphertext:i,inputCiphertext:a}=await r.makeEnclaveHandshakeAndEncryptUint8Array(n);return e.getAPI().decryptUtxoEnclaveCall(t,i,a)},d=async(r,i,c)=>{let d=c.getShieldedPrivateKey(),{privateKey:f,publicKey:p}=t.UserKeys.getEncryptionKeyPair(d),m=c.getSpendingKeyPair().pubSpendingBJJPoint,h=s.ethers.solidityPacked([`uint256`,`uint256`,`uint256`],[p,f,d]),g=s.ethers.getBytes(h),_=a.getCustomUtxoDecryptor(),{utxos:v,lastOutput:y,encryptedOutputs:b}=await(_?_(i,g):u(r,i,g));return{utxos:v.map(t=>{let r=t;if(e.isSolanaLike(i)){let e=l(t.mintAddress);if(!e)throw Error(`Invalid mint address`);r={...r,erc20TokenAddress:e.compressedAddress,mintAddress:e.mintBase58}}return new n.Utxo({...o.deserializeUtxoConstructorParams(r),nullifyingKey:d,spendingPublicKey:m})}),encryptedOutputs:b,lastOutput:y}};exports.getInputUtxosEnclave=d;
1
+ require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../../constants/chains.constants.cjs`),t=require(`../../../data-structures/crypto-keys/keys.cjs`),n=require(`../../../data-structures/utxo/Utxo.cjs`),r=require(`../../utils/encryptInputForEnclave.cjs`),i=require(`../../utils/solanaMint.utils.cjs`),a=require(`../../utils/customEnclaveFunctionsRegister.cjs`),o=require(`../../utils/serialize-utxos.utils.cjs`);let s=require(`ethers`),c=require(`@solana/web3.js`);var l=e=>{if(!e)return;let t=s.ethers.getBytes(e);if(t.length!==32)return;let n=new c.PublicKey(t),r=n.toBase58(),{compressedAddress:a}=i.formatMintAddress(n);return{mintBase58:r,compressedAddress:a}},u=async(e,t,n)=>{let{keyCiphertext:i,inputCiphertext:a}=await r.makeEnclaveHandshakeAndEncryptUint8Array(n);return e.getAPI().decryptUtxoEnclaveCall(t,i,a)},d=async(r,i,c)=>{let d=c.getShieldedPrivateKey(),{privateKey:f,publicKey:p}=t.UserKeys.getEncryptionKeyPair(d),m=c.getSpendingKeyPair().pubSpendingBJJPoint,h=s.ethers.solidityPacked([`uint256`,`uint256`,`uint256`],[p,f,d]),g=s.ethers.getBytes(h),_=a.getCustomUtxoDecryptor(),{utxos:v,lastOutput:y,encryptedOutputs:b}=await(_?_(i,g):u(r,i,g));return{utxos:v.map(t=>{let r=t;if(e.isSolanaLike(i)){let e=l(t.mintAddress);if(!e)throw Error(`Invalid mint address`);r={...r,erc20TokenAddress:e.compressedAddress,mintAddress:e.mintBase58}}return new n.Utxo({...o.deserializeUtxoConstructorParams(r),nullifyingKey:d,spendingPublicKey:m})}),encryptedOutputs:b,lastOutput:y}};exports.getInputUtxosEnclave=d;
@@ -1 +1 @@
1
- require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants/vite.constants.cjs`),t=require(`../../../constants/chains.constants.cjs`),n=require(`../../utils/caseInsensitive.utils.cjs`),r=require(`../../../error-handling/error-codes.constants.cjs`),i=require(`../etherFunctions.cjs`),a=require(`../../../data-structures/utxo/Utxo.cjs`),o=require(`../../../error-handling/customErrors/ErrorWithAmount.cjs`);require(`../../../error-handling/customErrors/index.cjs`);const s=require(`../../utils/encodeTokenWithId.cjs`),c=require(`../../utils/solanaMint.utils.cjs`),l=require(`./getInputUtxoAndBalance.cjs`),u=require(`../../../data-structures/TokenDBs/PrivateTokensDB.cjs`),d=require(`../../utils/map.utils.cjs`),f=require(`../../utils/mutexes.utils.cjs`),p=require(`../../utils/erc20tokenFunctions.cjs`);let m=require(`async-mutex`);var h=async(t,r,i,a,o,s=!1,c,h=!1,g=!1)=>d.getOrCreateMapValue(t.balanceFetchingMutexByChain,r,()=>new m.Mutex).runExclusive(async()=>f.getChainBalanceFetchingMutex(r).runShared(async()=>{let{inputUtxos:d}=g?await l.getInputUtxoAndBalanceOfStuckUtxos({hinkal:t,chainId:r,ethAddress:o,passedShieldedPrivateKey:i,resetCacheBefore:s,allowRemoteDecryption:c}):await l.getInputUtxoAndBalance({hinkal:t,sliceIfMore6:!1,chainId:r,passedShieldedPrivateKey:i,passedShieldedPublicKey:a,ethAddress:o,resetCacheBefore:s,allowRemoteDecryption:c});h&&e.isExtension&&await u.privateTokensDB.fetchAndUpdatePrivateTokens(d.map(e=>e.getTokenAddress(r)).filter(e=>e!==void 0),r,o);let f=(e.isExtension?await u.privateTokensDB.getPrivateTokens(r,o):await p.getErc20TokensForChainAPI(r)).map(e=>({token:e,balance:d.reduce((t,i)=>{let a=e.erc20TokenAddress;return n.caseInsensitiveEqual(a,i.getTokenAddress(r))?t+i.amount:t},0n),timestamp:d.filter(t=>n.caseInsensitiveEqual(t.getTokenAddress(r),e.erc20TokenAddress))[0]?.timeStamp,nfts:[]})),m=new Map;return f.forEach(e=>{m.set(e.token.erc20TokenAddress.toLowerCase(),e)}),m})),g=async(e,n,u,d,f=6,m=u.map(()=>0),h=!1,g=!1)=>{let{userKeys:_}=e,v=_.getSpendingKeyPair().pubSpendingBJJPoint,y=[],b=[];if(u.length===0)return[];if(h){for(let e=0;e<u.length;e+=1){let r=t.isSolanaLike(n),i=r?u[e]:void 0,o=r?c.formatMintAddress(u[e]).compressedAddress:u[e];y.push(Array.from({length:f},()=>new a.Utxo({amount:0n,erc20TokenAddress:o,mintAddress:i,nullifyingKey:_.getShieldedPrivateKey(),spendingPublicKey:v,isNewStyle:!0})))}return y}let x=await l.getInputUtxoAndBalancePerToken({hinkal:e,sliceIfMore6:!1,ensuredTokensWithId:u.map((e,t)=>({erc20TokenAddress:u[t],tokenId:m[t]})),allowRemoteDecryption:e.generateProofRemotely,useBlockedUtxos:g,chainId:n}),S=0;for(let e=0;e<u.length;e+=1){let t=x.get(s.encodeTokenWithId(n,{erc20TokenAddress:u[e],tokenId:m[e]}))??[];if(!t)throw Error(`Missing utxos for token`);S=Math.max(t.length,S),b.push(t)}if(S===2)return b;for(let[e,s]of b.entries())if(s.length>f){let t=s.slice(0,f),a=t.reduce((e,t)=>e+t.amount,0n);if(d[e]<0n&&a<-d[e]){let t=await p.getErc20TokenFromAPI(n,u[e]);if(!t)throw Error(`Token not found`);let s=t.decimals===18?6:2,c=Number(i.getAmountWithPrecision(a,t,s));throw new o.ErrorWithAmount(c,`${r.DIRECTLY_SHOW_MESSAGE_ERROR_CODES.UTXO_LIMITATIONS}. Please try again with ${c} ${t.symbol}, including gas fees.`)}y.push(t)}else if(s.length<=f){let r=[...s],i=f-s.length;for(;i>0;){--i;let o=t.isSolanaLike(n),s=o?u[e]:void 0,l=o?c.formatMintAddress(u[e]).compressedAddress:u[e];r.push(new a.Utxo({amount:0n,erc20TokenAddress:l,mintAddress:s,nullifyingKey:_.getShieldedPrivateKey(),spendingPublicKey:v,isNewStyle:!0}))}y.push(r)}return y};exports.addPaddingToUtxos=g,exports.getShieldedBalance=h;
1
+ require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../../constants/vite.constants.cjs`),t=require(`../../../constants/chains.constants.cjs`),n=require(`../../utils/caseInsensitive.utils.cjs`),r=require(`../../../error-handling/error-codes.constants.cjs`),i=require(`../etherFunctions.cjs`),a=require(`../../../data-structures/utxo/Utxo.cjs`),o=require(`../../../error-handling/customErrors/ErrorWithAmount.cjs`);require(`../../../error-handling/customErrors/index.cjs`);const s=require(`../../utils/encodeTokenWithId.cjs`),c=require(`../../utils/solanaMint.utils.cjs`),l=require(`./getInputUtxoAndBalance.cjs`),u=require(`../../../data-structures/TokenDBs/PrivateTokensDB.cjs`),d=require(`../../utils/map.utils.cjs`),f=require(`../../utils/mutexes.utils.cjs`),p=require(`../../utils/erc20tokenFunctions.cjs`);let m=require(`async-mutex`);var h=async(t,r,i,a,o,s=!1,c,h=!1,g=!1)=>d.getOrCreateMapValue(t.balanceFetchingMutexByChain,r,()=>new m.Mutex).runExclusive(async()=>f.getChainBalanceFetchingMutex(r).runShared(async()=>{let{inputUtxos:d}=g?await l.getInputUtxoAndBalanceOfStuckUtxos({hinkal:t,chainId:r,ethAddress:o,passedShieldedPrivateKey:i,resetCacheBefore:s,allowRemoteDecryption:c}):await l.getInputUtxoAndBalance({hinkal:t,sliceIfMore6:!1,chainId:r,passedShieldedPrivateKey:i,passedShieldedPublicKey:a,ethAddress:o,resetCacheBefore:s,allowRemoteDecryption:c});h&&e.isExtension&&await u.privateTokensDB.fetchAndUpdatePrivateTokens(d.map(e=>e.getTokenAddress(r)).filter(e=>e!==void 0),r,o);let f=(e.isExtension?await u.privateTokensDB.getPrivateTokens(r,o):await p.getErc20TokensForChainAPI(r)).map(e=>({token:e,balance:d.reduce((t,i)=>{let a=e.erc20TokenAddress;return n.caseInsensitiveEqual(a,i.getTokenAddress(r))?t+i.amount:t},0n),timestamp:d.filter(t=>n.caseInsensitiveEqual(t.getTokenAddress(r),e.erc20TokenAddress))[0]?.timeStamp,nfts:[]})),m=new Map;return f.forEach(e=>{m.set(e.token.erc20TokenAddress.toLowerCase(),e)}),m})),g=async(e,n,u,d,f=6,m=u.map(()=>0),h=!1,g=!1)=>{let{userKeys:_}=e,v=_.getSpendingKeyPair().pubSpendingBJJPoint,y=[],b=[];if(u.length===0)return[];if(h){for(let e=0;e<u.length;e+=1){let r=t.isSolanaLike(n),i=r?u[e]:void 0,o=r?c.formatMintAddress(u[e]).compressedAddress:u[e];y.push(Array.from({length:f},()=>new a.Utxo({amount:0n,erc20TokenAddress:o,mintAddress:i,nullifyingKey:_.getShieldedPrivateKey(),spendingPublicKey:v,isNewStyle:!0})))}return y}let x=await l.getInputUtxoAndBalancePerToken({hinkal:e,sliceIfMore6:!1,ensuredTokensWithId:u.map((e,t)=>({erc20TokenAddress:u[t],tokenId:m[t]})),allowRemoteDecryption:e.generateProofRemotely,useBlockedUtxos:g,chainId:n}),S=0;for(let e=0;e<u.length;e+=1){let t=x.get(s.encodeTokenWithId(n,{erc20TokenAddress:u[e],tokenId:m[e]}))??[];if(!t)throw Error(`Missing utxos for token`);S=Math.max(t.length,S),b.push(t)}if(S===2)return b;for(let[e,s]of b.entries())if(s.length>f){let t=s.slice(0,f),a=t.reduce((e,t)=>e+t.amount,0n);if(d[e]<0n&&a<-d[e]){let t=await p.getErc20TokenFromAPI(n,u[e]);if(!t)throw Error(`Token not found`);let s=t.decimals===18?6:2,c=Number(i.getAmountWithPrecision(a,t,s));throw new o.ErrorWithAmount(c,`${r.DIRECTLY_SHOW_MESSAGE_ERROR_CODES.UTXO_LIMITATIONS}. Please try again with ${c} ${t.symbol}, including gas fees.`)}y.push(t)}else if(s.length<=f){let r=[...s],i=f-s.length;for(;i>0;){--i;let o=t.isSolanaLike(n),s=o?u[e]:void 0,l=o?c.formatMintAddress(u[e]).compressedAddress:u[e];r.push(new a.Utxo({amount:0n,erc20TokenAddress:l,mintAddress:s,nullifyingKey:_.getShieldedPrivateKey(),spendingPublicKey:v,isNewStyle:!0}))}y.push(r)}return y};exports.addPaddingToUtxos=g,exports.getShieldedBalance=h;
@@ -1 +1 @@
1
- require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants/chains.constants.cjs`),t=require(`../../../constants/protocol.constants.cjs`),n=require(`../../../types/ethereum-network.types.cjs`),r=require(`../../../types/token.types.cjs`),i=require(`../../utils/getContractAddress.cjs`),a=require(`../../utils/getSignerFromContract.cjs`),o=require(`./recoverTransactionFromError.cjs`);let s=require(`ethers`);var c=async(e,t,n)=>{let r=a.getSignerFromContract(n);return await n.allowance(await r.getAddress(),t.target)>=e},l=async(t,n,r,o,s)=>{if(e.getNonLocalhostChainId(n)!==e.chainIds.ethMainnet||o.symbol.toLowerCase()!==`usdt`||BigInt(await s.allowance(await a.getSignerFromContract(s).getAddress(),r.target))===0n)return;let c=await s.approve(i.getContractAddress(r),0n);c&&`hash`in c&&await t.waitForTransaction(n,c.hash)},u=async(u,d,f,p,m)=>{let h=u.getContractWithSigner(d,n.ContractType.ERC20Contract,m.erc20TokenAddress),g=m.approvalType??r.ApprovalType.Classic;if(g===r.ApprovalType.Classic||!u.isPermitterAvailable(d)){if(await c(p,f,h))return;await l(u,d,f,m,h);let t=d===e.chainIds.base?2:1;try{let e=await h.approve(i.getContractAddress(f),p);e&&`hash`in e&&await u.waitForTransaction(d,e.hash,t)}catch(e){if(!e?.transactionHash||!await o.recoverTransactionFromError(a.getProviderFromContract(h),e.transactionHash,t))throw e}return}let _=await u.getEthereumAddressByChain(d),v=u.getContract(d,n.ContractType.PermitterContract),y=await u.getContractWithFetcher(d,n.ContractType.ContractWithNonces,m.erc20TokenAddress).nonces(_),b=BigInt(Date.now()+t.permitSignatureValidFor)/1000n,x={owner:_,holder:_,spender:i.getContractAddress(v),value:p,nonce:y,deadline:b,expiry:b,allowed:!0},{v:S,r:C,s:w}=s.ethers.Signature.from(await u.signTypedData({name:await h.name(),chainId:d,version:`1`,verifyingContract:m.erc20TokenAddress},{Permit:g===r.ApprovalType.ERC20Permit?[{name:`owner`,type:`address`},{name:`spender`,type:`address`},{name:`value`,type:`uint256`},{name:`nonce`,type:`uint256`},{name:`deadline`,type:`uint256`}]:[{name:`holder`,type:`address`},{name:`spender`,type:`address`},{name:`nonce`,type:`uint256`},{name:`expiry`,type:`uint256`},{name:`allowed`,type:`bool`}]},x));if(g===r.ApprovalType.ERC20Permit){let e=new s.ethers.Interface([`function permit(address owner,address spender,uint256 value,uint256 deadline,uint8 v,bytes32 r,bytes32 s) external`]);return s.ethers.getBytesCopy(e.encodeFunctionData(`permit`,[x.owner,x.spender,x.value,x.deadline,S,s.ethers.getBytesCopy(C),s.ethers.getBytesCopy(w)])).slice(4)}let T=new s.ethers.Interface([`function permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed,uint8 v,bytes32 r,bytes32 s) external`]);return s.ethers.getBytesCopy(T.encodeFunctionData(`permit`,[x.holder,x.spender,x.nonce,x.expiry,x.allowed,S,s.ethers.getBytesCopy(C),s.ethers.getBytesCopy(w)])).slice(4)};exports.approveTokenToHinkal=u;
1
+ require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../../constants/chains.constants.cjs`),t=require(`../../../constants/protocol.constants.cjs`),n=require(`../../../types/ethereum-network.types.cjs`),r=require(`../../../types/token.types.cjs`),i=require(`../../utils/getContractAddress.cjs`),a=require(`../../utils/getSignerFromContract.cjs`),o=require(`./recoverTransactionFromError.cjs`);let s=require(`ethers`);var c=async(e,t,n)=>{let r=a.getSignerFromContract(n);return await n.allowance(await r.getAddress(),t.target)>=e},l=async(t,n,r,o,s)=>{if(e.getNonLocalhostChainId(n)!==e.chainIds.ethMainnet||o.symbol.toLowerCase()!==`usdt`||BigInt(await s.allowance(await a.getSignerFromContract(s).getAddress(),r.target))===0n)return;let c=await s.approve(i.getContractAddress(r),0n);c&&`hash`in c&&await t.waitForTransaction(n,c.hash)},u=async(u,d,f,p,m)=>{let h=u.getContractWithSigner(d,n.ContractType.ERC20Contract,m.erc20TokenAddress),g=m.approvalType??r.ApprovalType.Classic;if(g===r.ApprovalType.Classic||!u.isPermitterAvailable(d)){if(await c(p,f,h))return;await l(u,d,f,m,h);let t=d===e.chainIds.base?2:1;try{let e=await h.approve(i.getContractAddress(f),p);e&&`hash`in e&&await u.waitForTransaction(d,e.hash,t)}catch(e){if(!e?.transactionHash||!await o.recoverTransactionFromError(a.getProviderFromContract(h),e.transactionHash,t))throw e}return}let _=await u.getEthereumAddressByChain(d),v=u.getContract(d,n.ContractType.PermitterContract),y=await u.getContractWithFetcher(d,n.ContractType.ContractWithNonces,m.erc20TokenAddress).nonces(_),b=BigInt(Date.now()+t.permitSignatureValidFor)/1000n,x={owner:_,holder:_,spender:i.getContractAddress(v),value:p,nonce:y,deadline:b,expiry:b,allowed:!0},{v:S,r:C,s:w}=s.ethers.Signature.from(await u.signTypedData({name:await h.name(),chainId:d,version:`1`,verifyingContract:m.erc20TokenAddress},{Permit:g===r.ApprovalType.ERC20Permit?[{name:`owner`,type:`address`},{name:`spender`,type:`address`},{name:`value`,type:`uint256`},{name:`nonce`,type:`uint256`},{name:`deadline`,type:`uint256`}]:[{name:`holder`,type:`address`},{name:`spender`,type:`address`},{name:`nonce`,type:`uint256`},{name:`expiry`,type:`uint256`},{name:`allowed`,type:`bool`}]},x));if(g===r.ApprovalType.ERC20Permit){let e=new s.ethers.Interface([`function permit(address owner,address spender,uint256 value,uint256 deadline,uint8 v,bytes32 r,bytes32 s) external`]);return s.ethers.getBytesCopy(e.encodeFunctionData(`permit`,[x.owner,x.spender,x.value,x.deadline,S,s.ethers.getBytesCopy(C),s.ethers.getBytesCopy(w)])).slice(4)}let T=new s.ethers.Interface([`function permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed,uint8 v,bytes32 r,bytes32 s) external`]);return s.ethers.getBytesCopy(T.encodeFunctionData(`permit`,[x.holder,x.spender,x.nonce,x.expiry,x.allowed,S,s.ethers.getBytesCopy(C),s.ethers.getBytesCopy(w)])).slice(4)};exports.approveTokenToHinkal=u;
@@ -1 +1 @@
1
- require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../externalABIs/index.cjs`),t=require(`../../utils/getContractAddress.cjs`);let n=require(`ethers`);var r=(t,r)=>new n.ethers.Interface(e.ERC20ABI).encodeFunctionData(`approve`,[t,r]),i=(e,t,n,r)=>r.encodeFunctionData(`transact`,[e[0],e[1],e[2],t,n]),a=(e,t,n,r,i)=>i.encodeFunctionData(`prooflessDeposit`,[e,t,n,r]),o=(e,t,i,a,o,s)=>{let c=[];for(let a=0;a<e.length;a+=1){let o=e[a],s=t[a];o!==n.ethers.ZeroAddress&&s>0n&&c.push({to:o,value:`0x0`,data:r(i,s)})}return c.push({to:a,value:s>0n?`0x${s.toString(16)}`:`0x0`,data:o}),c},s=(e,a,o,s,c,l,u,d)=>{let f=[];for(let t=0;t<e.length;t+=1){let i=e[t],s=a[t];i!==n.ethers.ZeroAddress&&s>0n&&f.push({to:i,value:`0x0`,data:r(o,s)})}return f.push({to:t.getContractAddress(s),value:d>0n?`0x${d.toString(16)}`:`0x0`,data:i(c,l,u,s.interface)}),f},c=(e,t,n,r,i,a,o,s)=>e.encodeFunctionData(`prooflessDeposit`,[t,n,r,i,a,o,s]),l=(e,t,n,r,i,a,s,l,u,d,f,p)=>o(e,t,n,n,c(r,i,a,s,l,u,d,f),p),u=(e,n,r,i,s,c,l,u,d)=>{let f=a(s,c,l,u,i.interface);return o(e,n,r,t.getContractAddress(i),f,d)};exports.buildApproveAndDepositWrapperCalls=l,exports.buildApproveAndProoflessDepositCalls=u,exports.buildApproveAndTransactCalls=s;
1
+ require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../../externalABIs/index.cjs`),t=require(`../../utils/getContractAddress.cjs`);let n=require(`ethers`);var r=(t,r)=>new n.ethers.Interface(e.ERC20ABI).encodeFunctionData(`approve`,[t,r]),i=(e,t,n,r)=>r.encodeFunctionData(`transact`,[e[0],e[1],e[2],t,n]),a=(e,t,n,r,i)=>i.encodeFunctionData(`prooflessDeposit`,[e,t,n,r]),o=(e,t,i,a,o,s)=>{let c=[];for(let a=0;a<e.length;a+=1){let o=e[a],s=t[a];o!==n.ethers.ZeroAddress&&s>0n&&c.push({to:o,value:`0x0`,data:r(i,s)})}return c.push({to:a,value:s>0n?`0x${s.toString(16)}`:`0x0`,data:o}),c},s=(e,a,o,s,c,l,u,d)=>{let f=[];for(let t=0;t<e.length;t+=1){let i=e[t],s=a[t];i!==n.ethers.ZeroAddress&&s>0n&&f.push({to:i,value:`0x0`,data:r(o,s)})}return f.push({to:t.getContractAddress(s),value:d>0n?`0x${d.toString(16)}`:`0x0`,data:i(c,l,u,s.interface)}),f},c=(e,t,n,r,i,a,o,s)=>e.encodeFunctionData(`prooflessDeposit`,[t,n,r,i,a,o,s]),l=(e,t,n,r,i,a,s,l,u,d,f,p)=>o(e,t,n,n,c(r,i,a,s,l,u,d,f),p),u=(e,n,r,i,s,c,l,u,d)=>{let f=a(s,c,l,u,i.interface);return o(e,n,r,t.getContractAddress(i),f,d)};exports.buildApproveAndDepositWrapperCalls=l,exports.buildApproveAndProoflessDepositCalls=u,exports.buildApproveAndTransactCalls=s;
@@ -1 +1 @@
1
- require(`../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants/protocol.constants.cjs`),t=require(`../../utils/time.utils.cjs`),n=require(`../../../types/ethereum-network.types.cjs`),r=require(`../../utils/getContractAddress.cjs`),i=require(`./recoverTransactionFromError.cjs`),a=require(`./approveTokensToHinkal.cjs`),o=require(`./constructBatchCall.cjs`),s=require(`./waitForErc20Approvals.cjs`);let c=require(`ethers`);var l=async(l,u,d,f,p,m,h,g,_,v=!0,y=!1)=>{let b=Array.isArray(d)?d:[d],x=Array.isArray(f)?f:[f];if(b.length!==x.length)throw Error(`token and amount length mismatch`);let S=l.getContractWithSigner(u,n.ContractType.HinkalContract),C=await l.getEthereumAddressByChain(u),w=g??S,T=_??S,E=`transact`,D=x.findIndex(({erc20TokenAddress:t})=>t===e.zeroAddress),O=x.some(({erc20TokenAddress:t})=>t!==e.zeroAddress),k=D===-1?0n:b[D],A=l.getProviderAdapter(u),j=await A.supportsBatchCall?.(u);if(!y&&O&&j&&A.sendBatchCallsTransaction){let e=o.buildApproveAndTransactCalls(x.map(e=>e.erc20TokenAddress),b,r.getContractAddress(w),T,p,h,m,k);return await A.sendBatchCallsTransaction(u,e)}if(!y&&(await a.approveTokensToHinkal(l,u,w,x,b),O)){let e=x.map(({erc20TokenAddress:e},t)=>({tokenAddress:e,requiredAmount:b[t]}));await s.waitForErc20Approvals(l,u,C,r.getContractAddress(w),e)}let M={value:k>0n?BigInt(k).toString():void 0,gasLimit:void 0},N,P=[p[0],p[1],p[2],h,m,{...M,from:C}],{runner:F}=T;if(!(F instanceof c.ethers.AbstractSigner))throw Error(`expected signer`);if(v)try{N=Number(await T[E].estimateGas(...P))}catch(e){console.log(`hinkalDeposit: gas estimation error`,{err:e})}let I=N&&N>=0?Math.ceil(N*12/10):void 0;I&&(P[5].gasLimit=I),await t.waitLittle();let L;try{L=y?await T[E].populateTransaction(...P):await T[E](...P)}catch(e){if(!e?.transactionHash)throw e;let t=await i.recoverTransactionFromError(F.provider,e.transactionHash);if(!t)throw e;L=t}return L};exports.transactCallDirect=l;
1
+ require("../../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../../constants/protocol.constants.cjs`),t=require(`../../utils/time.utils.cjs`),n=require(`../../../types/ethereum-network.types.cjs`),r=require(`../../utils/getContractAddress.cjs`),i=require(`./recoverTransactionFromError.cjs`),a=require(`./approveTokensToHinkal.cjs`),o=require(`./constructBatchCall.cjs`),s=require(`./waitForErc20Approvals.cjs`);let c=require(`ethers`);var l=async(l,u,d,f,p,m,h,g,_,v=!0,y=!1)=>{let b=Array.isArray(d)?d:[d],x=Array.isArray(f)?f:[f];if(b.length!==x.length)throw Error(`token and amount length mismatch`);let S=l.getContractWithSigner(u,n.ContractType.HinkalContract),C=await l.getEthereumAddressByChain(u),w=g??S,T=_??S,E=`transact`,D=x.findIndex(({erc20TokenAddress:t})=>t===e.zeroAddress),O=x.some(({erc20TokenAddress:t})=>t!==e.zeroAddress),k=D===-1?0n:b[D],A=l.getProviderAdapter(u),j=await A.supportsBatchCall?.(u);if(!y&&O&&j&&A.sendBatchCallsTransaction){let e=o.buildApproveAndTransactCalls(x.map(e=>e.erc20TokenAddress),b,r.getContractAddress(w),T,p,h,m,k);return await A.sendBatchCallsTransaction(u,e)}if(!y&&(await a.approveTokensToHinkal(l,u,w,x,b),O)){let e=x.map(({erc20TokenAddress:e},t)=>({tokenAddress:e,requiredAmount:b[t]}));await s.waitForErc20Approvals(l,u,C,r.getContractAddress(w),e)}let M={value:k>0n?BigInt(k).toString():void 0,gasLimit:void 0},N,P=[p[0],p[1],p[2],h,m,{...M,from:C}],{runner:F}=T;if(!(F instanceof c.ethers.AbstractSigner))throw Error(`expected signer`);if(v)try{N=Number(await T[E].estimateGas(...P))}catch(e){console.log(`hinkalDeposit: gas estimation error`,{err:e})}let I=N&&N>=0?Math.ceil(N*12/10):void 0;I&&(P[5].gasLimit=I),await t.waitLittle();let L;try{L=y?await T[E].populateTransaction(...P):await T[E](...P)}catch(e){if(!e?.transactionHash)throw e;let t=await i.recoverTransactionFromError(F.provider,e.transactionHash);if(!t)throw e;L=t}return L};exports.transactCallDirect=l;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../utils/tron.utils.cjs`),r=require(`../utils/create-provider.cjs`),i=require(`../../constants/contracts.constants.cjs`);let a=require(`ethers`);var o=(n,r)=>{let a=e.networkRegistry[r];if(!a)throw Error(t.transactionErrorCodes.UNSUPPORTED_NETWORK);let o=i.contractMetadataMapping[n];if(!o)throw Error(`Unsupported contractType: ${n}`);return o(a.contractData)},s=(e,t,r,i)=>{let s=o(e,t);if(!s.abi)throw Error(`No ABI configured for contractType: ${e}`);if(s.address&&r)throw Error(`Overriding address is not supported for contractType: ${e}`);let c=s.address??r;if(!c)throw Error(`No contractAddress configured for contractType: ${e}`);return new a.ethers.Contract(n.addressToHexFormat(c),s.abi,i)},c=(e,t,n=void 0)=>s(t,e,n,r.createJsonRpcProvider(e));exports.getContract=s,exports.getContractMetadata=o,exports.getContractWithFetcherByChainId=c;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`),t=require(`../../error-handling/error-codes.constants.cjs`),n=require(`../utils/tron.utils.cjs`),r=require(`../utils/create-provider.cjs`),i=require(`../../constants/contracts.constants.cjs`);let a=require(`ethers`);var o=(n,r)=>{let a=e.networkRegistry[r];if(!a)throw Error(t.transactionErrorCodes.UNSUPPORTED_NETWORK);let o=i.contractMetadataMapping[n];if(!o)throw Error(`Unsupported contractType: ${n}`);return o(a.contractData)},s=(e,t,r,i)=>{let s=o(e,t);if(!s.abi)throw Error(`No ABI configured for contractType: ${e}`);if(s.address&&r)throw Error(`Overriding address is not supported for contractType: ${e}`);let c=s.address??r;if(!c)throw Error(`No contractAddress configured for contractType: ${e}`);return new a.ethers.Contract(n.addressToHexFormat(c),s.abi,i)},c=(e,t,n=void 0)=>s(t,e,n,r.createJsonRpcProvider(e));exports.getContract=s,exports.getContractMetadata=o,exports.getContractWithFetcherByChainId=c;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../utils/serialize.utils.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`./etherFunctions.cjs`),r=require(`../pre-transaction/solana.cjs`),i=require(`../../API/callOkxAPI.cjs`);let a=require(`@solana/web3.js`);var o=(e,t,n,r,i=.7)=>({amount:`${n}`,chainIndex:`501`,fromTokenAddress:e.toString(),toTokenAddress:t.toString(),userWalletAddress:r,slippagePercent:`${i}`,directRoute:!0}),s=async(s,c,l,u,d=.5,f,p)=>{if(!t.isSolanaLike(s))throw Error(`OKX is only supported on Solana`);let m=n.randomBigInt(31),h=n.getAmountInWei(c,u),{hinkalAddress:g,originalDeployer:_}=t.networkRegistry[s].contractData;if(!_)throw Error(`No original deployer configured for Solana program`);if(p&&!f)throw Error(`Proxy wallet address is required`);let v=new a.PublicKey(g),y=new a.PublicKey(_),b=p&&f?new a.PublicKey(f):r.getSwapperAccountPublicKeyFromSalt(v,y,m),{okxResponse:x,status:S}=await i.callOkxAPI({quote:o(new a.PublicKey(c.erc20TokenAddress),new a.PublicKey(l.erc20TokenAddress),h,b.toString(),d)});if(S!==`success`)throw Error(`OKX API Fetch Error`);if(x.code!==`0`)throw Error(`OKX API error: ${x.msg}`);return{outSwapAmountValue:BigInt(x.data.routerResult.toTokenAmount),okxDataValue:e.safeJsonStringify({...x,swapperAccountSalt:m.toString()})}};exports.createOKXQuote=o,exports.getOKXPrice=s;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../utils/serialize.utils.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`./etherFunctions.cjs`),r=require(`../pre-transaction/solana.cjs`),i=require(`../../API/callOkxAPI.cjs`);let a=require(`@solana/web3.js`);var o=(e,t,n,r,i=.7)=>({amount:`${n}`,chainIndex:`501`,fromTokenAddress:e.toString(),toTokenAddress:t.toString(),userWalletAddress:r,slippagePercent:`${i}`,directRoute:!0}),s=async(s,c,l,u,d=.5,f,p)=>{if(!t.isSolanaLike(s))throw Error(`OKX is only supported on Solana`);let m=n.randomBigInt(31),h=n.getAmountInWei(c,u),{hinkalAddress:g,originalDeployer:_}=t.networkRegistry[s].contractData;if(!_)throw Error(`No original deployer configured for Solana program`);if(p&&!f)throw Error(`Proxy wallet address is required`);let v=new a.PublicKey(g),y=new a.PublicKey(_),b=p&&f?new a.PublicKey(f):r.getSwapperAccountPublicKeyFromSalt(v,y,m),{okxResponse:x,status:S}=await i.callOkxAPI({quote:o(new a.PublicKey(c.erc20TokenAddress),new a.PublicKey(l.erc20TokenAddress),h,b.toString(),d)});if(S!==`success`)throw Error(`OKX API Fetch Error`);if(x.code!==`0`)throw Error(`OKX API error: ${x.msg}`);return{outSwapAmountValue:BigInt(x.data.routerResult.toTokenAmount),okxDataValue:e.safeJsonStringify({...x,swapperAccountSalt:m.toString()})}};exports.createOKXQuote=o,exports.getOKXPrice=s;
@@ -1 +1 @@
1
- require(`../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`./etherFunctions.cjs`),i=require(`../../types/ethereum-network.types.cjs`);require(`../../types/index.cjs`);const a=require(`../../error-handling/logError.cjs`);require(`../../error-handling/index.cjs`),require(`../../constants/index.cjs`);let o=require(`ethers`);var s=async(e,r,i,a)=>{let o=(await Promise.all([100,500,3e3,1e4].map(async e=>({poolAddress:await r.getPool(i,a,e),fee:e})))).filter(({poolAddress:e})=>e!==t.zeroAddress),s=await Promise.all(o.map(async t=>({poolAddress:t.poolAddress,fee:t.fee,token1Balance:await e.balanceOf(t.poolAddress)}))),c=s.map(e=>e.token1Balance).reduce((e,t)=>t>=e?t:e,0n);if(c===0n)throw Error(n.transactionErrorCodes.UNISWAP_NOT_ENOUGH_LIQUIDITY);return s.find(e=>e.token1Balance===c)},c=async(t,n,r,o,s,c)=>{try{if(!e.networkRegistry[n].quoterV2Address)throw Error(`No Quoter Contract Provided`);return(await t.getContractWithFetcherByChainId(n,i.ContractType.UniswapV3QuoterContract,e.networkRegistry[n].quoterV2Address).quoteExactInputSingle.staticCall({tokenIn:r.wrappedErc20TokenAddress??r.erc20TokenAddress,tokenOut:o.wrappedErc20TokenAddress??o.erc20TokenAddress,fee:s,amountIn:c,sqrtPriceLimitX96:0})).amountOut}catch(e){throw a.logError(e),e}},l=async(t,n,r,a)=>{try{let o=t.getContractWithFetcherByChainId(n,i.ContractType.UniswapV3FactoryContract,e.networkRegistry[n].uniswapV3FactoryAddress),{fee:c}=await s(t.getContractWithFetcherByChainId(n,i.ContractType.ERC20Contract,a.wrappedErc20TokenAddress??a.erc20TokenAddress),o,r.wrappedErc20TokenAddress??r.erc20TokenAddress,a.wrappedErc20TokenAddress??a.erc20TokenAddress);return c}catch(e){throw console.log(`Error in getUniswapFee`,e),e}},u=async(e,t,i,a,s)=>{try{let n=await l(e,t,a,s),u=o.ethers.AbiCoder.defaultAbiCoder().encode([`uint24`],[n]);return{tokenPrice:await c(e,t,a,s,n,r.getAmountInWei(a,i)),poolFee:u}}catch{throw Error(n.transactionErrorCodes.NO_UNISWAP_PRICE)}};exports.getUniswapFee=l,exports.getUniswapPrice=u,exports.getUniswapPriceHelper=c,exports.searchPoolAndFee=s;
1
+ require("../../../../_virtual/_rolldown/runtime.cjs");const e=require(`../../constants/chains.constants.cjs`),t=require(`../../constants/protocol.constants.cjs`),n=require(`../../error-handling/error-codes.constants.cjs`),r=require(`./etherFunctions.cjs`),i=require(`../../types/ethereum-network.types.cjs`);require(`../../types/index.cjs`);const a=require(`../../error-handling/logError.cjs`);require(`../../error-handling/index.cjs`),require(`../../constants/index.cjs`);let o=require(`ethers`);var s=async(e,r,i,a)=>{let o=(await Promise.all([100,500,3e3,1e4].map(async e=>({poolAddress:await r.getPool(i,a,e),fee:e})))).filter(({poolAddress:e})=>e!==t.zeroAddress),s=await Promise.all(o.map(async t=>({poolAddress:t.poolAddress,fee:t.fee,token1Balance:await e.balanceOf(t.poolAddress)}))),c=s.map(e=>e.token1Balance).reduce((e,t)=>t>=e?t:e,0n);if(c===0n)throw Error(n.transactionErrorCodes.UNISWAP_NOT_ENOUGH_LIQUIDITY);return s.find(e=>e.token1Balance===c)},c=async(t,n,r,o,s,c)=>{try{if(!e.networkRegistry[n].quoterV2Address)throw Error(`No Quoter Contract Provided`);return(await t.getContractWithFetcherByChainId(n,i.ContractType.UniswapV3QuoterContract,e.networkRegistry[n].quoterV2Address).quoteExactInputSingle.staticCall({tokenIn:r.wrappedErc20TokenAddress??r.erc20TokenAddress,tokenOut:o.wrappedErc20TokenAddress??o.erc20TokenAddress,fee:s,amountIn:c,sqrtPriceLimitX96:0})).amountOut}catch(e){throw a.logError(e),e}},l=async(t,n,r,a)=>{try{let o=t.getContractWithFetcherByChainId(n,i.ContractType.UniswapV3FactoryContract,e.networkRegistry[n].uniswapV3FactoryAddress),{fee:c}=await s(t.getContractWithFetcherByChainId(n,i.ContractType.ERC20Contract,a.wrappedErc20TokenAddress??a.erc20TokenAddress),o,r.wrappedErc20TokenAddress??r.erc20TokenAddress,a.wrappedErc20TokenAddress??a.erc20TokenAddress);return c}catch(e){throw console.log(`Error in getUniswapFee`,e),e}},u=async(e,t,i,a,s)=>{try{let n=await l(e,t,a,s),u=o.ethers.AbiCoder.defaultAbiCoder().encode([`uint24`],[n]);return{tokenPrice:await c(e,t,a,s,n,r.getAmountInWei(a,i)),poolFee:u}}catch{throw Error(n.transactionErrorCodes.NO_UNISWAP_PRICE)}};exports.getUniswapFee=l,exports.getUniswapPrice=u,exports.getUniswapPriceHelper=c,exports.searchPoolAndFee=s;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);let e=require(`async-mutex`);var t=class{readRegistryMutex=new e.Mutex;writeMutex=new e.Mutex;readers=0;writeMutexReleaser=null;async runShared(e){await this.acquireRead();try{return await e()}finally{await this.releaseRead()}}async runExclusive(e){return this.writeMutex.runExclusive(async()=>e(!0))}async acquireRead(){await this.readRegistryMutex.runExclusive(async()=>{this.readers+=1,this.readers===1&&(this.writeMutexReleaser=await this.writeMutex.acquire())})}async releaseRead(){await this.readRegistryMutex.runExclusive(async()=>{--this.readers,this.readers===0&&this.writeMutexReleaser&&(this.writeMutexReleaser(),this.writeMutexReleaser=null)})}};exports.ChainBalanceRwLock=t;
1
+ require("../../../_virtual/_rolldown/runtime.cjs");let e=require(`async-mutex`);var t=class{readRegistryMutex=new e.Mutex;writeMutex=new e.Mutex;readers=0;writeMutexReleaser=null;async runShared(e){await this.acquireRead();try{return await e()}finally{await this.releaseRead()}}async runExclusive(e){return this.writeMutex.runExclusive(async()=>e(!0))}async acquireRead(){await this.readRegistryMutex.runExclusive(async()=>{this.readers+=1,this.readers===1&&(this.writeMutexReleaser=await this.writeMutex.acquire())})}async releaseRead(){await this.readRegistryMutex.runExclusive(async()=>{--this.readers,this.readers===0&&this.writeMutexReleaser&&(this.writeMutexReleaser(),this.writeMutexReleaser=null)})}};exports.ChainBalanceRwLock=t;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`),new(require(`async-mutex`)).Mutex;
1
+ require("../../../_virtual/_rolldown/runtime.cjs"),new(require(`async-mutex`)).Mutex;
@@ -1 +1 @@
1
- require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../constants/chains.constants.cjs`),t=require(`../error-handling/error-codes.constants.cjs`),n=require(`../functions/utils/create-provider.cjs`),r=require(`../functions/web3/getContractMetadata.cjs`);let i=require(`ethers`);var a=class{signer;chainId;fetchProviders={};chainEventListener;constructor(){e.HINKAL_SUPPORTED_CHAINS.forEach(t=>{!e.isSolanaLike(t)&&!e.isTronLike(t)&&(this.fetchProviders[t]=n.createJsonRpcProvider(t))})}initConnector(){}initSigner(e){this.signer=e}async init(e){if(e&&(this.chainId=e),!this.chainId)throw Error(`No Chain Id In Provider Adapter`)}async disconnectFromConnector(){}async connectToConnector(){return 0}async waitForTransaction(e,n,r){if((await this.fetchProviders[e]?.waitForTransaction(n,r))?.status)return!0;throw Error(t.transactionErrorCodes.TRANSACTION_NOT_CONFIRMED)}async signMessage(e){if(!this.signer)throw Error(`IllegalState: no signer`);let n=await this.signer.signMessage(e);if(!n)throw Error(t.transactionErrorCodes.SIGNING_FAILED);if(n.includes(`error`))throw Error(t.transactionErrorCodes.SIGNATURE_UNSUPPORTED_PERSONAL_SIGN);return n}async signTypedData(e,t,n){return this.signer.signTypedData(e,t,n)}async switchNetwork(e){let t=this.fetchProviders[e.chainId];if(!t)throw Error(`switchNetwork illegal state: no provider`);this.signer=this.signer?.connect(t),this.chainEventListener?.onChainChanged(e.chainId)}async getAddress(){if(!this.signer)throw Error(`IllegalState: no signer`);let e=await this.signer.getAddress();if(!e)throw Error(`IllegalState`);return i.ethers.getAddress(e)}setChainEventListener(e){this.chainEventListener=e}onAccountChanged(){return this.init()}onChainChanged(e){return this.init(e)}release(){this.removeListeners()}removeListeners(){this.chainEventListener=void 0}getContract(e,t,n=void 0,i){return r.getContract(t,e,n,i)}getContractWithSigner(e,t,n=void 0){if(!this.signer)throw Error(`IllegalState: no signer`);return this.getContract(e,t,n,this.signer)}getContractWithFetcher(e,t,n=void 0){if(!this.fetchProviders[e])throw Error(`fetchProvider not initialized`);return this.getContract(e,t,n,this.fetchProviders[e])}async sendTransaction(e){if(!this.signer)throw Error(`IllegalState: no signer`);return await this.signer.sendTransaction(e)}async connectAndPatchProvider(){if(!this.signer)throw Error(`IllegalState: no signer`);let{chainId:e}=await this.signer.provider.getNetwork();return Number(e)}getChainId(){return this.chainId}isPermitterAvailable(){return!1}async getGasPrice(e){let t=(await this.fetchProviders[e]?.getFeeData())?.gasPrice;if(!t)throw Error(`Could not fetch gas price in getGasPrice`);return t}};new a;var o=()=>new a;exports.default=o;
1
+ require("../../../_virtual/_rolldown/runtime.cjs");const e=require(`../constants/chains.constants.cjs`),t=require(`../error-handling/error-codes.constants.cjs`),n=require(`../functions/utils/create-provider.cjs`),r=require(`../functions/web3/getContractMetadata.cjs`);let i=require(`ethers`);var a=class{signer;chainId;fetchProviders={};chainEventListener;constructor(){e.HINKAL_SUPPORTED_CHAINS.forEach(t=>{!e.isSolanaLike(t)&&!e.isTronLike(t)&&(this.fetchProviders[t]=n.createJsonRpcProvider(t))})}initConnector(){}initSigner(e){this.signer=e}async init(e){if(e&&(this.chainId=e),!this.chainId)throw Error(`No Chain Id In Provider Adapter`)}async disconnectFromConnector(){}async connectToConnector(){return 0}async waitForTransaction(e,n,r){if((await this.fetchProviders[e]?.waitForTransaction(n,r))?.status)return!0;throw Error(t.transactionErrorCodes.TRANSACTION_NOT_CONFIRMED)}async signMessage(e){if(!this.signer)throw Error(`IllegalState: no signer`);let n=await this.signer.signMessage(e);if(!n)throw Error(t.transactionErrorCodes.SIGNING_FAILED);if(n.includes(`error`))throw Error(t.transactionErrorCodes.SIGNATURE_UNSUPPORTED_PERSONAL_SIGN);return n}async signTypedData(e,t,n){return this.signer.signTypedData(e,t,n)}async switchNetwork(e){let t=this.fetchProviders[e.chainId];if(!t)throw Error(`switchNetwork illegal state: no provider`);this.signer=this.signer?.connect(t),this.chainEventListener?.onChainChanged(e.chainId)}async getAddress(){if(!this.signer)throw Error(`IllegalState: no signer`);let e=await this.signer.getAddress();if(!e)throw Error(`IllegalState`);return i.ethers.getAddress(e)}setChainEventListener(e){this.chainEventListener=e}onAccountChanged(){return this.init()}onChainChanged(e){return this.init(e)}release(){this.removeListeners()}removeListeners(){this.chainEventListener=void 0}getContract(e,t,n=void 0,i){return r.getContract(t,e,n,i)}getContractWithSigner(e,t,n=void 0){if(!this.signer)throw Error(`IllegalState: no signer`);return this.getContract(e,t,n,this.signer)}getContractWithFetcher(e,t,n=void 0){if(!this.fetchProviders[e])throw Error(`fetchProvider not initialized`);return this.getContract(e,t,n,this.fetchProviders[e])}async sendTransaction(e){if(!this.signer)throw Error(`IllegalState: no signer`);return await this.signer.sendTransaction(e)}async connectAndPatchProvider(){if(!this.signer)throw Error(`IllegalState: no signer`);let{chainId:e}=await this.signer.provider.getNetwork();return Number(e)}getChainId(){return this.chainId}isPermitterAvailable(){return!1}async getGasPrice(e){let t=(await this.fetchProviders[e]?.getFeeData())?.gasPrice;if(!t)throw Error(`Could not fetch gas price in getGasPrice`);return t}};new a;var o=()=>new a;exports.default=o;