@zama-fhe/sdk 2.1.1-alpha.2 → 2.2.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +3 -4
  2. package/dist/cjs/activity.cjs +1 -1
  3. package/dist/cjs/activity.cjs.map +1 -1
  4. package/dist/cjs/cleartext/index.cjs +1 -2
  5. package/dist/cjs/cleartext.cjs +2 -0
  6. package/dist/cjs/{cleartext/index.cjs.map → cleartext.cjs.map} +1 -1
  7. package/dist/cjs/ethers/index.cjs +1 -1
  8. package/dist/cjs/ethers/index.cjs.map +1 -1
  9. package/dist/cjs/index.cjs +2 -2
  10. package/dist/cjs/index.cjs.map +1 -1
  11. package/dist/cjs/query/index.cjs +1 -1
  12. package/dist/cjs/query/index.cjs.map +1 -1
  13. package/dist/cjs/transfer-batcher.cjs +1 -1
  14. package/dist/cjs/transfer-batcher.cjs.map +1 -1
  15. package/dist/cjs/viem/index.cjs +1 -1
  16. package/dist/cjs/viem/index.cjs.map +1 -1
  17. package/dist/cjs/{erc165.cjs → wrappers-registry.cjs} +2 -2
  18. package/dist/cjs/wrappers-registry.cjs.map +1 -0
  19. package/dist/esm/{activity-B4coeVs1.d.ts → activity-BRrEPcPO.d.ts} +256 -27
  20. package/dist/esm/activity-ChJnF5yd.js +2 -0
  21. package/dist/esm/activity-ChJnF5yd.js.map +1 -0
  22. package/dist/esm/cleartext/index.d.ts +5 -2
  23. package/dist/esm/cleartext/index.js +1 -2
  24. package/dist/esm/cleartext-CxGEREks.js +2 -0
  25. package/dist/esm/cleartext-CxGEREks.js.map +1 -0
  26. package/dist/esm/{eip1193-subscribe-Cl_wlVuQ.js → eip1193-subscribe-Cp2QVN0m.js} +1 -1
  27. package/dist/esm/{eip1193-subscribe-Cl_wlVuQ.js.map → eip1193-subscribe-Cp2QVN0m.js.map} +1 -1
  28. package/dist/esm/ethers/index.d.ts +12 -5
  29. package/dist/esm/ethers/index.js +1 -1
  30. package/dist/esm/ethers/index.js.map +1 -1
  31. package/dist/esm/fhe-artifact-cache-vzh7Xn9G.js.map +1 -1
  32. package/dist/esm/{index-BaBH5_l6.d.ts → index-IhsduS7h.d.ts} +1134 -7
  33. package/dist/esm/index.d.ts +6 -6
  34. package/dist/esm/index.js +2 -2
  35. package/dist/esm/index.js.map +1 -1
  36. package/dist/esm/node/index.d.ts +3 -3
  37. package/dist/esm/node/index.js +1 -1
  38. package/dist/esm/query/index.d.ts +124 -8
  39. package/dist/esm/query/index.js +1 -1
  40. package/dist/esm/query/index.js.map +1 -1
  41. package/dist/esm/{relayer-sdk-mcgawhDN.d.ts → relayer-sdk-CcIghrEq.d.ts} +2 -2
  42. package/dist/esm/{relayer-sdk.types--cY3a2ni.d.ts → relayer-sdk.types-D7rylLS4.d.ts} +1 -1
  43. package/dist/esm/{relayer-utils-DgRkaB8f.d.ts → relayer-utils-BcTAyZOr.d.ts} +14 -3
  44. package/dist/esm/relayer-utils-BeoTNDM4.js +2 -0
  45. package/dist/esm/relayer-utils-BeoTNDM4.js.map +1 -0
  46. package/dist/esm/transfer-batcher-BXIo7hnu.js +2 -0
  47. package/dist/esm/transfer-batcher-BXIo7hnu.js.map +1 -0
  48. package/dist/esm/viem/index.d.ts +24 -5
  49. package/dist/esm/viem/index.js +1 -1
  50. package/dist/esm/viem/index.js.map +1 -1
  51. package/dist/esm/{erc165-GmIEu75Z.js → wrappers-registry-DqPr_JG2.js} +2 -2
  52. package/dist/esm/wrappers-registry-DqPr_JG2.js.map +1 -0
  53. package/package.json +1 -1
  54. package/dist/cjs/erc165.cjs.map +0 -1
  55. package/dist/cjs/relayer-utils.cjs +0 -2
  56. package/dist/cjs/relayer-utils.cjs.map +0 -1
  57. package/dist/esm/activity-q5o6CCaY.js +0 -2
  58. package/dist/esm/activity-q5o6CCaY.js.map +0 -1
  59. package/dist/esm/cleartext/index.js.map +0 -1
  60. package/dist/esm/erc165-GmIEu75Z.js.map +0 -1
  61. package/dist/esm/relayer-utils--TV3NTMg.js +0 -2
  62. package/dist/esm/relayer-utils--TV3NTMg.js.map +0 -1
  63. package/dist/esm/transfer-batcher-C8gp7S82.js +0 -2
  64. package/dist/esm/transfer-batcher-C8gp7S82.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"erc165-GmIEu75Z.js","names":[],"sources":["../../src/abi/encrypted.abi.ts","../../src/contracts/encrypted.ts","../../src/abi/wrapper.abi.ts","../../src/contracts/wrapper.ts","../../src/abi/deployment-coordinator.abi.ts","../../src/contracts/deployment-coordinator.ts","../../src/abi/erc165.abi.ts","../../src/contracts/erc165.ts"],"sourcesContent":["export const encryptedAbi = [\n {\n inputs: [],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\",\n },\n ],\n name: \"AddressEmptyCode\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"CannotReceiveEthForTokenWrap\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"implementation\",\n type: \"address\",\n },\n ],\n name: \"ERC1967InvalidImplementation\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ERC1967NonPayable\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"requestId\",\n type: \"uint256\",\n },\n ],\n name: \"ERC7984InvalidGatewayRequest\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n ],\n name: \"ERC7984InvalidReceiver\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n ],\n name: \"ERC7984InvalidReceiver\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"ERC7984InvalidSender\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ERC7984TotalSupplyOverflow\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"caller\",\n type: \"address\",\n },\n ],\n name: \"ERC7984UnauthorizedCaller\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"spender\",\n type: \"address\",\n },\n ],\n name: \"ERC7984UnauthorizedSpender\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"user\",\n type: \"address\",\n },\n ],\n name: \"ERC7984UnauthorizedUseOfEncryptedAmount\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n ],\n name: \"ERC7984ZeroBalance\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"EthFeeTransferFailed\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"FailedCall\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"IncorrectEthAmount\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"InvalidInitialization\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"InvalidKMSSignatures\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"InvalidUnwrapRequest\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"NotInitializing\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"OwnableInvalidOwner\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"OwnableUnauthorizedAccount\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ReentrancyGuardReentrantCall\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"uint8\",\n name: \"bits\",\n type: \"uint8\",\n },\n {\n internalType: \"uint256\",\n name: \"value\",\n type: \"uint256\",\n },\n ],\n name: \"SafeCastOverflowedUintDowncast\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\",\n },\n ],\n name: \"SafeERC20FailedOperation\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"SanctionedAddress\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"handle\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"SenderNotAllowedToUseHandle\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"UUPSUnauthorizedCallContext\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"slot\",\n type: \"bytes32\",\n },\n ],\n name: \"UUPSUnsupportedProxiableUUID\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"burntAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"caller\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"unwrapInitiator\",\n type: \"address\",\n },\n ],\n name: \"UnauthorizedFinalizeUnwrapCaller\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"WrapperBalanceExceedsMaxSupply\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ZamaProtocolUnsupported\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ZeroAddressDeploymentCoordinator\",\n type: \"error\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"requester\",\n type: \"address\",\n },\n ],\n name: \"AmountDiscloseRequested\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"amount\",\n type: \"uint64\",\n },\n ],\n name: \"AmountDisclosed\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"txId\",\n type: \"uint256\",\n },\n ],\n name: \"BurnInfo\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"ConfidentialTransfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint48\",\n name: \"until\",\n type: \"uint48\",\n },\n ],\n name: \"FinalizeUnwrapOperatorSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"version\",\n type: \"uint64\",\n },\n ],\n name: \"Initialized\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"amount\",\n type: \"uint64\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"txId\",\n type: \"uint256\",\n },\n ],\n name: \"MintInfo\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint48\",\n name: \"until\",\n type: \"uint48\",\n },\n ],\n name: \"OperatorSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferStarted\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bytes32[]\",\n name: \"handlesList\",\n type: \"bytes32[]\",\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"abiEncodedCleartexts\",\n type: \"bytes\",\n },\n ],\n name: \"PublicDecryptionVerified\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"oldRegulator\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newRegulator\",\n type: \"address\",\n },\n ],\n name: \"TokenRegulatorUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"txId\",\n type: \"uint256\",\n },\n ],\n name: \"TransferInfo\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"cleartextAmount\",\n type: \"uint64\",\n },\n ],\n name: \"UnwrapFinalized\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"UnwrapRequested\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"euint64\",\n name: \"burntAmountHandle\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"finalizeSuccess\",\n type: \"bool\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"feeTransferSuccess\",\n type: \"bool\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"burnAmount\",\n type: \"uint64\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"unwrapAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"feeAmount\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"nextTxId\",\n type: \"uint256\",\n },\n ],\n name: \"UnwrappedFinalized\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bool\",\n name: \"returnVal\",\n type: \"bool\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"requestId\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"txId\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"requestedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"burnAmount\",\n type: \"bytes32\",\n },\n ],\n name: \"UnwrappedStarted\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"implementation\",\n type: \"address\",\n },\n ],\n name: \"Upgraded\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"mintAmount\",\n type: \"uint64\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amountIn\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"feeAmount\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to_\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"mintTxId\",\n type: \"uint256\",\n },\n ],\n name: \"Wrapped\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"UPGRADE_INTERFACE_VERSION\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"acceptOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"adminProvider\",\n outputs: [\n {\n internalType: \"contract AdminProvider\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"confidentialBalanceOf\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"confidentialProtocolId\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"confidentialTotalSupply\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransfer\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"confidentialTransfer\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferAndCall\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferAndCall\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferFrom\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"confidentialTransferFrom\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferFromAndCall\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferFromAndCall\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"contractURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"decimals\",\n outputs: [\n {\n internalType: \"uint8\",\n name: \"\",\n type: \"uint8\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"deploymentCoordinator\",\n outputs: [\n {\n internalType: \"contract IDeploymentCoordinator\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"cleartextAmount\",\n type: \"uint64\",\n },\n {\n internalType: \"bytes\",\n name: \"decryptionProof\",\n type: \"bytes\",\n },\n ],\n name: \"discloseEncryptedAmount\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"burntAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"burntAmountCleartext\",\n type: \"uint64\",\n },\n {\n internalType: \"bytes\",\n name: \"decryptionProof\",\n type: \"bytes\",\n },\n ],\n name: \"finalizeUnwrap\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"burntAmount\",\n type: \"bytes32\",\n },\n ],\n name: \"getReceiverEntry\",\n outputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"callbackData\",\n type: \"bytes\",\n },\n {\n internalType: \"euint64\",\n name: \"expectedBurnAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"euint64\",\n name: \"actualBurnAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"committedFeeBasisPoints\",\n type: \"uint64\",\n },\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n ],\n internalType: \"struct RegulatedERC7984ERC20WrapperWithFeesUpgradeable.ReceiverEntry\",\n name: \"\",\n type: \"tuple\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"string\",\n name: \"name_\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol_\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"contractURI_\",\n type: \"string\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"underlying_\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"owner_\",\n type: \"address\",\n },\n {\n internalType: \"contract IDeploymentCoordinator\",\n name: \"deploymentCoordinator_\",\n type: \"address\",\n },\n ],\n name: \"initialize\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isFinalizeUnwrapOperator\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"spender\",\n type: \"address\",\n },\n ],\n name: \"isOperator\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"maxTotalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"nextTxId\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"onTransferReceived\",\n outputs: [\n {\n internalType: \"bytes4\",\n name: \"\",\n type: \"bytes4\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"pendingOwner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"proxiableUUID\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"rate\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"regulator\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n ],\n name: \"requestDiscloseEncryptedAmount\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"requestId\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n internalType: \"uint48\",\n name: \"until\",\n type: \"uint48\",\n },\n ],\n name: \"setFinalizeUnwrapOperator\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n internalType: \"uint48\",\n name: \"until\",\n type: \"uint48\",\n },\n ],\n name: \"setOperator\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newRegulator\",\n type: \"address\",\n },\n ],\n name: \"setTokenRegulator\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenRegulator\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"underlying\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n ],\n name: \"unwrap\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"unwrap\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"unwrapCallbackData\",\n type: \"bytes\",\n },\n ],\n name: \"unwrapAndCall\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n {\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"unwrapCallbackData\",\n type: \"bytes\",\n },\n ],\n name: \"unwrapAndCall\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n ],\n name: \"unwrapWithRefund\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n {\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n ],\n name: \"unwrapWithRefund\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newImplementation\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"upgradeToAndCall\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"wrap\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"wrapETH\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n] as const;\n","import type { Address } from \"viem\";\nimport { toHex } from \"viem\";\nimport { encryptedAbi } from \"../abi/encrypted.abi\";\nimport type { Handle } from \"../relayer/relayer-sdk.types\";\n\n/**\n * Returns the contract config to read an encrypted balance.\n *\n * @example\n * ```ts\n * const handle = await signer.readContract(\n * confidentialBalanceOfContract(tokenAddress, userAddress),\n * );\n * ```\n */\nexport function confidentialBalanceOfContract(tokenAddress: Address, userAddress: Address) {\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"confidentialBalanceOf\",\n args: [userAddress],\n } as const;\n}\n\n/**\n * Returns the contract config for a confidential transfer.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * confidentialTransferContract(tokenAddress, to, handles[0], inputProof),\n * );\n * ```\n */\nexport function confidentialTransferContract(\n encryptedErc20: Address,\n to: Address,\n handle: Uint8Array,\n inputProof: Uint8Array,\n) {\n return {\n address: encryptedErc20,\n abi: encryptedAbi,\n functionName: \"confidentialTransfer\",\n args: [to, toHex(handle), toHex(inputProof)],\n } as const;\n}\n\n/**\n * Returns the contract config for a confidential transferFrom.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * confidentialTransferFromContract(tokenAddress, from, to, handles[0], inputProof),\n * );\n * ```\n */\nexport function confidentialTransferFromContract(\n encryptedErc20: Address,\n from: Address,\n to: Address,\n handle: Uint8Array,\n inputProof: Uint8Array,\n) {\n return {\n address: encryptedErc20,\n abi: encryptedAbi,\n functionName: \"confidentialTransferFrom\",\n args: [from, to, toHex(handle), toHex(inputProof)],\n } as const;\n}\n\n/**\n * Returns the contract config for checking operator status.\n *\n * @example\n * ```ts\n * const isApproved = await signer.readContract(\n * isOperatorContract(tokenAddress, holder, spender),\n * );\n * ```\n */\nexport function isOperatorContract(tokenAddress: Address, holder: Address, spender: Address) {\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"isOperator\",\n args: [holder, spender],\n } as const;\n}\n\n/**\n * Returns the contract config for setting an operator.\n * Defaults timestamp to 1 hour from now.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * setOperatorContract(tokenAddress, spender),\n * );\n * ```\n */\nexport function setOperatorContract(tokenAddress: Address, spender: Address, timestamp?: number) {\n const until = timestamp ?? Math.floor(Date.now() / 1000) + 3600;\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"setOperator\",\n args: [spender, until],\n } as const;\n}\n\n/**\n * Returns the contract config for an unwrap with newly encrypted amount.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * unwrapContract(encryptedErc20, from, to, handles[0], inputProof),\n * );\n * ```\n */\nexport function unwrapContract(\n encryptedErc20: Address,\n from: Address,\n to: Address,\n encryptedAmount: Uint8Array,\n inputProof: Uint8Array,\n) {\n return {\n address: encryptedErc20,\n abi: encryptedAbi,\n functionName: \"unwrap\",\n args: [from, to, toHex(encryptedAmount), toHex(inputProof)],\n } as const;\n}\n\n/**\n * Returns the contract config for an unwrap with an existing balance handle.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * unwrapFromBalanceContract(encryptedErc20, from, to, encryptedBalance),\n * );\n * ```\n */\nexport function unwrapFromBalanceContract(\n encryptedErc20: Address,\n from: Address,\n to: Address,\n encryptedBalance: Handle,\n) {\n return {\n address: encryptedErc20,\n abi: encryptedAbi,\n functionName: \"unwrap\",\n args: [from, to, encryptedBalance],\n } as const;\n}\n\n/**\n * Returns the contract config to read the confidential (encrypted) total supply.\n *\n * @example\n * ```ts\n * const handle = await signer.readContract(\n * confidentialTotalSupplyContract(tokenAddress),\n * );\n * ```\n */\nexport function confidentialTotalSupplyContract(tokenAddress: Address) {\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"confidentialTotalSupply\",\n args: [],\n } as const;\n}\n\n/**\n * Returns the contract config to read the plaintext total supply.\n *\n * @example\n * ```ts\n * const supply = await signer.readContract(\n * totalSupplyContract(tokenAddress),\n * );\n * ```\n */\nexport function totalSupplyContract(tokenAddress: Address) {\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"totalSupply\",\n args: [],\n } as const;\n}\n\n/**\n * Returns the contract config to read the wrap/unwrap conversion rate.\n *\n * @example\n * ```ts\n * const rate = await signer.readContract(rateContract(tokenAddress));\n * ```\n */\nexport function rateContract(tokenAddress: Address) {\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"rate\",\n args: [],\n } as const;\n}\n\n/**\n * Returns the contract config to read the deployment coordinator address.\n *\n * @example\n * ```ts\n * const coordinator = await signer.readContract(\n * deploymentCoordinatorContract(tokenAddress),\n * );\n * ```\n */\nexport function deploymentCoordinatorContract(tokenAddress: Address) {\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"deploymentCoordinator\",\n args: [],\n } as const;\n}\n\n/**\n * Returns the contract config to check finalizeUnwrap operator status.\n *\n * @example\n * ```ts\n * const isOp = await signer.readContract(\n * isFinalizeUnwrapOperatorContract(tokenAddress, holder, operator),\n * );\n * ```\n */\nexport function isFinalizeUnwrapOperatorContract(\n tokenAddress: Address,\n holder: Address,\n operator: Address,\n) {\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"isFinalizeUnwrapOperator\",\n args: [holder, operator],\n } as const;\n}\n\n/**\n * Returns the contract config for setting a finalizeUnwrap operator.\n * Defaults timestamp to 1 hour from now.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * setFinalizeUnwrapOperatorContract(tokenAddress, operator),\n * );\n * ```\n */\nexport function setFinalizeUnwrapOperatorContract(\n tokenAddress: Address,\n operator: Address,\n timestamp?: number,\n) {\n const until = timestamp ?? Math.floor(Date.now() / 1000) + 3600;\n return {\n address: tokenAddress,\n abi: encryptedAbi,\n functionName: \"setFinalizeUnwrapOperator\",\n args: [operator, until],\n } as const;\n}\n","export const wrapperAbi = [\n {\n inputs: [],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\",\n },\n ],\n name: \"AddressEmptyCode\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"CannotReceiveEthForTokenWrap\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"implementation\",\n type: \"address\",\n },\n ],\n name: \"ERC1967InvalidImplementation\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ERC1967NonPayable\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"requestId\",\n type: \"uint256\",\n },\n ],\n name: \"ERC7984InvalidGatewayRequest\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n ],\n name: \"ERC7984InvalidReceiver\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n ],\n name: \"ERC7984InvalidReceiver\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"ERC7984InvalidSender\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ERC7984TotalSupplyOverflow\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"caller\",\n type: \"address\",\n },\n ],\n name: \"ERC7984UnauthorizedCaller\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"spender\",\n type: \"address\",\n },\n ],\n name: \"ERC7984UnauthorizedSpender\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"user\",\n type: \"address\",\n },\n ],\n name: \"ERC7984UnauthorizedUseOfEncryptedAmount\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n ],\n name: \"ERC7984ZeroBalance\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"EthFeeTransferFailed\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"FailedCall\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"IncorrectEthAmount\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"InvalidInitialization\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"InvalidKMSSignatures\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"InvalidUnwrapRequest\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"NotInitializing\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"OwnableInvalidOwner\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"OwnableUnauthorizedAccount\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ReentrancyGuardReentrantCall\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"uint8\",\n name: \"bits\",\n type: \"uint8\",\n },\n {\n internalType: \"uint256\",\n name: \"value\",\n type: \"uint256\",\n },\n ],\n name: \"SafeCastOverflowedUintDowncast\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\",\n },\n ],\n name: \"SafeERC20FailedOperation\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"SanctionedAddress\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"handle\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"SenderNotAllowedToUseHandle\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"UUPSUnauthorizedCallContext\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"slot\",\n type: \"bytes32\",\n },\n ],\n name: \"UUPSUnsupportedProxiableUUID\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"burntAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"caller\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"unwrapInitiator\",\n type: \"address\",\n },\n ],\n name: \"UnauthorizedFinalizeUnwrapCaller\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"WrapperBalanceExceedsMaxSupply\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ZamaProtocolUnsupported\",\n type: \"error\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"requester\",\n type: \"address\",\n },\n ],\n name: \"AmountDiscloseRequested\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"amount\",\n type: \"uint64\",\n },\n ],\n name: \"AmountDisclosed\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"txId\",\n type: \"uint256\",\n },\n ],\n name: \"BurnInfo\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"ConfidentialTransfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint48\",\n name: \"until\",\n type: \"uint48\",\n },\n ],\n name: \"FinalizeUnwrapOperatorSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"version\",\n type: \"uint64\",\n },\n ],\n name: \"Initialized\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"amount\",\n type: \"uint64\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"txId\",\n type: \"uint256\",\n },\n ],\n name: \"MintInfo\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint48\",\n name: \"until\",\n type: \"uint48\",\n },\n ],\n name: \"OperatorSet\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferStarted\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bytes32[]\",\n name: \"handlesList\",\n type: \"bytes32[]\",\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"abiEncodedCleartexts\",\n type: \"bytes\",\n },\n ],\n name: \"PublicDecryptionVerified\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"oldRegulator\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newRegulator\",\n type: \"address\",\n },\n ],\n name: \"TokenRegulatorUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"txId\",\n type: \"uint256\",\n },\n ],\n name: \"TransferInfo\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"cleartextAmount\",\n type: \"uint64\",\n },\n ],\n name: \"UnwrapFinalized\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"UnwrapRequested\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"euint64\",\n name: \"burntAmountHandle\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"finalizeSuccess\",\n type: \"bool\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"feeTransferSuccess\",\n type: \"bool\",\n },\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"burnAmount\",\n type: \"uint64\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"unwrapAmount\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"feeAmount\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"nextTxId\",\n type: \"uint256\",\n },\n ],\n name: \"UnwrappedFinalized\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bool\",\n name: \"returnVal\",\n type: \"bool\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"requestId\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"txId\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"requestedAmount\",\n type: \"bytes32\",\n },\n {\n indexed: false,\n internalType: \"euint64\",\n name: \"burnAmount\",\n type: \"bytes32\",\n },\n ],\n name: \"UnwrappedStarted\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"implementation\",\n type: \"address\",\n },\n ],\n name: \"Upgraded\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint64\",\n name: \"mintAmount\",\n type: \"uint64\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amountIn\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"feeAmount\",\n type: \"uint256\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to_\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"mintTxId\",\n type: \"uint256\",\n },\n ],\n name: \"Wrapped\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"UPGRADE_INTERFACE_VERSION\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"acceptOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"adminProvider\",\n outputs: [\n {\n internalType: \"contract AdminProvider\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"confidentialBalanceOf\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"confidentialProtocolId\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"confidentialTotalSupply\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransfer\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"confidentialTransfer\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferAndCall\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferAndCall\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferFrom\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"confidentialTransferFrom\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferFromAndCall\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"confidentialTransferFromAndCall\",\n outputs: [\n {\n internalType: \"euint64\",\n name: \"transferred\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"contractURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"decimals\",\n outputs: [\n {\n internalType: \"uint8\",\n name: \"\",\n type: \"uint8\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"deploymentCoordinator\",\n outputs: [\n {\n internalType: \"contract IDeploymentCoordinator\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"cleartextAmount\",\n type: \"uint64\",\n },\n {\n internalType: \"bytes\",\n name: \"decryptionProof\",\n type: \"bytes\",\n },\n ],\n name: \"discloseEncryptedAmount\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"burntAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint64\",\n name: \"burntAmountCleartext\",\n type: \"uint64\",\n },\n {\n internalType: \"bytes\",\n name: \"decryptionProof\",\n type: \"bytes\",\n },\n ],\n name: \"finalizeUnwrap\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"string\",\n name: \"name_\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"symbol_\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"contractURI_\",\n type: \"string\",\n },\n {\n internalType: \"contract IERC20\",\n name: \"underlying_\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"owner_\",\n type: \"address\",\n },\n {\n internalType: \"contract IDeploymentCoordinator\",\n name: \"deploymentCoordinator_\",\n type: \"address\",\n },\n ],\n name: \"initialize\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isFinalizeUnwrapOperator\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"spender\",\n type: \"address\",\n },\n ],\n name: \"isOperator\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"maxTotalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"nextTxId\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"onTransferReceived\",\n outputs: [\n {\n internalType: \"bytes4\",\n name: \"\",\n type: \"bytes4\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"pendingOwner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"proxiableUUID\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"rate\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"regulator\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"euint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n ],\n name: \"requestDiscloseEncryptedAmount\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"requestId\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n internalType: \"uint48\",\n name: \"until\",\n type: \"uint48\",\n },\n ],\n name: \"setFinalizeUnwrapOperator\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n internalType: \"uint48\",\n name: \"until\",\n type: \"uint48\",\n },\n ],\n name: \"setOperator\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newRegulator\",\n type: \"address\",\n },\n ],\n name: \"setTokenRegulator\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenRegulator\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"totalSupply\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"underlying\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n ],\n name: \"unwrap\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n ],\n name: \"unwrap\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"unwrapCallbackData\",\n type: \"bytes\",\n },\n ],\n name: \"unwrapAndCall\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n {\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"unwrapCallbackData\",\n type: \"bytes\",\n },\n ],\n name: \"unwrapAndCall\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"euint64\",\n name: \"amount\",\n type: \"bytes32\",\n },\n {\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n ],\n name: \"unwrapWithRefund\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n {\n internalType: \"address\",\n name: \"refund\",\n type: \"address\",\n },\n ],\n name: \"unwrapWithRefund\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newImplementation\",\n type: \"address\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"upgradeToAndCall\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"wrap\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\",\n },\n ],\n name: \"wrapETH\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n] as const;\n","import type { Address, Hex } from \"viem\";\nimport type { Handle } from \"../relayer/relayer-sdk.types\";\nimport { wrapperAbi } from \"../abi/wrapper.abi\";\n\n/**\n * Returns the contract config for finalizing an unwrap.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * finalizeUnwrapContract(wrapper, burntAmount, cleartext, proof),\n * );\n * ```\n */\nexport function finalizeUnwrapContract(\n wrapper: Address,\n burntAmount: Handle,\n burntAmountCleartext: bigint,\n decryptionProof: Hex,\n) {\n return {\n address: wrapper,\n abi: wrapperAbi,\n functionName: \"finalizeUnwrap\",\n args: [burntAmount, burntAmountCleartext, decryptionProof],\n } as const;\n}\n\n/**\n * Returns the contract config to read the underlying ERC-20 token of a wrapper.\n *\n * @example\n * ```ts\n * const token = await signer.readContract(underlyingContract(wrapperAddress));\n * ```\n */\nexport function underlyingContract(wrapperAddress: Address) {\n return {\n address: wrapperAddress,\n abi: wrapperAbi,\n functionName: \"underlying\",\n args: [],\n } as const;\n}\n\n/**\n * Returns the contract config for a wrap (shield) operation.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * wrapContract(wrapperAddress, to, amount),\n * );\n * ```\n */\nexport function wrapContract(wrapperAddress: Address, to: Address, amount: bigint) {\n return {\n address: wrapperAddress,\n abi: wrapperAbi,\n functionName: \"wrap\",\n args: [to, amount],\n } as const;\n}\n\n/**\n * Returns the contract config for wrapping native ETH into a confidential wrapper.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * wrapETHContract(wrapperAddress, to, amount, value),\n * );\n * ```\n */\nexport function wrapETHContract(\n wrapperAddress: Address,\n to: Address,\n amount: bigint,\n value: bigint,\n) {\n return {\n address: wrapperAddress,\n abi: wrapperAbi,\n functionName: \"wrapETH\",\n args: [to, amount],\n value,\n } as const;\n}\n","export const deploymentCoordinatorAbi = [\n {\n inputs: [{ internalType: \"address\", name: \"originalToken\", type: \"address\" }],\n name: \"getWrapper\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"originalToken\", type: \"address\" }],\n name: \"wrapperExists\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n","import type { Address } from \"viem\";\nimport { deploymentCoordinatorAbi } from \"../abi/deployment-coordinator.abi\";\n\n/**\n * Returns the contract config to look up a wrapper for a given ERC-20 token.\n *\n * @example\n * ```ts\n * const wrapper = await signer.readContract(\n * getWrapperContract(coordinatorAddress, tokenAddress),\n * );\n * ```\n */\nexport function getWrapperContract(coordinator: Address, tokenAddress: Address) {\n return {\n address: coordinator,\n abi: deploymentCoordinatorAbi,\n functionName: \"getWrapper\",\n args: [tokenAddress],\n } as const;\n}\n\n/**\n * Returns the contract config to check whether a wrapper exists for a token.\n *\n * @example\n * ```ts\n * const exists = await signer.readContract(\n * wrapperExistsContract(coordinatorAddress, tokenAddress),\n * );\n * ```\n */\nexport function wrapperExistsContract(coordinator: Address, tokenAddress: Address) {\n return {\n address: coordinator,\n abi: deploymentCoordinatorAbi,\n functionName: \"wrapperExists\",\n args: [tokenAddress],\n } as const;\n}\n","export const erc165Abi = [\n {\n inputs: [{ internalType: \"bytes4\", name: \"interfaceId\", type: \"bytes4\" }],\n name: \"supportsInterface\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n","import type { Address } from \"viem\";\nimport { erc165Abi } from \"../abi/erc165.abi\";\n\n/** ERC-165 interface ID for IERC7984 (confidential fungible token). */\nexport const ERC7984_INTERFACE_ID = \"0x4958f2a4\" as const;\n\n/** ERC-165 interface ID for IERC7984ERC20Wrapper (confidential wrapper). */\nexport const ERC7984_WRAPPER_INTERFACE_ID = \"0xd04584ba\" as const;\n\n/**\n * Returns the contract config for an ERC-165 `supportsInterface` check.\n *\n * Use with {@link ERC7984_INTERFACE_ID} to detect confidential tokens,\n * or {@link ERC7984_WRAPPER_INTERFACE_ID} to detect wrappers.\n *\n * @example\n * ```ts\n * const isConfidential = await signer.readContract(\n * supportsInterfaceContract(tokenAddress, ERC7984_INTERFACE_ID),\n * );\n * ```\n */\nexport function supportsInterfaceContract(tokenAddress: Address, interfaceId: Address) {\n return {\n address: tokenAddress,\n abi: erc165Abi,\n functionName: \"supportsInterface\",\n args: [interfaceId],\n } as const;\n}\n\n/**\n * Returns contract config to check if a token implements IERC7984 (confidential fungible token).\n *\n * @example\n * ```ts\n * const isConfidential = await signer.readContract(\n * isConfidentialTokenContract(\"0xTokenAddress\"),\n * );\n * ```\n */\nexport function isConfidentialTokenContract(tokenAddress: Address) {\n return supportsInterfaceContract(tokenAddress, ERC7984_INTERFACE_ID);\n}\n\n/**\n * Returns contract config to check if a token implements IERC7984ERC20Wrapper (confidential wrapper).\n *\n * @example\n * ```ts\n * const isWrapper = await signer.readContract(\n * isConfidentialWrapperContract(\"0xWrapperAddress\"),\n * );\n * ```\n */\nexport function isConfidentialWrapperContract(tokenAddress: Address) {\n return supportsInterfaceContract(tokenAddress, ERC7984_WRAPPER_INTERFACE_ID);\n}\n"],"mappings":"6BAAA,MAAa,EAAe,CAC1B,CACE,OAAQ,EAAE,CACV,gBAAiB,aACjB,KAAM,cACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,iBACN,KAAM,UACP,CACF,CACD,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,yBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,yBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,4BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,0CACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,aACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,wBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,sBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,iCACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,8BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,8BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACF,CACD,KAAM,mCACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iCACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,0BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,mCACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,0BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,SACN,KAAM,SACP,CACF,CACD,KAAM,kBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,WACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,QACN,KAAM,SACP,CACF,CACD,KAAM,4BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,SACd,KAAM,UACN,KAAM,SACP,CACF,CACD,KAAM,cACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,SACN,KAAM,SACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,WACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,QACN,KAAM,SACP,CACF,CACD,KAAM,cACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,YACd,KAAM,cACN,KAAM,YACP,CACD,CACE,QAAS,GACT,aAAc,QACd,KAAM,uBACN,KAAM,QACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,wBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,eACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,kBACN,KAAM,SACP,CACF,CACD,KAAM,kBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,kBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,oBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,OACd,KAAM,kBACN,KAAM,OACP,CACD,CACE,QAAS,GACT,aAAc,OACd,KAAM,qBACN,KAAM,OACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,aACN,KAAM,SACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,qBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,OACd,KAAM,YACN,KAAM,OACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,iBACN,KAAM,UACP,CACF,CACD,KAAM,WACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,SACd,KAAM,aACN,KAAM,SACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,MACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,UACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,4BACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,QAAS,CACP,CACE,aAAc,yBACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,wBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,yBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,0BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACF,CACD,KAAM,uBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,8BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,8BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACF,CACD,KAAM,2BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,kCACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,kCACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,cACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,WACN,QAAS,CACP,CACE,aAAc,QACd,KAAM,GACN,KAAM,QACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,wBACN,QAAS,CACP,CACE,aAAc,kCACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,kBACN,KAAM,SACP,CACD,CACE,aAAc,QACd,KAAM,kBACN,KAAM,QACP,CACF,CACD,KAAM,0BACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,uBACN,KAAM,SACP,CACD,CACE,aAAc,QACd,KAAM,kBACN,KAAM,QACP,CACF,CACD,KAAM,iBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,QAAS,CACP,CACE,WAAY,CACV,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,eACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,qBACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,mBACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,0BACN,KAAM,SACP,CACD,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,aAAc,uEACd,KAAM,GACN,KAAM,QACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,QACN,KAAM,SACP,CACD,CACE,aAAc,SACd,KAAM,UACN,KAAM,SACP,CACD,CACE,aAAc,SACd,KAAM,eACN,KAAM,SACP,CACD,CACE,aAAc,kBACd,KAAM,cACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,kCACd,KAAM,yBACN,KAAM,UACP,CACF,CACD,KAAM,aACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,aACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,OACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,WACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,qBACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,QACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,OACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,YACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACF,CACD,KAAM,iCACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,YACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,QACN,KAAM,SACP,CACF,CACD,KAAM,4BACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,QACN,KAAM,SACP,CACF,CACD,KAAM,cACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,cACN,KAAM,SACP,CACF,CACD,KAAM,oBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,SACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,cACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,aACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACF,CACD,KAAM,SACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,SACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,qBACN,KAAM,QACP,CACF,CACD,KAAM,gBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,qBACN,KAAM,QACP,CACF,CACD,KAAM,gBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,oBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,mBACN,QAAS,EAAE,CACX,gBAAiB,UACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,OACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,UACN,QAAS,EAAE,CACX,gBAAiB,UACjB,KAAM,WACP,CACF,CCj1DD,SAAgB,EAA8B,EAAuB,EAAsB,CACzF,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,wBACd,KAAM,CAAC,EAAY,CACpB,CAaH,SAAgB,EACd,EACA,EACA,EACA,EACA,CACA,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,uBACd,KAAM,CAAC,EAAI,EAAM,EAAO,CAAE,EAAM,EAAW,CAAC,CAC7C,CAaH,SAAgB,EACd,EACA,EACA,EACA,EACA,EACA,CACA,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,2BACd,KAAM,CAAC,EAAM,EAAI,EAAM,EAAO,CAAE,EAAM,EAAW,CAAC,CACnD,CAaH,SAAgB,EAAmB,EAAuB,EAAiB,EAAkB,CAC3F,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,aACd,KAAM,CAAC,EAAQ,EAAQ,CACxB,CAcH,SAAgB,EAAoB,EAAuB,EAAkB,EAAoB,CAE/F,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,cACd,KAAM,CAAC,EALK,GAAa,KAAK,MAAM,KAAK,KAAK,CAAG,IAAK,CAAG,KAKnC,CACvB,CAaH,SAAgB,EACd,EACA,EACA,EACA,EACA,EACA,CACA,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,SACd,KAAM,CAAC,EAAM,EAAI,EAAM,EAAgB,CAAE,EAAM,EAAW,CAAC,CAC5D,CAaH,SAAgB,EACd,EACA,EACA,EACA,EACA,CACA,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,SACd,KAAM,CAAC,EAAM,EAAI,EAAiB,CACnC,CAaH,SAAgB,EAAgC,EAAuB,CACrE,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,0BACd,KAAM,EAAE,CACT,CAaH,SAAgB,EAAoB,EAAuB,CACzD,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,cACd,KAAM,EAAE,CACT,CAWH,SAAgB,EAAa,EAAuB,CAClD,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,OACd,KAAM,EAAE,CACT,CAaH,SAAgB,EAA8B,EAAuB,CACnE,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,wBACd,KAAM,EAAE,CACT,CAaH,SAAgB,EACd,EACA,EACA,EACA,CACA,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,2BACd,KAAM,CAAC,EAAQ,EAAS,CACzB,CAcH,SAAgB,EACd,EACA,EACA,EACA,CAEA,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,4BACd,KAAM,CAAC,EALK,GAAa,KAAK,MAAM,KAAK,KAAK,CAAG,IAAK,CAAG,KAKlC,CACxB,CCzRH,MAAa,EAAa,CACxB,CACE,OAAQ,EAAE,CACV,gBAAiB,aACjB,KAAM,cACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,iBACN,KAAM,UACP,CACF,CACD,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,yBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,yBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,4BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,0CACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,aACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,wBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,sBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,iCACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,8BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,8BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACF,CACD,KAAM,mCACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iCACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,0BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,0BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,SACN,KAAM,SACP,CACF,CACD,KAAM,kBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,WACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,QACN,KAAM,SACP,CACF,CACD,KAAM,4BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,SACd,KAAM,UACN,KAAM,SACP,CACF,CACD,KAAM,cACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,SACN,KAAM,SACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,WACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,QACN,KAAM,SACP,CACF,CACD,KAAM,cACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,YACd,KAAM,cACN,KAAM,YACP,CACD,CACE,QAAS,GACT,aAAc,QACd,KAAM,uBACN,KAAM,QACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,wBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,eACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,kBACN,KAAM,SACP,CACF,CACD,KAAM,kBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,kBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,oBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,OACd,KAAM,kBACN,KAAM,OACP,CACD,CACE,QAAS,GACT,aAAc,OACd,KAAM,qBACN,KAAM,OACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,aACN,KAAM,SACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,qBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,OACd,KAAM,YACN,KAAM,OACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,iBACN,KAAM,UACP,CACF,CACD,KAAM,WACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,SACd,KAAM,aACN,KAAM,SACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,MACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,UACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,4BACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,QAAS,CACP,CACE,aAAc,yBACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,wBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,yBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,0BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACF,CACD,KAAM,uBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,8BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,8BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACF,CACD,KAAM,2BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,kCACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,kCACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,cACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,WACN,QAAS,CACP,CACE,aAAc,QACd,KAAM,GACN,KAAM,QACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,wBACN,QAAS,CACP,CACE,aAAc,kCACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,kBACN,KAAM,SACP,CACD,CACE,aAAc,QACd,KAAM,kBACN,KAAM,QACP,CACF,CACD,KAAM,0BACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,uBACN,KAAM,SACP,CACD,CACE,aAAc,QACd,KAAM,kBACN,KAAM,QACP,CACF,CACD,KAAM,iBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,QACN,KAAM,SACP,CACD,CACE,aAAc,SACd,KAAM,UACN,KAAM,SACP,CACD,CACE,aAAc,SACd,KAAM,eACN,KAAM,SACP,CACD,CACE,aAAc,kBACd,KAAM,cACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,kCACd,KAAM,yBACN,KAAM,UACP,CACF,CACD,KAAM,aACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,aACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,OACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,WACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,qBACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,QACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,OACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,YACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,kBACN,KAAM,UACP,CACF,CACD,KAAM,iCACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,YACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,QACN,KAAM,SACP,CACF,CACD,KAAM,4BACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,QACN,KAAM,SACP,CACF,CACD,KAAM,cACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,cACN,KAAM,SACP,CACF,CACD,KAAM,oBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,SACN,QAAS,CACP,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,cACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,aACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACF,CACD,KAAM,SACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,SACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,qBACN,KAAM,QACP,CACF,CACD,KAAM,gBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,qBACN,KAAM,QACP,CACF,CACD,KAAM,gBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,oBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACF,CACD,KAAM,mBACN,QAAS,EAAE,CACX,gBAAiB,UACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,OACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,UACN,QAAS,EAAE,CACX,gBAAiB,UACjB,KAAM,WACP,CACF,CCrxDD,SAAgB,EACd,EACA,EACA,EACA,EACA,CACA,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,iBACd,KAAM,CAAC,EAAa,EAAsB,EAAgB,CAC3D,CAWH,SAAgB,EAAmB,EAAyB,CAC1D,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,aACd,KAAM,EAAE,CACT,CAaH,SAAgB,EAAa,EAAyB,EAAa,EAAgB,CACjF,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,OACd,KAAM,CAAC,EAAI,EAAO,CACnB,CAaH,SAAgB,EACd,EACA,EACA,EACA,EACA,CACA,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,UACd,KAAM,CAAC,EAAI,EAAO,CAClB,QACD,CCtFH,MAAa,EAA2B,CACtC,CACE,OAAQ,CAAC,CAAE,aAAc,UAAW,KAAM,gBAAiB,KAAM,UAAW,CAAC,CAC7E,KAAM,aACN,QAAS,CAAC,CAAE,aAAc,UAAW,KAAM,GAAI,KAAM,UAAW,CAAC,CACjE,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CAAC,CAAE,aAAc,UAAW,KAAM,gBAAiB,KAAM,UAAW,CAAC,CAC7E,KAAM,gBACN,QAAS,CAAC,CAAE,aAAc,OAAQ,KAAM,GAAI,KAAM,OAAQ,CAAC,CAC3D,gBAAiB,OACjB,KAAM,WACP,CACF,CCFD,SAAgB,EAAmB,EAAsB,EAAuB,CAC9E,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,aACd,KAAM,CAAC,EAAa,CACrB,CAaH,SAAgB,EAAsB,EAAsB,EAAuB,CACjF,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,gBACd,KAAM,CAAC,EAAa,CACrB,CCtCH,MAAa,EAAY,CACvB,CACE,OAAQ,CAAC,CAAE,aAAc,SAAU,KAAM,cAAe,KAAM,SAAU,CAAC,CACzE,KAAM,oBACN,QAAS,CAAC,CAAE,aAAc,OAAQ,KAAM,GAAI,KAAM,OAAQ,CAAC,CAC3D,gBAAiB,OACjB,KAAM,WACP,CACF,CCJY,EAAuB,aAGvB,EAA+B,aAe5C,SAAgB,EAA0B,EAAuB,EAAsB,CACrF,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,oBACd,KAAM,CAAC,EAAY,CACpB,CAaH,SAAgB,EAA4B,EAAuB,CACjE,OAAO,EAA0B,EAAc,EAAqB,CAatE,SAAgB,EAA8B,EAAuB,CACnE,OAAO,EAA0B,EAAc,EAA6B"}
