@gauntlet-xyz/sdk 2.5.0 → 3.1.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.
- package/README.md +121 -7
- package/dist/api/activity.d.ts +4 -2
- package/dist/api/activity.d.ts.map +1 -1
- package/dist/api/activityRows.d.ts +11 -0
- package/dist/api/activityRows.d.ts.map +1 -0
- package/dist/api/caip.d.ts +1 -1
- package/dist/api/caip.d.ts.map +1 -1
- package/dist/api/client.d.ts +43 -5
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/decimal.d.ts.map +1 -1
- package/dist/api/errors.d.ts +1 -1
- package/dist/api/errors.d.ts.map +1 -1
- package/dist/api/generated.d.ts +570 -7
- package/dist/api/generated.d.ts.map +1 -1
- package/dist/api/http.d.ts.map +1 -1
- package/dist/api/index.d.ts +13 -13
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +47 -8
- package/dist/api/index.js.map +7 -1
- package/dist/api/positionHistory.d.ts +1 -1
- package/dist/api/positionHistory.d.ts.map +1 -1
- package/dist/attribution/index.d.ts +8 -5
- package/dist/attribution/index.d.ts.map +1 -1
- package/dist/chunk-JJOLVL5V.js +546 -0
- package/dist/chunk-JJOLVL5V.js.map +7 -0
- package/dist/chunk-JRSNLXFY.js +2009 -0
- package/dist/chunk-JRSNLXFY.js.map +7 -0
- package/dist/chunk-MEKISE2T.js +367 -0
- package/dist/chunk-MEKISE2T.js.map +7 -0
- package/dist/chunk-YQXTLIJA.js +4477 -0
- package/dist/chunk-YQXTLIJA.js.map +7 -0
- package/dist/cjs/api/activity.d.ts +72 -0
- package/dist/cjs/api/activity.d.ts.map +1 -0
- package/dist/cjs/api/activity.js +138 -0
- package/dist/cjs/api/activity.js.map +7 -0
- package/dist/cjs/api/activityRows.d.ts +11 -0
- package/dist/cjs/api/activityRows.d.ts.map +1 -0
- package/dist/cjs/api/activityRows.js +139 -0
- package/dist/cjs/api/activityRows.js.map +7 -0
- package/dist/cjs/api/caip.d.ts +29 -0
- package/dist/cjs/api/caip.d.ts.map +1 -0
- package/dist/cjs/api/caip.js +61 -0
- package/dist/cjs/api/caip.js.map +7 -0
- package/dist/cjs/api/client.d.ts +173 -0
- package/dist/cjs/api/client.d.ts.map +1 -0
- package/dist/cjs/api/client.js +199 -0
- package/dist/cjs/api/client.js.map +7 -0
- package/dist/cjs/api/decimal.d.ts +21 -0
- package/dist/cjs/api/decimal.d.ts.map +1 -0
- package/dist/cjs/api/decimal.js +61 -0
- package/dist/cjs/api/decimal.js.map +7 -0
- package/dist/cjs/api/errors.d.ts +32 -0
- package/dist/cjs/api/errors.d.ts.map +1 -0
- package/dist/cjs/api/errors.js +80 -0
- package/dist/cjs/api/errors.js.map +7 -0
- package/dist/cjs/api/generated.d.ts +2068 -0
- package/dist/cjs/api/generated.d.ts.map +1 -0
- package/dist/cjs/api/generated.js +17 -0
- package/dist/cjs/api/generated.js.map +7 -0
- package/dist/cjs/api/http.d.ts +16 -0
- package/dist/cjs/api/http.d.ts.map +1 -0
- package/dist/cjs/api/http.js +65 -0
- package/dist/cjs/api/http.js.map +7 -0
- package/dist/cjs/api/index.d.ts +14 -0
- package/dist/cjs/api/index.d.ts.map +1 -0
- package/dist/cjs/api/index.js +73 -0
- package/dist/cjs/api/index.js.map +7 -0
- package/dist/cjs/api/positionHistory.d.ts +44 -0
- package/dist/cjs/api/positionHistory.d.ts.map +1 -0
- package/dist/cjs/api/positionHistory.js +144 -0
- package/dist/cjs/api/positionHistory.js.map +7 -0
- package/dist/cjs/attribution/erc8021.d.ts +9 -0
- package/dist/cjs/attribution/erc8021.d.ts.map +1 -0
- package/dist/cjs/attribution/erc8021.js +37 -0
- package/dist/cjs/attribution/erc8021.js.map +7 -0
- package/dist/cjs/attribution/index.d.ts +28 -0
- package/dist/cjs/attribution/index.d.ts.map +1 -0
- package/dist/cjs/attribution/index.js +70 -0
- package/dist/cjs/attribution/index.js.map +7 -0
- package/dist/cjs/client.d.ts +72 -0
- package/dist/cjs/client.d.ts.map +1 -0
- package/dist/cjs/client.js +80 -0
- package/dist/cjs/client.js.map +7 -0
- package/dist/cjs/constants.d.ts +16 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +83 -0
- package/dist/cjs/constants.js.map +7 -0
- package/dist/cjs/errors.d.ts +85 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +210 -0
- package/dist/cjs/errors.js.map +7 -0
- package/dist/cjs/evm/abis/erc20.d.ts +41 -0
- package/dist/cjs/evm/abis/erc20.d.ts.map +1 -0
- package/dist/cjs/evm/abis/erc20.js +57 -0
- package/dist/cjs/evm/abis/erc20.js.map +7 -0
- package/dist/cjs/evm/abis/erc4626.d.ts +105 -0
- package/dist/cjs/evm/abis/erc4626.d.ts.map +1 -0
- package/dist/cjs/evm/abis/erc4626.js +97 -0
- package/dist/cjs/evm/abis/erc4626.js.map +7 -0
- package/dist/cjs/evm/abis/multiDepositorVault.d.ts +1048 -0
- package/dist/cjs/evm/abis/multiDepositorVault.d.ts.map +1 -0
- package/dist/cjs/evm/abis/multiDepositorVault.js +614 -0
- package/dist/cjs/evm/abis/multiDepositorVault.js.map +7 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculator.d.ts +910 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculator.d.ts.map +1 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculator.js +517 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculator.js.map +7 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.d.ts +277 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.d.ts.map +1 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.js +166 -0
- package/dist/cjs/evm/abis/priceAndFeeCalculatorV2.js.map +7 -0
- package/dist/cjs/evm/abis/provisioner.d.ts +4984 -0
- package/dist/cjs/evm/abis/provisioner.d.ts.map +1 -0
- package/dist/cjs/evm/abis/provisioner.js +2785 -0
- package/dist/cjs/evm/abis/provisioner.js.map +7 -0
- package/dist/cjs/evm/abis/provisionerV2.d.ts +740 -0
- package/dist/cjs/evm/abis/provisionerV2.d.ts.map +1 -0
- package/dist/cjs/evm/abis/provisionerV2.js +320 -0
- package/dist/cjs/evm/abis/provisionerV2.js.map +7 -0
- package/dist/cjs/evm/adapters/aera.d.ts +6 -0
- package/dist/cjs/evm/adapters/aera.d.ts.map +1 -0
- package/dist/cjs/evm/adapters/aera.js +500 -0
- package/dist/cjs/evm/adapters/aera.js.map +7 -0
- package/dist/cjs/evm/adapters/index.d.ts +3 -0
- package/dist/cjs/evm/adapters/index.d.ts.map +1 -0
- package/dist/cjs/evm/adapters/index.js +41 -0
- package/dist/cjs/evm/adapters/index.js.map +7 -0
- package/dist/cjs/evm/adapters/morpho.d.ts +3 -0
- package/dist/cjs/evm/adapters/morpho.d.ts.map +1 -0
- package/dist/cjs/evm/adapters/morpho.js +103 -0
- package/dist/cjs/evm/adapters/morpho.js.map +7 -0
- package/dist/cjs/evm/adapters/types.d.ts +85 -0
- package/dist/cjs/evm/adapters/types.d.ts.map +1 -0
- package/dist/cjs/evm/adapters/types.js +17 -0
- package/dist/cjs/evm/adapters/types.js.map +7 -0
- package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.d.ts +46 -0
- package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.d.ts.map +1 -0
- package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.js +223 -0
- package/dist/cjs/evm/aeraContracts/priceAndFeeCalculator.js.map +7 -0
- package/dist/cjs/evm/aeraContracts/readOptions.d.ts +8 -0
- package/dist/cjs/evm/aeraContracts/readOptions.d.ts.map +1 -0
- package/dist/cjs/evm/aeraContracts/readOptions.js +31 -0
- package/dist/cjs/evm/aeraContracts/readOptions.js.map +7 -0
- package/dist/cjs/evm/aeraContracts/v1.d.ts +2317 -0
- package/dist/cjs/evm/aeraContracts/v1.d.ts.map +1 -0
- package/dist/cjs/evm/aeraContracts/v1.js +120 -0
- package/dist/cjs/evm/aeraContracts/v1.js.map +7 -0
- package/dist/cjs/evm/aeraContracts/v2.d.ts +4538 -0
- package/dist/cjs/evm/aeraContracts/v2.d.ts.map +1 -0
- package/dist/cjs/evm/aeraContracts/v2.js +449 -0
- package/dist/cjs/evm/aeraContracts/v2.js.map +7 -0
- package/dist/cjs/evm/aeraContracts.d.ts +33 -0
- package/dist/cjs/evm/aeraContracts.d.ts.map +1 -0
- package/dist/cjs/evm/aeraContracts.js +234 -0
- package/dist/cjs/evm/aeraContracts.js.map +7 -0
- package/dist/cjs/evm/deposit.d.ts +51 -0
- package/dist/cjs/evm/deposit.d.ts.map +1 -0
- package/dist/cjs/evm/deposit.js +142 -0
- package/dist/cjs/evm/deposit.js.map +7 -0
- package/dist/cjs/evm/depositQuote.d.ts +32 -0
- package/dist/cjs/evm/depositQuote.d.ts.map +1 -0
- package/dist/cjs/evm/depositQuote.js +97 -0
- package/dist/cjs/evm/depositQuote.js.map +7 -0
- package/dist/cjs/evm/depositReceiverApproval.d.ts +17 -0
- package/dist/cjs/evm/depositReceiverApproval.d.ts.map +1 -0
- package/dist/cjs/evm/depositReceiverApproval.js +71 -0
- package/dist/cjs/evm/depositReceiverApproval.js.map +7 -0
- package/dist/cjs/evm/index.d.ts +28 -0
- package/dist/cjs/evm/index.d.ts.map +1 -0
- package/dist/cjs/evm/index.js +116 -0
- package/dist/cjs/evm/index.js.map +7 -0
- package/dist/cjs/evm/operationMode.d.ts +9 -0
- package/dist/cjs/evm/operationMode.d.ts.map +1 -0
- package/dist/cjs/evm/operationMode.js +65 -0
- package/dist/cjs/evm/operationMode.js.map +7 -0
- package/dist/cjs/evm/tokenModes.d.ts +22 -0
- package/dist/cjs/evm/tokenModes.d.ts.map +1 -0
- package/dist/cjs/evm/tokenModes.js +47 -0
- package/dist/cjs/evm/tokenModes.js.map +7 -0
- package/dist/cjs/evm/types.d.ts +34 -0
- package/dist/cjs/evm/types.d.ts.map +1 -0
- package/dist/cjs/evm/types.js +32 -0
- package/dist/cjs/evm/types.js.map +7 -0
- package/dist/cjs/evm/userCurrentBalance.d.ts +69 -0
- package/dist/cjs/evm/userCurrentBalance.d.ts.map +1 -0
- package/dist/cjs/evm/userCurrentBalance.js +268 -0
- package/dist/cjs/evm/userCurrentBalance.js.map +7 -0
- package/dist/cjs/evm/vaults.d.ts +44 -0
- package/dist/cjs/evm/vaults.d.ts.map +1 -0
- package/dist/cjs/evm/vaults.js +78 -0
- package/dist/cjs/evm/vaults.js.map +7 -0
- package/dist/cjs/evm/withdraw.d.ts +75 -0
- package/dist/cjs/evm/withdraw.d.ts.map +1 -0
- package/dist/cjs/evm/withdraw.js +174 -0
- package/dist/cjs/evm/withdraw.js.map +7 -0
- package/dist/cjs/evm/withdrawQuote.d.ts +135 -0
- package/dist/cjs/evm/withdrawQuote.d.ts.map +1 -0
- package/dist/cjs/evm/withdrawQuote.js +257 -0
- package/dist/cjs/evm/withdrawQuote.js.map +7 -0
- package/dist/cjs/index.d.ts +31 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +128 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/privy/index.d.ts +52 -0
- package/dist/cjs/privy/index.d.ts.map +1 -0
- package/dist/cjs/privy/index.js +57 -0
- package/dist/cjs/privy/index.js.map +7 -0
- package/dist/client.d.ts +4 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/errors.d.ts +4 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/evm/adapters/aera.d.ts +1 -1
- package/dist/evm/adapters/aera.d.ts.map +1 -1
- package/dist/evm/adapters/index.d.ts +1 -1
- package/dist/evm/adapters/index.d.ts.map +1 -1
- package/dist/evm/adapters/morpho.d.ts +1 -1
- package/dist/evm/adapters/morpho.d.ts.map +1 -1
- package/dist/evm/adapters/types.d.ts +6 -3
- package/dist/evm/adapters/types.d.ts.map +1 -1
- package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts +1 -1
- package/dist/evm/aeraContracts/priceAndFeeCalculator.d.ts.map +1 -1
- package/dist/evm/aeraContracts/v1.d.ts +2 -2
- package/dist/evm/aeraContracts/v1.d.ts.map +1 -1
- package/dist/evm/aeraContracts/v2.d.ts +25 -4
- package/dist/evm/aeraContracts/v2.d.ts.map +1 -1
- package/dist/evm/aeraContracts.d.ts +2 -2
- package/dist/evm/aeraContracts.d.ts.map +1 -1
- package/dist/evm/deposit.d.ts +7 -4
- package/dist/evm/deposit.d.ts.map +1 -1
- package/dist/evm/depositQuote.d.ts +32 -0
- package/dist/evm/depositQuote.d.ts.map +1 -0
- package/dist/evm/depositReceiverApproval.d.ts +2 -2
- package/dist/evm/depositReceiverApproval.d.ts.map +1 -1
- package/dist/evm/index.d.ts +27 -25
- package/dist/evm/index.d.ts.map +1 -1
- package/dist/evm/index.js +86 -12
- package/dist/evm/index.js.map +7 -1
- package/dist/evm/tokenModes.d.ts +2 -2
- package/dist/evm/tokenModes.d.ts.map +1 -1
- package/dist/evm/userCurrentBalance.d.ts +21 -3
- package/dist/evm/userCurrentBalance.d.ts.map +1 -1
- package/dist/evm/vaults.d.ts +2 -9
- package/dist/evm/vaults.d.ts.map +1 -1
- package/dist/evm/withdraw.d.ts +5 -3
- package/dist/evm/withdraw.d.ts.map +1 -1
- package/dist/evm/withdrawQuote.d.ts +14 -6
- package/dist/evm/withdrawQuote.d.ts.map +1 -1
- package/dist/index.d.ts +30 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +137 -14
- package/dist/index.js.map +7 -1
- package/dist/manifest/vaults.json +1958 -0
- package/dist/privy/index.d.ts +1 -1
- package/dist/privy/index.d.ts.map +1 -1
- package/dist/privy/index.js +39 -48
- package/dist/privy/index.js.map +7 -1
- package/manifest/vaults.json +22 -395
- package/package.json +43 -9
- package/src/api/activity.ts +18 -15
- package/src/api/activityRows.ts +143 -0
- package/src/api/caip.ts +3 -1
- package/src/api/client.ts +105 -6
- package/src/api/decimal.ts +1 -0
- package/src/api/generated.ts +570 -7
- package/src/api/http.ts +1 -0
- package/src/api/index.ts +8 -0
- package/src/api/positionHistory.ts +20 -5
- package/src/attribution/index.ts +6 -2
- package/src/client.ts +4 -1
- package/src/constants.ts +2 -0
- package/src/errors.ts +7 -0
- package/src/evm/adapters/aera.ts +40 -19
- package/src/evm/adapters/types.ts +3 -0
- package/src/evm/aeraContracts/v2.ts +124 -16
- package/src/evm/aeraContracts.ts +29 -14
- package/src/evm/deposit.ts +61 -18
- package/src/evm/depositQuote.ts +138 -0
- package/src/evm/depositReceiverApproval.ts +14 -9
- package/src/evm/index.ts +10 -1
- package/src/evm/userCurrentBalance.ts +155 -60
- package/src/evm/vaults.ts +0 -7
- package/src/evm/withdraw.ts +20 -1
- package/src/evm/withdrawQuote.ts +126 -51
- package/src/index.ts +11 -2
- package/dist/api/activity.js +0 -154
- package/dist/api/activity.js.map +0 -1
- package/dist/api/caip.js +0 -38
- package/dist/api/caip.js.map +0 -1
- package/dist/api/client.js +0 -119
- package/dist/api/client.js.map +0 -1
- package/dist/api/decimal.js +0 -44
- package/dist/api/decimal.js.map +0 -1
- package/dist/api/errors.js +0 -41
- package/dist/api/errors.js.map +0 -1
- package/dist/api/generated.js +0 -6
- package/dist/api/generated.js.map +0 -1
- package/dist/api/http.js +0 -39
- package/dist/api/http.js.map +0 -1
- package/dist/api/positionHistory.js +0 -126
- package/dist/api/positionHistory.js.map +0 -1
- package/dist/attribution/erc8021.js +0 -17
- package/dist/attribution/erc8021.js.map +0 -1
- package/dist/attribution/index.js +0 -45
- package/dist/attribution/index.js.map +0 -1
- package/dist/client.js +0 -72
- package/dist/client.js.map +0 -1
- package/dist/constants.js +0 -28
- package/dist/constants.js.map +0 -1
- package/dist/errors.js +0 -134
- package/dist/errors.js.map +0 -1
- package/dist/evm/abis/erc20.js +0 -30
- package/dist/evm/abis/erc20.js.map +0 -1
- package/dist/evm/abis/erc4626.js +0 -70
- package/dist/evm/abis/erc4626.js.map +0 -1
- package/dist/evm/abis/multiDepositorVault.js +0 -587
- package/dist/evm/abis/multiDepositorVault.js.map +0 -1
- package/dist/evm/abis/priceAndFeeCalculator.js +0 -490
- package/dist/evm/abis/priceAndFeeCalculator.js.map +0 -1
- package/dist/evm/abis/priceAndFeeCalculatorV2.js +0 -141
- package/dist/evm/abis/priceAndFeeCalculatorV2.js.map +0 -1
- package/dist/evm/abis/provisioner.js +0 -2768
- package/dist/evm/abis/provisioner.js.map +0 -1
- package/dist/evm/abis/provisionerV2.js +0 -295
- package/dist/evm/abis/provisionerV2.js.map +0 -1
- package/dist/evm/adapters/aera.js +0 -280
- package/dist/evm/adapters/aera.js.map +0 -1
- package/dist/evm/adapters/index.js +0 -14
- package/dist/evm/adapters/index.js.map +0 -1
- package/dist/evm/adapters/morpho.js +0 -79
- package/dist/evm/adapters/morpho.js.map +0 -1
- package/dist/evm/adapters/types.js +0 -2
- package/dist/evm/adapters/types.js.map +0 -1
- package/dist/evm/aeraContracts/priceAndFeeCalculator.js +0 -174
- package/dist/evm/aeraContracts/priceAndFeeCalculator.js.map +0 -1
- package/dist/evm/aeraContracts/readOptions.js +0 -4
- package/dist/evm/aeraContracts/readOptions.js.map +0 -1
- package/dist/evm/aeraContracts/v1.js +0 -59
- package/dist/evm/aeraContracts/v1.js.map +0 -1
- package/dist/evm/aeraContracts/v2.js +0 -273
- package/dist/evm/aeraContracts/v2.js.map +0 -1
- package/dist/evm/aeraContracts.js +0 -195
- package/dist/evm/aeraContracts.js.map +0 -1
- package/dist/evm/deposit.js +0 -109
- package/dist/evm/deposit.js.map +0 -1
- package/dist/evm/depositReceiverApproval.js +0 -32
- package/dist/evm/depositReceiverApproval.js.map +0 -1
- package/dist/evm/operationMode.js +0 -41
- package/dist/evm/operationMode.js.map +0 -1
- package/dist/evm/tokenModes.js +0 -34
- package/dist/evm/tokenModes.js.map +0 -1
- package/dist/evm/types.js +0 -5
- package/dist/evm/types.js.map +0 -1
- package/dist/evm/userCurrentBalance.js +0 -211
- package/dist/evm/userCurrentBalance.js.map +0 -1
- package/dist/evm/vaults.js +0 -75
- package/dist/evm/vaults.js.map +0 -1
- package/dist/evm/withdraw.js +0 -177
- package/dist/evm/withdraw.js.map +0 -1
- package/dist/evm/withdrawQuote.js +0 -164
- package/dist/evm/withdrawQuote.js.map +0 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var morpho_exports = {};
|
|
20
|
+
__export(morpho_exports, {
|
|
21
|
+
morphoAdapter: () => morphoAdapter
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(morpho_exports);
|
|
24
|
+
var import_erc20 = require("../abis/erc20");
|
|
25
|
+
var import_erc4626 = require("../abis/erc4626");
|
|
26
|
+
var import_errors = require("../../errors");
|
|
27
|
+
const morphoAdapter = {
|
|
28
|
+
async buildDeposit(params) {
|
|
29
|
+
const { vault, amount, receiver, account } = params;
|
|
30
|
+
return [
|
|
31
|
+
{
|
|
32
|
+
type: "deposit",
|
|
33
|
+
address: vault.vaultAddress,
|
|
34
|
+
abi: import_erc4626.erc4626Abi,
|
|
35
|
+
functionName: "deposit",
|
|
36
|
+
args: [amount, receiver],
|
|
37
|
+
account
|
|
38
|
+
}
|
|
39
|
+
];
|
|
40
|
+
},
|
|
41
|
+
async buildWithdraw(params) {
|
|
42
|
+
const { vault, receiver, account, publicClient } = params;
|
|
43
|
+
let shares;
|
|
44
|
+
if ("entireAmount" in params && params.entireAmount) {
|
|
45
|
+
shares = await publicClient.readContract({
|
|
46
|
+
address: vault.vaultAddress,
|
|
47
|
+
abi: import_erc4626.erc4626Abi,
|
|
48
|
+
functionName: "balanceOf",
|
|
49
|
+
args: [account]
|
|
50
|
+
});
|
|
51
|
+
} else if ("amount" in params && params.amount != null) {
|
|
52
|
+
return [
|
|
53
|
+
{
|
|
54
|
+
type: "withdraw",
|
|
55
|
+
address: vault.vaultAddress,
|
|
56
|
+
abi: import_erc4626.erc4626Abi,
|
|
57
|
+
functionName: "withdraw",
|
|
58
|
+
args: [params.amount, receiver, account],
|
|
59
|
+
account
|
|
60
|
+
}
|
|
61
|
+
];
|
|
62
|
+
} else if ("shares" in params && params.shares != null) {
|
|
63
|
+
shares = params.shares;
|
|
64
|
+
} else {
|
|
65
|
+
throw new import_errors.InvalidWithdrawParamsError();
|
|
66
|
+
}
|
|
67
|
+
return [
|
|
68
|
+
{
|
|
69
|
+
type: "redeem",
|
|
70
|
+
address: vault.vaultAddress,
|
|
71
|
+
abi: import_erc4626.erc4626Abi,
|
|
72
|
+
functionName: "redeem",
|
|
73
|
+
args: [shares, receiver, account],
|
|
74
|
+
account
|
|
75
|
+
}
|
|
76
|
+
];
|
|
77
|
+
},
|
|
78
|
+
async checkAllowance(params) {
|
|
79
|
+
const { publicClient, token, owner, spender, amount } = params;
|
|
80
|
+
const current = await publicClient.readContract({
|
|
81
|
+
address: token,
|
|
82
|
+
abi: import_erc20.erc20Abi,
|
|
83
|
+
functionName: "allowance",
|
|
84
|
+
args: [owner, spender]
|
|
85
|
+
});
|
|
86
|
+
return { sufficient: current >= amount, current };
|
|
87
|
+
},
|
|
88
|
+
buildApproval(params) {
|
|
89
|
+
return {
|
|
90
|
+
type: "approve",
|
|
91
|
+
address: params.token,
|
|
92
|
+
abi: import_erc20.erc20Abi,
|
|
93
|
+
functionName: "approve",
|
|
94
|
+
args: [params.spender, params.amount],
|
|
95
|
+
account: params.account
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
100
|
+
0 && (module.exports = {
|
|
101
|
+
morphoAdapter
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=morpho.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/evm/adapters/morpho.ts"],
|
|
4
|
+
"sourcesContent": ["import type {\n EvmProtocolAdapter,\n EvmTxStep,\n AdapterDepositParams,\n AdapterWithdrawParams,\n AllowanceParams,\n ApprovalParams,\n} from './types';\nimport { erc20Abi } from '../abis/erc20';\nimport { erc4626Abi } from '../abis/erc4626';\nimport { InvalidWithdrawParamsError } from '../../errors';\n\nexport const morphoAdapter: EvmProtocolAdapter = {\n async buildDeposit(params: AdapterDepositParams): Promise<EvmTxStep[]> {\n const { vault, amount, receiver, account } = params;\n\n return [\n {\n type: 'deposit',\n address: vault.vaultAddress,\n abi: erc4626Abi,\n functionName: 'deposit',\n args: [amount, receiver],\n account,\n },\n ];\n },\n\n async buildWithdraw(params: AdapterWithdrawParams): Promise<EvmTxStep[]> {\n const { vault, receiver, account, publicClient } = params;\n\n let shares: bigint;\n\n if ('entireAmount' in params && params.entireAmount) {\n shares = await publicClient.readContract({\n address: vault.vaultAddress,\n abi: erc4626Abi,\n functionName: 'balanceOf',\n args: [account],\n });\n } else if ('amount' in params && params.amount != null) {\n return [\n {\n type: 'withdraw',\n address: vault.vaultAddress,\n abi: erc4626Abi,\n functionName: 'withdraw',\n args: [params.amount, receiver, account],\n account,\n },\n ];\n } else if ('shares' in params && params.shares != null) {\n shares = params.shares;\n } else {\n throw new InvalidWithdrawParamsError();\n }\n\n return [\n {\n type: 'redeem',\n address: vault.vaultAddress,\n abi: erc4626Abi,\n functionName: 'redeem',\n args: [shares, receiver, account],\n account,\n },\n ];\n },\n\n async checkAllowance(params: AllowanceParams) {\n const { publicClient, token, owner, spender, amount } = params;\n const current = await publicClient.readContract({\n address: token,\n abi: erc20Abi,\n functionName: 'allowance',\n args: [owner, spender],\n });\n\n return { sufficient: current >= amount, current };\n },\n\n buildApproval(params: ApprovalParams): EvmTxStep {\n return {\n type: 'approve',\n address: params.token,\n abi: erc20Abi,\n functionName: 'approve',\n args: [params.spender, params.amount],\n account: params.account,\n };\n },\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,mBAAyB;AACzB,qBAA2B;AAC3B,oBAA2C;AAEpC,MAAM,gBAAoC;AAAA,EAC/C,MAAM,aAAa,QAAoD;AACrE,UAAM,EAAE,OAAO,QAAQ,UAAU,QAAQ,IAAI;AAE7C,WAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,SAAS,MAAM;AAAA,QACf,KAAK;AAAA,QACL,cAAc;AAAA,QACd,MAAM,CAAC,QAAQ,QAAQ;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,cAAc,QAAqD;AACvE,UAAM,EAAE,OAAO,UAAU,SAAS,aAAa,IAAI;AAEnD,QAAI;AAEJ,QAAI,kBAAkB,UAAU,OAAO,cAAc;AACnD,eAAS,MAAM,aAAa,aAAa;AAAA,QACvC,SAAS,MAAM;AAAA,QACf,KAAK;AAAA,QACL,cAAc;AAAA,QACd,MAAM,CAAC,OAAO;AAAA,MAChB,CAAC;AAAA,IACH,WAAW,YAAY,UAAU,OAAO,UAAU,MAAM;AACtD,aAAO;AAAA,QACL;AAAA,UACE,MAAM;AAAA,UACN,SAAS,MAAM;AAAA,UACf,KAAK;AAAA,UACL,cAAc;AAAA,UACd,MAAM,CAAC,OAAO,QAAQ,UAAU,OAAO;AAAA,UACvC;AAAA,QACF;AAAA,MACF;AAAA,IACF,WAAW,YAAY,UAAU,OAAO,UAAU,MAAM;AACtD,eAAS,OAAO;AAAA,IAClB,OAAO;AACL,YAAM,IAAI,yCAA2B;AAAA,IACvC;AAEA,WAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,SAAS,MAAM;AAAA,QACf,KAAK;AAAA,QACL,cAAc;AAAA,QACd,MAAM,CAAC,QAAQ,UAAU,OAAO;AAAA,QAChC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,eAAe,QAAyB;AAC5C,UAAM,EAAE,cAAc,OAAO,OAAO,SAAS,OAAO,IAAI;AACxD,UAAM,UAAU,MAAM,aAAa,aAAa;AAAA,MAC9C,SAAS;AAAA,MACT,KAAK;AAAA,MACL,cAAc;AAAA,MACd,MAAM,CAAC,OAAO,OAAO;AAAA,IACvB,CAAC;AAED,WAAO,EAAE,YAAY,WAAW,QAAQ,QAAQ;AAAA,EAClD;AAAA,EAEA,cAAc,QAAmC;AAC/C,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,OAAO;AAAA,MAChB,KAAK;AAAA,MACL,cAAc;AAAA,MACd,MAAM,CAAC,OAAO,SAAS,OAAO,MAAM;AAAA,MACpC,SAAS,OAAO;AAAA,IAClB;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { Abi, Address, Hex, PublicClient } from 'viem';
|
|
2
|
+
import type { AeraRuntimeContracts } from "../aeraContracts.js";
|
|
3
|
+
import type { SyncWithdrawQuoteBounds } from "../withdrawQuote.js";
|
|
4
|
+
import type { TokenInfo, VaultDeployment } from "../types.js";
|
|
5
|
+
export interface EvmTxStep<TAbi extends Abi = Abi, TFunctionName extends string = string> {
|
|
6
|
+
type: 'approve' | 'deposit' | 'requestDeposit' | 'redeem' | 'requestRedeem' | 'setDepositReceiverApproval' | 'withdraw';
|
|
7
|
+
address: Address;
|
|
8
|
+
abi: TAbi;
|
|
9
|
+
functionName: TFunctionName;
|
|
10
|
+
args: readonly unknown[];
|
|
11
|
+
account: Address;
|
|
12
|
+
attribution?: Hex;
|
|
13
|
+
}
|
|
14
|
+
export type TxStep = EvmTxStep;
|
|
15
|
+
export interface AdapterDepositParams {
|
|
16
|
+
vault: VaultDeployment;
|
|
17
|
+
amount: bigint;
|
|
18
|
+
receiver: Address;
|
|
19
|
+
account: Address;
|
|
20
|
+
async: boolean;
|
|
21
|
+
/** Attribution bytes (GTLT + optional ERC-8021). Passed to adapter for future calldata embedding. */
|
|
22
|
+
asset: TokenInfo;
|
|
23
|
+
publicClient: PublicClient;
|
|
24
|
+
/** Slippage tolerance in basis points (e.g. 100 = 1%). Defaults to 100. */
|
|
25
|
+
slippageBps?: number;
|
|
26
|
+
/** Solver tip passed to async Aera provisioner requests. Defaults to 0. */
|
|
27
|
+
solverTip?: bigint;
|
|
28
|
+
/** Maximum price age passed to async Aera provisioner requests. Defaults to 10 days. */
|
|
29
|
+
maxPriceAge?: bigint;
|
|
30
|
+
aeraRuntime?: AeraRuntimeContracts;
|
|
31
|
+
/** Caller-reviewed minimum output for an explicit synchronous deposit. */
|
|
32
|
+
minUnitsOut?: bigint;
|
|
33
|
+
}
|
|
34
|
+
export type AdapterWithdrawParams = {
|
|
35
|
+
vault: VaultDeployment;
|
|
36
|
+
receiver: Address;
|
|
37
|
+
account: Address;
|
|
38
|
+
async: boolean | undefined;
|
|
39
|
+
asset: TokenInfo;
|
|
40
|
+
publicClient: PublicClient;
|
|
41
|
+
/** Slippage tolerance in basis points (e.g. 100 = 1%). Defaults to 100. */
|
|
42
|
+
slippageBps?: number;
|
|
43
|
+
/** Solver tip passed to async Aera provisioner requests. Defaults to 0. */
|
|
44
|
+
solverTip?: bigint;
|
|
45
|
+
/** Maximum price age passed to async Aera provisioner requests. Defaults to 10 days. */
|
|
46
|
+
maxPriceAge?: bigint;
|
|
47
|
+
aeraRuntime?: AeraRuntimeContracts;
|
|
48
|
+
syncWithdrawQuote?: SyncWithdrawQuoteBounds;
|
|
49
|
+
maxShares?: bigint;
|
|
50
|
+
} & ({
|
|
51
|
+
shares: bigint;
|
|
52
|
+
amount?: never;
|
|
53
|
+
entireAmount?: never;
|
|
54
|
+
} | {
|
|
55
|
+
amount: bigint;
|
|
56
|
+
shares?: never;
|
|
57
|
+
entireAmount?: never;
|
|
58
|
+
} | {
|
|
59
|
+
entireAmount: true;
|
|
60
|
+
shares?: never;
|
|
61
|
+
amount?: never;
|
|
62
|
+
});
|
|
63
|
+
export interface AllowanceParams {
|
|
64
|
+
publicClient: PublicClient;
|
|
65
|
+
token: Address;
|
|
66
|
+
owner: Address;
|
|
67
|
+
spender: Address;
|
|
68
|
+
amount: bigint;
|
|
69
|
+
}
|
|
70
|
+
export interface ApprovalParams {
|
|
71
|
+
token: Address;
|
|
72
|
+
spender: Address;
|
|
73
|
+
amount: bigint;
|
|
74
|
+
account: Address;
|
|
75
|
+
}
|
|
76
|
+
export interface EvmProtocolAdapter {
|
|
77
|
+
buildDeposit(params: AdapterDepositParams): Promise<EvmTxStep[]>;
|
|
78
|
+
buildWithdraw(params: AdapterWithdrawParams): Promise<EvmTxStep[]>;
|
|
79
|
+
checkAllowance(params: AllowanceParams): Promise<{
|
|
80
|
+
sufficient: boolean;
|
|
81
|
+
current: bigint;
|
|
82
|
+
}>;
|
|
83
|
+
buildApproval(params: ApprovalParams): EvmTxStep;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/evm/adapters/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var types_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_exports);
|
|
17
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/evm/adapters/types.ts"],
|
|
4
|
+
"sourcesContent": ["import type { Abi, Address, Hex, PublicClient } from 'viem';\nimport type { AeraRuntimeContracts } from '../aeraContracts';\nimport type { SyncWithdrawQuoteBounds } from '../withdrawQuote';\nimport type { TokenInfo, VaultDeployment } from '../types';\n\nexport interface EvmTxStep<TAbi extends Abi = Abi, TFunctionName extends string = string> {\n type:\n | 'approve'\n | 'deposit'\n | 'requestDeposit'\n | 'redeem'\n | 'requestRedeem'\n | 'setDepositReceiverApproval'\n | 'withdraw';\n address: Address;\n abi: TAbi;\n functionName: TFunctionName;\n args: readonly unknown[];\n account: Address;\n attribution?: Hex;\n}\n\nexport type TxStep = EvmTxStep; // | SolanaTxStep\n\nexport interface AdapterDepositParams {\n vault: VaultDeployment;\n amount: bigint;\n receiver: Address;\n account: Address;\n async: boolean;\n /** Attribution bytes (GTLT + optional ERC-8021). Passed to adapter for future calldata embedding. */\n asset: TokenInfo;\n publicClient: PublicClient;\n /** Slippage tolerance in basis points (e.g. 100 = 1%). Defaults to 100. */\n slippageBps?: number;\n /** Solver tip passed to async Aera provisioner requests. Defaults to 0. */\n solverTip?: bigint;\n /** Maximum price age passed to async Aera provisioner requests. Defaults to 10 days. */\n maxPriceAge?: bigint;\n aeraRuntime?: AeraRuntimeContracts;\n /** Caller-reviewed minimum output for an explicit synchronous deposit. */\n minUnitsOut?: bigint;\n}\n\nexport type AdapterWithdrawParams = {\n vault: VaultDeployment;\n receiver: Address;\n account: Address;\n async: boolean | undefined;\n asset: TokenInfo;\n publicClient: PublicClient;\n /** Slippage tolerance in basis points (e.g. 100 = 1%). Defaults to 100. */\n slippageBps?: number;\n /** Solver tip passed to async Aera provisioner requests. Defaults to 0. */\n solverTip?: bigint;\n /** Maximum price age passed to async Aera provisioner requests. Defaults to 10 days. */\n maxPriceAge?: bigint;\n aeraRuntime?: AeraRuntimeContracts;\n syncWithdrawQuote?: SyncWithdrawQuoteBounds;\n maxShares?: bigint;\n} & (\n | { shares: bigint; amount?: never; entireAmount?: never }\n | { amount: bigint; shares?: never; entireAmount?: never }\n | { entireAmount: true; shares?: never; amount?: never }\n);\n\nexport interface AllowanceParams {\n publicClient: PublicClient;\n token: Address;\n owner: Address;\n spender: Address;\n amount: bigint;\n}\n\nexport interface ApprovalParams {\n token: Address;\n spender: Address;\n amount: bigint;\n account: Address;\n}\n\nexport interface EvmProtocolAdapter {\n buildDeposit(params: AdapterDepositParams): Promise<EvmTxStep[]>;\n buildWithdraw(params: AdapterWithdrawParams): Promise<EvmTxStep[]>;\n checkAllowance(params: AllowanceParams): Promise<{ sufficient: boolean; current: bigint }>;\n buildApproval(params: ApprovalParams): EvmTxStep;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Address, PublicClient } from 'viem';
|
|
2
|
+
import { ContractVersion } from "../types.js";
|
|
3
|
+
declare const ROUNDING_FLOOR = 0;
|
|
4
|
+
declare const ROUNDING_CEIL = 1;
|
|
5
|
+
export interface NormalizedVaultPriceState {
|
|
6
|
+
paused: boolean;
|
|
7
|
+
unitPrice: bigint;
|
|
8
|
+
timestamp: number;
|
|
9
|
+
}
|
|
10
|
+
type AeraPriceReadOptions = {
|
|
11
|
+
blockNumber?: bigint;
|
|
12
|
+
};
|
|
13
|
+
export declare function convertTokenToUnitsIfActive(client: PublicClient, feeCalculator: Address, feeCalculatorVersion: ContractVersion, vault: Address, token: Address, tokenAmount: bigint, rounding: typeof ROUNDING_FLOOR | typeof ROUNDING_CEIL, options?: AeraPriceReadOptions): Promise<bigint>;
|
|
14
|
+
export declare function convertUnitsToTokenIfActive(client: PublicClient, feeCalculator: Address, feeCalculatorVersion: ContractVersion, vault: Address, token: Address, unitsAmount: bigint, rounding: typeof ROUNDING_FLOOR | typeof ROUNDING_CEIL, options?: AeraPriceReadOptions): Promise<bigint>;
|
|
15
|
+
export declare function convertTokenToUnits(client: PublicClient, feeCalculator: Address, feeCalculatorVersion: ContractVersion, vault: Address, token: Address, tokenAmount: bigint, options?: AeraPriceReadOptions): Promise<bigint>;
|
|
16
|
+
export declare function convertUnitsToToken(client: PublicClient, feeCalculator: Address, feeCalculatorVersion: ContractVersion, vault: Address, token: Address, unitsAmount: bigint, options?: AeraPriceReadOptions): Promise<bigint>;
|
|
17
|
+
export declare function convertTokenToNumeraire(client: PublicClient, feeCalculator: Address, feeCalculatorVersion: ContractVersion, vault: Address, token: Address, tokenAmount: bigint, options?: AeraPriceReadOptions): Promise<bigint>;
|
|
18
|
+
export declare function convertNumeraireToToken(client: PublicClient, feeCalculator: Address, feeCalculatorVersion: ContractVersion, vault: Address, token: Address, numeraireAmount: bigint, options?: AeraPriceReadOptions): Promise<bigint>;
|
|
19
|
+
export declare function getAnchorTimestamp(client: PublicClient, feeCalculator: Address, feeCalculatorVersion: ContractVersion, vault: Address, options?: AeraPriceReadOptions): Promise<number>;
|
|
20
|
+
export declare function getVaultState(client: PublicClient, feeCalculator: Address, feeCalculatorVersion: ContractVersion, vault: Address): Promise<readonly [{
|
|
21
|
+
paused: boolean;
|
|
22
|
+
maxPriceAge: number;
|
|
23
|
+
minUpdateIntervalMinutes: number;
|
|
24
|
+
maxPriceToleranceRatio: number;
|
|
25
|
+
minPriceToleranceRatio: number;
|
|
26
|
+
maxUpdateDelayDays: number;
|
|
27
|
+
timestamp: number;
|
|
28
|
+
accrualLag: number;
|
|
29
|
+
unitPrice: bigint;
|
|
30
|
+
highestPrice: bigint;
|
|
31
|
+
lastTotalSupply: bigint;
|
|
32
|
+
} & NormalizedVaultPriceState, {
|
|
33
|
+
fees: {
|
|
34
|
+
tvl: number;
|
|
35
|
+
performance: number;
|
|
36
|
+
};
|
|
37
|
+
accruedFees: bigint;
|
|
38
|
+
accruedProtocolFees: bigint;
|
|
39
|
+
}]>;
|
|
40
|
+
export declare function isVaultPaused(client: PublicClient, feeCalculator: Address, feeCalculatorVersion: ContractVersion, vault: Address): Promise<boolean>;
|
|
41
|
+
export declare const Rounding: {
|
|
42
|
+
readonly Floor: 0;
|
|
43
|
+
readonly Ceil: 1;
|
|
44
|
+
};
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=priceAndFeeCalculator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priceAndFeeCalculator.d.ts","sourceRoot":"","sources":["../../../../src/evm/aeraContracts/priceAndFeeCalculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var priceAndFeeCalculator_exports = {};
|
|
20
|
+
__export(priceAndFeeCalculator_exports, {
|
|
21
|
+
Rounding: () => Rounding,
|
|
22
|
+
convertNumeraireToToken: () => convertNumeraireToToken,
|
|
23
|
+
convertTokenToNumeraire: () => convertTokenToNumeraire,
|
|
24
|
+
convertTokenToUnits: () => convertTokenToUnits,
|
|
25
|
+
convertTokenToUnitsIfActive: () => convertTokenToUnitsIfActive,
|
|
26
|
+
convertUnitsToToken: () => convertUnitsToToken,
|
|
27
|
+
convertUnitsToTokenIfActive: () => convertUnitsToTokenIfActive,
|
|
28
|
+
getAnchorTimestamp: () => getAnchorTimestamp,
|
|
29
|
+
getVaultState: () => getVaultState,
|
|
30
|
+
isVaultPaused: () => isVaultPaused
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(priceAndFeeCalculator_exports);
|
|
33
|
+
var import_errors = require("../../errors");
|
|
34
|
+
var import_priceAndFeeCalculator = require("../abis/priceAndFeeCalculator");
|
|
35
|
+
var import_priceAndFeeCalculatorV2 = require("../abis/priceAndFeeCalculatorV2");
|
|
36
|
+
var import_types = require("../types");
|
|
37
|
+
var import_readOptions = require("./readOptions");
|
|
38
|
+
const ROUNDING_FLOOR = 0;
|
|
39
|
+
const ROUNDING_CEIL = 1;
|
|
40
|
+
function toNumber(value) {
|
|
41
|
+
return typeof value === "bigint" ? Number(value) : value;
|
|
42
|
+
}
|
|
43
|
+
function normalizeVaultPriceState(priceState) {
|
|
44
|
+
if ("unitPrice" in priceState) {
|
|
45
|
+
return {
|
|
46
|
+
...priceState,
|
|
47
|
+
unitPrice: priceState.unitPrice,
|
|
48
|
+
timestamp: toNumber(priceState.timestamp)
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
const anchorTimestamp = toNumber(priceState.anchorTimestamp);
|
|
52
|
+
const driftTimestamp = toNumber(priceState.driftTimestamp);
|
|
53
|
+
const useDriftPrice = driftTimestamp >= anchorTimestamp;
|
|
54
|
+
return {
|
|
55
|
+
...priceState,
|
|
56
|
+
unitPrice: useDriftPrice ? priceState.driftPrice : priceState.anchorPrice,
|
|
57
|
+
timestamp: useDriftPrice ? driftTimestamp : anchorTimestamp
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
async function convertTokenToUnitsIfActive(client, feeCalculator, feeCalculatorVersion, vault, token, tokenAmount, rounding, options = {}) {
|
|
61
|
+
if (feeCalculatorVersion === import_types.ContractVersion.V2) {
|
|
62
|
+
return client.readContract({
|
|
63
|
+
address: feeCalculator,
|
|
64
|
+
abi: import_priceAndFeeCalculatorV2.priceAndFeeCalculatorV2Abi,
|
|
65
|
+
functionName: "convertTokenToUnitsIfActive",
|
|
66
|
+
args: [vault, token, tokenAmount, rounding],
|
|
67
|
+
...(0, import_readOptions.readAtBlock)(options)
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
return client.readContract({
|
|
71
|
+
address: feeCalculator,
|
|
72
|
+
abi: import_priceAndFeeCalculator.priceAndFeeCalculatorAbi,
|
|
73
|
+
functionName: "convertTokenToUnitsIfActive",
|
|
74
|
+
args: [vault, token, tokenAmount, rounding],
|
|
75
|
+
...(0, import_readOptions.readAtBlock)(options)
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
async function convertUnitsToTokenIfActive(client, feeCalculator, feeCalculatorVersion, vault, token, unitsAmount, rounding, options = {}) {
|
|
79
|
+
if (feeCalculatorVersion === import_types.ContractVersion.V2) {
|
|
80
|
+
return client.readContract({
|
|
81
|
+
address: feeCalculator,
|
|
82
|
+
abi: import_priceAndFeeCalculatorV2.priceAndFeeCalculatorV2Abi,
|
|
83
|
+
functionName: "convertUnitsToTokenIfActive",
|
|
84
|
+
args: [vault, token, unitsAmount, rounding],
|
|
85
|
+
...(0, import_readOptions.readAtBlock)(options)
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return client.readContract({
|
|
89
|
+
address: feeCalculator,
|
|
90
|
+
abi: import_priceAndFeeCalculator.priceAndFeeCalculatorAbi,
|
|
91
|
+
functionName: "convertUnitsToTokenIfActive",
|
|
92
|
+
args: [vault, token, unitsAmount, rounding],
|
|
93
|
+
...(0, import_readOptions.readAtBlock)(options)
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
async function convertTokenToUnits(client, feeCalculator, feeCalculatorVersion, vault, token, tokenAmount, options = {}) {
|
|
97
|
+
if (feeCalculatorVersion === import_types.ContractVersion.V2) {
|
|
98
|
+
return client.readContract({
|
|
99
|
+
address: feeCalculator,
|
|
100
|
+
abi: import_priceAndFeeCalculatorV2.priceAndFeeCalculatorV2Abi,
|
|
101
|
+
functionName: "convertTokenToUnits",
|
|
102
|
+
args: [vault, token, tokenAmount],
|
|
103
|
+
...(0, import_readOptions.readAtBlock)(options)
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return client.readContract({
|
|
107
|
+
address: feeCalculator,
|
|
108
|
+
abi: import_priceAndFeeCalculator.priceAndFeeCalculatorAbi,
|
|
109
|
+
functionName: "convertTokenToUnits",
|
|
110
|
+
args: [vault, token, tokenAmount],
|
|
111
|
+
...(0, import_readOptions.readAtBlock)(options)
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
async function convertUnitsToToken(client, feeCalculator, feeCalculatorVersion, vault, token, unitsAmount, options = {}) {
|
|
115
|
+
if (feeCalculatorVersion === import_types.ContractVersion.V2) {
|
|
116
|
+
return client.readContract({
|
|
117
|
+
address: feeCalculator,
|
|
118
|
+
abi: import_priceAndFeeCalculatorV2.priceAndFeeCalculatorV2Abi,
|
|
119
|
+
functionName: "convertUnitsToToken",
|
|
120
|
+
args: [vault, token, unitsAmount],
|
|
121
|
+
...(0, import_readOptions.readAtBlock)(options)
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
return client.readContract({
|
|
125
|
+
address: feeCalculator,
|
|
126
|
+
abi: import_priceAndFeeCalculator.priceAndFeeCalculatorAbi,
|
|
127
|
+
functionName: "convertUnitsToToken",
|
|
128
|
+
args: [vault, token, unitsAmount],
|
|
129
|
+
...(0, import_readOptions.readAtBlock)(options)
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
async function convertTokenToNumeraire(client, feeCalculator, feeCalculatorVersion, vault, token, tokenAmount, options = {}) {
|
|
133
|
+
if (feeCalculatorVersion !== import_types.ContractVersion.V2) {
|
|
134
|
+
throw new import_errors.UnsupportedFeatureError(
|
|
135
|
+
"Aera: numeraire conversion requires V2 price and fee calculator"
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
return client.readContract({
|
|
139
|
+
address: feeCalculator,
|
|
140
|
+
abi: import_priceAndFeeCalculatorV2.priceAndFeeCalculatorV2Abi,
|
|
141
|
+
functionName: "convertTokenToNumeraire",
|
|
142
|
+
args: [vault, token, tokenAmount],
|
|
143
|
+
...(0, import_readOptions.readAtBlock)(options)
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
async function convertNumeraireToToken(client, feeCalculator, feeCalculatorVersion, vault, token, numeraireAmount, options = {}) {
|
|
147
|
+
if (feeCalculatorVersion !== import_types.ContractVersion.V2) {
|
|
148
|
+
throw new import_errors.UnsupportedFeatureError(
|
|
149
|
+
"Aera: numeraire conversion requires V2 price and fee calculator"
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
return client.readContract({
|
|
153
|
+
address: feeCalculator,
|
|
154
|
+
abi: import_priceAndFeeCalculatorV2.priceAndFeeCalculatorV2Abi,
|
|
155
|
+
functionName: "convertNumeraireToToken",
|
|
156
|
+
args: [vault, token, numeraireAmount],
|
|
157
|
+
...(0, import_readOptions.readAtBlock)(options)
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
async function getAnchorTimestamp(client, feeCalculator, feeCalculatorVersion, vault, options = {}) {
|
|
161
|
+
if (feeCalculatorVersion !== import_types.ContractVersion.V2) {
|
|
162
|
+
throw new import_errors.UnsupportedFeatureError("Aera: sync redeem requires V2 price and fee calculator");
|
|
163
|
+
}
|
|
164
|
+
return client.readContract({
|
|
165
|
+
address: feeCalculator,
|
|
166
|
+
abi: import_priceAndFeeCalculatorV2.priceAndFeeCalculatorV2Abi,
|
|
167
|
+
functionName: "getAnchorTimestamp",
|
|
168
|
+
args: [vault],
|
|
169
|
+
...(0, import_readOptions.readAtBlock)(options)
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
async function getVaultState(client, feeCalculator, feeCalculatorVersion, vault) {
|
|
173
|
+
if (feeCalculatorVersion === import_types.ContractVersion.V2) {
|
|
174
|
+
const [priceState2, accruals2] = await client.readContract({
|
|
175
|
+
address: feeCalculator,
|
|
176
|
+
abi: import_priceAndFeeCalculatorV2.priceAndFeeCalculatorV2Abi,
|
|
177
|
+
functionName: "getVaultState",
|
|
178
|
+
args: [vault]
|
|
179
|
+
});
|
|
180
|
+
return [normalizeVaultPriceState(priceState2), accruals2];
|
|
181
|
+
}
|
|
182
|
+
const [priceState, accruals] = await client.readContract({
|
|
183
|
+
address: feeCalculator,
|
|
184
|
+
abi: import_priceAndFeeCalculator.priceAndFeeCalculatorAbi,
|
|
185
|
+
functionName: "getVaultState",
|
|
186
|
+
args: [vault]
|
|
187
|
+
});
|
|
188
|
+
return [normalizeVaultPriceState(priceState), accruals];
|
|
189
|
+
}
|
|
190
|
+
async function isVaultPaused(client, feeCalculator, feeCalculatorVersion, vault) {
|
|
191
|
+
if (feeCalculatorVersion === import_types.ContractVersion.V2) {
|
|
192
|
+
return client.readContract({
|
|
193
|
+
address: feeCalculator,
|
|
194
|
+
abi: import_priceAndFeeCalculatorV2.priceAndFeeCalculatorV2Abi,
|
|
195
|
+
functionName: "isVaultPaused",
|
|
196
|
+
args: [vault]
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
return client.readContract({
|
|
200
|
+
address: feeCalculator,
|
|
201
|
+
abi: import_priceAndFeeCalculator.priceAndFeeCalculatorAbi,
|
|
202
|
+
functionName: "isVaultPaused",
|
|
203
|
+
args: [vault]
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
const Rounding = {
|
|
207
|
+
Floor: ROUNDING_FLOOR,
|
|
208
|
+
Ceil: ROUNDING_CEIL
|
|
209
|
+
};
|
|
210
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
211
|
+
0 && (module.exports = {
|
|
212
|
+
Rounding,
|
|
213
|
+
convertNumeraireToToken,
|
|
214
|
+
convertTokenToNumeraire,
|
|
215
|
+
convertTokenToUnits,
|
|
216
|
+
convertTokenToUnitsIfActive,
|
|
217
|
+
convertUnitsToToken,
|
|
218
|
+
convertUnitsToTokenIfActive,
|
|
219
|
+
getAnchorTimestamp,
|
|
220
|
+
getVaultState,
|
|
221
|
+
isVaultPaused
|
|
222
|
+
});
|
|
223
|
+
//# sourceMappingURL=priceAndFeeCalculator.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/evm/aeraContracts/priceAndFeeCalculator.ts"],
|
|
4
|
+
"sourcesContent": ["import type { Address, PublicClient } from 'viem';\nimport { UnsupportedFeatureError } from '../../errors';\nimport { priceAndFeeCalculatorAbi } from '../abis/priceAndFeeCalculator';\nimport { priceAndFeeCalculatorV2Abi } from '../abis/priceAndFeeCalculatorV2';\nimport { ContractVersion } from '../types';\nimport { readAtBlock } from './readOptions';\n\nconst ROUNDING_FLOOR = 0;\nconst ROUNDING_CEIL = 1;\n\nexport interface NormalizedVaultPriceState {\n paused: boolean;\n unitPrice: bigint;\n timestamp: number;\n}\n\ntype AeraPriceReadOptions = {\n blockNumber?: bigint;\n};\n\nfunction toNumber(value: bigint | number): number {\n return typeof value === 'bigint' ? Number(value) : value;\n}\n\nfunction normalizeVaultPriceState<\n TState extends { paused: boolean } & (\n | { unitPrice: bigint; timestamp: bigint | number }\n | {\n anchorPrice: bigint;\n driftPrice: bigint;\n anchorTimestamp: bigint | number;\n driftTimestamp: bigint | number;\n }\n ),\n>(priceState: TState): TState & NormalizedVaultPriceState {\n if ('unitPrice' in priceState) {\n return {\n ...priceState,\n unitPrice: priceState.unitPrice,\n timestamp: toNumber(priceState.timestamp),\n } as TState & NormalizedVaultPriceState;\n }\n\n const anchorTimestamp = toNumber(priceState.anchorTimestamp);\n const driftTimestamp = toNumber(priceState.driftTimestamp);\n const useDriftPrice = driftTimestamp >= anchorTimestamp;\n\n return {\n ...priceState,\n unitPrice: useDriftPrice ? priceState.driftPrice : priceState.anchorPrice,\n timestamp: useDriftPrice ? driftTimestamp : anchorTimestamp,\n } as TState & NormalizedVaultPriceState;\n}\n\nexport async function convertTokenToUnitsIfActive(\n client: PublicClient,\n feeCalculator: Address,\n feeCalculatorVersion: ContractVersion,\n vault: Address,\n token: Address,\n tokenAmount: bigint,\n rounding: typeof ROUNDING_FLOOR | typeof ROUNDING_CEIL,\n options: AeraPriceReadOptions = {}\n): Promise<bigint> {\n if (feeCalculatorVersion === ContractVersion.V2) {\n return client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorV2Abi,\n functionName: 'convertTokenToUnitsIfActive',\n args: [vault, token, tokenAmount, rounding],\n ...readAtBlock(options),\n });\n }\n\n return client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorAbi,\n functionName: 'convertTokenToUnitsIfActive',\n args: [vault, token, tokenAmount, rounding],\n ...readAtBlock(options),\n });\n}\n\nexport async function convertUnitsToTokenIfActive(\n client: PublicClient,\n feeCalculator: Address,\n feeCalculatorVersion: ContractVersion,\n vault: Address,\n token: Address,\n unitsAmount: bigint,\n rounding: typeof ROUNDING_FLOOR | typeof ROUNDING_CEIL,\n options: AeraPriceReadOptions = {}\n): Promise<bigint> {\n if (feeCalculatorVersion === ContractVersion.V2) {\n return client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorV2Abi,\n functionName: 'convertUnitsToTokenIfActive',\n args: [vault, token, unitsAmount, rounding],\n ...readAtBlock(options),\n });\n }\n\n return client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorAbi,\n functionName: 'convertUnitsToTokenIfActive',\n args: [vault, token, unitsAmount, rounding],\n ...readAtBlock(options),\n });\n}\n\nexport async function convertTokenToUnits(\n client: PublicClient,\n feeCalculator: Address,\n feeCalculatorVersion: ContractVersion,\n vault: Address,\n token: Address,\n tokenAmount: bigint,\n options: AeraPriceReadOptions = {}\n): Promise<bigint> {\n if (feeCalculatorVersion === ContractVersion.V2) {\n return client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorV2Abi,\n functionName: 'convertTokenToUnits',\n args: [vault, token, tokenAmount],\n ...readAtBlock(options),\n });\n }\n\n return client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorAbi,\n functionName: 'convertTokenToUnits',\n args: [vault, token, tokenAmount],\n ...readAtBlock(options),\n });\n}\n\nexport async function convertUnitsToToken(\n client: PublicClient,\n feeCalculator: Address,\n feeCalculatorVersion: ContractVersion,\n vault: Address,\n token: Address,\n unitsAmount: bigint,\n options: AeraPriceReadOptions = {}\n): Promise<bigint> {\n if (feeCalculatorVersion === ContractVersion.V2) {\n return client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorV2Abi,\n functionName: 'convertUnitsToToken',\n args: [vault, token, unitsAmount],\n ...readAtBlock(options),\n });\n }\n\n return client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorAbi,\n functionName: 'convertUnitsToToken',\n args: [vault, token, unitsAmount],\n ...readAtBlock(options),\n });\n}\n\nexport async function convertTokenToNumeraire(\n client: PublicClient,\n feeCalculator: Address,\n feeCalculatorVersion: ContractVersion,\n vault: Address,\n token: Address,\n tokenAmount: bigint,\n options: AeraPriceReadOptions = {}\n): Promise<bigint> {\n if (feeCalculatorVersion !== ContractVersion.V2) {\n throw new UnsupportedFeatureError(\n 'Aera: numeraire conversion requires V2 price and fee calculator'\n );\n }\n\n return client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorV2Abi,\n functionName: 'convertTokenToNumeraire',\n args: [vault, token, tokenAmount],\n ...readAtBlock(options),\n });\n}\n\nexport async function convertNumeraireToToken(\n client: PublicClient,\n feeCalculator: Address,\n feeCalculatorVersion: ContractVersion,\n vault: Address,\n token: Address,\n numeraireAmount: bigint,\n options: AeraPriceReadOptions = {}\n): Promise<bigint> {\n if (feeCalculatorVersion !== ContractVersion.V2) {\n throw new UnsupportedFeatureError(\n 'Aera: numeraire conversion requires V2 price and fee calculator'\n );\n }\n\n return client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorV2Abi,\n functionName: 'convertNumeraireToToken',\n args: [vault, token, numeraireAmount],\n ...readAtBlock(options),\n });\n}\n\nexport async function getAnchorTimestamp(\n client: PublicClient,\n feeCalculator: Address,\n feeCalculatorVersion: ContractVersion,\n vault: Address,\n options: AeraPriceReadOptions = {}\n): Promise<number> {\n if (feeCalculatorVersion !== ContractVersion.V2) {\n throw new UnsupportedFeatureError('Aera: sync redeem requires V2 price and fee calculator');\n }\n\n return client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorV2Abi,\n functionName: 'getAnchorTimestamp',\n args: [vault],\n ...readAtBlock(options),\n });\n}\n\nexport async function getVaultState(\n client: PublicClient,\n feeCalculator: Address,\n feeCalculatorVersion: ContractVersion,\n vault: Address\n) {\n if (feeCalculatorVersion === ContractVersion.V2) {\n const [priceState, accruals] = await client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorV2Abi,\n functionName: 'getVaultState',\n args: [vault],\n });\n\n return [normalizeVaultPriceState(priceState), accruals] as const;\n }\n\n const [priceState, accruals] = await client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorAbi,\n functionName: 'getVaultState',\n args: [vault],\n });\n\n return [normalizeVaultPriceState(priceState), accruals] as const;\n}\n\nexport async function isVaultPaused(\n client: PublicClient,\n feeCalculator: Address,\n feeCalculatorVersion: ContractVersion,\n vault: Address\n): Promise<boolean> {\n if (feeCalculatorVersion === ContractVersion.V2) {\n return client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorV2Abi,\n functionName: 'isVaultPaused',\n args: [vault],\n });\n }\n\n return client.readContract({\n address: feeCalculator,\n abi: priceAndFeeCalculatorAbi,\n functionName: 'isVaultPaused',\n args: [vault],\n });\n}\n\nexport const Rounding = {\n Floor: ROUNDING_FLOOR,\n Ceil: ROUNDING_CEIL,\n} as const;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["priceState", "accruals"]
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readOptions.d.ts","sourceRoot":"","sources":["../../../../src/evm/aeraContracts/readOptions.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO;;;;EAEjE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var readOptions_exports = {};
|
|
20
|
+
__export(readOptions_exports, {
|
|
21
|
+
readAtBlock: () => readAtBlock
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(readOptions_exports);
|
|
24
|
+
function readAtBlock(options = {}) {
|
|
25
|
+
return options.blockNumber === void 0 ? {} : { blockNumber: options.blockNumber };
|
|
26
|
+
}
|
|
27
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
28
|
+
0 && (module.exports = {
|
|
29
|
+
readAtBlock
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=readOptions.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/evm/aeraContracts/readOptions.ts"],
|
|
4
|
+
"sourcesContent": ["export function readAtBlock(options: { blockNumber?: bigint } = {}) {\n return options.blockNumber === undefined ? {} : { blockNumber: options.blockNumber };\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,YAAY,UAAoC,CAAC,GAAG;AAClE,SAAO,QAAQ,gBAAgB,SAAY,CAAC,IAAI,EAAE,aAAa,QAAQ,YAAY;AACrF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|