@hinkal/common 0.2.22 → 0.2.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/API/proxyAccountsCalls.cjs +1 -1
- package/API/proxyAccountsCalls.mjs +13 -13
- package/README.md +63 -267
- package/constants/activity.constants.cjs +1 -1
- package/constants/activity.constants.mjs +0 -1
- package/constants/addresses.constants.cjs +1 -1
- package/constants/addresses.constants.mjs +9 -10
- package/constants/contracts.constants.cjs +1 -1
- package/constants/contracts.constants.d.ts +3 -3
- package/constants/contracts.constants.mjs +29 -29
- package/constants/server.constants.cjs +1 -1
- package/constants/server.constants.mjs +28 -29
- package/constants/tasks.constants.cjs +1 -1
- package/constants/tasks.constants.mjs +4 -5
- package/crypto/poseidon.cjs +1 -1
- package/crypto/poseidon.mjs +10 -10
- package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.cjs +1 -1
- package/data-structures/ApprovalDBs/EventsPublicApprovalsDB.mjs +24 -24
- package/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/data-structures/Hinkal/Hinkal.mjs +4 -5
- package/data-structures/Hinkal/IHinkal.d.ts +2 -2
- package/data-structures/Hinkal/hinkalApprove.cjs +1 -1
- package/data-structures/Hinkal/hinkalApprove.mjs +40 -40
- package/data-structures/Hinkal/hinkalCheckTokenRegistry.cjs +1 -1
- package/data-structures/Hinkal/hinkalCheckTokenRegistry.mjs +7 -8
- package/data-structures/Hinkal/hinkalDeposit.cjs +1 -1
- package/data-structures/Hinkal/hinkalDeposit.mjs +4 -5
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalDepositAndWithdraw.mjs +2 -3
- package/data-structures/Hinkal/hinkalDepositOnChainUtxos.cjs +1 -1
- package/data-structures/Hinkal/hinkalDepositOnChainUtxos.mjs +18 -19
- package/data-structures/Hinkal/hinkalDepostAndBridge.cjs +1 -1
- package/data-structures/Hinkal/hinkalDepostAndBridge.mjs +3 -4
- package/data-structures/Hinkal/hinkalInsideTransact.cjs +1 -1
- package/data-structures/Hinkal/hinkalInsideTransact.mjs +14 -13
- package/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
- package/data-structures/Hinkal/hinkalPrivateWallet.mjs +2 -3
- package/data-structures/Hinkal/hinkalProoflessDeposit.cjs +1 -1
- package/data-structures/Hinkal/hinkalProoflessDeposit.mjs +27 -26
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaDepositAndWithdraw.mjs +38 -39
- package/data-structures/Hinkal/hinkalSolanaSwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaSwap.mjs +16 -17
- package/data-structures/Hinkal/hinkalSolanaTransfer.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaTransfer.mjs +24 -25
- package/data-structures/Hinkal/hinkalSolanaWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalSolanaWithdraw.mjs +15 -16
- package/data-structures/Hinkal/hinkalSwap.cjs +1 -1
- package/data-structures/Hinkal/hinkalSwap.mjs +2 -3
- package/data-structures/Hinkal/hinkalTransfer.cjs +1 -1
- package/data-structures/Hinkal/hinkalTransfer.mjs +2 -3
- package/data-structures/Hinkal/hinkalWithdraw.cjs +1 -1
- package/data-structures/Hinkal/hinkalWithdraw.mjs +9 -10
- package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.cjs +1 -1
- package/data-structures/Hinkal/hinkalWithdrawStuckUtxos.mjs +8 -9
- package/data-structures/Hinkal/resetMerkleTrees.cjs +1 -1
- package/data-structures/Hinkal/resetMerkleTrees.mjs +10 -10
- package/data-structures/IndexedDB/activity-db.cjs +1 -1
- package/data-structures/IndexedDB/activity-db.mjs +39 -41
- package/data-structures/IndexedDB/balances-db.cjs +1 -1
- package/data-structures/IndexedDB/balances-db.mjs +8 -9
- package/data-structures/IndexedDB/contact-db.cjs +1 -1
- package/data-structures/IndexedDB/contact-db.mjs +21 -23
- package/data-structures/IndexedDB/signatures-db.cjs +1 -1
- package/data-structures/IndexedDB/signatures-db.mjs +2 -3
- package/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
- package/data-structures/TokenDBs/EventsPublicTokensDB.mjs +34 -36
- package/data-structures/crypto-keys/decodeUTXO.cjs +1 -1
- package/data-structures/crypto-keys/decodeUTXO.mjs +45 -45
- package/data-structures/crypto-keys/encryptDecryptUtxo.cjs +1 -1
- package/data-structures/crypto-keys/encryptDecryptUtxo.mjs +28 -27
- package/data-structures/crypto-keys/keys.cjs +1 -1
- package/data-structures/crypto-keys/keys.d.ts +2 -3
- package/data-structures/crypto-keys/keys.mjs +56 -57
- package/data-structures/event-service/evm/AbstractEventService.cjs +1 -1
- package/data-structures/event-service/evm/AbstractEventService.mjs +14 -14
- package/data-structures/event-service/evm/AbstractNullifierSnapshotService.cjs +1 -1
- package/data-structures/event-service/evm/AbstractNullifierSnapshotService.d.ts +2 -3
- package/data-structures/event-service/evm/AbstractNullifierSnapshotService.mjs +5 -4
- package/data-structures/event-service/evm/AbstractSnapshotService.cjs +1 -1
- package/data-structures/event-service/evm/AbstractSnapshotService.mjs +6 -3
- package/data-structures/event-service/evm/BlockchainEventEmitter.cjs +1 -1
- package/data-structures/event-service/evm/BlockchainEventEmitter.d.ts +1 -1
- package/data-structures/event-service/evm/BlockchainEventEmitter.mjs +22 -18
- package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.cjs +1 -1
- package/data-structures/event-service/solana/AbstractSolanaNullifierSnapshotService.mjs +2 -2
- package/data-structures/presale/PresaleContractWrapper.cjs +1 -1
- package/data-structures/presale/PresaleContractWrapper.d.ts +3 -3
- package/data-structures/presale/PresaleContractWrapper.mjs +10 -10
- package/data-structures/provider-adapter/IProviderAdapter.d.ts +7 -7
- package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.cjs +1 -1
- package/data-structures/snapshot/evm-snapshots/ClientAccessTokenSnapshotService.mjs +16 -14
- package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.cjs +1 -1
- package/data-structures/snapshot/evm-snapshots/ClientApprovalsSnapshotService.mjs +7 -5
- package/error-handling/get-error.message.cjs +1 -1
- package/error-handling/get-error.message.mjs +2 -3
- package/functions/kyc/zkMeHelper.cjs +1 -1
- package/functions/kyc/zkMeHelper.mjs +3 -3
- package/functions/pre-transaction/getFlatFees.cjs +1 -1
- package/functions/pre-transaction/getFlatFees.mjs +2 -3
- package/functions/pre-transaction/getSolanaCalldataHash.cjs +1 -1
- package/functions/pre-transaction/getSolanaCalldataHash.mjs +21 -21
- package/functions/pre-transaction/getVolatileTransferAmount.cjs +1 -1
- package/functions/pre-transaction/getVolatileTransferAmount.mjs +2 -3
- package/functions/pre-transaction/interaction-to-action.cjs +1 -1
- package/functions/pre-transaction/interaction-to-action.mjs +2 -3
- package/functions/private-wallet/emporium.helpers.cjs +1 -1
- package/functions/private-wallet/emporium.helpers.d.ts +6 -7
- package/functions/private-wallet/emporium.helpers.mjs +104 -105
- package/functions/private-wallet/emporium.swap.helpers.cjs +1 -1
- package/functions/private-wallet/emporium.swap.helpers.mjs +44 -43
- package/functions/private-wallet/opProducer.cjs +1 -1
- package/functions/private-wallet/opProducer.mjs +1 -1
- package/functions/snarkjs/common.snarkjs.cjs +1 -1
- package/functions/snarkjs/common.snarkjs.mjs +21 -18
- package/functions/snarkjs/constructSolanaZkProof.cjs +1 -1
- package/functions/snarkjs/constructSolanaZkProof.mjs +11 -12
- package/functions/utils/addresses.cjs +1 -1
- package/functions/utils/addresses.mjs +6 -6
- package/functions/utils/cacheFunctions.cjs +1 -1
- package/functions/utils/cacheFunctions.d.ts +1 -1
- package/functions/utils/cacheFunctions.mjs +55 -54
- package/functions/utils/convertEmporiumOpToCallInfo.cjs +1 -1
- package/functions/utils/convertEmporiumOpToCallInfo.mjs +5 -5
- package/functions/utils/create-provider.cjs +1 -1
- package/functions/utils/create-provider.d.ts +2 -2
- package/functions/utils/create-provider.mjs +5 -5
- package/functions/utils/encryptInputForEnclave.cjs +1 -1
- package/functions/utils/encryptInputForEnclave.mjs +9 -9
- package/functions/utils/ethers-formatter.utils.d.ts +1 -1
- package/functions/utils/external-action.utils.cjs +1 -1
- package/functions/utils/external-action.utils.mjs +2 -2
- package/functions/utils/getContractAddress.cjs +1 -0
- package/functions/utils/getContractAddress.d.ts +2 -0
- package/functions/utils/getContractAddress.mjs +9 -0
- package/functions/utils/getDataFromTransaction.cjs +1 -1
- package/functions/utils/getDataFromTransaction.d.ts +0 -11
- package/functions/utils/getDataFromTransaction.mjs +26 -50
- package/functions/utils/getRecipientInfoFromUserKeys.cjs +1 -1
- package/functions/utils/getRecipientInfoFromUserKeys.mjs +1 -1
- package/functions/utils/getSignerFromContract.cjs +1 -0
- package/functions/utils/getSignerFromContract.d.ts +3 -0
- package/functions/utils/getSignerFromContract.mjs +16 -0
- package/functions/utils/getUtxosFromReceipt.utils.cjs +1 -1
- package/functions/utils/getUtxosFromReceipt.utils.d.ts +1 -1
- package/functions/utils/getUtxosFromReceipt.utils.mjs +15 -16
- package/functions/utils/inLogicMetadata.cjs +1 -1
- package/functions/utils/inLogicMetadata.mjs +2 -2
- package/functions/utils/nftTokenFunctions.cjs +1 -1
- package/functions/utils/nftTokenFunctions.mjs +2 -3
- package/functions/utils/publicBalance.utils.cjs +1 -1
- package/functions/utils/publicBalance.utils.d.ts +1 -1
- package/functions/utils/publicBalance.utils.mjs +42 -42
- package/functions/utils/rpc-int-encode.cjs +1 -1
- package/functions/utils/rpc-int-encode.d.ts +1 -2
- package/functions/utils/rpc-int-encode.mjs +3 -6
- package/functions/utils/solanaMint.utils.cjs +1 -1
- package/functions/utils/solanaMint.utils.mjs +6 -6
- package/functions/web3/EIP-712.cjs +1 -1
- package/functions/web3/EIP-712.d.ts +4 -4
- package/functions/web3/EIP-712.mjs +1 -1
- package/functions/web3/etherFunctions.cjs +1 -1
- package/functions/web3/etherFunctions.mjs +32 -29
- package/functions/web3/events/balanceChangedCustomHandler.cjs +1 -1
- package/functions/web3/events/balanceChangedCustomHandler.mjs +4 -5
- package/functions/web3/events/balanceChangedHandler.cjs +1 -1
- package/functions/web3/events/balanceChangedHandler.mjs +2 -3
- package/functions/web3/events/getApprovedBalance.cjs +1 -1
- package/functions/web3/events/getApprovedBalance.mjs +1 -1
- package/functions/web3/events/getInputUtxosEnclave.cjs +1 -1
- package/functions/web3/events/getInputUtxosEnclave.mjs +20 -20
- package/functions/web3/events/getTransactionLogEvents.cjs +1 -1
- package/functions/web3/events/getTransactionLogEvents.d.ts +3 -3
- package/functions/web3/events/getTransactionLogEvents.mjs +6 -5
- package/functions/web3/events/index.d.ts +0 -1
- package/functions/web3/fetchSolanaMerkleTreeRootHash.cjs +1 -1
- package/functions/web3/fetchSolanaMerkleTreeRootHash.d.ts +1 -2
- package/functions/web3/fetchSolanaMerkleTreeRootHash.mjs +4 -5
- package/functions/web3/functionCalls/accessTokenCalls.cjs +1 -1
- package/functions/web3/functionCalls/accessTokenCalls.mjs +10 -11
- package/functions/web3/functionCalls/approveToken.cjs +1 -1
- package/functions/web3/functionCalls/approveToken.mjs +61 -58
- package/functions/web3/functionCalls/constructBatchCall.cjs +1 -1
- package/functions/web3/functionCalls/constructBatchCall.d.ts +2 -2
- package/functions/web3/functionCalls/constructBatchCall.mjs +10 -9
- package/functions/web3/functionCalls/estimateGasRelayer.cjs +1 -1
- package/functions/web3/functionCalls/estimateGasRelayer.mjs +1 -1
- package/functions/web3/functionCalls/inHinkalApprovalCalls.cjs +1 -1
- package/functions/web3/functionCalls/inHinkalApprovalCalls.mjs +18 -21
- package/functions/web3/functionCalls/recoverTransactionFromError.d.ts +1 -1
- package/functions/web3/functionCalls/transactCallDirect.cjs +1 -1
- package/functions/web3/functionCalls/transactCallDirect.mjs +38 -34
- package/functions/web3/functionCalls/transactCallRelayer.cjs +1 -1
- package/functions/web3/functionCalls/transactCallRelayer.mjs +8 -10
- package/functions/web3/getContractMetadata.cjs +1 -1
- package/functions/web3/getContractMetadata.d.ts +1 -1
- package/functions/web3/getContractMetadata.mjs +25 -25
- package/functions/web3/getPublicAddressBalance.cjs +1 -1
- package/functions/web3/getPublicAddressBalance.mjs +7 -6
- package/functions/web3/getTokenHolder.cjs +1 -1
- package/functions/web3/getTokenHolder.mjs +16 -15
- package/functions/web3/odosAPI.cjs +1 -1
- package/functions/web3/odosAPI.mjs +6 -7
- package/functions/web3/oneInchAPI.cjs +1 -1
- package/functions/web3/oneInchAPI.mjs +2 -3
- package/functions/web3/runContractFunction.cjs +1 -1
- package/functions/web3/runContractFunction.d.ts +6 -5
- package/functions/web3/runContractFunction.mjs +41 -45
- package/functions/web3/uniswapAPI.cjs +1 -1
- package/functions/web3/uniswapAPI.d.ts +2 -2
- package/functions/web3/uniswapAPI.mjs +23 -24
- package/index.cjs +1 -1
- package/index.mjs +336 -340
- package/package.json +3 -4
- package/providers/CustomEthersProvider.d.ts +1 -1
- package/providers/EthersProviderAdapter.cjs +1 -1
- package/providers/EthersProviderAdapter.d.ts +7 -7
- package/providers/EthersProviderAdapter.mjs +46 -44
- package/providers/SolanaProviderAdapter.d.ts +1 -1
- package/providers/WagmiProviderAdapter.cjs +1 -1
- package/providers/WagmiProviderAdapter.d.ts +5 -5
- package/providers/WagmiProviderAdapter.mjs +37 -33
- package/providers/prepareEthersHinkal.cjs +1 -1
- package/providers/prepareEthersHinkal.d.ts +2 -2
- package/providers/prepareEthersHinkal.mjs +3 -5
- package/providers/prepareWagmiHinkal.cjs +1 -1
- package/providers/prepareWagmiHinkal.mjs +3 -5
- package/types/activities.types.d.ts +2 -3
- package/types/big-intable.types.d.ts +3 -2
- package/types/ethereum-network.types.d.ts +10 -10
- package/types/transactions.types.cjs +1 -1
- package/types/transactions.types.d.ts +2 -3
- package/types/transactions.types.mjs +6 -7
- package/webworker/utxoWorker/utxoWorkerLauncher.cjs +1 -1
- package/webworker/utxoWorker/utxoWorkerLauncher.mjs +1 -1
- package/webworker/utxoWorker/utxoWorkerLogic.cjs +1 -1
- package/webworker/utxoWorker/utxoWorkerLogic.mjs +1 -1
- package/webworker/zkProofWorker/zkProofWorkerLauncher.cjs +1 -1
- package/webworker/zkProofWorker/zkProofWorkerLauncher.mjs +1 -1
- package/functions/web3/events/web3RetrieveEvents.cjs +0 -1
- package/functions/web3/events/web3RetrieveEvents.d.ts +0 -14
- package/functions/web3/events/web3RetrieveEvents.mjs +0 -9
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import "../../../types/circom-data.types.mjs";
|
|
2
2
|
import { EventType as o } from "../../../types/hinkal.types.mjs";
|
|
3
|
-
import "../../../types/transactions.types.mjs";
|
|
4
3
|
import "../../../types/activities.types.mjs";
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
detail:
|
|
4
|
+
const m = (n) => {
|
|
5
|
+
const t = o.BalanceChange, e = new CustomEvent(t, {
|
|
6
|
+
detail: n
|
|
8
7
|
});
|
|
9
8
|
typeof document < "u" ? document.dispatchEvent(e) : process?.emit("message", e, void 0);
|
|
10
9
|
};
|
|
11
10
|
export {
|
|
12
|
-
|
|
11
|
+
m as balanceChangedCustomHandler
|
|
13
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../types/circom-data.types.cjs");const n=require("../../../types/hinkal.types.cjs");require("../../../types/
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../types/circom-data.types.cjs");const n=require("../../../types/hinkal.types.cjs");require("../../../types/activities.types.cjs");const t=()=>{const e=n.EventType.BalanceChange;typeof document<"u"?document.dispatchEvent(new Event(e)):process?.emit("message",e,void 0)};exports.balanceChangedHandler=t;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import "../../../types/circom-data.types.mjs";
|
|
2
2
|
import { EventType as n } from "../../../types/hinkal.types.mjs";
|
|
3
|
-
import "../../../types/transactions.types.mjs";
|
|
4
3
|
import "../../../types/activities.types.mjs";
|
|
5
|
-
const
|
|
4
|
+
const p = () => {
|
|
6
5
|
const e = n.BalanceChange;
|
|
7
6
|
typeof document < "u" ? document.dispatchEvent(new Event(e)) : process?.emit("message", e, void 0);
|
|
8
7
|
};
|
|
9
8
|
export {
|
|
10
|
-
|
|
9
|
+
p as balanceChangedHandler
|
|
11
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("../../utils/caseInsensitive.utils.cjs"),l=require("../../utils/cacheFunctions.cjs"),k=require("async-mutex"),y=require("ethers"),I=require("../../utils/erc20tokenFunctions.cjs"),g=require("../../../data-structures/TokenDBs/PrivateTokensDB.cjs"),m=require("../../../constants/vite.constants.cjs"),h=new k.Mutex,f=(e,c,n)=>(e.forEach(t=>{t.inHinkalAddress===n&&c.push(t)}),c),v=(e,c=!1)=>{const{userKeys:n}=e,t=e.getCurrentChainId();c&&l.resetInHinkalAddressesCache(e,t,n.getShieldedPublicKey());const{approvals:o}=e,r=l.getInHinkalAddressesCache(e,t,n.getShieldedPublicKey());let i=[];return o.forEach((d,u)=>{const s=r[u];let a;s?a=BigInt(s):(a=n.getInHinkalAddress(u),r[u]=a.toString()),i=f(d.map(p=>({...p,interactionAddress:u})),i,a)}),l.setInHinkalAddressesCache(r,e,t,n.getShieldedPublicKey()),i},x=(e,c,n)=>v(e,n).filter(o=>A.caseInsensitiveEqual(o.tokenAddress,c)).sort((o,r)=>o.amount===r.amount?0:o.amount>r.amount?-1:1),E=async(e,c,n)=>{const t=e.getCurrentChainId(),o=await e.getEthereumAddress();let r=[];const i=new Map;return await h.runExclusive(async()=>{const d=v(e,c);n&&m.isExtension&&await g.privateTokensDB.fetchAndUpdatePrivateTokens(d.map(s=>s.tokenAddress),t,o),r=(m.isExtension?await g.privateTokensDB.getPrivateTokens(t,o):I.getErc20TokensForChain(t)).map(s=>({token:s,balance:d.reduce((a,p)=>A.caseInsensitiveEqual(s.erc20TokenAddress,p.tokenAddress)?a+p.amount:a,0n),timestamp:"0",nfts:[]})),r.forEach(s=>{i.set(s.token.erc20TokenAddress.toLowerCase(),s)})}),i},T=(e,c,n)=>{const{userKeys:t,approvals:o}=e,r=y.ethers.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("../../utils/caseInsensitive.utils.cjs"),l=require("../../utils/cacheFunctions.cjs"),k=require("async-mutex"),y=require("ethers"),I=require("../../utils/erc20tokenFunctions.cjs"),g=require("../../../data-structures/TokenDBs/PrivateTokensDB.cjs"),m=require("../../../constants/vite.constants.cjs"),h=new k.Mutex,f=(e,c,n)=>(e.forEach(t=>{t.inHinkalAddress===n&&c.push(t)}),c),v=(e,c=!1)=>{const{userKeys:n}=e,t=e.getCurrentChainId();c&&l.resetInHinkalAddressesCache(e,t,n.getShieldedPublicKey());const{approvals:o}=e,r=l.getInHinkalAddressesCache(e,t,n.getShieldedPublicKey());let i=[];return o.forEach((d,u)=>{const s=r[u];let a;s?a=BigInt(s):(a=n.getInHinkalAddress(u),r[u]=a.toString()),i=f(d.map(p=>({...p,interactionAddress:u})),i,a)}),l.setInHinkalAddressesCache(r,e,t,n.getShieldedPublicKey()),i},x=(e,c,n)=>v(e,n).filter(o=>A.caseInsensitiveEqual(o.tokenAddress,c)).sort((o,r)=>o.amount===r.amount?0:o.amount>r.amount?-1:1),E=async(e,c,n)=>{const t=e.getCurrentChainId(),o=await e.getEthereumAddress();let r=[];const i=new Map;return await h.runExclusive(async()=>{const d=v(e,c);n&&m.isExtension&&await g.privateTokensDB.fetchAndUpdatePrivateTokens(d.map(s=>s.tokenAddress),t,o),r=(m.isExtension?await g.privateTokensDB.getPrivateTokens(t,o):I.getErc20TokensForChain(t)).map(s=>({token:s,balance:d.reduce((a,p)=>A.caseInsensitiveEqual(s.erc20TokenAddress,p.tokenAddress)?a+p.amount:a,0n),timestamp:"0",nfts:[]})),r.forEach(s=>{i.set(s.token.erc20TokenAddress.toLowerCase(),s)})}),i},T=(e,c,n)=>{const{userKeys:t,approvals:o}=e,r=y.ethers.getAddress(c),i=o.get(r)??[],d=t.getInHinkalAddress(r);return i.reduce((s,a)=>A.caseInsensitiveEqual(a.tokenAddress,n)&&a.inHinkalAddress===d?s+a.amount:s,0n)};exports.getApprovedBalance=E;exports.getApprovedUtxos=v;exports.getApprovedUtxosForToken=x;exports.getMyApprovalAmountForInteraction=T;
|
|
@@ -43,7 +43,7 @@ const C = new h(), H = (e, d, r) => (e.forEach((t) => {
|
|
|
43
43
|
});
|
|
44
44
|
}), i;
|
|
45
45
|
}, U = (e, d, r) => {
|
|
46
|
-
const { userKeys: t, approvals: o } = e, n = y.
|
|
46
|
+
const { userKeys: t, approvals: o } = e, n = y.getAddress(d), i = o.get(n) ?? [], c = t.getInHinkalAddress(n);
|
|
47
47
|
return i.reduce((s, a) => u(a.tokenAddress, r) && a.inHinkalAddress === c ? s + a.amount : s, 0n);
|
|
48
48
|
};
|
|
49
49
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("ethers"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("ethers"),h=require("../../../data-structures/utxo/Utxo.cjs"),x=require("../../../data-structures/crypto-keys/keys.cjs"),A=require("../../utils/encryptInputForEnclave.cjs"),k=require("../../../constants/chains.constants.cjs"),U=require("../../utils/solanaMint.utils.cjs"),E=require("@solana/web3.js"),P=s=>{if(!s)return;const t=a.ethers.getBytes(s);if(t.length!==32)return;const r=new E.PublicKey(t),n=r.toBase58(),{compressedAddress:i}=U.formatMintAddress(r);return{mintBase58:n,compressedAddress:i}},q=async(s,t,r)=>{const n=r.getShieldedPrivateKey(),{privateKey:i,publicKey:d}=x.UserKeys.getEncryptionKeyPair(n),u=a.ethers.solidityPacked(["uint256","uint256","uint256"],[d,i,n]),l=a.ethers.getBytes(u),{keyCiphertext:y,inputCiphertext:p}=await A.makeEnclaveHandshakeAndEncryptUint8Array(l),{utxos:m,lastOutput:v,encryptedOutputs:g}=await s.getAPI().decryptUtxoEnclaveCall(t,y,p);return{utxos:m.map(c=>{let e=c;if(k.isSolanaLike(t)){const o=P(c.mintAddress);if(!o)throw new Error("Invalid mint address");e={...e,erc20TokenAddress:o.compressedAddress,mintAddress:o.mintBase58}}return new h.Utxo({...e,amount:BigInt(e.amount),randomization:e.randomization?BigInt(e.randomization):void 0,shieldedPrivateKey:n})}),encryptedOutputs:g,lastOutput:v}};exports.getInputUtxosEnclave=q;
|
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
import { ethers as a } from "ethers";
|
|
2
2
|
import { Utxo as A } from "../../../data-structures/utxo/Utxo.mjs";
|
|
3
|
-
import { UserKeys as
|
|
4
|
-
import { makeEnclaveHandshakeAndEncryptUint8Array as
|
|
5
|
-
import { isSolanaLike as
|
|
6
|
-
import { formatMintAddress as
|
|
7
|
-
import { PublicKey as
|
|
8
|
-
const
|
|
9
|
-
if (!
|
|
3
|
+
import { UserKeys as g } from "../../../data-structures/crypto-keys/keys.mjs";
|
|
4
|
+
import { makeEnclaveHandshakeAndEncryptUint8Array as x } from "../../utils/encryptInputForEnclave.mjs";
|
|
5
|
+
import { isSolanaLike as h } from "../../../constants/chains.constants.mjs";
|
|
6
|
+
import { formatMintAddress as k } from "../../utils/solanaMint.utils.mjs";
|
|
7
|
+
import { PublicKey as B } from "@solana/web3.js";
|
|
8
|
+
const K = (r) => {
|
|
9
|
+
if (!r)
|
|
10
10
|
return;
|
|
11
|
-
const e = a.
|
|
11
|
+
const e = a.getBytes(r);
|
|
12
12
|
if (e.length !== 32)
|
|
13
13
|
return;
|
|
14
|
-
const
|
|
15
|
-
return { mintBase58:
|
|
16
|
-
}, S = async (
|
|
17
|
-
const
|
|
14
|
+
const o = new B(e), n = o.toBase58(), { compressedAddress: s } = k(o);
|
|
15
|
+
return { mintBase58: n, compressedAddress: s };
|
|
16
|
+
}, S = async (r, e, o) => {
|
|
17
|
+
const n = o.getShieldedPrivateKey(), { privateKey: s, publicKey: c } = g.getEncryptionKeyPair(n), m = a.solidityPacked(
|
|
18
18
|
["uint256", "uint256", "uint256"],
|
|
19
|
-
[c,
|
|
20
|
-
),
|
|
19
|
+
[c, s, n]
|
|
20
|
+
), p = a.getBytes(m), { keyCiphertext: u, inputCiphertext: l } = await x(p), { utxos: y, lastOutput: f, encryptedOutputs: v } = await r.getAPI().decryptUtxoEnclaveCall(e, u, l);
|
|
21
21
|
return {
|
|
22
22
|
utxos: y.map((d) => {
|
|
23
23
|
let t = d;
|
|
24
|
-
if (
|
|
25
|
-
const
|
|
26
|
-
if (!
|
|
24
|
+
if (h(e)) {
|
|
25
|
+
const i = K(d.mintAddress);
|
|
26
|
+
if (!i)
|
|
27
27
|
throw new Error("Invalid mint address");
|
|
28
28
|
t = {
|
|
29
29
|
...t,
|
|
30
|
-
erc20TokenAddress:
|
|
31
|
-
mintAddress:
|
|
30
|
+
erc20TokenAddress: i.compressedAddress,
|
|
31
|
+
mintAddress: i.mintBase58
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
return new A({
|
|
35
35
|
...t,
|
|
36
36
|
amount: BigInt(t.amount),
|
|
37
37
|
randomization: t.randomization ? BigInt(t.randomization) : void 0,
|
|
38
|
-
shieldedPrivateKey:
|
|
38
|
+
shieldedPrivateKey: n
|
|
39
39
|
});
|
|
40
40
|
}),
|
|
41
41
|
encryptedOutputs: v,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../constants/token-data/index.cjs");const c=require("../../../constants/chains.constants.cjs");require("../../../constants/contracts.constants.cjs");require("../../../constants/kyc.constants.cjs");require("../../../constants/server.constants.cjs");require("../../../constants/vite.constants.cjs");require("../../../constants/coingecko.constants.cjs");require("../../../constants/reorg-depths.constants.cjs");require("../../../constants/addresses.constants.cjs");require("../../../constants/token.limits.constants.cjs");require("../../../constants/presale.constants.cjs");require("../../../constants/activity.constants.cjs");require("../../../constants/tasks.constants.cjs");require("../../../constants/events.constants.cjs");const a=require("ethers");require("idb-keyval");const q=require("../../utils/create-provider.cjs");require("../../../error-handling/error-codes.constants.cjs");require("../../utils/convertIntegrationProviderToExternalActionId.cjs");require("../../../types/circom-data.types.cjs");require("../../../types/
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../constants/token-data/index.cjs");const c=require("../../../constants/chains.constants.cjs");require("../../../constants/contracts.constants.cjs");require("../../../constants/kyc.constants.cjs");require("../../../constants/server.constants.cjs");require("../../../constants/vite.constants.cjs");require("../../../constants/coingecko.constants.cjs");require("../../../constants/reorg-depths.constants.cjs");require("../../../constants/addresses.constants.cjs");require("../../../constants/token.limits.constants.cjs");require("../../../constants/presale.constants.cjs");require("../../../constants/activity.constants.cjs");require("../../../constants/tasks.constants.cjs");require("../../../constants/events.constants.cjs");const a=require("ethers");require("idb-keyval");const q=require("../../utils/create-provider.cjs");require("../../../error-handling/error-codes.constants.cjs");require("../../utils/convertIntegrationProviderToExternalActionId.cjs");require("../../../types/circom-data.types.cjs");require("../../../types/activities.types.cjs");require("circomlibjs-hinkal-fork");require("../../../data-structures/crypto-keys/keys.cjs");require("../../../data-structures/http/HttpClient.cjs");require("axios");require("../../../API/getServerURL.cjs");require("libsodium-wrappers");require("process");require("buffer");require("../../../constants/save-depths.cjs");require("../../utils/mutexes.utils.cjs");require("@coral-xyz/anchor");require("@solana/web3.js");require("@solana/spl-token");require("../../utils/userAgent.cjs");require("multiformats");require("../../../API/tenderly.api.cjs");const l=(i,n)=>{const u=new a.ethers.Interface(n);try{const e=u.parseLog(i);if(!e)throw new Error("Could not parse log");return{name:e.name,args:e.args}}catch{return console.warn("Could not decode log"),null}};async function d(i,n,u,e){try{const t=c.networkRegistry[i].fetchRpcUrl;if(!t)throw new Error("RPC URL not found for the specified chain ID");const r=await q.createCustomRpcProvider(t).getTransactionReceipt(n);if(!r)throw new Error("Transaction receipt not found");if(r.status!==1)throw new Error("Transaction failed");const s=r.logs.filter(o=>o.address.toLowerCase()===u.toLowerCase()).map(o=>l(o,e)).filter(o=>o!==null);return{transactionHash:r.hash,from:r.from,to:r.to,blockNumber:r.blockNumber,events:s}}catch(t){throw console.error("Error retrieving transaction events:",t),t}}exports.getTransactionLogEvents=d;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
-
type ABIType = ConstructorParameters<typeof ethers.
|
|
2
|
+
type ABIType = ConstructorParameters<typeof ethers.Interface>[0];
|
|
3
3
|
export declare function getTransactionLogEvents(chainId: number, txHash: string, contractAddress: string, contractABI: ABIType): Promise<{
|
|
4
4
|
transactionHash: string;
|
|
5
5
|
from: string;
|
|
6
|
-
to: string;
|
|
6
|
+
to: string | null;
|
|
7
7
|
blockNumber: number;
|
|
8
8
|
events: {
|
|
9
9
|
name: string;
|
|
10
|
-
args: ethers.
|
|
10
|
+
args: ethers.Result;
|
|
11
11
|
}[];
|
|
12
12
|
}>;
|
|
13
13
|
export {};
|
|
@@ -18,7 +18,6 @@ import { createCustomRpcProvider as c } from "../../utils/create-provider.mjs";
|
|
|
18
18
|
import "../../../error-handling/error-codes.constants.mjs";
|
|
19
19
|
import "../../utils/convertIntegrationProviderToExternalActionId.mjs";
|
|
20
20
|
import "../../../types/circom-data.types.mjs";
|
|
21
|
-
import "../../../types/transactions.types.mjs";
|
|
22
21
|
import "../../../types/activities.types.mjs";
|
|
23
22
|
import "circomlibjs-hinkal-fork";
|
|
24
23
|
import "../../../data-structures/crypto-keys/keys.mjs";
|
|
@@ -37,9 +36,11 @@ import "../../utils/userAgent.mjs";
|
|
|
37
36
|
import "multiformats";
|
|
38
37
|
import "../../../API/tenderly.api.mjs";
|
|
39
38
|
const f = (e, n) => {
|
|
40
|
-
const p = new a.
|
|
39
|
+
const p = new a.Interface(n);
|
|
41
40
|
try {
|
|
42
41
|
const o = p.parseLog(e);
|
|
42
|
+
if (!o)
|
|
43
|
+
throw new Error("Could not parse log");
|
|
43
44
|
return {
|
|
44
45
|
name: o.name,
|
|
45
46
|
args: o.args
|
|
@@ -48,7 +49,7 @@ const f = (e, n) => {
|
|
|
48
49
|
return console.warn("Could not decode log"), null;
|
|
49
50
|
}
|
|
50
51
|
};
|
|
51
|
-
async function
|
|
52
|
+
async function Y(e, n, p, o) {
|
|
52
53
|
try {
|
|
53
54
|
const t = s[e].fetchRpcUrl;
|
|
54
55
|
if (!t)
|
|
@@ -60,7 +61,7 @@ async function Z(e, n, p, o) {
|
|
|
60
61
|
throw new Error("Transaction failed");
|
|
61
62
|
const m = r.logs.filter((i) => i.address.toLowerCase() === p.toLowerCase()).map((i) => f(i, o)).filter((i) => i !== null);
|
|
62
63
|
return {
|
|
63
|
-
transactionHash: r.
|
|
64
|
+
transactionHash: r.hash,
|
|
64
65
|
from: r.from,
|
|
65
66
|
to: r.to,
|
|
66
67
|
blockNumber: r.blockNumber,
|
|
@@ -71,5 +72,5 @@ async function Z(e, n, p, o) {
|
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
export {
|
|
74
|
-
|
|
75
|
+
Y as getTransactionLogEvents
|
|
75
76
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("idb-keyval");require("../../constants/chains.constants.cjs");require("@solana/web3.js");require("../../data-structures/http/HttpClient.cjs");require("../../constants/vite.constants.cjs");require("ethers");require("../../constants/token-data/index.cjs");require("../../error-handling/error-codes.constants.cjs");require("../utils/convertIntegrationProviderToExternalActionId.cjs");require("../../types/circom-data.types.cjs");require("../../types/activities.types.cjs");require("circomlibjs-hinkal-fork");require("../../data-structures/crypto-keys/keys.cjs");require("../../constants/server.constants.cjs");require("axios");require("../../API/getServerURL.cjs");require("libsodium-wrappers");require("process");require("buffer");require("../../constants/save-depths.cjs");require("../../constants/reorg-depths.constants.cjs");require("../utils/mutexes.utils.cjs");require("@coral-xyz/anchor");require("@solana/spl-token");const r=require("../utils/bytes32.utils.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/kyc.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/addresses.constants.cjs");require("../../constants/token.limits.constants.cjs");require("../../constants/presale.constants.cjs");require("../../constants/activity.constants.cjs");require("../../constants/tasks.constants.cjs");require("../../constants/events.constants.cjs");require("../utils/userAgent.cjs");require("multiformats");require("../../API/tenderly.api.cjs");const o=async(i,u)=>{const e=await i.account.merkle.fetch(u,"confirmed"),q=Number(r.convertBytes32ToBigInt(e.rootIndex)),t=e.roots.at(q-1);return r.convertBytes32ToBigInt(t)};exports.fetchSolanaMerkleTreeRootHash=o;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { Program } from '@coral-xyz/anchor';
|
|
2
2
|
import { PublicKey } from '@solana/web3.js';
|
|
3
|
-
|
|
4
|
-
export declare const fetchSolanaMerkleTreeRootHash: (hinkalProgram: Program, merkleTreePublicKey: PublicKey) => Promise<ethers.BigNumber>;
|
|
3
|
+
export declare const fetchSolanaMerkleTreeRootHash: (hinkalProgram: Program, merkleTreePublicKey: PublicKey) => Promise<bigint>;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { ethers as e } from "ethers";
|
|
2
1
|
import "idb-keyval";
|
|
3
2
|
import "../../constants/chains.constants.mjs";
|
|
4
3
|
import "@solana/web3.js";
|
|
5
4
|
import "../../data-structures/http/HttpClient.mjs";
|
|
6
5
|
import "../../constants/vite.constants.mjs";
|
|
6
|
+
import "ethers";
|
|
7
7
|
import "../../constants/token-data/index.mjs";
|
|
8
8
|
import "../../error-handling/error-codes.constants.mjs";
|
|
9
9
|
import "../utils/convertIntegrationProviderToExternalActionId.mjs";
|
|
10
10
|
import "../../types/circom-data.types.mjs";
|
|
11
|
-
import "../../types/transactions.types.mjs";
|
|
12
11
|
import "../../types/activities.types.mjs";
|
|
13
12
|
import "circomlibjs-hinkal-fork";
|
|
14
13
|
import "../../data-structures/crypto-keys/keys.mjs";
|
|
@@ -36,10 +35,10 @@ import "../../constants/events.constants.mjs";
|
|
|
36
35
|
import "../utils/userAgent.mjs";
|
|
37
36
|
import "multiformats";
|
|
38
37
|
import "../../API/tenderly.api.mjs";
|
|
39
|
-
const
|
|
38
|
+
const O = async (r, m) => {
|
|
40
39
|
const o = await r.account.merkle.fetch(m, "confirmed"), i = Number(t(o.rootIndex)), p = o.roots.at(i - 1);
|
|
41
|
-
return
|
|
40
|
+
return t(p);
|
|
42
41
|
};
|
|
43
42
|
export {
|
|
44
|
-
|
|
43
|
+
O as fetchSolanaMerkleTreeRootHash
|
|
45
44
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../types/circom-data.types.cjs");const r=require("../../../types/ethereum-network.types.cjs");require("../../../types/
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../../types/circom-data.types.cjs");const r=require("../../../types/ethereum-network.types.cjs");require("../../../types/activities.types.cjs");const a=require("../../../constants/chains.constants.cjs"),l=require("../../pre-transaction/solana.cjs"),g=require("@solana/web3.js"),i=async e=>(await e.getContractWithFetcher(r.ContractType.AccessTokenContract).hasToken(e.userKeys.getAccessKey()))[0],k=async e=>{const{hinkalIdl:c,originalDeployer:n}=a.networkRegistry[e.getCurrentChainId()].contractData;if(!c||!n)throw new Error("missing hinkal data");const o=new g.PublicKey(n),t=e.getSolanaProgram(c),s=l.getAccessTokenAccountPublicKey(BigInt(e.userKeys.getAccessKey()),t.programId,o);if(!await t.provider.connection.getAccountInfo(s))return!1;const{isAdded:u}=await t.account.accesskeyAccount.fetch(s);return u},y=async e=>a.isSolanaLike(e.getCurrentChainId())?k(e):i(e),T=async(e,c,n)=>{const o=e.getContractWithSigner(r.ContractType.AccessTokenContract),t={value:0n,...n&&{type:0}};return await o.addToken(c,t)};exports.checkHinkalAccessToken=y;exports.checkHinkalAccessTokenEVM=i;exports.checkHinkalAccessTokenSolana=k;exports.mintAccessToken=T;
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import "../../../types/circom-data.types.mjs";
|
|
2
2
|
import { ContractType as r } from "../../../types/ethereum-network.types.mjs";
|
|
3
|
-
import "../../../types/transactions.types.mjs";
|
|
4
3
|
import "../../../types/activities.types.mjs";
|
|
5
4
|
import { networkRegistry as i, isSolanaLike as g } from "../../../constants/chains.constants.mjs";
|
|
6
5
|
import { getAccessTokenAccountPublicKey as k } from "../../pre-transaction/solana.mjs";
|
|
7
6
|
import { PublicKey as u } from "@solana/web3.js";
|
|
8
|
-
const y = async (c) => (await c.getContractWithFetcher(r.AccessTokenContract).
|
|
9
|
-
const { hinkalIdl:
|
|
10
|
-
if (!
|
|
7
|
+
const y = async (c) => (await c.getContractWithFetcher(r.AccessTokenContract).hasToken(c.userKeys.getAccessKey()))[0], l = async (c) => {
|
|
8
|
+
const { hinkalIdl: e, originalDeployer: t } = i[c.getCurrentChainId()].contractData;
|
|
9
|
+
if (!e || !t)
|
|
11
10
|
throw new Error("missing hinkal data");
|
|
12
|
-
const o = new u(
|
|
11
|
+
const o = new u(t), n = c.getSolanaProgram(e), s = k(
|
|
13
12
|
BigInt(c.userKeys.getAccessKey()),
|
|
14
13
|
n.programId,
|
|
15
14
|
o
|
|
@@ -18,16 +17,16 @@ const y = async (c) => (await c.getContractWithFetcher(r.AccessTokenContract).fu
|
|
|
18
17
|
return !1;
|
|
19
18
|
const { isAdded: a } = await n.account.accesskeyAccount.fetch(s);
|
|
20
19
|
return a;
|
|
21
|
-
},
|
|
20
|
+
}, C = async (c) => g(c.getCurrentChainId()) ? l(c) : y(c), w = async (c, e, t) => {
|
|
22
21
|
const o = c.getContractWithSigner(r.AccessTokenContract), n = {
|
|
23
22
|
value: 0n,
|
|
24
|
-
...
|
|
23
|
+
...t && { type: 0 }
|
|
25
24
|
};
|
|
26
|
-
return await o.addToken(
|
|
25
|
+
return await o.addToken(e, n);
|
|
27
26
|
};
|
|
28
27
|
export {
|
|
29
|
-
|
|
28
|
+
C as checkHinkalAccessToken,
|
|
30
29
|
y as checkHinkalAccessTokenEVM,
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
l as checkHinkalAccessTokenSolana,
|
|
31
|
+
w as mintAccessToken
|
|
33
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("ethers"),y=require("../../../constants/chains.constants.cjs"),A=require("../../../constants/protocol.constants.cjs"),d=require("../../../types/token.types.cjs"),l=require("../../../types/ethereum-network.types.cjs"),F=require("./recoverTransactionFromError.cjs"),u=require("../../utils/getSignerFromContract.cjs"),b=async(e,a,o)=>{const t=u.getSignerFromContract(o);return await o.allowance(await t.getAddress(),a.target)>=e},x=async(e,a,o,t)=>{if(y.getNonLocalhostChainId(e.getCurrentChainId())!==y.chainIds.ethMainnet||o.symbol.toLowerCase()!=="usdt"||BigInt(await t.allowance(await u.getSignerFromContract(t).getAddress(),a.target))===0n)return;const c=await t.approve(a.target,0n);c&&"hash"in c&&await e.waitForTransaction(c.hash)},S=async(e,a,o,t)=>{const i=e.getContractWithSigner(l.ContractType.ERC20Contract,t.erc20TokenAddress),c=t.approvalType??d.ApprovalType.Classic;if(c===d.ApprovalType.Classic||!e.isPermitterAvailable()){if(await b(o,a,i))return;await x(e,a,t,i);const v=e.getCurrentChainId()===y.chainIds.base?2:1;try{const s=await i.approve(a.target,o);s&&"hash"in s&&await e.waitForTransaction(s.hash,v)}catch(s){if(!s?.transactionHash||!await F.recoverTransactionFromError(u.getProviderFromContract(i),s.transactionHash,v))throw s}return}const p=await e.getEthereumAddress(),f=e.getContract(l.ContractType.PermitterContract),T=await e.getContractWithFetcher(l.ContractType.ContractWithNonces,t.erc20TokenAddress).nonces(p),g=BigInt(Date.now()+A.permitSignatureValidFor)/1000n,r={owner:p,holder:p,spender:f.target,value:o,nonce:T,deadline:g,expiry:g,allowed:!0},{v:w,r:m,s:C}=n.ethers.Signature.from(await e.signTypedData({name:await i.name(),chainId:e.getCurrentChainId(),version:"1",verifyingContract:t.erc20TokenAddress},{Permit:c===d.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"}]},r));if(c===d.ApprovalType.ERC20Permit){const h=new n.ethers.Interface(["function permit(address owner,address spender,uint256 value,uint256 deadline,uint8 v,bytes32 r,bytes32 s) external"]);return n.ethers.getBytesCopy(h.encodeFunctionData("permit",[r.owner,r.spender,r.value,r.deadline,w,n.ethers.getBytesCopy(m),n.ethers.getBytesCopy(C)])).slice(4)}const I=new n.ethers.Interface(["function permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed,uint8 v,bytes32 r,bytes32 s) external"]);return n.ethers.getBytesCopy(I.encodeFunctionData("permit",[r.holder,r.spender,r.nonce,r.expiry,r.allowed,w,n.ethers.getBytesCopy(m),n.ethers.getBytesCopy(C)])).slice(4)};exports.approveTokenToHinkal=S;
|
|
@@ -1,60 +1,63 @@
|
|
|
1
|
-
import { ethers as
|
|
2
|
-
import { chainIds as
|
|
1
|
+
import { ethers as n } from "ethers";
|
|
2
|
+
import { chainIds as f, getNonLocalhostChainId as x } from "../../../constants/chains.constants.mjs";
|
|
3
3
|
import { permitSignatureValidFor as A } from "../../../constants/protocol.constants.mjs";
|
|
4
|
-
import { ApprovalType as
|
|
4
|
+
import { ApprovalType as d } from "../../../types/token.types.mjs";
|
|
5
5
|
import { ContractType as l } from "../../../types/ethereum-network.types.mjs";
|
|
6
6
|
import { recoverTransactionFromError as b } from "./recoverTransactionFromError.mjs";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
import { getProviderFromContract as F, getSignerFromContract as v } from "../../utils/getSignerFromContract.mjs";
|
|
8
|
+
const B = async (e, a, o) => {
|
|
9
|
+
const t = v(o);
|
|
10
|
+
return await o.allowance(await t.getAddress(), a.target) >= e;
|
|
11
|
+
}, P = async (e, a, o, t) => {
|
|
12
|
+
if (x(e.getCurrentChainId()) !== f.ethMainnet || o.symbol.toLowerCase() !== "usdt" || BigInt(
|
|
13
|
+
await t.allowance(await v(t).getAddress(), a.target)
|
|
12
14
|
) === 0n)
|
|
13
15
|
return;
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
},
|
|
17
|
-
const
|
|
18
|
-
if (
|
|
19
|
-
if (await
|
|
16
|
+
const c = await t.approve(a.target, 0n);
|
|
17
|
+
c && "hash" in c && await e.waitForTransaction(c.hash);
|
|
18
|
+
}, V = async (e, a, o, t) => {
|
|
19
|
+
const i = e.getContractWithSigner(l.ERC20Contract, t.erc20TokenAddress), c = t.approvalType ?? d.Classic;
|
|
20
|
+
if (c === d.Classic || !e.isPermitterAvailable()) {
|
|
21
|
+
if (await B(o, a, i))
|
|
20
22
|
return;
|
|
21
|
-
await
|
|
22
|
-
const
|
|
23
|
+
await P(e, a, t, i);
|
|
24
|
+
const C = e.getCurrentChainId() === f.base ? 2 : 1;
|
|
23
25
|
try {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
const s = await i.approve(
|
|
27
|
+
a.target,
|
|
28
|
+
o
|
|
27
29
|
// { gasLimit: 10000000 }
|
|
28
30
|
);
|
|
29
|
-
|
|
30
|
-
} catch (
|
|
31
|
-
if (!
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
s && "hash" in s && await e.waitForTransaction(s.hash, C);
|
|
32
|
+
} catch (s) {
|
|
33
|
+
if (!s?.transactionHash || !await b(
|
|
34
|
+
F(i),
|
|
35
|
+
s.transactionHash,
|
|
36
|
+
C
|
|
37
|
+
))
|
|
38
|
+
throw s;
|
|
36
39
|
}
|
|
37
40
|
return;
|
|
38
41
|
}
|
|
39
|
-
const p = await e.getEthereumAddress(),
|
|
42
|
+
const p = await e.getEthereumAddress(), h = e.getContract(l.PermitterContract), I = await e.getContractWithFetcher(l.ContractWithNonces, t.erc20TokenAddress).nonces(p), m = BigInt(Date.now() + A) / 1000n, r = {
|
|
40
43
|
owner: p,
|
|
41
44
|
holder: p,
|
|
42
|
-
spender:
|
|
43
|
-
value:
|
|
44
|
-
nonce:
|
|
45
|
-
deadline:
|
|
46
|
-
expiry:
|
|
45
|
+
spender: h.target,
|
|
46
|
+
value: o,
|
|
47
|
+
nonce: I,
|
|
48
|
+
deadline: m,
|
|
49
|
+
expiry: m,
|
|
47
50
|
allowed: !0
|
|
48
|
-
}, { v: y, r:
|
|
51
|
+
}, { v: y, r: w, s: u } = n.Signature.from(
|
|
49
52
|
await e.signTypedData(
|
|
50
53
|
{
|
|
51
|
-
name: await
|
|
54
|
+
name: await i.name(),
|
|
52
55
|
chainId: e.getCurrentChainId(),
|
|
53
56
|
version: "1",
|
|
54
|
-
verifyingContract:
|
|
57
|
+
verifyingContract: t.erc20TokenAddress
|
|
55
58
|
},
|
|
56
59
|
{
|
|
57
|
-
Permit:
|
|
60
|
+
Permit: c === d.ERC20Permit ? [
|
|
58
61
|
{
|
|
59
62
|
name: "owner",
|
|
60
63
|
type: "address"
|
|
@@ -98,41 +101,41 @@ const F = async (e, n, s) => BigInt(
|
|
|
98
101
|
}
|
|
99
102
|
]
|
|
100
103
|
},
|
|
101
|
-
|
|
104
|
+
r
|
|
102
105
|
)
|
|
103
106
|
);
|
|
104
|
-
if (
|
|
105
|
-
const
|
|
107
|
+
if (c === d.ERC20Permit) {
|
|
108
|
+
const g = new n.Interface([
|
|
106
109
|
"function permit(address owner,address spender,uint256 value,uint256 deadline,uint8 v,bytes32 r,bytes32 s) external"
|
|
107
110
|
]);
|
|
108
|
-
return
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
111
|
+
return n.getBytesCopy(
|
|
112
|
+
g.encodeFunctionData("permit", [
|
|
113
|
+
r.owner,
|
|
114
|
+
r.spender,
|
|
115
|
+
r.value,
|
|
116
|
+
r.deadline,
|
|
114
117
|
y,
|
|
115
|
-
|
|
116
|
-
|
|
118
|
+
n.getBytesCopy(w),
|
|
119
|
+
n.getBytesCopy(u)
|
|
117
120
|
])
|
|
118
121
|
).slice(4);
|
|
119
122
|
}
|
|
120
|
-
const
|
|
123
|
+
const T = new n.Interface([
|
|
121
124
|
"function permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed,uint8 v,bytes32 r,bytes32 s) external"
|
|
122
125
|
]);
|
|
123
|
-
return
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
126
|
+
return n.getBytesCopy(
|
|
127
|
+
T.encodeFunctionData("permit", [
|
|
128
|
+
r.holder,
|
|
129
|
+
r.spender,
|
|
130
|
+
r.nonce,
|
|
131
|
+
r.expiry,
|
|
132
|
+
r.allowed,
|
|
130
133
|
y,
|
|
131
|
-
|
|
132
|
-
|
|
134
|
+
n.getBytesCopy(w),
|
|
135
|
+
n.getBytesCopy(u)
|
|
133
136
|
])
|
|
134
137
|
).slice(4);
|
|
135
138
|
};
|
|
136
139
|
export {
|
|
137
|
-
|
|
140
|
+
V as approveTokenToHinkal
|
|
138
141
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("ethers"),f=require("../../../externalABIs/index.cjs"),v=(e,t)=>new i.ethers.Interface(f.ERC20ABI).encodeFunctionData("approve",[e,t]),g=(e,t,n,r)=>r.encodeFunctionData("transact",[e[0],e[1],e[2],t,n]),h=async(e,t,n,r,u,l,p,o)=>{const s=[];for(let a=0;a<e.length;a+=1){const c=e[a],d=t[a];c!==i.ethers.ZeroAddress&&d>0n&&s.push({to:c,value:"0x0",data:v(n,d)})}const A=await r.getAddress();return s.push({to:A,value:o>0n?`0x${o.toString(16)}`:"0x0",data:g(u,l,p,r.interface)}),s};exports.buildApproveAndTransactCalls=h;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
2
|
import { CircomDataBaseType, DimDataType } from '../../../types/circom-data.types';
|
|
3
3
|
import { NewZkCallDataType } from '../../../types/snark.types';
|
|
4
4
|
import { Call } from '../../../types/eip5792.types';
|
|
5
|
-
export declare const buildApproveAndTransactCalls: (tokenAddresses: string[], amounts: bigint[], spenderAddress: string, contractForTransaction: Contract, zkCallData: NewZkCallDataType, dimData: DimDataType, circomData: CircomDataBaseType, ethValue: bigint) => Call[]
|
|
5
|
+
export declare const buildApproveAndTransactCalls: (tokenAddresses: string[], amounts: bigint[], spenderAddress: string, contractForTransaction: ethers.Contract, zkCallData: NewZkCallDataType, dimData: DimDataType, circomData: CircomDataBaseType, ethValue: bigint) => Promise<Call[]>;
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { ethers as i } from "ethers";
|
|
2
|
-
import { ERC20ABI as
|
|
3
|
-
const m = (t,
|
|
2
|
+
import { ERC20ABI as A } from "../../../externalABIs/index.mjs";
|
|
3
|
+
const m = (t, e) => new i.Interface(A).encodeFunctionData("approve", [t, e]), v = (t, e, n, o) => o.encodeFunctionData("transact", [t[0], t[1], t[2], e, n]), h = async (t, e, n, o, p, u, f, c) => {
|
|
4
4
|
const r = [];
|
|
5
5
|
for (let a = 0; a < t.length; a += 1) {
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
to:
|
|
6
|
+
const s = t[a], d = e[a];
|
|
7
|
+
s !== i.ZeroAddress && d > 0n && r.push({
|
|
8
|
+
to: s,
|
|
9
9
|
value: "0x0",
|
|
10
|
-
data: m(
|
|
10
|
+
data: m(n, d)
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
|
+
const l = await o.getAddress();
|
|
13
14
|
return r.push({
|
|
14
|
-
to:
|
|
15
|
-
value:
|
|
16
|
-
data: v(p, u,
|
|
15
|
+
to: l,
|
|
16
|
+
value: c > 0n ? `0x${c.toString(16)}` : "0x0",
|
|
17
|
+
data: v(p, u, f, o.interface)
|
|
17
18
|
}), r;
|
|
18
19
|
};
|
|
19
20
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("ethers
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("ethers"),g=require("../../private-wallet/emporium.helpers.cjs"),i=require("../../../constants/chains.constants.cjs"),m=async(r,t,c,s,n)=>{const{hinkalAddress:u,hinkalABI:h}=i.networkRegistry[r.getCurrentChainId()].contractData,d=new a.ethers.JsonRpcProvider(i.networkRegistry[r.getCurrentChainId()].fetchRpcUrl),l=new a.ethers.Contract(u,h,d),y="transact";let e={from:s.relay};if(n){const o=g.recoverAuthorizationData(n);o&&(e={...e,authorizationList:[o],type:4})}return await l[y].estimateGas(t[0],t[1],t[2],c,s,e)};exports.estimateGasRelayer=m;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ethers as a } from "ethers
|
|
1
|
+
import { ethers as a } from "ethers";
|
|
2
2
|
import { recoverAuthorizationData as u } from "../../private-wallet/emporium.helpers.mjs";
|
|
3
3
|
import { networkRegistry as i } from "../../../constants/chains.constants.mjs";
|
|
4
4
|
const C = async (e, t, c, o, s) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../../../types/ethereum-network.types.cjs"),s=async(t,a)=>{const r=await t.getContractWithFetcher(c.ContractType.HinkalContract).getInteractionApprovals.staticCall(a);if(!r)throw Error("getInteractionApprovals fail: no approved utxos fetched");return r.map(n=>{const o=n;return{amount:o.amount,inHinkalAddress:o.inHinkalAddress,tokenAddress:o.tokenAddress}})},l=async(t,a,e)=>{const r=t.getContractWithFetcher(c.ContractType.HinkalContract),i=t.getContractWithFetcher(c.ContractType.ERC20Contract,a),n=await r.getAddress(),o=await i.allowance.staticCall(n,e);if(o===void 0)throw Error("checkExistingApprovalFromHinkal Error, no allowance fetched");return o},p=async(t,a,e,r)=>{const n=await t.getContractWithFetcher(c.ContractType.HinkalContract).getBufferEntry.staticCall(a,e,r);if(n===void 0)throw Error("getBufferEntry Fail: No amount fatched");return n};exports.checkExistingApprovalFromHinkal=l;exports.getBufferEntry=p;exports.getInteractionApprovals=s;
|