@gearbox-protocol/sdk 18.1.0 → 18.2.0-next.10
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/cjs/abi/compressors/subcompressors/liquidation/treehouseLiquidationSubcompressor.js +179 -0
- package/dist/cjs/abi/compressors/subcompressors/withdrawal/treehouseWithdrawalSubcompressor.js +534 -0
- package/dist/cjs/abi/router/treehouseWorker.js +885 -0
- package/dist/cjs/onchain/market/adapters/abi/actionAbi.js +1 -0
- package/dist/cjs/onchain/market/adapters/abi/conctructorAbi.js +3 -0
- package/dist/cjs/onchain/market/adapters/types.js +3 -0
- package/dist/cjs/permissionless/api/GearboxPermissionless.js +12 -5
- package/dist/cjs/permissionless/api/analytics/PermissionlessAnalytics.js +50 -0
- package/dist/cjs/permissionless/api/analytics/index.js +4 -0
- package/dist/cjs/permissionless/api/analytics/schemas.js +27 -0
- package/dist/cjs/permissionless/api/analytics/types.js +1 -0
- package/dist/cjs/permissionless/api/index.js +3 -0
- package/dist/cjs/permissionless/api/oracles/PermissionlessOracles.js +444 -28
- package/dist/cjs/permissionless/api/oracles/enrich.js +99 -0
- package/dist/cjs/permissionless/api/oracles/schemas.js +102 -16
- package/dist/cjs/permissionless/api/schemas.js +0 -3
- package/dist/cjs/permissionless/bindings/index.js +1 -1
- package/dist/cjs/permissionless/index.js +4 -1
- package/dist/cjs/permissionless/utils/index.js +1 -0
- package/dist/cjs/permissionless/utils/price-update/get-prices.js +25 -0
- package/dist/cjs/permissionless/utils/price-update/index.js +1 -0
- package/dist/cjs/testnets/TestnetsAPI.js +179 -0
- package/dist/cjs/testnets/errors/TestnetNotFoundError.js +15 -0
- package/dist/cjs/testnets/errors/TestnetRequestFailedError.js +24 -0
- package/dist/cjs/testnets/errors/TestnetStatusError.js +19 -0
- package/dist/cjs/testnets/errors/TestnetValidationError.js +24 -0
- package/dist/cjs/testnets/errors/TestnetWaitTimeoutError.js +30 -0
- package/dist/cjs/testnets/errors/TestnetsError.js +34 -0
- package/dist/cjs/testnets/errors/index.js +13 -0
- package/dist/cjs/testnets/index.js +32 -0
- package/dist/cjs/testnets/package.json +1 -0
- package/dist/cjs/testnets/schemas.js +242 -0
- package/dist/cjs/testnets/types.js +1 -0
- package/dist/esm/abi/compressors/subcompressors/liquidation/treehouseLiquidationSubcompressor.js +178 -0
- package/dist/esm/abi/compressors/subcompressors/withdrawal/treehouseWithdrawalSubcompressor.js +533 -0
- package/dist/esm/abi/router/treehouseWorker.js +884 -0
- package/dist/esm/onchain/market/adapters/abi/actionAbi.js +1 -0
- package/dist/esm/onchain/market/adapters/abi/conctructorAbi.js +3 -0
- package/dist/esm/onchain/market/adapters/types.js +3 -0
- package/dist/esm/permissionless/api/GearboxPermissionless.js +12 -5
- package/dist/esm/permissionless/api/analytics/PermissionlessAnalytics.js +49 -0
- package/dist/esm/permissionless/api/analytics/index.js +2 -0
- package/dist/esm/permissionless/api/analytics/schemas.js +25 -0
- package/dist/esm/permissionless/api/analytics/types.js +1 -0
- package/dist/esm/permissionless/api/index.js +3 -1
- package/dist/esm/permissionless/api/oracles/PermissionlessOracles.js +446 -30
- package/dist/esm/permissionless/api/oracles/enrich.js +94 -0
- package/dist/esm/permissionless/api/oracles/schemas.js +94 -17
- package/dist/esm/permissionless/api/schemas.js +2 -4
- package/dist/esm/permissionless/bindings/index.js +1 -1
- package/dist/esm/permissionless/index.js +4 -3
- package/dist/esm/permissionless/utils/index.js +2 -2
- package/dist/esm/permissionless/utils/price-update/get-prices.js +25 -1
- package/dist/esm/permissionless/utils/price-update/index.js +2 -2
- package/dist/esm/testnets/TestnetsAPI.js +178 -0
- package/dist/esm/testnets/errors/TestnetNotFoundError.js +14 -0
- package/dist/esm/testnets/errors/TestnetRequestFailedError.js +23 -0
- package/dist/esm/testnets/errors/TestnetStatusError.js +18 -0
- package/dist/esm/testnets/errors/TestnetValidationError.js +23 -0
- package/dist/esm/testnets/errors/TestnetWaitTimeoutError.js +29 -0
- package/dist/esm/testnets/errors/TestnetsError.js +33 -0
- package/dist/esm/testnets/errors/index.js +7 -0
- package/dist/esm/testnets/index.js +11 -0
- package/dist/esm/testnets/package.json +1 -0
- package/dist/esm/testnets/schemas.js +228 -0
- package/dist/esm/testnets/types.js +1 -0
- package/dist/types/abi/compressors/subcompressors/liquidation/treehouseLiquidationSubcompressor.d.ts +148 -0
- package/dist/types/abi/compressors/subcompressors/withdrawal/treehouseWithdrawalSubcompressor.d.ts +440 -0
- package/dist/types/abi/router/treehouseWorker.d.ts +728 -0
- package/dist/types/onchain/market/adapters/types.d.ts +4 -1
- package/dist/types/permissionless/api/GearboxPermissionless.d.ts +11 -5
- package/dist/types/permissionless/api/analytics/PermissionlessAnalytics.d.ts +38 -0
- package/dist/types/permissionless/api/analytics/index.d.ts +3 -0
- package/dist/types/permissionless/api/analytics/schemas.d.ts +32 -0
- package/dist/types/permissionless/api/analytics/types.d.ts +38 -0
- package/dist/types/permissionless/api/index.d.ts +5 -2
- package/dist/types/permissionless/api/oracles/PermissionlessOracles.d.ts +159 -22
- package/dist/types/permissionless/api/oracles/enrich.d.ts +59 -0
- package/dist/types/permissionless/api/oracles/index.d.ts +2 -2
- package/dist/types/permissionless/api/oracles/schemas.d.ts +202 -7
- package/dist/types/permissionless/api/oracles/types.d.ts +401 -22
- package/dist/types/permissionless/api/schemas.d.ts +0 -2
- package/dist/types/permissionless/index.d.ts +5 -3
- package/dist/types/permissionless/utils/index.d.ts +2 -2
- package/dist/types/permissionless/utils/price-update/get-prices.d.ts +17 -0
- package/dist/types/permissionless/utils/price-update/index.d.ts +2 -2
- package/dist/types/testnets/TestnetsAPI.d.ts +108 -0
- package/dist/types/testnets/errors/TestnetNotFoundError.d.ts +12 -0
- package/dist/types/testnets/errors/TestnetRequestFailedError.d.ts +11 -0
- package/dist/types/testnets/errors/TestnetStatusError.d.ts +15 -0
- package/dist/types/testnets/errors/TestnetValidationError.d.ts +16 -0
- package/dist/types/testnets/errors/TestnetWaitTimeoutError.d.ts +21 -0
- package/dist/types/testnets/errors/TestnetsError.d.ts +47 -0
- package/dist/types/testnets/errors/index.d.ts +7 -0
- package/dist/types/testnets/index.d.ts +11 -0
- package/dist/types/testnets/schemas.d.ts +554 -0
- package/dist/types/testnets/types.d.ts +717 -0
- package/package.json +9 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_permissionless_api_chains_schemas = require("../chains/schemas.js");
|
|
2
3
|
const require_permissionless_api_schemas = require("../schemas.js");
|
|
3
4
|
let zod_v4 = require("zod/v4");
|
|
4
5
|
//#region src/permissionless/api/oracles/schemas.ts
|
|
@@ -19,33 +20,118 @@ const priceFeedSchema = zod_v4.z.looseObject({
|
|
|
19
20
|
stalenessPeriod: zod_v4.z.number(),
|
|
20
21
|
name: zod_v4.z.string()
|
|
21
22
|
});
|
|
22
|
-
/**
|
|
23
|
-
|
|
23
|
+
/**
|
|
24
|
+
* {@link PermissionlessPriceFeedAsset}
|
|
25
|
+
*
|
|
26
|
+
* What identifies an asset, which is all a feed's own listing of one says.
|
|
27
|
+
**/
|
|
28
|
+
const priceFeedAssetSchema = zod_v4.z.looseObject({
|
|
24
29
|
address: require_permissionless_api_schemas.addressSchema,
|
|
25
30
|
symbol: zod_v4.z.string(),
|
|
26
31
|
name: zod_v4.z.string(),
|
|
27
|
-
decimals: zod_v4.z.number()
|
|
32
|
+
decimals: zod_v4.z.number()
|
|
33
|
+
});
|
|
34
|
+
/** {@link PermissionlessAsset} — identified as above, plus what prices it. */
|
|
35
|
+
const assetSchema = priceFeedAssetSchema.extend({
|
|
28
36
|
owner: require_permissionless_api_schemas.addressSchema,
|
|
29
37
|
priceFeeds: zod_v4.z.array(priceFeedSchema)
|
|
30
38
|
});
|
|
31
|
-
/**
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
/**
|
|
40
|
+
* {@link PermissionlessPriceFeedStore}
|
|
41
|
+
*
|
|
42
|
+
* A store is a chain's, and is described by the same five fields the chain
|
|
43
|
+
* list answers with, so those are extended rather than restated.
|
|
44
|
+
**/
|
|
45
|
+
const priceFeedStoreSchema = require_permissionless_api_chains_schemas.chainSchema.extend({
|
|
38
46
|
assets: zod_v4.z.array(assetSchema),
|
|
39
47
|
priceFeeds: zod_v4.z.array(priceFeedSchema)
|
|
40
48
|
});
|
|
41
|
-
/** {@link
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
49
|
+
/** Every chain's {@link PermissionlessPriceFeedStore}, one per chain. */
|
|
50
|
+
const priceFeedStoresSchema = zod_v4.z.array(priceFeedStoreSchema);
|
|
51
|
+
/**
|
|
52
|
+
* What names a market, whichever side it is being listed from.
|
|
53
|
+
*
|
|
54
|
+
* A feed's markets and an asset's markets are different reads, but they
|
|
55
|
+
* answer with the same market: who curates it, what it is denominated in and
|
|
56
|
+
* how much of the quota is taken. Only what the read is about differs, which
|
|
57
|
+
* is what each of the two below adds.
|
|
58
|
+
**/
|
|
59
|
+
const marketSchema = zod_v4.z.looseObject({
|
|
60
|
+
market: require_permissionless_api_schemas.addressSchema,
|
|
61
|
+
marketConfigurator: require_permissionless_api_schemas.addressSchema,
|
|
62
|
+
curatorName: zod_v4.z.string().nullable(),
|
|
63
|
+
marketName: zod_v4.z.string().nullable(),
|
|
64
|
+
underlyingSymbol: zod_v4.z.string().nullable(),
|
|
65
|
+
isUnderlying: zod_v4.z.boolean(),
|
|
66
|
+
quotaLimit: zod_v4.z.number().nullable(),
|
|
67
|
+
quotaUsed: zod_v4.z.number().nullable()
|
|
68
|
+
});
|
|
69
|
+
/**
|
|
70
|
+
* {@link PermissionlessIndexedPriceFeedMarket} — the market as the feed's slot
|
|
71
|
+
* in it, before the oracle is asked what period it holds for the slot.
|
|
72
|
+
**/
|
|
73
|
+
const priceFeedMarketSchema = marketSchema.extend({
|
|
74
|
+
token: require_permissionless_api_schemas.addressSchema,
|
|
75
|
+
tokenSymbol: zod_v4.z.string().nullable(),
|
|
76
|
+
reserve: zod_v4.z.boolean(),
|
|
77
|
+
priceOracle: require_permissionless_api_schemas.addressSchema
|
|
78
|
+
});
|
|
79
|
+
/** {@link PermissionlessIndexedPriceFeedDetails} */
|
|
80
|
+
const priceFeedDetailsSchema = zod_v4.z.looseObject({
|
|
81
|
+
chainId: zod_v4.z.number(),
|
|
82
|
+
priceFeed: priceFeedSchema,
|
|
83
|
+
assets: zod_v4.z.array(priceFeedAssetSchema),
|
|
84
|
+
markets: zod_v4.z.array(priceFeedMarketSchema)
|
|
85
|
+
});
|
|
86
|
+
/** {@link PermissionlessAssetMarketFeed} */
|
|
87
|
+
const assetMarketFeedSchema = zod_v4.z.looseObject({
|
|
88
|
+
address: require_permissionless_api_schemas.addressSchema,
|
|
89
|
+
name: zod_v4.z.string().nullable(),
|
|
90
|
+
inStore: zod_v4.z.boolean()
|
|
91
|
+
});
|
|
92
|
+
/** {@link PermissionlessAssetMarket} — the market as what prices the asset in it. */
|
|
93
|
+
const assetMarketSchema = marketSchema.extend({
|
|
94
|
+
underlyingToken: require_permissionless_api_schemas.addressSchema,
|
|
95
|
+
underlyingPriceFeed: require_permissionless_api_schemas.addressSchema.nullable(),
|
|
96
|
+
isShutdown: zod_v4.z.boolean(),
|
|
97
|
+
mainFeed: assetMarketFeedSchema.nullable(),
|
|
98
|
+
reserveFeed: assetMarketFeedSchema.nullable()
|
|
99
|
+
});
|
|
100
|
+
/** {@link PermissionlessIndexedAssetDetails} */
|
|
101
|
+
const assetDetailsSchema = zod_v4.z.looseObject({
|
|
102
|
+
chainId: zod_v4.z.number(),
|
|
103
|
+
asset: priceFeedAssetSchema,
|
|
104
|
+
priceFeeds: zod_v4.z.array(priceFeedSchema),
|
|
105
|
+
markets: zod_v4.z.array(assetMarketSchema)
|
|
106
|
+
});
|
|
107
|
+
/** {@link PermissionlessAssetQuota} */
|
|
108
|
+
const assetQuotaSchema = zod_v4.z.looseObject({
|
|
109
|
+
quotaLimit: zod_v4.z.number().nullable(),
|
|
110
|
+
quotaUsed: zod_v4.z.number().nullable(),
|
|
111
|
+
isShutdown: zod_v4.z.boolean(),
|
|
112
|
+
underlyingPriceFeed: require_permissionless_api_schemas.addressSchema.nullable()
|
|
113
|
+
});
|
|
114
|
+
/** {@link PermissionlessIndexedAssetSummary} */
|
|
115
|
+
const assetSummarySchema = zod_v4.z.looseObject({
|
|
116
|
+
chainId: zod_v4.z.number(),
|
|
117
|
+
address: require_permissionless_api_schemas.addressSchema,
|
|
118
|
+
symbol: zod_v4.z.string(),
|
|
119
|
+
underlyingMarketCount: zod_v4.z.number(),
|
|
120
|
+
marketQuotas: zod_v4.z.array(assetQuotaSchema)
|
|
46
121
|
});
|
|
122
|
+
/** The list of {@link PermissionlessAssetSummary}, already ordered. */
|
|
123
|
+
const assetSummariesSchema = zod_v4.z.array(assetSummarySchema);
|
|
47
124
|
//#endregion
|
|
125
|
+
exports.assetDetailsSchema = assetDetailsSchema;
|
|
126
|
+
exports.assetMarketFeedSchema = assetMarketFeedSchema;
|
|
127
|
+
exports.assetMarketSchema = assetMarketSchema;
|
|
128
|
+
exports.assetQuotaSchema = assetQuotaSchema;
|
|
48
129
|
exports.assetSchema = assetSchema;
|
|
130
|
+
exports.assetSummariesSchema = assetSummariesSchema;
|
|
131
|
+
exports.assetSummarySchema = assetSummarySchema;
|
|
132
|
+
exports.priceFeedAssetSchema = priceFeedAssetSchema;
|
|
133
|
+
exports.priceFeedDetailsSchema = priceFeedDetailsSchema;
|
|
134
|
+
exports.priceFeedMarketSchema = priceFeedMarketSchema;
|
|
49
135
|
exports.priceFeedSchema = priceFeedSchema;
|
|
50
136
|
exports.priceFeedStoreSchema = priceFeedStoreSchema;
|
|
51
|
-
exports.
|
|
137
|
+
exports.priceFeedStoresSchema = priceFeedStoresSchema;
|
|
@@ -12,8 +12,6 @@ let zod_v4 = require("zod/v4");
|
|
|
12
12
|
**/
|
|
13
13
|
/** An address, in whatever case the backend serves it. */
|
|
14
14
|
const addressSchema = zod_v4.z.custom((value) => typeof value === "string" && (0, viem.isAddress)(value, { strict: false }), { message: "invalid address" });
|
|
15
|
-
/** A `0x`-prefixed hex string, as viem's `Hex`. */
|
|
16
|
-
const hexSchema = zod_v4.z.custom((value) => typeof value === "string" && (0, viem.isHex)(value), { message: "invalid hex string" });
|
|
17
15
|
/**
|
|
18
16
|
* A record keyed by address. Spelled out here because zod types a record key
|
|
19
17
|
* by the schema's output, which the branded `Address` is not inferred as.
|
|
@@ -25,4 +23,3 @@ function addressRecord(value) {
|
|
|
25
23
|
//#endregion
|
|
26
24
|
exports.addressRecord = addressRecord;
|
|
27
25
|
exports.addressSchema = addressSchema;
|
|
28
|
-
exports.hexSchema = hexSchema;
|
|
@@ -2,6 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_permissionless_bindings_bytecode_repository = require("./bytecode-repository.js");
|
|
3
3
|
const require_permissionless_bindings_pricefeeds_index = require("./pricefeeds/index.js");
|
|
4
4
|
const require_permissionless_bindings_price_feed_store = require("./price-feed-store.js");
|
|
5
|
+
const require_permissionless_bindings_address_provider = require("./address-provider.js");
|
|
5
6
|
const require_permissionless_bindings_compressors_token_compressor = require("./compressors/token-compressor.js");
|
|
6
7
|
const require_permissionless_bindings_compressors_withdrawal_compressor = require("./compressors/withdrawal-compressor.js");
|
|
7
8
|
require("./compressors/index.js");
|
|
@@ -9,7 +10,6 @@ const require_permissionless_bindings_router_routing_manager = require("./router
|
|
|
9
10
|
require("./router/index.js");
|
|
10
11
|
const require_permissionless_bindings_treasury_splitter = require("./treasury-splitter.js");
|
|
11
12
|
const require_permissionless_bindings_instance_manager = require("./instance-manager.js");
|
|
12
|
-
const require_permissionless_bindings_address_provider = require("./address-provider.js");
|
|
13
13
|
const require_permissionless_bindings_market_configurator_factory = require("./market-configurator-factory.js");
|
|
14
14
|
const require_permissionless_bindings_cross_chain_multisig = require("./cross-chain-multisig.js");
|
|
15
15
|
const require_permissionless_bindings_types = require("./types.js");
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_permissionless_api_analytics_PermissionlessAnalytics = require("./api/analytics/PermissionlessAnalytics.js");
|
|
2
3
|
const require_permissionless_api_errors = require("./api/errors.js");
|
|
3
4
|
const require_permissionless_api_chains_ChainsNamespace = require("./api/chains/ChainsNamespace.js");
|
|
4
5
|
const require_permissionless_api_deploy_effective_staleness = require("./api/deploy/effective-staleness.js");
|
|
@@ -10,6 +11,7 @@ const require_permissionless_bindings_price_feed_store = require("./bindings/pri
|
|
|
10
11
|
const require_permissionless_deployment_addresses = require("./deployment/addresses.js");
|
|
11
12
|
const require_permissionless_utils_abi_encoder = require("./utils/abi-encoder.js");
|
|
12
13
|
const require_permissionless_api_deploy_PermissionlessDeploy = require("./api/deploy/PermissionlessDeploy.js");
|
|
14
|
+
const require_permissionless_bindings_address_provider = require("./bindings/address-provider.js");
|
|
13
15
|
const require_permissionless_utils_price_update_get_prices = require("./utils/price-update/get-prices.js");
|
|
14
16
|
const require_permissionless_api_oracles_PermissionlessOracles = require("./api/oracles/PermissionlessOracles.js");
|
|
15
17
|
const require_permissionless_bindings_compressors_token_compressor = require("./bindings/compressors/token-compressor.js");
|
|
@@ -22,7 +24,6 @@ const require_permissionless_utils_price_update_get_updatable_feeds = require(".
|
|
|
22
24
|
const require_permissionless_api_transactions_InstanceOwnerTransactions = require("./api/transactions/InstanceOwnerTransactions.js");
|
|
23
25
|
const require_permissionless_api_GearboxPermissionless = require("./api/GearboxPermissionless.js");
|
|
24
26
|
require("./api/index.js");
|
|
25
|
-
const require_permissionless_bindings_address_provider = require("./bindings/address-provider.js");
|
|
26
27
|
const require_permissionless_bindings_market_configurator_factory = require("./bindings/market-configurator-factory.js");
|
|
27
28
|
const require_permissionless_bindings_cross_chain_multisig = require("./bindings/cross-chain-multisig.js");
|
|
28
29
|
const require_permissionless_utils_create2 = require("./utils/create2.js");
|
|
@@ -68,6 +69,7 @@ exports.MarketConfiguratorContract = require_permissionless_bindings_market_conf
|
|
|
68
69
|
exports.MarketConfiguratorFactoryContract = require_permissionless_bindings_market_configurator_factory.MarketConfiguratorFactoryContract;
|
|
69
70
|
exports.PRICE_FEED_STORE = require_permissionless_utils_literals.PRICE_FEED_STORE;
|
|
70
71
|
exports.PUBLIC_CREATE2_FACTORY = require_permissionless_utils_create2.PUBLIC_CREATE2_FACTORY;
|
|
72
|
+
exports.PermissionlessAnalytics = require_permissionless_api_analytics_PermissionlessAnalytics.PermissionlessAnalytics;
|
|
71
73
|
exports.PermissionlessChainUnreachableError = require_permissionless_api_errors.PermissionlessChainUnreachableError;
|
|
72
74
|
exports.PermissionlessDeploy = require_permissionless_api_deploy_PermissionlessDeploy.PermissionlessDeploy;
|
|
73
75
|
exports.PermissionlessNotAttachedError = require_permissionless_api_errors.PermissionlessNotAttachedError;
|
|
@@ -100,6 +102,7 @@ exports.formatBytecodeVersion = require_permissionless_utils_format.formatByteco
|
|
|
100
102
|
exports.getBlockNumberByTimestamp = require_permissionless_utils_block_utils.getBlockNumberByTimestamp;
|
|
101
103
|
exports.getCreate2AddressPublicFactory = require_permissionless_utils_create2.getCreate2AddressPublicFactory;
|
|
102
104
|
exports.getCreate2DeploymentAddress = require_permissionless_utils_create2.getCreate2DeploymentAddress;
|
|
105
|
+
exports.getLatestPrices = require_permissionless_utils_price_update_get_prices.getLatestPrices;
|
|
103
106
|
exports.getPriceUpdateTx = require_permissionless_utils_price_update_get_price_update_tx.getPriceUpdateTx;
|
|
104
107
|
exports.getPrices = require_permissionless_utils_price_update_get_prices.getPrices;
|
|
105
108
|
exports.getSafeBatch = require_permissionless_utils_governance_batch.getSafeBatch;
|
|
@@ -35,6 +35,7 @@ exports.formatBytecodeVersion = require_permissionless_utils_format.formatByteco
|
|
|
35
35
|
exports.getBlockNumberByTimestamp = require_permissionless_utils_block_utils.getBlockNumberByTimestamp;
|
|
36
36
|
exports.getCreate2AddressPublicFactory = require_permissionless_utils_create2.getCreate2AddressPublicFactory;
|
|
37
37
|
exports.getCreate2DeploymentAddress = require_permissionless_utils_create2.getCreate2DeploymentAddress;
|
|
38
|
+
exports.getLatestPrices = require_permissionless_utils_price_update_get_prices.getLatestPrices;
|
|
38
39
|
exports.getPriceUpdateTx = require_permissionless_utils_price_update_get_price_update_tx.getPriceUpdateTx;
|
|
39
40
|
exports.getPrices = require_permissionless_utils_price_update_get_prices.getPrices;
|
|
40
41
|
exports.getSafeBatch = require_permissionless_utils_governance_batch.getSafeBatch;
|
|
@@ -40,6 +40,30 @@ function getLatestRoundDataCall(priceFeed) {
|
|
|
40
40
|
args: []
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* What the feeds report as they stand, in one multicall.
|
|
45
|
+
*
|
|
46
|
+
* What {@link getPrices} does without the part that makes it expensive: no
|
|
47
|
+
* `OnchainSDK` to attach and no update transactions to assemble, which is the
|
|
48
|
+
* whole cost of that call and is wasted on a feed that answers already. A feed
|
|
49
|
+
* that needs a fresh answer before it will be read comes back `null` here, so
|
|
50
|
+
* a caller that must price those falls back to {@link getPrices} for them and
|
|
51
|
+
* pays once for the few rather than once for all.
|
|
52
|
+
*
|
|
53
|
+
* `null` is also a feed whose read reverted for any other reason, which is not
|
|
54
|
+
* a zero.
|
|
55
|
+
*/
|
|
56
|
+
async function getLatestPrices({ client, priceFeeds }) {
|
|
57
|
+
if (priceFeeds.length === 0) return {};
|
|
58
|
+
const results = await client.multicall({
|
|
59
|
+
contracts: priceFeeds.map(getLatestRoundDataCall),
|
|
60
|
+
allowFailure: true
|
|
61
|
+
});
|
|
62
|
+
return Object.fromEntries(priceFeeds.map((priceFeed, index) => {
|
|
63
|
+
const result = results[index];
|
|
64
|
+
return [priceFeed, result?.status === "success" ? result.result[1] : null];
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
43
67
|
async function getPricesChunk({ client, priceFeeds, sdk }) {
|
|
44
68
|
const updateCall = priceFeeds.map((priceFeed) => getLatestRoundDataCall(priceFeed));
|
|
45
69
|
const multicallCalls = (await sdk.priceFeeds.generateExternalPriceFeedsUpdateTxs(priceFeeds)).txs.map((tx) => ({
|
|
@@ -83,4 +107,5 @@ async function getPrices({ client, priceFeeds, chunkSize = 10, gasLimit }) {
|
|
|
83
107
|
}), {});
|
|
84
108
|
}
|
|
85
109
|
//#endregion
|
|
110
|
+
exports.getLatestPrices = getLatestPrices;
|
|
86
111
|
exports.getPrices = getPrices;
|
|
@@ -2,6 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_permissionless_utils_price_update_get_prices = require("./get-prices.js");
|
|
3
3
|
const require_permissionless_utils_price_update_get_updatable_feeds = require("./get-updatable-feeds.js");
|
|
4
4
|
const require_permissionless_utils_price_update_get_price_update_tx = require("./get-price-update-tx.js");
|
|
5
|
+
exports.getLatestPrices = require_permissionless_utils_price_update_get_prices.getLatestPrices;
|
|
5
6
|
exports.getPriceUpdateTx = require_permissionless_utils_price_update_get_price_update_tx.getPriceUpdateTx;
|
|
6
7
|
exports.getPrices = require_permissionless_utils_price_update_get_prices.getPrices;
|
|
7
8
|
exports.getUpdatablePriceFeeds = require_permissionless_utils_price_update_get_updatable_feeds.getUpdatablePriceFeeds;
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_testnets_errors_TestnetStatusError = require("./errors/TestnetStatusError.js");
|
|
3
|
+
const require_testnets_errors_TestnetNotFoundError = require("./errors/TestnetNotFoundError.js");
|
|
4
|
+
const require_testnets_errors_TestnetRequestFailedError = require("./errors/TestnetRequestFailedError.js");
|
|
5
|
+
const require_testnets_errors_TestnetValidationError = require("./errors/TestnetValidationError.js");
|
|
6
|
+
const require_testnets_errors_TestnetWaitTimeoutError = require("./errors/TestnetWaitTimeoutError.js");
|
|
7
|
+
require("./errors/index.js");
|
|
8
|
+
const require_testnets_schemas = require("./schemas.js");
|
|
9
|
+
let zod_v4 = require("zod/v4");
|
|
10
|
+
//#region src/testnets/TestnetsAPI.ts
|
|
11
|
+
const DEFAULT_BASE_URL = "https://anvil.gearbox.foundation";
|
|
12
|
+
const DEFAULT_TIMEOUT = 3e4;
|
|
13
|
+
const DEFAULT_WAIT_TIMEOUT = 6e5;
|
|
14
|
+
const DEFAULT_WAIT_INTERVAL = 5e3;
|
|
15
|
+
const errorBodySchema = zod_v4.z.object({ error: zod_v4.z.string() });
|
|
16
|
+
/**
|
|
17
|
+
* Client for anvil-manager, which runs the anvil forks Gearbox calls
|
|
18
|
+
* testnets. It manages non-persistent testnets only, addressed by their
|
|
19
|
+
* execution id.
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* const testnets = new TestnetsAPI({ apiKey: process.env.ANVIL_MANAGER_API_KEY });
|
|
23
|
+
* const { executionId } = await testnets.create({ network: "Mainnet", timeout: "2h" });
|
|
24
|
+
* const status = await testnets.waitUntilReady(executionId);
|
|
25
|
+
* // ... use status.rpcUrl ...
|
|
26
|
+
* await testnets.kill(executionId);
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* Every method throws a {@link TestnetsError} subclass when it fails, except
|
|
30
|
+
* when a response body is not JSON: then it rejects with the error of
|
|
31
|
+
* `response.json()`.
|
|
32
|
+
**/
|
|
33
|
+
var TestnetsAPI = class {
|
|
34
|
+
logger;
|
|
35
|
+
#baseUrl;
|
|
36
|
+
#apiKey;
|
|
37
|
+
#timeout;
|
|
38
|
+
constructor(options = {}) {
|
|
39
|
+
this.#baseUrl = (options.baseUrl ?? DEFAULT_BASE_URL).replace(/\/+$/, "");
|
|
40
|
+
this.#apiKey = options.apiKey;
|
|
41
|
+
this.#timeout = options.timeout ?? DEFAULT_TIMEOUT;
|
|
42
|
+
this.logger = options.logger?.child?.({ name: "TestnetsAPI" }) ?? options.logger;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Base URL every request of this client is sent to.
|
|
46
|
+
**/
|
|
47
|
+
get baseUrl() {
|
|
48
|
+
return this.#baseUrl;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Every testnet anvil-manager knows of, persistent ones included.
|
|
52
|
+
**/
|
|
53
|
+
async list() {
|
|
54
|
+
const url = this.#url("/api/v1/forks");
|
|
55
|
+
const response = await this.#fetch(url, { method: "GET" });
|
|
56
|
+
return this.#decode(url, response, zod_v4.z.array(require_testnets_schemas.testnetSchema));
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Status of one testnet.
|
|
60
|
+
*
|
|
61
|
+
* @param id - Execution id of the testnet.
|
|
62
|
+
* @throws {@link TestnetNotFoundError} when there is no such testnet.
|
|
63
|
+
**/
|
|
64
|
+
async get(id) {
|
|
65
|
+
const url = this.#forkUrl(id);
|
|
66
|
+
const response = await this.#fetch(url, { method: "GET" });
|
|
67
|
+
return this.#decode(url, response, require_testnets_schemas.testnetStatusSchema);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Starts a testnet. It answers as soon as the testnet is created, long
|
|
71
|
+
* before it is {@link TestnetStatus.ready}.
|
|
72
|
+
*
|
|
73
|
+
* @param files - Saved in the testnet's shared dir, where scripts and tasks
|
|
74
|
+
* can read them.
|
|
75
|
+
**/
|
|
76
|
+
async create(request, files) {
|
|
77
|
+
const url = this.#url("/api/v1/forks");
|
|
78
|
+
const response = await this.#fetch(url, {
|
|
79
|
+
method: "POST",
|
|
80
|
+
...createBody(request, files)
|
|
81
|
+
});
|
|
82
|
+
return this.#decode(url, response, require_testnets_schemas.testnetStatusSchema);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Stops a testnet. Stopping one that is already stopped succeeds.
|
|
86
|
+
*
|
|
87
|
+
* @param id - Execution id of the testnet.
|
|
88
|
+
* @throws {@link TestnetNotFoundError} when there is no such testnet.
|
|
89
|
+
* @throws {@link TestnetStatusError} with status 400 when the testnet is
|
|
90
|
+
* persistent.
|
|
91
|
+
**/
|
|
92
|
+
async kill(id) {
|
|
93
|
+
await this.#fetch(this.#forkUrl(id), { method: "DELETE" });
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Polls a testnet's status until it is {@link TestnetStatus.ready}.
|
|
97
|
+
*
|
|
98
|
+
* @param id - Execution id of the testnet.
|
|
99
|
+
* @returns The first status that is ready.
|
|
100
|
+
* @throws {@link TestnetWaitTimeoutError} when the testnet is not ready in
|
|
101
|
+
* time. Any error of a poll is thrown as is, without retrying.
|
|
102
|
+
**/
|
|
103
|
+
async waitUntilReady(id, options = {}) {
|
|
104
|
+
const { timeout = DEFAULT_WAIT_TIMEOUT, interval = DEFAULT_WAIT_INTERVAL } = options;
|
|
105
|
+
const deadline = Date.now() + timeout;
|
|
106
|
+
while (true) {
|
|
107
|
+
const status = await this.get(id);
|
|
108
|
+
if (status.ready) return status;
|
|
109
|
+
const remaining = deadline - Date.now();
|
|
110
|
+
if (remaining <= 0) throw new require_testnets_errors_TestnetWaitTimeoutError.TestnetWaitTimeoutError(this.#forkUrl(id), id, timeout);
|
|
111
|
+
this.logger?.debug(`testnet ${id} is not ready yet`);
|
|
112
|
+
await new Promise((resolve) => setTimeout(resolve, Math.min(interval, remaining)));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
#url(path) {
|
|
116
|
+
return `${this.#baseUrl}${path}`;
|
|
117
|
+
}
|
|
118
|
+
#forkUrl(id) {
|
|
119
|
+
return this.#url(`/api/v1/forks/${encodeURIComponent(id)}`);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Sends one request and returns its response once it is known to be 2xx.
|
|
123
|
+
**/
|
|
124
|
+
async #fetch(url, init) {
|
|
125
|
+
const headers = new Headers(init.headers);
|
|
126
|
+
headers.set("accept", "application/json");
|
|
127
|
+
if (this.#apiKey) headers.set("authorization", `Bearer ${this.#apiKey}`);
|
|
128
|
+
let response;
|
|
129
|
+
try {
|
|
130
|
+
response = await fetch(url, {
|
|
131
|
+
...init,
|
|
132
|
+
headers,
|
|
133
|
+
signal: AbortSignal.timeout(this.#timeout)
|
|
134
|
+
});
|
|
135
|
+
} catch (error) {
|
|
136
|
+
throw new require_testnets_errors_TestnetRequestFailedError.TestnetRequestFailedError(url, error);
|
|
137
|
+
}
|
|
138
|
+
if (!response.ok) {
|
|
139
|
+
const responseBody = await response.text();
|
|
140
|
+
const details = errorBodySchema.safeParse(responseBody).data?.error;
|
|
141
|
+
throw response.status === 404 ? new require_testnets_errors_TestnetNotFoundError.TestnetNotFoundError(url, details) : new require_testnets_errors_TestnetStatusError.TestnetStatusError(url, response.status, details);
|
|
142
|
+
}
|
|
143
|
+
return response;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Body of a 2xx response, decoded.
|
|
147
|
+
**/
|
|
148
|
+
async #decode(url, response, schema) {
|
|
149
|
+
const payload = await response.json();
|
|
150
|
+
const parsed = schema.safeParse(payload);
|
|
151
|
+
if (!parsed.success) {
|
|
152
|
+
const error = new require_testnets_errors_TestnetValidationError.TestnetValidationError(url, parsed.error);
|
|
153
|
+
this.logger?.error(error, "anvil-manager response does not match the testnet schemas");
|
|
154
|
+
throw error;
|
|
155
|
+
}
|
|
156
|
+
return parsed.data;
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Body and content type of a create request: JSON alone, or a multipart form
|
|
161
|
+
* with the JSON in its `json` field when there are files to upload.
|
|
162
|
+
**/
|
|
163
|
+
function createBody(request, files) {
|
|
164
|
+
const json = JSON.stringify(request);
|
|
165
|
+
if (!files || Object.keys(files).length === 0) return {
|
|
166
|
+
body: json,
|
|
167
|
+
headers: { "content-type": "application/json" }
|
|
168
|
+
};
|
|
169
|
+
const form = new FormData();
|
|
170
|
+
form.append("json", json);
|
|
171
|
+
for (const [name, contents] of Object.entries(files)) form.append("file", toBlob(contents), name);
|
|
172
|
+
return { body: form };
|
|
173
|
+
}
|
|
174
|
+
function toBlob(contents) {
|
|
175
|
+
if (contents instanceof Blob) return contents;
|
|
176
|
+
return new Blob([typeof contents === "string" ? contents : new Uint8Array(contents)]);
|
|
177
|
+
}
|
|
178
|
+
//#endregion
|
|
179
|
+
exports.TestnetsAPI = TestnetsAPI;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_testnets_errors_TestnetStatusError = require("./TestnetStatusError.js");
|
|
3
|
+
//#region src/testnets/errors/TestnetNotFoundError.ts
|
|
4
|
+
/**
|
|
5
|
+
* Thrown when anvil-manager answered 404: there is no testnet with that
|
|
6
|
+
* execution id.
|
|
7
|
+
**/
|
|
8
|
+
var TestnetNotFoundError = class extends require_testnets_errors_TestnetStatusError.TestnetStatusError {
|
|
9
|
+
name = "TestnetNotFoundError";
|
|
10
|
+
constructor(url, details) {
|
|
11
|
+
super(url, 404, details);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
exports.TestnetNotFoundError = TestnetNotFoundError;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_testnets_errors_TestnetsError = require("./TestnetsError.js");
|
|
3
|
+
//#region src/testnets/errors/TestnetRequestFailedError.ts
|
|
4
|
+
/**
|
|
5
|
+
* Thrown when a request to anvil-manager never completed: the network was
|
|
6
|
+
* down, or it took longer than the client's timeout.
|
|
7
|
+
**/
|
|
8
|
+
var TestnetRequestFailedError = class extends require_testnets_errors_TestnetsError.TestnetsError {
|
|
9
|
+
name = "TestnetRequestFailedError";
|
|
10
|
+
constructor(url, cause) {
|
|
11
|
+
super(timedOut(cause) ? "The request to anvil-manager timed out." : "The request to anvil-manager failed.", {
|
|
12
|
+
url,
|
|
13
|
+
cause
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Whether a caught value is the rejection `AbortSignal.timeout` produces.
|
|
19
|
+
**/
|
|
20
|
+
function timedOut(error) {
|
|
21
|
+
return error instanceof Error && error.name === "TimeoutError";
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.TestnetRequestFailedError = TestnetRequestFailedError;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_testnets_errors_TestnetsError = require("./TestnetsError.js");
|
|
3
|
+
//#region src/testnets/errors/TestnetStatusError.ts
|
|
4
|
+
/**
|
|
5
|
+
* Thrown when anvil-manager answered with a status outside the 2xx range. What
|
|
6
|
+
* it said about it, when it said anything, is the `details` of the error.
|
|
7
|
+
**/
|
|
8
|
+
var TestnetStatusError = class extends require_testnets_errors_TestnetsError.TestnetsError {
|
|
9
|
+
name = "TestnetStatusError";
|
|
10
|
+
constructor(url, status, details) {
|
|
11
|
+
super(`anvil-manager answered ${status}.`, {
|
|
12
|
+
url,
|
|
13
|
+
status,
|
|
14
|
+
details
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
19
|
+
exports.TestnetStatusError = TestnetStatusError;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_testnets_errors_TestnetsError = require("./TestnetsError.js");
|
|
3
|
+
let zod_v4 = require("zod/v4");
|
|
4
|
+
//#region src/testnets/errors/TestnetValidationError.ts
|
|
5
|
+
/**
|
|
6
|
+
* Thrown when anvil-manager answered, but with a payload the testnet schemas
|
|
7
|
+
* do not describe, i.e. the two are of different versions.
|
|
8
|
+
**/
|
|
9
|
+
var TestnetValidationError = class extends require_testnets_errors_TestnetsError.TestnetsError {
|
|
10
|
+
name = "TestnetValidationError";
|
|
11
|
+
/**
|
|
12
|
+
* The zod failure itself, e.g. for `z.treeifyError(error.zodError)`.
|
|
13
|
+
**/
|
|
14
|
+
zodError;
|
|
15
|
+
constructor(url, zodError) {
|
|
16
|
+
super("The anvil-manager response does not match the testnet schemas.", {
|
|
17
|
+
url,
|
|
18
|
+
metaMessages: zod_v4.z.prettifyError(zodError).split("\n")
|
|
19
|
+
});
|
|
20
|
+
this.zodError = zodError;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.TestnetValidationError = TestnetValidationError;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_testnets_errors_TestnetsError = require("./TestnetsError.js");
|
|
3
|
+
//#region src/testnets/errors/TestnetWaitTimeoutError.ts
|
|
4
|
+
/**
|
|
5
|
+
* Thrown when a testnet did not become ready before the wait for it ran out.
|
|
6
|
+
**/
|
|
7
|
+
var TestnetWaitTimeoutError = class extends require_testnets_errors_TestnetsError.TestnetsError {
|
|
8
|
+
name = "TestnetWaitTimeoutError";
|
|
9
|
+
/**
|
|
10
|
+
* Execution id of the testnet that was waited for.
|
|
11
|
+
**/
|
|
12
|
+
id;
|
|
13
|
+
/**
|
|
14
|
+
* How long the wait lasted, in milliseconds.
|
|
15
|
+
**/
|
|
16
|
+
timeout;
|
|
17
|
+
/**
|
|
18
|
+
* @param url - Status URL that was polled.
|
|
19
|
+
**/
|
|
20
|
+
constructor(url, id, timeout) {
|
|
21
|
+
super(`Testnet ${id} did not become ready within ${timeout} ms.`, {
|
|
22
|
+
url,
|
|
23
|
+
metaMessages: [`Execution id: ${id}`, `Timeout: ${timeout} ms`]
|
|
24
|
+
});
|
|
25
|
+
this.id = id;
|
|
26
|
+
this.timeout = timeout;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
//#endregion
|
|
30
|
+
exports.TestnetWaitTimeoutError = TestnetWaitTimeoutError;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
let viem = require("viem");
|
|
3
|
+
//#region src/testnets/errors/TestnetsError.ts
|
|
4
|
+
/**
|
|
5
|
+
* Thrown by every testnet API call that fails. Its subclasses say how it
|
|
6
|
+
* failed; catch this one to catch all of them.
|
|
7
|
+
**/
|
|
8
|
+
var TestnetsError = class extends viem.BaseError {
|
|
9
|
+
/**
|
|
10
|
+
* URL that was requested.
|
|
11
|
+
**/
|
|
12
|
+
url;
|
|
13
|
+
/**
|
|
14
|
+
* Status anvil-manager answered with, absent when the request never
|
|
15
|
+
* completed.
|
|
16
|
+
**/
|
|
17
|
+
status;
|
|
18
|
+
constructor(summary, params) {
|
|
19
|
+
const { cause, details } = params;
|
|
20
|
+
super(summary, {
|
|
21
|
+
cause: cause instanceof Error ? cause : void 0,
|
|
22
|
+
details: cause === void 0 || cause instanceof Error ? details : String(cause),
|
|
23
|
+
metaMessages: [
|
|
24
|
+
`URL: ${params.url}`,
|
|
25
|
+
...params.status === void 0 ? [] : [`Status: ${params.status}`],
|
|
26
|
+
...params.metaMessages ?? []
|
|
27
|
+
]
|
|
28
|
+
});
|
|
29
|
+
this.url = params.url;
|
|
30
|
+
this.status = params.status;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
//#endregion
|
|
34
|
+
exports.TestnetsError = TestnetsError;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_testnets_errors_TestnetsError = require("./TestnetsError.js");
|
|
3
|
+
const require_testnets_errors_TestnetStatusError = require("./TestnetStatusError.js");
|
|
4
|
+
const require_testnets_errors_TestnetNotFoundError = require("./TestnetNotFoundError.js");
|
|
5
|
+
const require_testnets_errors_TestnetRequestFailedError = require("./TestnetRequestFailedError.js");
|
|
6
|
+
const require_testnets_errors_TestnetValidationError = require("./TestnetValidationError.js");
|
|
7
|
+
const require_testnets_errors_TestnetWaitTimeoutError = require("./TestnetWaitTimeoutError.js");
|
|
8
|
+
exports.TestnetNotFoundError = require_testnets_errors_TestnetNotFoundError.TestnetNotFoundError;
|
|
9
|
+
exports.TestnetRequestFailedError = require_testnets_errors_TestnetRequestFailedError.TestnetRequestFailedError;
|
|
10
|
+
exports.TestnetStatusError = require_testnets_errors_TestnetStatusError.TestnetStatusError;
|
|
11
|
+
exports.TestnetValidationError = require_testnets_errors_TestnetValidationError.TestnetValidationError;
|
|
12
|
+
exports.TestnetWaitTimeoutError = require_testnets_errors_TestnetWaitTimeoutError.TestnetWaitTimeoutError;
|
|
13
|
+
exports.TestnetsError = require_testnets_errors_TestnetsError.TestnetsError;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_testnets_errors_TestnetsError = require("./errors/TestnetsError.js");
|
|
3
|
+
const require_testnets_errors_TestnetStatusError = require("./errors/TestnetStatusError.js");
|
|
4
|
+
const require_testnets_errors_TestnetNotFoundError = require("./errors/TestnetNotFoundError.js");
|
|
5
|
+
const require_testnets_errors_TestnetRequestFailedError = require("./errors/TestnetRequestFailedError.js");
|
|
6
|
+
const require_testnets_errors_TestnetValidationError = require("./errors/TestnetValidationError.js");
|
|
7
|
+
const require_testnets_errors_TestnetWaitTimeoutError = require("./errors/TestnetWaitTimeoutError.js");
|
|
8
|
+
require("./errors/index.js");
|
|
9
|
+
const require_testnets_schemas = require("./schemas.js");
|
|
10
|
+
const require_testnets_TestnetsAPI = require("./TestnetsAPI.js");
|
|
11
|
+
require("./types.js");
|
|
12
|
+
exports.TestnetNotFoundError = require_testnets_errors_TestnetNotFoundError.TestnetNotFoundError;
|
|
13
|
+
exports.TestnetRequestFailedError = require_testnets_errors_TestnetRequestFailedError.TestnetRequestFailedError;
|
|
14
|
+
exports.TestnetStatusError = require_testnets_errors_TestnetStatusError.TestnetStatusError;
|
|
15
|
+
exports.TestnetValidationError = require_testnets_errors_TestnetValidationError.TestnetValidationError;
|
|
16
|
+
exports.TestnetWaitTimeoutError = require_testnets_errors_TestnetWaitTimeoutError.TestnetWaitTimeoutError;
|
|
17
|
+
exports.TestnetsAPI = require_testnets_TestnetsAPI.TestnetsAPI;
|
|
18
|
+
exports.TestnetsError = require_testnets_errors_TestnetsError.TestnetsError;
|
|
19
|
+
exports.testnetBackendOptionsSchema = require_testnets_schemas.testnetBackendOptionsSchema;
|
|
20
|
+
exports.testnetBackendStateSchema = require_testnets_schemas.testnetBackendStateSchema;
|
|
21
|
+
exports.testnetBackendStatusSchema = require_testnets_schemas.testnetBackendStatusSchema;
|
|
22
|
+
exports.testnetBlockSchema = require_testnets_schemas.testnetBlockSchema;
|
|
23
|
+
exports.testnetOptionsSchema = require_testnets_schemas.testnetOptionsSchema;
|
|
24
|
+
exports.testnetSchema = require_testnets_schemas.testnetSchema;
|
|
25
|
+
exports.testnetScriptBlockSchema = require_testnets_schemas.testnetScriptBlockSchema;
|
|
26
|
+
exports.testnetScriptOptionsSchema = require_testnets_schemas.testnetScriptOptionsSchema;
|
|
27
|
+
exports.testnetScriptSchema = require_testnets_schemas.testnetScriptSchema;
|
|
28
|
+
exports.testnetStageStatusSchema = require_testnets_schemas.testnetStageStatusSchema;
|
|
29
|
+
exports.testnetStatusSchema = require_testnets_schemas.testnetStatusSchema;
|
|
30
|
+
exports.testnetTaskDefinitionSchema = require_testnets_schemas.testnetTaskDefinitionSchema;
|
|
31
|
+
exports.testnetTaskProgressSchema = require_testnets_schemas.testnetTaskProgressSchema;
|
|
32
|
+
exports.testnetTaskSchema = require_testnets_schemas.testnetTaskSchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "commonjs"}
|