@hinkal/common 0.1.18 → 0.1.19
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/addGlobals.cjs +1 -0
- package/addGlobals.d.ts +1 -0
- package/addGlobals.mjs +9 -0
- package/crypto/preProcessing.cjs +1 -1
- package/crypto/preProcessing.mjs +7 -9
- package/data-structures/Hinkal/Hinkal.cjs +1 -1
- package/data-structures/Hinkal/Hinkal.mjs +2 -4
- package/data-structures/Hinkal/hinkalPrivateWallet.cjs +1 -1
- package/data-structures/Hinkal/hinkalPrivateWallet.mjs +2 -4
- package/data-structures/event-service/AbstractAccessTokenSnapshotService.cjs +1 -1
- package/data-structures/event-service/AbstractAccessTokenSnapshotService.mjs +2 -4
- package/data-structures/event-service/AbstractCommitmentsSnapshotService.cjs +1 -1
- package/data-structures/event-service/AbstractCommitmentsSnapshotService.mjs +10 -12
- package/data-structures/snapshot/ClientAccessTokenSnapshotService.cjs +1 -1
- package/data-structures/snapshot/ClientAccessTokenSnapshotService.mjs +8 -10
- package/data-structures/snapshot/ClientCommitmentsSnapshotService.cjs +1 -1
- package/data-structures/snapshot/ClientCommitmentsSnapshotService.mjs +8 -10
- package/data-structures/snapshot/ClientNullifierSnapshotService.cjs +1 -1
- package/data-structures/snapshot/ClientNullifierSnapshotService.mjs +2 -4
- package/functions/pre-transaction/outputUtxoProcessing.cjs +1 -1
- package/functions/pre-transaction/outputUtxoProcessing.mjs +4 -6
- package/functions/pre-transaction/processAmountChanges.cjs +1 -1
- package/functions/pre-transaction/processAmountChanges.mjs +9 -11
- package/functions/protocols/pendle.helpers.cjs +1 -1
- package/functions/protocols/pendle.helpers.mjs +10 -12
- package/functions/staking/index.cjs +1 -1
- package/functions/staking/index.mjs +21 -23
- package/functions/web3/odosAPI.cjs +1 -1
- package/functions/web3/odosAPI.mjs +8 -10
- package/functions/web3/oneInchAPI.cjs +1 -1
- package/functions/web3/oneInchAPI.mjs +6 -8
- package/functions/web3/runContractFunction.cjs +1 -1
- package/functions/web3/runContractFunction.mjs +18 -20
- package/functions/web3/uniswapAPI.cjs +1 -1
- package/functions/web3/uniswapAPI.mjs +2 -4
- package/index.cjs +1 -1
- package/index.mjs +640 -639
- package/package.json +1 -1
- package/webworker/utxoWorker/utxoWorkerLauncher.cjs +1 -1
- package/webworker/utxoWorker/utxoWorkerLauncher.mjs +1 -1
- package/webworker/zkProofWorker/zkProofWorkerLauncher.cjs +1 -1
- package/webworker/zkProofWorker/zkProofWorkerLauncher.mjs +1 -1
package/addGlobals.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("buffer"),d=require("process");let e=!1;const r=()=>{e||(typeof window<"u"&&(window.global=window,window.Buffer=o.Buffer,window.process=d),e=!0)};exports.addGlobals=r;
|
package/addGlobals.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const addGlobals: () => void;
|
package/addGlobals.mjs
ADDED
package/crypto/preProcessing.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./babyJub.cjs"),i=require("./poseidon.cjs"),o=require("libsodium-wrappers")
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./babyJub.cjs"),i=require("./poseidon.cjs"),o=require("libsodium-wrappers");let e=!1;const s=async()=>{e||(await Promise.all([o.ready,i.poseidonHolder.init(),r.jubHolder.init()]),e=!0)};exports.preProcessing=s;
|
package/crypto/preProcessing.mjs
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { jubHolder as
|
|
2
|
-
import { poseidonHolder as
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const m = async () => {
|
|
8
|
-
o || (typeof window < "u" && (window.global = window, window.Buffer = t, window.process = d), await e.ready, await i.init(), await r.init(), o = !0);
|
|
1
|
+
import { jubHolder as o } from "./babyJub.mjs";
|
|
2
|
+
import { poseidonHolder as e } from "./poseidon.mjs";
|
|
3
|
+
import i from "libsodium-wrappers";
|
|
4
|
+
let r = !1;
|
|
5
|
+
const d = async () => {
|
|
6
|
+
r || (await Promise.all([i.ready, e.init(), o.init()]), r = !0);
|
|
9
7
|
};
|
|
10
8
|
export {
|
|
11
|
-
|
|
9
|
+
d as preProcessing
|
|
12
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../../types/hinkal.types.cjs"),h=require("../../types/ethereum-network.types.cjs"),a=require("../../functions/web3/functionCalls/accessTokenCalls.cjs"),y=require("../../functions/web3/events/getShieldedBalance.cjs"),o=require("../crypto-keys/keys.cjs"),v=require("./hinkalActionBeefy.cjs"),C=require("./hinkalActionConvex.cjs"),P=require("./hinkalActionCurve.cjs"),w=require("./hinkalActionPendle.cjs"),d=require("./hinkalDeposit.cjs"),T=require("./hinkalSwap.cjs"),m=require("./hinkalWithdraw.cjs"),q=require("./resetMerkleTrees.cjs"),l=require("../merkle-tree/MerkleTree.cjs"),u=require("../../crypto/poseidon.cjs");require("circomlibjs");require("libsodium-wrappers");
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../../types/hinkal.types.cjs"),h=require("../../types/ethereum-network.types.cjs"),a=require("../../functions/web3/functionCalls/accessTokenCalls.cjs"),y=require("../../functions/web3/events/getShieldedBalance.cjs"),o=require("../crypto-keys/keys.cjs"),v=require("./hinkalActionBeefy.cjs"),C=require("./hinkalActionConvex.cjs"),P=require("./hinkalActionCurve.cjs"),w=require("./hinkalActionPendle.cjs"),d=require("./hinkalDeposit.cjs"),T=require("./hinkalSwap.cjs"),m=require("./hinkalWithdraw.cjs"),q=require("./resetMerkleTrees.cjs"),l=require("../merkle-tree/MerkleTree.cjs"),u=require("../../crypto/poseidon.cjs");require("circomlibjs");require("libsodium-wrappers");const S=require("../../constants/chains.constants.cjs"),g=require("../../error-handling/error-codes.constants.cjs"),f=require("../../API/callMonitor.cjs"),E=require("./hinkalActionLidoEth.cjs");require("../../constants/vite.constants.cjs");require("axios");require("../../constants/coingecko.constants.cjs");const F=require("../../API/getAxelarGasEstimate.cjs"),p=require("../../API/API.cjs");require("ethers");require("../../types/curve.types.cjs");require("../../constants/contracts.constants.cjs");const H=require("../../constants/kyc.constants.cjs");require("../../constants/axelar.constants.cjs");require("../../constants/rewards.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const I=require("../transactions-manager/TransactionsManager.cjs");require("../../functions/utils/external-action.utils.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");const M=require("../../functions/utils/reloadPage.cjs"),R=require("./hinkalActionVolatile.cjs"),k=require("./hinkalActionPendleLP.cjs"),L=require("../../API/getConnextReceiveFee.cjs"),W=require("./hinkalActionStake.cjs"),K=require("../MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.cjs"),N=require("./hinkalPrivateWallet.cjs");class x{providerAdapter;userKeys;signingMessage="Login to Hinkal Protocol";merkleTreeHinkal;merkleTreeAccessToken;nullifiers;encryptedOutputs;commitmentsSnapshotService;nullifierSnapshotService;accessTokenSnapshotService;transactionsManager;utxoUtils=K.multiThreadedUtxoUtils;constructor(){this.userKeys=new o.UserKeys(void 0),this.merkleTreeHinkal=l.MerkleTree.create(u.poseidonFunction,25n,0n),this.merkleTreeAccessToken=l.MerkleTree.create(u.poseidonFunction,25n,0n),this.nullifiers=new Set,this.encryptedOutputs=[],this.transactionsManager=new I.TransactionsManager}async initProviderAdapter(e,t){await this.updateProviderAdapter(t),this.providerAdapter?.initConnector(e);const r=await this.connectAndPatchProvider(e);await t.init(r),await this.setListeners()}async initUserKeys(){this.userKeys=new o.UserKeys(await this.getProviderAdapter().signMessage(this.signingMessage))}async initUserKeysWithPassword(e){this.userKeys=new o.UserKeys(e)}async resetMerkle(){this.isSelectedNetworkSupported()&&await q.resetMerkleTrees(this)}getProviderAdapter(){if(!this.providerAdapter)throw new Error("ProviderAdapter is not initialized");return this.providerAdapter}async waitForTransaction(e,t=1){return!!await this.providerAdapter?.waitForTransaction(e,t)}getContractMetadata(e,t){return this.getProviderAdapter().getContractMetadata(e,t)}getContract(e,t=void 0,r){return this.getProviderAdapter().getContract(e,t,r)}async signMessage(e){return await this.getProviderAdapter().signMessage(e)}async signTypedData(e,t,r){return await this.getProviderAdapter().signTypedData(e,t,r)}getContractWithSigner(e,t=""){return this.getProviderAdapter().getContractWithSigner(e,t)}getContractWithFetcher(e,t=""){return this.getProviderAdapter().getContractWithFetcher(e,t)}getContractWithFetcherForEthereum(e,t){return this.getProviderAdapter().getContractWithFetcherForEthereum(e,t)}isSelectedNetworkSupported(){return!!S.networkRegistry[this.getCurrentChainId()]}async switchNetwork(e){try{await this.getProviderAdapter().switchNetwork(e)}catch{throw new Error(g.transactionErrorCodes.FAILED_TO_SWITCH_NETWORKS)}}getCurrentChainId(){const{chainId:e}=this.getProviderAdapter();if(!e)throw new Error("Illegal State: no chainId");return e}getSelectedNetwork(){return this.providerAdapter?.getSelectedNetwork()}isPermitterAvailable(){return this.getProviderAdapter().isPermitterAvailable()}async connectAndPatchProvider(e){return await this.getProviderAdapter().connectAndPatchProvider(e)}async disconnectFromConnector(){await this.getProviderAdapter().disconnectFromConnector()}async updateProviderAdapter(e){try{this.providerAdapter&&this.providerAdapter.release(),this.providerAdapter=e}catch(t){throw console.error(t),Error("updateProviderAdapter failed, please try again.")}}async setListeners(){this.providerAdapter?.setChainEventListener({onAccountChanged:()=>{this.onAccountChanged()},onChainChanged:e=>{this.onChainChanged(e)}})}async onAccountChanged(){await this.getProviderAdapter().onAccountChanged();const e=c.EventType.AccountChanged;typeof document<"u"?document?.dispatchEvent(new Event(e)):process?.emit("message",e,void 0)}async onChainChanged(e){if(e){await this.getProviderAdapter().onChainChanged(e);const t=c.EventType.NetworkChange;typeof document<"u"?document.dispatchEvent(new Event(t)):process?.emit("message",t,void 0)}else await this.disconnectFromConnector(),M.reloadPage()}async monitorConnectedAddress(){f.monitor(await this.getEthereumAddress(),this.getCurrentChainId())}async getBalances(){return y.getShieldedBalance(this)}getSupportedPassportLinks(){return H.supportedPassportLinks}checkAccessToken(){return a.checkHinkalAccessToken(this)}async getAxelarEstimate(e,t,r,n){return F.getAxelarGasEstimate(e,t,r,n,this.userKeys.getAccessKey())}async getConnextReceiveFee(e,t){return L.getConnextReceiveFee(this.getCurrentChainId(),e,t)}async mintHinkalAccessToken(e){return a.mintAccessToken(this,e)}async mintHinkalAccessTokenCrossChain(e,t){return a.mintTokenCrossChain(this,e,t)}async getHinkalTreeRootHash(){return this.getContractWithFetcher(h.ContractType.HinkalContract).getRootHash()}async getAccessTokenTreeRootHash(){return this.getContractWithFetcher(h.ContractType.CrossChainAccessTokenContract).getRootHash()}async resetMerkleTreesIfNecessary(){if(!this.isSelectedNetworkSupported())throw new Error(g.transactionErrorCodes.UNSUPPORTED_NETWORK);const[e,t]=await Promise.all([this.getHinkalTreeRootHash(),this.getAccessTokenTreeRootHash()]);(e.toBigInt()!==this.merkleTreeHinkal.getRootHash()||t.toBigInt()!==this.merkleTreeAccessToken.getRootHash())&&await this.resetMerkle()}async getEventsFromHinkal(){await Promise.all([this.accessTokenSnapshotService?.retrieveEventsFromLatestBlock(),this.commitmentsSnapshotService?.retrieveEventsFromLatestBlock(),this.nullifierSnapshotService?.retrieveEventsFromLatestBlock()])}getEthereumAddress(){return this.getProviderAdapter().getAddress()}async getRandomRelay(){return(await p.API.getIdleRelay(this.getCurrentChainId())).relay}getGasPrice(){if(!this.providerAdapter?.chainId)throw new Error("Illegal State of providerAdapter in Hinkal: no chainId");return this.providerAdapter.getGasPrice()}getAPI(){return p.API}async deposit(e,t){return d.hinkalDeposit(this,e,t)}async depositForOther(e,t,r){return d.hinkalDepositForOther(this,e,t,r)}async withdraw(e,t,r,n,i=!1){return m.hinkalWithdraw(this,e,t,r,n,i)}async swap(e,t,r,n,i=!1,s=!1){return T.hinkalSwap(this,e,t,r,n,i,s)}async actionCurve(e,t,r,n,i,s=!1){return P.hinkalActionCurve(this,e,t,r,n,i,s)}async actionConvex(e,t,r,n,i=!1){return C.hinkalActionConvex(this,e,t,r,n,i)}async actionBeefy(e,t,r,n,i,s,A=!1){return v.hinkalActionBeefy(this,e,t,r,n,i,s,A)}async actionLido(e,t,r,n,i,s=!1){return E.hinkalActionLido(this,e,t,r,n,i,s)}async actionPendle(e,t,r,n,i=!1){return w.hinkalActionPendle(this,e,t,r,n,i)}async actionPendleLP(e,t,r,n,i=!1){return k.hinkalActionPendleLP(this,e,t,r,n,i)}async actionVolatile(e,t,r,n=!1){return R.hinkalActionVolatile(this,e,t,r,n)}async actionStake(e,t,r,n){return W.hinkalActionStake(this,e,t,r,n)}async actionPrivateWallet(e,t,r,n=[],i,s=!1){return N.hinkalPrivateWallet(this,e,t,r,n,i,s)}async getPendleLPClaimableParams(e,t){return k.hinkalGetPendleLPClaimableParams(this,e,t)}}exports.Hinkal=x;
|
|
@@ -15,8 +15,6 @@ import { MerkleTree as h } from "../merkle-tree/MerkleTree.mjs";
|
|
|
15
15
|
import { poseidonFunction as d } from "../../crypto/poseidon.mjs";
|
|
16
16
|
import "circomlibjs";
|
|
17
17
|
import "libsodium-wrappers";
|
|
18
|
-
import "buffer";
|
|
19
|
-
import "process";
|
|
20
18
|
import { networkRegistry as H } from "../../constants/chains.constants.mjs";
|
|
21
19
|
import { transactionErrorCodes as p } from "../../error-handling/error-codes.constants.mjs";
|
|
22
20
|
import { monitor as F } from "../../API/callMonitor.mjs";
|
|
@@ -44,7 +42,7 @@ import { getConnextReceiveFee as x } from "../../API/getConnextReceiveFee.mjs";
|
|
|
44
42
|
import { hinkalActionStake as B } from "./hinkalActionStake.mjs";
|
|
45
43
|
import { multiThreadedUtxoUtils as U } from "../MultiThreadedUtxoUtils/MultiThreadedUtxoUtils.mjs";
|
|
46
44
|
import { hinkalPrivateWallet as b } from "./hinkalPrivateWallet.mjs";
|
|
47
|
-
class
|
|
45
|
+
class Me {
|
|
48
46
|
providerAdapter;
|
|
49
47
|
userKeys;
|
|
50
48
|
signingMessage = "Login to Hinkal Protocol";
|
|
@@ -298,5 +296,5 @@ class Ne {
|
|
|
298
296
|
}
|
|
299
297
|
}
|
|
300
298
|
export {
|
|
301
|
-
|
|
299
|
+
Me as Hinkal
|
|
302
300
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../../constants/chains.constants.cjs"),x=require("../../error-handling/error-codes.constants.cjs");require("ethers");require("axios");require("../../constants/vite.constants.cjs");require("../../types/circom-data.types.cjs");const A=require("../../types/external-action.types.cjs");require("../../types/transactions.types.cjs");require("../../types/curve.types.cjs");require("circomlibjs");require("libsodium-wrappers");require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("../../constants/chains.constants.cjs"),x=require("../../error-handling/error-codes.constants.cjs");require("ethers");require("axios");require("../../constants/vite.constants.cjs");require("../../types/circom-data.types.cjs");const A=require("../../types/external-action.types.cjs");require("../../types/transactions.types.cjs");require("../../types/curve.types.cjs");require("circomlibjs");require("libsodium-wrappers");require("../../constants/reorg-depths.constants.cjs");const C=require("../../functions/snarkjs/constructEmporiumProof.cjs"),P=require("../../functions/pre-transaction/processAmountChanges.cjs"),R=require("../../functions/pre-transaction/outputUtxoProcessing.cjs"),w=require("../../functions/web3/events/getShieldedBalance.cjs"),U=require("../../functions/web3/functionCalls/estimateGasRelayer.cjs"),I=require("../../functions/web3/functionCalls/transactCallRelayer.cjs"),T=async(e,o,r,d,q=[],p,y=!1)=>{const a=o.map(t=>0n);r=P.processAmountChanges({erc20Addresses:o,amountChanges:r,flatFees:a,feeUnit:void 0,externalActionId:A.ExternalActionId.Emporium});const s=[...await w.addPaddingToUtxos(e,o,r)],i=[];for(let t=0;t<o.length;t+=1){const{outputUtxos:E}=R.outputUtxoProcessing(e.userKeys,s[t],r[t]);i.push(E)}const n=await e.getRandomRelay();if(!n)throw Error(x.transactionErrorCodes.RELAYER_NOT_AVAILABLE);const{contractData:g}=f.networkRegistry[e.getCurrentChainId()],{emporiumAddress:c}=g;if(!c)throw Error("No Emporium Address Provided");const{zkCallData:u,circomData:l,dimData:m}=await C.constructEmporiumProof(e.merkleTreeHinkal,e.merkleTreeAccessToken,s,i,e.userKeys,r.length,s[0].length,c,q,n,e.getCurrentChainId(),d,a,p);return y?await U.estimateGasRelayer(e,u,m,l):await I.transactCallRelayer(e.getCurrentChainId(),u,m,l)};exports.hinkalPrivateWallet=T;
|
|
@@ -9,8 +9,6 @@ import "../../types/transactions.types.mjs";
|
|
|
9
9
|
import "../../types/curve.types.mjs";
|
|
10
10
|
import "circomlibjs";
|
|
11
11
|
import "libsodium-wrappers";
|
|
12
|
-
import "buffer";
|
|
13
|
-
import "process";
|
|
14
12
|
import "../../constants/reorg-depths.constants.mjs";
|
|
15
13
|
import { constructEmporiumProof as R } from "../../functions/snarkjs/constructEmporiumProof.mjs";
|
|
16
14
|
import { processAmountChanges as U } from "../../functions/pre-transaction/processAmountChanges.mjs";
|
|
@@ -18,7 +16,7 @@ import { outputUtxoProcessing as C } from "../../functions/pre-transaction/outpu
|
|
|
18
16
|
import { addPaddingToUtxos as I } from "../../functions/web3/events/getShieldedBalance.mjs";
|
|
19
17
|
import { estimateGasRelayer as P } from "../../functions/web3/functionCalls/estimateGasRelayer.mjs";
|
|
20
18
|
import { transactCallRelayer as T } from "../../functions/web3/functionCalls/transactCallRelayer.mjs";
|
|
21
|
-
const
|
|
19
|
+
const Q = async (t, e, o, u, d = [], l, E = !1) => {
|
|
22
20
|
const m = e.map((r) => 0n);
|
|
23
21
|
o = U({
|
|
24
22
|
erc20Addresses: e,
|
|
@@ -57,5 +55,5 @@ const X = async (t, e, o, u, d = [], l, E = !1) => {
|
|
|
57
55
|
return E ? await P(t, n, f, c) : await T(t.getCurrentChainId(), n, f, c);
|
|
58
56
|
};
|
|
59
57
|
export {
|
|
60
|
-
|
|
58
|
+
Q as hinkalPrivateWallet
|
|
61
59
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../../constants/protocol.constants.cjs"),c=require("../../crypto/poseidon.cjs");require("circomlibjs");require("libsodium-wrappers");
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../../constants/protocol.constants.cjs"),c=require("../../crypto/poseidon.cjs");require("circomlibjs");require("libsodium-wrappers");const n=require("../../functions/utils/amounts.utils.cjs"),o=require("../merkle-tree/MerkleTree.cjs"),A=require("./AbstractSnapshotService.cjs");class u extends A.AbstractSnapshotService{constructor(e,s,r,d){super(e,{name:"NewAccessKeyAdded",args:["accessKey","index","senderAddress"]},s,r,d)}_merkleTree;_senderAddresses;_senderAddressIndexMap;get merkleTree(){return this._merkleTree}get senderAddresses(){return this._senderAddresses}get senderAddressIndexMap(){return this._senderAddressIndexMap}serializeSnapshot(e){return{merkleTree:e.payload.merkleTree.toJSON(),senderAddresses:Array.from(e.payload.senderAddresses),latestBlockNumber:e.latestBlockNumber,reserveBlockNumber:e.reserveBlockNumber,senderAddressIndexMap:Array.from(e.payload.senderAddressIndexMap).map(([s,r])=>({address:s,index:r}))}}deserializeSnapshot(e){let s,r;if(e.latestBlockNumber&&e.merkleTree){const d=new Map(Object.entries(e.merkleTree.tree).map(([t,a])=>[BigInt(t),BigInt(a)]));s=o.MerkleTree.createWithData(d,n.toBigInt(e.merkleTree.index),n.toBigInt(e.merkleTree.count),c.poseidonFunction,25n,0n)}else s=o.MerkleTree.create(c.poseidonFunction,25n,0n);return e.latestBlockNumber&&e.senderAddressIndexMap?r=new Map(e.senderAddressIndexMap.map(({address:d,index:t})=>[d,t])):r=new Map,{latestBlockNumber:e.latestBlockNumber??0,reserveBlockNumber:e.reserveBlockNumber??0,payload:{merkleTree:s,senderAddresses:e.senderAddresses??[],senderAddressIndexMap:r}}}acceptEvent(e,s){try{return this._merkleTree.insert(e.accessKey,e.index),this._senderAddressIndexMap.set(e.senderAddress,Math.max(Number(e.index),this._senderAddressIndexMap.get(e.senderAddress)??0)),this._senderAddresses.includes(e.senderAddress)||this._senderAddresses.push(e.senderAddress),e.accessKey===0n&&e.senderAddress===l.zeroAddress&&this._merkleTree.remove(e.index),!0}catch(r){return console.error(r),!1}}mapEvent(e){const{accessKey:s,index:r,senderAddress:d}=e;return{accessKey:n.toBigInt(s),index:n.toBigInt(r),senderAddress:d}}getSnapshotPayload(){return{merkleTree:this._merkleTree,senderAddresses:this._senderAddresses,senderAddressIndexMap:this._senderAddressIndexMap}}populateSnapshot({payload:{merkleTree:e,senderAddresses:s,senderAddressIndexMap:r}}){this._merkleTree=e,this._senderAddresses=s,this._senderAddressIndexMap=r}}exports.AbstractAccessTokenSnapshotService=u;
|
|
@@ -2,12 +2,10 @@ import { zeroAddress as o } from "../../constants/protocol.constants.mjs";
|
|
|
2
2
|
import { poseidonFunction as m } from "../../crypto/poseidon.mjs";
|
|
3
3
|
import "circomlibjs";
|
|
4
4
|
import "libsodium-wrappers";
|
|
5
|
-
import "buffer";
|
|
6
|
-
import "process";
|
|
7
5
|
import { toBigInt as n } from "../../functions/utils/amounts.utils.mjs";
|
|
8
6
|
import { MerkleTree as c } from "../merkle-tree/MerkleTree.mjs";
|
|
9
7
|
import { AbstractSnapshotService as l } from "./AbstractSnapshotService.mjs";
|
|
10
|
-
class
|
|
8
|
+
class T extends l {
|
|
11
9
|
constructor(e, s, r, d) {
|
|
12
10
|
super(
|
|
13
11
|
e,
|
|
@@ -107,5 +105,5 @@ class I extends l {
|
|
|
107
105
|
}
|
|
108
106
|
}
|
|
109
107
|
export {
|
|
110
|
-
|
|
108
|
+
T as AbstractAccessTokenSnapshotService
|
|
111
109
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../crypto/poseidon.cjs");require("circomlibjs");require("libsodium-wrappers");
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../crypto/poseidon.cjs");require("circomlibjs");require("libsodium-wrappers");const s=require("../merkle-tree/MerkleTree.cjs"),u=require("../../functions/utils/amounts.utils.cjs"),m=require("./AbstractSnapshotService.cjs");class p extends m.AbstractSnapshotService{constructor(e,t,n,r){super(e,{name:"NewCommitment",args:["commitment","index","encryptedOutput"]},t,n,r)}_merkleTree;_encryptedOutputs;get merkleTree(){return this._merkleTree}get encryptedOutputs(){return this._encryptedOutputs}serializeSnapshot(e){return{merkleTree:e.payload.merkleTree.toJSON(),latestBlockNumber:e.latestBlockNumber,reserveBlockNumber:e.reserveBlockNumber,encryptedOutputs:e.payload.encryptedOutputs.map(t=>({value:t.value,isPositive:String(t.isPositive)}))}}deserializeSnapshot(e){let t;if(e.latestBlockNumber&&e.merkleTree){const r=new Map(Object.entries(e.merkleTree.tree).map(([c,o])=>[BigInt(c),BigInt(o)]));t=s.MerkleTree.createWithData(r,u.toBigInt(e.merkleTree.index),u.toBigInt(e.merkleTree.count),i.poseidonFunction,25n,0n)}else t=s.MerkleTree.create(i.poseidonFunction,25n,0n);const n=e.encryptedOutputs?.map(r=>({value:r.value,isPositive:JSON.parse(r.isPositive)}));return{latestBlockNumber:e.latestBlockNumber??0,reserveBlockNumber:e.reserveBlockNumber??0,payload:{merkleTree:t,encryptedOutputs:n||[]}}}getSnapshotPayload(){return{merkleTree:this._merkleTree,encryptedOutputs:this._encryptedOutputs}}populateSnapshot({payload:{merkleTree:e,encryptedOutputs:t}}){this._merkleTree=e,this._encryptedOutputs=t}mapEvent(e){const{commitment:t,index:n,encryptedOutput:r}=e;return{commitment:u.toBigInt(t),index:u.toBigInt(n),encryptedOutput:r}}acceptEvent(e,t){if(!this.encryptedOutputs.map(n=>n.value).includes(e.encryptedOutput)){if(this.isServer&&console.log(`Adding commitment to file ${e.commitment} at index ${e.index} for encrypted output ${e.encryptedOutput}. Block Number: ${t}
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
`),!this._merkleTree.insert(e.commitment,e.index>=0?e.index:-1n*e.index))return console.log(`Could not add ${e.commitment} at index ${e.index} `),!1;const r={value:e.encryptedOutput,isPositive:e.index>=0n};return this._encryptedOutputs.push(r),!0}return!1}}exports.AbstractCommitmentsSnapshotService=p;
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { poseidonFunction as
|
|
1
|
+
import { poseidonFunction as m } from "../../crypto/poseidon.mjs";
|
|
2
2
|
import "circomlibjs";
|
|
3
3
|
import "libsodium-wrappers";
|
|
4
|
-
import "buffer";
|
|
5
|
-
import "process";
|
|
6
4
|
import { MerkleTree as i } from "../merkle-tree/MerkleTree.mjs";
|
|
7
|
-
import { toBigInt as
|
|
5
|
+
import { toBigInt as n } from "../../functions/utils/amounts.utils.mjs";
|
|
8
6
|
import { AbstractSnapshotService as o } from "./AbstractSnapshotService.mjs";
|
|
9
|
-
class
|
|
7
|
+
class T extends o {
|
|
10
8
|
constructor(e, t, u, r) {
|
|
11
9
|
super(
|
|
12
10
|
e,
|
|
@@ -49,14 +47,14 @@ class b extends o {
|
|
|
49
47
|
);
|
|
50
48
|
t = i.createWithData(
|
|
51
49
|
r,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
n(e.merkleTree.index),
|
|
51
|
+
n(e.merkleTree.count),
|
|
52
|
+
m,
|
|
55
53
|
25n,
|
|
56
54
|
0n
|
|
57
55
|
);
|
|
58
56
|
} else
|
|
59
|
-
t = i.create(
|
|
57
|
+
t = i.create(m, 25n, 0n);
|
|
60
58
|
const u = e.encryptedOutputs?.map((r) => ({
|
|
61
59
|
value: r.value,
|
|
62
60
|
isPositive: JSON.parse(r.isPositive)
|
|
@@ -84,8 +82,8 @@ class b extends o {
|
|
|
84
82
|
mapEvent(e) {
|
|
85
83
|
const { commitment: t, index: u, encryptedOutput: r } = e;
|
|
86
84
|
return {
|
|
87
|
-
commitment:
|
|
88
|
-
index:
|
|
85
|
+
commitment: n(t),
|
|
86
|
+
index: n(u),
|
|
89
87
|
encryptedOutput: r
|
|
90
88
|
};
|
|
91
89
|
}
|
|
@@ -108,5 +106,5 @@ class b extends o {
|
|
|
108
106
|
}
|
|
109
107
|
}
|
|
110
108
|
export {
|
|
111
|
-
|
|
109
|
+
T as AbstractCommitmentsSnapshotService
|
|
112
110
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../event-service/AbstractAccessTokenSnapshotService.cjs");require("circomlibjs");require("ethers");require("libsodium-wrappers");require("../../constants/vite.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const t=require("../../API/fetchCommitmentsCache.cjs");class c extends r.AbstractAccessTokenSnapshotService{constructor(s,e){super(s,0,!1,e)}async fetchSnapshot(){const{chainId:s}=await this.contract.provider.getNetwork(),e=await t.fetchAccessTokenSnapshot(s);if(e.accessTokenContractAddress!==this.contract.address||e.chainId!==s)throw Error("Commitment Snapshot: incorrect contract or chain id");return{latestBlockNumber:e.latestBlockNumber,merkleTree:e.merkleTree,senderAddresses:e.senderAddresses,senderAddressIndexMap:e.senderAddressIndexMap}}persistSnapshot(s){return Promise.resolve()}}exports.ClientAccessTokenSnapshotService=c;
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import { AbstractAccessTokenSnapshotService as
|
|
1
|
+
import { AbstractAccessTokenSnapshotService as r } from "../event-service/AbstractAccessTokenSnapshotService.mjs";
|
|
2
2
|
import "circomlibjs";
|
|
3
3
|
import "ethers";
|
|
4
4
|
import "libsodium-wrappers";
|
|
5
|
-
import "buffer";
|
|
6
|
-
import "process";
|
|
7
5
|
import "../../constants/vite.constants.mjs";
|
|
8
6
|
import "../../constants/reorg-depths.constants.mjs";
|
|
9
7
|
import { fetchAccessTokenSnapshot as t } from "../../API/fetchCommitmentsCache.mjs";
|
|
10
|
-
class
|
|
11
|
-
constructor(
|
|
12
|
-
super(
|
|
8
|
+
class h extends r {
|
|
9
|
+
constructor(s, e) {
|
|
10
|
+
super(s, 0, !1, e);
|
|
13
11
|
}
|
|
14
12
|
async fetchSnapshot() {
|
|
15
|
-
const { chainId:
|
|
16
|
-
if (e.accessTokenContractAddress !== this.contract.address || e.chainId !==
|
|
13
|
+
const { chainId: s } = await this.contract.provider.getNetwork(), e = await t(s);
|
|
14
|
+
if (e.accessTokenContractAddress !== this.contract.address || e.chainId !== s)
|
|
17
15
|
throw Error("Commitment Snapshot: incorrect contract or chain id");
|
|
18
16
|
return {
|
|
19
17
|
latestBlockNumber: e.latestBlockNumber,
|
|
@@ -22,10 +20,10 @@ class k extends s {
|
|
|
22
20
|
senderAddressIndexMap: e.senderAddressIndexMap
|
|
23
21
|
};
|
|
24
22
|
}
|
|
25
|
-
persistSnapshot(
|
|
23
|
+
persistSnapshot(s) {
|
|
26
24
|
return Promise.resolve();
|
|
27
25
|
}
|
|
28
26
|
}
|
|
29
27
|
export {
|
|
30
|
-
|
|
28
|
+
h as ClientAccessTokenSnapshotService
|
|
31
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("circomlibjs");require("ethers");require("libsodium-wrappers");require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("circomlibjs");require("ethers");require("libsodium-wrappers");require("../../constants/vite.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const r=require("../event-service/AbstractCommitmentsSnapshotService.cjs"),s=require("../../API/fetchCommitmentsCache.cjs");class n extends r.AbstractCommitmentsSnapshotService{constructor(t,e){super(t,0,!1,e)}async fetchSnapshot(){const{chainId:t}=await this.contract.provider.getNetwork(),e=await s.fetchCommitmentsSnapshot(t);if(e.hinkalAddress!==this.contract.address||e.chainId!==t)throw Error("Commitment Snapshot: incorrect contract or chain id");return{latestBlockNumber:e.latestBlockNumber,merkleTree:e.merkleTree,encryptedOutputs:e.encryptedOutputs}}persistSnapshot(t){return Promise.resolve()}}exports.ClientCommitmentsSnapshotService=n;
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import "circomlibjs";
|
|
2
2
|
import "ethers";
|
|
3
3
|
import "libsodium-wrappers";
|
|
4
|
-
import "buffer";
|
|
5
|
-
import "process";
|
|
6
4
|
import "../../constants/vite.constants.mjs";
|
|
7
5
|
import "../../constants/reorg-depths.constants.mjs";
|
|
8
|
-
import { AbstractCommitmentsSnapshotService as
|
|
6
|
+
import { AbstractCommitmentsSnapshotService as r } from "../event-service/AbstractCommitmentsSnapshotService.mjs";
|
|
9
7
|
import { fetchCommitmentsSnapshot as o } from "../../API/fetchCommitmentsCache.mjs";
|
|
10
|
-
class
|
|
11
|
-
constructor(
|
|
12
|
-
super(
|
|
8
|
+
class d extends r {
|
|
9
|
+
constructor(e, t) {
|
|
10
|
+
super(e, 0, !1, t);
|
|
13
11
|
}
|
|
14
12
|
async fetchSnapshot() {
|
|
15
|
-
const { chainId:
|
|
16
|
-
if (t.hinkalAddress !== this.contract.address || t.chainId !==
|
|
13
|
+
const { chainId: e } = await this.contract.provider.getNetwork(), t = await o(e);
|
|
14
|
+
if (t.hinkalAddress !== this.contract.address || t.chainId !== e)
|
|
17
15
|
throw Error("Commitment Snapshot: incorrect contract or chain id");
|
|
18
16
|
return {
|
|
19
17
|
latestBlockNumber: t.latestBlockNumber,
|
|
@@ -21,10 +19,10 @@ class u extends e {
|
|
|
21
19
|
encryptedOutputs: t.encryptedOutputs
|
|
22
20
|
};
|
|
23
21
|
}
|
|
24
|
-
persistSnapshot(
|
|
22
|
+
persistSnapshot(e) {
|
|
25
23
|
return Promise.resolve();
|
|
26
24
|
}
|
|
27
25
|
}
|
|
28
26
|
export {
|
|
29
|
-
|
|
27
|
+
d as ClientCommitmentsSnapshotService
|
|
30
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("circomlibjs");require("ethers");require("libsodium-wrappers");require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("circomlibjs");require("ethers");require("libsodium-wrappers");require("../../constants/vite.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const t=require("../event-service/AbstractNullifierSnapshotService.cjs"),i=require("../../API/fetchNullifiers.cjs");class s extends t.AbstractNullifierSnapshotService{constructor(e,r){super(e,0,!1,r)}async fetchSnapshot(){const{chainId:e}=await this.contract.provider.getNetwork(),r=await i.fetchNullifiers(e);return{latestBlockNumber:r.latestBlockNumber,nullifiers:r.nullifiers}}persistSnapshot(e){return Promise.resolve()}}exports.ClientNullifierSnapshotService=s;
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import "circomlibjs";
|
|
2
2
|
import "ethers";
|
|
3
3
|
import "libsodium-wrappers";
|
|
4
|
-
import "buffer";
|
|
5
|
-
import "process";
|
|
6
4
|
import "../../constants/vite.constants.mjs";
|
|
7
5
|
import "../../constants/reorg-depths.constants.mjs";
|
|
8
6
|
import { AbstractNullifierSnapshotService as e } from "../event-service/AbstractNullifierSnapshotService.mjs";
|
|
9
7
|
import { fetchNullifiers as i } from "../../API/fetchNullifiers.mjs";
|
|
10
|
-
class
|
|
8
|
+
class u extends e {
|
|
11
9
|
constructor(t, r) {
|
|
12
10
|
super(t, 0, !1, r);
|
|
13
11
|
}
|
|
@@ -23,5 +21,5 @@ class h extends e {
|
|
|
23
21
|
}
|
|
24
22
|
}
|
|
25
23
|
export {
|
|
26
|
-
|
|
24
|
+
u as ClientNullifierSnapshotService
|
|
27
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../../data-structures/utxo/Utxo.cjs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../../data-structures/utxo/Utxo.cjs"),c=require("../../error-handling/error-codes.constants.cjs");require("ethers");require("axios");require("../../constants/chains.constants.cjs");require("../../constants/vite.constants.cjs");require("../../types/circom-data.types.cjs");require("../../types/transactions.types.cjs");require("../../types/curve.types.cjs");require("circomlibjs");require("libsodium-wrappers");require("../../constants/reorg-depths.constants.cjs");const d=(o,t,e,u,i)=>{let r=0n;if(t.forEach(s=>{r+=s.amount}),e<0n&&r+e<0n)throw Error(c.transactionErrorCodes.INSUFFICIENT_FUNDS_TO_TRANSACT);return{outputUtxos:[new n.Utxo({amount:r+e,erc20TokenAddress:t[0].erc20TokenAddress,shieldedPrivateKey:o.getShieldedPrivateKey(),timeStamp:u,tokenId:i})]}};exports.outputUtxoProcessing=d;
|
|
@@ -9,10 +9,8 @@ import "../../types/transactions.types.mjs";
|
|
|
9
9
|
import "../../types/curve.types.mjs";
|
|
10
10
|
import "circomlibjs";
|
|
11
11
|
import "libsodium-wrappers";
|
|
12
|
-
import "buffer";
|
|
13
|
-
import "process";
|
|
14
12
|
import "../../constants/reorg-depths.constants.mjs";
|
|
15
|
-
const
|
|
13
|
+
const F = (e, r, o, i, m) => {
|
|
16
14
|
let t = 0n;
|
|
17
15
|
if (r.forEach((p) => {
|
|
18
16
|
t += p.amount;
|
|
@@ -22,12 +20,12 @@ const P = (i, r, o, e, m) => {
|
|
|
22
20
|
new s({
|
|
23
21
|
amount: t + o,
|
|
24
22
|
erc20TokenAddress: r[0].erc20TokenAddress,
|
|
25
|
-
shieldedPrivateKey:
|
|
26
|
-
timeStamp:
|
|
23
|
+
shieldedPrivateKey: e.getShieldedPrivateKey(),
|
|
24
|
+
timeStamp: i,
|
|
27
25
|
tokenId: m
|
|
28
26
|
})
|
|
29
27
|
] };
|
|
30
28
|
};
|
|
31
29
|
export {
|
|
32
|
-
|
|
30
|
+
F as outputUtxoProcessing
|
|
33
31
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("../../constants/fees.constants.cjs"),d=require("../../error-handling/customErrors/FeeOverTransactionValueError.cjs"),y=require("../utils/amounts.utils.cjs");require("ethers");require("axios");require("../../constants/chains.constants.cjs");require("../../constants/vite.constants.cjs");const O=require("../../types/beefy.types.cjs");require("../../types/circom-data.types.cjs");const e=require("../../types/hinkal.types.cjs"),c=require("../../types/slippage.types.cjs");require("../../types/transactions.types.cjs");require("../../types/curve.types.cjs");require("circomlibjs");require("libsodium-wrappers");require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("../../constants/fees.constants.cjs"),d=require("../../error-handling/customErrors/FeeOverTransactionValueError.cjs"),y=require("../utils/amounts.utils.cjs");require("ethers");require("axios");require("../../constants/chains.constants.cjs");require("../../constants/vite.constants.cjs");const O=require("../../types/beefy.types.cjs");require("../../types/circom-data.types.cjs");const e=require("../../types/hinkal.types.cjs"),c=require("../../types/slippage.types.cjs");require("../../types/transactions.types.cjs");require("../../types/curve.types.cjs");require("circomlibjs");require("libsodium-wrappers");require("../../constants/reorg-depths.constants.cjs");const _=require("./interaction-to-action.cjs"),N=(t,A,r)=>{const l=y.absBigInt(t)-A;if(A<0n)throw new d.FeeOverTransactionValueError({totalFeeWEI:l,feeUnit:r});return A},F=({erc20Addresses:t=[],amountChanges:A,flatFees:r,feeUnit:I,externalActionId:l,action:p,gasTokenAddress:b})=>{const i=_.getInteractionFromAction(l,p);if(i===e.INTERACTION.NONE)throw Error("No interaction was choosen");switch(i){case e.INTERACTION.WITHDRAW:{N(A[0],T.getAmountAfterRelayAndFlatFees(A[0],r[0],!0),I);break}case e.INTERACTION.SWAP:{A[1]=N(A[1],T.getAmountAfterRelayAndFlatFeesAndSlippage(A[1],r[1],c.SlippageType.Swap),I);break}case e.INTERACTION.CURVE_DEPOSIT:{const E=A.length-1;A[E]=N(A[E],T.getAmountAfterRelayAndFlatFeesAndSlippage(A[E],r[E],c.SlippageType.CurveDeposit),I);break}case e.INTERACTION.CURVE_WITHDRAW:r.forEach((E,R)=>{E>0n?A[R]=N(A[R],T.getAmountAfterRelayAndFlatFeesAndSlippage(A[R],E,c.SlippageType.CurveWithdraw),I):E===0n&&A[R]>0n&&R!==r.length-1&&(A[R]=T.getAmountAfterSlippage(A[R],c.SlippageType.CurveWithdraw))});break;case e.INTERACTION.CURVE_WITHDRAW_INBALANCED:break;case e.INTERACTION.STAKING:A[0]=N(A[0],T.getAmountAfterRelayAndFlatFees(A[1],r[1]),I);break;case e.INTERACTION.UNSTAKING:A[1]=N(A[1],T.getAmountAfterRelayAndFlatFees(A[0],r[0]),I);break;case e.INTERACTION.CLAIMING:A[1]=N(A[1],T.getAmountAfterRelayAndFlatFees(A[1],r[1]),I);break;case e.INTERACTION.BEEFY:{const E=O.isBeefyDeposit(p)?1:0;A[E]=N(A[E],T.getAmountAfterRelayAndFlatFeesAndSlippage(A[E],r[E],c.SlippageType.Beefy),I);break}case e.INTERACTION.BEEFY_STAKE:A[0]=N(A[0],T.getAmountAfterRelayAndFlatFees(A[1],r[1]),I);break;case e.INTERACTION.BEEFY_UNSTAKE:A[1]=N(A[1],T.getAmountAfterRelayAndFlatFees(A[0],r[0]),I);break;case e.INTERACTION.BEEFY_GET_REWARDS:A[1]=N(A[1],T.getAmountAfterRelayAndFlatFees(A[1],r[1]),I);break;case e.INTERACTION.LIDO_STAKE:A[0]=N(A[0],T.getAmountAfterRelayAndFlatFees(A[0],r[0]),I);break;case e.INTERACTION.LIDO_REQUEST:N(A[1],T.getAmountAfterRelayAndFlatFees(A[1],r[1]),I);break;case e.INTERACTION.LIDO_CLAIM:A[1]=N(A[1],T.getAmountAfterRelayAndFlatFees(A[1],r[1]),I);break;case e.INTERACTION.PENDLE_TRANSACT:A[0]<0n&&N(A[0],T.getAmountAfterRelayAndFlatFees(A[0],r[0],!0),I);break;case e.INTERACTION.PENDLE_YT_IN_SWAP:A[1]=N(A[1],T.getAmountAfterRelayAndFlatFees(A[1],r[1]),I);break;case e.INTERACTION.PENDLE_YT_OUT_SWAP:break;case e.INTERACTION.PENDLE_PT_SWAP:A[1]=N(A[1],T.getAmountAfterRelayAndFlatFees(A[1],r[1]),I);break;case e.INTERACTION.PENDLE_MINT:A[1]=N(A[1],T.getAmountAfterRelayAndFlatFees(A[1],r[1]),I);break;case e.INTERACTION.PENDLE_REDEEM:A[2]=N(A[2],T.getAmountAfterRelayAndFlatFees(A[2],r[2]),I);break;case e.INTERACTION.PENDLE_CLAIM:A[1]=N(A[1],T.getAmountAfterRelayAndFlatFees(A[1],r[1]),I);break;case e.INTERACTION.PENDLE_LP:{const E=A.findIndex(R=>R>0n);A[E]=N(A[E],T.getAmountAfterRelayAndFlatFeesAndSlippage(A[E],r[E],c.SlippageType.Pendle));break}case e.INTERACTION.PENDLE_LP_CLAIM:A[1]=N(A[1],T.getAmountAfterRelayAndFlatFees(A[1],r[1]),I);break}return A};exports.processAmountChanges=F;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getAmountAfterRelayAndFlatFees as I, getAmountAfterRelayAndFlatFeesAndSlippage as N, getAmountAfterSlippage as
|
|
1
|
+
import { getAmountAfterRelayAndFlatFees as I, getAmountAfterRelayAndFlatFeesAndSlippage as N, getAmountAfterSlippage as i } from "../../constants/fees.constants.mjs";
|
|
2
2
|
import { FeeOverTransactionValueError as S } from "../../error-handling/customErrors/FeeOverTransactionValueError.mjs";
|
|
3
3
|
import { absBigInt as W } from "../utils/amounts.utils.mjs";
|
|
4
4
|
import "ethers";
|
|
@@ -13,8 +13,6 @@ import "../../types/transactions.types.mjs";
|
|
|
13
13
|
import "../../types/curve.types.mjs";
|
|
14
14
|
import "circomlibjs";
|
|
15
15
|
import "libsodium-wrappers";
|
|
16
|
-
import "buffer";
|
|
17
|
-
import "process";
|
|
18
16
|
import "../../constants/reorg-depths.constants.mjs";
|
|
19
17
|
import { getInteractionFromAction as d } from "./interaction-to-action.mjs";
|
|
20
18
|
const p = (D, r, E) => {
|
|
@@ -25,19 +23,19 @@ const p = (D, r, E) => {
|
|
|
25
23
|
feeUnit: E
|
|
26
24
|
});
|
|
27
25
|
return r;
|
|
28
|
-
},
|
|
26
|
+
}, $ = ({
|
|
29
27
|
erc20Addresses: D = [],
|
|
30
28
|
amountChanges: r,
|
|
31
29
|
flatFees: E,
|
|
32
30
|
feeUnit: A,
|
|
33
31
|
externalActionId: T,
|
|
34
|
-
action:
|
|
32
|
+
action: P,
|
|
35
33
|
gasTokenAddress: w
|
|
36
34
|
}) => {
|
|
37
|
-
const
|
|
38
|
-
if (
|
|
35
|
+
const L = d(T, P);
|
|
36
|
+
if (L === c.NONE)
|
|
39
37
|
throw Error("No interaction was choosen");
|
|
40
|
-
switch (
|
|
38
|
+
switch (L) {
|
|
41
39
|
case c.WITHDRAW: {
|
|
42
40
|
p(
|
|
43
41
|
r[0],
|
|
@@ -69,7 +67,7 @@ const p = (D, r, E) => {
|
|
|
69
67
|
r[_],
|
|
70
68
|
N(r[_], k, b.CurveWithdraw),
|
|
71
69
|
A
|
|
72
|
-
) : k === 0n && r[_] > 0n && _ !== E.length - 1 && (r[_] =
|
|
70
|
+
) : k === 0n && r[_] > 0n && _ !== E.length - 1 && (r[_] = i(r[_], b.CurveWithdraw));
|
|
73
71
|
});
|
|
74
72
|
break;
|
|
75
73
|
case c.CURVE_WITHDRAW_INBALANCED:
|
|
@@ -96,7 +94,7 @@ const p = (D, r, E) => {
|
|
|
96
94
|
);
|
|
97
95
|
break;
|
|
98
96
|
case c.BEEFY: {
|
|
99
|
-
const k = R(
|
|
97
|
+
const k = R(P) ? 1 : 0;
|
|
100
98
|
r[k] = p(
|
|
101
99
|
r[k],
|
|
102
100
|
N(
|
|
@@ -213,5 +211,5 @@ const p = (D, r, E) => {
|
|
|
213
211
|
return r;
|
|
214
212
|
};
|
|
215
213
|
export {
|
|
216
|
-
|
|
214
|
+
$ as processAmountChanges
|
|
217
215
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../constants/chains.constants.cjs");require("../../constants/vite.constants.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/kyc.constants.cjs");const o=require("../../constants/server.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/axelar.constants.cjs");require("../../constants/rewards.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const i=require("../utils/caseInsensitive.utils.cjs");require("../../types/circom-data.types.cjs");const s=require("../../types/hinkal.types.cjs");require("../../types/transactions.types.cjs");const n=require("../../types/pendle.types.cjs");require("../../types/curve.types.cjs");require("ethers");require("circomlibjs");require("libsodium-wrappers");require("idb-keyval");require("../utils/external-action.utils.cjs");const c=require("../utils/erc20tokenFunctions.cjs");require("../utils/convertIntegrationProviderToExternalActionId.cjs");require("axios");require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../../constants/chains.constants.cjs");require("../../constants/vite.constants.cjs");require("../../constants/contracts.constants.cjs");require("../../constants/kyc.constants.cjs");const o=require("../../constants/server.constants.cjs");require("../../constants/coingecko.constants.cjs");require("../../constants/axelar.constants.cjs");require("../../constants/rewards.constants.cjs");require("../../constants/reorg-depths.constants.cjs");const i=require("../utils/caseInsensitive.utils.cjs");require("../../types/circom-data.types.cjs");const s=require("../../types/hinkal.types.cjs");require("../../types/transactions.types.cjs");const n=require("../../types/pendle.types.cjs");require("../../types/curve.types.cjs");require("ethers");require("circomlibjs");require("libsodium-wrappers");require("idb-keyval");require("../utils/external-action.utils.cjs");const c=require("../utils/erc20tokenFunctions.cjs");require("../utils/convertIntegrationProviderToExternalActionId.cjs");require("axios");require("../utils/userAgent.cjs");require("../../data-structures/custom-token-registry/CustomTokenRegistry.cjs");require("../../data-structures/volatile-helper/VolatileHelper.cjs");const T=require("../utils/enum.utils.cjs");function P(e){if(!e)return;const r=c.getERC20Token(e.address,e.chainId);if(!r?.isVolatile)return r?.symbol.toLowerCase()==="weth"&&console.log("token:",r),r}function w(e,r){if(!e||!r)return;let t;switch(r){case n.PendleAssetType.YT:t=e?.yt;break;case n.PendleAssetType.PT:t=e?.pt;break;case n.PendleAssetType.PENDLE_LP:t=e?.lp;break;case n.PendleAssetType.SY:t=e?.sy;break;default:t=void 0;break}return t}const F=(e,r,t)=>{if(i.caseInsensitiveEqual(e.yt.address,t.erc20TokenAddress))return n.PendleSwapType.SwapExactTokenForYt;if(i.caseInsensitiveEqual(e.pt.address,t.erc20TokenAddress))return n.PendleSwapType.SwapExactTokenForPt;if(i.caseInsensitiveEqual(e.yt.address,r.erc20TokenAddress))return n.PendleSwapType.SwapExactYtForToken;if(i.caseInsensitiveEqual(e.pt.address,r.erc20TokenAddress))return n.PendleSwapType.SwapExactPtForToken},k=e=>{let r;switch(e){case n.PendleSwapType.SwapExactTokenForYt:r=o.API_CONFIG.ROUTES.pendleSwapExactTokenForYT;break;case n.PendleSwapType.SwapExactTokenForPt:r=o.API_CONFIG.ROUTES.pendleSwapExactTokenForPt;break;case n.PendleSwapType.SwapExactYtForToken:r=o.API_CONFIG.ROUTES.pendleSwapExactYtForToken;break;case n.PendleSwapType.SwapExactPtForToken:r=o.API_CONFIG.ROUTES.pendleSwapExactPtForToken;break;default:throw new Error("Cant determine Pendle Swap Type Api Route")}return r},q=(e,r,t,a)=>{if(!T.isInEnum(s.PendleAction,e))throw new Error("getTokenIndexForPendleFlatFee: Invalid Pendle Action");if(a)return t.findIndex(d=>d.toLowerCase()===a?.toLowerCase());const l=r.findIndex(d=>d>0n),p=r.length-1;if(r[p]<=0n)throw new Error("getTokenIndexForPendleFlatFee: Last token in amountChange is not > 0");let u=l;return(e===s.PendleAction.Mint||e===s.PendleAction.Redeem||e===s.PendleAction.PoolRemove)&&(u=l),u};exports.determinePendleSwapType=F;exports.determinePendleSwapTypeApiRoute=k;exports.erc20TokenFromPendleAsset=P;exports.getAssetTypeFromPendleMarket=w;exports.getTokenIndexForPendleFlatFee=q;
|
|
@@ -21,20 +21,18 @@ import "../utils/external-action.utils.mjs";
|
|
|
21
21
|
import { getERC20Token as T } from "../utils/erc20tokenFunctions.mjs";
|
|
22
22
|
import "../utils/convertIntegrationProviderToExternalActionId.mjs";
|
|
23
23
|
import "axios";
|
|
24
|
-
import "buffer";
|
|
25
|
-
import "process";
|
|
26
24
|
import "../utils/userAgent.mjs";
|
|
27
25
|
import "../../data-structures/custom-token-registry/CustomTokenRegistry.mjs";
|
|
28
26
|
import "../../data-structures/volatile-helper/VolatileHelper.mjs";
|
|
29
27
|
import { isInEnum as w } from "../utils/enum.utils.mjs";
|
|
30
|
-
function
|
|
28
|
+
function V(e) {
|
|
31
29
|
if (!e)
|
|
32
30
|
return;
|
|
33
31
|
const r = T(e.address, e.chainId);
|
|
34
32
|
if (!r?.isVolatile)
|
|
35
33
|
return r?.symbol.toLowerCase() === "weth" && console.log("token:", r), r;
|
|
36
34
|
}
|
|
37
|
-
function
|
|
35
|
+
function j(e, r) {
|
|
38
36
|
if (!e || !r)
|
|
39
37
|
return;
|
|
40
38
|
let o;
|
|
@@ -57,7 +55,7 @@ function H(e, r) {
|
|
|
57
55
|
}
|
|
58
56
|
return o;
|
|
59
57
|
}
|
|
60
|
-
const
|
|
58
|
+
const z = (e, r, o) => {
|
|
61
59
|
if (i(e.yt.address, o.erc20TokenAddress))
|
|
62
60
|
return t.SwapExactTokenForYt;
|
|
63
61
|
if (i(e.pt.address, o.erc20TokenAddress))
|
|
@@ -66,7 +64,7 @@ const J = (e, r, o) => {
|
|
|
66
64
|
return t.SwapExactYtForToken;
|
|
67
65
|
if (i(e.pt.address, r.erc20TokenAddress))
|
|
68
66
|
return t.SwapExactPtForToken;
|
|
69
|
-
},
|
|
67
|
+
}, H = (e) => {
|
|
70
68
|
let r;
|
|
71
69
|
switch (e) {
|
|
72
70
|
case t.SwapExactTokenForYt:
|
|
@@ -85,7 +83,7 @@ const J = (e, r, o) => {
|
|
|
85
83
|
throw new Error("Cant determine Pendle Swap Type Api Route");
|
|
86
84
|
}
|
|
87
85
|
return r;
|
|
88
|
-
},
|
|
86
|
+
}, J = (e, r, o, s) => {
|
|
89
87
|
if (!w(p, e))
|
|
90
88
|
throw new Error("getTokenIndexForPendleFlatFee: Invalid Pendle Action");
|
|
91
89
|
if (s)
|
|
@@ -99,9 +97,9 @@ const J = (e, r, o) => {
|
|
|
99
97
|
return (e === p.Mint || e === p.Redeem || e === p.PoolRemove) && (c = l), c;
|
|
100
98
|
};
|
|
101
99
|
export {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
100
|
+
z as determinePendleSwapType,
|
|
101
|
+
H as determinePendleSwapTypeApiRoute,
|
|
102
|
+
V as erc20TokenFromPendleAsset,
|
|
103
|
+
j as getAssetTypeFromPendleMarket,
|
|
104
|
+
J as getTokenIndexForPendleFlatFee
|
|
107
105
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("ethers"),y=require("../../data-structures/crypto-keys/keys.cjs"),s=require("libsodium-wrappers"),c=require("../../crypto/poseidon.cjs");require("circomlibjs");const f=(e,t,r)=>{const n=o.ethers.utils.defaultAbiCoder.encode(["uint256","address"],[e,t]),a=s.crypto_box_seal(n,o.ethers.utils.arrayify(r));return`0x${Buffer.from(a).toString("hex")}`},p=(e,t)=>{const r=Buffer.from(e.slice(2),"hex"),{publicKey:n,privateKey:a}=y.UserKeys.getEncryptionKeyPair(t.getShieldedPrivateKey());try{const i=s.crypto_box_seal_open(r,o.ethers.utils.arrayify(n),o.ethers.utils.arrayify(a)),d=Buffer.from(i).toString("utf-8"),[u,l]=o.ethers.utils.defaultAbiCoder.decode(["uint256","address"],d);return{stakeBlinding:u.toBigInt(),stakedTokenRecipient:l}}catch{console.log("failed to decrypt");return}},S=(e,t,r,n,a,i)=>BigInt(c.poseidonHash(...[e,t,r,n,a,i].map(BigInt))),k=(e,t)=>c.poseidonHash(e,t),g=(e,t,r,n,a)=>o.ethers.utils.defaultAbiCoder.encode(["uint8","uint256","address","bytes","bytes"],[e,t,r,n,a]);exports.calculateStakeNullifier=k;exports.createStakeCommitment=S;exports.decryptStake=p;exports.encodeHStakeMetadata=g;exports.encryptStake=f;
|