@paxoslabs/amplify-sdk 0.5.0 → 0.5.1

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 (48) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/dist/{chain-utils-CpOJcWig.d.mts → chain-utils-D_b2LEEi.d.mts} +2 -0
  3. package/dist/{chain-utils-CpOJcWig.d.ts → chain-utils-D_b2LEEi.d.ts} +2 -0
  4. package/dist/{chunk-B5BII2XH.mjs → chunk-3D6EDR3Z.mjs} +5 -5
  5. package/dist/{chunk-B5BII2XH.mjs.map → chunk-3D6EDR3Z.mjs.map} +1 -1
  6. package/dist/{chunk-XS4SELWC.js → chunk-AUDMOT6F.js} +22 -15
  7. package/dist/chunk-AUDMOT6F.js.map +1 -0
  8. package/dist/{chunk-2ZJWWK6D.js → chunk-E5DH5YEE.js} +22 -5
  9. package/dist/chunk-E5DH5YEE.js.map +1 -0
  10. package/dist/{chunk-SXIBMN7X.mjs → chunk-E6SBQNDA.mjs} +3 -3
  11. package/dist/{chunk-SXIBMN7X.mjs.map → chunk-E6SBQNDA.mjs.map} +1 -1
  12. package/dist/{chunk-MPCRFKSD.mjs → chunk-JLZL25CY.mjs} +23 -7
  13. package/dist/chunk-JLZL25CY.mjs.map +1 -0
  14. package/dist/{chunk-KTLGSVD6.js → chunk-L5XT67QZ.js} +111 -111
  15. package/dist/{chunk-KTLGSVD6.js.map → chunk-L5XT67QZ.js.map} +1 -1
  16. package/dist/{chunk-GJPTAY5T.mjs → chunk-WJGSTAPB.mjs} +5 -5
  17. package/dist/{chunk-GJPTAY5T.mjs.map → chunk-WJGSTAPB.mjs.map} +1 -1
  18. package/dist/{chunk-N5UKVLSS.js → chunk-XVDK6J72.js} +62 -62
  19. package/dist/{chunk-N5UKVLSS.js.map → chunk-XVDK6J72.js.map} +1 -1
  20. package/dist/{chunk-XA653JS3.mjs → chunk-Y6RXVDQN.mjs} +15 -8
  21. package/dist/chunk-Y6RXVDQN.mjs.map +1 -0
  22. package/dist/{chunk-D7EMZAOQ.js → chunk-YAYUSBC6.js} +12 -12
  23. package/dist/{chunk-D7EMZAOQ.js.map → chunk-YAYUSBC6.js.map} +1 -1
  24. package/dist/core.d.mts +2 -2
  25. package/dist/core.d.ts +2 -2
  26. package/dist/core.js +16 -16
  27. package/dist/core.mjs +4 -4
  28. package/dist/display.d.mts +1 -1
  29. package/dist/display.d.ts +1 -1
  30. package/dist/display.js +10 -10
  31. package/dist/display.mjs +4 -4
  32. package/dist/index.d.mts +2 -2
  33. package/dist/index.d.ts +2 -2
  34. package/dist/index.js +57 -57
  35. package/dist/index.mjs +5 -5
  36. package/dist/utils.d.mts +1 -1
  37. package/dist/utils.d.ts +1 -1
  38. package/dist/utils.js +7 -7
  39. package/dist/utils.mjs +2 -2
  40. package/dist/vaults.d.mts +1 -1
  41. package/dist/vaults.d.ts +1 -1
  42. package/dist/vaults.js +25 -25
  43. package/dist/vaults.mjs +4 -4
  44. package/package.json +1 -1
  45. package/dist/chunk-2ZJWWK6D.js.map +0 -1
  46. package/dist/chunk-MPCRFKSD.mjs.map +0 -1
  47. package/dist/chunk-XA653JS3.mjs.map +0 -1
  48. package/dist/chunk-XS4SELWC.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/abi/accountant-abi.ts","../src/abi/boring-vault-abi.ts","../src/api/accountant.ts","../src/abi/erc2612-abi.ts","../src/api/erc20.ts"],"names":["getClient","erc20Abi","APIError"],"mappings":"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","file":"chunk-D7EMZAOQ.js","sourcesContent":["export const AccountantAbi = [\n {\n type: \"constructor\",\n inputs: [\n { name: \"_owner\", type: \"address\", internalType: \"address\" },\n { name: \"_vault\", type: \"address\", internalType: \"address\" },\n { name: \"payoutAddress\", type: \"address\", internalType: \"address\" },\n { name: \"startingExchangeRate\", type: \"uint96\", internalType: \"uint96\" },\n { name: \"_base\", type: \"address\", internalType: \"address\" },\n {\n name: \"allowedExchangeRateChangeUpper\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n {\n name: \"allowedExchangeRateChangeLower\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n {\n name: \"minimumUpdateDelayInSeconds\",\n type: \"uint32\",\n internalType: \"uint32\",\n },\n { name: \"managementFee\", type: \"uint16\", internalType: \"uint16\" },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"accountantState\",\n inputs: [],\n outputs: [\n { name: \"payoutAddress\", type: \"address\", internalType: \"address\" },\n { name: \"feesOwedInBase\", type: \"uint128\", internalType: \"uint128\" },\n {\n name: \"totalSharesLastUpdate\",\n type: \"uint128\",\n internalType: \"uint128\",\n },\n { name: \"exchangeRate\", type: \"uint96\", internalType: \"uint96\" },\n {\n name: \"allowedExchangeRateChangeUpper\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n {\n name: \"allowedExchangeRateChangeLower\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n { name: \"lastUpdateTimestamp\", type: \"uint64\", internalType: \"uint64\" },\n { name: \"isPaused\", type: \"bool\", internalType: \"bool\" },\n {\n name: \"minimumUpdateDelayInSeconds\",\n type: \"uint32\",\n internalType: \"uint32\",\n },\n { name: \"managementFee\", type: \"uint16\", internalType: \"uint16\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"authority\",\n inputs: [],\n outputs: [\n { name: \"\", type: \"address\", internalType: \"contract Authority\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"base\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\", internalType: \"contract ERC20\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"claimFees\",\n inputs: [\n { name: \"feeAsset\", type: \"address\", internalType: \"contract ERC20\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"decimals\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint8\", internalType: \"uint8\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getRate\",\n inputs: [],\n outputs: [{ name: \"rate\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getRateInQuote\",\n inputs: [\n { name: \"quote\", type: \"address\", internalType: \"contract ERC20\" },\n ],\n outputs: [\n { name: \"rateInQuote\", type: \"uint256\", internalType: \"uint256\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getRateInQuoteSafe\",\n inputs: [\n { name: \"quote\", type: \"address\", internalType: \"contract ERC20\" },\n ],\n outputs: [\n { name: \"rateInQuote\", type: \"uint256\", internalType: \"uint256\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getRateSafe\",\n inputs: [],\n outputs: [{ name: \"rate\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"owner\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\", internalType: \"address\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"pause\",\n inputs: [],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"rateProviderData\",\n inputs: [{ name: \"\", type: \"address\", internalType: \"contract ERC20\" }],\n outputs: [\n { name: \"isPeggedToBase\", type: \"bool\", internalType: \"bool\" },\n {\n name: \"rateProvider\",\n type: \"address\",\n internalType: \"contract IRateProvider\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"setAuthority\",\n inputs: [\n {\n name: \"newAuthority\",\n type: \"address\",\n internalType: \"contract Authority\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"setRateProviderData\",\n inputs: [\n { name: \"asset\", type: \"address\", internalType: \"contract ERC20\" },\n { name: \"isPeggedToBase\", type: \"bool\", internalType: \"bool\" },\n { name: \"rateProvider\", type: \"address\", internalType: \"address\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"transferOwnership\",\n inputs: [{ name: \"newOwner\", type: \"address\", internalType: \"address\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"unpause\",\n inputs: [],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateDelay\",\n inputs: [\n {\n name: \"minimumUpdateDelayInSeconds\",\n type: \"uint32\",\n internalType: \"uint32\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateExchangeRate\",\n inputs: [\n { name: \"newExchangeRate\", type: \"uint96\", internalType: \"uint96\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateLower\",\n inputs: [\n {\n name: \"allowedExchangeRateChangeLower\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateManagementFee\",\n inputs: [{ name: \"managementFee\", type: \"uint16\", internalType: \"uint16\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updatePayoutAddress\",\n inputs: [\n { name: \"payoutAddress\", type: \"address\", internalType: \"address\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateUpper\",\n inputs: [\n {\n name: \"allowedExchangeRateChangeUpper\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"vault\",\n inputs: [],\n outputs: [\n { name: \"\", type: \"address\", internalType: \"contract BoringVault\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"event\",\n name: \"AuthorityUpdated\",\n inputs: [\n { name: \"user\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"newAuthority\",\n type: \"address\",\n indexed: true,\n internalType: \"contract Authority\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"DelayInSecondsUpdated\",\n inputs: [\n {\n name: \"oldDelay\",\n type: \"uint32\",\n indexed: false,\n internalType: \"uint32\",\n },\n {\n name: \"newDelay\",\n type: \"uint32\",\n indexed: false,\n internalType: \"uint32\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"ExchangeRateUpdated\",\n inputs: [\n {\n name: \"oldRate\",\n type: \"uint96\",\n indexed: false,\n internalType: \"uint96\",\n },\n {\n name: \"newRate\",\n type: \"uint96\",\n indexed: false,\n internalType: \"uint96\",\n },\n {\n name: \"currentTime\",\n type: \"uint64\",\n indexed: false,\n internalType: \"uint64\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"FeesClaimed\",\n inputs: [\n {\n name: \"feeAsset\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"LowerBoundUpdated\",\n inputs: [\n {\n name: \"oldBound\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n {\n name: \"newBound\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"ManagementFeeUpdated\",\n inputs: [\n {\n name: \"oldFee\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n {\n name: \"newFee\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"OwnershipTransferred\",\n inputs: [\n { name: \"user\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"newOwner\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n { type: \"event\", name: \"Paused\", inputs: [], anonymous: false },\n {\n type: \"event\",\n name: \"PayoutAddressUpdated\",\n inputs: [\n {\n name: \"oldPayout\",\n type: \"address\",\n indexed: false,\n internalType: \"address\",\n },\n {\n name: \"newPayout\",\n type: \"address\",\n indexed: false,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"RateProviderUpdated\",\n inputs: [\n {\n name: \"asset\",\n type: \"address\",\n indexed: false,\n internalType: \"address\",\n },\n { name: \"isPegged\", type: \"bool\", indexed: false, internalType: \"bool\" },\n {\n name: \"rateProvider\",\n type: \"address\",\n indexed: false,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n { type: \"event\", name: \"Unpaused\", inputs: [], anonymous: false },\n {\n type: \"event\",\n name: \"UpperBoundUpdated\",\n inputs: [\n {\n name: \"oldBound\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n {\n name: \"newBound\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__LowerBoundTooLarge\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__ManagementFeeTooLarge\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__OnlyCallableByBoringVault\",\n inputs: [],\n },\n { type: \"error\", name: \"AccountantWithRateProviders__Paused\", inputs: [] },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__UpdateDelayTooLarge\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__UpperBoundTooSmall\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__ZeroFeesOwed\",\n inputs: [],\n },\n] as const;\n","export const BoringVaultAbi = [\n {\n type: \"constructor\",\n inputs: [\n { name: \"_owner\", type: \"address\", internalType: \"address\" },\n { name: \"_name\", type: \"string\", internalType: \"string\" },\n { name: \"_symbol\", type: \"string\", internalType: \"string\" },\n { name: \"_decimals\", type: \"uint8\", internalType: \"uint8\" },\n ],\n stateMutability: \"nonpayable\",\n },\n { type: \"receive\", stateMutability: \"payable\" },\n {\n type: \"function\",\n name: \"DOMAIN_SEPARATOR\",\n inputs: [],\n outputs: [{ name: \"\", type: \"bytes32\", internalType: \"bytes32\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"allowance\",\n inputs: [\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"address\", internalType: \"address\" },\n ],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"approve\",\n inputs: [\n { name: \"spender\", type: \"address\", internalType: \"address\" },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"authority\",\n inputs: [],\n outputs: [\n { name: \"\", type: \"address\", internalType: \"contract Authority\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"balanceOf\",\n inputs: [{ name: \"\", type: \"address\", internalType: \"address\" }],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"decimals\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint8\", internalType: \"uint8\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"enter\",\n inputs: [\n { name: \"from\", type: \"address\", internalType: \"address\" },\n { name: \"asset\", type: \"address\", internalType: \"contract ERC20\" },\n { name: \"assetAmount\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"shareAmount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"exit\",\n inputs: [\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"asset\", type: \"address\", internalType: \"contract ERC20\" },\n { name: \"assetAmount\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"from\", type: \"address\", internalType: \"address\" },\n { name: \"shareAmount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"hook\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"address\",\n internalType: \"contract BeforeTransferHook\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"manage\",\n inputs: [\n { name: \"targets\", type: \"address[]\", internalType: \"address[]\" },\n { name: \"data\", type: \"bytes[]\", internalType: \"bytes[]\" },\n { name: \"values\", type: \"uint256[]\", internalType: \"uint256[]\" },\n ],\n outputs: [{ name: \"results\", type: \"bytes[]\", internalType: \"bytes[]\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"manage\",\n inputs: [\n { name: \"target\", type: \"address\", internalType: \"address\" },\n { name: \"data\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"result\", type: \"bytes\", internalType: \"bytes\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"name\",\n inputs: [],\n outputs: [{ name: \"\", type: \"string\", internalType: \"string\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"nonces\",\n inputs: [{ name: \"\", type: \"address\", internalType: \"address\" }],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"onERC1155BatchReceived\",\n inputs: [\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"uint256[]\", internalType: \"uint256[]\" },\n { name: \"\", type: \"uint256[]\", internalType: \"uint256[]\" },\n { name: \"\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes4\", internalType: \"bytes4\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"onERC1155Received\",\n inputs: [\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes4\", internalType: \"bytes4\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"onERC721Received\",\n inputs: [\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes4\", internalType: \"bytes4\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"owner\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\", internalType: \"address\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"permit\",\n inputs: [\n { name: \"owner\", type: \"address\", internalType: \"address\" },\n { name: \"spender\", type: \"address\", internalType: \"address\" },\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"deadline\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"v\", type: \"uint8\", internalType: \"uint8\" },\n { name: \"r\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"s\", type: \"bytes32\", internalType: \"bytes32\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"setAuthority\",\n inputs: [\n {\n name: \"newAuthority\",\n type: \"address\",\n internalType: \"contract Authority\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"setBeforeTransferHook\",\n inputs: [{ name: \"_hook\", type: \"address\", internalType: \"address\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"supportsInterface\",\n inputs: [{ name: \"interfaceId\", type: \"bytes4\", internalType: \"bytes4\" }],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"symbol\",\n inputs: [],\n outputs: [{ name: \"\", type: \"string\", internalType: \"string\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"totalSupply\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"transfer\",\n inputs: [\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"transferFrom\",\n inputs: [\n { name: \"from\", type: \"address\", internalType: \"address\" },\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"transferOwnership\",\n inputs: [{ name: \"newOwner\", type: \"address\", internalType: \"address\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"event\",\n name: \"Approval\",\n inputs: [\n {\n name: \"owner\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"spender\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"AuthorityUpdated\",\n inputs: [\n { name: \"user\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"newAuthority\",\n type: \"address\",\n indexed: true,\n internalType: \"contract Authority\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"Enter\",\n inputs: [\n { name: \"from\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"asset\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n { name: \"to\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"shares\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"Exit\",\n inputs: [\n { name: \"to\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"asset\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n { name: \"from\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"shares\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"OwnershipTransferred\",\n inputs: [\n { name: \"user\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"newOwner\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"Transfer\",\n inputs: [\n { name: \"from\", type: \"address\", indexed: true, internalType: \"address\" },\n { name: \"to\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"error\",\n name: \"AddressEmptyCode\",\n inputs: [{ name: \"target\", type: \"address\", internalType: \"address\" }],\n },\n {\n type: \"error\",\n name: \"AddressInsufficientBalance\",\n inputs: [{ name: \"account\", type: \"address\", internalType: \"address\" }],\n },\n { type: \"error\", name: \"FailedInnerCall\", inputs: [] },\n] as const;\n","import { type Address, erc20Abi } from \"viem\";\nimport { AccountantAbi } from \"../abi/accountant-abi\";\nimport { BoringVaultAbi } from \"../abi/boring-vault-abi\";\nimport { getClient } from \"../lib/viem/client\";\nimport type { ChainId } from \"../utils/chain-utils\";\n\ntype AccountantBaseProps = {\n accountantAddress: Address;\n chainId: ChainId;\n};\n\ntype RateInQuoteWithAssetDecimalsProps = AccountantBaseProps & {\n assetAddress: Address;\n};\n\n// TODO: Duplicated in multicall compare and remove\nconst getRateInQuoteWithAssetDecimals = async ({\n assetAddress,\n accountantAddress,\n chainId,\n}: RateInQuoteWithAssetDecimalsProps) => {\n const client = await getClient(chainId);\n\n const results = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: assetAddress,\n functionName: \"decimals\",\n },\n {\n abi: AccountantAbi,\n address: accountantAddress,\n functionName: \"getRateInQuote\",\n args: [assetAddress],\n },\n ],\n });\n return results;\n};\n\ntype RateInQuoteAndSharesAndWantAssetDecimalsParams = {\n sharesAssetAddress: Address;\n wantAssetAddress: Address;\n accountantAddress: Address;\n chainId: ChainId;\n};\n\n// TODO: Move to multicall\nconst getRateInQuoteAndSharesAndWantAssetDecimals = async ({\n sharesAssetAddress,\n wantAssetAddress,\n accountantAddress,\n chainId,\n}: RateInQuoteAndSharesAndWantAssetDecimalsParams) => {\n const client = await getClient(chainId);\n\n const results = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: wantAssetAddress,\n functionName: \"decimals\",\n },\n {\n abi: BoringVaultAbi,\n address: sharesAssetAddress,\n functionName: \"decimals\",\n },\n {\n abi: AccountantAbi,\n address: accountantAddress,\n functionName: \"getRateInQuote\",\n args: [wantAssetAddress],\n },\n ],\n });\n return results;\n};\n\nexport {\n getRateInQuoteAndSharesAndWantAssetDecimals,\n getRateInQuoteWithAssetDecimals,\n};\n","/**\n * ERC2612 Permit ABI\n *\n * Standard ERC20 + ERC2612 permit extension interface.\n * Enables off-chain signed approval (permit) to combine approval + transfer in single transaction.\n *\n * Reference: https://eips.ethereum.org/EIPS/eip-2612\n */\n\nexport const erc2612Abi = [\n // Standard ERC20 functions (subset needed for permit flow)\n {\n constant: true,\n inputs: [{ name: \"_owner\", type: \"address\" }],\n name: \"nonces\",\n outputs: [{ name: \"\", type: \"uint256\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"DOMAIN_SEPARATOR\",\n outputs: [{ name: \"\", type: \"bytes32\" }],\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { name: \"owner\", type: \"address\" },\n { name: \"spender\", type: \"address\" },\n { name: \"value\", type: \"uint256\" },\n { name: \"deadline\", type: \"uint256\" },\n { name: \"v\", type: \"uint8\" },\n { name: \"r\", type: \"bytes32\" },\n { name: \"s\", type: \"bytes32\" },\n ],\n name: \"permit\",\n outputs: [],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [{ name: \"\", type: \"string\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"version\",\n outputs: [{ name: \"\", type: \"string\" }],\n type: \"function\",\n },\n] as const;\n\n/**\n * Standard ERC20 ABI (subset for basic token operations)\n */\nexport const erc20Abi = [\n {\n constant: true,\n inputs: [{ name: \"_owner\", type: \"address\" }],\n name: \"balanceOf\",\n outputs: [{ name: \"balance\", type: \"uint256\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n { name: \"_owner\", type: \"address\" },\n { name: \"_spender\", type: \"address\" },\n ],\n name: \"allowance\",\n outputs: [{ name: \"remaining\", type: \"uint256\" }],\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { name: \"_spender\", type: \"address\" },\n { name: \"_value\", type: \"uint256\" },\n ],\n name: \"approve\",\n outputs: [{ name: \"\", type: \"bool\" }],\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { name: \"_to\", type: \"address\" },\n { name: \"_value\", type: \"uint256\" },\n ],\n name: \"transfer\",\n outputs: [{ name: \"\", type: \"bool\" }],\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { name: \"_from\", type: \"address\" },\n { name: \"_to\", type: \"address\" },\n { name: \"_value\", type: \"uint256\" },\n ],\n name: \"transferFrom\",\n outputs: [{ name: \"\", type: \"bool\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"decimals\",\n outputs: [{ name: \"\", type: \"uint8\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [{ name: \"\", type: \"string\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [{ name: \"\", type: \"uint256\" }],\n type: \"function\",\n },\n] as const;\n\n/**\n * Permit-capable ERC20 ABI (combined ERC20 + ERC2612)\n */\nexport const permitCapableErc20Abi = [\n ...erc20Abi,\n // Add permit-specific functions\n {\n constant: true,\n inputs: [{ name: \"_owner\", type: \"address\" }],\n name: \"nonces\",\n outputs: [{ name: \"\", type: \"uint256\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"DOMAIN_SEPARATOR\",\n outputs: [{ name: \"\", type: \"bytes32\" }],\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { name: \"owner\", type: \"address\" },\n { name: \"spender\", type: \"address\" },\n { name: \"value\", type: \"uint256\" },\n { name: \"deadline\", type: \"uint256\" },\n { name: \"v\", type: \"uint8\" },\n { name: \"r\", type: \"bytes32\" },\n { name: \"s\", type: \"bytes32\" },\n ],\n name: \"permit\",\n outputs: [],\n type: \"function\",\n },\n] as const;\n","import { type Address, erc20Abi, type Hex } from \"viem\";\nimport { erc2612Abi } from \"../abi/erc2612-abi\";\nimport { getClient } from \"../lib/viem/client\";\nimport { APIError } from \"../types/amplify-sdk-api\";\nimport type { ChainId } from \"../utils/chain-utils\";\n\ninterface GetErc20BalanceParams {\n chainId: ChainId;\n tokenAddress: Address;\n recipientAddress: Address;\n}\n\nconst getErc20Balance = async ({\n chainId,\n tokenAddress,\n recipientAddress,\n}: GetErc20BalanceParams): Promise<bigint> => {\n const client = await getClient(chainId);\n\n const balance = await client.readContract({\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"balanceOf\",\n args: [recipientAddress],\n });\n\n return balance;\n};\n\ninterface GetErc20DecimalsParams {\n chainId: ChainId;\n tokenAddress: Address;\n}\nconst getErc20Decimals = async ({\n chainId,\n tokenAddress,\n}: GetErc20DecimalsParams) => {\n const client = await getClient(chainId);\n\n const balance = await client.readContract({\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"decimals\",\n });\n\n return balance;\n};\n\ninterface GetErc20AllowanceParams {\n chainId: ChainId;\n tokenAddress: Address;\n recipientAddress: Address;\n spenderAddress: Address;\n}\n\nconst getErc20Allowance = async ({\n chainId,\n tokenAddress,\n recipientAddress,\n spenderAddress,\n}: GetErc20AllowanceParams) => {\n const client = await getClient(chainId);\n\n const allowance = await client.readContract({\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"allowance\",\n args: [recipientAddress, spenderAddress],\n });\n\n return allowance;\n};\n\nconst getErc20AllowanceWithDecimals = async ({\n chainId,\n tokenAddress,\n recipientAddress,\n spenderAddress,\n}: GetErc20AllowanceParams) => {\n const client = await getClient(chainId);\n\n const allowance = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"allowance\",\n args: [recipientAddress, spenderAddress],\n },\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"decimals\",\n },\n ],\n });\n return allowance;\n};\n\n/**\n * Parameters for getTokenPermitInfoWithAllowance\n */\ninterface GetTokenPermitInfoWithAllowanceParams {\n /** Chain ID where the token is deployed */\n chainId: ChainId;\n /** Token contract address */\n tokenAddress: Address;\n /** Token owner address (for nonce and allowance lookup) */\n owner: Address;\n /** Spender address (for allowance lookup) */\n spender: Address;\n}\n\n/**\n * Token permit and allowance information\n *\n * Contains decimals, allowance, and EIP-2612 permit support detection.\n * When supportsPermit is true, nonce and domainSeparator are guaranteed present.\n */\ninterface TokenPermitInfoWithAllowance {\n /** Token decimals */\n decimals: number;\n /** Current allowance for spender */\n allowance: bigint;\n /** Whether the token supports EIP-2612 permit */\n supportsPermit: boolean;\n /** Current nonce for owner (null if permit not supported) */\n nonce: bigint | null;\n /** EIP-712 domain separator (null if permit not supported) */\n domainSeparator: Hex | null;\n /** Token name (for EIP-712 domain) */\n tokenName: string;\n /** Token version for EIP-712 (defaults to \"1\" if not available) */\n tokenVersion: string;\n}\n\n/**\n * Retrieves token decimals, allowance, and permit support in a single multicall\n *\n * Uses a single multicall to efficiently query:\n * - decimals() - MUST succeed (throws if fails)\n * - allowance(owner, spender) - MUST succeed (throws if fails)\n * - nonces(owner) - Optional, indicates permit support\n * - DOMAIN_SEPARATOR() - Optional, confirms permit support\n *\n * Permit support requires BOTH nonces() AND DOMAIN_SEPARATOR() to succeed.\n *\n * @param params - Query parameters\n * @returns Combined token info with permit support detection\n * @throws {APIError} If critical calls (decimals, allowance) fail\n *\n * @example\n * ```typescript\n * const info = await getTokenPermitInfoWithAllowance({\n * chainId: 1,\n * tokenAddress: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n * owner: \"0x1234...\",\n * spender: \"0x5678...\",\n * });\n *\n * if (info.supportsPermit) {\n * // Use permit deposit flow\n * console.log(\"Nonce:\", info.nonce);\n * console.log(\"Domain:\", info.domainSeparator);\n * } else if (info.allowance < depositAmount) {\n * // Request approval\n * }\n * ```\n */\nconst getTokenPermitInfoWithAllowance = async ({\n chainId,\n tokenAddress,\n owner,\n spender,\n}: GetTokenPermitInfoWithAllowanceParams): Promise<TokenPermitInfoWithAllowance> => {\n const client = await getClient(chainId);\n\n const results = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"decimals\",\n },\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"allowance\",\n args: [owner, spender],\n },\n {\n abi: erc2612Abi,\n address: tokenAddress,\n functionName: \"nonces\",\n args: [owner],\n },\n {\n abi: erc2612Abi,\n address: tokenAddress,\n functionName: \"DOMAIN_SEPARATOR\",\n },\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"name\",\n },\n {\n abi: erc2612Abi,\n address: tokenAddress,\n functionName: \"version\",\n },\n ],\n allowFailure: true,\n });\n\n const [\n decimalsResult,\n allowanceResult,\n nonceResult,\n domainSeparatorResult,\n nameResult,\n versionResult,\n ] = results;\n\n // Required calls must succeed\n if (decimalsResult.status === \"failure\") {\n throw new APIError(\n `Failed to read decimals from token ${tokenAddress}: ${\n decimalsResult.error?.message || \"Unknown error\"\n }`,\n {\n endpoint: \"getTokenPermitInfoWithAllowance\",\n cause: decimalsResult.error,\n }\n );\n }\n\n if (allowanceResult.status === \"failure\") {\n throw new APIError(\n `Failed to read allowance from token ${tokenAddress}: ${\n allowanceResult.error?.message || \"Unknown error\"\n }`,\n {\n endpoint: \"getTokenPermitInfoWithAllowance\",\n cause: allowanceResult.error,\n }\n );\n }\n\n // Token name is required (standard ERC20)\n if (nameResult.status === \"failure\") {\n throw new APIError(\n `Failed to read name from token ${tokenAddress}: ${\n nameResult.error?.message || \"Unknown error\"\n }`,\n {\n endpoint: \"getTokenPermitInfoWithAllowance\",\n cause: nameResult.error,\n }\n );\n }\n\n // Optional permit support detection\n // Both nonces AND DOMAIN_SEPARATOR must succeed for permit support\n const nonce =\n nonceResult.status === \"success\" ? (nonceResult.result as bigint) : null;\n const domainSeparator =\n domainSeparatorResult.status === \"success\"\n ? (domainSeparatorResult.result as Hex)\n : null;\n\n const supportsPermit = nonce !== null && domainSeparator !== null;\n\n // Token version is optional (EIP-2612), defaults to \"1\"\n const tokenVersion =\n versionResult.status === \"success\" ? (versionResult.result as string) : \"1\";\n\n return {\n decimals: decimalsResult.result,\n allowance: allowanceResult.result,\n supportsPermit,\n nonce,\n domainSeparator,\n tokenName: nameResult.result,\n tokenVersion,\n };\n};\n\nexport {\n getErc20Allowance,\n getErc20AllowanceWithDecimals,\n getErc20Balance,\n getErc20Decimals,\n getTokenPermitInfoWithAllowance,\n};\n\nexport type {\n GetTokenPermitInfoWithAllowanceParams,\n TokenPermitInfoWithAllowance,\n};\n"]}
1
+ {"version":3,"sources":["../src/abi/accountant-abi.ts","../src/abi/boring-vault-abi.ts","../src/api/accountant.ts","../src/abi/erc2612-abi.ts","../src/api/erc20.ts"],"names":["getClient","erc20Abi","APIError"],"mappings":"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","file":"chunk-YAYUSBC6.js","sourcesContent":["export const AccountantAbi = [\n {\n type: \"constructor\",\n inputs: [\n { name: \"_owner\", type: \"address\", internalType: \"address\" },\n { name: \"_vault\", type: \"address\", internalType: \"address\" },\n { name: \"payoutAddress\", type: \"address\", internalType: \"address\" },\n { name: \"startingExchangeRate\", type: \"uint96\", internalType: \"uint96\" },\n { name: \"_base\", type: \"address\", internalType: \"address\" },\n {\n name: \"allowedExchangeRateChangeUpper\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n {\n name: \"allowedExchangeRateChangeLower\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n {\n name: \"minimumUpdateDelayInSeconds\",\n type: \"uint32\",\n internalType: \"uint32\",\n },\n { name: \"managementFee\", type: \"uint16\", internalType: \"uint16\" },\n ],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"accountantState\",\n inputs: [],\n outputs: [\n { name: \"payoutAddress\", type: \"address\", internalType: \"address\" },\n { name: \"feesOwedInBase\", type: \"uint128\", internalType: \"uint128\" },\n {\n name: \"totalSharesLastUpdate\",\n type: \"uint128\",\n internalType: \"uint128\",\n },\n { name: \"exchangeRate\", type: \"uint96\", internalType: \"uint96\" },\n {\n name: \"allowedExchangeRateChangeUpper\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n {\n name: \"allowedExchangeRateChangeLower\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n { name: \"lastUpdateTimestamp\", type: \"uint64\", internalType: \"uint64\" },\n { name: \"isPaused\", type: \"bool\", internalType: \"bool\" },\n {\n name: \"minimumUpdateDelayInSeconds\",\n type: \"uint32\",\n internalType: \"uint32\",\n },\n { name: \"managementFee\", type: \"uint16\", internalType: \"uint16\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"authority\",\n inputs: [],\n outputs: [\n { name: \"\", type: \"address\", internalType: \"contract Authority\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"base\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\", internalType: \"contract ERC20\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"claimFees\",\n inputs: [\n { name: \"feeAsset\", type: \"address\", internalType: \"contract ERC20\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"decimals\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint8\", internalType: \"uint8\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getRate\",\n inputs: [],\n outputs: [{ name: \"rate\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getRateInQuote\",\n inputs: [\n { name: \"quote\", type: \"address\", internalType: \"contract ERC20\" },\n ],\n outputs: [\n { name: \"rateInQuote\", type: \"uint256\", internalType: \"uint256\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getRateInQuoteSafe\",\n inputs: [\n { name: \"quote\", type: \"address\", internalType: \"contract ERC20\" },\n ],\n outputs: [\n { name: \"rateInQuote\", type: \"uint256\", internalType: \"uint256\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"getRateSafe\",\n inputs: [],\n outputs: [{ name: \"rate\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"owner\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\", internalType: \"address\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"pause\",\n inputs: [],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"rateProviderData\",\n inputs: [{ name: \"\", type: \"address\", internalType: \"contract ERC20\" }],\n outputs: [\n { name: \"isPeggedToBase\", type: \"bool\", internalType: \"bool\" },\n {\n name: \"rateProvider\",\n type: \"address\",\n internalType: \"contract IRateProvider\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"setAuthority\",\n inputs: [\n {\n name: \"newAuthority\",\n type: \"address\",\n internalType: \"contract Authority\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"setRateProviderData\",\n inputs: [\n { name: \"asset\", type: \"address\", internalType: \"contract ERC20\" },\n { name: \"isPeggedToBase\", type: \"bool\", internalType: \"bool\" },\n { name: \"rateProvider\", type: \"address\", internalType: \"address\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"transferOwnership\",\n inputs: [{ name: \"newOwner\", type: \"address\", internalType: \"address\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"unpause\",\n inputs: [],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateDelay\",\n inputs: [\n {\n name: \"minimumUpdateDelayInSeconds\",\n type: \"uint32\",\n internalType: \"uint32\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateExchangeRate\",\n inputs: [\n { name: \"newExchangeRate\", type: \"uint96\", internalType: \"uint96\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateLower\",\n inputs: [\n {\n name: \"allowedExchangeRateChangeLower\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateManagementFee\",\n inputs: [{ name: \"managementFee\", type: \"uint16\", internalType: \"uint16\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updatePayoutAddress\",\n inputs: [\n { name: \"payoutAddress\", type: \"address\", internalType: \"address\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"updateUpper\",\n inputs: [\n {\n name: \"allowedExchangeRateChangeUpper\",\n type: \"uint16\",\n internalType: \"uint16\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"vault\",\n inputs: [],\n outputs: [\n { name: \"\", type: \"address\", internalType: \"contract BoringVault\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"event\",\n name: \"AuthorityUpdated\",\n inputs: [\n { name: \"user\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"newAuthority\",\n type: \"address\",\n indexed: true,\n internalType: \"contract Authority\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"DelayInSecondsUpdated\",\n inputs: [\n {\n name: \"oldDelay\",\n type: \"uint32\",\n indexed: false,\n internalType: \"uint32\",\n },\n {\n name: \"newDelay\",\n type: \"uint32\",\n indexed: false,\n internalType: \"uint32\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"ExchangeRateUpdated\",\n inputs: [\n {\n name: \"oldRate\",\n type: \"uint96\",\n indexed: false,\n internalType: \"uint96\",\n },\n {\n name: \"newRate\",\n type: \"uint96\",\n indexed: false,\n internalType: \"uint96\",\n },\n {\n name: \"currentTime\",\n type: \"uint64\",\n indexed: false,\n internalType: \"uint64\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"FeesClaimed\",\n inputs: [\n {\n name: \"feeAsset\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"LowerBoundUpdated\",\n inputs: [\n {\n name: \"oldBound\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n {\n name: \"newBound\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"ManagementFeeUpdated\",\n inputs: [\n {\n name: \"oldFee\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n {\n name: \"newFee\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"OwnershipTransferred\",\n inputs: [\n { name: \"user\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"newOwner\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n { type: \"event\", name: \"Paused\", inputs: [], anonymous: false },\n {\n type: \"event\",\n name: \"PayoutAddressUpdated\",\n inputs: [\n {\n name: \"oldPayout\",\n type: \"address\",\n indexed: false,\n internalType: \"address\",\n },\n {\n name: \"newPayout\",\n type: \"address\",\n indexed: false,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"RateProviderUpdated\",\n inputs: [\n {\n name: \"asset\",\n type: \"address\",\n indexed: false,\n internalType: \"address\",\n },\n { name: \"isPegged\", type: \"bool\", indexed: false, internalType: \"bool\" },\n {\n name: \"rateProvider\",\n type: \"address\",\n indexed: false,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n { type: \"event\", name: \"Unpaused\", inputs: [], anonymous: false },\n {\n type: \"event\",\n name: \"UpperBoundUpdated\",\n inputs: [\n {\n name: \"oldBound\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n {\n name: \"newBound\",\n type: \"uint16\",\n indexed: false,\n internalType: \"uint16\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__LowerBoundTooLarge\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__ManagementFeeTooLarge\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__OnlyCallableByBoringVault\",\n inputs: [],\n },\n { type: \"error\", name: \"AccountantWithRateProviders__Paused\", inputs: [] },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__UpdateDelayTooLarge\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__UpperBoundTooSmall\",\n inputs: [],\n },\n {\n type: \"error\",\n name: \"AccountantWithRateProviders__ZeroFeesOwed\",\n inputs: [],\n },\n] as const;\n","export const BoringVaultAbi = [\n {\n type: \"constructor\",\n inputs: [\n { name: \"_owner\", type: \"address\", internalType: \"address\" },\n { name: \"_name\", type: \"string\", internalType: \"string\" },\n { name: \"_symbol\", type: \"string\", internalType: \"string\" },\n { name: \"_decimals\", type: \"uint8\", internalType: \"uint8\" },\n ],\n stateMutability: \"nonpayable\",\n },\n { type: \"receive\", stateMutability: \"payable\" },\n {\n type: \"function\",\n name: \"DOMAIN_SEPARATOR\",\n inputs: [],\n outputs: [{ name: \"\", type: \"bytes32\", internalType: \"bytes32\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"allowance\",\n inputs: [\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"address\", internalType: \"address\" },\n ],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"approve\",\n inputs: [\n { name: \"spender\", type: \"address\", internalType: \"address\" },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"authority\",\n inputs: [],\n outputs: [\n { name: \"\", type: \"address\", internalType: \"contract Authority\" },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"balanceOf\",\n inputs: [{ name: \"\", type: \"address\", internalType: \"address\" }],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"decimals\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint8\", internalType: \"uint8\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"enter\",\n inputs: [\n { name: \"from\", type: \"address\", internalType: \"address\" },\n { name: \"asset\", type: \"address\", internalType: \"contract ERC20\" },\n { name: \"assetAmount\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"shareAmount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"exit\",\n inputs: [\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"asset\", type: \"address\", internalType: \"contract ERC20\" },\n { name: \"assetAmount\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"from\", type: \"address\", internalType: \"address\" },\n { name: \"shareAmount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"hook\",\n inputs: [],\n outputs: [\n {\n name: \"\",\n type: \"address\",\n internalType: \"contract BeforeTransferHook\",\n },\n ],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"manage\",\n inputs: [\n { name: \"targets\", type: \"address[]\", internalType: \"address[]\" },\n { name: \"data\", type: \"bytes[]\", internalType: \"bytes[]\" },\n { name: \"values\", type: \"uint256[]\", internalType: \"uint256[]\" },\n ],\n outputs: [{ name: \"results\", type: \"bytes[]\", internalType: \"bytes[]\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"manage\",\n inputs: [\n { name: \"target\", type: \"address\", internalType: \"address\" },\n { name: \"data\", type: \"bytes\", internalType: \"bytes\" },\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"result\", type: \"bytes\", internalType: \"bytes\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"name\",\n inputs: [],\n outputs: [{ name: \"\", type: \"string\", internalType: \"string\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"nonces\",\n inputs: [{ name: \"\", type: \"address\", internalType: \"address\" }],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"onERC1155BatchReceived\",\n inputs: [\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"uint256[]\", internalType: \"uint256[]\" },\n { name: \"\", type: \"uint256[]\", internalType: \"uint256[]\" },\n { name: \"\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes4\", internalType: \"bytes4\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"onERC1155Received\",\n inputs: [\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes4\", internalType: \"bytes4\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"onERC721Received\",\n inputs: [\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"address\", internalType: \"address\" },\n { name: \"\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [{ name: \"\", type: \"bytes4\", internalType: \"bytes4\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"owner\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\", internalType: \"address\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"permit\",\n inputs: [\n { name: \"owner\", type: \"address\", internalType: \"address\" },\n { name: \"spender\", type: \"address\", internalType: \"address\" },\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"deadline\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"v\", type: \"uint8\", internalType: \"uint8\" },\n { name: \"r\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"s\", type: \"bytes32\", internalType: \"bytes32\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"setAuthority\",\n inputs: [\n {\n name: \"newAuthority\",\n type: \"address\",\n internalType: \"contract Authority\",\n },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"setBeforeTransferHook\",\n inputs: [{ name: \"_hook\", type: \"address\", internalType: \"address\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"supportsInterface\",\n inputs: [{ name: \"interfaceId\", type: \"bytes4\", internalType: \"bytes4\" }],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"symbol\",\n inputs: [],\n outputs: [{ name: \"\", type: \"string\", internalType: \"string\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"totalSupply\",\n inputs: [],\n outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"transfer\",\n inputs: [\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"transferFrom\",\n inputs: [\n { name: \"from\", type: \"address\", internalType: \"address\" },\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n outputs: [{ name: \"\", type: \"bool\", internalType: \"bool\" }],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"transferOwnership\",\n inputs: [{ name: \"newOwner\", type: \"address\", internalType: \"address\" }],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"event\",\n name: \"Approval\",\n inputs: [\n {\n name: \"owner\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"spender\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"AuthorityUpdated\",\n inputs: [\n { name: \"user\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"newAuthority\",\n type: \"address\",\n indexed: true,\n internalType: \"contract Authority\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"Enter\",\n inputs: [\n { name: \"from\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"asset\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n { name: \"to\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"shares\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"Exit\",\n inputs: [\n { name: \"to\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"asset\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n { name: \"from\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"shares\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"OwnershipTransferred\",\n inputs: [\n { name: \"user\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"newOwner\",\n type: \"address\",\n indexed: true,\n internalType: \"address\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"event\",\n name: \"Transfer\",\n inputs: [\n { name: \"from\", type: \"address\", indexed: true, internalType: \"address\" },\n { name: \"to\", type: \"address\", indexed: true, internalType: \"address\" },\n {\n name: \"amount\",\n type: \"uint256\",\n indexed: false,\n internalType: \"uint256\",\n },\n ],\n anonymous: false,\n },\n {\n type: \"error\",\n name: \"AddressEmptyCode\",\n inputs: [{ name: \"target\", type: \"address\", internalType: \"address\" }],\n },\n {\n type: \"error\",\n name: \"AddressInsufficientBalance\",\n inputs: [{ name: \"account\", type: \"address\", internalType: \"address\" }],\n },\n { type: \"error\", name: \"FailedInnerCall\", inputs: [] },\n] as const;\n","import { type Address, erc20Abi } from \"viem\";\nimport { AccountantAbi } from \"../abi/accountant-abi\";\nimport { BoringVaultAbi } from \"../abi/boring-vault-abi\";\nimport { getClient } from \"../lib/viem/client\";\nimport type { ChainId } from \"../utils/chain-utils\";\n\ntype AccountantBaseProps = {\n accountantAddress: Address;\n chainId: ChainId;\n};\n\ntype RateInQuoteWithAssetDecimalsProps = AccountantBaseProps & {\n assetAddress: Address;\n};\n\n// TODO: Duplicated in multicall compare and remove\nconst getRateInQuoteWithAssetDecimals = async ({\n assetAddress,\n accountantAddress,\n chainId,\n}: RateInQuoteWithAssetDecimalsProps) => {\n const client = await getClient(chainId);\n\n const results = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: assetAddress,\n functionName: \"decimals\",\n },\n {\n abi: AccountantAbi,\n address: accountantAddress,\n functionName: \"getRateInQuote\",\n args: [assetAddress],\n },\n ],\n });\n return results;\n};\n\ntype RateInQuoteAndSharesAndWantAssetDecimalsParams = {\n sharesAssetAddress: Address;\n wantAssetAddress: Address;\n accountantAddress: Address;\n chainId: ChainId;\n};\n\n// TODO: Move to multicall\nconst getRateInQuoteAndSharesAndWantAssetDecimals = async ({\n sharesAssetAddress,\n wantAssetAddress,\n accountantAddress,\n chainId,\n}: RateInQuoteAndSharesAndWantAssetDecimalsParams) => {\n const client = await getClient(chainId);\n\n const results = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: wantAssetAddress,\n functionName: \"decimals\",\n },\n {\n abi: BoringVaultAbi,\n address: sharesAssetAddress,\n functionName: \"decimals\",\n },\n {\n abi: AccountantAbi,\n address: accountantAddress,\n functionName: \"getRateInQuote\",\n args: [wantAssetAddress],\n },\n ],\n });\n return results;\n};\n\nexport {\n getRateInQuoteAndSharesAndWantAssetDecimals,\n getRateInQuoteWithAssetDecimals,\n};\n","/**\n * ERC2612 Permit ABI\n *\n * Standard ERC20 + ERC2612 permit extension interface.\n * Enables off-chain signed approval (permit) to combine approval + transfer in single transaction.\n *\n * Reference: https://eips.ethereum.org/EIPS/eip-2612\n */\n\nexport const erc2612Abi = [\n // Standard ERC20 functions (subset needed for permit flow)\n {\n constant: true,\n inputs: [{ name: \"_owner\", type: \"address\" }],\n name: \"nonces\",\n outputs: [{ name: \"\", type: \"uint256\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"DOMAIN_SEPARATOR\",\n outputs: [{ name: \"\", type: \"bytes32\" }],\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { name: \"owner\", type: \"address\" },\n { name: \"spender\", type: \"address\" },\n { name: \"value\", type: \"uint256\" },\n { name: \"deadline\", type: \"uint256\" },\n { name: \"v\", type: \"uint8\" },\n { name: \"r\", type: \"bytes32\" },\n { name: \"s\", type: \"bytes32\" },\n ],\n name: \"permit\",\n outputs: [],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [{ name: \"\", type: \"string\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"version\",\n outputs: [{ name: \"\", type: \"string\" }],\n type: \"function\",\n },\n] as const;\n\n/**\n * Standard ERC20 ABI (subset for basic token operations)\n */\nexport const erc20Abi = [\n {\n constant: true,\n inputs: [{ name: \"_owner\", type: \"address\" }],\n name: \"balanceOf\",\n outputs: [{ name: \"balance\", type: \"uint256\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n { name: \"_owner\", type: \"address\" },\n { name: \"_spender\", type: \"address\" },\n ],\n name: \"allowance\",\n outputs: [{ name: \"remaining\", type: \"uint256\" }],\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { name: \"_spender\", type: \"address\" },\n { name: \"_value\", type: \"uint256\" },\n ],\n name: \"approve\",\n outputs: [{ name: \"\", type: \"bool\" }],\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { name: \"_to\", type: \"address\" },\n { name: \"_value\", type: \"uint256\" },\n ],\n name: \"transfer\",\n outputs: [{ name: \"\", type: \"bool\" }],\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { name: \"_from\", type: \"address\" },\n { name: \"_to\", type: \"address\" },\n { name: \"_value\", type: \"uint256\" },\n ],\n name: \"transferFrom\",\n outputs: [{ name: \"\", type: \"bool\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"decimals\",\n outputs: [{ name: \"\", type: \"uint8\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [{ name: \"\", type: \"string\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [{ name: \"\", type: \"uint256\" }],\n type: \"function\",\n },\n] as const;\n\n/**\n * Permit-capable ERC20 ABI (combined ERC20 + ERC2612)\n */\nexport const permitCapableErc20Abi = [\n ...erc20Abi,\n // Add permit-specific functions\n {\n constant: true,\n inputs: [{ name: \"_owner\", type: \"address\" }],\n name: \"nonces\",\n outputs: [{ name: \"\", type: \"uint256\" }],\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"DOMAIN_SEPARATOR\",\n outputs: [{ name: \"\", type: \"bytes32\" }],\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { name: \"owner\", type: \"address\" },\n { name: \"spender\", type: \"address\" },\n { name: \"value\", type: \"uint256\" },\n { name: \"deadline\", type: \"uint256\" },\n { name: \"v\", type: \"uint8\" },\n { name: \"r\", type: \"bytes32\" },\n { name: \"s\", type: \"bytes32\" },\n ],\n name: \"permit\",\n outputs: [],\n type: \"function\",\n },\n] as const;\n","import { type Address, erc20Abi, type Hex } from \"viem\";\nimport { erc2612Abi } from \"../abi/erc2612-abi\";\nimport { getClient } from \"../lib/viem/client\";\nimport { APIError } from \"../types/amplify-sdk-api\";\nimport type { ChainId } from \"../utils/chain-utils\";\n\ninterface GetErc20BalanceParams {\n chainId: ChainId;\n tokenAddress: Address;\n recipientAddress: Address;\n}\n\nconst getErc20Balance = async ({\n chainId,\n tokenAddress,\n recipientAddress,\n}: GetErc20BalanceParams): Promise<bigint> => {\n const client = await getClient(chainId);\n\n const balance = await client.readContract({\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"balanceOf\",\n args: [recipientAddress],\n });\n\n return balance;\n};\n\ninterface GetErc20DecimalsParams {\n chainId: ChainId;\n tokenAddress: Address;\n}\nconst getErc20Decimals = async ({\n chainId,\n tokenAddress,\n}: GetErc20DecimalsParams) => {\n const client = await getClient(chainId);\n\n const balance = await client.readContract({\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"decimals\",\n });\n\n return balance;\n};\n\ninterface GetErc20AllowanceParams {\n chainId: ChainId;\n tokenAddress: Address;\n recipientAddress: Address;\n spenderAddress: Address;\n}\n\nconst getErc20Allowance = async ({\n chainId,\n tokenAddress,\n recipientAddress,\n spenderAddress,\n}: GetErc20AllowanceParams) => {\n const client = await getClient(chainId);\n\n const allowance = await client.readContract({\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"allowance\",\n args: [recipientAddress, spenderAddress],\n });\n\n return allowance;\n};\n\nconst getErc20AllowanceWithDecimals = async ({\n chainId,\n tokenAddress,\n recipientAddress,\n spenderAddress,\n}: GetErc20AllowanceParams) => {\n const client = await getClient(chainId);\n\n const allowance = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"allowance\",\n args: [recipientAddress, spenderAddress],\n },\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"decimals\",\n },\n ],\n });\n return allowance;\n};\n\n/**\n * Parameters for getTokenPermitInfoWithAllowance\n */\ninterface GetTokenPermitInfoWithAllowanceParams {\n /** Chain ID where the token is deployed */\n chainId: ChainId;\n /** Token contract address */\n tokenAddress: Address;\n /** Token owner address (for nonce and allowance lookup) */\n owner: Address;\n /** Spender address (for allowance lookup) */\n spender: Address;\n}\n\n/**\n * Token permit and allowance information\n *\n * Contains decimals, allowance, and EIP-2612 permit support detection.\n * When supportsPermit is true, nonce and domainSeparator are guaranteed present.\n */\ninterface TokenPermitInfoWithAllowance {\n /** Token decimals */\n decimals: number;\n /** Current allowance for spender */\n allowance: bigint;\n /** Whether the token supports EIP-2612 permit */\n supportsPermit: boolean;\n /** Current nonce for owner (null if permit not supported) */\n nonce: bigint | null;\n /** EIP-712 domain separator (null if permit not supported) */\n domainSeparator: Hex | null;\n /** Token name (for EIP-712 domain) */\n tokenName: string;\n /** Token version for EIP-712 (defaults to \"1\" if not available) */\n tokenVersion: string;\n}\n\n/**\n * Retrieves token decimals, allowance, and permit support in a single multicall\n *\n * Uses a single multicall to efficiently query:\n * - decimals() - MUST succeed (throws if fails)\n * - allowance(owner, spender) - MUST succeed (throws if fails)\n * - nonces(owner) - Optional, indicates permit support\n * - DOMAIN_SEPARATOR() - Optional, confirms permit support\n *\n * Permit support requires BOTH nonces() AND DOMAIN_SEPARATOR() to succeed.\n *\n * @param params - Query parameters\n * @returns Combined token info with permit support detection\n * @throws {APIError} If critical calls (decimals, allowance) fail\n *\n * @example\n * ```typescript\n * const info = await getTokenPermitInfoWithAllowance({\n * chainId: 1,\n * tokenAddress: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n * owner: \"0x1234...\",\n * spender: \"0x5678...\",\n * });\n *\n * if (info.supportsPermit) {\n * // Use permit deposit flow\n * console.log(\"Nonce:\", info.nonce);\n * console.log(\"Domain:\", info.domainSeparator);\n * } else if (info.allowance < depositAmount) {\n * // Request approval\n * }\n * ```\n */\nconst getTokenPermitInfoWithAllowance = async ({\n chainId,\n tokenAddress,\n owner,\n spender,\n}: GetTokenPermitInfoWithAllowanceParams): Promise<TokenPermitInfoWithAllowance> => {\n const client = await getClient(chainId);\n\n const results = await client.multicall({\n contracts: [\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"decimals\",\n },\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"allowance\",\n args: [owner, spender],\n },\n {\n abi: erc2612Abi,\n address: tokenAddress,\n functionName: \"nonces\",\n args: [owner],\n },\n {\n abi: erc2612Abi,\n address: tokenAddress,\n functionName: \"DOMAIN_SEPARATOR\",\n },\n {\n abi: erc20Abi,\n address: tokenAddress,\n functionName: \"name\",\n },\n {\n abi: erc2612Abi,\n address: tokenAddress,\n functionName: \"version\",\n },\n ],\n allowFailure: true,\n });\n\n const [\n decimalsResult,\n allowanceResult,\n nonceResult,\n domainSeparatorResult,\n nameResult,\n versionResult,\n ] = results;\n\n // Required calls must succeed\n if (decimalsResult.status === \"failure\") {\n throw new APIError(\n `Failed to read decimals from token ${tokenAddress}: ${\n decimalsResult.error?.message || \"Unknown error\"\n }`,\n {\n endpoint: \"getTokenPermitInfoWithAllowance\",\n cause: decimalsResult.error,\n }\n );\n }\n\n if (allowanceResult.status === \"failure\") {\n throw new APIError(\n `Failed to read allowance from token ${tokenAddress}: ${\n allowanceResult.error?.message || \"Unknown error\"\n }`,\n {\n endpoint: \"getTokenPermitInfoWithAllowance\",\n cause: allowanceResult.error,\n }\n );\n }\n\n // Token name is required (standard ERC20)\n if (nameResult.status === \"failure\") {\n throw new APIError(\n `Failed to read name from token ${tokenAddress}: ${\n nameResult.error?.message || \"Unknown error\"\n }`,\n {\n endpoint: \"getTokenPermitInfoWithAllowance\",\n cause: nameResult.error,\n }\n );\n }\n\n // Optional permit support detection\n // Both nonces AND DOMAIN_SEPARATOR must succeed for permit support\n const nonce =\n nonceResult.status === \"success\" ? (nonceResult.result as bigint) : null;\n const domainSeparator =\n domainSeparatorResult.status === \"success\"\n ? (domainSeparatorResult.result as Hex)\n : null;\n\n const supportsPermit = nonce !== null && domainSeparator !== null;\n\n // Token version is optional (EIP-2612), defaults to \"1\"\n const tokenVersion =\n versionResult.status === \"success\" ? (versionResult.result as string) : \"1\";\n\n return {\n decimals: decimalsResult.result,\n allowance: allowanceResult.result,\n supportsPermit,\n nonce,\n domainSeparator,\n tokenName: nameResult.result,\n tokenVersion,\n };\n};\n\nexport {\n getErc20Allowance,\n getErc20AllowanceWithDecimals,\n getErc20Balance,\n getErc20Decimals,\n getTokenPermitInfoWithAllowance,\n};\n\nexport type {\n GetTokenPermitInfoWithAllowanceParams,\n TokenPermitInfoWithAllowance,\n};\n"]}
package/dist/core.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Address } from 'viem';
2
2
  export { Address } from 'viem';
3
- import { C as ChainId } from './chain-utils-CpOJcWig.mjs';
4
- export { t as toChainId } from './chain-utils-CpOJcWig.mjs';
3
+ import { C as ChainId } from './chain-utils-D_b2LEEi.mjs';
4
+ export { t as toChainId } from './chain-utils-D_b2LEEi.mjs';
5
5
  import 'viem/chains';
6
6
 
7
7
  type AccountantBaseProps = {
package/dist/core.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Address } from 'viem';
2
2
  export { Address } from 'viem';
3
- import { C as ChainId } from './chain-utils-CpOJcWig.js';
4
- export { t as toChainId } from './chain-utils-CpOJcWig.js';
3
+ import { C as ChainId } from './chain-utils-D_b2LEEi.js';
4
+ export { t as toChainId } from './chain-utils-D_b2LEEi.js';
5
5
  import 'viem/chains';
6
6
 
7
7
  type AccountantBaseProps = {
package/dist/core.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkD7EMZAOQ_js = require('./chunk-D7EMZAOQ.js');
4
- var chunk2ZJWWK6D_js = require('./chunk-2ZJWWK6D.js');
3
+ var chunkYAYUSBC6_js = require('./chunk-YAYUSBC6.js');
4
+ var chunkE5DH5YEE_js = require('./chunk-E5DH5YEE.js');
5
5
  var viem = require('viem');
6
6
 
7
7
  async function getVaultAllowance({
@@ -10,7 +10,7 @@ async function getVaultAllowance({
10
10
  recipientAddress,
11
11
  chainId
12
12
  }) {
13
- const client = await chunk2ZJWWK6D_js.getClient(chainId);
13
+ const client = await chunkE5DH5YEE_js.getClient(chainId);
14
14
  const allowance = await client.readContract({
15
15
  abi: viem.erc20Abi,
16
16
  address: tokenAddress,
@@ -23,7 +23,7 @@ async function getTotalSupply({
23
23
  tokenAddress,
24
24
  chainId
25
25
  }) {
26
- const client = await chunk2ZJWWK6D_js.getClient(chainId);
26
+ const client = await chunkE5DH5YEE_js.getClient(chainId);
27
27
  const totalSupply = await client.readContract({
28
28
  abi: viem.erc20Abi,
29
29
  address: tokenAddress,
@@ -73,10 +73,10 @@ var ChainlinkAbi = [
73
73
  async function getEthPrice({
74
74
  chainId
75
75
  }) {
76
- const client = await chunk2ZJWWK6D_js.getClient(chainId);
76
+ const client = await chunkE5DH5YEE_js.getClient(chainId);
77
77
  const priceData = await client.readContract({
78
78
  abi: ChainlinkAbi,
79
- address: chunk2ZJWWK6D_js.CHAINLINK_ADDRESS,
79
+ address: chunkE5DH5YEE_js.CHAINLINK_ADDRESS,
80
80
  functionName: "latestRoundData",
81
81
  args: []
82
82
  });
@@ -1097,7 +1097,7 @@ var getPausedStates = async ({
1097
1097
  tellerAddress,
1098
1098
  chainId
1099
1099
  }) => {
1100
- const client = await chunk2ZJWWK6D_js.getClient(chainId);
1100
+ const client = await chunkE5DH5YEE_js.getClient(chainId);
1101
1101
  const results = await client.multicall({
1102
1102
  contracts: [
1103
1103
  {
@@ -1106,7 +1106,7 @@ var getPausedStates = async ({
1106
1106
  functionName: "isPaused"
1107
1107
  },
1108
1108
  {
1109
- abi: chunkD7EMZAOQ_js.AccountantAbi,
1109
+ abi: chunkYAYUSBC6_js.AccountantAbi,
1110
1110
  address: accountantAddress,
1111
1111
  functionName: "accountantState"
1112
1112
  }
@@ -1118,7 +1118,7 @@ var getPausedStates = async ({
1118
1118
  // src/api/withdraw-assets.ts
1119
1119
  var assetsCache = null;
1120
1120
  function constructUrl(params) {
1121
- const withdrawAssetsUrl = `${chunk2ZJWWK6D_js.API_BASE_URL}/v1/protocol/withdraw-assets`;
1121
+ const withdrawAssetsUrl = `${chunkE5DH5YEE_js.API_BASE_URL}/v1/protocol/withdraw-assets`;
1122
1122
  if (!params) return withdrawAssetsUrl;
1123
1123
  const queryParams = new URLSearchParams();
1124
1124
  if (params.chainId) queryParams.append("chainId", params.chainId.toString());
@@ -1149,7 +1149,7 @@ async function fetchWithdrawAssets(params) {
1149
1149
  }
1150
1150
 
1151
1151
  // src/api/solver-slippage.ts
1152
- async function getAssetSlippage(chainId, vaultAddress, tokenAddress, defaultSlippage = chunk2ZJWWK6D_js.DEFAULT_SLIPPAGE_BPS) {
1152
+ async function getAssetSlippage(chainId, vaultAddress, tokenAddress, defaultSlippage = chunkE5DH5YEE_js.DEFAULT_SLIPPAGE_BPS) {
1153
1153
  try {
1154
1154
  const withdrawAssets = await fetchWithdrawAssets();
1155
1155
  if (!withdrawAssets) {
@@ -1179,7 +1179,7 @@ var getPreviewFee = async ({
1179
1179
  contractAddress,
1180
1180
  chainId
1181
1181
  }) => {
1182
- const client = await chunk2ZJWWK6D_js.getClient(chainId);
1182
+ const client = await chunkE5DH5YEE_js.getClient(chainId);
1183
1183
  const rate = await client.readContract({
1184
1184
  abi: TellerAbi,
1185
1185
  address: contractAddress,
@@ -1191,23 +1191,23 @@ var getPreviewFee = async ({
1191
1191
 
1192
1192
  Object.defineProperty(exports, "getErc20Allowance", {
1193
1193
  enumerable: true,
1194
- get: function () { return chunkD7EMZAOQ_js.getErc20Allowance; }
1194
+ get: function () { return chunkYAYUSBC6_js.getErc20Allowance; }
1195
1195
  });
1196
1196
  Object.defineProperty(exports, "getErc20Balance", {
1197
1197
  enumerable: true,
1198
- get: function () { return chunkD7EMZAOQ_js.getErc20Balance; }
1198
+ get: function () { return chunkYAYUSBC6_js.getErc20Balance; }
1199
1199
  });
1200
1200
  Object.defineProperty(exports, "getErc20Decimals", {
1201
1201
  enumerable: true,
1202
- get: function () { return chunkD7EMZAOQ_js.getErc20Decimals; }
1202
+ get: function () { return chunkYAYUSBC6_js.getErc20Decimals; }
1203
1203
  });
1204
1204
  Object.defineProperty(exports, "getRateInQuoteWithAssetDecimals", {
1205
1205
  enumerable: true,
1206
- get: function () { return chunkD7EMZAOQ_js.getRateInQuoteWithAssetDecimals; }
1206
+ get: function () { return chunkYAYUSBC6_js.getRateInQuoteWithAssetDecimals; }
1207
1207
  });
1208
1208
  Object.defineProperty(exports, "toChainId", {
1209
1209
  enumerable: true,
1210
- get: function () { return chunk2ZJWWK6D_js.toChainId; }
1210
+ get: function () { return chunkE5DH5YEE_js.toChainId; }
1211
1211
  });
1212
1212
  exports.fetchWithdrawAssets = fetchWithdrawAssets;
1213
1213
  exports.getAssetSlippage = getAssetSlippage;
package/dist/core.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import { AccountantAbi } from './chunk-SXIBMN7X.mjs';
2
- export { getErc20Allowance, getErc20Balance, getErc20Decimals, getRateInQuoteWithAssetDecimals } from './chunk-SXIBMN7X.mjs';
3
- import { DEFAULT_SLIPPAGE_BPS, getClient, CHAINLINK_ADDRESS, API_BASE_URL } from './chunk-MPCRFKSD.mjs';
4
- export { toChainId } from './chunk-MPCRFKSD.mjs';
1
+ import { AccountantAbi } from './chunk-E6SBQNDA.mjs';
2
+ export { getErc20Allowance, getErc20Balance, getErc20Decimals, getRateInQuoteWithAssetDecimals } from './chunk-E6SBQNDA.mjs';
3
+ import { DEFAULT_SLIPPAGE_BPS, getClient, CHAINLINK_ADDRESS, API_BASE_URL } from './chunk-JLZL25CY.mjs';
4
+ export { toChainId } from './chunk-JLZL25CY.mjs';
5
5
  import { erc20Abi } from 'viem';
6
6
 
7
7
  async function getVaultAllowance({
@@ -1,5 +1,5 @@
1
1
  import { Address } from 'viem';
2
- import { C as ChainId } from './chain-utils-CpOJcWig.mjs';
2
+ import { C as ChainId } from './chain-utils-D_b2LEEi.mjs';
3
3
  import 'viem/chains';
4
4
 
5
5
  /**
package/dist/display.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Address } from 'viem';
2
- import { C as ChainId } from './chain-utils-CpOJcWig.js';
2
+ import { C as ChainId } from './chain-utils-D_b2LEEi.js';
3
3
  import 'viem/chains';
4
4
 
5
5
  /**
package/dist/display.js CHANGED
@@ -1,36 +1,36 @@
1
1
  'use strict';
2
2
 
3
- var chunkN5UKVLSS_js = require('./chunk-N5UKVLSS.js');
4
- require('./chunk-XS4SELWC.js');
5
- require('./chunk-D7EMZAOQ.js');
3
+ var chunkXVDK6J72_js = require('./chunk-XVDK6J72.js');
4
+ require('./chunk-AUDMOT6F.js');
5
+ require('./chunk-YAYUSBC6.js');
6
6
  require('./chunk-3I3PYX2F.js');
7
- require('./chunk-2ZJWWK6D.js');
7
+ require('./chunk-E5DH5YEE.js');
8
8
 
9
9
 
10
10
 
11
11
  Object.defineProperty(exports, "getMinimumMint", {
12
12
  enumerable: true,
13
- get: function () { return chunkN5UKVLSS_js.getMinimumMint; }
13
+ get: function () { return chunkXVDK6J72_js.getMinimumMint; }
14
14
  });
15
15
  Object.defineProperty(exports, "getMinimumWithdrawalOrderSize", {
16
16
  enumerable: true,
17
- get: function () { return chunkN5UKVLSS_js.getMinimumWithdrawalOrderSize; }
17
+ get: function () { return chunkXVDK6J72_js.getMinimumWithdrawalOrderSize; }
18
18
  });
19
19
  Object.defineProperty(exports, "getVaultAPY", {
20
20
  enumerable: true,
21
- get: function () { return chunkN5UKVLSS_js.getVaultAPY; }
21
+ get: function () { return chunkXVDK6J72_js.getVaultAPY; }
22
22
  });
23
23
  Object.defineProperty(exports, "getVaultTVL", {
24
24
  enumerable: true,
25
- get: function () { return chunkN5UKVLSS_js.getVaultTVL; }
25
+ get: function () { return chunkXVDK6J72_js.getVaultTVL; }
26
26
  });
27
27
  Object.defineProperty(exports, "getWithdrawalFee", {
28
28
  enumerable: true,
29
- get: function () { return chunkN5UKVLSS_js.getWithdrawalFee; }
29
+ get: function () { return chunkXVDK6J72_js.getWithdrawalFee; }
30
30
  });
31
31
  Object.defineProperty(exports, "getWithdrawalRequests", {
32
32
  enumerable: true,
33
- get: function () { return chunkN5UKVLSS_js.getWithdrawalRequests; }
33
+ get: function () { return chunkXVDK6J72_js.getWithdrawalRequests; }
34
34
  });
35
35
  //# sourceMappingURL=display.js.map
36
36
  //# sourceMappingURL=display.js.map
package/dist/display.mjs CHANGED
@@ -1,7 +1,7 @@
1
- export { getMinimumMint, getMinimumWithdrawalOrderSize, getVaultAPY, getVaultTVL, getWithdrawalFee, getWithdrawalRequests } from './chunk-GJPTAY5T.mjs';
2
- import './chunk-XA653JS3.mjs';
3
- import './chunk-SXIBMN7X.mjs';
1
+ export { getMinimumMint, getMinimumWithdrawalOrderSize, getVaultAPY, getVaultTVL, getWithdrawalFee, getWithdrawalRequests } from './chunk-WJGSTAPB.mjs';
2
+ import './chunk-Y6RXVDQN.mjs';
3
+ import './chunk-E6SBQNDA.mjs';
4
4
  import './chunk-7RWWVUHP.mjs';
5
- import './chunk-MPCRFKSD.mjs';
5
+ import './chunk-JLZL25CY.mjs';
6
6
  //# sourceMappingURL=display.mjs.map
7
7
  //# sourceMappingURL=display.mjs.map
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { GetMinimumMintParams, GetMinimumWithdrawalOrderSizeParams, GetVaultAPYParams, GetVaultTVLParams, GetWithdrawalFeeParams, GetWithdrawalRequestsParams, MinimumMintResult, MinimumWithdrawalOrderSizeResult, VaultAPYResult, VaultTVLResult, WithdrawalFeeResult, WithdrawalRequest, WithdrawalRequestStatus, WithdrawalRequestsResult, getMinimumMint, getMinimumWithdrawalOrderSize, getVaultAPY, getVaultTVL, getWithdrawalFee, getWithdrawalRequests } from './display.mjs';
2
2
  import { Address } from 'viem';
3
- import { A as AmplifyVault, S as SupportedAsset, Y as YieldType, a as AssetFilterOptions, V as VaultFilterOptions, W as WithdrawSupportedAsset, C as ChainId } from './chain-utils-CpOJcWig.mjs';
4
- export { b as APIError, d as VaultSLA, e as VaultSupportedAsset } from './chain-utils-CpOJcWig.mjs';
3
+ import { A as AmplifyVault, S as SupportedAsset, Y as YieldType, a as AssetFilterOptions, V as VaultFilterOptions, W as WithdrawSupportedAsset, C as ChainId } from './chain-utils-D_b2LEEi.mjs';
4
+ export { b as APIError, d as VaultSLA, e as VaultSupportedAsset } from './chain-utils-D_b2LEEi.mjs';
5
5
  export { AlreadyApprovedAuthorizationResult, ApprovalAuthorizationResult, ApproveDepositTokenTxData, ApproveWithdrawOrderTxData, CancelWithdrawOrderTxData, DepositAuthMethod, DepositAuthorizationResult, DepositTxData, EIP712Domain, PERMIT_TYPES, ParsedPermitSignature, PermitAuthorizationResult, PermitDepositResult, PermitSignatureData, PrepareCancelWithdrawOrderTxDataParams, PrepareDepositAuthorizationParams, PrepareDepositParams, PrepareDepositPermitSignatureParams, PrepareDepositResult, PrepareDepositWithPermitTxDataParams, PrepareWithdrawOrderTxDataParams, PrepareWithdrawalAuthorizationParams, PrepareWithdrawalParams, PrepareWithdrawalResult, StandardDepositResult, UnencodedDepositWithPermitData, WithdrawAlreadyApprovedAuthorizationResult, WithdrawApprovalAuthorizationResult, WithdrawAuthMethod, WithdrawAuthorizationResult, WithdrawOrderTxData, isAlreadyApprovedAuth, isApprovalAuth, isPermitAuth, isWithdrawAlreadyApprovedAuth, isWithdrawApprovalAuth, parsePermitSignature, prepareApproveDepositTokenTxData, prepareApproveWithdrawOrderTxData, prepareCancelWithdrawOrderTxData, prepareDeposit, prepareDepositAuthorization, prepareDepositPermitSignature, prepareDepositTxData, prepareDepositWithPermitTxData, prepareWithdrawOrderTxData, prepareWithdrawal, prepareWithdrawalAuthorization, toEthSignTypedDataV4 } from './vaults.mjs';
6
6
  import 'viem/chains';
7
7
 
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { GetMinimumMintParams, GetMinimumWithdrawalOrderSizeParams, GetVaultAPYParams, GetVaultTVLParams, GetWithdrawalFeeParams, GetWithdrawalRequestsParams, MinimumMintResult, MinimumWithdrawalOrderSizeResult, VaultAPYResult, VaultTVLResult, WithdrawalFeeResult, WithdrawalRequest, WithdrawalRequestStatus, WithdrawalRequestsResult, getMinimumMint, getMinimumWithdrawalOrderSize, getVaultAPY, getVaultTVL, getWithdrawalFee, getWithdrawalRequests } from './display.js';
2
2
  import { Address } from 'viem';
3
- import { A as AmplifyVault, S as SupportedAsset, Y as YieldType, a as AssetFilterOptions, V as VaultFilterOptions, W as WithdrawSupportedAsset, C as ChainId } from './chain-utils-CpOJcWig.js';
4
- export { b as APIError, d as VaultSLA, e as VaultSupportedAsset } from './chain-utils-CpOJcWig.js';
3
+ import { A as AmplifyVault, S as SupportedAsset, Y as YieldType, a as AssetFilterOptions, V as VaultFilterOptions, W as WithdrawSupportedAsset, C as ChainId } from './chain-utils-D_b2LEEi.js';
4
+ export { b as APIError, d as VaultSLA, e as VaultSupportedAsset } from './chain-utils-D_b2LEEi.js';
5
5
  export { AlreadyApprovedAuthorizationResult, ApprovalAuthorizationResult, ApproveDepositTokenTxData, ApproveWithdrawOrderTxData, CancelWithdrawOrderTxData, DepositAuthMethod, DepositAuthorizationResult, DepositTxData, EIP712Domain, PERMIT_TYPES, ParsedPermitSignature, PermitAuthorizationResult, PermitDepositResult, PermitSignatureData, PrepareCancelWithdrawOrderTxDataParams, PrepareDepositAuthorizationParams, PrepareDepositParams, PrepareDepositPermitSignatureParams, PrepareDepositResult, PrepareDepositWithPermitTxDataParams, PrepareWithdrawOrderTxDataParams, PrepareWithdrawalAuthorizationParams, PrepareWithdrawalParams, PrepareWithdrawalResult, StandardDepositResult, UnencodedDepositWithPermitData, WithdrawAlreadyApprovedAuthorizationResult, WithdrawApprovalAuthorizationResult, WithdrawAuthMethod, WithdrawAuthorizationResult, WithdrawOrderTxData, isAlreadyApprovedAuth, isApprovalAuth, isPermitAuth, isWithdrawAlreadyApprovedAuth, isWithdrawApprovalAuth, parsePermitSignature, prepareApproveDepositTokenTxData, prepareApproveWithdrawOrderTxData, prepareCancelWithdrawOrderTxData, prepareDeposit, prepareDepositAuthorization, prepareDepositPermitSignature, prepareDepositTxData, prepareDepositWithPermitTxData, prepareWithdrawOrderTxData, prepareWithdrawal, prepareWithdrawalAuthorization, toEthSignTypedDataV4 } from './vaults.js';
6
6
  import 'viem/chains';
7
7