@thesingularitynetwork/singularity-sdk-lite 0.0.0-stage → 0.2.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singularity-sdk-lite.cjs.development.js","sources":["../src/entities/error.ts","../src/entities/types.ts","../src/utils/util.ts","../src/services/BaseService.ts","../src/config/chain.ts","../src/config/config.ts","../src/services/base/deposit.ts","../src/services/merkletree.ts","../src/services/base/withdraw.ts","../src/services/noteService.ts","../src/config/contractConfig.ts","../src/config/stakingConfig.ts","../src/darkpool.ts"],"sourcesContent":["export class DarkpoolError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'DarkpoolError';\n }\n}\n","export enum NoteOnChainStatus {\n ACTIVE = 'ACTIVE',\n SPENT = 'SPENT',\n LOCKED = 'LOCKED',\n UNKNOWN = 'UNKNOWN'\n}\n","import { ethers } from 'ethers';\n\nconst NATIVE_ASSETS = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';\n\nexport function isNativeAsset(asset: string): boolean {\n return asset.toLowerCase() === NATIVE_ASSETS.toLowerCase();\n}\n\nexport function isAddressEquals(address1: string, address2: string): boolean {\n if (!address1 || !address2) return false;\n return address1.toLowerCase() === address2.toLowerCase();\n}\n\nexport function hexlify32(value: bigint | number): string {\n return ethers.zeroPadValue(ethers.toBeHex(value), 32);\n}\n\nexport function hexlify16(value: bigint | number): string {\n return ethers.zeroPadValue(ethers.toBeHex(value), 16);\n}\n\nexport function hexlify8(value: bigint | number): string {\n return ethers.zeroPadValue(ethers.toBeHex(value), 8);\n}\n\nexport function hexlify5(value: bigint | number): string {\n return ethers.zeroPadValue(ethers.toBeHex(value), 5);\n}\n\nexport function hexlify3(value: bigint | number): string {\n return ethers.zeroPadValue(ethers.toBeHex(value), 3);\n}\n\nexport function hexlify1(value: bigint | number): string {\n return ethers.toBeHex(value);\n}\n\nexport function isHexEquals(hex1: string, hex2: string): boolean {\n if (!hex1 || !hex2) return false;\n return hex1.toLowerCase() === hex2.toLowerCase();\n}\n","import { Note, PartialNote } from '@thesingularitynetwork/darkpool-v1-proof-lite';\nimport axios from 'axios';\nimport { Relayer } from '../entities/relayer';\nimport { DarkpoolError } from '../entities';\nimport { DarkPool } from '../darkpool';\n\nexport class BaseContext {\n private _signature: string;\n private _merkleRoot?: string;\n private _tx?: string;\n\n constructor(signature: string) {\n this._signature = signature;\n }\n\n get signature(): string {\n return this._signature;\n }\n\n set merkleRoot(merkleRoot: string | undefined) {\n this._merkleRoot = merkleRoot;\n }\n\n get merkleRoot(): string | undefined {\n return this._merkleRoot;\n }\n\n set tx(tx: string | undefined) {\n this._tx = tx;\n }\n\n get tx(): string | undefined {\n return this._tx;\n }\n}\n\nexport class BaseRelayerContext extends BaseContext {\n private _relayer: Relayer;\n private _jobId?: string;\n\n constructor(relayer: Relayer, signature: string) {\n super(signature);\n this._relayer = relayer;\n }\n\n get relayer(): Relayer {\n return this._relayer;\n }\n\n set jobId(jobId: string | undefined) {\n this._jobId = jobId;\n }\n\n get jobId(): string | undefined {\n return this._jobId;\n }\n}\n\nexport interface BaseRelayerResult {\n txHash: string;\n}\n\nexport interface MultiWithdrawResult extends BaseRelayerResult {\n outAmounts: bigint[];\n}\n\nexport interface SingleNoteResult extends BaseRelayerResult {\n note: Note;\n}\n\nexport interface MultiNotesResult extends BaseRelayerResult {\n notes: Note[];\n}\n\nexport abstract class BaseContractService<T> {\n protected _darkPool: DarkPool;\n\n constructor(_darkPool: DarkPool) {\n this._darkPool = _darkPool;\n }\n\n abstract prepare(...args: any[]): Promise<{ context: T; outNotes: Note[] }>;\n\n abstract generateProof(context: T): Promise<void>;\n\n abstract execute(context: T): Promise<string>;\n}\n\nexport abstract class BaseRelayerService<T extends BaseRelayerContext, R, S extends BaseRelayerResult> {\n protected _darkPool: DarkPool;\n\n constructor(_darkPool: DarkPool) {\n this._darkPool = _darkPool;\n }\n\n abstract prepare(...args: any[]): Promise<{ context: T; outPartialNotes: PartialNote[] }>;\n\n abstract generateProof(context: T): Promise<void>;\n\n protected abstract getRelayerRequest(context: T): Promise<R>;\n\n protected abstract getRelayerPath(): string;\n\n protected abstract postExecute(context: T): Promise<S>;\n\n async execute(context: T): Promise<string> {\n const relayerRequest = await this.getRelayerRequest(context);\n const response = await axios.post(context.relayer.hostUrl + this.getRelayerPath(), relayerRequest);\n if (response.status == 200) {\n context.jobId = response.data.id;\n return response.data.id;\n } else if (response.status == 400) {\n throw new Error('Request error' + response.data.error);\n } else {\n throw new Error('Relayer not asscessable');\n }\n }\n\n async executeAndWaitForResult(context: T): Promise<S> {\n await this.execute(context);\n\n const { error, txHash } = await this.pollJobStatus(context);\n\n console.log('relayer response, error and tx: ', error, txHash);\n\n if (error) {\n throw new DarkpoolError(error);\n }\n\n return await this.postExecute(context);\n }\n\n async pollJobStatus(context: T): Promise<{ error: string | undefined; txHash: string | undefined }> {\n let tries = 1;\n let txHash = undefined;\n while (tries <= 100) {\n if (tries >= 100) {\n break;\n }\n try {\n const response = await axios.get(`${context.relayer.hostUrl}/v1/jobs/${context.jobId}`);\n if (response.status === 400) {\n const { error } = response.data;\n console.log(error);\n return {\n error: 'Failed to submit transaction to relayer:' + error,\n txHash: undefined\n };\n }\n if (response.status === 200) {\n const { txHash, status, failedReason } = response.data;\n context.tx = txHash;\n\n if (status === 'FAILED') {\n return {\n error: failedReason ?? 'Transaction failed.',\n txHash: txHash\n };\n }\n if (status === 'CONFIRMED' || status === 'MINED') {\n return {\n error: undefined,\n txHash: txHash\n };\n }\n }\n await new Promise(resolve => setTimeout(resolve, 5000));\n } catch (error) {\n console.log(error);\n }\n tries++;\n }\n\n return {\n error: 'Waited too long for transaction to be mined.',\n txHash\n };\n }\n}\n\nexport function transferCodeToNoteFooter(transferCode: string, chainId: number) {\n const params = transferCode.trim().split('-');\n if (params.length < 3 || params[0] != 'ONEOFF' || params[1] != 'RECIPIENT' || params[2] != chainId.toString()) {\n throw new DarkpoolError('Invalid receiver code');\n }\n return BigInt(params[3]);\n}\n\nexport function validateRecipientCode(code: string) {\n const codePattern = /^(ONEOFF-RECIPIENT)-(\\d+)-(\\d+)/gm;\n return codePattern.test(code);\n}\n","export enum ChainId {\n HARDHAT = 31337,\n HARDHAT_ARBITRUM = 31338,\n HARDHAT_BASE = 31339,\n MAINNET = 1,\n SEPOLIA = 11155111,\n ARBITRUM_ONE = 42161,\n BASE = 8453,\n BounceBit = 6001,\n BounceBitTestnet = 6000\n}\n","import { ChainId } from './chain';\n\nexport enum Action {\n CURVE_LP_DEPOSIT = 'CURVE_LP_DEPOSIT',\n CURVE_LP_WITHDRAW = 'CURVE_LP_WITHDRAW',\n CURVE_MULTI_SWAP = 'CURVE_MULTI_SWAP',\n DEFI_INFRA = 'DEFI_INFRA',\n STAKE = 'STAKE',\n REDEEM = 'REDEEM',\n UNISWAP_SINGLE_SWAP = 'UNISWAP_SINGLE_SWAP',\n UNISWAP_LP_DEPOSIT = 'UNISWAP_LP_DEPOSIT',\n UNISWAP_LP_WITHDRAW = 'UNISWAP_LP_WITHDRAW',\n UNISWAP_LP_COLLECT_FEE = 'UNISWAP_LP_COLLECT_FEE',\n WITHDRAW = 'WITHDRAW',\n AERODROME_SWAP = 'AERODROME_SWAP',\n AERODROME_LP_DEPOSIT = 'AERODROME_LP_DEPOSIT',\n AERODROME_LP_WITHDRAW = 'AERODROME_LP_WITHDRAW',\n ROCKET_POOL_STAKE = 'ROCKET_POOL_STAKE',\n ROCKET_POOL_UNSTAKE = 'ROCKET_POOL_UNSTAKE',\n SABLIER_CLAIM_STREAM = 'SABLIER_CLAIM_STREAM',\n THE_DEEP_NOTE_DEPOSIT = 'THE_DEEP_NOTE_DEPOSIT',\n THE_DEEP_WITHDRAW = 'THE_DEEP_WITHDRAW'\n}\n\nexport const relayerPathConfig: { [action: string]: string } = {\n [Action.WITHDRAW]: '/v1/pgDarkPoolWithdraw',\n [Action.UNISWAP_SINGLE_SWAP]: '/v1/pgDarkPoolUniswapSingleSwap',\n [Action.UNISWAP_LP_DEPOSIT]: '/v1/pgDarkPoolUniswapLP',\n [Action.UNISWAP_LP_WITHDRAW]: '/v1/pgDarkPoolUniswapRemoveLiquidity',\n [Action.UNISWAP_LP_COLLECT_FEE]: '/v1/pgDarkPoolUniswapCollectFees',\n [Action.CURVE_LP_DEPOSIT]: '/v1/pgDarkPoolCurveAddLiquidity',\n [Action.CURVE_LP_WITHDRAW]: '/v1/pgDarkPoolCurveRemoveLiquidity',\n [Action.CURVE_MULTI_SWAP]: '/v1/pgDarkPoolCurveMultiExchange',\n [Action.DEFI_INFRA]: '/v1/pgDarkPoolDefiInfra',\n [Action.STAKE]: '/v1/pgDarkPoolZkStake',\n [Action.REDEEM]: '/v1/pgDarkPoolZkRedeem',\n [Action.AERODROME_SWAP]: '/v1/pgDarkPoolAerodromeSwap',\n [Action.AERODROME_LP_DEPOSIT]: '/v1/pgDarkPoolAerodromeAddLiquidity',\n [Action.AERODROME_LP_WITHDRAW]: '/v1/pgDarkPoolAerodromeRemoveLiquidity',\n [Action.ROCKET_POOL_STAKE]: '/v1/pgDarkPoolRocketPoolStake',\n [Action.ROCKET_POOL_UNSTAKE]: '/v1/pgDarkPoolRocketPoolUnStake',\n [Action.SABLIER_CLAIM_STREAM]: '/v1/pgDarkPoolSablierClaim',\n [Action.THE_DEEP_NOTE_DEPOSIT]: '/v1/pgDarkPoolTheDeepNoteDeposit',\n [Action.THE_DEEP_WITHDRAW]: '/v1/pgDarkPoolTheDeepWithdraw'\n};\n\nexport const legacyTokenConfig: { [chainId: number]: string[] } = {\n [ChainId.MAINNET]: ['0xdac17f958d2ee523a2206206994597c13d831ec7'],\n [ChainId.HARDHAT]: ['0xdac17f958d2ee523a2206206994597c13d831ec7']\n};\n","import { DepositProofResult, Note, createNote, generateDepositProof } from '@thesingularitynetwork/darkpool-v1-proof-lite';\nimport { ethers } from 'ethers';\nimport DarkpoolAssetManagerAbi from '../../abis/DarkpoolAssetManager.json';\nimport ERC20Abi from '../../abis/IERC20.json';\nimport ERC20_USDT from '../../abis/IERC20_USDT.json';\nimport { DarkPool } from '../../darkpool';\nimport { DarkpoolError } from '../../entities';\nimport { hexlify32, isNativeAsset } from '../../utils/util';\nimport { BaseContext, BaseContractService } from '../BaseService';\nimport { legacyTokenConfig } from '../../config/config';\n\nconst MAX_ALLOWANCE = BigInt('115792089237316195423570985008687907853269984665640564039457584007913129639935'); // 2**256 - 1\n\nexport class DepositContext extends BaseContext {\n private _note?: Note;\n private _address?: string;\n private _proof?: DepositProofResult;\n\n constructor(signature: string) {\n super(signature);\n }\n\n set note(note: Note | undefined) {\n this._note = note;\n }\n\n get note(): Note | undefined {\n return this._note;\n }\n\n set address(address: string | undefined) {\n this._address = address;\n }\n\n get address(): string | undefined {\n return this._address;\n }\n\n set proof(proof: DepositProofResult | undefined) {\n this._proof = proof;\n }\n\n get proof(): DepositProofResult | undefined {\n return this._proof;\n }\n}\n\nexport class DepositService extends BaseContractService<DepositContext> {\n constructor(_darkPool: DarkPool) {\n super(_darkPool);\n }\n\n public async prepare(\n asset: string,\n amount: bigint,\n walletAddress: string,\n signature: string\n ): Promise<{ context: DepositContext; outNotes: Note[] }> {\n const note = await createNote(asset, amount, signature);\n const context = new DepositContext(signature);\n context.note = note;\n context.address = walletAddress;\n return { context, outNotes: [note] };\n }\n\n public async generateProof(context: DepositContext): Promise<void> {\n if (!context || !context.note || !context.address || !context.signature) {\n throw new DarkpoolError('Invalid context');\n }\n const proof = await generateDepositProof({\n note: context.note,\n signedMessage: context.signature,\n address: context.address,\n options: this._darkPool.proofOptions\n });\n context.proof = proof;\n }\n\n public async execute(context: DepositContext): Promise<string> {\n if (!context || !context.note || !context.address || !context.signature || !context.proof) {\n throw new DarkpoolError('Invalid context');\n }\n const signer = this._darkPool.signer;\n const contract = new ethers.Contract(\n this._darkPool.contracts.darkpoolAssetManager,\n DarkpoolAssetManagerAbi.abi,\n signer\n );\n\n if (!isNativeAsset(context.note.asset)) {\n await this.allowance(context);\n const tx = await contract.depositERC20(\n context.note.asset,\n hexlify32(context.note.amount),\n hexlify32(context.note.note),\n context.proof.noteFooter,\n context.proof.proof.proof\n );\n return tx.hash;\n } else {\n const tx = await contract.depositETH(\n hexlify32(context.note.note),\n context.proof.noteFooter,\n context.proof.proof.proof,\n { value: context.note.amount }\n );\n return tx.hash;\n }\n }\n\n protected async allowance(context: DepositContext) {\n if (!context || !context.note || !context.address || !context.signature || !context.proof) {\n throw new DarkpoolError('Invalid context');\n }\n const signer = this._darkPool.signer;\n const allowanceContract = new ethers.Contract(context.note.asset, ERC20Abi.abi, this._darkPool);\n const allowance = await allowanceContract.allowance(\n signer.getAddress(),\n this._darkPool.contracts.darkpoolAssetManager\n );\n if (BigInt(allowance) < context.note.amount) {\n const isLegacy =\n legacyTokenConfig.hasOwnProperty(this._darkPool.chainId) &&\n legacyTokenConfig[this._darkPool.chainId].includes(context.note.asset.toLowerCase());\n const contract = new ethers.Contract(context.note.asset, isLegacy ? ERC20_USDT.abi : ERC20Abi.abi, signer);\n const tx = await contract.approve(this._darkPool.contracts.darkpoolAssetManager, hexlify32(MAX_ALLOWANCE));\n await tx.wait();\n }\n }\n\n public getContractCallParameters(context: DepositContext) {\n if (!context || !context.note || !context.address || !context.signature || !context.proof) {\n throw new DarkpoolError('Invalid context');\n }\n\n return {\n proof: context.proof.proof.proof,\n asset: context.note.asset,\n amount: hexlify32(context.note.amount),\n note: hexlify32(context.note.note),\n noteFooter: context.proof.noteFooter\n };\n }\n}\n","import { ethers } from 'ethers';\nimport MerkleAbi from '../abis/MerkleTreeOperator.json';\nimport { DarkPool } from '../darkpool';\nimport { hexlify32 } from '../utils/util';\n\nexport interface MerklePath {\n noteCommitment: bigint;\n path: string[];\n index: number[];\n root: string;\n}\n\nfunction getContract(address: string, darkPool: DarkPool) {\n const provider = darkPool.provider;\n return new ethers.Contract(address, MerkleAbi.abi, provider);\n}\n\nexport async function getMerklePathAndRoot(note: bigint, darkPool: DarkPool) {\n const contract = getContract(darkPool.contracts.merkleTreeOperator, darkPool);\n const [path, index, root] = await contract.getMerklePath(hexlify32(note));\n return { path, index: index.map((x: boolean) => (x ? 1 : 0)), root };\n}\n\nexport async function multiGetMerklePathAndRoot(notes: bigint[], darkPool: DarkPool): Promise<MerklePath[]> {\n const contract = getContract(darkPool.contracts.merkleTreeOperator, darkPool);\n\n const blockNumber = await darkPool.provider.getBlockNumber();\n\n const [root, ...results] = await Promise.all([\n contract.getMerkleRoot({ blockTag: blockNumber }),\n ...notes.map(note => contract.getMerklePath(hexlify32(note), { blockTag: blockNumber }))\n ]);\n\n return results.map(([path, index, _], i) => ({\n noteCommitment: notes[i],\n path,\n index: index.map((x: boolean) => (x ? 1 : 0)),\n root\n }));\n}\n","import {\n Note,\n PartialNote,\n WithdrawProofResult,\n generateWithdrawProof\n} from '@thesingularitynetwork/darkpool-v1-proof-lite';\nimport { Action, relayerPathConfig } from '../../config/config';\nimport { WithdrawRelayerRequest } from '../../entities/relayerRequestTypes';\nimport { hexlify32 } from '../../utils/util';\nimport { BaseRelayerContext, BaseRelayerResult, BaseRelayerService } from '../BaseService';\nimport { getMerklePathAndRoot } from '../merkletree';\nimport { Relayer } from '../../entities/relayer';\nimport { DarkpoolError } from '../../entities';\nimport { DarkPool } from '../../darkpool';\n\nclass WithdrawContext extends BaseRelayerContext {\n private _note?: Note;\n private _recipient?: string;\n private _proof?: WithdrawProofResult;\n\n constructor(relayer: Relayer, signature: string) {\n super(relayer, signature);\n }\n\n set note(note: Note | undefined) {\n this._note = note;\n }\n\n get note(): Note | undefined {\n return this._note;\n }\n\n set recipient(recipient: string | undefined) {\n this._recipient = recipient;\n }\n\n get recipient(): string | undefined {\n return this._recipient;\n }\n\n set proof(proof: WithdrawProofResult | undefined) {\n this._proof = proof;\n }\n\n get proof(): WithdrawProofResult | undefined {\n return this._proof;\n }\n}\n\nexport class WithdrawService extends BaseRelayerService<WithdrawContext, WithdrawRelayerRequest, BaseRelayerResult> {\n constructor(_darkPool: DarkPool) {\n super(_darkPool);\n }\n\n public async prepare(\n note: Note,\n recipient: string,\n signature: string\n ): Promise<{ context: WithdrawContext; outPartialNotes: PartialNote[] }> {\n const context = new WithdrawContext(this._darkPool.getRelayer(), signature);\n context.note = note;\n context.recipient = recipient;\n return { context, outPartialNotes: [] };\n }\n\n public async generateProof(context: WithdrawContext): Promise<void> {\n if (!context || !context.note || !context.recipient || !context.signature) {\n throw new DarkpoolError('Invalid context');\n }\n\n const path = await getMerklePathAndRoot(context.note.note, this._darkPool);\n context.merkleRoot = path.root;\n\n const proof = await generateWithdrawProof({\n note: context.note,\n address: context.recipient,\n merkleRoot: path.root,\n merklePath: path.path,\n merkleIndex: path.index,\n relayer: context.relayer.relayerAddress,\n signedMessage: context.signature,\n options: this._darkPool.proofOptions\n });\n context.proof = proof;\n }\n\n public async getRelayerRequest(context: WithdrawContext): Promise<WithdrawRelayerRequest> {\n if (\n !context ||\n !context.note ||\n !context.signature ||\n !context.merkleRoot ||\n !context.recipient ||\n !context.proof\n ) {\n throw new DarkpoolError('Invalid context');\n }\n\n const withdrawRelayerRequest: WithdrawRelayerRequest = {\n proof: context.proof.proof.proof,\n asset: context.note.asset,\n merkleRoot: context.merkleRoot,\n nullifier: context.proof.nullifier,\n recipient: context.recipient,\n relayer: context.relayer.relayerAddress,\n amount: hexlify32(context.note.amount),\n refund: hexlify32(0n),\n verifierArgs: context.proof.proof.verifyInputs\n };\n\n return withdrawRelayerRequest;\n }\n\n public getRelayerPath(): string {\n return relayerPathConfig[Action.WITHDRAW];\n }\n\n //eslint-disable-next-line @typescript-eslint/no-unused-vars\n public async postExecute(context: WithdrawContext): Promise<BaseRelayerResult> {\n console.log(context.tx);\n return { txHash: context.tx! };\n }\n\n public getRelayerContractCallParameters(context: WithdrawContext) {\n if (!context || !context.note || !context.recipient || !context.signature || !context.proof) {\n throw new DarkpoolError('Invalid context');\n }\n\n return {\n proof: context.proof.proof.proof,\n asset: context.note.asset,\n merkleRoot: context.merkleRoot,\n nullifier: context.proof.nullifier,\n recipient: context.recipient,\n relayer: context.relayer.relayerAddress,\n amount: hexlify32(context.note.amount)\n };\n }\n}\n","import { calcNullifier, getNullifier, Note, validateNote } from '@thesingularitynetwork/darkpool-v1-proof-lite';\nimport { DarkPool } from '../darkpool';\nimport { hexlify32 } from '../utils/util';\nimport { ethers } from 'ethers';\nimport MerkleAbi from '../abis/MerkleTreeOperator.json';\nimport { NoteOnChainStatus } from '../entities';\n\nfunction getContract(address: string, darkPool: DarkPool) {\n const provider = darkPool.provider;\n return new ethers.Contract(address, MerkleAbi.abi, provider);\n}\n\nasync function getNoteOnChainStatus(darkPool: DarkPool, note: string, nullifier: string) {\n const contract = getContract(darkPool.contracts.merkleTreeOperator, darkPool);\n const isCreated = (await contract.noteCommitmentsCreated(note)) as boolean;\n if (!isCreated) {\n return NoteOnChainStatus.UNKNOWN;\n }\n const isSpent = (await contract.nullifiersUsed(nullifier)) as boolean;\n if (isSpent) {\n return NoteOnChainStatus.SPENT;\n }\n const isLocked = (await contract.nullifiersLocked(nullifier)) as boolean;\n if (isLocked) {\n return NoteOnChainStatus.LOCKED;\n }\n return NoteOnChainStatus.ACTIVE;\n}\n\nexport async function getNoteOnChainStatusByPublicKey(\n darkPool: DarkPool,\n note: Note,\n publicKey: any\n): Promise<NoteOnChainStatus> {\n const nullifier = calcNullifier(note.rho, publicKey);\n const onChainStatus = await getNoteOnChainStatus(darkPool, hexlify32(note.note), hexlify32(nullifier));\n return onChainStatus;\n}\n\nexport async function getNoteOnChainStatusBySignature(\n darkPool: DarkPool,\n note: Note,\n signature: string\n): Promise<NoteOnChainStatus> {\n const nullifier = await getNullifier({\n rho: note.rho,\n signedMessage: signature\n });\n const onChainStatus = await getNoteOnChainStatus(darkPool, hexlify32(note.note), nullifier);\n return onChainStatus;\n}\n\nexport async function isNoteActive(darkPool: DarkPool, note: Note, signature: string): Promise<boolean> {\n const nullifier = await getNullifier({\n rho: note.rho,\n signedMessage: signature\n });\n const onChainStatus = await getNoteOnChainStatus(darkPool, hexlify32(note.note), nullifier);\n return onChainStatus === NoteOnChainStatus.ACTIVE;\n}\n\nexport async function isNoteSpent(darkPool: DarkPool, note: Note, signature: string) {\n const nullifier = await getNullifier({\n rho: note.rho,\n signedMessage: signature\n });\n const onChainStatus = await getNoteOnChainStatus(darkPool, hexlify32(note.note), nullifier);\n return onChainStatus === NoteOnChainStatus.SPENT;\n}\n\nexport async function isNoteLocked(darkPool: DarkPool, note: Note, signature: string) {\n const nullifier = await getNullifier({\n rho: note.rho,\n signedMessage: signature\n });\n const onChainStatus = await getNoteOnChainStatus(darkPool, hexlify32(note.note), nullifier);\n return onChainStatus === NoteOnChainStatus.LOCKED;\n}\n\nexport async function isNoteValid(note: Note, signature: string) {\n return await validateNote(note, signature);\n}\n\nexport async function isNftNoteValid(note: Note, signature: string) {\n return await validateNote(note, signature);\n}\n","import { ChainId } from './chain';\n\nexport type ContractConfiguartion = {\n priceOracle: string;\n ethAddress: string;\n nativeWrapper: string;\n complianceManager: string;\n merkleTreeOperator: string;\n darkpoolAssetManager: string;\n transferAssetManager: string;\n otcSwapAssetManager: string;\n stakingOperator: string;\n stakingAssetManager: string;\n drakpoolSubgraphUrl: string;\n batchJoinSplitAssetManager: string;\n darkpoolSwapAssetManager: string;\n nftAssetManager: string;\n theDeepAssetManager?: string;\n uniswapConfig?: {\n swapRouterAddress: string;\n quoterContractAddress: string;\n wrappedNativeTokenAddress: string;\n v3PosNftAddress: string;\n factoryAddress: string;\n subgraphUrl: string;\n };\n sablierConfig?: {\n aliasPrefixLinear: string;\n aliasPrefixDynamic: string;\n lockupLinear: string;\n lockupDynamic: string;\n sablierDynamicAssetManager: string;\n sablierLinearAssetManager: string;\n };\n};\n\nexport const contractConfig: { [chainId: number]: ContractConfiguartion } = {\n [ChainId.MAINNET]: {\n priceOracle: '0x0AdDd25a91563696D8567Df78D5A01C9a991F9B8',\n ethAddress: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n nativeWrapper: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n complianceManager: '0x630aD89523a18fA30F752297F3F53B7BC363488b',\n merkleTreeOperator: '0x152f1051c8D37Fba9A362Fc9b32a0eeF8496202F',\n darkpoolAssetManager: '0x159F3668c72BBeCdF1fb31beeD606Ec9649654eB',\n transferAssetManager: '0x0', //FIXME\n otcSwapAssetManager: '0xB8096ecD7d3185b24AA218C509175185C11f13a9',\n stakingOperator: '0x539bcbc08F2cA42E50887dA4Db0DC34EbF0B090b',\n stakingAssetManager: '0x1Fa7Cb4925086128f3bb9e26761C9C75dbAC3CD1',\n batchJoinSplitAssetManager: '0x1346b13Ff3Bd19d882E2491cBdAb2DbFc59982E3',\n darkpoolSwapAssetManager: '0x0', //FIXME\n nftAssetManager: '0xbB0679f6831Ee3736AE53D8fcECB9c0e684615d0',\n drakpoolSubgraphUrl:\n 'https://subgraph.satsuma-prod.com/1c6a44a9ed6e/pgs-team--611591/singularity-subgraph/version/v0.0.1/api',\n uniswapConfig: {\n swapRouterAddress: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',\n quoterContractAddress: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',\n wrappedNativeTokenAddress: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n v3PosNftAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n factoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n subgraphUrl: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3?source=uniswap'\n }\n },\n [ChainId.ARBITRUM_ONE]: {\n priceOracle: '0x0AdDd25a91563696D8567Df78D5A01C9a991F9B8',\n ethAddress: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n nativeWrapper: '0x82af49447d8a07e3bd95bd0d56f35241523fbab1',\n stakingOperator: '0xF4f1D4F28Be82D81135c13D255452B8325B585B0',\n stakingAssetManager: '0xB1CC5D9227323330E8a58e891c123B38D03f0BAA',\n complianceManager: '0x23A37b553c46f4864537Ab1e8d1e49804b47A5A7',\n merkleTreeOperator: '0x0e2aCb73EBB02bd4099d495bcb96F7522F84ddb7',\n darkpoolAssetManager: '0xf7C40b5057a1D1a3d58B02BCdb125E63ef380564',\n transferAssetManager: '0x0', //FIXME\n otcSwapAssetManager: '0xcbFA6BB3eb4Bd9BF97866baE75FfB62f3aE897c0',\n batchJoinSplitAssetManager: '0xd39EA1e275ee468f977f93134a564aF76696E0fE',\n darkpoolSwapAssetManager: '0x0', //FIXME\n nftAssetManager: '0x143242Ff430620a3FA3f9fEaB576050fb20C63BB',\n\n drakpoolSubgraphUrl: 'https://subgraph.satsuma-prod.com/1c6a44a9ed6e/pgs-team--611591/singularity-arb-subgraph/api'\n },\n [ChainId.BounceBit]: {\n priceOracle: '0x0',\n ethAddress: '0x0000000000000000000000000000000000000000',\n nativeWrapper: '0xF4c20e5004C6FDCDdA920bDD491ba8C98a9c5863',\n stakingOperator: '0x4d459dDe25707CA353De15CC3B85b7C2e4bb380c',\n stakingAssetManager: '0xe6B0a94e1eA206B122a11a30dA7FB9ADaA12ef42',\n complianceManager: '0x1Fe002A6E413C70D5CB8477cDaA0422fc7611fCc',\n merkleTreeOperator: '0x159F3668c72BBeCdF1fb31beeD606Ec9649654eB',\n darkpoolAssetManager: '0x722133fBb559E2849e3402De3279Bd3059b7fe4E',\n transferAssetManager: '0x0', //FIXME\n otcSwapAssetManager: '0xAa5e02284d1Fd0f6C12AFBDABc28Ed5aC5a6474b',\n batchJoinSplitAssetManager: '0x0', //FIXME\n darkpoolSwapAssetManager: '0x0', //FIXME\n nftAssetManager: '0x0', //FIXME\n drakpoolSubgraphUrl: 'https://bb.subgraph.thesingularity.network/subgraphs/name/singularity/'\n },\n [ChainId.BASE]: {\n priceOracle: '0xf224a25453D76A41c4427DD1C05369BC9f498444',\n ethAddress: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n nativeWrapper: '0x4200000000000000000000000000000000000006',\n complianceManager: '0xFa368E046B4051582662f7d1C033756dB55058cF',\n merkleTreeOperator: '0xdcd767f6f877B4Ef85d631f23e51ff3a2BCC9378',\n darkpoolAssetManager: '0x84eb120A35802460484015e6748375369e40468a',\n transferAssetManager: '0x0', //FIXME\n stakingOperator: '0xfdA33b941E6C014bD079C6917b815EFA58976f37',\n stakingAssetManager: '0xa3d27E1Ca5057372478011FB781479B8A1fF7AA3',\n otcSwapAssetManager: '0x3D76Fd85FCc2593970d22Aa34bcC4c5444c57c9D',\n batchJoinSplitAssetManager: '0x7b497A97EC69621019fc7eC3D5EF06859AfEBaf1',\n darkpoolSwapAssetManager: '0x0', //FIXME\n nftAssetManager: '0xC4e979C922E93938dBaBb6e1623a19cbc6132489',\n drakpoolSubgraphUrl: 'https://subgraph.satsuma-prod.com/1c6a44a9ed6e/pgs-team--611591/singularity-base-subgraph/api'\n },\n [ChainId.SEPOLIA]: {\n priceOracle: '0x4Fe44a9aC8Ef059Be2dB97f9e3bcA32Ab698C2f2',\n ethAddress: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n nativeWrapper: '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14',\n stakingOperator: '0xca7081e8C689C2BA887cEaCcfCB1961716CF5fc9',\n stakingAssetManager: '0x5041cad705244626E8BB9bd6D828b94EEAB09D8b',\n complianceManager: '0x08DD9cEf89923EDa02F56a4d4aB3FC4a96531443',\n merkleTreeOperator: '0x84026d6f3b6A4cEa7AD00Cd5154a8537129B3742',\n darkpoolAssetManager: '0xa10d309818527C8D8F5164f9D640515d6616bFeE',\n transferAssetManager: '0x0',\n otcSwapAssetManager: '0x549f3bAD265A0383394E0ABEC7b67b4ff750d2ca',\n batchJoinSplitAssetManager: '0x31816E27809fdc3cF73539d761133a301beEb9B0',\n darkpoolSwapAssetManager: '0x802ae625C2bdac1873B8bbb709679CC401F57abc',\n nftAssetManager: '0x0', //FIXME\n drakpoolSubgraphUrl: ''\n },\n [ChainId.BounceBitTestnet]: {\n priceOracle: '0x0',\n ethAddress: '0x0000000000000000000000000000000000000000',\n nativeWrapper: '0x0',\n stakingOperator: '0xEF8F70bB29DEAd5CEcaE26C6Cb19B987475B3e48',\n stakingAssetManager: '0x30cAA40e8D8d00fEAFc05732Ed75856f5eC7F89c',\n complianceManager: '0x1Fa7Cb4925086128f3bb9e26761C9C75dbAC3CD1',\n merkleTreeOperator: '0x40FecD96e94c3c2eE0Fb8bE5cE7073Bb3fB46F51',\n darkpoolAssetManager: '0xf21f124F395271e8435A93063AE2AD74829D7b69',\n transferAssetManager: '0x0',\n otcSwapAssetManager: '0x0',\n batchJoinSplitAssetManager: '0x0', //FIXME\n darkpoolSwapAssetManager: '0x0', //FIXME\n nftAssetManager: '0x0', //FIXME\n drakpoolSubgraphUrl: ''\n },\n [ChainId.HARDHAT]: {\n priceOracle: '0x0AdDd25a91563696D8567Df78D5A01C9a991F9B8',\n ethAddress: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n nativeWrapper: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n merkleTreeOperator: '0xCC5Bc84C3FDbcF262AaDD9F76652D6784293dD9e',\n complianceManager: '0x987Aa6E80e995d6A76C4d061eE324fc760Ea9F61',\n darkpoolAssetManager: '0xe24e7570Fe7207AdAaAa8c6c89a59850391B5276',\n transferAssetManager: '0x0', //FIXME\n otcSwapAssetManager: '0x26Df0Ea798971A97Ae121514B32999DfDb220e1f',\n stakingOperator: '0x6B9C4119796C80Ced5a3884027985Fd31830555b',\n stakingAssetManager: '0xCd9BC6cE45194398d12e27e1333D5e1d783104dD',\n batchJoinSplitAssetManager: '0x0', //FIXME\n darkpoolSwapAssetManager: '0x0', //FIXME\n theDeepAssetManager: '0x0', //FIXME\n nftAssetManager: '0x886a2A3ABF5B79AA5dFF1C73016BD07CFc817e04',\n drakpoolSubgraphUrl: 'https://34.142.142.240:8080/subgraphs/name/singularity/',\n uniswapConfig: {\n swapRouterAddress: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',\n quoterContractAddress: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',\n wrappedNativeTokenAddress: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n v3PosNftAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n factoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n subgraphUrl: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3?source=uniswap'\n },\n sablierConfig: {\n aliasPrefixLinear: 'LL2',\n aliasPrefixDynamic: 'LD2',\n lockupLinear: '0xAFb979d9afAd1aD27C5eFf4E27226E3AB9e5dCC9',\n lockupDynamic: '0x7CC7e125d83A581ff438608490Cc0f7bDff79127',\n sablierDynamicAssetManager: '0x453439300B6C5C645737324b990f2d51137027bC',\n sablierLinearAssetManager: '0xB90AcF57C3BFE8e0E8215defc282B5F48b3edC74'\n }\n }\n};\n","import { Token } from '../entities';\nimport { ChainId } from './chain';\n\nexport type StakingConfig = {\n originalToken: Token;\n stakingToken: Token;\n};\n\nexport const stakingTokenConfig: { [chainId: number]: StakingConfig[] } = {\n [ChainId.MAINNET]: [\n {\n originalToken: {\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n decimals: 18,\n symbol: 'ETH',\n name: 'Ethereum'\n },\n stakingToken: {\n address: '0x1Df4fAe6CC88A19825dA7dCF8Fcac8E44BA14D2C',\n decimals: 18,\n symbol: 'sgETH',\n name: 'sgETH'\n }\n },\n {\n originalToken: {\n address: '0xae7ab96520de3a18e5e111b5eaab095312d7fe84',\n decimals: 18,\n symbol: 'stETH',\n name: 'Lido Staked Ether'\n },\n stakingToken: {\n address: '0xe397804A9Ff78329997A2b07aF91D484f78e77Be',\n decimals: 18,\n symbol: 'sgSTETH',\n name: 'sgSTETH'\n }\n },\n {\n originalToken: {\n address: '0xae78736cd615f374d3085123a210448e74fc6393',\n decimals: 18,\n symbol: 'rETH',\n name: 'Rocket Pool ETH'\n },\n stakingToken: {\n address: '0xA8B78eFF928c30e43A60d8920d1549177652045d',\n decimals: 18,\n symbol: 'sgRETH',\n name: 'sgRETH'\n }\n },\n {\n originalToken: {\n address: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n decimals: 6,\n symbol: 'USDT',\n name: 'Tether USD'\n },\n stakingToken: {\n address: '0x91605474f1774f3C1401291A265fa8A995effeb2',\n decimals: 6,\n symbol: 'sgUSDT',\n name: 'sgUSDT'\n }\n },\n {\n originalToken: {\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n decimals: 6,\n symbol: 'USDC',\n name: 'USD Coin'\n },\n stakingToken: {\n address: '0x0692623f022a622b9CB33ffBEe6c14c8abebf4cc',\n decimals: 6,\n symbol: 'sgUSDC',\n name: 'sgUSDC'\n }\n }\n ],\n [ChainId.ARBITRUM_ONE]: [\n {\n originalToken: {\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n decimals: 18,\n symbol: 'ETH',\n name: 'Ethereum'\n },\n stakingToken: {\n address: '0xB2393C436a29edc40BA90b9944edB84466565E0c',\n decimals: 18,\n symbol: 'sgETH',\n name: 'sgETH'\n }\n },\n {\n originalToken: {\n address: '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9',\n decimals: 6,\n symbol: 'USDT',\n name: 'Tether USD'\n },\n stakingToken: {\n address: '0xAB5a3Ab2ef9a03de376CAce74c901a0fccD2A06d',\n decimals: 6,\n symbol: 'sgUSDT',\n name: 'sgUSDT'\n }\n },\n {\n originalToken: {\n address: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',\n decimals: 6,\n symbol: 'USDC',\n name: 'USD Coin'\n },\n stakingToken: {\n address: '0xFB6C93eF0B515d041b0DcDF427657E41DDDB8Da8',\n decimals: 6,\n symbol: 'sgUSDC',\n name: 'sgUSDC'\n }\n }\n ],\n [ChainId.BASE]: [],\n [ChainId.SEPOLIA]: [\n {\n originalToken: {\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n decimals: 18,\n symbol: 'ETH',\n name: 'Ethereum'\n },\n stakingToken: {\n address: '0x56fBD5d5C3e9D5f9Ae916F113232d52e6E377E71',\n decimals: 18,\n symbol: 'sgETH',\n name: 'sgETH'\n }\n }\n ],\n [ChainId.BounceBit]: [\n {\n originalToken: {\n address: '0x0000000000000000000000000000000000000000',\n decimals: 18,\n symbol: 'BB',\n name: 'BB'\n },\n stakingToken: {\n address: '0x5D873095152b921222241c0Cbd82d83b47bB31D3',\n decimals: 18,\n symbol: 'sgBB',\n name: 'sgBB'\n }\n },\n {\n originalToken: {\n address: '0xF5e11df1ebCf78b6b6D26E04FF19cD786a1e81dC',\n decimals: 18,\n symbol: 'BBTC',\n name: 'BBTC'\n },\n stakingToken: {\n address: '0x578A43b97a9c46b13B153Df6AA05393b78E241Ee',\n decimals: 18,\n symbol: 'sgBBTC',\n name: 'sgBBTC'\n }\n },\n {\n originalToken: {\n address: '0x77776b40C3d75cb07ce54dEA4b2Fd1D07F865222',\n decimals: 18,\n symbol: 'BBUSD',\n name: 'BBUSD'\n },\n stakingToken: {\n address: '0x9af2DDB1E3A30442f590f659e13a243Da15C86A0',\n decimals: 18,\n symbol: 'sgBBUSDC',\n name: 'sgBBUSDC'\n }\n },\n {\n originalToken: {\n address: '0x22aAC17E571D6651880d057e310703fF4C7c3483',\n decimals: 18,\n symbol: 'stBB',\n name: 'stBB'\n },\n stakingToken: {\n address: '0x3dD11E06DAA99AD255C83545d05Ad27602e0907F',\n decimals: 18,\n symbol: 'sgSTBB',\n name: 'sgSTBB'\n }\n }\n ],\n [ChainId.BounceBitTestnet]: [\n {\n originalToken: {\n address: '0x0000000000000000000000000000000000000000',\n decimals: 18,\n symbol: 'BB',\n name: 'BB'\n },\n stakingToken: {\n address: '0x1276801901cBC847077a8e7e27C973894c86157A',\n decimals: 18,\n symbol: 'sgBB',\n name: 'sgBB'\n }\n }\n ],\n [ChainId.HARDHAT]: [\n {\n originalToken: {\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n decimals: 18,\n symbol: 'ETH',\n name: 'Ethereum'\n },\n stakingToken: {\n address: '0x5fe2f174fe51474Cd198939C96e7dB65983EA307',\n decimals: 18,\n symbol: 'sgETH',\n name: 'sgETH'\n }\n },\n {\n originalToken: {\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n decimals: 6,\n symbol: 'USDC',\n name: 'USDC'\n },\n stakingToken: {\n address: '0x8AFB0C54bAE39A5e56b984DF1C4b5702b2abf205',\n decimals: 6,\n symbol: 'sgUSDC',\n name: 'sgUSDC'\n }\n }\n ]\n};\n","import { ethers } from 'ethers';\nimport { ContractConfiguartion, contractConfig } from './config/contractConfig';\nimport { StakingConfig, stakingTokenConfig } from './config/stakingConfig';\nimport { DarkpoolError } from './entities';\nimport { Relayer } from './entities/relayer';\nimport { ProofOptions } from '@thesingularitynetwork/darkpool-v1-proof-lite';\n\nexport class DarkPool {\n signer: ethers.Signer;\n provider: ethers.Provider;\n chainId: number;\n relayers: Relayer[];\n contracts: ContractConfiguartion;\n stakingConfigs: StakingConfig[];\n proofOptions?: ProofOptions;\n\n constructor(\n signer: ethers.Signer,\n chainId: number,\n relayers: Relayer[],\n contracts?: ContractConfiguartion,\n stakingConfigs?: StakingConfig[],\n proofOptions?: ProofOptions\n ) {\n // @ts-ignore\n this.signer = signer;\n // @ts-ignore\n this.provider = signer.provider;\n this.chainId = chainId;\n this.relayers = relayers;\n if (contracts) {\n this.contracts = contracts;\n } else {\n if (contractConfig[chainId]) {\n this.contracts = contractConfig[chainId];\n } else {\n throw new DarkpoolError('There is no default contract configuration for the provided chainId');\n }\n }\n if (stakingConfigs) {\n this.stakingConfigs = stakingConfigs;\n } else {\n if (stakingTokenConfig[chainId]) {\n this.stakingConfigs = stakingTokenConfig[chainId];\n } else {\n this.stakingConfigs = [];\n }\n }\n if (proofOptions) {\n this.proofOptions = proofOptions;\n }\n }\n\n public getRelayer() {\n if (this.relayers.length === 0) {\n throw new DarkpoolError('Relayer is not initialized');\n }\n const index = Math.floor(Math.random() * this.relayers.length);\n return this.relayers[index];\n }\n}\n"],"names":["DarkpoolError","_Error","message","_this","call","name","_inheritsLoose","_wrapNativeSuper","Error","NoteOnChainStatus","NATIVE_ASSETS","isNativeAsset","asset","toLowerCase","isAddressEquals","address1","address2","hexlify32","value","ethers","zeroPadValue","toBeHex","hexlify16","hexlify8","hexlify5","hexlify3","hexlify1","isHexEquals","hex1","hex2","BaseContext","signature","_signature","_createClass","key","get","_merkleRoot","set","merkleRoot","_tx","tx","BaseRelayerContext","_BaseContext","relayer","_relayer","_jobId","jobId","BaseContractService","_darkPool","BaseRelayerService","_proto","prototype","execute","_execute","_asyncToGenerator","_regeneratorRuntime","mark","_callee","context","relayerRequest","response","wrap","_callee$","_context","prev","next","getRelayerRequest","sent","axios","post","hostUrl","getRelayerPath","status","data","id","abrupt","error","stop","_x","apply","arguments","executeAndWaitForResult","_executeAndWaitForResult","_callee2","_yield$this$pollJobSt","txHash","_callee2$","_context2","pollJobStatus","console","log","postExecute","_x2","_pollJobStatus","_callee3","tries","_response$data","_txHash","failedReason","_callee3$","_context3","undefined","Promise","resolve","setTimeout","t0","_x3","transferCodeToNoteFooter","transferCode","chainId","params","trim","split","length","toString","BigInt","validateRecipientCode","code","codePattern","test","ChainId","Action","relayerPathConfig","_relayerPathConfig","WITHDRAW","UNISWAP_SINGLE_SWAP","UNISWAP_LP_DEPOSIT","UNISWAP_LP_WITHDRAW","UNISWAP_LP_COLLECT_FEE","CURVE_LP_DEPOSIT","CURVE_LP_WITHDRAW","CURVE_MULTI_SWAP","DEFI_INFRA","STAKE","REDEEM","AERODROME_SWAP","AERODROME_LP_DEPOSIT","AERODROME_LP_WITHDRAW","ROCKET_POOL_STAKE","ROCKET_POOL_UNSTAKE","SABLIER_CLAIM_STREAM","THE_DEEP_NOTE_DEPOSIT","THE_DEEP_WITHDRAW","legacyTokenConfig","_legacyTokenConfig","MAINNET","HARDHAT","MAX_ALLOWANCE","DepositContext","_note","note","_address","address","_proof","proof","DepositService","_BaseContractService","prepare","_prepare","amount","walletAddress","createNote","outNotes","_x4","generateProof","_generateProof","generateDepositProof","signedMessage","options","proofOptions","_x5","signer","contract","Contract","contracts","darkpoolAssetManager","DarkpoolAssetManagerAbi","abi","allowance","depositERC20","noteFooter","hash","depositETH","_x6","_allowance","_callee4","allowanceContract","isLegacy","_callee4$","_context4","ERC20Abi","getAddress","hasOwnProperty","includes","ERC20_USDT","approve","wait","_x7","getContractCallParameters","getContract","darkPool","provider","MerkleAbi","getMerklePathAndRoot","_getMerklePathAndRoot","_yield$contract$getMe","path","index","root","merkleTreeOperator","getMerklePath","map","x","multiGetMerklePathAndRoot","_multiGetMerklePathAndRoot","notes","blockNumber","_yield$Promise$all","results","getBlockNumber","all","getMerkleRoot","blockTag","concat","slice","_ref","i","noteCommitment","WithdrawContext","_BaseRelayerContext","_recipient","recipient","WithdrawService","_BaseRelayerService","getRelayer","outPartialNotes","generateWithdrawProof","merklePath","merkleIndex","relayerAddress","_getRelayerRequest","withdrawRelayerRequest","nullifier","refund","verifierArgs","verifyInputs","_postExecute","getRelayerContractCallParameters","getNoteOnChainStatus","_getNoteOnChainStatus","isCreated","isSpent","isLocked","noteCommitmentsCreated","UNKNOWN","nullifiersUsed","SPENT","nullifiersLocked","LOCKED","ACTIVE","getNoteOnChainStatusByPublicKey","_getNoteOnChainStatusByPublicKey","publicKey","onChainStatus","calcNullifier","rho","getNoteOnChainStatusBySignature","_x8","_x9","_getNoteOnChainStatusBySignature","getNullifier","isNoteActive","_x10","_x11","_x12","_isNoteActive","isNoteSpent","_x13","_x14","_x15","_isNoteSpent","_callee5","_callee5$","_context5","isNoteLocked","_x16","_x17","_x18","_isNoteLocked","_callee6","_callee6$","_context6","isNoteValid","_x19","_x20","_isNoteValid","_callee7","_callee7$","_context7","validateNote","isNftNoteValid","_x21","_x22","_isNftNoteValid","_callee8","_callee8$","_context8","contractConfig","_contractConfig","priceOracle","ethAddress","nativeWrapper","complianceManager","transferAssetManager","otcSwapAssetManager","stakingOperator","stakingAssetManager","batchJoinSplitAssetManager","darkpoolSwapAssetManager","nftAssetManager","drakpoolSubgraphUrl","uniswapConfig","swapRouterAddress","quoterContractAddress","wrappedNativeTokenAddress","v3PosNftAddress","factoryAddress","subgraphUrl","ARBITRUM_ONE","BounceBit","BASE","SEPOLIA","BounceBitTestnet","theDeepAssetManager","sablierConfig","aliasPrefixLinear","aliasPrefixDynamic","lockupLinear","lockupDynamic","sablierDynamicAssetManager","sablierLinearAssetManager","stakingTokenConfig","_stakingTokenConfig","originalToken","decimals","symbol","stakingToken","DarkPool","relayers","stakingConfigs","Math","floor","random"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("@thesingularitynetwork/darkpool-v1-proof-lite"),n=require("ethers"),r=(e=require("axios"))&&"object"==typeof e&&"default"in e?e.default:e;function a(e,t,n){if(s())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var a=new(e.bind.apply(e,r));return n&&f(a,n.prototype),a}function s(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(s=function(){return!!e})()}function o(){o=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},s="function"==typeof Symbol?Symbol:{},i=s.iterator||"@@iterator",p=s.asyncIterator||"@@asyncIterator",u=s.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function y(e,t,n,r){var s=Object.create((t&&t.prototype instanceof E?t:E).prototype),o=new M(r||[]);return a(s,"_invoke",{value:w(e,n,o)}),s}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=y;var c="suspendedStart",f="executing",b="completed",m={};function E(){}function h(){}function T(){}var x={};l(x,i,(function(){return this}));var g=Object.getPrototypeOf,A=g&&g(g(O([])));A&&A!==n&&r.call(A,i)&&(x=A);var v=T.prototype=E.prototype=Object.create(x);function C(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function k(e,t){function n(a,s,o,i){var p=d(e[a],e,s);if("throw"!==p.type){var u=p.arg,l=u.value;return l&&"object"==typeof l&&r.call(l,"__await")?t.resolve(l.__await).then((function(e){n("next",e,o,i)}),(function(e){n("throw",e,o,i)})):t.resolve(l).then((function(e){u.value=e,o(u)}),(function(e){return n("throw",e,o,i)}))}i(p.arg)}var s;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return s=s?s.then(a,a):a()}})}function w(t,n,r){var a=c;return function(s,o){if(a===f)throw Error("Generator is already running");if(a===b){if("throw"===s)throw o;return{value:e,done:!0}}for(r.method=s,r.arg=o;;){var i=r.delegate;if(i){var p=D(i,r);if(p){if(p===m)continue;return p}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===c)throw a=b,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=f;var u=d(t,n,r);if("normal"===u.type){if(a=r.done?b:"suspendedYield",u.arg===m)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(a=b,r.method="throw",r.arg=u.arg)}}}function D(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,D(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),m;var s=d(a,t.iterator,n.arg);if("throw"===s.type)return n.method="throw",n.arg=s.arg,n.delegate=null,m;var o=s.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,m):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,m)}function _(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function B(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function M(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function O(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,s=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return s.next=s}}throw new TypeError(typeof t+" is not iterable")}return h.prototype=T,a(v,"constructor",{value:T,configurable:!0}),a(T,"constructor",{value:h,configurable:!0}),h.displayName=l(T,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,T):(e.__proto__=T,l(e,u,"GeneratorFunction")),e.prototype=Object.create(v),e},t.awrap=function(e){return{__await:e}},C(k.prototype),l(k.prototype,p,(function(){return this})),t.AsyncIterator=k,t.async=function(e,n,r,a,s){void 0===s&&(s=Promise);var o=new k(y(e,n,r,a),s);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},C(v),l(v,u,"Generator"),l(v,i,(function(){return this})),l(v,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=O,M.prototype={constructor:M,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(B),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return i.type="throw",i.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var s=this.tryEntries.length-1;s>=0;--s){var o=this.tryEntries[s],i=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var p=r.call(o,"catchLoc"),u=r.call(o,"finallyLoc");if(p&&u){if(this.prev<o.catchLoc)return a(o.catchLoc,!0);if(this.prev<o.finallyLoc)return a(o.finallyLoc)}else if(p){if(this.prev<o.catchLoc)return a(o.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return a(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var s=a;break}}s&&("break"===e||"continue"===e)&&s.tryLoc<=t&&t<=s.finallyLoc&&(s=null);var o=s?s.completion:{};return o.type=e,o.arg=t,s?(this.method="next",this.next=s.finallyLoc,m):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),B(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;B(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:O(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),m}},t}function i(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function p(e,t,n,r,a,s,o){try{var i=e[s](o),p=i.value}catch(e){return void n(e)}i.done?t(p):Promise.resolve(p).then(r,a)}function u(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var s=e.apply(t,n);function o(e){p(s,r,a,o,i,"next",e)}function i(e){p(s,r,a,o,i,"throw",e)}o(void 0)}))}}function l(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}function y(e,t,n){return t&&l(e.prototype,t),n&&l(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function d(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,f(e,t)}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e,t){return(f=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function b(e){var t="function"==typeof Map?new Map:void 0;return(b=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return a(e,arguments,c(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),f(n,e)})(e)}var m,E=[{inputs:[{internalType:"address",name:"assetPoolERC20",type:"address"},{internalType:"address",name:"assetPoolERC721",type:"address"},{internalType:"address",name:"assetPoolETH",type:"address"},{internalType:"address",name:"verifierHub",type:"address"},{internalType:"address",name:"relayerHub",type:"address"},{internalType:"address",name:"feeManager",type:"address"},{internalType:"address",name:"comlianceManager",type:"address"},{internalType:"address",name:"merkleTreeOperator",type:"address"},{internalType:"address",name:"mimc254",type:"address"},{internalType:"address",name:"initialOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"target",type:"address"}],name:"AddressEmptyCode",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"AddressInsufficientBalance",type:"error"},{inputs:[],name:"FailedInnerCall",type:"error"},{inputs:[],name:"MerkleRootNotAllowed",type:"error"},{inputs:[],name:"NoteAlreadyCreated",type:"error"},{inputs:[],name:"NoteFooterUsed",type:"error"},{inputs:[],name:"NullifierUsed",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"RelayerNotRegistered",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"SafeERC20FailedOperation",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"bytes32",name:"noteOut",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"asset",type:"address"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"nullifierIn1",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"nullifierIn2",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"noteOut1",type:"bytes32"}],name:"Join",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"nullifierIn1",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"nullifierIn2",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"noteOut1",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"noteOut2",type:"bytes32"}],name:"JoinSplit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"nullifierIn",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"noteOut1",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"noteOut2",type:"bytes32"}],name:"Split",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"nullifierIn",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"bytes32",name:"noteOut",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"noteFooter",type:"bytes32"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"nullifierIn",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"asset",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"}],name:"Withdraw",type:"event"},{inputs:[],name:"ASSET_ETH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"ETH_ADDRESS",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"P",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_asset",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes32",name:"_noteCommitment",type:"bytes32"},{internalType:"bytes32",name:"_noteFooter",type:"bytes32"},{internalType:"bytes",name:"_proof",type:"bytes"}],name:"depositERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"_noteCommitment",type:"bytes32"},{internalType:"bytes32",name:"_noteFooter",type:"bytes32"},{internalType:"bytes",name:"_proof",type:"bytes"}],name:"depositETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"getAssetPoolERC20",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getAssetPoolERC721",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getAssetPoolETH",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getComplianceManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getFeeManager",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getMerkleTreeOperator",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getMimc254",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getRelayerHub",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getVerifierHub",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_merkleRoot",type:"bytes32"},{internalType:"bytes32",name:"_nullifierIn1",type:"bytes32"},{internalType:"bytes32",name:"_nullifierIn2",type:"bytes32"},{internalType:"bytes32",name:"_noteOut",type:"bytes32"},{internalType:"bytes32",name:"_noteFooter",type:"bytes32"},{internalType:"bytes",name:"_proof",type:"bytes"}],name:"join",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"_merkleRoot",type:"bytes32"},{internalType:"bytes32",name:"_nullifierIn1",type:"bytes32"},{internalType:"bytes32",name:"_nullifierIn2",type:"bytes32"},{internalType:"bytes32",name:"_noteOut1",type:"bytes32"},{internalType:"bytes32",name:"_noteOut2",type:"bytes32"},{internalType:"bytes32",name:"_noteFooter1",type:"bytes32"},{internalType:"bytes32",name:"_noteFooter2",type:"bytes32"},{internalType:"bytes",name:"_proof",type:"bytes"}],name:"joinSplit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"asset",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"releaseToAsssetPool",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"assetPoolERC20",type:"address"}],name:"setAssetPoolERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"assetPoolERC721",type:"address"}],name:"setAssetPoolERC721",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"assetPoolETH",type:"address"}],name:"setAssetPoolETH",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"complianceManager",type:"address"}],name:"setComplianceManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"feeManager",type:"address"}],name:"setFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"relayerHub",type:"address"}],name:"setRelayerHub",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"verifierHub",type:"address"}],name:"setVerifierHub",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"_merkleRoot",type:"bytes32"},{internalType:"bytes32",name:"_nullifierIn1",type:"bytes32"},{internalType:"bytes32",name:"_noteOut1",type:"bytes32"},{internalType:"bytes32",name:"_noteOut2",type:"bytes32"},{internalType:"bytes32",name:"_noteFooter1",type:"bytes32"},{internalType:"bytes32",name:"_noteFooter2",type:"bytes32"},{internalType:"bytes",name:"_proof",type:"bytes"}],name:"split",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"_merkleRoot",type:"bytes32"},{internalType:"bytes32",name:"_nullifierIn",type:"bytes32"},{internalType:"address",name:"_asset",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes32",name:"_noteOut",type:"bytes32"},{internalType:"bytes32",name:"_noteFooter",type:"bytes32"},{internalType:"bytes",name:"_proof",type:"bytes"}],name:"transfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_asset",type:"address"},{internalType:"bytes",name:"_proof",type:"bytes"},{internalType:"bytes32",name:"_merkleRoot",type:"bytes32"},{internalType:"bytes32",name:"_nullifier",type:"bytes32"},{internalType:"address",name:"_recipient",type:"address"},{internalType:"address",name:"_relayer",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"uint256",name:"_relayerGasFee",type:"uint256"}],name:"withdrawERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"_proof",type:"bytes"},{internalType:"bytes32",name:"_merkleRoot",type:"bytes32"},{internalType:"bytes32",name:"_nullifier",type:"bytes32"},{internalType:"address payable",name:"_recipient",type:"address"},{internalType:"address payable",name:"_relayer",type:"address"},{internalType:"uint256",name:"_relayerGasFee",type:"uint256"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"withdrawETH",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],h={_format:"hh-sol-artifact-1",contractName:"IERC20",sourceName:"@openzeppelin/contracts/token/ERC20/IERC20.sol",abi:[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}},T={_format:"hh-sol-artifact-1",contractName:"IERC20",sourceName:"@openzeppelin/contracts/token/ERC20/IERC20.sol",abi:[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}},x=function(e){function t(t){var n;return(n=e.call(this,t)||this).name="DarkpoolError",n}return d(t,e),t}(b(Error));function g(e){return e.toLowerCase()==="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE".toLowerCase()}function A(e){return n.ethers.zeroPadValue(n.ethers.toBeHex(e),32)}(m=exports.NoteOnChainStatus||(exports.NoteOnChainStatus={})).ACTIVE="ACTIVE",m.SPENT="SPENT",m.LOCKED="LOCKED",m.UNKNOWN="UNKNOWN";var v,C,k,w,D=function(){return y((function(e){this._signature=e}),[{key:"signature",get:function(){return this._signature}},{key:"merkleRoot",get:function(){return this._merkleRoot},set:function(e){this._merkleRoot=e}},{key:"tx",get:function(){return this._tx},set:function(e){this._tx=e}}])}(),_=function(e){function t(t,n){var r;return(r=e.call(this,n)||this)._relayer=t,r}return d(t,e),y(t,[{key:"relayer",get:function(){return this._relayer}},{key:"jobId",get:function(){return this._jobId},set:function(e){this._jobId=e}}])}(D),B=function(e){this._darkPool=e},M=function(){function e(e){this._darkPool=e}var t=e.prototype;return t.execute=function(){var e=u(o().mark((function e(t){var n,a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getRelayerRequest(t);case 2:return n=e.sent,e.next=5,r.post(t.relayer.hostUrl+this.getRelayerPath(),n);case 5:if(200!=(a=e.sent).status){e.next=11;break}return t.jobId=a.data.id,e.abrupt("return",a.data.id);case 11:if(400!=a.status){e.next=15;break}throw new Error("Request error"+a.data.error);case 15:throw new Error("Relayer not asscessable");case 16:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.executeAndWaitForResult=function(){var e=u(o().mark((function e(t){var n,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.execute(t);case 2:return e.next=4,this.pollJobStatus(t);case 4:if(r=(n=e.sent).error,console.log("relayer response, error and tx: ",r,n.txHash),!r){e.next=10;break}throw new x(r);case 10:return e.next=12,this.postExecute(t);case 12:return e.abrupt("return",e.sent);case 13:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.pollJobStatus=function(){var e=u(o().mark((function e(t){var n,a,s,i,p,u,l,y;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=1,a=void 0;case 2:if(!(n<=100)){e.next=30;break}if(!(n>=100)){e.next=5;break}return e.abrupt("break",30);case 5:return e.prev=5,e.next=8,r.get(t.relayer.hostUrl+"/v1/jobs/"+t.jobId);case 8:if(400!==(s=e.sent).status){e.next=13;break}return i=s.data.error,console.log(i),e.abrupt("return",{error:"Failed to submit transaction to relayer:"+i,txHash:void 0});case 13:if(200!==s.status){e.next=20;break}if(l=(p=s.data).status,y=p.failedReason,t.tx=u=p.txHash,"FAILED"!==l){e.next=18;break}return e.abrupt("return",{error:null!=y?y:"Transaction failed.",txHash:u});case 18:if("CONFIRMED"!==l&&"MINED"!==l){e.next=20;break}return e.abrupt("return",{error:void 0,txHash:u});case 20:return e.next=22,new Promise((function(e){return setTimeout(e,5e3)}));case 22:e.next=27;break;case 24:e.prev=24,e.t0=e.catch(5),console.log(e.t0);case 27:n++,e.next=2;break;case 30:return e.abrupt("return",{error:"Waited too long for transaction to be mined.",txHash:a});case 31:case"end":return e.stop()}}),e,null,[[5,24]])})));return function(t){return e.apply(this,arguments)}}(),e}();!function(e){e[e.HARDHAT=31337]="HARDHAT",e[e.HARDHAT_ARBITRUM=31338]="HARDHAT_ARBITRUM",e[e.HARDHAT_BASE=31339]="HARDHAT_BASE",e[e.MAINNET=1]="MAINNET",e[e.SEPOLIA=11155111]="SEPOLIA",e[e.ARBITRUM_ONE=42161]="ARBITRUM_ONE",e[e.BASE=8453]="BASE",e[e.BounceBit=6001]="BounceBit",e[e.BounceBitTestnet=6e3]="BounceBitTestnet"}(v||(v={})),function(e){e.CURVE_LP_DEPOSIT="CURVE_LP_DEPOSIT",e.CURVE_LP_WITHDRAW="CURVE_LP_WITHDRAW",e.CURVE_MULTI_SWAP="CURVE_MULTI_SWAP",e.DEFI_INFRA="DEFI_INFRA",e.STAKE="STAKE",e.REDEEM="REDEEM",e.UNISWAP_SINGLE_SWAP="UNISWAP_SINGLE_SWAP",e.UNISWAP_LP_DEPOSIT="UNISWAP_LP_DEPOSIT",e.UNISWAP_LP_WITHDRAW="UNISWAP_LP_WITHDRAW",e.UNISWAP_LP_COLLECT_FEE="UNISWAP_LP_COLLECT_FEE",e.WITHDRAW="WITHDRAW",e.AERODROME_SWAP="AERODROME_SWAP",e.AERODROME_LP_DEPOSIT="AERODROME_LP_DEPOSIT",e.AERODROME_LP_WITHDRAW="AERODROME_LP_WITHDRAW",e.ROCKET_POOL_STAKE="ROCKET_POOL_STAKE",e.ROCKET_POOL_UNSTAKE="ROCKET_POOL_UNSTAKE",e.SABLIER_CLAIM_STREAM="SABLIER_CLAIM_STREAM",e.THE_DEEP_NOTE_DEPOSIT="THE_DEEP_NOTE_DEPOSIT",e.THE_DEEP_WITHDRAW="THE_DEEP_WITHDRAW"}(w||(w={}));var O=((C={})[w.WITHDRAW]="/v1/pgDarkPoolWithdraw",C[w.UNISWAP_SINGLE_SWAP]="/v1/pgDarkPoolUniswapSingleSwap",C[w.UNISWAP_LP_DEPOSIT]="/v1/pgDarkPoolUniswapLP",C[w.UNISWAP_LP_WITHDRAW]="/v1/pgDarkPoolUniswapRemoveLiquidity",C[w.UNISWAP_LP_COLLECT_FEE]="/v1/pgDarkPoolUniswapCollectFees",C[w.CURVE_LP_DEPOSIT]="/v1/pgDarkPoolCurveAddLiquidity",C[w.CURVE_LP_WITHDRAW]="/v1/pgDarkPoolCurveRemoveLiquidity",C[w.CURVE_MULTI_SWAP]="/v1/pgDarkPoolCurveMultiExchange",C[w.DEFI_INFRA]="/v1/pgDarkPoolDefiInfra",C[w.STAKE]="/v1/pgDarkPoolZkStake",C[w.REDEEM]="/v1/pgDarkPoolZkRedeem",C[w.AERODROME_SWAP]="/v1/pgDarkPoolAerodromeSwap",C[w.AERODROME_LP_DEPOSIT]="/v1/pgDarkPoolAerodromeAddLiquidity",C[w.AERODROME_LP_WITHDRAW]="/v1/pgDarkPoolAerodromeRemoveLiquidity",C[w.ROCKET_POOL_STAKE]="/v1/pgDarkPoolRocketPoolStake",C[w.ROCKET_POOL_UNSTAKE]="/v1/pgDarkPoolRocketPoolUnStake",C[w.SABLIER_CLAIM_STREAM]="/v1/pgDarkPoolSablierClaim",C[w.THE_DEEP_NOTE_DEPOSIT]="/v1/pgDarkPoolTheDeepNoteDeposit",C[w.THE_DEEP_WITHDRAW]="/v1/pgDarkPoolTheDeepWithdraw",C),P=((k={})[v.MAINNET]=["0xdac17f958d2ee523a2206206994597c13d831ec7"],k[v.HARDHAT]=["0xdac17f958d2ee523a2206206994597c13d831ec7"],k),F=BigInt("115792089237316195423570985008687907853269984665640564039457584007913129639935"),R=function(e){function t(t){return e.call(this,t)||this}return d(t,e),y(t,[{key:"note",get:function(){return this._note},set:function(e){this._note=e}},{key:"address",get:function(){return this._address},set:function(e){this._address=e}},{key:"proof",get:function(){return this._proof},set:function(e){this._proof=e}}])}(D),S=function(e){function r(t){return e.call(this,t)||this}d(r,e);var a=r.prototype;return a.prepare=function(){var e=u(o().mark((function e(n,r,a,s){var i,p;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.createNote(n,r,s);case 2:return i=e.sent,(p=new R(s)).note=i,p.address=a,e.abrupt("return",{context:p,outNotes:[i]});case 7:case"end":return e.stop()}}),e)})));return function(t,n,r,a){return e.apply(this,arguments)}}(),a.generateProof=function(){var e=u(o().mark((function e(n){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n&&n.note&&n.address&&n.signature){e.next=2;break}throw new x("Invalid context");case 2:return e.next=4,t.generateDepositProof({note:n.note,signedMessage:n.signature,address:n.address,options:this._darkPool.proofOptions});case 4:n.proof=e.sent;case 6:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),a.execute=function(){var e=u(o().mark((function e(t){var r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&t.note&&t.address&&t.signature&&t.proof){e.next=2;break}throw new x("Invalid context");case 2:if(r=new n.ethers.Contract(this._darkPool.contracts.darkpoolAssetManager,E,this._darkPool.signer),g(t.note.asset)){e.next=13;break}return e.next=7,this.allowance(t);case 7:return e.next=9,r.depositERC20(t.note.asset,A(t.note.amount),A(t.note.note),t.proof.noteFooter,t.proof.proof.proof);case 9:return e.abrupt("return",e.sent.hash);case 13:return e.next=15,r.depositETH(A(t.note.note),t.proof.noteFooter,t.proof.proof.proof,{value:t.note.amount});case 15:return e.abrupt("return",e.sent.hash);case 17:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),a.allowance=function(){var e=u(o().mark((function e(t){var r,a,s,i,p;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&t.note&&t.address&&t.signature&&t.proof){e.next=2;break}throw new x("Invalid context");case 2:return r=this._darkPool.signer,a=new n.ethers.Contract(t.note.asset,h.abi,this._darkPool),e.next=6,a.allowance(r.getAddress(),this._darkPool.contracts.darkpoolAssetManager);case 6:if(!(BigInt(e.sent)<t.note.amount)){e.next=15;break}return s=P.hasOwnProperty(this._darkPool.chainId)&&P[this._darkPool.chainId].includes(t.note.asset.toLowerCase()),i=new n.ethers.Contract(t.note.asset,s?T.abi:h.abi,r),e.next=12,i.approve(this._darkPool.contracts.darkpoolAssetManager,A(F));case 12:return p=e.sent,e.next=15,p.wait();case 15:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),a.getContractCallParameters=function(e){if(!(e&&e.note&&e.address&&e.signature&&e.proof))throw new x("Invalid context");return{proof:e.proof.proof.proof,asset:e.note.asset,amount:A(e.note.amount),note:A(e.note.note),noteFooter:e.proof.noteFooter}},r}(B),I=[{inputs:[{internalType:"address",name:"initialOwner",type:"address"},{internalType:"address",name:"mimc254Address",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidLeaf",type:"error"},{inputs:[],name:"MerkleRootNotAllowed",type:"error"},{inputs:[],name:"NoteAlreadyCreated",type:"error"},{inputs:[],name:"NoteFooterUsed",type:"error"},{inputs:[],name:"NullifierUsed",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{inputs:[{internalType:"bytes32",name:"leaf",type:"bytes32"}],name:"appendMerkleLeaf",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"assetManager",type:"address"}],name:"assetManagersRegistered",outputs:[{internalType:"bool",name:"registered",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_noteCommitment",type:"bytes32"}],name:"getMerklePath",outputs:[{internalType:"bytes32[]",name:"",type:"bytes32[]"},{internalType:"bool[]",name:"",type:"bool[]"},{internalType:"bytes32",name:"",type:"bytes32"},{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getMerkleRoot",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getmerkleNodes",outputs:[{internalType:"bytes32[][]",name:"",type:"bytes32[][]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"}],name:"merkleNodes",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"merkleRoot",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_merkleRoot",type:"bytes32"}],name:"merkleRootIsAllowed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"root",type:"bytes32"}],name:"merkleRootsAllowed",outputs:[{internalType:"bool",name:"allowed",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"mimcBn254Address",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"commitment",type:"bytes32"}],name:"noteCommitmentsCreated",outputs:[{internalType:"bool",name:"created",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_noteFooter",type:"bytes32"}],name:"noteFooterIsNotUsed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"noteFooter",type:"bytes32"}],name:"noteFootersUsed",outputs:[{internalType:"bool",name:"used",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_noteCommitment",type:"bytes32"}],name:"noteIsNotCreated",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_nullifier",type:"bytes32"}],name:"nullifierIsNotLocked",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"_nullifier",type:"bytes32"}],name:"nullifierIsNotUsed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"nullifier",type:"bytes32"}],name:"nullifiersLocked",outputs:[{internalType:"bool",name:"locked",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"nullifier",type:"bytes32"}],name:"nullifiersUsed",outputs:[{internalType:"bool",name:"used",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"assetManager",type:"address"},{internalType:"bool",name:"registered",type:"bool"}],name:"setAssetManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"commitment",type:"bytes32"}],name:"setNoteCommitmentCreated",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"noteFooter",type:"bytes32"}],name:"setNoteFooterUsed",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"nullifier",type:"bytes32"},{internalType:"bool",name:"locked",type:"bool"}],name:"setNullifierLocked",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"nullifier",type:"bytes32"}],name:"setNullifierUsed",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];function N(e,t){return new n.ethers.Contract(e,I,t.provider)}function L(e,t){return H.apply(this,arguments)}function H(){return(H=u(o().mark((function e(t,n){var r,a,s;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=N(n.contracts.merkleTreeOperator,n),e.next=3,r.getMerklePath(A(t));case 3:return s=(a=e.sent)[2],e.abrupt("return",{path:a[0],index:a[1].map((function(e){return e?1:0})),root:s});case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function U(){return(U=u(o().mark((function e(t,n){var r,a,s,i,p;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=N(n.contracts.merkleTreeOperator,n),e.next=3,n.provider.getBlockNumber();case 3:return a=e.sent,e.next=6,Promise.all([r.getMerkleRoot({blockTag:a})].concat(t.map((function(e){return r.getMerklePath(A(e),{blockTag:a})}))));case 6:return i=(s=e.sent)[0],p=s.slice(1),e.abrupt("return",p.map((function(e,n){return{noteCommitment:t[n],path:e[0],index:e[1].map((function(e){return e?1:0})),root:i}})));case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var W,j=function(e){function t(t,n){return e.call(this,t,n)||this}return d(t,e),y(t,[{key:"note",get:function(){return this._note},set:function(e){this._note=e}},{key:"recipient",get:function(){return this._recipient},set:function(e){this._recipient=e}},{key:"proof",get:function(){return this._proof},set:function(e){this._proof=e}}])}(_),K=function(e){function n(t){return e.call(this,t)||this}d(n,e);var r=n.prototype;return r.prepare=function(){var e=u(o().mark((function e(t,n,r){var a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(a=new j(this._darkPool.getRelayer(),r)).note=t,a.recipient=n,e.abrupt("return",{context:a,outPartialNotes:[]});case 4:case"end":return e.stop()}}),e,this)})));return function(t,n,r){return e.apply(this,arguments)}}(),r.generateProof=function(){var e=u(o().mark((function e(n){var r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n&&n.note&&n.recipient&&n.signature){e.next=2;break}throw new x("Invalid context");case 2:return e.next=4,L(n.note.note,this._darkPool);case 4:return n.merkleRoot=(r=e.sent).root,e.next=8,t.generateWithdrawProof({note:n.note,address:n.recipient,merkleRoot:r.root,merklePath:r.path,merkleIndex:r.index,relayer:n.relayer.relayerAddress,signedMessage:n.signature,options:this._darkPool.proofOptions});case 8:n.proof=e.sent;case 10:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),r.getRelayerRequest=function(){var e=u(o().mark((function e(t){var n;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&t.note&&t.signature&&t.merkleRoot&&t.recipient&&t.proof){e.next=2;break}throw new x("Invalid context");case 2:return n={proof:t.proof.proof.proof,asset:t.note.asset,merkleRoot:t.merkleRoot,nullifier:t.proof.nullifier,recipient:t.recipient,relayer:t.relayer.relayerAddress,amount:A(t.note.amount),refund:A(0n),verifierArgs:t.proof.proof.verifyInputs},e.abrupt("return",n);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.getRelayerPath=function(){return O[w.WITHDRAW]},r.postExecute=function(){var e=u(o().mark((function e(t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return console.log(t.tx),e.abrupt("return",{txHash:t.tx});case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.getRelayerContractCallParameters=function(e){if(!(e&&e.note&&e.recipient&&e.signature&&e.proof))throw new x("Invalid context");return{proof:e.proof.proof.proof,asset:e.note.asset,merkleRoot:e.merkleRoot,nullifier:e.proof.nullifier,recipient:e.recipient,relayer:e.relayer.relayerAddress,amount:A(e.note.amount)}},n}(M);function V(e,t){return new n.ethers.Contract(e,I,t.provider)}function q(e,t,n){return G.apply(this,arguments)}function G(){return(G=u(o().mark((function e(t,n,r){var a;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=V(t.contracts.merkleTreeOperator,t),e.next=3,a.noteCommitmentsCreated(n);case 3:if(e.sent){e.next=6;break}return e.abrupt("return",exports.NoteOnChainStatus.UNKNOWN);case 6:return e.next=8,a.nullifiersUsed(r);case 8:if(!e.sent){e.next=11;break}return e.abrupt("return",exports.NoteOnChainStatus.SPENT);case 11:return e.next=13,a.nullifiersLocked(r);case 13:if(!e.sent){e.next=16;break}return e.abrupt("return",exports.NoteOnChainStatus.LOCKED);case 16:return e.abrupt("return",exports.NoteOnChainStatus.ACTIVE);case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function J(){return(J=u(o().mark((function e(n,r,a){var s;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=t.calcNullifier(r.rho,a),e.next=3,q(n,A(r.note),A(s));case 3:return e.abrupt("return",e.sent);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function z(){return(z=u(o().mark((function e(n,r,a){var s;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.getNullifier({rho:r.rho,signedMessage:a});case 2:return s=e.sent,e.next=5,q(n,A(r.note),s);case 5:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Y(){return(Y=u(o().mark((function e(n,r,a){var s;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.getNullifier({rho:r.rho,signedMessage:a});case 2:return s=e.sent,e.next=5,q(n,A(r.note),s);case 5:return e.abrupt("return",e.sent===exports.NoteOnChainStatus.ACTIVE);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Z(){return(Z=u(o().mark((function e(n,r,a){var s;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.getNullifier({rho:r.rho,signedMessage:a});case 2:return s=e.sent,e.next=5,q(n,A(r.note),s);case 5:return e.abrupt("return",e.sent===exports.NoteOnChainStatus.SPENT);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Q(){return(Q=u(o().mark((function e(n,r,a){var s;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.getNullifier({rho:r.rho,signedMessage:a});case 2:return s=e.sent,e.next=5,q(n,A(r.note),s);case 5:return e.abrupt("return",e.sent===exports.NoteOnChainStatus.LOCKED);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function X(){return(X=u(o().mark((function e(n,r){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.validateNote(n,r);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function $(){return($=u(o().mark((function e(n,r){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.validateNote(n,r);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var ee,te=((W={})[v.MAINNET]={priceOracle:"0x0AdDd25a91563696D8567Df78D5A01C9a991F9B8",ethAddress:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",nativeWrapper:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",complianceManager:"0x630aD89523a18fA30F752297F3F53B7BC363488b",merkleTreeOperator:"0x152f1051c8D37Fba9A362Fc9b32a0eeF8496202F",darkpoolAssetManager:"0x159F3668c72BBeCdF1fb31beeD606Ec9649654eB",transferAssetManager:"0x0",otcSwapAssetManager:"0xB8096ecD7d3185b24AA218C509175185C11f13a9",stakingOperator:"0x539bcbc08F2cA42E50887dA4Db0DC34EbF0B090b",stakingAssetManager:"0x1Fa7Cb4925086128f3bb9e26761C9C75dbAC3CD1",batchJoinSplitAssetManager:"0x1346b13Ff3Bd19d882E2491cBdAb2DbFc59982E3",darkpoolSwapAssetManager:"0x0",nftAssetManager:"0xbB0679f6831Ee3736AE53D8fcECB9c0e684615d0",drakpoolSubgraphUrl:"https://subgraph.satsuma-prod.com/1c6a44a9ed6e/pgs-team--611591/singularity-subgraph/version/v0.0.1/api",uniswapConfig:{swapRouterAddress:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",quoterContractAddress:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",wrappedNativeTokenAddress:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",v3PosNftAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88",factoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",subgraphUrl:"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3?source=uniswap"}},W[v.ARBITRUM_ONE]={priceOracle:"0x0AdDd25a91563696D8567Df78D5A01C9a991F9B8",ethAddress:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",nativeWrapper:"0x82af49447d8a07e3bd95bd0d56f35241523fbab1",stakingOperator:"0xF4f1D4F28Be82D81135c13D255452B8325B585B0",stakingAssetManager:"0xB1CC5D9227323330E8a58e891c123B38D03f0BAA",complianceManager:"0x23A37b553c46f4864537Ab1e8d1e49804b47A5A7",merkleTreeOperator:"0x0e2aCb73EBB02bd4099d495bcb96F7522F84ddb7",darkpoolAssetManager:"0xf7C40b5057a1D1a3d58B02BCdb125E63ef380564",transferAssetManager:"0x0",otcSwapAssetManager:"0xcbFA6BB3eb4Bd9BF97866baE75FfB62f3aE897c0",batchJoinSplitAssetManager:"0xd39EA1e275ee468f977f93134a564aF76696E0fE",darkpoolSwapAssetManager:"0x0",nftAssetManager:"0x143242Ff430620a3FA3f9fEaB576050fb20C63BB",drakpoolSubgraphUrl:"https://subgraph.satsuma-prod.com/1c6a44a9ed6e/pgs-team--611591/singularity-arb-subgraph/api"},W[v.BounceBit]={priceOracle:"0x0",ethAddress:"0x0000000000000000000000000000000000000000",nativeWrapper:"0xF4c20e5004C6FDCDdA920bDD491ba8C98a9c5863",stakingOperator:"0x4d459dDe25707CA353De15CC3B85b7C2e4bb380c",stakingAssetManager:"0xe6B0a94e1eA206B122a11a30dA7FB9ADaA12ef42",complianceManager:"0x1Fe002A6E413C70D5CB8477cDaA0422fc7611fCc",merkleTreeOperator:"0x159F3668c72BBeCdF1fb31beeD606Ec9649654eB",darkpoolAssetManager:"0x722133fBb559E2849e3402De3279Bd3059b7fe4E",transferAssetManager:"0x0",otcSwapAssetManager:"0xAa5e02284d1Fd0f6C12AFBDABc28Ed5aC5a6474b",batchJoinSplitAssetManager:"0x0",darkpoolSwapAssetManager:"0x0",nftAssetManager:"0x0",drakpoolSubgraphUrl:"https://bb.subgraph.thesingularity.network/subgraphs/name/singularity/"},W[v.BASE]={priceOracle:"0xf224a25453D76A41c4427DD1C05369BC9f498444",ethAddress:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",nativeWrapper:"0x4200000000000000000000000000000000000006",complianceManager:"0xFa368E046B4051582662f7d1C033756dB55058cF",merkleTreeOperator:"0xdcd767f6f877B4Ef85d631f23e51ff3a2BCC9378",darkpoolAssetManager:"0x84eb120A35802460484015e6748375369e40468a",transferAssetManager:"0x0",stakingOperator:"0xfdA33b941E6C014bD079C6917b815EFA58976f37",stakingAssetManager:"0xa3d27E1Ca5057372478011FB781479B8A1fF7AA3",otcSwapAssetManager:"0x3D76Fd85FCc2593970d22Aa34bcC4c5444c57c9D",batchJoinSplitAssetManager:"0x7b497A97EC69621019fc7eC3D5EF06859AfEBaf1",darkpoolSwapAssetManager:"0x0",nftAssetManager:"0xC4e979C922E93938dBaBb6e1623a19cbc6132489",drakpoolSubgraphUrl:"https://subgraph.satsuma-prod.com/1c6a44a9ed6e/pgs-team--611591/singularity-base-subgraph/api"},W[v.SEPOLIA]={priceOracle:"0x4Fe44a9aC8Ef059Be2dB97f9e3bcA32Ab698C2f2",ethAddress:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",nativeWrapper:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",stakingOperator:"0xca7081e8C689C2BA887cEaCcfCB1961716CF5fc9",stakingAssetManager:"0x5041cad705244626E8BB9bd6D828b94EEAB09D8b",complianceManager:"0x08DD9cEf89923EDa02F56a4d4aB3FC4a96531443",merkleTreeOperator:"0x84026d6f3b6A4cEa7AD00Cd5154a8537129B3742",darkpoolAssetManager:"0xa10d309818527C8D8F5164f9D640515d6616bFeE",transferAssetManager:"0x0",otcSwapAssetManager:"0x549f3bAD265A0383394E0ABEC7b67b4ff750d2ca",batchJoinSplitAssetManager:"0x31816E27809fdc3cF73539d761133a301beEb9B0",darkpoolSwapAssetManager:"0x802ae625C2bdac1873B8bbb709679CC401F57abc",nftAssetManager:"0x0",drakpoolSubgraphUrl:""},W[v.BounceBitTestnet]={priceOracle:"0x0",ethAddress:"0x0000000000000000000000000000000000000000",nativeWrapper:"0x0",stakingOperator:"0xEF8F70bB29DEAd5CEcaE26C6Cb19B987475B3e48",stakingAssetManager:"0x30cAA40e8D8d00fEAFc05732Ed75856f5eC7F89c",complianceManager:"0x1Fa7Cb4925086128f3bb9e26761C9C75dbAC3CD1",merkleTreeOperator:"0x40FecD96e94c3c2eE0Fb8bE5cE7073Bb3fB46F51",darkpoolAssetManager:"0xf21f124F395271e8435A93063AE2AD74829D7b69",transferAssetManager:"0x0",otcSwapAssetManager:"0x0",batchJoinSplitAssetManager:"0x0",darkpoolSwapAssetManager:"0x0",nftAssetManager:"0x0",drakpoolSubgraphUrl:""},W[v.HARDHAT]={priceOracle:"0x0AdDd25a91563696D8567Df78D5A01C9a991F9B8",ethAddress:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",nativeWrapper:"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",merkleTreeOperator:"0xCC5Bc84C3FDbcF262AaDD9F76652D6784293dD9e",complianceManager:"0x987Aa6E80e995d6A76C4d061eE324fc760Ea9F61",darkpoolAssetManager:"0xe24e7570Fe7207AdAaAa8c6c89a59850391B5276",transferAssetManager:"0x0",otcSwapAssetManager:"0x26Df0Ea798971A97Ae121514B32999DfDb220e1f",stakingOperator:"0x6B9C4119796C80Ced5a3884027985Fd31830555b",stakingAssetManager:"0xCd9BC6cE45194398d12e27e1333D5e1d783104dD",batchJoinSplitAssetManager:"0x0",darkpoolSwapAssetManager:"0x0",theDeepAssetManager:"0x0",nftAssetManager:"0x886a2A3ABF5B79AA5dFF1C73016BD07CFc817e04",drakpoolSubgraphUrl:"https://34.142.142.240:8080/subgraphs/name/singularity/",uniswapConfig:{swapRouterAddress:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",quoterContractAddress:"0x61fFE014bA17989E743c5F6cB21bF9697530B21e",wrappedNativeTokenAddress:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",v3PosNftAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88",factoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",subgraphUrl:"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3?source=uniswap"},sablierConfig:{aliasPrefixLinear:"LL2",aliasPrefixDynamic:"LD2",lockupLinear:"0xAFb979d9afAd1aD27C5eFf4E27226E3AB9e5dCC9",lockupDynamic:"0x7CC7e125d83A581ff438608490Cc0f7bDff79127",sablierDynamicAssetManager:"0x453439300B6C5C645737324b990f2d51137027bC",sablierLinearAssetManager:"0xB90AcF57C3BFE8e0E8215defc282B5F48b3edC74"}},W),ne=((ee={})[v.MAINNET]=[{originalToken:{address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",decimals:18,symbol:"ETH",name:"Ethereum"},stakingToken:{address:"0x1Df4fAe6CC88A19825dA7dCF8Fcac8E44BA14D2C",decimals:18,symbol:"sgETH",name:"sgETH"}},{originalToken:{address:"0xae7ab96520de3a18e5e111b5eaab095312d7fe84",decimals:18,symbol:"stETH",name:"Lido Staked Ether"},stakingToken:{address:"0xe397804A9Ff78329997A2b07aF91D484f78e77Be",decimals:18,symbol:"sgSTETH",name:"sgSTETH"}},{originalToken:{address:"0xae78736cd615f374d3085123a210448e74fc6393",decimals:18,symbol:"rETH",name:"Rocket Pool ETH"},stakingToken:{address:"0xA8B78eFF928c30e43A60d8920d1549177652045d",decimals:18,symbol:"sgRETH",name:"sgRETH"}},{originalToken:{address:"0xdac17f958d2ee523a2206206994597c13d831ec7",decimals:6,symbol:"USDT",name:"Tether USD"},stakingToken:{address:"0x91605474f1774f3C1401291A265fa8A995effeb2",decimals:6,symbol:"sgUSDT",name:"sgUSDT"}},{originalToken:{address:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",decimals:6,symbol:"USDC",name:"USD Coin"},stakingToken:{address:"0x0692623f022a622b9CB33ffBEe6c14c8abebf4cc",decimals:6,symbol:"sgUSDC",name:"sgUSDC"}}],ee[v.ARBITRUM_ONE]=[{originalToken:{address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",decimals:18,symbol:"ETH",name:"Ethereum"},stakingToken:{address:"0xB2393C436a29edc40BA90b9944edB84466565E0c",decimals:18,symbol:"sgETH",name:"sgETH"}},{originalToken:{address:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",decimals:6,symbol:"USDT",name:"Tether USD"},stakingToken:{address:"0xAB5a3Ab2ef9a03de376CAce74c901a0fccD2A06d",decimals:6,symbol:"sgUSDT",name:"sgUSDT"}},{originalToken:{address:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",decimals:6,symbol:"USDC",name:"USD Coin"},stakingToken:{address:"0xFB6C93eF0B515d041b0DcDF427657E41DDDB8Da8",decimals:6,symbol:"sgUSDC",name:"sgUSDC"}}],ee[v.BASE]=[],ee[v.SEPOLIA]=[{originalToken:{address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",decimals:18,symbol:"ETH",name:"Ethereum"},stakingToken:{address:"0x56fBD5d5C3e9D5f9Ae916F113232d52e6E377E71",decimals:18,symbol:"sgETH",name:"sgETH"}}],ee[v.BounceBit]=[{originalToken:{address:"0x0000000000000000000000000000000000000000",decimals:18,symbol:"BB",name:"BB"},stakingToken:{address:"0x5D873095152b921222241c0Cbd82d83b47bB31D3",decimals:18,symbol:"sgBB",name:"sgBB"}},{originalToken:{address:"0xF5e11df1ebCf78b6b6D26E04FF19cD786a1e81dC",decimals:18,symbol:"BBTC",name:"BBTC"},stakingToken:{address:"0x578A43b97a9c46b13B153Df6AA05393b78E241Ee",decimals:18,symbol:"sgBBTC",name:"sgBBTC"}},{originalToken:{address:"0x77776b40C3d75cb07ce54dEA4b2Fd1D07F865222",decimals:18,symbol:"BBUSD",name:"BBUSD"},stakingToken:{address:"0x9af2DDB1E3A30442f590f659e13a243Da15C86A0",decimals:18,symbol:"sgBBUSDC",name:"sgBBUSDC"}},{originalToken:{address:"0x22aAC17E571D6651880d057e310703fF4C7c3483",decimals:18,symbol:"stBB",name:"stBB"},stakingToken:{address:"0x3dD11E06DAA99AD255C83545d05Ad27602e0907F",decimals:18,symbol:"sgSTBB",name:"sgSTBB"}}],ee[v.BounceBitTestnet]=[{originalToken:{address:"0x0000000000000000000000000000000000000000",decimals:18,symbol:"BB",name:"BB"},stakingToken:{address:"0x1276801901cBC847077a8e7e27C973894c86157A",decimals:18,symbol:"sgBB",name:"sgBB"}}],ee[v.HARDHAT]=[{originalToken:{address:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",decimals:18,symbol:"ETH",name:"Ethereum"},stakingToken:{address:"0x5fe2f174fe51474Cd198939C96e7dB65983EA307",decimals:18,symbol:"sgETH",name:"sgETH"}},{originalToken:{address:"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",decimals:6,symbol:"USDC",name:"USDC"},stakingToken:{address:"0x8AFB0C54bAE39A5e56b984DF1C4b5702b2abf205",decimals:6,symbol:"sgUSDC",name:"sgUSDC"}}],ee),re=function(){function e(e,t,n,r,a,s){if(this.signer=e,this.provider=e.provider,this.chainId=t,this.relayers=n,r)this.contracts=r;else{if(!te[t])throw new x("There is no default contract configuration for the provided chainId");this.contracts=te[t]}this.stakingConfigs=a||(ne[t]?ne[t]:[]),s&&(this.proofOptions=s)}return e.prototype.getRelayer=function(){if(0===this.relayers.length)throw new x("Relayer is not initialized");var e=Math.floor(Math.random()*this.relayers.length);return this.relayers[e]},e}();exports.BaseContext=D,exports.BaseContractService=B,exports.BaseRelayerContext=_,exports.BaseRelayerService=M,exports.DarkPool=re,exports.DarkpoolError=x,exports.DepositContext=R,exports.DepositService=S,exports.WithdrawService=K,exports.getMerklePathAndRoot=L,exports.getNoteOnChainStatusByPublicKey=function(e,t,n){return J.apply(this,arguments)},exports.getNoteOnChainStatusBySignature=function(e,t,n){return z.apply(this,arguments)},exports.hexlify1=function(e){return n.ethers.toBeHex(e)},exports.hexlify16=function(e){return n.ethers.zeroPadValue(n.ethers.toBeHex(e),16)},exports.hexlify3=function(e){return n.ethers.zeroPadValue(n.ethers.toBeHex(e),3)},exports.hexlify32=A,exports.hexlify5=function(e){return n.ethers.zeroPadValue(n.ethers.toBeHex(e),5)},exports.hexlify8=function(e){return n.ethers.zeroPadValue(n.ethers.toBeHex(e),8)},exports.isAddressEquals=function(e,t){return!(!e||!t)&&e.toLowerCase()===t.toLowerCase()},exports.isHexEquals=function(e,t){return!(!e||!t)&&e.toLowerCase()===t.toLowerCase()},exports.isNativeAsset=g,exports.isNftNoteValid=function(e,t){return $.apply(this,arguments)},exports.isNoteActive=function(e,t,n){return Y.apply(this,arguments)},exports.isNoteLocked=function(e,t,n){return Q.apply(this,arguments)},exports.isNoteSpent=function(e,t,n){return Z.apply(this,arguments)},exports.isNoteValid=function(e,t){return X.apply(this,arguments)},exports.multiGetMerklePathAndRoot=function(e,t){return U.apply(this,arguments)},exports.transferCodeToNoteFooter=function(e,t){var n=e.trim().split("-");if(n.length<3||"ONEOFF"!=n[0]||"RECIPIENT"!=n[1]||n[2]!=t.toString())throw new x("Invalid receiver code");return BigInt(n[3])},exports.validateRecipientCode=function(e){return/^(ONEOFF-RECIPIENT)-(\d+)-(\d+)/gm.test(e)};
2
+ //# sourceMappingURL=singularity-sdk-lite.cjs.production.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singularity-sdk-lite.cjs.production.min.js","sources":["../src/entities/types.ts","../src/entities/error.ts","../src/utils/util.ts","../src/config/chain.ts","../src/config/config.ts","../src/services/BaseService.ts","../src/services/base/deposit.ts","../src/services/merkletree.ts","../src/services/base/withdraw.ts","../src/services/noteService.ts","../src/config/contractConfig.ts","../src/config/stakingConfig.ts","../src/darkpool.ts"],"sourcesContent":["export enum NoteOnChainStatus {\n ACTIVE = 'ACTIVE',\n SPENT = 'SPENT',\n LOCKED = 'LOCKED',\n UNKNOWN = 'UNKNOWN'\n}\n","export class DarkpoolError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'DarkpoolError';\n }\n}\n","import { ethers } from 'ethers';\n\nconst NATIVE_ASSETS = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';\n\nexport function isNativeAsset(asset: string): boolean {\n return asset.toLowerCase() === NATIVE_ASSETS.toLowerCase();\n}\n\nexport function isAddressEquals(address1: string, address2: string): boolean {\n if (!address1 || !address2) return false;\n return address1.toLowerCase() === address2.toLowerCase();\n}\n\nexport function hexlify32(value: bigint | number): string {\n return ethers.zeroPadValue(ethers.toBeHex(value), 32);\n}\n\nexport function hexlify16(value: bigint | number): string {\n return ethers.zeroPadValue(ethers.toBeHex(value), 16);\n}\n\nexport function hexlify8(value: bigint | number): string {\n return ethers.zeroPadValue(ethers.toBeHex(value), 8);\n}\n\nexport function hexlify5(value: bigint | number): string {\n return ethers.zeroPadValue(ethers.toBeHex(value), 5);\n}\n\nexport function hexlify3(value: bigint | number): string {\n return ethers.zeroPadValue(ethers.toBeHex(value), 3);\n}\n\nexport function hexlify1(value: bigint | number): string {\n return ethers.toBeHex(value);\n}\n\nexport function isHexEquals(hex1: string, hex2: string): boolean {\n if (!hex1 || !hex2) return false;\n return hex1.toLowerCase() === hex2.toLowerCase();\n}\n","export enum ChainId {\n HARDHAT = 31337,\n HARDHAT_ARBITRUM = 31338,\n HARDHAT_BASE = 31339,\n MAINNET = 1,\n SEPOLIA = 11155111,\n ARBITRUM_ONE = 42161,\n BASE = 8453,\n BounceBit = 6001,\n BounceBitTestnet = 6000\n}\n","import { ChainId } from './chain';\n\nexport enum Action {\n CURVE_LP_DEPOSIT = 'CURVE_LP_DEPOSIT',\n CURVE_LP_WITHDRAW = 'CURVE_LP_WITHDRAW',\n CURVE_MULTI_SWAP = 'CURVE_MULTI_SWAP',\n DEFI_INFRA = 'DEFI_INFRA',\n STAKE = 'STAKE',\n REDEEM = 'REDEEM',\n UNISWAP_SINGLE_SWAP = 'UNISWAP_SINGLE_SWAP',\n UNISWAP_LP_DEPOSIT = 'UNISWAP_LP_DEPOSIT',\n UNISWAP_LP_WITHDRAW = 'UNISWAP_LP_WITHDRAW',\n UNISWAP_LP_COLLECT_FEE = 'UNISWAP_LP_COLLECT_FEE',\n WITHDRAW = 'WITHDRAW',\n AERODROME_SWAP = 'AERODROME_SWAP',\n AERODROME_LP_DEPOSIT = 'AERODROME_LP_DEPOSIT',\n AERODROME_LP_WITHDRAW = 'AERODROME_LP_WITHDRAW',\n ROCKET_POOL_STAKE = 'ROCKET_POOL_STAKE',\n ROCKET_POOL_UNSTAKE = 'ROCKET_POOL_UNSTAKE',\n SABLIER_CLAIM_STREAM = 'SABLIER_CLAIM_STREAM',\n THE_DEEP_NOTE_DEPOSIT = 'THE_DEEP_NOTE_DEPOSIT',\n THE_DEEP_WITHDRAW = 'THE_DEEP_WITHDRAW'\n}\n\nexport const relayerPathConfig: { [action: string]: string } = {\n [Action.WITHDRAW]: '/v1/pgDarkPoolWithdraw',\n [Action.UNISWAP_SINGLE_SWAP]: '/v1/pgDarkPoolUniswapSingleSwap',\n [Action.UNISWAP_LP_DEPOSIT]: '/v1/pgDarkPoolUniswapLP',\n [Action.UNISWAP_LP_WITHDRAW]: '/v1/pgDarkPoolUniswapRemoveLiquidity',\n [Action.UNISWAP_LP_COLLECT_FEE]: '/v1/pgDarkPoolUniswapCollectFees',\n [Action.CURVE_LP_DEPOSIT]: '/v1/pgDarkPoolCurveAddLiquidity',\n [Action.CURVE_LP_WITHDRAW]: '/v1/pgDarkPoolCurveRemoveLiquidity',\n [Action.CURVE_MULTI_SWAP]: '/v1/pgDarkPoolCurveMultiExchange',\n [Action.DEFI_INFRA]: '/v1/pgDarkPoolDefiInfra',\n [Action.STAKE]: '/v1/pgDarkPoolZkStake',\n [Action.REDEEM]: '/v1/pgDarkPoolZkRedeem',\n [Action.AERODROME_SWAP]: '/v1/pgDarkPoolAerodromeSwap',\n [Action.AERODROME_LP_DEPOSIT]: '/v1/pgDarkPoolAerodromeAddLiquidity',\n [Action.AERODROME_LP_WITHDRAW]: '/v1/pgDarkPoolAerodromeRemoveLiquidity',\n [Action.ROCKET_POOL_STAKE]: '/v1/pgDarkPoolRocketPoolStake',\n [Action.ROCKET_POOL_UNSTAKE]: '/v1/pgDarkPoolRocketPoolUnStake',\n [Action.SABLIER_CLAIM_STREAM]: '/v1/pgDarkPoolSablierClaim',\n [Action.THE_DEEP_NOTE_DEPOSIT]: '/v1/pgDarkPoolTheDeepNoteDeposit',\n [Action.THE_DEEP_WITHDRAW]: '/v1/pgDarkPoolTheDeepWithdraw'\n};\n\nexport const legacyTokenConfig: { [chainId: number]: string[] } = {\n [ChainId.MAINNET]: ['0xdac17f958d2ee523a2206206994597c13d831ec7'],\n [ChainId.HARDHAT]: ['0xdac17f958d2ee523a2206206994597c13d831ec7']\n};\n","import { Note, PartialNote } from '@thesingularitynetwork/darkpool-v1-proof-lite';\nimport axios from 'axios';\nimport { Relayer } from '../entities/relayer';\nimport { DarkpoolError } from '../entities';\nimport { DarkPool } from '../darkpool';\n\nexport class BaseContext {\n private _signature: string;\n private _merkleRoot?: string;\n private _tx?: string;\n\n constructor(signature: string) {\n this._signature = signature;\n }\n\n get signature(): string {\n return this._signature;\n }\n\n set merkleRoot(merkleRoot: string | undefined) {\n this._merkleRoot = merkleRoot;\n }\n\n get merkleRoot(): string | undefined {\n return this._merkleRoot;\n }\n\n set tx(tx: string | undefined) {\n this._tx = tx;\n }\n\n get tx(): string | undefined {\n return this._tx;\n }\n}\n\nexport class BaseRelayerContext extends BaseContext {\n private _relayer: Relayer;\n private _jobId?: string;\n\n constructor(relayer: Relayer, signature: string) {\n super(signature);\n this._relayer = relayer;\n }\n\n get relayer(): Relayer {\n return this._relayer;\n }\n\n set jobId(jobId: string | undefined) {\n this._jobId = jobId;\n }\n\n get jobId(): string | undefined {\n return this._jobId;\n }\n}\n\nexport interface BaseRelayerResult {\n txHash: string;\n}\n\nexport interface MultiWithdrawResult extends BaseRelayerResult {\n outAmounts: bigint[];\n}\n\nexport interface SingleNoteResult extends BaseRelayerResult {\n note: Note;\n}\n\nexport interface MultiNotesResult extends BaseRelayerResult {\n notes: Note[];\n}\n\nexport abstract class BaseContractService<T> {\n protected _darkPool: DarkPool;\n\n constructor(_darkPool: DarkPool) {\n this._darkPool = _darkPool;\n }\n\n abstract prepare(...args: any[]): Promise<{ context: T; outNotes: Note[] }>;\n\n abstract generateProof(context: T): Promise<void>;\n\n abstract execute(context: T): Promise<string>;\n}\n\nexport abstract class BaseRelayerService<T extends BaseRelayerContext, R, S extends BaseRelayerResult> {\n protected _darkPool: DarkPool;\n\n constructor(_darkPool: DarkPool) {\n this._darkPool = _darkPool;\n }\n\n abstract prepare(...args: any[]): Promise<{ context: T; outPartialNotes: PartialNote[] }>;\n\n abstract generateProof(context: T): Promise<void>;\n\n protected abstract getRelayerRequest(context: T): Promise<R>;\n\n protected abstract getRelayerPath(): string;\n\n protected abstract postExecute(context: T): Promise<S>;\n\n async execute(context: T): Promise<string> {\n const relayerRequest = await this.getRelayerRequest(context);\n const response = await axios.post(context.relayer.hostUrl + this.getRelayerPath(), relayerRequest);\n if (response.status == 200) {\n context.jobId = response.data.id;\n return response.data.id;\n } else if (response.status == 400) {\n throw new Error('Request error' + response.data.error);\n } else {\n throw new Error('Relayer not asscessable');\n }\n }\n\n async executeAndWaitForResult(context: T): Promise<S> {\n await this.execute(context);\n\n const { error, txHash } = await this.pollJobStatus(context);\n\n console.log('relayer response, error and tx: ', error, txHash);\n\n if (error) {\n throw new DarkpoolError(error);\n }\n\n return await this.postExecute(context);\n }\n\n async pollJobStatus(context: T): Promise<{ error: string | undefined; txHash: string | undefined }> {\n let tries = 1;\n let txHash = undefined;\n while (tries <= 100) {\n if (tries >= 100) {\n break;\n }\n try {\n const response = await axios.get(`${context.relayer.hostUrl}/v1/jobs/${context.jobId}`);\n if (response.status === 400) {\n const { error } = response.data;\n console.log(error);\n return {\n error: 'Failed to submit transaction to relayer:' + error,\n txHash: undefined\n };\n }\n if (response.status === 200) {\n const { txHash, status, failedReason } = response.data;\n context.tx = txHash;\n\n if (status === 'FAILED') {\n return {\n error: failedReason ?? 'Transaction failed.',\n txHash: txHash\n };\n }\n if (status === 'CONFIRMED' || status === 'MINED') {\n return {\n error: undefined,\n txHash: txHash\n };\n }\n }\n await new Promise(resolve => setTimeout(resolve, 5000));\n } catch (error) {\n console.log(error);\n }\n tries++;\n }\n\n return {\n error: 'Waited too long for transaction to be mined.',\n txHash\n };\n }\n}\n\nexport function transferCodeToNoteFooter(transferCode: string, chainId: number) {\n const params = transferCode.trim().split('-');\n if (params.length < 3 || params[0] != 'ONEOFF' || params[1] != 'RECIPIENT' || params[2] != chainId.toString()) {\n throw new DarkpoolError('Invalid receiver code');\n }\n return BigInt(params[3]);\n}\n\nexport function validateRecipientCode(code: string) {\n const codePattern = /^(ONEOFF-RECIPIENT)-(\\d+)-(\\d+)/gm;\n return codePattern.test(code);\n}\n","import { DepositProofResult, Note, createNote, generateDepositProof } from '@thesingularitynetwork/darkpool-v1-proof-lite';\nimport { ethers } from 'ethers';\nimport DarkpoolAssetManagerAbi from '../../abis/DarkpoolAssetManager.json';\nimport ERC20Abi from '../../abis/IERC20.json';\nimport ERC20_USDT from '../../abis/IERC20_USDT.json';\nimport { DarkPool } from '../../darkpool';\nimport { DarkpoolError } from '../../entities';\nimport { hexlify32, isNativeAsset } from '../../utils/util';\nimport { BaseContext, BaseContractService } from '../BaseService';\nimport { legacyTokenConfig } from '../../config/config';\n\nconst MAX_ALLOWANCE = BigInt('115792089237316195423570985008687907853269984665640564039457584007913129639935'); // 2**256 - 1\n\nexport class DepositContext extends BaseContext {\n private _note?: Note;\n private _address?: string;\n private _proof?: DepositProofResult;\n\n constructor(signature: string) {\n super(signature);\n }\n\n set note(note: Note | undefined) {\n this._note = note;\n }\n\n get note(): Note | undefined {\n return this._note;\n }\n\n set address(address: string | undefined) {\n this._address = address;\n }\n\n get address(): string | undefined {\n return this._address;\n }\n\n set proof(proof: DepositProofResult | undefined) {\n this._proof = proof;\n }\n\n get proof(): DepositProofResult | undefined {\n return this._proof;\n }\n}\n\nexport class DepositService extends BaseContractService<DepositContext> {\n constructor(_darkPool: DarkPool) {\n super(_darkPool);\n }\n\n public async prepare(\n asset: string,\n amount: bigint,\n walletAddress: string,\n signature: string\n ): Promise<{ context: DepositContext; outNotes: Note[] }> {\n const note = await createNote(asset, amount, signature);\n const context = new DepositContext(signature);\n context.note = note;\n context.address = walletAddress;\n return { context, outNotes: [note] };\n }\n\n public async generateProof(context: DepositContext): Promise<void> {\n if (!context || !context.note || !context.address || !context.signature) {\n throw new DarkpoolError('Invalid context');\n }\n const proof = await generateDepositProof({\n note: context.note,\n signedMessage: context.signature,\n address: context.address,\n options: this._darkPool.proofOptions\n });\n context.proof = proof;\n }\n\n public async execute(context: DepositContext): Promise<string> {\n if (!context || !context.note || !context.address || !context.signature || !context.proof) {\n throw new DarkpoolError('Invalid context');\n }\n const signer = this._darkPool.signer;\n const contract = new ethers.Contract(\n this._darkPool.contracts.darkpoolAssetManager,\n DarkpoolAssetManagerAbi.abi,\n signer\n );\n\n if (!isNativeAsset(context.note.asset)) {\n await this.allowance(context);\n const tx = await contract.depositERC20(\n context.note.asset,\n hexlify32(context.note.amount),\n hexlify32(context.note.note),\n context.proof.noteFooter,\n context.proof.proof.proof\n );\n return tx.hash;\n } else {\n const tx = await contract.depositETH(\n hexlify32(context.note.note),\n context.proof.noteFooter,\n context.proof.proof.proof,\n { value: context.note.amount }\n );\n return tx.hash;\n }\n }\n\n protected async allowance(context: DepositContext) {\n if (!context || !context.note || !context.address || !context.signature || !context.proof) {\n throw new DarkpoolError('Invalid context');\n }\n const signer = this._darkPool.signer;\n const allowanceContract = new ethers.Contract(context.note.asset, ERC20Abi.abi, this._darkPool);\n const allowance = await allowanceContract.allowance(\n signer.getAddress(),\n this._darkPool.contracts.darkpoolAssetManager\n );\n if (BigInt(allowance) < context.note.amount) {\n const isLegacy =\n legacyTokenConfig.hasOwnProperty(this._darkPool.chainId) &&\n legacyTokenConfig[this._darkPool.chainId].includes(context.note.asset.toLowerCase());\n const contract = new ethers.Contract(context.note.asset, isLegacy ? ERC20_USDT.abi : ERC20Abi.abi, signer);\n const tx = await contract.approve(this._darkPool.contracts.darkpoolAssetManager, hexlify32(MAX_ALLOWANCE));\n await tx.wait();\n }\n }\n\n public getContractCallParameters(context: DepositContext) {\n if (!context || !context.note || !context.address || !context.signature || !context.proof) {\n throw new DarkpoolError('Invalid context');\n }\n\n return {\n proof: context.proof.proof.proof,\n asset: context.note.asset,\n amount: hexlify32(context.note.amount),\n note: hexlify32(context.note.note),\n noteFooter: context.proof.noteFooter\n };\n }\n}\n","import { ethers } from 'ethers';\nimport MerkleAbi from '../abis/MerkleTreeOperator.json';\nimport { DarkPool } from '../darkpool';\nimport { hexlify32 } from '../utils/util';\n\nexport interface MerklePath {\n noteCommitment: bigint;\n path: string[];\n index: number[];\n root: string;\n}\n\nfunction getContract(address: string, darkPool: DarkPool) {\n const provider = darkPool.provider;\n return new ethers.Contract(address, MerkleAbi.abi, provider);\n}\n\nexport async function getMerklePathAndRoot(note: bigint, darkPool: DarkPool) {\n const contract = getContract(darkPool.contracts.merkleTreeOperator, darkPool);\n const [path, index, root] = await contract.getMerklePath(hexlify32(note));\n return { path, index: index.map((x: boolean) => (x ? 1 : 0)), root };\n}\n\nexport async function multiGetMerklePathAndRoot(notes: bigint[], darkPool: DarkPool): Promise<MerklePath[]> {\n const contract = getContract(darkPool.contracts.merkleTreeOperator, darkPool);\n\n const blockNumber = await darkPool.provider.getBlockNumber();\n\n const [root, ...results] = await Promise.all([\n contract.getMerkleRoot({ blockTag: blockNumber }),\n ...notes.map(note => contract.getMerklePath(hexlify32(note), { blockTag: blockNumber }))\n ]);\n\n return results.map(([path, index, _], i) => ({\n noteCommitment: notes[i],\n path,\n index: index.map((x: boolean) => (x ? 1 : 0)),\n root\n }));\n}\n","import {\n Note,\n PartialNote,\n WithdrawProofResult,\n generateWithdrawProof\n} from '@thesingularitynetwork/darkpool-v1-proof-lite';\nimport { Action, relayerPathConfig } from '../../config/config';\nimport { WithdrawRelayerRequest } from '../../entities/relayerRequestTypes';\nimport { hexlify32 } from '../../utils/util';\nimport { BaseRelayerContext, BaseRelayerResult, BaseRelayerService } from '../BaseService';\nimport { getMerklePathAndRoot } from '../merkletree';\nimport { Relayer } from '../../entities/relayer';\nimport { DarkpoolError } from '../../entities';\nimport { DarkPool } from '../../darkpool';\n\nclass WithdrawContext extends BaseRelayerContext {\n private _note?: Note;\n private _recipient?: string;\n private _proof?: WithdrawProofResult;\n\n constructor(relayer: Relayer, signature: string) {\n super(relayer, signature);\n }\n\n set note(note: Note | undefined) {\n this._note = note;\n }\n\n get note(): Note | undefined {\n return this._note;\n }\n\n set recipient(recipient: string | undefined) {\n this._recipient = recipient;\n }\n\n get recipient(): string | undefined {\n return this._recipient;\n }\n\n set proof(proof: WithdrawProofResult | undefined) {\n this._proof = proof;\n }\n\n get proof(): WithdrawProofResult | undefined {\n return this._proof;\n }\n}\n\nexport class WithdrawService extends BaseRelayerService<WithdrawContext, WithdrawRelayerRequest, BaseRelayerResult> {\n constructor(_darkPool: DarkPool) {\n super(_darkPool);\n }\n\n public async prepare(\n note: Note,\n recipient: string,\n signature: string\n ): Promise<{ context: WithdrawContext; outPartialNotes: PartialNote[] }> {\n const context = new WithdrawContext(this._darkPool.getRelayer(), signature);\n context.note = note;\n context.recipient = recipient;\n return { context, outPartialNotes: [] };\n }\n\n public async generateProof(context: WithdrawContext): Promise<void> {\n if (!context || !context.note || !context.recipient || !context.signature) {\n throw new DarkpoolError('Invalid context');\n }\n\n const path = await getMerklePathAndRoot(context.note.note, this._darkPool);\n context.merkleRoot = path.root;\n\n const proof = await generateWithdrawProof({\n note: context.note,\n address: context.recipient,\n merkleRoot: path.root,\n merklePath: path.path,\n merkleIndex: path.index,\n relayer: context.relayer.relayerAddress,\n signedMessage: context.signature,\n options: this._darkPool.proofOptions\n });\n context.proof = proof;\n }\n\n public async getRelayerRequest(context: WithdrawContext): Promise<WithdrawRelayerRequest> {\n if (\n !context ||\n !context.note ||\n !context.signature ||\n !context.merkleRoot ||\n !context.recipient ||\n !context.proof\n ) {\n throw new DarkpoolError('Invalid context');\n }\n\n const withdrawRelayerRequest: WithdrawRelayerRequest = {\n proof: context.proof.proof.proof,\n asset: context.note.asset,\n merkleRoot: context.merkleRoot,\n nullifier: context.proof.nullifier,\n recipient: context.recipient,\n relayer: context.relayer.relayerAddress,\n amount: hexlify32(context.note.amount),\n refund: hexlify32(0n),\n verifierArgs: context.proof.proof.verifyInputs\n };\n\n return withdrawRelayerRequest;\n }\n\n public getRelayerPath(): string {\n return relayerPathConfig[Action.WITHDRAW];\n }\n\n //eslint-disable-next-line @typescript-eslint/no-unused-vars\n public async postExecute(context: WithdrawContext): Promise<BaseRelayerResult> {\n console.log(context.tx);\n return { txHash: context.tx! };\n }\n\n public getRelayerContractCallParameters(context: WithdrawContext) {\n if (!context || !context.note || !context.recipient || !context.signature || !context.proof) {\n throw new DarkpoolError('Invalid context');\n }\n\n return {\n proof: context.proof.proof.proof,\n asset: context.note.asset,\n merkleRoot: context.merkleRoot,\n nullifier: context.proof.nullifier,\n recipient: context.recipient,\n relayer: context.relayer.relayerAddress,\n amount: hexlify32(context.note.amount)\n };\n }\n}\n","import { calcNullifier, getNullifier, Note, validateNote } from '@thesingularitynetwork/darkpool-v1-proof-lite';\nimport { DarkPool } from '../darkpool';\nimport { hexlify32 } from '../utils/util';\nimport { ethers } from 'ethers';\nimport MerkleAbi from '../abis/MerkleTreeOperator.json';\nimport { NoteOnChainStatus } from '../entities';\n\nfunction getContract(address: string, darkPool: DarkPool) {\n const provider = darkPool.provider;\n return new ethers.Contract(address, MerkleAbi.abi, provider);\n}\n\nasync function getNoteOnChainStatus(darkPool: DarkPool, note: string, nullifier: string) {\n const contract = getContract(darkPool.contracts.merkleTreeOperator, darkPool);\n const isCreated = (await contract.noteCommitmentsCreated(note)) as boolean;\n if (!isCreated) {\n return NoteOnChainStatus.UNKNOWN;\n }\n const isSpent = (await contract.nullifiersUsed(nullifier)) as boolean;\n if (isSpent) {\n return NoteOnChainStatus.SPENT;\n }\n const isLocked = (await contract.nullifiersLocked(nullifier)) as boolean;\n if (isLocked) {\n return NoteOnChainStatus.LOCKED;\n }\n return NoteOnChainStatus.ACTIVE;\n}\n\nexport async function getNoteOnChainStatusByPublicKey(\n darkPool: DarkPool,\n note: Note,\n publicKey: any\n): Promise<NoteOnChainStatus> {\n const nullifier = calcNullifier(note.rho, publicKey);\n const onChainStatus = await getNoteOnChainStatus(darkPool, hexlify32(note.note), hexlify32(nullifier));\n return onChainStatus;\n}\n\nexport async function getNoteOnChainStatusBySignature(\n darkPool: DarkPool,\n note: Note,\n signature: string\n): Promise<NoteOnChainStatus> {\n const nullifier = await getNullifier({\n rho: note.rho,\n signedMessage: signature\n });\n const onChainStatus = await getNoteOnChainStatus(darkPool, hexlify32(note.note), nullifier);\n return onChainStatus;\n}\n\nexport async function isNoteActive(darkPool: DarkPool, note: Note, signature: string): Promise<boolean> {\n const nullifier = await getNullifier({\n rho: note.rho,\n signedMessage: signature\n });\n const onChainStatus = await getNoteOnChainStatus(darkPool, hexlify32(note.note), nullifier);\n return onChainStatus === NoteOnChainStatus.ACTIVE;\n}\n\nexport async function isNoteSpent(darkPool: DarkPool, note: Note, signature: string) {\n const nullifier = await getNullifier({\n rho: note.rho,\n signedMessage: signature\n });\n const onChainStatus = await getNoteOnChainStatus(darkPool, hexlify32(note.note), nullifier);\n return onChainStatus === NoteOnChainStatus.SPENT;\n}\n\nexport async function isNoteLocked(darkPool: DarkPool, note: Note, signature: string) {\n const nullifier = await getNullifier({\n rho: note.rho,\n signedMessage: signature\n });\n const onChainStatus = await getNoteOnChainStatus(darkPool, hexlify32(note.note), nullifier);\n return onChainStatus === NoteOnChainStatus.LOCKED;\n}\n\nexport async function isNoteValid(note: Note, signature: string) {\n return await validateNote(note, signature);\n}\n\nexport async function isNftNoteValid(note: Note, signature: string) {\n return await validateNote(note, signature);\n}\n","import { ChainId } from './chain';\n\nexport type ContractConfiguartion = {\n priceOracle: string;\n ethAddress: string;\n nativeWrapper: string;\n complianceManager: string;\n merkleTreeOperator: string;\n darkpoolAssetManager: string;\n transferAssetManager: string;\n otcSwapAssetManager: string;\n stakingOperator: string;\n stakingAssetManager: string;\n drakpoolSubgraphUrl: string;\n batchJoinSplitAssetManager: string;\n darkpoolSwapAssetManager: string;\n nftAssetManager: string;\n theDeepAssetManager?: string;\n uniswapConfig?: {\n swapRouterAddress: string;\n quoterContractAddress: string;\n wrappedNativeTokenAddress: string;\n v3PosNftAddress: string;\n factoryAddress: string;\n subgraphUrl: string;\n };\n sablierConfig?: {\n aliasPrefixLinear: string;\n aliasPrefixDynamic: string;\n lockupLinear: string;\n lockupDynamic: string;\n sablierDynamicAssetManager: string;\n sablierLinearAssetManager: string;\n };\n};\n\nexport const contractConfig: { [chainId: number]: ContractConfiguartion } = {\n [ChainId.MAINNET]: {\n priceOracle: '0x0AdDd25a91563696D8567Df78D5A01C9a991F9B8',\n ethAddress: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n nativeWrapper: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n complianceManager: '0x630aD89523a18fA30F752297F3F53B7BC363488b',\n merkleTreeOperator: '0x152f1051c8D37Fba9A362Fc9b32a0eeF8496202F',\n darkpoolAssetManager: '0x159F3668c72BBeCdF1fb31beeD606Ec9649654eB',\n transferAssetManager: '0x0', //FIXME\n otcSwapAssetManager: '0xB8096ecD7d3185b24AA218C509175185C11f13a9',\n stakingOperator: '0x539bcbc08F2cA42E50887dA4Db0DC34EbF0B090b',\n stakingAssetManager: '0x1Fa7Cb4925086128f3bb9e26761C9C75dbAC3CD1',\n batchJoinSplitAssetManager: '0x1346b13Ff3Bd19d882E2491cBdAb2DbFc59982E3',\n darkpoolSwapAssetManager: '0x0', //FIXME\n nftAssetManager: '0xbB0679f6831Ee3736AE53D8fcECB9c0e684615d0',\n drakpoolSubgraphUrl:\n 'https://subgraph.satsuma-prod.com/1c6a44a9ed6e/pgs-team--611591/singularity-subgraph/version/v0.0.1/api',\n uniswapConfig: {\n swapRouterAddress: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',\n quoterContractAddress: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',\n wrappedNativeTokenAddress: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n v3PosNftAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n factoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n subgraphUrl: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3?source=uniswap'\n }\n },\n [ChainId.ARBITRUM_ONE]: {\n priceOracle: '0x0AdDd25a91563696D8567Df78D5A01C9a991F9B8',\n ethAddress: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n nativeWrapper: '0x82af49447d8a07e3bd95bd0d56f35241523fbab1',\n stakingOperator: '0xF4f1D4F28Be82D81135c13D255452B8325B585B0',\n stakingAssetManager: '0xB1CC5D9227323330E8a58e891c123B38D03f0BAA',\n complianceManager: '0x23A37b553c46f4864537Ab1e8d1e49804b47A5A7',\n merkleTreeOperator: '0x0e2aCb73EBB02bd4099d495bcb96F7522F84ddb7',\n darkpoolAssetManager: '0xf7C40b5057a1D1a3d58B02BCdb125E63ef380564',\n transferAssetManager: '0x0', //FIXME\n otcSwapAssetManager: '0xcbFA6BB3eb4Bd9BF97866baE75FfB62f3aE897c0',\n batchJoinSplitAssetManager: '0xd39EA1e275ee468f977f93134a564aF76696E0fE',\n darkpoolSwapAssetManager: '0x0', //FIXME\n nftAssetManager: '0x143242Ff430620a3FA3f9fEaB576050fb20C63BB',\n\n drakpoolSubgraphUrl: 'https://subgraph.satsuma-prod.com/1c6a44a9ed6e/pgs-team--611591/singularity-arb-subgraph/api'\n },\n [ChainId.BounceBit]: {\n priceOracle: '0x0',\n ethAddress: '0x0000000000000000000000000000000000000000',\n nativeWrapper: '0xF4c20e5004C6FDCDdA920bDD491ba8C98a9c5863',\n stakingOperator: '0x4d459dDe25707CA353De15CC3B85b7C2e4bb380c',\n stakingAssetManager: '0xe6B0a94e1eA206B122a11a30dA7FB9ADaA12ef42',\n complianceManager: '0x1Fe002A6E413C70D5CB8477cDaA0422fc7611fCc',\n merkleTreeOperator: '0x159F3668c72BBeCdF1fb31beeD606Ec9649654eB',\n darkpoolAssetManager: '0x722133fBb559E2849e3402De3279Bd3059b7fe4E',\n transferAssetManager: '0x0', //FIXME\n otcSwapAssetManager: '0xAa5e02284d1Fd0f6C12AFBDABc28Ed5aC5a6474b',\n batchJoinSplitAssetManager: '0x0', //FIXME\n darkpoolSwapAssetManager: '0x0', //FIXME\n nftAssetManager: '0x0', //FIXME\n drakpoolSubgraphUrl: 'https://bb.subgraph.thesingularity.network/subgraphs/name/singularity/'\n },\n [ChainId.BASE]: {\n priceOracle: '0xf224a25453D76A41c4427DD1C05369BC9f498444',\n ethAddress: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n nativeWrapper: '0x4200000000000000000000000000000000000006',\n complianceManager: '0xFa368E046B4051582662f7d1C033756dB55058cF',\n merkleTreeOperator: '0xdcd767f6f877B4Ef85d631f23e51ff3a2BCC9378',\n darkpoolAssetManager: '0x84eb120A35802460484015e6748375369e40468a',\n transferAssetManager: '0x0', //FIXME\n stakingOperator: '0xfdA33b941E6C014bD079C6917b815EFA58976f37',\n stakingAssetManager: '0xa3d27E1Ca5057372478011FB781479B8A1fF7AA3',\n otcSwapAssetManager: '0x3D76Fd85FCc2593970d22Aa34bcC4c5444c57c9D',\n batchJoinSplitAssetManager: '0x7b497A97EC69621019fc7eC3D5EF06859AfEBaf1',\n darkpoolSwapAssetManager: '0x0', //FIXME\n nftAssetManager: '0xC4e979C922E93938dBaBb6e1623a19cbc6132489',\n drakpoolSubgraphUrl: 'https://subgraph.satsuma-prod.com/1c6a44a9ed6e/pgs-team--611591/singularity-base-subgraph/api'\n },\n [ChainId.SEPOLIA]: {\n priceOracle: '0x4Fe44a9aC8Ef059Be2dB97f9e3bcA32Ab698C2f2',\n ethAddress: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n nativeWrapper: '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14',\n stakingOperator: '0xca7081e8C689C2BA887cEaCcfCB1961716CF5fc9',\n stakingAssetManager: '0x5041cad705244626E8BB9bd6D828b94EEAB09D8b',\n complianceManager: '0x08DD9cEf89923EDa02F56a4d4aB3FC4a96531443',\n merkleTreeOperator: '0x84026d6f3b6A4cEa7AD00Cd5154a8537129B3742',\n darkpoolAssetManager: '0xa10d309818527C8D8F5164f9D640515d6616bFeE',\n transferAssetManager: '0x0',\n otcSwapAssetManager: '0x549f3bAD265A0383394E0ABEC7b67b4ff750d2ca',\n batchJoinSplitAssetManager: '0x31816E27809fdc3cF73539d761133a301beEb9B0',\n darkpoolSwapAssetManager: '0x802ae625C2bdac1873B8bbb709679CC401F57abc',\n nftAssetManager: '0x0', //FIXME\n drakpoolSubgraphUrl: ''\n },\n [ChainId.BounceBitTestnet]: {\n priceOracle: '0x0',\n ethAddress: '0x0000000000000000000000000000000000000000',\n nativeWrapper: '0x0',\n stakingOperator: '0xEF8F70bB29DEAd5CEcaE26C6Cb19B987475B3e48',\n stakingAssetManager: '0x30cAA40e8D8d00fEAFc05732Ed75856f5eC7F89c',\n complianceManager: '0x1Fa7Cb4925086128f3bb9e26761C9C75dbAC3CD1',\n merkleTreeOperator: '0x40FecD96e94c3c2eE0Fb8bE5cE7073Bb3fB46F51',\n darkpoolAssetManager: '0xf21f124F395271e8435A93063AE2AD74829D7b69',\n transferAssetManager: '0x0',\n otcSwapAssetManager: '0x0',\n batchJoinSplitAssetManager: '0x0', //FIXME\n darkpoolSwapAssetManager: '0x0', //FIXME\n nftAssetManager: '0x0', //FIXME\n drakpoolSubgraphUrl: ''\n },\n [ChainId.HARDHAT]: {\n priceOracle: '0x0AdDd25a91563696D8567Df78D5A01C9a991F9B8',\n ethAddress: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n nativeWrapper: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n merkleTreeOperator: '0xCC5Bc84C3FDbcF262AaDD9F76652D6784293dD9e',\n complianceManager: '0x987Aa6E80e995d6A76C4d061eE324fc760Ea9F61',\n darkpoolAssetManager: '0xe24e7570Fe7207AdAaAa8c6c89a59850391B5276',\n transferAssetManager: '0x0', //FIXME\n otcSwapAssetManager: '0x26Df0Ea798971A97Ae121514B32999DfDb220e1f',\n stakingOperator: '0x6B9C4119796C80Ced5a3884027985Fd31830555b',\n stakingAssetManager: '0xCd9BC6cE45194398d12e27e1333D5e1d783104dD',\n batchJoinSplitAssetManager: '0x0', //FIXME\n darkpoolSwapAssetManager: '0x0', //FIXME\n theDeepAssetManager: '0x0', //FIXME\n nftAssetManager: '0x886a2A3ABF5B79AA5dFF1C73016BD07CFc817e04',\n drakpoolSubgraphUrl: 'https://34.142.142.240:8080/subgraphs/name/singularity/',\n uniswapConfig: {\n swapRouterAddress: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',\n quoterContractAddress: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',\n wrappedNativeTokenAddress: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',\n v3PosNftAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n factoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n subgraphUrl: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3?source=uniswap'\n },\n sablierConfig: {\n aliasPrefixLinear: 'LL2',\n aliasPrefixDynamic: 'LD2',\n lockupLinear: '0xAFb979d9afAd1aD27C5eFf4E27226E3AB9e5dCC9',\n lockupDynamic: '0x7CC7e125d83A581ff438608490Cc0f7bDff79127',\n sablierDynamicAssetManager: '0x453439300B6C5C645737324b990f2d51137027bC',\n sablierLinearAssetManager: '0xB90AcF57C3BFE8e0E8215defc282B5F48b3edC74'\n }\n }\n};\n","import { Token } from '../entities';\nimport { ChainId } from './chain';\n\nexport type StakingConfig = {\n originalToken: Token;\n stakingToken: Token;\n};\n\nexport const stakingTokenConfig: { [chainId: number]: StakingConfig[] } = {\n [ChainId.MAINNET]: [\n {\n originalToken: {\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n decimals: 18,\n symbol: 'ETH',\n name: 'Ethereum'\n },\n stakingToken: {\n address: '0x1Df4fAe6CC88A19825dA7dCF8Fcac8E44BA14D2C',\n decimals: 18,\n symbol: 'sgETH',\n name: 'sgETH'\n }\n },\n {\n originalToken: {\n address: '0xae7ab96520de3a18e5e111b5eaab095312d7fe84',\n decimals: 18,\n symbol: 'stETH',\n name: 'Lido Staked Ether'\n },\n stakingToken: {\n address: '0xe397804A9Ff78329997A2b07aF91D484f78e77Be',\n decimals: 18,\n symbol: 'sgSTETH',\n name: 'sgSTETH'\n }\n },\n {\n originalToken: {\n address: '0xae78736cd615f374d3085123a210448e74fc6393',\n decimals: 18,\n symbol: 'rETH',\n name: 'Rocket Pool ETH'\n },\n stakingToken: {\n address: '0xA8B78eFF928c30e43A60d8920d1549177652045d',\n decimals: 18,\n symbol: 'sgRETH',\n name: 'sgRETH'\n }\n },\n {\n originalToken: {\n address: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n decimals: 6,\n symbol: 'USDT',\n name: 'Tether USD'\n },\n stakingToken: {\n address: '0x91605474f1774f3C1401291A265fa8A995effeb2',\n decimals: 6,\n symbol: 'sgUSDT',\n name: 'sgUSDT'\n }\n },\n {\n originalToken: {\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n decimals: 6,\n symbol: 'USDC',\n name: 'USD Coin'\n },\n stakingToken: {\n address: '0x0692623f022a622b9CB33ffBEe6c14c8abebf4cc',\n decimals: 6,\n symbol: 'sgUSDC',\n name: 'sgUSDC'\n }\n }\n ],\n [ChainId.ARBITRUM_ONE]: [\n {\n originalToken: {\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n decimals: 18,\n symbol: 'ETH',\n name: 'Ethereum'\n },\n stakingToken: {\n address: '0xB2393C436a29edc40BA90b9944edB84466565E0c',\n decimals: 18,\n symbol: 'sgETH',\n name: 'sgETH'\n }\n },\n {\n originalToken: {\n address: '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9',\n decimals: 6,\n symbol: 'USDT',\n name: 'Tether USD'\n },\n stakingToken: {\n address: '0xAB5a3Ab2ef9a03de376CAce74c901a0fccD2A06d',\n decimals: 6,\n symbol: 'sgUSDT',\n name: 'sgUSDT'\n }\n },\n {\n originalToken: {\n address: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',\n decimals: 6,\n symbol: 'USDC',\n name: 'USD Coin'\n },\n stakingToken: {\n address: '0xFB6C93eF0B515d041b0DcDF427657E41DDDB8Da8',\n decimals: 6,\n symbol: 'sgUSDC',\n name: 'sgUSDC'\n }\n }\n ],\n [ChainId.BASE]: [],\n [ChainId.SEPOLIA]: [\n {\n originalToken: {\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n decimals: 18,\n symbol: 'ETH',\n name: 'Ethereum'\n },\n stakingToken: {\n address: '0x56fBD5d5C3e9D5f9Ae916F113232d52e6E377E71',\n decimals: 18,\n symbol: 'sgETH',\n name: 'sgETH'\n }\n }\n ],\n [ChainId.BounceBit]: [\n {\n originalToken: {\n address: '0x0000000000000000000000000000000000000000',\n decimals: 18,\n symbol: 'BB',\n name: 'BB'\n },\n stakingToken: {\n address: '0x5D873095152b921222241c0Cbd82d83b47bB31D3',\n decimals: 18,\n symbol: 'sgBB',\n name: 'sgBB'\n }\n },\n {\n originalToken: {\n address: '0xF5e11df1ebCf78b6b6D26E04FF19cD786a1e81dC',\n decimals: 18,\n symbol: 'BBTC',\n name: 'BBTC'\n },\n stakingToken: {\n address: '0x578A43b97a9c46b13B153Df6AA05393b78E241Ee',\n decimals: 18,\n symbol: 'sgBBTC',\n name: 'sgBBTC'\n }\n },\n {\n originalToken: {\n address: '0x77776b40C3d75cb07ce54dEA4b2Fd1D07F865222',\n decimals: 18,\n symbol: 'BBUSD',\n name: 'BBUSD'\n },\n stakingToken: {\n address: '0x9af2DDB1E3A30442f590f659e13a243Da15C86A0',\n decimals: 18,\n symbol: 'sgBBUSDC',\n name: 'sgBBUSDC'\n }\n },\n {\n originalToken: {\n address: '0x22aAC17E571D6651880d057e310703fF4C7c3483',\n decimals: 18,\n symbol: 'stBB',\n name: 'stBB'\n },\n stakingToken: {\n address: '0x3dD11E06DAA99AD255C83545d05Ad27602e0907F',\n decimals: 18,\n symbol: 'sgSTBB',\n name: 'sgSTBB'\n }\n }\n ],\n [ChainId.BounceBitTestnet]: [\n {\n originalToken: {\n address: '0x0000000000000000000000000000000000000000',\n decimals: 18,\n symbol: 'BB',\n name: 'BB'\n },\n stakingToken: {\n address: '0x1276801901cBC847077a8e7e27C973894c86157A',\n decimals: 18,\n symbol: 'sgBB',\n name: 'sgBB'\n }\n }\n ],\n [ChainId.HARDHAT]: [\n {\n originalToken: {\n address: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',\n decimals: 18,\n symbol: 'ETH',\n name: 'Ethereum'\n },\n stakingToken: {\n address: '0x5fe2f174fe51474Cd198939C96e7dB65983EA307',\n decimals: 18,\n symbol: 'sgETH',\n name: 'sgETH'\n }\n },\n {\n originalToken: {\n address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',\n decimals: 6,\n symbol: 'USDC',\n name: 'USDC'\n },\n stakingToken: {\n address: '0x8AFB0C54bAE39A5e56b984DF1C4b5702b2abf205',\n decimals: 6,\n symbol: 'sgUSDC',\n name: 'sgUSDC'\n }\n }\n ]\n};\n","import { ethers } from 'ethers';\nimport { ContractConfiguartion, contractConfig } from './config/contractConfig';\nimport { StakingConfig, stakingTokenConfig } from './config/stakingConfig';\nimport { DarkpoolError } from './entities';\nimport { Relayer } from './entities/relayer';\nimport { ProofOptions } from '@thesingularitynetwork/darkpool-v1-proof-lite';\n\nexport class DarkPool {\n signer: ethers.Signer;\n provider: ethers.Provider;\n chainId: number;\n relayers: Relayer[];\n contracts: ContractConfiguartion;\n stakingConfigs: StakingConfig[];\n proofOptions?: ProofOptions;\n\n constructor(\n signer: ethers.Signer,\n chainId: number,\n relayers: Relayer[],\n contracts?: ContractConfiguartion,\n stakingConfigs?: StakingConfig[],\n proofOptions?: ProofOptions\n ) {\n // @ts-ignore\n this.signer = signer;\n // @ts-ignore\n this.provider = signer.provider;\n this.chainId = chainId;\n this.relayers = relayers;\n if (contracts) {\n this.contracts = contracts;\n } else {\n if (contractConfig[chainId]) {\n this.contracts = contractConfig[chainId];\n } else {\n throw new DarkpoolError('There is no default contract configuration for the provided chainId');\n }\n }\n if (stakingConfigs) {\n this.stakingConfigs = stakingConfigs;\n } else {\n if (stakingTokenConfig[chainId]) {\n this.stakingConfigs = stakingTokenConfig[chainId];\n } else {\n this.stakingConfigs = [];\n }\n }\n if (proofOptions) {\n this.proofOptions = proofOptions;\n }\n }\n\n public getRelayer() {\n if (this.relayers.length === 0) {\n throw new DarkpoolError('Relayer is not initialized');\n }\n const index = Math.floor(Math.random() * this.relayers.length);\n return this.relayers[index];\n }\n}\n"],"names":["NoteOnChainStatus","DarkpoolError","_Error","message","_this","call","name","_inheritsLoose","_wrapNativeSuper","Error","isNativeAsset","asset","toLowerCase","hexlify32","value","ethers","zeroPadValue","toBeHex","ChainId","Action","BaseContext","_createClass","signature","this","_signature","key","get","_merkleRoot","set","merkleRoot","_tx","tx","BaseRelayerContext","_BaseContext","relayer","_relayer","_jobId","jobId","BaseContractService","_darkPool","BaseRelayerService","_proto","prototype","execute","_execute","_asyncToGenerator","_regeneratorRuntime","mark","_callee","context","relayerRequest","response","wrap","_context","prev","next","getRelayerRequest","sent","axios","post","hostUrl","getRelayerPath","status","data","id","abrupt","error","stop","_x","apply","arguments","executeAndWaitForResult","_executeAndWaitForResult","_callee2","_yield$this$pollJobSt","_context2","pollJobStatus","console","log","txHash","postExecute","_x2","_pollJobStatus","_callee3","tries","_response$data","_txHash","failedReason","_context3","undefined","Promise","resolve","setTimeout","t0","_x3","relayerPathConfig","_relayerPathConfig","WITHDRAW","UNISWAP_SINGLE_SWAP","UNISWAP_LP_DEPOSIT","UNISWAP_LP_WITHDRAW","UNISWAP_LP_COLLECT_FEE","CURVE_LP_DEPOSIT","CURVE_LP_WITHDRAW","CURVE_MULTI_SWAP","DEFI_INFRA","STAKE","REDEEM","AERODROME_SWAP","AERODROME_LP_DEPOSIT","AERODROME_LP_WITHDRAW","ROCKET_POOL_STAKE","ROCKET_POOL_UNSTAKE","SABLIER_CLAIM_STREAM","THE_DEEP_NOTE_DEPOSIT","THE_DEEP_WITHDRAW","legacyTokenConfig","_legacyTokenConfig","MAINNET","HARDHAT","MAX_ALLOWANCE","BigInt","DepositContext","_note","note","_address","address","_proof","proof","DepositService","_BaseContractService","prepare","_prepare","amount","walletAddress","createNote","outNotes","_x4","generateProof","_generateProof","generateDepositProof","signedMessage","options","proofOptions","_x5","contract","Contract","contracts","darkpoolAssetManager","DarkpoolAssetManagerAbi","signer","allowance","depositERC20","noteFooter","hash","depositETH","_x6","_allowance","_callee4","allowanceContract","isLegacy","_context4","ERC20Abi","abi","getAddress","hasOwnProperty","chainId","includes","ERC20_USDT","approve","wait","_x7","getContractCallParameters","getContract","darkPool","MerkleAbi","provider","getMerklePathAndRoot","_getMerklePathAndRoot","_yield$contract$getMe","root","merkleTreeOperator","getMerklePath","path","index","map","x","_multiGetMerklePathAndRoot","notes","blockNumber","_yield$Promise$all","results","getBlockNumber","all","getMerkleRoot","blockTag","concat","slice","_ref","i","noteCommitment","WithdrawContext","_BaseRelayerContext","_recipient","recipient","WithdrawService","_BaseRelayerService","getRelayer","outPartialNotes","generateWithdrawProof","merklePath","merkleIndex","relayerAddress","_getRelayerRequest","withdrawRelayerRequest","nullifier","refund","verifierArgs","verifyInputs","_postExecute","getRelayerContractCallParameters","getNoteOnChainStatus","_getNoteOnChainStatus","noteCommitmentsCreated","UNKNOWN","nullifiersUsed","SPENT","nullifiersLocked","LOCKED","ACTIVE","_getNoteOnChainStatusByPublicKey","publicKey","calcNullifier","rho","_getNoteOnChainStatusBySignature","getNullifier","_isNoteActive","_isNoteSpent","_callee5","_context5","_isNoteLocked","_callee6","_context6","_isNoteValid","_callee7","_context7","validateNote","_isNftNoteValid","_callee8","_context8","contractConfig","_contractConfig","priceOracle","ethAddress","nativeWrapper","complianceManager","transferAssetManager","otcSwapAssetManager","stakingOperator","stakingAssetManager","batchJoinSplitAssetManager","darkpoolSwapAssetManager","nftAssetManager","drakpoolSubgraphUrl","uniswapConfig","swapRouterAddress","quoterContractAddress","wrappedNativeTokenAddress","v3PosNftAddress","factoryAddress","subgraphUrl","ARBITRUM_ONE","BounceBit","BASE","SEPOLIA","BounceBitTestnet","theDeepAssetManager","sablierConfig","aliasPrefixLinear","aliasPrefixDynamic","lockupLinear","lockupDynamic","sablierDynamicAssetManager","sablierLinearAssetManager","stakingTokenConfig","_stakingTokenConfig","originalToken","decimals","symbol","stakingToken","DarkPool","relayers","stakingConfigs","length","Math","floor","random","_x8","_x9","address1","address2","hex1","hex2","_x21","_x22","_x10","_x11","_x12","_x16","_x17","_x18","_x13","_x14","_x15","_x19","_x20","transferCode","params","trim","split","toString","code","test"],"mappings":"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"}