@gearbox-protocol/sdk 16.5.1 → 16.5.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.
Files changed (32) hide show
  1. package/dist/cjs/dev/claimFromFaucet.js +4 -8
  2. package/dist/cjs/dev/createAnvilClient.js +35 -17
  3. package/dist/cjs/dev/index.js +1 -0
  4. package/dist/cjs/onchain/market/adapters/abi/conctructorAbi.js +1 -1
  5. package/dist/esm/dev/AccountOpener.js +1 -1
  6. package/dist/esm/dev/claimFromFaucet.js +4 -8
  7. package/dist/esm/dev/createAnvilClient.js +36 -19
  8. package/dist/esm/dev/index.js +2 -2
  9. package/dist/esm/dev/withdrawalUtils.js +1 -1
  10. package/dist/esm/history/trace/extractTransfers.js +1 -1
  11. package/dist/esm/onchain/accounts/CreditAccountsServiceV310.js +2 -2
  12. package/dist/esm/onchain/accounts/liquidations/LiquidationsService.js +1 -1
  13. package/dist/esm/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +1 -1
  14. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +1 -1
  15. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +1 -1
  16. package/dist/esm/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
  17. package/dist/esm/onchain/base/TokensMeta.js +3 -3
  18. package/dist/esm/onchain/core/createAddressProvider.js +1 -1
  19. package/dist/esm/onchain/market/adapters/abi/conctructorAbi.js +1 -1
  20. package/dist/esm/onchain/market/adapters/contracts/AccountMigratorAdapterContract.js +1 -1
  21. package/dist/esm/onchain/market/adapters/contracts/ERC4626AdapterContract.js +1 -1
  22. package/dist/esm/onchain/market/credit/CreditFacadeV310BaseContract.js +1 -1
  23. package/dist/esm/onchain/market/pool/PoolV310Contract.js +1 -1
  24. package/dist/esm/onchain/market/rwa/createDegenNFT.js +1 -1
  25. package/dist/esm/onchain/market/zapper/IETHZapperContract.js +1 -1
  26. package/dist/esm/onchain/market/zapper/ZapperContract.js +1 -1
  27. package/dist/esm/onchain/preview/preview/previewPoolPositionOperation.js +2 -2
  28. package/dist/esm/onchain/utils/viem/simulateWithPriceUpdates.js +1 -1
  29. package/dist/types/dev/claimFromFaucet.d.ts +0 -1
  30. package/dist/types/dev/createAnvilClient.d.ts +10 -3
  31. package/dist/types/dev/index.d.ts +2 -2
  32. package/package.json +1 -1
@@ -5,7 +5,7 @@ const require_dev_abi = require("./abi.js");
5
5
  let viem_actions = require("viem/actions");
6
6
  //#region src/dev/claimFromFaucet.ts
7
7
  async function claimFromFaucet(opts) {
8
- const { sdk, publicClient, wallet, faucet, claimer, role, amount, logger, gasMultiplier = 10n, sync = false } = opts;
8
+ const { sdk, publicClient, wallet, faucet, claimer, role, amount, logger, gasMultiplier = 10n } = opts;
9
9
  let amnt = "default amount";
10
10
  let args;
11
11
  if (Array.isArray(amount)) {
@@ -54,13 +54,9 @@ async function claimFromFaucet(opts) {
54
54
  gas: gas * gasMultiplier
55
55
  });
56
56
  logger?.debug({ request }, "simulated claim tx request");
57
- let receipt;
58
- if (sync) receipt = await wallet.writeContractSync(request);
59
- else {
60
- const hash = await wallet.writeContract(request);
61
- logger?.debug({ hash }, "claim tx hash");
62
- receipt = await publicClient.waitForTransactionReceipt({ hash });
63
- }
57
+ const hash = await wallet.writeContract(request);
58
+ logger?.debug({ hash }, "claim tx hash");
59
+ const receipt = await publicClient.waitForTransactionReceipt({ hash });
64
60
  if (receipt.status === "reverted") throw new Error(`${usr} failed to claimed ${amnt} from faucet, tx: ${receipt.transactionHash}`);
65
61
  logger?.debug(`${usr} claimed ${amnt} from faucet, tx: ${receipt.transactionHash}`);
66
62
  }
@@ -1,5 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  let viem = require("viem");
3
+ let viem_utils = require("viem/utils");
4
+ let viem_actions = require("viem/actions");
3
5
  //#region src/dev/createAnvilClient.ts
4
6
  let dealModulePromise;