@@ -1,2 +0,0 @@
1
- async function e(e,r=2){let i;for(let a=0;a<=r;a++)try{return await e()}catch(e){if(i=e,a<r&&t(e)){await n(500*2**a);continue}throw e}throw i}function t(e){if(!(e instanceof Error))return!1;let t=e.message.toLowerCase();return t.includes(`timed out`)||t.includes(`timeout`)||t.includes(`econnreset`)||t.includes(`econnrefused`)||t.includes(`network`)||t.includes(`fetch failed`)||t.includes(`socket hang up`)||t.includes(`502`)||t.includes(`503`)||t.includes(`504`)}function n(e){return new Promise(t=>setTimeout(t,e))}const r={chainId:1,gatewayChainId:261131,relayerUrl:`https://relayer.mainnet.zama.org/v2`,network:`https://ethereum-rpc.publicnode.com`,aclContractAddress:`0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6`,kmsContractAddress:`0x77627828a55156b04Ac0DC0eb30467f1a552BB03`,inputVerifierContractAddress:`0xCe0FC2e05CFff1B719EFF7169f7D80Af770c8EA2`,verifyingContractAddressDecryption:`0x0f6024a97684f7d90ddb0fAAD79cB15F2C888D24`,verifyingContractAddressInputVerification:`0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287`},i={chainId:11155111,gatewayChainId:10901,relayerUrl:`https://relayer.testnet.zama.org/v2`,network:`https://ethereum-sepolia-rpc.publicnode.com`,aclContractAddress:`0xf0Ffdc93b7E186bC2f8CB3dAA75D86d1930A433D`,kmsContractAddress:`0xbE0E383937d564D7FF0BC3b46c51f0bF8d5C311A`,inputVerifierContractAddress:`0xBBC1fFCdc7C316aAAd72E807D9b0272BE8F84DA0`,verifyingContractAddressDecryption:`0x5D8BD78e2ea6bbE41f26dFe9fdaEAa349e077478`,verifyingContractAddressInputVerification:`0x483b9dE06E4E4C7D35CCf5837A1668487406D955`},a={chainId:31337,gatewayChainId:10901,relayerUrl:``,network:`http://127.0.0.1:8545`,aclContractAddress:`0x50157CFfD6bBFA2DECe204a89ec419c23ef5755D`,inputVerifierContractAddress:`0x36772142b74871f255CbD7A3e89B401d3e45825f`,kmsContractAddress:`0x901F8942346f7AB3a01F6D7613119Bca447Bb030`,verifyingContractAddressDecryption:`0x5ffdaAB0373E62E2ea2944776209aEf29E631A64`,verifyingContractAddressInputVerification:`0x812b06e1CDCE800494b79fFE4f925A504a9A9810`},o={1:r,11155111:i,31337:a},s={name:`string`,version:`string`,chainId:`uint256`,verifyingContract:`address`,salt:`bytes32`};function c(e){return Object.keys(s).filter(t=>t in e).map(e=>({name:e,type:s[e]}))}export{c as a,i,a as n,e as o,r,o as t};
2
- //# sourceMappingURL=relayer-utils--TV3NTMg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relayer-utils--TV3NTMg.js","names":[],"sources":["../../src/relayer/relayer-utils.ts"],"sourcesContent":["import type { EIP712TypedData } from \"./relayer-sdk.types\";\nimport type { FhevmInstanceConfig } from \"@zama-fhe/relayer-sdk/bundle\";\n\nconst MAX_RETRIES = 2;\nconst RETRY_BASE_MS = 500;\n\n/**\n * Retry an async operation with exponential backoff.\n * Only retries on transient errors (timeout, network). Does not retry user-facing errors.\n */\nexport async function withRetry<T>(fn: () => Promise<T>, retries = MAX_RETRIES): Promise<T> {\n let lastError: unknown;\n for (let attempt = 0; attempt <= retries; attempt++) {\n try {\n return await fn();\n } catch (error) {\n lastError = error;\n if (attempt < retries && isTransientError(error)) {\n await sleep(RETRY_BASE_MS * 2 ** attempt);\n continue;\n }\n throw error;\n }\n }\n throw lastError;\n}\n\nfunction isTransientError(error: unknown): boolean {\n if (!(error instanceof Error)) {\n return false;\n }\n const msg = error.message.toLowerCase();\n return (\n msg.includes(\"timed out\") ||\n msg.includes(\"timeout\") ||\n msg.includes(\"econnreset\") ||\n msg.includes(\"econnrefused\") ||\n msg.includes(\"network\") ||\n msg.includes(\"fetch failed\") ||\n msg.includes(\"socket hang up\") ||\n msg.includes(\"502\") ||\n msg.includes(\"503\") ||\n msg.includes(\"504\")\n );\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * Mainnet network configuration (chainId 1).\n *\n * Contract addresses mirror `MainnetConfigV2` from `@zama-fhe/relayer-sdk`.\n * They are duplicated here because the `/bundle` export path only exposes\n * types at build time (runtime values require `/web` or `/node` which pull\n * in WASM). `satisfies FhevmInstanceConfig` ensures structural drift is\n * caught at compile time.\n */\nexport const MainnetConfig = {\n chainId: 1,\n gatewayChainId: 261131,\n relayerUrl: \"https://relayer.mainnet.zama.org/v2\",\n network: \"https://ethereum-rpc.publicnode.com\",\n aclContractAddress: \"0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6\",\n kmsContractAddress: \"0x77627828a55156b04Ac0DC0eb30467f1a552BB03\",\n inputVerifierContractAddress: \"0xCe0FC2e05CFff1B719EFF7169f7D80Af770c8EA2\",\n verifyingContractAddressDecryption: \"0x0f6024a97684f7d90ddb0fAAD79cB15F2C888D24\",\n verifyingContractAddressInputVerification: \"0xcB1bB072f38bdAF0F328CdEf1Fc6eDa1DF029287\",\n} as const satisfies FhevmInstanceConfig;\n\n/**\n * Sepolia testnet network configuration (chainId 11155111).\n * See {@link MainnetConfig} for why addresses are hardcoded.\n */\nexport const SepoliaConfig = {\n chainId: 11155111,\n gatewayChainId: 10901,\n relayerUrl: \"https://relayer.testnet.zama.org/v2\",\n network: \"https://ethereum-sepolia-rpc.publicnode.com\",\n aclContractAddress: \"0xf0Ffdc93b7E186bC2f8CB3dAA75D86d1930A433D\",\n kmsContractAddress: \"0xbE0E383937d564D7FF0BC3b46c51f0bF8d5C311A\",\n inputVerifierContractAddress: \"0xBBC1fFCdc7C316aAAd72E807D9b0272BE8F84DA0\",\n verifyingContractAddressDecryption: \"0x5D8BD78e2ea6bbE41f26dFe9fdaEAa349e077478\",\n verifyingContractAddressInputVerification: \"0x483b9dE06E4E4C7D35CCf5837A1668487406D955\",\n} as const satisfies FhevmInstanceConfig;\n\n/**\n * Hardhat local network configuration (chainId 31337).\n *\n * The addresses in this configuration must match those of your deployment.\n * Ensure that the executor address and other contract addresses correspond to\n * the contracts deployed on your Hardhat network.\n */\nexport const HardhatConfig = {\n chainId: 31337,\n gatewayChainId: 10901,\n relayerUrl: \"\",\n network: \"http://127.0.0.1:8545\",\n aclContractAddress: \"0x50157CFfD6bBFA2DECe204a89ec419c23ef5755D\",\n inputVerifierContractAddress: \"0x36772142b74871f255CbD7A3e89B401d3e45825f\",\n kmsContractAddress: \"0x901F8942346f7AB3a01F6D7613119Bca447Bb030\",\n verifyingContractAddressDecryption: \"0x5ffdaAB0373E62E2ea2944776209aEf29E631A64\",\n verifyingContractAddressInputVerification: \"0x812b06e1CDCE800494b79fFE4f925A504a9A9810\",\n} as const satisfies FhevmInstanceConfig;\n\nexport const DefaultConfigs: Record<number, FhevmInstanceConfig> = {\n 1: MainnetConfig,\n 11155111: SepoliaConfig,\n 31337: HardhatConfig,\n} as const;\n\n/** EIP-712 domain field → Solidity type. Order follows the EIP-712 spec. */\nconst DOMAIN_FIELD_TYPES: Record<string, string> = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\",\n};\n\n/**\n * Build `EIP712Domain` type entries from the keys present in a domain object.\n * Order matches the EIP-712 spec (name → version → chainId → verifyingContract → salt).\n */\nexport function buildEIP712DomainType(\n domain: EIP712TypedData[\"domain\"],\n): { name: string; type: string }[] {\n return Object.keys(DOMAIN_FIELD_TYPES)\n .filter((k) => k in domain)\n .map((k) => ({ name: k, type: DOMAIN_FIELD_TYPES[k]! }));\n}\n"],"mappings":"AAUA,eAAsB,EAAa,EAAsB,EAAU,EAAyB,CAC1F,IAAI,EACJ,IAAK,IAAI,EAAU,EAAG,GAAW,EAAS,IACxC,GAAI,CACF,OAAO,MAAM,GAAI,OACV,EAAO,CAEd,GADA,EAAY,EACR,EAAU,GAAW,EAAiB,EAAM,CAAE,CAChD,MAAM,EAAM,IAAgB,GAAK,EAAQ,CACzC,SAEF,MAAM,EAGV,MAAM,EAGR,SAAS,EAAiB,EAAyB,CACjD,GAAI,EAAE,aAAiB,OACrB,MAAO,GAET,IAAM,EAAM,EAAM,QAAQ,aAAa,CACvC,OACE,EAAI,SAAS,YAAY,EACzB,EAAI,SAAS,UAAU,EACvB,EAAI,SAAS,aAAa,EAC1B,EAAI,SAAS,eAAe,EAC5B,EAAI,SAAS,UAAU,EACvB,EAAI,SAAS,eAAe,EAC5B,EAAI,SAAS,iBAAiB,EAC9B,EAAI,SAAS,MAAM,EACnB,EAAI,SAAS,MAAM,EACnB,EAAI,SAAS,MAAM,CAIvB,SAAS,EAAM,EAA2B,CACxC,OAAO,IAAI,QAAS,GAAY,WAAW,EAAS,EAAG,CAAC,CAY1D,MAAa,EAAgB,CAC3B,QAAS,EACT,eAAgB,OAChB,WAAY,sCACZ,QAAS,sCACT,mBAAoB,6CACpB,mBAAoB,6CACpB,6BAA8B,6CAC9B,mCAAoC,6CACpC,0CAA2C,6CAC5C,CAMY,EAAgB,CAC3B,QAAS,SACT,eAAgB,MAChB,WAAY,sCACZ,QAAS,8CACT,mBAAoB,6CACpB,mBAAoB,6CACpB,6BAA8B,6CAC9B,mCAAoC,6CACpC,0CAA2C,6CAC5C,CASY,EAAgB,CAC3B,QAAS,MACT,eAAgB,MAChB,WAAY,GACZ,QAAS,wBACT,mBAAoB,6CACpB,6BAA8B,6CAC9B,mBAAoB,6CACpB,mCAAoC,6CACpC,0CAA2C,6CAC5C,CAEY,EAAsD,CACjE,EAAG,EACH,SAAU,EACV,MAAO,EACR,CAGK,EAA6C,CACjD,KAAM,SACN,QAAS,SACT,QAAS,UACT,kBAAmB,UACnB,KAAM,UACP,CAMD,SAAgB,EACd,EACkC,CAClC,OAAO,OAAO,KAAK,EAAmB,CACnC,OAAQ,GAAM,KAAK,EAAO,CAC1B,IAAK,IAAO,CAAE,KAAM,EAAG,KAAM,EAAmB,GAAK,EAAE"}
@@ -1,2 +0,0 @@
1
- const e=[{inputs:[{internalType:`contract AdminProvider`,name:`adminProvider_`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[{internalType:`address`,name:`holder`,type:`address`},{internalType:`address`,name:`spender`,type:`address`}],name:`ERC7984UnauthorizedSpender`,type:`error`},{inputs:[],name:`EmptyTransferArray`,type:`error`},{inputs:[],name:`FeeTransferFailed`,type:`error`},{inputs:[],name:`InsufficientFee`,type:`error`},{inputs:[],name:`OnlyOriginalSenderCanRetry`,type:`error`},{inputs:[],name:`ZamaProtocolUnsupported`,type:`error`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`cToken`,type:`address`},{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`uint256`,name:`startTxId`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`endTxId`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`fee`,type:`uint256`}],name:`BatchTransfer`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`cToken`,type:`address`},{indexed:!0,internalType:`address`,name:`sender`,type:`address`},{indexed:!1,internalType:`uint256`,name:`originalTxId`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`retryTxId`,type:`uint256`}],name:`RetryTransfer`,type:`event`},{inputs:[],name:`adminProvider`,outputs:[{internalType:`contract AdminProvider`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`contract RegulatedERC7984Upgradeable`,name:`cToken`,type:`address`},{internalType:`address`,name:`from`,type:`address`},{components:[{internalType:`address`,name:`to`,type:`address`},{internalType:`externalEuint64`,name:`encryptedAmount`,type:`bytes32`},{internalType:`bytes`,name:`inputProof`,type:`bytes`},{internalType:`uint256`,name:`retryFor`,type:`uint256`}],internalType:`struct ERC7984TransferBatcher.ConfidentialTransferInput[]`,name:`transfers`,type:`tuple[]`}],name:`confidentialBatchTransfer`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[],name:`confidentialProtocolId`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`address`,name:`cToken`,type:`address`},{internalType:`uint256`,name:`txId`,type:`uint256`}],name:`txIdToSender`,outputs:[{internalType:`address`,name:`sender`,type:`address`}],stateMutability:`view`,type:`function`}];function t(t,n,r,i,a){return{address:t,abi:e,functionName:`confidentialBatchTransfer`,args:[n,r,i],value:a}}export{t};
2
- //# sourceMappingURL=transfer-batcher-C8gp7S82.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transfer-batcher-C8gp7S82.js","names":[],"sources":["../../src/abi/transfer-batch.abi.ts","../../src/contracts/transfer-batcher.ts"],"sourcesContent":["export const transferBatcherAbi = [\n {\n inputs: [\n {\n internalType: \"contract AdminProvider\",\n name: \"adminProvider_\",\n type: \"address\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"holder\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"spender\",\n type: \"address\",\n },\n ],\n name: \"ERC7984UnauthorizedSpender\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"EmptyTransferArray\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"FeeTransferFailed\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"InsufficientFee\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"OnlyOriginalSenderCanRetry\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ZamaProtocolUnsupported\",\n type: \"error\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"cToken\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"startTxId\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"endTxId\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"fee\",\n type: \"uint256\",\n },\n ],\n name: \"BatchTransfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"cToken\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"originalTxId\",\n type: \"uint256\",\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"retryTxId\",\n type: \"uint256\",\n },\n ],\n name: \"RetryTransfer\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"adminProvider\",\n outputs: [\n {\n internalType: \"contract AdminProvider\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"contract RegulatedERC7984Upgradeable\",\n name: \"cToken\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n components: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"externalEuint64\",\n name: \"encryptedAmount\",\n type: \"bytes32\",\n },\n {\n internalType: \"bytes\",\n name: \"inputProof\",\n type: \"bytes\",\n },\n {\n internalType: \"uint256\",\n name: \"retryFor\",\n type: \"uint256\",\n },\n ],\n internalType: \"struct ERC7984TransferBatcher.ConfidentialTransferInput[]\",\n name: \"transfers\",\n type: \"tuple[]\",\n },\n ],\n name: \"confidentialBatchTransfer\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"confidentialProtocolId\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"cToken\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"txId\",\n type: \"uint256\",\n },\n ],\n name: \"txIdToSender\",\n outputs: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n","import type { Address, Hex } from \"viem\";\nimport { transferBatcherAbi } from \"../abi/transfer-batch.abi\";\nimport type { Handle } from \"../relayer/relayer-sdk.types\";\n\n/** Batch transfer data for confidentialBatchTransfer. */\nexport interface BatchTransferData {\n to: Address;\n encryptedAmount: Handle;\n inputProof: Hex;\n retryFor: bigint;\n}\n\n/**\n * Returns the contract config for a confidential batch transfer.\n *\n * @example\n * ```ts\n * const txHash = await signer.writeContract(\n * confidentialBatchTransferContract(batcherAddress, tokenAddress, fromAddress, data, fees),\n * );\n * ```\n */\nexport function confidentialBatchTransferContract(\n batcherAddress: Address,\n tokenAddress: Address,\n fromAddress: Address,\n batchTransferData: BatchTransferData[],\n fees: bigint,\n) {\n return {\n address: batcherAddress,\n abi: transferBatcherAbi,\n functionName: \"confidentialBatchTransfer\",\n args: [tokenAddress, fromAddress, batchTransferData],\n value: fees,\n } as const;\n}\n"],"mappings":"AAAA,MAAa,EAAqB,CAChC,CACE,OAAQ,CACN,CACE,aAAc,yBACd,KAAM,iBACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,cACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,0BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,MACN,KAAM,UACP,CACF,CACD,KAAM,gBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,gBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,QAAS,CACP,CACE,aAAc,yBACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,uCACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,WAAY,CACV,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,kBACd,KAAM,kBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,aACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,aAAc,4DACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,4BACN,QAAS,EAAE,CACX,gBAAiB,UACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,yBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACF,CClMD,SAAgB,EACd,EACA,EACA,EACA,EACA,EACA,CACA,MAAO,CACL,QAAS,EACT,IAAK,EACL,aAAc,4BACd,KAAM,CAAC,EAAc,EAAa,EAAkB,CACpD,MAAO,EACR"}