@pufferfinance/puffer-sdk 1.28.1 → 1.28.3
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/dist/api/puffer-client-helpers.cjs +1 -1
- package/dist/api/puffer-client-helpers.cjs.map +1 -1
- package/dist/api/puffer-client-helpers.js +7 -7
- package/dist/api/puffer-client-helpers.js.map +1 -1
- package/dist/api/puffer-client.cjs +1 -1
- package/dist/api/puffer-client.cjs.map +1 -1
- package/dist/api/puffer-client.js +119 -122
- package/dist/api/puffer-client.js.map +1 -1
- package/dist/ccip-78YM988s.js +150 -0
- package/dist/{ccip-C76-YhQK.js.map → ccip-78YM988s.js.map} +1 -1
- package/dist/ccip-LIGR3N1A.cjs +2 -0
- package/dist/{ccip-CEodLZ4s.cjs.map → ccip-LIGR3N1A.cjs.map} +1 -1
- package/dist/chains/constants.cjs +1 -1
- package/dist/chains/constants.js +1 -1
- package/dist/constants-6kuRTsbU.cjs +9 -0
- package/dist/{constants-CxSgz27h.cjs.map → constants-6kuRTsbU.cjs.map} +1 -1
- package/dist/{constants-C9YZ6Ewc.js → constants-CuIEh_ZS.js} +605 -656
- package/dist/{constants-C9YZ6Ewc.js.map → constants-CuIEh_ZS.js.map} +1 -1
- package/dist/contracts/abis/mainnet/Accountant.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/Accountant.js.map +1 -1
- package/dist/contracts/abis/mainnet/AtomicQueue.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/AtomicQueue.js.map +1 -1
- package/dist/contracts/abis/mainnet/BoringVault.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/BoringVault.js.map +1 -1
- package/dist/contracts/abis/mainnet/CarrotStaker.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/CarrotStaker.js.map +1 -1
- package/dist/contracts/abis/mainnet/CarrotVesting.cjs +1 -1
- package/dist/contracts/abis/mainnet/CarrotVesting.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/CarrotVesting.d.ts +84 -92
- package/dist/contracts/abis/mainnet/CarrotVesting.js +56 -62
- package/dist/contracts/abis/mainnet/CarrotVesting.js.map +1 -1
- package/dist/contracts/abis/mainnet/ConcreteMultiStrategyVault.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/ConcreteMultiStrategyVault.js.map +1 -1
- package/dist/contracts/abis/mainnet/Distributor.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/Distributor.js.map +1 -1
- package/dist/contracts/abis/mainnet/ERC20Permit.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/ERC20Permit.js.map +1 -1
- package/dist/contracts/abis/mainnet/GaugeRegistry.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/GaugeRegistry.js.map +1 -1
- package/dist/contracts/abis/mainnet/GuardianModule.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/GuardianModule.js.map +1 -1
- package/dist/contracts/abis/mainnet/InstitutionalAccessManager.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/InstitutionalAccessManager.js.map +1 -1
- package/dist/contracts/abis/mainnet/InstitutionalVault.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/InstitutionalVault.js.map +1 -1
- package/dist/contracts/abis/mainnet/L1RewardManager.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/L1RewardManager.js.map +1 -1
- package/dist/contracts/abis/mainnet/L2RewardManager.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/L2RewardManager.js.map +1 -1
- package/dist/contracts/abis/mainnet/LagoonVault.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/LagoonVault.js.map +1 -1
- package/dist/contracts/abis/mainnet/PufLocker.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/PufLocker.js.map +1 -1
- package/dist/contracts/abis/mainnet/PufferDepositor.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/PufferDepositor.js.map +1 -1
- package/dist/contracts/abis/mainnet/PufferL2Depositor.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/PufferL2Depositor.js.map +1 -1
- package/dist/contracts/abis/mainnet/PufferOracleV2.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/PufferOracleV2.js.map +1 -1
- package/dist/contracts/abis/mainnet/PufferProtocol.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/PufferProtocol.js.map +1 -1
- package/dist/contracts/abis/mainnet/PufferVaultV5.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/PufferVaultV5.js.map +1 -1
- package/dist/contracts/abis/mainnet/PufferWithdrawalManager.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/PufferWithdrawalManager.js.map +1 -1
- package/dist/contracts/abis/mainnet/Teller.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/Teller.js.map +1 -1
- package/dist/contracts/abis/mainnet/ValidatorTicket.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/ValidatorTicket.js.map +1 -1
- package/dist/contracts/abis/mainnet/mtwCARROT.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/mtwCARROT.js.map +1 -1
- package/dist/contracts/abis/mainnet/vlPUFFER.cjs.map +1 -1
- package/dist/contracts/abis/mainnet/vlPUFFER.js.map +1 -1
- package/dist/contracts/addresses.cjs +1 -1
- package/dist/contracts/addresses.cjs.map +1 -1
- package/dist/contracts/addresses.js +5 -5
- package/dist/contracts/addresses.js.map +1 -1
- package/dist/contracts/handlers/carrot-staking-handler.cjs +1 -1
- package/dist/contracts/handlers/carrot-staking-handler.cjs.map +1 -1
- package/dist/contracts/handlers/carrot-staking-handler.d.ts +96 -6599
- package/dist/contracts/handlers/carrot-staking-handler.js +13 -16
- package/dist/contracts/handlers/carrot-staking-handler.js.map +1 -1
- package/dist/contracts/handlers/carrot-vesting-handler.cjs +1 -1
- package/dist/contracts/handlers/carrot-vesting-handler.cjs.map +1 -1
- package/dist/contracts/handlers/carrot-vesting-handler.d.ts +102 -6605
- package/dist/contracts/handlers/carrot-vesting-handler.js +25 -39
- package/dist/contracts/handlers/carrot-vesting-handler.js.map +1 -1
- package/dist/contracts/handlers/concrete-vault-handler.cjs +1 -1
- package/dist/contracts/handlers/concrete-vault-handler.cjs.map +1 -1
- package/dist/contracts/handlers/concrete-vault-handler.d.ts +96 -6599
- package/dist/contracts/handlers/concrete-vault-handler.js +15 -18
- package/dist/contracts/handlers/concrete-vault-handler.js.map +1 -1
- package/dist/contracts/handlers/distributor-handler.cjs +1 -1
- package/dist/contracts/handlers/distributor-handler.cjs.map +1 -1
- package/dist/contracts/handlers/distributor-handler.d.ts +96 -6599
- package/dist/contracts/handlers/distributor-handler.js +15 -18
- package/dist/contracts/handlers/distributor-handler.js.map +1 -1
- package/dist/contracts/handlers/erc20-permit-handler.cjs +1 -1
- package/dist/contracts/handlers/erc20-permit-handler.cjs.map +1 -1
- package/dist/contracts/handlers/erc20-permit-handler.d.ts +96 -6599
- package/dist/contracts/handlers/erc20-permit-handler.js +34 -38
- package/dist/contracts/handlers/erc20-permit-handler.js.map +1 -1
- package/dist/contracts/handlers/gauge-registry-handler.cjs +1 -1
- package/dist/contracts/handlers/gauge-registry-handler.cjs.map +1 -1
- package/dist/contracts/handlers/gauge-registry-handler.d.ts +96 -6599
- package/dist/contracts/handlers/gauge-registry-handler.js +11 -14
- package/dist/contracts/handlers/gauge-registry-handler.js.map +1 -1
- package/dist/contracts/handlers/guardian-module-handler.cjs +1 -1
- package/dist/contracts/handlers/guardian-module-handler.cjs.map +1 -1
- package/dist/contracts/handlers/guardian-module-handler.d.ts +96 -6599
- package/dist/contracts/handlers/guardian-module-handler.js +11 -14
- package/dist/contracts/handlers/guardian-module-handler.js.map +1 -1
- package/dist/contracts/handlers/institutional-access-manager-handler.cjs +1 -1
- package/dist/contracts/handlers/institutional-access-manager-handler.cjs.map +1 -1
- package/dist/contracts/handlers/institutional-access-manager-handler.d.ts +96 -6599
- package/dist/contracts/handlers/institutional-access-manager-handler.js +45 -50
- package/dist/contracts/handlers/institutional-access-manager-handler.js.map +1 -1
- package/dist/contracts/handlers/institutional-vault-handler.cjs +1 -1
- package/dist/contracts/handlers/institutional-vault-handler.cjs.map +1 -1
- package/dist/contracts/handlers/institutional-vault-handler.d.ts +96 -6599
- package/dist/contracts/handlers/institutional-vault-handler.js +16 -19
- package/dist/contracts/handlers/institutional-vault-handler.js.map +1 -1
- package/dist/contracts/handlers/l1-reward-manager-handler.cjs +1 -1
- package/dist/contracts/handlers/l1-reward-manager-handler.cjs.map +1 -1
- package/dist/contracts/handlers/l1-reward-manager-handler.d.ts +96 -6599
- package/dist/contracts/handlers/l1-reward-manager-handler.js +14 -17
- package/dist/contracts/handlers/l1-reward-manager-handler.js.map +1 -1
- package/dist/contracts/handlers/l2-reward-manager-handler.cjs +1 -1
- package/dist/contracts/handlers/l2-reward-manager-handler.cjs.map +1 -1
- package/dist/contracts/handlers/l2-reward-manager-handler.d.ts +96 -6599
- package/dist/contracts/handlers/l2-reward-manager-handler.js +13 -16
- package/dist/contracts/handlers/l2-reward-manager-handler.js.map +1 -1
- package/dist/contracts/handlers/lagoon-vault-handler.cjs +1 -1
- package/dist/contracts/handlers/lagoon-vault-handler.cjs.map +1 -1
- package/dist/contracts/handlers/lagoon-vault-handler.d.ts +96 -6599
- package/dist/contracts/handlers/lagoon-vault-handler.js +11 -14
- package/dist/contracts/handlers/lagoon-vault-handler.js.map +1 -1
- package/dist/contracts/handlers/mtw-carrot-handler.cjs +1 -1
- package/dist/contracts/handlers/mtw-carrot-handler.cjs.map +1 -1
- package/dist/contracts/handlers/mtw-carrot-handler.d.ts +96 -6599
- package/dist/contracts/handlers/mtw-carrot-handler.js +12 -15
- package/dist/contracts/handlers/mtw-carrot-handler.js.map +1 -1
- package/dist/contracts/handlers/nucleus-accountant-handler.cjs +1 -1
- package/dist/contracts/handlers/nucleus-accountant-handler.cjs.map +1 -1
- package/dist/contracts/handlers/nucleus-accountant-handler.d.ts +96 -6599
- package/dist/contracts/handlers/nucleus-accountant-handler.js +13 -16
- package/dist/contracts/handlers/nucleus-accountant-handler.js.map +1 -1
- package/dist/contracts/handlers/nucleus-atomic-queue-handler.cjs +1 -1
- package/dist/contracts/handlers/nucleus-atomic-queue-handler.cjs.map +1 -1
- package/dist/contracts/handlers/nucleus-atomic-queue-handler.d.ts +96 -6599
- package/dist/contracts/handlers/nucleus-atomic-queue-handler.js +14 -17
- package/dist/contracts/handlers/nucleus-atomic-queue-handler.js.map +1 -1
- package/dist/contracts/handlers/nucleus-boring-vault-handler.cjs +1 -1
- package/dist/contracts/handlers/nucleus-boring-vault-handler.cjs.map +1 -1
- package/dist/contracts/handlers/nucleus-boring-vault-handler.d.ts +96 -6599
- package/dist/contracts/handlers/nucleus-boring-vault-handler.js +18 -21
- package/dist/contracts/handlers/nucleus-boring-vault-handler.js.map +1 -1
- package/dist/contracts/handlers/nucleus-teller-handler.cjs +1 -1
- package/dist/contracts/handlers/nucleus-teller-handler.cjs.map +1 -1
- package/dist/contracts/handlers/nucleus-teller-handler.d.ts +96 -6599
- package/dist/contracts/handlers/nucleus-teller-handler.js +35 -38
- package/dist/contracts/handlers/nucleus-teller-handler.js.map +1 -1
- package/dist/contracts/handlers/puf-locker-handler.cjs +1 -1
- package/dist/contracts/handlers/puf-locker-handler.cjs.map +1 -1
- package/dist/contracts/handlers/puf-locker-handler.d.ts +96 -6599
- package/dist/contracts/handlers/puf-locker-handler.js +51 -54
- package/dist/contracts/handlers/puf-locker-handler.js.map +1 -1
- package/dist/contracts/handlers/puffer-depositor-handler.cjs +1 -1
- package/dist/contracts/handlers/puffer-depositor-handler.cjs.map +1 -1
- package/dist/contracts/handlers/puffer-depositor-handler.d.ts +96 -6599
- package/dist/contracts/handlers/puffer-depositor-handler.js +28 -31
- package/dist/contracts/handlers/puffer-depositor-handler.js.map +1 -1
- package/dist/contracts/handlers/puffer-l2-depositor-handler.cjs +1 -1
- package/dist/contracts/handlers/puffer-l2-depositor-handler.cjs.map +1 -1
- package/dist/contracts/handlers/puffer-l2-depositor-handler.d.ts +96 -6599
- package/dist/contracts/handlers/puffer-l2-depositor-handler.js +42 -45
- package/dist/contracts/handlers/puffer-l2-depositor-handler.js.map +1 -1
- package/dist/contracts/handlers/puffer-oracle-v2-handler.cjs +1 -1
- package/dist/contracts/handlers/puffer-oracle-v2-handler.cjs.map +1 -1
- package/dist/contracts/handlers/puffer-oracle-v2-handler.d.ts +96 -6599
- package/dist/contracts/handlers/puffer-oracle-v2-handler.js +13 -16
- package/dist/contracts/handlers/puffer-oracle-v2-handler.js.map +1 -1
- package/dist/contracts/handlers/puffer-protocol-handler.cjs +1 -1
- package/dist/contracts/handlers/puffer-protocol-handler.cjs.map +1 -1
- package/dist/contracts/handlers/puffer-protocol-handler.d.ts +96 -6599
- package/dist/contracts/handlers/puffer-protocol-handler.js +12 -15
- package/dist/contracts/handlers/puffer-protocol-handler.js.map +1 -1
- package/dist/contracts/handlers/puffer-vault-handler.cjs +1 -1
- package/dist/contracts/handlers/puffer-vault-handler.cjs.map +1 -1
- package/dist/contracts/handlers/puffer-vault-handler.d.ts +96 -6599
- package/dist/contracts/handlers/puffer-vault-handler.js +12 -15
- package/dist/contracts/handlers/puffer-vault-handler.js.map +1 -1
- package/dist/contracts/handlers/puffer-withdrawal-manager-handler.cjs +1 -1
- package/dist/contracts/handlers/puffer-withdrawal-manager-handler.cjs.map +1 -1
- package/dist/contracts/handlers/puffer-withdrawal-manager-handler.d.ts +96 -6599
- package/dist/contracts/handlers/puffer-withdrawal-manager-handler.js +15 -18
- package/dist/contracts/handlers/puffer-withdrawal-manager-handler.js.map +1 -1
- package/dist/contracts/handlers/validator-ticket-handler.cjs +1 -1
- package/dist/contracts/handlers/validator-ticket-handler.cjs.map +1 -1
- package/dist/contracts/handlers/validator-ticket-handler.d.ts +96 -6599
- package/dist/contracts/handlers/validator-ticket-handler.js +12 -15
- package/dist/contracts/handlers/validator-ticket-handler.js.map +1 -1
- package/dist/contracts/handlers/vl-puffer-handler.cjs +1 -1
- package/dist/contracts/handlers/vl-puffer-handler.cjs.map +1 -1
- package/dist/contracts/handlers/vl-puffer-handler.d.ts +96 -6599
- package/dist/contracts/handlers/vl-puffer-handler.js +19 -22
- package/dist/contracts/handlers/vl-puffer-handler.js.map +1 -1
- package/dist/contracts/tokens.cjs +1 -1
- package/dist/contracts/tokens.cjs.map +1 -1
- package/dist/contracts/tokens.js +1 -1
- package/dist/contracts/tokens.js.map +1 -1
- package/dist/contracts/vaults-addresses.cjs +1 -1
- package/dist/contracts/vaults-addresses.cjs.map +1 -1
- package/dist/contracts/vaults-addresses.js +1 -1
- package/dist/contracts/vaults-addresses.js.map +1 -1
- package/dist/errors/base-error.cjs.map +1 -1
- package/dist/errors/base-error.js.map +1 -1
- package/dist/{getContract-DUA3M2pm.cjs → getContract-D4_SEfqa.cjs} +2 -2
- package/dist/{getContract-DUA3M2pm.cjs.map → getContract-D4_SEfqa.cjs.map} +1 -1
- package/dist/{getContract-DEPNMZxg.js → getContract-DQN7VDBo.js} +2 -2
- package/dist/{getContract-DEPNMZxg.js.map → getContract-DQN7VDBo.js.map} +1 -1
- package/dist/http-CajzXkt4.js +4005 -0
- package/dist/http-CajzXkt4.js.map +1 -0
- package/dist/http-qhIDc8Dn.cjs +5 -0
- package/dist/http-qhIDc8Dn.cjs.map +1 -0
- package/dist/{localBatchGatewayRequest-CKLnLqib.cjs → localBatchGatewayRequest-C7zYTS2c.cjs} +2 -2
- package/dist/{localBatchGatewayRequest-CKLnLqib.cjs.map → localBatchGatewayRequest-C7zYTS2c.cjs.map} +1 -1
- package/dist/{localBatchGatewayRequest-C0QtijkB.js → localBatchGatewayRequest-DtOvBmA9.js} +3 -3
- package/dist/{localBatchGatewayRequest-C0QtijkB.js.map → localBatchGatewayRequest-DtOvBmA9.js.map} +1 -1
- package/dist/main.cjs +1 -1
- package/dist/main.js +1 -1
- package/dist/secp256k1-CMP_u7qb.cjs +2 -0
- package/dist/secp256k1-CMP_u7qb.cjs.map +1 -0
- package/dist/secp256k1-DCMgMsfV.js +1297 -0
- package/dist/secp256k1-DCMgMsfV.js.map +1 -0
- package/dist/utils/time.cjs.map +1 -1
- package/dist/utils/time.js.map +1 -1
- package/dist/utils/version.cjs +1 -1
- package/dist/utils/version.js +1 -1
- package/dist/writeContract-BnmmOPwy.cjs +36 -0
- package/dist/writeContract-BnmmOPwy.cjs.map +1 -0
- package/dist/{writeContract-DkC9wV5p.js → writeContract-DYAfDrRz.js} +1788 -1712
- package/dist/writeContract-DYAfDrRz.js.map +1 -0
- package/package.json +8 -8
- package/dist/ccip-C76-YhQK.js +0 -152
- package/dist/ccip-CEodLZ4s.cjs +0 -2
- package/dist/constants-CxSgz27h.cjs +0 -9
- package/dist/createWalletClient-Cct6ojqI.cjs +0 -5
- package/dist/createWalletClient-Cct6ojqI.cjs.map +0 -1
- package/dist/createWalletClient-DAuQCrLq.js +0 -3262
- package/dist/createWalletClient-DAuQCrLq.js.map +0 -1
- package/dist/secp256k1-ClOw2ksU.js +0 -1291
- package/dist/secp256k1-ClOw2ksU.js.map +0 -1
- package/dist/secp256k1-YUzyTLhP.cjs +0 -2
- package/dist/secp256k1-YUzyTLhP.cjs.map +0 -1
- package/dist/writeContract-BfAYISeL.cjs +0 -36
- package/dist/writeContract-BfAYISeL.cjs.map +0 -1
- package/dist/writeContract-DkC9wV5p.js.map +0 -1
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
import { PufferProtocol as h } from "../abis/mainnet/PufferProtocol.js";
|
|
7
|
-
import { g as d } from "../../getContract-DEPNMZxg.js";
|
|
8
|
-
class f {
|
|
1
|
+
import { V as a } from "../../constants-CuIEh_ZS.js";
|
|
2
|
+
import { CONTRACT_ADDRESSES as n } from "../addresses.js";
|
|
3
|
+
import { PufferProtocol as o } from "../abis/mainnet/PufferProtocol.js";
|
|
4
|
+
import { g as c } from "../../getContract-DQN7VDBo.js";
|
|
5
|
+
class g {
|
|
9
6
|
/**
|
|
10
7
|
* Create the handler for the `PufferProtocol` contract exposing
|
|
11
8
|
* methods to interact with the contract.
|
|
@@ -17,17 +14,17 @@ class f {
|
|
|
17
14
|
* interactions.
|
|
18
15
|
*/
|
|
19
16
|
constructor(t, e, i) {
|
|
20
|
-
|
|
21
|
-
this.chain = t, this.walletClient = e, this.publicClient = i, this.viemChain = s[t];
|
|
17
|
+
this.chain = t, this.walletClient = e, this.publicClient = i, this.viemChain = a[t];
|
|
22
18
|
}
|
|
19
|
+
viemChain;
|
|
23
20
|
/**
|
|
24
21
|
* Get the contract.
|
|
25
22
|
*
|
|
26
23
|
* @returns The viem contract.
|
|
27
24
|
*/
|
|
28
25
|
getContract() {
|
|
29
|
-
const t =
|
|
30
|
-
return
|
|
26
|
+
const t = n[this.chain].PufferProtocol, e = o, i = { public: this.publicClient, wallet: this.walletClient };
|
|
27
|
+
return c({ address: t, abi: e, client: i });
|
|
31
28
|
}
|
|
32
29
|
/**
|
|
33
30
|
* Get the minimum VT amount required.
|
|
@@ -164,9 +161,9 @@ class f {
|
|
|
164
161
|
* @param vtPermit The VT permit data.
|
|
165
162
|
* @returns The transaction.
|
|
166
163
|
*/
|
|
167
|
-
registerValidatorKey(t, e, i,
|
|
164
|
+
registerValidatorKey(t, e, i, r) {
|
|
168
165
|
return this.getContract().write.registerValidatorKey(
|
|
169
|
-
[t, e, i,
|
|
166
|
+
[t, e, i, r],
|
|
170
167
|
{
|
|
171
168
|
account: this.walletClient.account,
|
|
172
169
|
chain: this.viemChain
|
|
@@ -253,6 +250,6 @@ class f {
|
|
|
253
250
|
}
|
|
254
251
|
}
|
|
255
252
|
export {
|
|
256
|
-
|
|
253
|
+
g as PufferProtocolHandler
|
|
257
254
|
};
|
|
258
255
|
//# sourceMappingURL=puffer-protocol-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puffer-protocol-handler.js","sources":["../../../lib/contracts/handlers/puffer-protocol-handler.ts"],"sourcesContent":["import {\n WalletClient,\n PublicClient,\n getContract,\n Address,\n GetContractReturnType,\n Account,\n Hex,\n} from 'viem';\nimport { Chain, VIEM_CHAINS, ViemChain } from '../../chains/constants';\nimport { CONTRACT_ADDRESSES } from '../addresses';\nimport { PufferProtocol } from '../abis/mainnet/PufferProtocol';\nimport { PermitData } from '../common/lib/types';\n\nexport type ValidatorKeyData = {\n blsPubKey: `0x${string}`;\n signature: `0x${string}`;\n depositDataRoot: `0x${string}`;\n blsEncryptedPrivKeyShares: `0x${string}`[];\n blsPubKeySet: `0x${string}`;\n raveEvidence: `0x${string}`;\n};\n\nexport type StoppedValidatorInfo = {\n module: Address;\n startEpoch: bigint;\n endEpoch: bigint;\n wasSlashed: boolean;\n moduleName: `0x${string}`;\n pufferModuleIndex: bigint;\n withdrawalAmount: bigint;\n};\n\n/**\n * Handler for the `PufferProtocol` contract exposing methods to interact\n * with the contract.\n */\nexport class PufferProtocolHandler {\n private viemChain: ViemChain;\n\n /**\n * Create the handler for the `PufferProtocol` contract exposing\n * methods to interact with the contract.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n private chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n }\n\n /**\n * Get the contract.\n *\n * @returns The viem contract.\n */\n public getContract() {\n const address = CONTRACT_ADDRESSES[this.chain].PufferProtocol as Address;\n const abi = PufferProtocol;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({ address, abi, client }) as GetContractReturnType<\n typeof abi,\n typeof client,\n Address\n >;\n }\n\n /**\n * Get the minimum VT amount required.\n *\n * @returns The minimum VT amount.\n */\n public getMinimumVtAmount() {\n return this.getContract().read.getMinimumVtAmount();\n }\n\n /**\n * Get the VT penalty amount.\n *\n * @returns The VT penalty amount.\n */\n public getVTPenalty() {\n return this.getContract().read.getVTPenalty();\n }\n\n /**\n * Get validator tickets balance for an owner.\n *\n * @param owner The owner address.\n * @returns The validator tickets balance.\n */\n public getValidatorTicketsBalance(owner: Address) {\n return this.getContract().read.getValidatorTicketsBalance([owner]);\n }\n\n /**\n * Get module address by name.\n *\n * @param moduleName The module name.\n * @returns The module address.\n */\n public getModuleAddress(moduleName: `0x${string}`) {\n return this.getContract().read.getModuleAddress([moduleName]);\n }\n\n /**\n * Get module weights.\n *\n * @returns The module weights.\n */\n public getModuleWeights() {\n return this.getContract().read.getModuleWeights();\n }\n\n /**\n * Get the next validator to be provisioned.\n *\n * @returns Tuple of module name and index.\n */\n public getNextValidatorToProvision() {\n return this.getContract().read.getNextValidatorToProvision();\n }\n\n /**\n * Get node information.\n *\n * @param node The node address.\n * @returns The node information.\n */\n public getNodeInfo(node: Address) {\n return this.getContract().read.getNodeInfo([node]);\n }\n\n /**\n * Get validators for a module.\n *\n * @param moduleName The module name.\n * @returns The validators array.\n */\n public getValidators(moduleName: `0x${string}`) {\n return this.getContract().read.getValidators([moduleName]);\n }\n\n /**\n * Get validator information.\n *\n * @param moduleName The module name.\n * @param pufferModuleIndex The puffer module index.\n * @returns The validator information.\n */\n public getValidatorInfo(\n moduleName: `0x${string}`,\n pufferModuleIndex: bigint,\n ) {\n return this.getContract().read.getValidatorInfo([\n moduleName,\n pufferModuleIndex,\n ]);\n }\n\n /**\n * Get module limit information.\n *\n * @param moduleName The module name.\n * @returns The module limit information.\n */\n public getModuleLimitInformation(moduleName: `0x${string}`) {\n return this.getContract().read.getModuleLimitInformation([moduleName]);\n }\n\n /**\n * Get withdrawal credentials for a module.\n *\n * @param module The module address.\n * @returns The withdrawal credentials.\n */\n public getWithdrawalCredentials(module: Address) {\n return this.getContract().read.getWithdrawalCredentials([module]);\n }\n\n /**\n * Get deposit data root.\n *\n * @param pubKey The public key.\n * @param signature The signature.\n * @param withdrawalCredentials The withdrawal credentials.\n * @returns The deposit data root.\n */\n public getDepositDataRoot(\n pubKey: `0x${string}`,\n signature: `0x${string}`,\n withdrawalCredentials: `0x${string}`,\n ) {\n return this.getContract().read.getDepositDataRoot([\n pubKey,\n signature,\n withdrawalCredentials,\n ]);\n }\n\n /**\n * Create a new puffer module.\n *\n * @param moduleName The module name.\n * @returns The transaction.\n */\n public createPufferModule(moduleName: `0x${string}`) {\n return this.getContract().write.createPufferModule([moduleName], {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n });\n }\n\n /**\n * Register validator key.\n *\n * @param data The validator key data.\n * @param moduleName The module name.\n * @param pufETHPermit The pufETH permit data.\n * @param vtPermit The VT permit data.\n * @returns The transaction.\n */\n public registerValidatorKey(\n data: ValidatorKeyData,\n moduleName: Hex,\n pufETHPermit: PermitData,\n vtPermit: PermitData,\n ) {\n return this.getContract().write.registerValidatorKey(\n [data, moduleName, pufETHPermit, vtPermit],\n {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Provision a node.\n *\n * @param guardianEnclaveSignatures The guardian enclave signatures.\n * @param validatorSignature The validator signature.\n * @param depositRootHash The deposit root hash.\n * @returns The transaction.\n */\n public provisionNode(\n guardianEnclaveSignatures: `0x${string}`[],\n validatorSignature: `0x${string}`,\n depositRootHash: `0x${string}`,\n ) {\n return this.getContract().write.provisionNode(\n [guardianEnclaveSignatures, validatorSignature, depositRootHash],\n {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Deposit validator tickets.\n *\n * @param permit The permit data.\n * @param node The node address.\n * @returns The transaction.\n */\n public depositValidatorTickets(permit: PermitData, node: Address) {\n return this.getContract().write.depositValidatorTickets([permit, node], {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n });\n }\n\n /**\n * Withdraw validator tickets.\n *\n * @param amount The amount to withdraw.\n * @param recipient The recipient address.\n * @returns The transaction.\n */\n public withdrawValidatorTickets(amount: bigint, recipient: Address) {\n return this.getContract().write.withdrawValidatorTickets(\n [amount, recipient],\n {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Batch handle withdrawals.\n *\n * @param validatorInfos The validator infos.\n * @param guardianEOASignatures The guardian EOA signatures.\n * @returns The transaction.\n */\n public batchHandleWithdrawals(\n validatorInfos: StoppedValidatorInfo[],\n guardianEOASignatures: `0x${string}`[],\n ) {\n return this.getContract().write.batchHandleWithdrawals(\n [validatorInfos, guardianEOASignatures],\n {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Skip provisioning for a module.\n *\n * @param moduleName The module name.\n * @param guardianEOASignatures The guardian EOA signatures.\n * @returns The transaction.\n */\n public skipProvisioning(\n moduleName: `0x${string}`,\n guardianEOASignatures: `0x${string}`[],\n ) {\n return this.getContract().write.skipProvisioning(\n [moduleName, guardianEOASignatures],\n {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n },\n );\n }\n}\n"],"names":["PufferProtocolHandler","chain","walletClient","publicClient","__publicField","VIEM_CHAINS","address","CONTRACT_ADDRESSES","abi","PufferProtocol","client","getContract","owner","moduleName","node","pufferModuleIndex","module","pubKey","signature","withdrawalCredentials","data","pufETHPermit","vtPermit","guardianEnclaveSignatures","validatorSignature","depositRootHash","permit","amount","recipient","validatorInfos","guardianEOASignatures"],"mappings":";;;;;;;AAqCO,MAAMA,EAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAajC,YACUC,GACAC,GACAC,GACR;AAhBM,IAAAC,EAAA;AAaE,SAAA,QAAAH,GACA,KAAA,eAAAC,GACA,KAAA,eAAAC,GAEH,KAAA,YAAYE,EAAYJ,CAAK;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ7B,cAAc;AACnB,UAAMK,IAAUC,EAAmB,KAAK,KAAK,EAAE,gBACzCC,IAAMC,GACNC,IAAS,EAAE,QAAQ,KAAK,cAAc,QAAQ,KAAK,aAAa;AAEtE,WAAOC,EAAY,EAAE,SAAAL,GAAS,KAAAE,GAAK,QAAAE,GAAQ;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYtC,qBAAqB;AAC1B,WAAO,KAAK,cAAc,KAAK,mBAAmB;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ7C,eAAe;AACpB,WAAO,KAAK,cAAc,KAAK,aAAa;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvC,2BAA2BE,GAAgB;AAChD,WAAO,KAAK,YAAY,EAAE,KAAK,2BAA2B,CAACA,CAAK,CAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS5D,iBAAiBC,GAA2B;AACjD,WAAO,KAAK,YAAY,EAAE,KAAK,iBAAiB,CAACA,CAAU,CAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQvD,mBAAmB;AACxB,WAAO,KAAK,cAAc,KAAK,iBAAiB;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ3C,8BAA8B;AACnC,WAAO,KAAK,cAAc,KAAK,4BAA4B;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAStD,YAAYC,GAAe;AAChC,WAAO,KAAK,YAAY,EAAE,KAAK,YAAY,CAACA,CAAI,CAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAS5C,cAAcD,GAA2B;AAC9C,WAAO,KAAK,YAAY,EAAE,KAAK,cAAc,CAACA,CAAU,CAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUpD,iBACLA,GACAE,GACA;AACA,WAAO,KAAK,cAAc,KAAK,iBAAiB;AAAA,MAC9CF;AAAA,MACAE;AAAA,IAAA,CACD;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASI,0BAA0BF,GAA2B;AAC1D,WAAO,KAAK,YAAY,EAAE,KAAK,0BAA0B,CAACA,CAAU,CAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShE,yBAAyBG,GAAiB;AAC/C,WAAO,KAAK,YAAY,EAAE,KAAK,yBAAyB,CAACA,CAAM,CAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAW3D,mBACLC,GACAC,GACAC,GACA;AACA,WAAO,KAAK,cAAc,KAAK,mBAAmB;AAAA,MAChDF;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA,CACD;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASI,mBAAmBN,GAA2B;AACnD,WAAO,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAACA,CAAU,GAAG;AAAA,MAC/D,SAAS,KAAK,aAAa;AAAA,MAC3B,OAAO,KAAK;AAAA,IAAA,CACb;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYI,qBACLO,GACAP,GACAQ,GACAC,GACA;AACO,WAAA,KAAK,cAAc,MAAM;AAAA,MAC9B,CAACF,GAAMP,GAAYQ,GAAcC,CAAQ;AAAA,MACzC;AAAA,QACE,SAAS,KAAK,aAAa;AAAA,QAC3B,OAAO,KAAK;AAAA,MAAA;AAAA,IAEhB;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWK,cACLC,GACAC,GACAC,GACA;AACO,WAAA,KAAK,cAAc,MAAM;AAAA,MAC9B,CAACF,GAA2BC,GAAoBC,CAAe;AAAA,MAC/D;AAAA,QACE,SAAS,KAAK,aAAa;AAAA,QAC3B,OAAO,KAAK;AAAA,MAAA;AAAA,IAEhB;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUK,wBAAwBC,GAAoBZ,GAAe;AACzD,WAAA,KAAK,cAAc,MAAM,wBAAwB,CAACY,GAAQZ,CAAI,GAAG;AAAA,MACtE,SAAS,KAAK,aAAa;AAAA,MAC3B,OAAO,KAAK;AAAA,IAAA,CACb;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUI,yBAAyBa,GAAgBC,GAAoB;AAC3D,WAAA,KAAK,cAAc,MAAM;AAAA,MAC9B,CAACD,GAAQC,CAAS;AAAA,MAClB;AAAA,QACE,SAAS,KAAK,aAAa;AAAA,QAC3B,OAAO,KAAK;AAAA,MAAA;AAAA,IAEhB;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUK,uBACLC,GACAC,GACA;AACO,WAAA,KAAK,cAAc,MAAM;AAAA,MAC9B,CAACD,GAAgBC,CAAqB;AAAA,MACtC;AAAA,QACE,SAAS,KAAK,aAAa;AAAA,QAC3B,OAAO,KAAK;AAAA,MAAA;AAAA,IAEhB;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUK,iBACLjB,GACAiB,GACA;AACO,WAAA,KAAK,cAAc,MAAM;AAAA,MAC9B,CAACjB,GAAYiB,CAAqB;AAAA,MAClC;AAAA,QACE,SAAS,KAAK,aAAa;AAAA,QAC3B,OAAO,KAAK;AAAA,MAAA;AAAA,IAEhB;AAAA,EAAA;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"puffer-protocol-handler.js","sources":["../../../lib/contracts/handlers/puffer-protocol-handler.ts"],"sourcesContent":["import {\n WalletClient,\n PublicClient,\n getContract,\n Address,\n GetContractReturnType,\n Account,\n Hex,\n} from 'viem';\nimport { Chain, VIEM_CHAINS, ViemChain } from '../../chains/constants';\nimport { CONTRACT_ADDRESSES } from '../addresses';\nimport { PufferProtocol } from '../abis/mainnet/PufferProtocol';\nimport { PermitData } from '../common/lib/types';\n\nexport type ValidatorKeyData = {\n blsPubKey: `0x${string}`;\n signature: `0x${string}`;\n depositDataRoot: `0x${string}`;\n blsEncryptedPrivKeyShares: `0x${string}`[];\n blsPubKeySet: `0x${string}`;\n raveEvidence: `0x${string}`;\n};\n\nexport type StoppedValidatorInfo = {\n module: Address;\n startEpoch: bigint;\n endEpoch: bigint;\n wasSlashed: boolean;\n moduleName: `0x${string}`;\n pufferModuleIndex: bigint;\n withdrawalAmount: bigint;\n};\n\n/**\n * Handler for the `PufferProtocol` contract exposing methods to interact\n * with the contract.\n */\nexport class PufferProtocolHandler {\n private viemChain: ViemChain;\n\n /**\n * Create the handler for the `PufferProtocol` contract exposing\n * methods to interact with the contract.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n private chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n }\n\n /**\n * Get the contract.\n *\n * @returns The viem contract.\n */\n public getContract() {\n const address = CONTRACT_ADDRESSES[this.chain].PufferProtocol as Address;\n const abi = PufferProtocol;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({ address, abi, client }) as GetContractReturnType<\n typeof abi,\n typeof client,\n Address\n >;\n }\n\n /**\n * Get the minimum VT amount required.\n *\n * @returns The minimum VT amount.\n */\n public getMinimumVtAmount() {\n return this.getContract().read.getMinimumVtAmount();\n }\n\n /**\n * Get the VT penalty amount.\n *\n * @returns The VT penalty amount.\n */\n public getVTPenalty() {\n return this.getContract().read.getVTPenalty();\n }\n\n /**\n * Get validator tickets balance for an owner.\n *\n * @param owner The owner address.\n * @returns The validator tickets balance.\n */\n public getValidatorTicketsBalance(owner: Address) {\n return this.getContract().read.getValidatorTicketsBalance([owner]);\n }\n\n /**\n * Get module address by name.\n *\n * @param moduleName The module name.\n * @returns The module address.\n */\n public getModuleAddress(moduleName: `0x${string}`) {\n return this.getContract().read.getModuleAddress([moduleName]);\n }\n\n /**\n * Get module weights.\n *\n * @returns The module weights.\n */\n public getModuleWeights() {\n return this.getContract().read.getModuleWeights();\n }\n\n /**\n * Get the next validator to be provisioned.\n *\n * @returns Tuple of module name and index.\n */\n public getNextValidatorToProvision() {\n return this.getContract().read.getNextValidatorToProvision();\n }\n\n /**\n * Get node information.\n *\n * @param node The node address.\n * @returns The node information.\n */\n public getNodeInfo(node: Address) {\n return this.getContract().read.getNodeInfo([node]);\n }\n\n /**\n * Get validators for a module.\n *\n * @param moduleName The module name.\n * @returns The validators array.\n */\n public getValidators(moduleName: `0x${string}`) {\n return this.getContract().read.getValidators([moduleName]);\n }\n\n /**\n * Get validator information.\n *\n * @param moduleName The module name.\n * @param pufferModuleIndex The puffer module index.\n * @returns The validator information.\n */\n public getValidatorInfo(\n moduleName: `0x${string}`,\n pufferModuleIndex: bigint,\n ) {\n return this.getContract().read.getValidatorInfo([\n moduleName,\n pufferModuleIndex,\n ]);\n }\n\n /**\n * Get module limit information.\n *\n * @param moduleName The module name.\n * @returns The module limit information.\n */\n public getModuleLimitInformation(moduleName: `0x${string}`) {\n return this.getContract().read.getModuleLimitInformation([moduleName]);\n }\n\n /**\n * Get withdrawal credentials for a module.\n *\n * @param module The module address.\n * @returns The withdrawal credentials.\n */\n public getWithdrawalCredentials(module: Address) {\n return this.getContract().read.getWithdrawalCredentials([module]);\n }\n\n /**\n * Get deposit data root.\n *\n * @param pubKey The public key.\n * @param signature The signature.\n * @param withdrawalCredentials The withdrawal credentials.\n * @returns The deposit data root.\n */\n public getDepositDataRoot(\n pubKey: `0x${string}`,\n signature: `0x${string}`,\n withdrawalCredentials: `0x${string}`,\n ) {\n return this.getContract().read.getDepositDataRoot([\n pubKey,\n signature,\n withdrawalCredentials,\n ]);\n }\n\n /**\n * Create a new puffer module.\n *\n * @param moduleName The module name.\n * @returns The transaction.\n */\n public createPufferModule(moduleName: `0x${string}`) {\n return this.getContract().write.createPufferModule([moduleName], {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n });\n }\n\n /**\n * Register validator key.\n *\n * @param data The validator key data.\n * @param moduleName The module name.\n * @param pufETHPermit The pufETH permit data.\n * @param vtPermit The VT permit data.\n * @returns The transaction.\n */\n public registerValidatorKey(\n data: ValidatorKeyData,\n moduleName: Hex,\n pufETHPermit: PermitData,\n vtPermit: PermitData,\n ) {\n return this.getContract().write.registerValidatorKey(\n [data, moduleName, pufETHPermit, vtPermit],\n {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Provision a node.\n *\n * @param guardianEnclaveSignatures The guardian enclave signatures.\n * @param validatorSignature The validator signature.\n * @param depositRootHash The deposit root hash.\n * @returns The transaction.\n */\n public provisionNode(\n guardianEnclaveSignatures: `0x${string}`[],\n validatorSignature: `0x${string}`,\n depositRootHash: `0x${string}`,\n ) {\n return this.getContract().write.provisionNode(\n [guardianEnclaveSignatures, validatorSignature, depositRootHash],\n {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Deposit validator tickets.\n *\n * @param permit The permit data.\n * @param node The node address.\n * @returns The transaction.\n */\n public depositValidatorTickets(permit: PermitData, node: Address) {\n return this.getContract().write.depositValidatorTickets([permit, node], {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n });\n }\n\n /**\n * Withdraw validator tickets.\n *\n * @param amount The amount to withdraw.\n * @param recipient The recipient address.\n * @returns The transaction.\n */\n public withdrawValidatorTickets(amount: bigint, recipient: Address) {\n return this.getContract().write.withdrawValidatorTickets(\n [amount, recipient],\n {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Batch handle withdrawals.\n *\n * @param validatorInfos The validator infos.\n * @param guardianEOASignatures The guardian EOA signatures.\n * @returns The transaction.\n */\n public batchHandleWithdrawals(\n validatorInfos: StoppedValidatorInfo[],\n guardianEOASignatures: `0x${string}`[],\n ) {\n return this.getContract().write.batchHandleWithdrawals(\n [validatorInfos, guardianEOASignatures],\n {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n },\n );\n }\n\n /**\n * Skip provisioning for a module.\n *\n * @param moduleName The module name.\n * @param guardianEOASignatures The guardian EOA signatures.\n * @returns The transaction.\n */\n public skipProvisioning(\n moduleName: `0x${string}`,\n guardianEOASignatures: `0x${string}`[],\n ) {\n return this.getContract().write.skipProvisioning(\n [moduleName, guardianEOASignatures],\n {\n account: this.walletClient.account as Account,\n chain: this.viemChain,\n },\n );\n }\n}\n"],"names":["PufferProtocolHandler","chain","walletClient","publicClient","VIEM_CHAINS","address","CONTRACT_ADDRESSES","abi","PufferProtocol","client","getContract","owner","moduleName","node","pufferModuleIndex","module","pubKey","signature","withdrawalCredentials","data","pufETHPermit","vtPermit","guardianEnclaveSignatures","validatorSignature","depositRootHash","permit","amount","recipient","validatorInfos","guardianEOASignatures"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../constants-6kuRTsbU.cjs"),c=require("../addresses.cjs"),r=require("../abis/mainnet/PufferVaultV5.cjs"),o=require("../../getContract-D4_SEfqa.cjs");class u{constructor(t,a,e){this.chain=t,this.walletClient=a,this.publicClient=e,this.viemChain=s.VIEM_CHAINS[t]}viemChain;getContract(){const t=c.CONTRACT_ADDRESSES[this.chain].PufferVault,a=r.PufferVaultV5,e={public:this.publicClient,wallet:this.walletClient};return o.getContract({address:t,abi:a,client:e})}deposit(t,a){return{transact:async()=>await this.getContract().write.deposit([a,t],{account:t,chain:this.viemChain}),estimate:async()=>await this.getContract().estimateGas.deposit([a,t],{account:t})}}depositETH(t){return{transact:async i=>await this.getContract().write.depositETH([t],{account:t,chain:this.viemChain,value:i}),estimate:async()=>await this.getContract().estimateGas.depositETH([t],{account:t})}}async balanceOf(t){return await this.getContract().read.balanceOf([t])}async getPufETHRate(){const t=BigInt(1e18);return await this.getContract().read.previewDeposit([t])}async getAllowance(t,a){return await this.getContract().read.allowance([t,a])}withdraw(t,a,e){return{transact:async()=>await this.getContract().write.withdraw([e,a,t],{account:a,chain:this.viemChain}),estimate:async()=>await this.getContract().estimateGas.withdraw([e,a,t],{account:a})}}previewRedeem(t){return this.getContract().read.previewRedeem([t])}maxRedeem(t){return this.getContract().read.maxRedeem([t])}getExitFeeBasisPoints(){return this.getContract().read.getExitFeeBasisPoints()}getTreasuryExitFeeBasisPoints(){return this.getContract().read.getTreasuryExitFeeBasisPoints()}getTotalExitFeeBasisPoints(){return this.getContract().read.getTotalExitFeeBasisPoints()}redeem(t,a,e){return{transact:async()=>await this.getContract().write.redeem([e,a,t],{account:t,chain:this.viemChain}),estimate:async()=>await this.getContract().estimateGas.redeem([e,a,t],{account:t})}}convertToAssets(t){return this.getContract().read.convertToAssets([t])}}exports.PufferVaultHandler=u;
|
|
2
2
|
//# sourceMappingURL=puffer-vault-handler.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puffer-vault-handler.cjs","sources":["../../../lib/contracts/handlers/puffer-vault-handler.ts"],"sourcesContent":["import {\n Address,\n GetContractReturnType,\n PublicClient,\n WalletClient,\n getContract,\n} from 'viem';\nimport { Chain, VIEM_CHAINS, ViemChain } from '../../chains/constants';\nimport { CONTRACT_ADDRESSES } from '../addresses';\nimport { PufferVaultV5 } from '../abis/mainnet/PufferVaultV5';\n\n/**\n * Handler for the `PufferVaultV2` contract exposing methods to interact\n * with the contract.\n */\nexport class PufferVaultHandler {\n private viemChain: ViemChain;\n\n /**\n * Create the handler for the `PufferVaultV2` contract exposing\n * methods to interact with the contract.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n private chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n }\n\n /**\n * Get the contract. This is a method because the typings are complex\n * and lost when trying to make it a member.\n *\n * @returns The viem contract.\n */\n public getContract() {\n const address = CONTRACT_ADDRESSES[this.chain].PufferVault as Address;\n const abi = PufferVaultV5;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({ address, abi, client }) as GetContractReturnType<\n typeof abi,\n typeof client,\n Address\n >;\n }\n\n /**\n * Deposit tokens(e.g. WETH) in exchange for pufETH. This doesn't make the\n * transaction but returns two methods namely `transact` and\n * `estimate`.\n *\n * @param walletAddress Wallet address to get the tokens from.\n * @param value Value of tokens to deposit.\n * @returns `transact: (value: bigint) => Promise<Address>` -\n *\n * `estimate: () => Promise<bigint>` - Gas estimate of the\n * transaction.\n */\n public deposit(walletAddress: Address, value: bigint) {\n const transact = async () =>\n await this.getContract().write.deposit([value, walletAddress], {\n account: walletAddress,\n chain: this.viemChain,\n });\n\n const estimate = async () =>\n await this.getContract().estimateGas.deposit([value, walletAddress], {\n account: walletAddress,\n });\n\n return { transact, estimate };\n }\n\n /**\n * Deposit ETH in exchange for pufETH. This doesn't make the\n * transaction but returns two methods namely `transact` and\n * `estimate`.\n *\n * @param walletAddress Wallet address to get the ETH from.\n * @returns `transact: (value: bigint) => Promise<Address>` - Used to\n * make the transaction with the given value.\n *\n * `estimate: () => Promise<bigint>` - Gas estimate of the\n * transaction.\n */\n public depositETH(walletAddress: Address) {\n const transact = async (value: bigint) =>\n await this.getContract().write.depositETH([walletAddress], {\n account: walletAddress,\n chain: this.viemChain,\n value,\n });\n\n const estimate = async () =>\n await this.getContract().estimateGas.depositETH([walletAddress], {\n account: walletAddress,\n });\n\n return { transact, estimate };\n }\n\n /**\n * Check the pufETH balance of the wallet.\n *\n * @param walletAddress Wallet address to check the balance of.\n * @returns pufETH balance in wei.\n */\n public async balanceOf(walletAddress: Address) {\n return await this.getContract().read.balanceOf([walletAddress]);\n }\n\n /**\n * Get the rate of pufETH compared to ETH.\n *\n * @returns Rate of pufETH compared to 1 ETH.\n */\n public async getPufETHRate() {\n const oneWei = BigInt(1e18);\n return await this.getContract().read.previewDeposit([oneWei]);\n }\n\n /**\n * Get the allowance for the given owner and spender.\n *\n * @param ownerAddress Address of the owner.\n * @param spenderAddress Address of the spender.\n * @returns Allowance for the given owner and spender.\n */\n public async getAllowance(ownerAddress: Address, spenderAddress: Address) {\n return await this.getContract().read.allowance([\n ownerAddress,\n spenderAddress,\n ]);\n }\n\n /**\n * Withdraw pufETH to the given wallet address. This doesn't make the\n * transaction but returns two methods namely `transact` and\n * `estimate`.\n *\n * @param ownerAddress Address of the owner.\n * @param walletAddress Address of the receiver.\n * @param value Value of pufETH to withdraw.\n * @returns `transact: (value: bigint) => Promise<Address>` - Used to\n * make the transaction with the given value.\n *\n * `estimate: () => Promise<bigint>` - Gas estimate of the\n * transaction.\n */\n public withdraw(\n ownerAddress: Address,\n walletAddress: Address,\n value: bigint,\n ) {\n const transact = async () =>\n await this.getContract().write.withdraw(\n [value, walletAddress, ownerAddress],\n {\n account: walletAddress,\n chain: this.viemChain,\n },\n );\n\n const estimate = async () =>\n await this.getContract().estimateGas.withdraw(\n [value, walletAddress, ownerAddress],\n {\n account: walletAddress,\n },\n );\n\n return { transact, estimate };\n }\n\n /**\n * Preview the amount of WETH that can be redeemed for the given\n * amount of pufETH using the `.redeem()` method.\n *\n * @param value Value of pufETH to redeem.\n * @returns Preview of the amount of WETH that can be redeemed.\n */\n public previewRedeem(value: bigint) {\n return this.getContract().read.previewRedeem([value]);\n }\n\n /**\n * Calculates the maximum amount of pufETH shares that can be redeemed\n * by the owner.\n *\n * @param ownerAddress Address of the owner's wallet.\n * @returns Maximum amount of pufETH shares that can be redeemed.\n */\n public maxRedeem(ownerAddress: Address) {\n return this.getContract().read.maxRedeem([ownerAddress]);\n }\n\n /**\n * Returns how many basis points of a fee there are when exiting. For\n * example, a 1% fee would mean 1% of the user's requested pufETH is\n * burned (which increases the value for all pufETH holders) before\n * the ETH is redeemed. i.e., you get 1% less ETH back. i.e., you get\n * 1% less ETH back.\n *\n * @returns Basis points of the exit fee.\n */\n public getExitFeeBasisPoints() {\n return this.getContract().read.getExitFeeBasisPoints();\n }\n\n /**\n * Returns how many treasury basis points of a fee there are when\n * exiting. For example, a 1% fee would mean 1% of the user's\n * requested pufETH is burned (which increases the value for all\n * pufETH holders) before the ETH is redeemed.\n *\n * @returns Basis points of the exit fee.\n */\n public getTreasuryExitFeeBasisPoints() {\n return this.getContract().read.getTreasuryExitFeeBasisPoints();\n }\n\n /**\n * Returns how many basis points of a fee there are in total when\n * exiting. For example, a 1% fee would mean 1% of the user's\n * requested pufETH is burned (which increases the value for all\n * pufETH holders) before the ETH is redeemed. i.e., you get 1% less\n * ETH back.\n *\n * @returns Basis points of the exit fee.\n */\n public getTotalExitFeeBasisPoints() {\n return this.getContract().read.getTotalExitFeeBasisPoints();\n }\n\n /**\n * Redeems pufETH shares in exchange for WETH assets from the vault.\n * In the process, the pufETH shares of the owner are burned. This\n * doesn't make the transaction but returns two methods namely\n * `transact` and `estimate`.\n *\n * @param ownerAddress Address of the owner of pufETH.\n * @param receiverAddress Address of the receiver of WETH.\n * @param shares Amount of pufETH shares to redeem.\n * @returns `transact: (value: bigint) => Promise<Address>` - Used to\n * make the transaction with the given value.\n *\n * `estimate: () => Promise<bigint>` - Gas estimate of the\n * transaction.\n */\n public redeem(\n ownerAddress: Address,\n receiverAddress: Address,\n shares: bigint,\n ) {\n const transact = async () =>\n await this.getContract().write.redeem(\n [shares, receiverAddress, ownerAddress],\n {\n account: ownerAddress,\n chain: this.viemChain,\n },\n );\n\n const estimate = async () =>\n await this.getContract().estimateGas.redeem(\n [shares, receiverAddress, ownerAddress],\n {\n account: ownerAddress,\n },\n );\n\n return { transact, estimate };\n }\n\n /**\n * Gives exchange rate of pufETH relative to WETH.\n * This does not include any fees, as compared to previewRedeem method.\n *\n * @param amount Amount of pufETH to convert.\n * @returns Amount of equivalent WETH.\n */\n public convertToAssets(amount: bigint) {\n return this.getContract().read.convertToAssets([amount]);\n }\n}\n"],"names":["PufferVaultHandler","chain","walletClient","publicClient","__publicField","VIEM_CHAINS","address","CONTRACT_ADDRESSES","abi","PufferVaultV5","client","getContract","walletAddress","value","oneWei","ownerAddress","spenderAddress","receiverAddress","shares","amount"],"mappings":"6ZAeO,MAAMA,CAAmB,CAa9B,YACUC,EACAC,EACAC,EACR,CAhBMC,EAAA,kBAaE,KAAA,MAAAH,EACA,KAAA,aAAAC,EACA,KAAA,aAAAC,EAEH,KAAA,UAAYE,cAAYJ,CAAK,CAAA,CAS7B,aAAc,CACnB,MAAMK,EAAUC,EAAA,mBAAmB,KAAK,KAAK,EAAE,YACzCC,EAAMC,EAAA,cACNC,EAAS,CAAE,OAAQ,KAAK,aAAc,OAAQ,KAAK,YAAa,EAEtE,OAAOC,EAAY,YAAA,CAAE,QAAAL,EAAS,IAAAE,EAAK,OAAAE,EAAQ,CAAA,CAmBtC,QAAQE,EAAwBC,EAAe,CAY7C,MAAA,CAAE,SAXQ,SACf,MAAM,KAAK,YAAA,EAAc,MAAM,QAAQ,CAACA,EAAOD,CAAa,EAAG,CAC7D,QAASA,EACT,MAAO,KAAK,SAAA,CACb,EAOgB,SALF,SACf,MAAM,KAAK,YAAA,EAAc,YAAY,QAAQ,CAACC,EAAOD,CAAa,EAAG,CACnE,QAASA,CAAA,CACV,CAEyB,CAAA,CAevB,WAAWA,EAAwB,CAajC,MAAA,CAAE,SAZQ,MAAOC,GACtB,MAAM,KAAK,YAAY,EAAE,MAAM,WAAW,CAACD,CAAa,EAAG,CACzD,QAASA,EACT,MAAO,KAAK,UACZ,MAAAC,CAAA,CACD,EAOgB,SALF,SACf,MAAM,KAAK,cAAc,YAAY,WAAW,CAACD,CAAa,EAAG,CAC/D,QAASA,CAAA,CACV,CAEyB,CAAA,CAS9B,MAAa,UAAUA,EAAwB,CACtC,OAAA,MAAM,KAAK,YAAY,EAAE,KAAK,UAAU,CAACA,CAAa,CAAC,CAAA,CAQhE,MAAa,eAAgB,CACrB,MAAAE,EAAS,OAAO,IAAI,EACnB,OAAA,MAAM,KAAK,YAAY,EAAE,KAAK,eAAe,CAACA,CAAM,CAAC,CAAA,CAU9D,MAAa,aAAaC,EAAuBC,EAAyB,CACxE,OAAO,MAAM,KAAK,cAAc,KAAK,UAAU,CAC7CD,EACAC,CAAA,CACD,CAAA,CAiBI,SACLD,EACAH,EACAC,EACA,CAkBO,MAAA,CAAE,SAjBQ,SACf,MAAM,KAAK,cAAc,MAAM,SAC7B,CAACA,EAAOD,EAAeG,CAAY,EACnC,CACE,QAASH,EACT,MAAO,KAAK,SAAA,CAEhB,EAUiB,SARF,SACf,MAAM,KAAK,cAAc,YAAY,SACnC,CAACC,EAAOD,EAAeG,CAAY,EACnC,CACE,QAASH,CAAA,CAEb,CAE0B,CAAA,CAUvB,cAAcC,EAAe,CAClC,OAAO,KAAK,YAAY,EAAE,KAAK,cAAc,CAACA,CAAK,CAAC,CAAA,CAU/C,UAAUE,EAAuB,CACtC,OAAO,KAAK,YAAY,EAAE,KAAK,UAAU,CAACA,CAAY,CAAC,CAAA,CAYlD,uBAAwB,CAC7B,OAAO,KAAK,cAAc,KAAK,sBAAsB,CAAA,CAWhD,+BAAgC,CACrC,OAAO,KAAK,cAAc,KAAK,8BAA8B,CAAA,CAYxD,4BAA6B,CAClC,OAAO,KAAK,cAAc,KAAK,2BAA2B,CAAA,CAkBrD,OACLA,EACAE,EACAC,EACA,CAkBO,MAAA,CAAE,SAjBQ,SACf,MAAM,KAAK,cAAc,MAAM,OAC7B,CAACA,EAAQD,EAAiBF,CAAY,EACtC,CACE,QAASA,EACT,MAAO,KAAK,SAAA,CAEhB,EAUiB,SARF,SACf,MAAM,KAAK,cAAc,YAAY,OACnC,CAACG,EAAQD,EAAiBF,CAAY,EACtC,CACE,QAASA,CAAA,CAEb,CAE0B,CAAA,CAUvB,gBAAgBI,EAAgB,CACrC,OAAO,KAAK,YAAY,EAAE,KAAK,gBAAgB,CAACA,CAAM,CAAC,CAAA,CAE3D"}
|
|
1
|
+
{"version":3,"file":"puffer-vault-handler.cjs","sources":["../../../lib/contracts/handlers/puffer-vault-handler.ts"],"sourcesContent":["import {\n Address,\n GetContractReturnType,\n PublicClient,\n WalletClient,\n getContract,\n} from 'viem';\nimport { Chain, VIEM_CHAINS, ViemChain } from '../../chains/constants';\nimport { CONTRACT_ADDRESSES } from '../addresses';\nimport { PufferVaultV5 } from '../abis/mainnet/PufferVaultV5';\n\n/**\n * Handler for the `PufferVaultV2` contract exposing methods to interact\n * with the contract.\n */\nexport class PufferVaultHandler {\n private viemChain: ViemChain;\n\n /**\n * Create the handler for the `PufferVaultV2` contract exposing\n * methods to interact with the contract.\n *\n * @param chain Chain to use for the client.\n * @param walletClient The wallet client to use for wallet\n * interactions.\n * @param publicClient The public client to use for public\n * interactions.\n */\n constructor(\n private chain: Chain,\n private walletClient: WalletClient,\n private publicClient: PublicClient,\n ) {\n this.viemChain = VIEM_CHAINS[chain];\n }\n\n /**\n * Get the contract. This is a method because the typings are complex\n * and lost when trying to make it a member.\n *\n * @returns The viem contract.\n */\n public getContract() {\n const address = CONTRACT_ADDRESSES[this.chain].PufferVault as Address;\n const abi = PufferVaultV5;\n const client = { public: this.publicClient, wallet: this.walletClient };\n\n return getContract({ address, abi, client }) as GetContractReturnType<\n typeof abi,\n typeof client,\n Address\n >;\n }\n\n /**\n * Deposit tokens(e.g. WETH) in exchange for pufETH. This doesn't make the\n * transaction but returns two methods namely `transact` and\n * `estimate`.\n *\n * @param walletAddress Wallet address to get the tokens from.\n * @param value Value of tokens to deposit.\n * @returns `transact: (value: bigint) => Promise<Address>` -\n *\n * `estimate: () => Promise<bigint>` - Gas estimate of the\n * transaction.\n */\n public deposit(walletAddress: Address, value: bigint) {\n const transact = async () =>\n await this.getContract().write.deposit([value, walletAddress], {\n account: walletAddress,\n chain: this.viemChain,\n });\n\n const estimate = async () =>\n await this.getContract().estimateGas.deposit([value, walletAddress], {\n account: walletAddress,\n });\n\n return { transact, estimate };\n }\n\n /**\n * Deposit ETH in exchange for pufETH. This doesn't make the\n * transaction but returns two methods namely `transact` and\n * `estimate`.\n *\n * @param walletAddress Wallet address to get the ETH from.\n * @returns `transact: (value: bigint) => Promise<Address>` - Used to\n * make the transaction with the given value.\n *\n * `estimate: () => Promise<bigint>` - Gas estimate of the\n * transaction.\n */\n public depositETH(walletAddress: Address) {\n const transact = async (value: bigint) =>\n await this.getContract().write.depositETH([walletAddress], {\n account: walletAddress,\n chain: this.viemChain,\n value,\n });\n\n const estimate = async () =>\n await this.getContract().estimateGas.depositETH([walletAddress], {\n account: walletAddress,\n });\n\n return { transact, estimate };\n }\n\n /**\n * Check the pufETH balance of the wallet.\n *\n * @param walletAddress Wallet address to check the balance of.\n * @returns pufETH balance in wei.\n */\n public async balanceOf(walletAddress: Address) {\n return await this.getContract().read.balanceOf([walletAddress]);\n }\n\n /**\n * Get the rate of pufETH compared to ETH.\n *\n * @returns Rate of pufETH compared to 1 ETH.\n */\n public async getPufETHRate() {\n const oneWei = BigInt(1e18);\n return await this.getContract().read.previewDeposit([oneWei]);\n }\n\n /**\n * Get the allowance for the given owner and spender.\n *\n * @param ownerAddress Address of the owner.\n * @param spenderAddress Address of the spender.\n * @returns Allowance for the given owner and spender.\n */\n public async getAllowance(ownerAddress: Address, spenderAddress: Address) {\n return await this.getContract().read.allowance([\n ownerAddress,\n spenderAddress,\n ]);\n }\n\n /**\n * Withdraw pufETH to the given wallet address. This doesn't make the\n * transaction but returns two methods namely `transact` and\n * `estimate`.\n *\n * @param ownerAddress Address of the owner.\n * @param walletAddress Address of the receiver.\n * @param value Value of pufETH to withdraw.\n * @returns `transact: (value: bigint) => Promise<Address>` - Used to\n * make the transaction with the given value.\n *\n * `estimate: () => Promise<bigint>` - Gas estimate of the\n * transaction.\n */\n public withdraw(\n ownerAddress: Address,\n walletAddress: Address,\n value: bigint,\n ) {\n const transact = async () =>\n await this.getContract().write.withdraw(\n [value, walletAddress, ownerAddress],\n {\n account: walletAddress,\n chain: this.viemChain,\n },\n );\n\n const estimate = async () =>\n await this.getContract().estimateGas.withdraw(\n [value, walletAddress, ownerAddress],\n {\n account: walletAddress,\n },\n );\n\n return { transact, estimate };\n }\n\n /**\n * Preview the amount of WETH that can be redeemed for the given\n * amount of pufETH using the `.redeem()` method.\n *\n * @param value Value of pufETH to redeem.\n * @returns Preview of the amount of WETH that can be redeemed.\n */\n public previewRedeem(value: bigint) {\n return this.getContract().read.previewRedeem([value]);\n }\n\n /**\n * Calculates the maximum amount of pufETH shares that can be redeemed\n * by the owner.\n *\n * @param ownerAddress Address of the owner's wallet.\n * @returns Maximum amount of pufETH shares that can be redeemed.\n */\n public maxRedeem(ownerAddress: Address) {\n return this.getContract().read.maxRedeem([ownerAddress]);\n }\n\n /**\n * Returns how many basis points of a fee there are when exiting. For\n * example, a 1% fee would mean 1% of the user's requested pufETH is\n * burned (which increases the value for all pufETH holders) before\n * the ETH is redeemed. i.e., you get 1% less ETH back. i.e., you get\n * 1% less ETH back.\n *\n * @returns Basis points of the exit fee.\n */\n public getExitFeeBasisPoints() {\n return this.getContract().read.getExitFeeBasisPoints();\n }\n\n /**\n * Returns how many treasury basis points of a fee there are when\n * exiting. For example, a 1% fee would mean 1% of the user's\n * requested pufETH is burned (which increases the value for all\n * pufETH holders) before the ETH is redeemed.\n *\n * @returns Basis points of the exit fee.\n */\n public getTreasuryExitFeeBasisPoints() {\n return this.getContract().read.getTreasuryExitFeeBasisPoints();\n }\n\n /**\n * Returns how many basis points of a fee there are in total when\n * exiting. For example, a 1% fee would mean 1% of the user's\n * requested pufETH is burned (which increases the value for all\n * pufETH holders) before the ETH is redeemed. i.e., you get 1% less\n * ETH back.\n *\n * @returns Basis points of the exit fee.\n */\n public getTotalExitFeeBasisPoints() {\n return this.getContract().read.getTotalExitFeeBasisPoints();\n }\n\n /**\n * Redeems pufETH shares in exchange for WETH assets from the vault.\n * In the process, the pufETH shares of the owner are burned. This\n * doesn't make the transaction but returns two methods namely\n * `transact` and `estimate`.\n *\n * @param ownerAddress Address of the owner of pufETH.\n * @param receiverAddress Address of the receiver of WETH.\n * @param shares Amount of pufETH shares to redeem.\n * @returns `transact: (value: bigint) => Promise<Address>` - Used to\n * make the transaction with the given value.\n *\n * `estimate: () => Promise<bigint>` - Gas estimate of the\n * transaction.\n */\n public redeem(\n ownerAddress: Address,\n receiverAddress: Address,\n shares: bigint,\n ) {\n const transact = async () =>\n await this.getContract().write.redeem(\n [shares, receiverAddress, ownerAddress],\n {\n account: ownerAddress,\n chain: this.viemChain,\n },\n );\n\n const estimate = async () =>\n await this.getContract().estimateGas.redeem(\n [shares, receiverAddress, ownerAddress],\n {\n account: ownerAddress,\n },\n );\n\n return { transact, estimate };\n }\n\n /**\n * Gives exchange rate of pufETH relative to WETH.\n * This does not include any fees, as compared to previewRedeem method.\n *\n * @param amount Amount of pufETH to convert.\n * @returns Amount of equivalent WETH.\n */\n public convertToAssets(amount: bigint) {\n return this.getContract().read.convertToAssets([amount]);\n }\n}\n"],"names":["PufferVaultHandler","chain","walletClient","publicClient","VIEM_CHAINS","address","CONTRACT_ADDRESSES","abi","PufferVaultV5","client","getContract","walletAddress","value","oneWei","ownerAddress","spenderAddress","receiverAddress","shares","amount"],"mappings":"yPAeO,MAAMA,CAAmB,CAa9B,YACUC,EACAC,EACAC,EACR,CAHQ,KAAA,MAAAF,EACA,KAAA,aAAAC,EACA,KAAA,aAAAC,EAER,KAAK,UAAYC,EAAAA,YAAYH,CAAK,CACpC,CAlBQ,UA0BD,aAAc,CACnB,MAAMI,EAAUC,EAAAA,mBAAmB,KAAK,KAAK,EAAE,YACzCC,EAAMC,EAAAA,cACNC,EAAS,CAAE,OAAQ,KAAK,aAAc,OAAQ,KAAK,YAAA,EAEzD,OAAOC,EAAAA,YAAY,CAAE,QAAAL,EAAS,IAAAE,EAAK,OAAAE,EAAQ,CAK7C,CAcO,QAAQE,EAAwBC,EAAe,CAYpD,MAAO,CAAE,SAXQ,SACf,MAAM,KAAK,YAAA,EAAc,MAAM,QAAQ,CAACA,EAAOD,CAAa,EAAG,CAC7D,QAASA,EACT,MAAO,KAAK,SAAA,CACb,EAOgB,SALF,SACf,MAAM,KAAK,YAAA,EAAc,YAAY,QAAQ,CAACC,EAAOD,CAAa,EAAG,CACnE,QAASA,CAAA,CACV,CAEgB,CACrB,CAcO,WAAWA,EAAwB,CAaxC,MAAO,CAAE,SAZQ,MAAOC,GACtB,MAAM,KAAK,YAAA,EAAc,MAAM,WAAW,CAACD,CAAa,EAAG,CACzD,QAASA,EACT,MAAO,KAAK,UACZ,MAAAC,CAAA,CACD,EAOgB,SALF,SACf,MAAM,KAAK,YAAA,EAAc,YAAY,WAAW,CAACD,CAAa,EAAG,CAC/D,QAASA,CAAA,CACV,CAEgB,CACrB,CAQA,MAAa,UAAUA,EAAwB,CAC7C,OAAO,MAAM,KAAK,YAAA,EAAc,KAAK,UAAU,CAACA,CAAa,CAAC,CAChE,CAOA,MAAa,eAAgB,CAC3B,MAAME,EAAS,OAAO,IAAI,EAC1B,OAAO,MAAM,KAAK,YAAA,EAAc,KAAK,eAAe,CAACA,CAAM,CAAC,CAC9D,CASA,MAAa,aAAaC,EAAuBC,EAAyB,CACxE,OAAO,MAAM,KAAK,cAAc,KAAK,UAAU,CAC7CD,EACAC,CAAA,CACD,CACH,CAgBO,SACLD,EACAH,EACAC,EACA,CAkBA,MAAO,CAAE,SAjBQ,SACf,MAAM,KAAK,YAAA,EAAc,MAAM,SAC7B,CAACA,EAAOD,EAAeG,CAAY,EACnC,CACE,QAASH,EACT,MAAO,KAAK,SAAA,CACd,EAWe,SARF,SACf,MAAM,KAAK,YAAA,EAAc,YAAY,SACnC,CAACC,EAAOD,EAAeG,CAAY,EACnC,CACE,QAASH,CAAA,CACX,CAGe,CACrB,CASO,cAAcC,EAAe,CAClC,OAAO,KAAK,YAAA,EAAc,KAAK,cAAc,CAACA,CAAK,CAAC,CACtD,CASO,UAAUE,EAAuB,CACtC,OAAO,KAAK,YAAA,EAAc,KAAK,UAAU,CAACA,CAAY,CAAC,CACzD,CAWO,uBAAwB,CAC7B,OAAO,KAAK,cAAc,KAAK,sBAAA,CACjC,CAUO,+BAAgC,CACrC,OAAO,KAAK,cAAc,KAAK,8BAAA,CACjC,CAWO,4BAA6B,CAClC,OAAO,KAAK,cAAc,KAAK,2BAAA,CACjC,CAiBO,OACLA,EACAE,EACAC,EACA,CAkBA,MAAO,CAAE,SAjBQ,SACf,MAAM,KAAK,YAAA,EAAc,MAAM,OAC7B,CAACA,EAAQD,EAAiBF,CAAY,EACtC,CACE,QAASA,EACT,MAAO,KAAK,SAAA,CACd,EAWe,SARF,SACf,MAAM,KAAK,YAAA,EAAc,YAAY,OACnC,CAACG,EAAQD,EAAiBF,CAAY,EACtC,CACE,QAASA,CAAA,CACX,CAGe,CACrB,CASO,gBAAgBI,EAAgB,CACrC,OAAO,KAAK,YAAA,EAAc,KAAK,gBAAgB,CAACA,CAAM,CAAC,CACzD,CACF"}
|