5
7
  async function loadDeal() {
@@ -8,23 +10,27 @@ async function loadDeal() {
8
10
  if (!mod) throw new Error("createAnvilClient: deal action requires the 'viem-deal' package; install it as a dependency");
9
11
  return mod.deal;
10
12
  }
13
+ function anvilActions(client) {
14
+ return {
15
+ anvilNodeInfo: () => anvilNodeInfo(client),
16
+ isAnvil: () => isAnvil(client),
17
+ evmMineDetailed: (timestamp) => evmMineDetailed(client, timestamp),
18
+ deal: async (params) => {
19
+ await (await loadDeal())(client, params);
20
+ },
21
+ writeContractSync: (parameters) => writeContractSync(client, parameters)
22
+ };
23
+ }
11
24
  /**
12
25
  * Extends an arbitrary viem `PublicClient` with anvil + wallet actions plus
13
26
  * the SDK's bonus actions (`anvilNodeInfo`, `isAnvil`, `evmMineDetailed`,
14
- * `deal`).
27
+ * `deal`, `writeContractSync`).
15
28
  *
16
29
  * Used to lift `sdk.client` into an `AnvilClient` shape on the fly when test
17
30
  * RPCs (impersonateAccount, setBalance, setStorageAt, ...) are needed.
18
31
  */
19
32
  function extendAnvilClient(client) {
20
- return client.extend(() => ({ mode: "anvil" })).extend((0, viem.testActions)({ mode: "anvil" })).extend(viem.walletActions).extend((c) => ({
21
- anvilNodeInfo: () => anvilNodeInfo(c),
22
- isAnvil: () => isAnvil(c),
23
- evmMineDetailed: (timestamp) => evmMineDetailed(c, timestamp),
24
- deal: async (params) => {
25
- await (await loadDeal())(c, params);
26
- }
27
- }));
33
+ return client.extend(() => ({ mode: "anvil" })).extend((0, viem.testActions)({ mode: "anvil" })).extend(viem.walletActions).extend((c) => anvilActions(c));
28
34
  }
29
35
  function createAnvilClient({ chain, transport, cacheTime = 0, pollingInterval = 50 }) {
30
36
  return (0, viem.createTestClient)({
@@ -33,14 +39,7 @@ function createAnvilClient({ chain, transport, cacheTime = 0, pollingInterval =
33
39
  transport,
34
40
  cacheTime,
35
41
  pollingInterval
36
- }).extend(viem.publicActions).extend(viem.walletActions).extend((c) => ({
37
- anvilNodeInfo: () => anvilNodeInfo(c),
38
- isAnvil: () => isAnvil(c),
39
- evmMineDetailed: (timestamp) => evmMineDetailed(c, timestamp),
40
- deal: async (params) => {
41
- await (await loadDeal())(c, params);
42
- }
43
- }));
42
+ }).extend(viem.publicActions).extend(viem.walletActions).extend((c) => anvilActions(c));
44
43
  }
45
44
  /**
46
45
  * View action to detect if client is an anvil client
@@ -85,9 +84,28 @@ async function evmMineDetailed(client, timestamp) {
85
84
  return;
86
85
  }
87
86
  }
87
+ /**
88
+ * Anvil-compatible `writeContractSync`: send via `writeContract` (Anvil
89
+ * supports `eth_sendTransaction` / `eth_sendRawTransaction`) then wait for
90
+ * the receipt. Viem's own action uses `eth_sendRawTransactionSync`, which
91
+ * Anvil does not implement.
92
+ */
93
+ async function writeContractSync(client, parameters) {
94
+ const { throwOnReceiptRevert, pollingInterval, timeout, ...writeParams } = parameters;
95
+ const hash = await (0, viem_utils.getAction)(client, viem_actions.writeContract, "writeContract")(writeParams);
96
+ const receipt = await (0, viem_utils.getAction)(client, viem_actions.waitForTransactionReceipt, "waitForTransactionReceipt")({
97
+ checkReplacement: false,
98
+ hash,
99
+ pollingInterval,
100
+ timeout
101
+ });
102
+ if (throwOnReceiptRevert && receipt.status === "reverted") throw new viem.BaseError(`Transaction with hash "${receipt.transactionHash}" reverted.`, { name: "TransactionReceiptRevertedError" });
103
+ return receipt;
104
+ }
88
105
  //#endregion
89
106
  exports.anvilNodeInfo = anvilNodeInfo;
90
107
  exports.createAnvilClient = createAnvilClient;
91
108
  exports.evmMineDetailed = evmMineDetailed;
92
109
  exports.extendAnvilClient = extendAnvilClient;
93
110
  exports.isAnvil = isAnvil;
111
+ exports.writeContractSync = writeContractSync;
@@ -88,3 +88,4 @@ exports.setLTZero = require_dev_ltUtils.setLTZero;
88
88
  exports.setLTs = require_dev_ltUtils.setLTs;
89
89
  exports.unpauseMidasIssuanceVault = require_dev_midasUtils.unpauseMidasIssuanceVault;
90
90
  exports.verifyTestnet = require_dev_verifyTestnet.verifyTestnet;
91
+ exports.writeContractSync = require_dev_createAnvilClient.writeContractSync;
@@ -66,7 +66,7 @@ const adapterConstructorAbi = {
66
66
  ["INFINIFI_UNWINDING"]: { 310: require_onchain_market_adapters_abi_conctructorAbiPatterns.PHANTOM_TOKEN_ADAPTER_ABI },
67
67
  ["SECURITIZE_REDEMPTION"]: {
68
68
  310: require_onchain_market_adapters_abi_conctructorAbiPatterns.PHANTOM_TOKEN_ADAPTER_ABI,
69
- 311: require_onchain_market_adapters_abi_conctructorAbiPatterns.PHANTOM_TOKEN_ADAPTER_ABI
69
+ 311: require_onchain_market_adapters_abi_conctructorAbiPatterns.BASIC_ADAPTER_ABI
70
70
  },
71
71
  ["STAKING_REWARDS"]: { 312: require_onchain_market_adapters_abi_conctructorAbiPatterns.STAKING_REWARDS_ADAPTER_ABI },
72
72
  ["MIDAS_ISSUANCE_VAULT"]: {
@@ -1,5 +1,5 @@
1
- import { ierc20Abi } from "../abi/iERC20.js";
2
1
  import { iCreditFacadeV310Abi } from "../abi/310/generated.js";
2
+ import { ierc20Abi } from "../abi/iERC20.js";
3
3
  import { AddressMap } from "../onchain/utils/AddressMap.js";
4
4
  import { AddressSet } from "../onchain/utils/AddressSet.js";
5
5
  import { AssetsMap } from "../onchain/utils/AssetsMap.js";
@@ -4,7 +4,7 @@ import { iFaucetAbi } from "./abi.js";
4
4
  import { readContract } from "viem/actions";
5
5
  //#region src/dev/claimFromFaucet.ts
6
6
  async function claimFromFaucet(opts) {
7
- const { sdk, publicClient, wallet, faucet, claimer, role, amount, logger, gasMultiplier = 10n, sync = false } = opts;
7
+ const { sdk, publicClient, wallet, faucet, claimer, role, amount, logger, gasMultiplier = 10n } = opts;
8
8
  let amnt = "default amount";
9
9
  let args;
10
10
  if (Array.isArray(amount)) {
@@ -53,13 +53,9 @@ async function claimFromFaucet(opts) {
53
53
  gas: gas * gasMultiplier
54
54
  });
55
55
  logger?.debug({ request }, "simulated claim tx request");
56
- let receipt;
57
- if (sync) receipt = await wallet.writeContractSync(request);
58
- else {
59
- const hash = await wallet.writeContract(request);
60
- logger?.debug({ hash }, "claim tx hash");
61
- receipt = await publicClient.waitForTransactionReceipt({ hash });
62
- }
56
+ const hash = await wallet.writeContract(request);
57
+ logger?.debug({ hash }, "claim tx hash");
58
+ const receipt = await publicClient.waitForTransactionReceipt({ hash });
63
59
  if (receipt.status === "reverted") throw new Error(`${usr} failed to claimed ${amnt} from faucet, tx: ${receipt.transactionHash}`);
64
60
  logger?.debug(`${usr} claimed ${amnt} from faucet, tx: ${receipt.transactionHash}`);
65
61
  }
@@ -1,4 +1,6 @@
1
- import { createTestClient, publicActions, testActions, toHex, walletActions } from "viem";
1
+ import { BaseError, createTestClient, publicActions, testActions, toHex, walletActions } from "viem";
2
+ import { getAction } from "viem/utils";
3
+ import { waitForTransactionReceipt, writeContract } from "viem/actions";
2
4
  //#region src/dev/createAnvilClient.ts
3
5
  let dealModulePromise;
4
6
  async function loadDeal() {
@@ -7,23 +9,27 @@ async function loadDeal() {
7
9
  if (!mod) throw new Error("createAnvilClient: deal action requires the 'viem-deal' package; install it as a dependency");
8
10
  return mod.deal;
9
11
  }
12
+ function anvilActions(client) {
13
+ return {
14
+ anvilNodeInfo: () => anvilNodeInfo(client),
15
+ isAnvil: () => isAnvil(client),
16
+ evmMineDetailed: (timestamp) => evmMineDetailed(client, timestamp),
17
+ deal: async (params) => {
18
+ await (await loadDeal())(client, params);
19
+ },
20
+ writeContractSync: (parameters) => writeContractSync(client, parameters)
21
+ };
22
+ }
10
23
  /**
11
24
  * Extends an arbitrary viem `PublicClient` with anvil + wallet actions plus
12
25
  * the SDK's bonus actions (`anvilNodeInfo`, `isAnvil`, `evmMineDetailed`,
13
- * `deal`).
26
+ * `deal`, `writeContractSync`).
14
27
  *
15
28
  * Used to lift `sdk.client` into an `AnvilClient` shape on the fly when test
16
29
  * RPCs (impersonateAccount, setBalance, setStorageAt, ...) are needed.
17
30
  */
18
31
  function extendAnvilClient(client) {
19
- return client.extend(() => ({ mode: "anvil" })).extend(testActions({ mode: "anvil" })).extend(walletActions).extend((c) => ({
20
- anvilNodeInfo: () => anvilNodeInfo(c),
21
- isAnvil: () => isAnvil(c),
22
- evmMineDetailed: (timestamp) => evmMineDetailed(c, timestamp),
23
- deal: async (params) => {
24
- await (await loadDeal())(c, params);
25
- }
26
- }));
32
+ return client.extend(() => ({ mode: "anvil" })).extend(testActions({ mode: "anvil" })).extend(walletActions).extend((c) => anvilActions(c));
27
33
  }
28
34
  function createAnvilClient({ chain, transport, cacheTime = 0, pollingInterval = 50 }) {
29
35
  return createTestClient({
@@ -32,14 +38,7 @@ function createAnvilClient({ chain, transport, cacheTime = 0, pollingInterval =
32
38
  transport,
33
39
  cacheTime,
34
40
  pollingInterval
35
- }).extend(publicActions).extend(walletActions).extend((c) => ({
36
- anvilNodeInfo: () => anvilNodeInfo(c),
37
- isAnvil: () => isAnvil(c),
38
- evmMineDetailed: (timestamp) => evmMineDetailed(c, timestamp),
39
- deal: async (params) => {
40
- await (await loadDeal())(c, params);
41
- }
42
- }));
41
+ }).extend(publicActions).extend(walletActions).extend((c) => anvilActions(c));
43
42
  }
44
43
  /**
45
44
  * View action to detect if client is an anvil client
@@ -84,5 +83,23 @@ async function evmMineDetailed(client, timestamp) {
84
83
  return;
85
84
  }
86
85
  }
86
+ /**
87
+ * Anvil-compatible `writeContractSync`: send via `writeContract` (Anvil
88
+ * supports `eth_sendTransaction` / `eth_sendRawTransaction`) then wait for
89
+ * the receipt. Viem's own action uses `eth_sendRawTransactionSync`, which
90
+ * Anvil does not implement.
91
+ */
92
+ async function writeContractSync(client, parameters) {
93
+ const { throwOnReceiptRevert, pollingInterval, timeout, ...writeParams } = parameters;
94
+ const hash = await getAction(client, writeContract, "writeContract")(writeParams);
95
+ const receipt = await getAction(client, waitForTransactionReceipt, "waitForTransactionReceipt")({
96
+ checkReplacement: false,
97
+ hash,
98
+ pollingInterval,
99
+ timeout
100
+ });
101
+ if (throwOnReceiptRevert && receipt.status === "reverted") throw new BaseError(`Transaction with hash "${receipt.transactionHash}" reverted.`, { name: "TransactionReceiptRevertedError" });
102
+ return receipt;
103
+ }
87
104
  //#endregion
88
- export { anvilNodeInfo, createAnvilClient, evmMineDetailed, extendAnvilClient, isAnvil };
105
+ export { anvilNodeInfo, createAnvilClient, evmMineDetailed, extendAnvilClient, isAnvil, writeContractSync };
@@ -1,6 +1,6 @@
1
1
  import { iDegenNftv2Abi, iFaucetAbi, iOnchainExecutionIdAbi, iOwnableAbi, iaclTraitAbi } from "./abi.js";
2
2
  import { claimFromFaucet } from "./claimFromFaucet.js";
3
- import { anvilNodeInfo, createAnvilClient, evmMineDetailed, extendAnvilClient, isAnvil } from "./createAnvilClient.js";
3
+ import { anvilNodeInfo, createAnvilClient, evmMineDetailed, extendAnvilClient, isAnvil, writeContractSync } from "./createAnvilClient.js";
4
4
  import { createMinter } from "./mint/factory.js";
5
5
  import "./mint/index.js";
6
6
  import { AccountOpener, OpenTxRevertedError } from "./AccountOpener.js";
@@ -25,4 +25,4 @@ import { claimDSToken, claimDSTokens, enableDSTokenBackDating } from "./securiti
25
25
  import "./types.js";
26
26
  import { ONCHAIN_EXECUTION_ID_ADDRESS, verifyTestnet } from "./verifyTestnet.js";
27
27
  import { makePendingWithdrawalsClaimable } from "./withdrawalUtils.js";
28
- export { AccountOpener, Create2Deployer, DEFAULT_CREATE2_SALT, EthCallSpy, NoAvailableTransportsError, ONCHAIN_EXECUTION_ID_ADDRESS, OpenTxRevertedError, PUBLIC_CREATE2_FACTORY, RevolverTransport, SUPPORTED_RPC_PROVIDERS, SelectionStrategy, anvilNodeInfo, calcLiquidatableLTs, claimDSToken, claimDSTokens, claimFromFaucet, collectMidasGateways, collectMidasMTokens, createAnvilClient, createMinter, deployUsingPublicCreate2, detectChain, enableDSTokenBackDating, evmMineDetailed, extendAnvilClient, getAlchemyUrl, getAnkrUrl, getDrpcUrl, getErpcKey, getPublicCreate2Address, getRpcProviderUrl, getThirdWebUrl, greenlistMidasGateway, httpTransportOptionsSchema, iDegenNftv2Abi, iFaucetAbi, iOnchainExecutionIdAbi, iOwnableAbi, iaclTraitAbi, isAnvil, isDeployedUsingPublicCreate2, isOutOfSyncError, isRangeError, isRateLimitError, isTransientError, logSplitterTransport, makePendingWithdrawalsClaimable, migrateFaucet, providerConfigSchema, registerMidasInvestor, registerRWAInvestor, registerSecuritizeInvestor, replaceStorage, resilientTransport, resilientTransportOptionsSchema, revolverTransportConfigBaseSchema, revolverTransportConfigSchema, rpcProvidersSchema, setLTZero, setLTs, unpauseMidasIssuanceVault, verifyTestnet };
28
+ export { AccountOpener, Create2Deployer, DEFAULT_CREATE2_SALT, EthCallSpy, NoAvailableTransportsError, ONCHAIN_EXECUTION_ID_ADDRESS, OpenTxRevertedError, PUBLIC_CREATE2_FACTORY, RevolverTransport, SUPPORTED_RPC_PROVIDERS, SelectionStrategy, anvilNodeInfo, calcLiquidatableLTs, claimDSToken, claimDSTokens, claimFromFaucet, collectMidasGateways, collectMidasMTokens, createAnvilClient, createMinter, deployUsingPublicCreate2, detectChain, enableDSTokenBackDating, evmMineDetailed, extendAnvilClient, getAlchemyUrl, getAnkrUrl, getDrpcUrl, getErpcKey, getPublicCreate2Address, getRpcProviderUrl, getThirdWebUrl, greenlistMidasGateway, httpTransportOptionsSchema, iDegenNftv2Abi, iFaucetAbi, iOnchainExecutionIdAbi, iOwnableAbi, iaclTraitAbi, isAnvil, isDeployedUsingPublicCreate2, isOutOfSyncError, isRangeError, isRateLimitError, isTransientError, logSplitterTransport, makePendingWithdrawalsClaimable, migrateFaucet, providerConfigSchema, registerMidasInvestor, registerRWAInvestor, registerSecuritizeInvestor, replaceStorage, resilientTransport, resilientTransportOptionsSchema, revolverTransportConfigBaseSchema, revolverTransportConfigSchema, rpcProvidersSchema, setLTZero, setLTs, unpauseMidasIssuanceVault, verifyTestnet, writeContractSync };
@@ -1,6 +1,6 @@
1
- import { iWithdrawalCompressorV313Abi } from "../abi/IWithdrawalCompressorV313.js";
2
1
  import { getNetworkType } from "../onchain/chain/chains.js";
3
2
  import { getWithdrawalCompressorAddress } from "../onchain/accounts/withdrawal-compressor/addresses.js";
3
+ import { iWithdrawalCompressorV313Abi } from "../abi/IWithdrawalCompressorV313.js";
4
4
  import "../onchain/index.js";
5
5
  import { iMidasDataFeedAbi, iMidasRedemptionVaultAbi, midasGatewayAbi, midasRedeemerAbi, midasRedemptionVaultPhantomTokenAbi, securitizeRedeemerAbi, securitizeRedemptionGatewayAbi, securitizeRedemptionPhantomTokenAbi } from "./withdrawalAbi.js";
6
6
  import { erc20Abi, hexToString, parseAbi, parseEther } from "viem";
@@ -1,5 +1,5 @@
1
- import { ierc20Abi } from "../../abi/iERC20.js";
2
1
  import { iCreditFacadeV310Abi } from "../../abi/310/generated.js";
2
+ import { ierc20Abi } from "../../abi/iERC20.js";
3
3
  import { AddressMap } from "../../onchain/utils/AddressMap.js";
4
4
  import "../../onchain/index.js";
5
5
  import { UnexpectedFacadeEventOrderError } from "./errors.js";
@@ -1,5 +1,3 @@
1
- import { iBaseRewardPoolAbi } from "../../abi/iBaseRewardPool.js";
2
- import { ierc4626AdapterAbi } from "../../abi/ierc4626Adapter.js";
3
1
  import { AP_REWARDS_COMPRESSOR } from "../constants/address-provider.js";
4
2
  import { ADDRESS_0X0 } from "../constants/addresses.js";
5
3
  import { MAX_UINT256 } from "../constants/math.js";
@@ -10,6 +8,8 @@ import "../base/index.js";
10
8
  import { AccountBotsService } from "./bots/AccountBotsService.js";
11
9
  import "./bots/index.js";
12
10
  import { rewardsCompressorAbi } from "../../abi/compressors/rewardsCompressor.js";
11
+ import { iBaseRewardPoolAbi } from "../../abi/iBaseRewardPool.js";
12
+ import { ierc4626AdapterAbi } from "../../abi/ierc4626Adapter.js";
13
13
  import { expectedBalanceDeltas } from "../market/credit/expectedBalanceDeltas.js";
14
14
  import "../market/index.js";
15
15
  import { CreditAccountCompressor } from "./credit-account-compressor/CreditAccountCompressor.js";
@@ -1,4 +1,3 @@
1
- import { iLiquidationCompressorV313Abi } from "../../../abi/ILiquidationCompressorV313.js";
2
1
  import { AddressSet } from "../../utils/AddressSet.js";
3
2
  import { bytes32ToString } from "../../utils/bytes32ToString.js";
4
3
  import { ADDRESS_0X0 } from "../../constants/addresses.js";
@@ -20,6 +19,7 @@ import { SecuritizeLiquidatorContract } from "../../market/rwa/securitize/Securi
20
19
  import "../../market/rwa/securitize/index.js";
21
20
  import "../../market/index.js";
22
21
  import { LIQUIDATION_APPROVAL_BUFFER, LIQUIDATION_COMPRESSOR_V313_ADDRESS } from "./constants.js";
22
+ import { iLiquidationCompressorV313Abi } from "../../../abi/ILiquidationCompressorV313.js";
23
23
  import { skipLiquidatableAccount } from "./skipLiquidatableAccount.js";
24
24
  //#region src/onchain/accounts/liquidations/LiquidationsService.ts
25
25
  /**
@@ -1,9 +1,9 @@
1
- import { iRedemptionLoggerV310Abi } from "../../../abi/iRedemptionLoggerV310.js";
2
1
  import { BaseContract } from "../../base/BaseContract.js";
3
2
  import "../../base/index.js";
4
3
  import { sdkErr, sdkOk } from "../../../model/result.js";
5
4
  import "../../../model/index.js";
6
5
  import { decodeDelayedIntent } from "./intent-codec.js";
6
+ import { iRedemptionLoggerV310Abi } from "../../../abi/iRedemptionLoggerV310.js";
7
7
  //#region src/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.ts
8
8
  const abi = iRedemptionLoggerV310Abi;
9
9
  /**
@@ -1,5 +1,5 @@
1
- import { iWithdrawalCompressorV310Abi } from "../../../abi/IWithdrawalCompressorV310.js";
2
1
  import { AbstractWithdrawalCompressorContract } from "./AbstractWithdrawalCompressorContract.js";
2
+ import { iWithdrawalCompressorV310Abi } from "../../../abi/IWithdrawalCompressorV310.js";
3
3
  //#region src/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.ts
4
4
  const abi = iWithdrawalCompressorV310Abi;
5
5
  /**
@@ -1,5 +1,5 @@
1
- import { iWithdrawalCompressorV311Abi } from "../../../abi/IWithdrawalCompressorV311.js";
2
1
  import { AbstractWithdrawalCompressorContract } from "./AbstractWithdrawalCompressorContract.js";
2
+ import { iWithdrawalCompressorV311Abi } from "../../../abi/IWithdrawalCompressorV311.js";
3
3
  //#region src/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.ts
4
4
  const abi = iWithdrawalCompressorV311Abi;
5
5
  /**
@@ -1,6 +1,6 @@
1
- import { iWithdrawalCompressorV313Abi } from "../../../abi/IWithdrawalCompressorV313.js";
2
1
  import { encodeDelayedIntent } from "./intent-codec.js";
3
2
  import { AbstractWithdrawalCompressorContract, iCreditAccountAbi, toClaimableWithdrawal, toPendingWithdrawal, toRequestableWithdrawal } from "./AbstractWithdrawalCompressorContract.js";
3
+ import { iWithdrawalCompressorV313Abi } from "../../../abi/IWithdrawalCompressorV313.js";
4
4
  import { toWithdrawalStatus } from "./types.js";
5
5
  //#region src/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.ts
6
6
  const abi = iWithdrawalCompressorV313Abi;
@@ -1,12 +1,12 @@
1
- import { iExpirableAbi } from "../../abi/iExpirable.js";
2
- import { iStateSerializerAbi } from "../../abi/iStateSerializer.js";
3
- import { iVersionAbi } from "../../abi/iVersion.js";
4
1
  import { AddressMap } from "../utils/AddressMap.js";
5
2
  import { AddressSet } from "../utils/AddressSet.js";
6
3
  import { bytes32ToString } from "../utils/bytes32ToString.js";
7
4
  import { getAssetType } from "../chain/chains.js";
8
5
  import { formatBN } from "../utils/formatter.js";
9
6
  import "../utils/index.js";
7
+ import { iExpirableAbi } from "../../abi/iExpirable.js";
8
+ import { iStateSerializerAbi } from "../../abi/iStateSerializer.js";
9
+ import { iVersionAbi } from "../../abi/iVersion.js";
10
10
  import { SdkRWADataNotLoadedError } from "../core/errors.js";
11
11
  import { executeMulticallBatches } from "../utils/viem/executeMulticallBatches.js";
12
12
  //#region src/onchain/base/TokensMeta.ts
@@ -1,8 +1,8 @@
1
- import { iVersionAbi } from "../../abi/iVersion.js";
2
1
  import "../constants/address-provider.js";
3
2
  import { isV310 } from "../constants/versions.js";
4
3
  import "../constants/index.js";
5
4
  import { hexEq } from "../utils/hex.js";
5
+ import { iVersionAbi } from "../../abi/iVersion.js";
6
6
  import { AddressProviderV310Contract } from "./AddressProviderV310Contract.js";
7
7
  //#region src/onchain/core/createAddressProvider.ts
8
8
  const OVERRIDE_ADDRESSES = {};
@@ -65,7 +65,7 @@ const adapterConstructorAbi = {
65
65
  ["INFINIFI_UNWINDING"]: { 310: PHANTOM_TOKEN_ADAPTER_ABI },
66
66
  ["SECURITIZE_REDEMPTION"]: {
67
67
  310: PHANTOM_TOKEN_ADAPTER_ABI,
68
- 311: PHANTOM_TOKEN_ADAPTER_ABI
68
+ 311: BASIC_ADAPTER_ABI
69
69
  },
70
70
  ["STAKING_REWARDS"]: { 312: STAKING_REWARDS_ADAPTER_ABI },
71
71
  ["MIDAS_ISSUANCE_VAULT"]: {
@@ -1,5 +1,5 @@
1
- import { accountMigratorAbi } from "../../../../abi/AccountMigrator.js";
2
1
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
2
+ import { accountMigratorAbi } from "../../../../abi/AccountMigrator.js";
3
3
  //#region src/onchain/market/adapters/contracts/AccountMigratorAdapterContract.ts
4
4
  const abi = accountMigratorAbi;
5
5
  const protocolAbi = accountMigratorAbi;
@@ -1,6 +1,6 @@
1
- import { ierc4626AdapterAbi } from "../../../../abi/ierc4626Adapter.js";
2
1
  import { MissingSerializedParamsError } from "../../../base/errors.js";
3
2
  import "../../../base/index.js";
3
+ import { ierc4626AdapterAbi } from "../../../../abi/ierc4626Adapter.js";
4
4
  import { iERC4626Abi } from "../abi/targetContractAbi.js";
5
5
  import { fnSigToName, swapFromTransfers } from "../transferHelpers.js";
6
6
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
@@ -1,7 +1,7 @@
1
- import { iPausableAbi } from "../../../abi/iPausable.js";
2
1
  import { iCreditFacadeMulticallV310Abi, iCreditFacadeV310Abi } from "../../../abi/310/generated.js";
3
2
  import { BaseContract } from "../../base/BaseContract.js";
4
3
  import "../../base/index.js";
4
+ import { iPausableAbi } from "../../../abi/iPausable.js";
5
5
  //#region src/onchain/market/credit/CreditFacadeV310BaseContract.ts
6
6
  const abi = [
7
7
  ...iCreditFacadeV310Abi,
@@ -1,4 +1,3 @@
1
- import { iPausableAbi } from "../../../abi/iPausable.js";
2
1
  import { iPoolV310Abi } from "../../../abi/310/generated.js";
3
2
  import { AddressMap } from "../../utils/AddressMap.js";
4
3
  import { RAY } from "../../constants/math.js";
@@ -8,6 +7,7 @@ import "../../utils/index.js";
8
7
  import { SdkRWADataNotLoadedError } from "../../core/errors.js";
9
8
  import { BaseContract } from "../../base/BaseContract.js";
10
9
  import "../../base/index.js";
10
+ import { iPausableAbi } from "../../../abi/iPausable.js";
11
11
  //#region src/onchain/market/pool/PoolV310Contract.ts
12
12
  const abi = [...iPoolV310Abi, ...iPausableAbi];
13
13
  var PoolV310Contract = class extends BaseContract {
@@ -1,6 +1,6 @@
1
- import { iVersionAbi } from "../../../abi/iVersion.js";
2
1
  import { bytes32ToString } from "../../utils/bytes32ToString.js";
3
2
  import "../../utils/index.js";
3
+ import { iVersionAbi } from "../../../abi/iVersion.js";
4
4
  import { iMidasDegenNFTAbi } from "../../../abi/rwa/iMidasDegenNFT.js";
5
5
  import { DEGEN_NFT_MIDAS } from "./midas/constants.js";
6
6
  import { MidasDegenNFT } from "./midas/MidasDegenNFT.js";
@@ -1,5 +1,5 @@
1
- import { iethZapperAbi } from "../../../abi/iETHZapper.js";
2
1
  import { ZapperContract } from "./ZapperContract.js";
2
+ import { iethZapperAbi } from "../../../abi/iETHZapper.js";
3
3
  //#region src/onchain/market/zapper/IETHZapperContract.ts
4
4
  const abi = iethZapperAbi;
5
5
  var IETHZapperContract = class extends ZapperContract {
@@ -1,8 +1,8 @@
1
- import { iZapperAbi } from "../../../abi/iZapper.js";
2
1
  import { BaseContract } from "../../base/BaseContract.js";
3
2
  import "../../base/index.js";
4
3
  import { sdkErr, sdkOk } from "../../../model/result.js";
5
4
  import "../../../model/index.js";
5
+ import { iZapperAbi } from "../../../abi/iZapper.js";
6
6
  //#region src/onchain/market/zapper/ZapperContract.ts
7
7
  /**
8
8
  * Base contract for every Gearbox zapper. Specialized zappers (e.g.
@@ -1,8 +1,8 @@
1
- import { ierc20Abi } from "../../../abi/iERC20.js";
2
- import { iZapperAbi } from "../../../abi/iZapper.js";
3
1
  import { iPoolV310Abi } from "../../../abi/310/generated.js";
2
+ import { ierc20Abi } from "../../../abi/iERC20.js";
4
3
  import { sdkErr, sdkOk } from "../../../model/result.js";
5
4
  import "../../../model/index.js";
5
+ import { iZapperAbi } from "../../../abi/iZapper.js";
6
6
  //#region src/onchain/preview/preview/previewPoolPositionOperation.ts
7
7
  function previewRead(operation) {
8
8
  switch (operation.operation) {
@@ -1,6 +1,6 @@
1
1
  import { errorAbis } from "../../../abi/errors.js";
2
- import { iUpdatablePriceFeedAbi } from "../../../abi/iUpdatablePriceFeed.js";
3
2
  import { generateCastTraceCall } from "./cast.js";
3
+ import { iUpdatablePriceFeedAbi } from "../../../abi/iUpdatablePriceFeed.js";
4
4
  import { simulateMulticall } from "./simulateMulticall.js";
5
5
  import { BaseError, CallExecutionError, ContractFunctionRevertedError, decodeFunctionData, decodeFunctionResult, encodeFunctionData, parseAbi } from "viem";
6
6
  import { getAction, parseAccount } from "viem/utils";
@@ -24,7 +24,6 @@ interface ClaimFromFaucetOptions {
24
24
  amount?: TokenClaim[] | bigint | ((minAmountUSD: bigint) => bigint);
25
25
  gasMultiplier?: bigint;
26
26
  logger?: ILogger;
27
- sync?: boolean;
28
27
  }
29
28
  declare function claimFromFaucet(opts: ClaimFromFaucetOptions): Promise<void>;
30
29
  //#endregion
@@ -1,4 +1,4 @@
1
- import { Account, Address, Block, Chain, Client, Hex, Prettify, PublicClient, TestActions, TestRpcSchema, Transport, WalletClient } from "viem";
1
+ import { Abi, Account, Address, Block, Chain, Client, ContractFunctionArgs, ContractFunctionName, Hex, Prettify, PublicClient, TestActions, TestRpcSchema, Transport, WalletClient, WriteContractSyncParameters, WriteContractSyncReturnType } from "viem";
2
2
  //#region src/dev/createAnvilClient.d.ts
3
3
  interface AnvilNodeInfo {
4
4
  currentBlockNumber: string;
@@ -67,7 +67,7 @@ interface AnvilClientConfig<transport extends Transport = Transport, chain exten
67
67
  /**
68
68
  * Extends an arbitrary viem `PublicClient` with anvil + wallet actions plus
69
69
  * the SDK's bonus actions (`anvilNodeInfo`, `isAnvil`, `evmMineDetailed`,
70
- * `deal`).
70
+ * `deal`, `writeContractSync`).
71
71
  *
72
72
  * Used to lift `sdk.client` into an `AnvilClient` shape on the fly when test
73
73
  * RPCs (impersonateAccount, setBalance, setStorageAt, ...) are needed.
@@ -93,5 +93,12 @@ declare function anvilNodeInfo(client: Client<any, any, any, AnvilRPCSchema, any
93
93
  * @returns
94
94
  */
95
95
  declare function evmMineDetailed(client: Client<any, any, any, AnvilRPCSchema, any>, timestamp: bigint | number): Promise<Block<Hex> | undefined>;
96
+ /**
97
+ * Anvil-compatible `writeContractSync`: send via `writeContract` (Anvil
98
+ * supports `eth_sendTransaction` / `eth_sendRawTransaction`) then wait for
99
+ * the receipt. Viem's own action uses `eth_sendRawTransactionSync`, which
100
+ * Anvil does not implement.
101
+ */
102
+ declare function writeContractSync<chain extends Chain | undefined, account extends Account | undefined, const abi extends Abi | readonly unknown[], functionName extends ContractFunctionName<abi, "nonpayable" | "payable">, args extends ContractFunctionArgs<abi, "nonpayable" | "payable", functionName>, chainOverride extends Chain | undefined>(client: Client<Transport, chain, account>, parameters: WriteContractSyncParameters<abi, functionName, args, chain, account, chainOverride>): Promise<WriteContractSyncReturnType<chain>>;
96
103
  //#endregion
97
- export { AnvilActions, AnvilClient, AnvilClientConfig, AnvilDealParameters, AnvilNodeInfo, AnvilRPCSchema, anvilNodeInfo, createAnvilClient, evmMineDetailed, extendAnvilClient, isAnvil };
104
+ export { AnvilActions, AnvilClient, AnvilClientConfig, AnvilDealParameters, AnvilNodeInfo, AnvilRPCSchema, anvilNodeInfo, createAnvilClient, evmMineDetailed, extendAnvilClient, isAnvil, writeContractSync };
@@ -6,7 +6,7 @@ import { iDegenNftv2Abi, iFaucetAbi, iOnchainExecutionIdAbi, iOwnableAbi, iaclTr
6
6
  import { calcLiquidatableLTs } from "./calcLiquidatableLTs.js";
7
7
  import { claimFromFaucet } from "./claimFromFaucet.js";
8
8
  import { Create2Deployer, Create2Parameters, DEFAULT_CREATE2_SALT, EnsureExistsUsingPublicCreate2ReturnType, GetCreate2AddressParameters, PUBLIC_CREATE2_FACTORY, deployUsingPublicCreate2, getPublicCreate2Address, isDeployedUsingPublicCreate2 } from "./create2.js";
9
- import { AnvilActions, AnvilClient, AnvilClientConfig, AnvilDealParameters, AnvilNodeInfo, AnvilRPCSchema, anvilNodeInfo, createAnvilClient, evmMineDetailed, extendAnvilClient, isAnvil } from "./createAnvilClient.js";
9
+ import { AnvilActions, AnvilClient, AnvilClientConfig, AnvilDealParameters, AnvilNodeInfo, AnvilRPCSchema, anvilNodeInfo, createAnvilClient, evmMineDetailed, extendAnvilClient, isAnvil, writeContractSync } from "./createAnvilClient.js";
10
10
  import { detectChain } from "./detectChain.js";
11
11
  import { isOutOfSyncError } from "./isOutOfSyncError.js";
12
12
  import { isRateLimitError } from "./isRateLimitError.js";
@@ -26,4 +26,4 @@ import { EnableDSTokenBackDatingProps, RestoreDSTokenBackDating, claimDSToken, c
26
26
  import { httpTransportOptionsSchema } from "./transports.js";
27
27
  import { ONCHAIN_EXECUTION_ID_ADDRESS, VerifyTestnetParams, verifyTestnet } from "./verifyTestnet.js";
28
28
  import { MakePendingWithdrawalsClaimableOptions, makePendingWithdrawalsClaimable } from "./withdrawalUtils.js";
29
- export { AccountOpener, AccountOpenerOptions, AnvilActions, AnvilClient, AnvilClientConfig, AnvilDealParameters, AnvilNodeInfo, AnvilRPCSchema, CheckMulticallFn, Create2Deployer, Create2Parameters, DEFAULT_CREATE2_SALT, DetectedCall, EnableDSTokenBackDatingProps, EnsureExistsUsingPublicCreate2ReturnType, EthCallMethod, EthCallRequest, EthCallSpy, GetCreate2AddressParameters, GreenlistMidasGatewayProps, IMinter, type LogSplitterTransportOptions, MakePendingWithdrawalsClaimableOptions, NoAvailableTransportsError, ONCHAIN_EXECUTION_ID_ADDRESS, OpenAccountHumanizedPreview, OpenAccountResult, OpenAccountsResult, OpenTxRevertedError, PUBLIC_CREATE2_FACTORY, PoolDepositResult, ProviderConfig, ProviderStatus, RWAKycFailure, RegisterMidasInvestorProps, RegisterRWAInvestorProps, RegisterRWAInvestorResult, RegisterSecuritizeInvestorProps, ReplaceStorageParams, ResilientTransportOptions, RestoreDSTokenBackDating, RestoreMidasIssuanceVaultPause, RevolverTransport, RevolverTransportConfig, RevolverTransportValue, RpcErrorResult, RpcProvider, RpcResponse, RpcSuccessResult, SUPPORTED_RPC_PROVIDERS, SelectionStrategy, TargetAccount, UnpauseMidasIssuanceVaultProps, VerifyTestnetParams, anvilNodeInfo, calcLiquidatableLTs, claimDSToken, claimDSTokens, claimFromFaucet, collectMidasGateways, collectMidasMTokens, createAnvilClient, createMinter, deployUsingPublicCreate2, detectChain, enableDSTokenBackDating, evmMineDetailed, extendAnvilClient, getAlchemyUrl, getAnkrUrl, getDrpcUrl, getErpcKey, getPublicCreate2Address, getRpcProviderUrl, getThirdWebUrl, greenlistMidasGateway, httpTransportOptionsSchema, iDegenNftv2Abi, iFaucetAbi, iOnchainExecutionIdAbi, iOwnableAbi, iaclTraitAbi, isAnvil, isDeployedUsingPublicCreate2, isOutOfSyncError, isRangeError, isRateLimitError, isTransientError, logSplitterTransport, makePendingWithdrawalsClaimable, migrateFaucet, providerConfigSchema, registerMidasInvestor, registerRWAInvestor, registerSecuritizeInvestor, replaceStorage, resilientTransport, resilientTransportOptionsSchema, revolverTransportConfigBaseSchema, revolverTransportConfigSchema, rpcProvidersSchema, setLTZero, setLTs, unpauseMidasIssuanceVault, verifyTestnet };
29
+ export { AccountOpener, AccountOpenerOptions, AnvilActions, AnvilClient, AnvilClientConfig, AnvilDealParameters, AnvilNodeInfo, AnvilRPCSchema, CheckMulticallFn, Create2Deployer, Create2Parameters, DEFAULT_CREATE2_SALT, DetectedCall, EnableDSTokenBackDatingProps, EnsureExistsUsingPublicCreate2ReturnType, EthCallMethod, EthCallRequest, EthCallSpy, GetCreate2AddressParameters, GreenlistMidasGatewayProps, IMinter, type LogSplitterTransportOptions, MakePendingWithdrawalsClaimableOptions, NoAvailableTransportsError, ONCHAIN_EXECUTION_ID_ADDRESS, OpenAccountHumanizedPreview, OpenAccountResult, OpenAccountsResult, OpenTxRevertedError, PUBLIC_CREATE2_FACTORY, PoolDepositResult, ProviderConfig, ProviderStatus, RWAKycFailure, RegisterMidasInvestorProps, RegisterRWAInvestorProps, RegisterRWAInvestorResult, RegisterSecuritizeInvestorProps, ReplaceStorageParams, ResilientTransportOptions, RestoreDSTokenBackDating, RestoreMidasIssuanceVaultPause, RevolverTransport, RevolverTransportConfig, RevolverTransportValue, RpcErrorResult, RpcProvider, RpcResponse, RpcSuccessResult, SUPPORTED_RPC_PROVIDERS, SelectionStrategy, TargetAccount, UnpauseMidasIssuanceVaultProps, VerifyTestnetParams, anvilNodeInfo, calcLiquidatableLTs, claimDSToken, claimDSTokens, claimFromFaucet, collectMidasGateways, collectMidasMTokens, createAnvilClient, createMinter, deployUsingPublicCreate2, detectChain, enableDSTokenBackDating, evmMineDetailed, extendAnvilClient, getAlchemyUrl, getAnkrUrl, getDrpcUrl, getErpcKey, getPublicCreate2Address, getRpcProviderUrl, getThirdWebUrl, greenlistMidasGateway, httpTransportOptionsSchema, iDegenNftv2Abi, iFaucetAbi, iOnchainExecutionIdAbi, iOwnableAbi, iaclTraitAbi, isAnvil, isDeployedUsingPublicCreate2, isOutOfSyncError, isRangeError, isRateLimitError, isTransientError, logSplitterTransport, makePendingWithdrawalsClaimable, migrateFaucet, providerConfigSchema, registerMidasInvestor, registerRWAInvestor, registerSecuritizeInvestor, replaceStorage, resilientTransport, resilientTransportOptionsSchema, revolverTransportConfigBaseSchema, revolverTransportConfigSchema, rpcProvidersSchema, setLTZero, setLTs, unpauseMidasIssuanceVault, verifyTestnet, writeContractSync };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "16.5.1",
3
+ "version": "16.5.3",
4
4
  "description": "Gearbox SDK",
5
5
  "license": "MIT",
6
6
  "repository": {