@atomiqlabs/chain-evm 1.1.8 → 1.1.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.
@@ -0,0 +1,14 @@
1
+ import { ChainType } from "@atomiqlabs/base";
2
+ import { EVMPreFetchVerification } from "../../evm/swaps/modules/EVMSwapInit";
3
+ import { EVMTx } from "../../evm/chain/modules/EVMTransactions";
4
+ import { EVMSigner } from "../../evm/wallet/EVMSigner";
5
+ import { EVMSwapData } from "../../evm/swaps/EVMSwapData";
6
+ import { EVMChainInterface } from "../../evm/chain/EVMChainInterface";
7
+ import { EVMChainEventsBrowser } from "../../evm/events/EVMChainEventsBrowser";
8
+ import { EVMSpvVaultData } from "../../evm/spv_swap/EVMSpvVaultData";
9
+ import { EVMSpvWithdrawalData } from "../../evm/spv_swap/EVMSpvWithdrawalData";
10
+ import { EVMSwapContract } from "../../evm/swaps/EVMSwapContract";
11
+ import { EVMBtcRelay } from "../../evm/btcrelay/EVMBtcRelay";
12
+ import { EVMSpvVaultContract } from "../../evm/spv_swap/EVMSpvVaultContract";
13
+ import { Signer } from "ethers";
14
+ export type AlpenChainType = ChainType<"ALPEN", never, EVMPreFetchVerification, EVMTx, EVMSigner, Signer, EVMSwapData, EVMSwapContract<"ALPEN">, EVMChainInterface<"ALPEN">, EVMChainEventsBrowser, EVMBtcRelay<any>, EVMSpvVaultData, EVMSpvWithdrawalData, EVMSpvVaultContract<"ALPEN">>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,30 @@
1
+ import { BaseTokenType, BitcoinNetwork, BitcoinRpc, ChainData, ChainInitializer, ChainSwapType } from "@atomiqlabs/base";
2
+ import { JsonRpcApiProvider } from "ethers";
3
+ import { EVMConfiguration, EVMRetryPolicy } from "../../evm/chain/EVMChainInterface";
4
+ import { EVMFees } from "../../evm/chain/modules/EVMFees";
5
+ import { AlpenChainType } from "./AlpenChainType";
6
+ export type AlpenAssetsType = BaseTokenType<"BTC">;
7
+ export declare const AlpenAssets: AlpenAssetsType;
8
+ export type AlpenOptions = {
9
+ rpcUrl: string | JsonRpcApiProvider;
10
+ retryPolicy?: EVMRetryPolicy;
11
+ chainType?: "MAINNET" | "TESTNET";
12
+ swapContract?: string;
13
+ btcRelayContract?: string;
14
+ btcRelayDeploymentHeight?: number;
15
+ spvVaultContract?: string;
16
+ spvVaultDeploymentHeight?: number;
17
+ handlerContracts?: {
18
+ refund?: {
19
+ timelock?: string;
20
+ };
21
+ claim?: {
22
+ [type in ChainSwapType]?: string;
23
+ };
24
+ };
25
+ fees?: EVMFees;
26
+ evmConfig?: Omit<EVMConfiguration, "safeBlockTag" | "finalizedBlockTag">;
27
+ };
28
+ export declare function initializeAlpen(options: AlpenOptions, bitcoinRpc: BitcoinRpc<any>, network: BitcoinNetwork): ChainData<AlpenChainType>;
29
+ export type AlpenInitializerType = ChainInitializer<AlpenOptions, AlpenChainType, AlpenAssetsType>;
30
+ export declare const AlpenInitializer: AlpenInitializerType;
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AlpenInitializer = exports.initializeAlpen = exports.AlpenAssets = void 0;
4
+ const base_1 = require("@atomiqlabs/base");
5
+ const ethers_1 = require("ethers");
6
+ const EVMChainInterface_1 = require("../../evm/chain/EVMChainInterface");
7
+ const EVMFees_1 = require("../../evm/chain/modules/EVMFees");
8
+ const EVMBtcRelay_1 = require("../../evm/btcrelay/EVMBtcRelay");
9
+ const EVMSwapContract_1 = require("../../evm/swaps/EVMSwapContract");
10
+ const EVMSpvVaultContract_1 = require("../../evm/spv_swap/EVMSpvVaultContract");
11
+ const EVMChainEventsBrowser_1 = require("../../evm/events/EVMChainEventsBrowser");
12
+ const EVMSwapData_1 = require("../../evm/swaps/EVMSwapData");
13
+ const EVMSpvVaultData_1 = require("../../evm/spv_swap/EVMSpvVaultData");
14
+ const EVMSpvWithdrawalData_1 = require("../../evm/spv_swap/EVMSpvWithdrawalData");
15
+ const AlpenChainIds = {
16
+ MAINNET: -1,
17
+ TESTNET: 2892
18
+ };
19
+ const AlpenContractAddresses = {
20
+ MAINNET: {
21
+ executionContract: "",
22
+ swapContract: "",
23
+ btcRelayContract: "",
24
+ btcRelayDeploymentHeight: 0,
25
+ spvVaultContract: "",
26
+ spvVaultDeploymentHeight: 0,
27
+ handlerContracts: {
28
+ refund: {
29
+ timelock: ""
30
+ },
31
+ claim: {
32
+ [base_1.ChainSwapType.HTLC]: "",
33
+ [base_1.ChainSwapType.CHAIN_TXID]: "",
34
+ [base_1.ChainSwapType.CHAIN]: "",
35
+ [base_1.ChainSwapType.CHAIN_NONCED]: ""
36
+ }
37
+ }
38
+ },
39
+ TESTNET: {
40
+ executionContract: "0xc98Ef084d3911C8447DBbE4dDa18bC2c9bB0584e",
41
+ swapContract: "0x59A54378B6bA9C21ba66487C6A701D702baDEabE",
42
+ btcRelayContract: "0x5bb0C725939cB825d1322A99a3FeB570097628c3",
43
+ btcRelayDeploymentHeight: 1424534,
44
+ spvVaultContract: "0x8A44f1995a54fD976c904Cccf9EbaB49c3182eb3",
45
+ spvVaultDeploymentHeight: 1424536,
46
+ handlerContracts: {
47
+ refund: {
48
+ timelock: "0xe8be24CF21341c9567664009a8a82C9Dc1eE90D6"
49
+ },
50
+ claim: {
51
+ [base_1.ChainSwapType.HTLC]: "0x32EB4DbDdC31e19ba908fecc7cae03F0d04F01Fa",
52
+ [base_1.ChainSwapType.CHAIN_TXID]: "0xaB2D14745362B26a732dD8B7F95daAE3D2914bBF",
53
+ [base_1.ChainSwapType.CHAIN]: "0x2920EE496693A5027249a027A6FD3F643E743745",
54
+ [base_1.ChainSwapType.CHAIN_NONCED]: "0x3887B02217726bB36958Dd595e57293fB63D5082"
55
+ }
56
+ }
57
+ }
58
+ };
59
+ exports.AlpenAssets = {
60
+ BTC: {
61
+ address: "0x0000000000000000000000000000000000000000",
62
+ decimals: 18,
63
+ displayDecimals: 8
64
+ }
65
+ };
66
+ function initializeAlpen(options, bitcoinRpc, network) {
67
+ if (options.chainType == null) {
68
+ switch (network) {
69
+ case base_1.BitcoinNetwork.MAINNET:
70
+ options.chainType = "MAINNET";
71
+ break;
72
+ case base_1.BitcoinNetwork.TESTNET:
73
+ options.chainType = "TESTNET";
74
+ break;
75
+ }
76
+ }
77
+ const defaultContractAddresses = AlpenContractAddresses[options.chainType];
78
+ const chainId = AlpenChainIds[options.chainType];
79
+ const provider = typeof (options.rpcUrl) === "string" ?
80
+ (options.rpcUrl.startsWith("ws")
81
+ ? new ethers_1.WebSocketProvider(options.rpcUrl, { name: "Botanix", chainId })
82
+ : new ethers_1.JsonRpcProvider(options.rpcUrl, { name: "Botanix", chainId })) :
83
+ options.rpcUrl;
84
+ const Fees = options.fees ?? new EVMFees_1.EVMFees(provider, 2n * 1000000000n, 100000n);
85
+ const chainInterface = new EVMChainInterface_1.EVMChainInterface("ALPEN", chainId, provider, {
86
+ safeBlockTag: "latest",
87
+ finalizedBlockTag: "latest",
88
+ maxLogsBlockRange: options?.evmConfig?.maxLogsBlockRange ?? 950,
89
+ maxLogTopics: options?.evmConfig?.maxLogTopics ?? 64,
90
+ maxParallelLogRequests: options?.evmConfig?.maxParallelLogRequests ?? 5,
91
+ maxParallelCalls: options?.evmConfig?.maxParallelCalls ?? 5,
92
+ useAccessLists: options?.evmConfig?.useAccessLists,
93
+ defaultAccessListAddresses: options?.evmConfig?.defaultAccessListAddresses
94
+ }, options.retryPolicy, Fees);
95
+ const btcRelay = new EVMBtcRelay_1.EVMBtcRelay(chainInterface, bitcoinRpc, network, options.btcRelayContract ?? defaultContractAddresses.btcRelayContract, options.btcRelayDeploymentHeight ?? defaultContractAddresses.btcRelayDeploymentHeight);
96
+ const swapContract = new EVMSwapContract_1.EVMSwapContract(chainInterface, btcRelay, options.swapContract ?? defaultContractAddresses.swapContract, {
97
+ refund: {
98
+ ...defaultContractAddresses.handlerContracts.refund,
99
+ ...options?.handlerContracts?.refund
100
+ },
101
+ claim: {
102
+ ...defaultContractAddresses.handlerContracts.claim,
103
+ ...options?.handlerContracts?.claim
104
+ }
105
+ });
106
+ const spvVaultContract = new EVMSpvVaultContract_1.EVMSpvVaultContract(chainInterface, btcRelay, bitcoinRpc, options.spvVaultContract ?? defaultContractAddresses.spvVaultContract, options.spvVaultDeploymentHeight ?? defaultContractAddresses.spvVaultDeploymentHeight);
107
+ const chainEvents = new EVMChainEventsBrowser_1.EVMChainEventsBrowser(chainInterface, swapContract, spvVaultContract);
108
+ return {
109
+ chainId: "ALPEN",
110
+ btcRelay,
111
+ chainInterface,
112
+ swapContract,
113
+ chainEvents,
114
+ swapDataConstructor: EVMSwapData_1.EVMSwapData,
115
+ spvVaultContract,
116
+ spvVaultDataConstructor: EVMSpvVaultData_1.EVMSpvVaultData,
117
+ spvVaultWithdrawalDataConstructor: EVMSpvWithdrawalData_1.EVMSpvWithdrawalData
118
+ };
119
+ }
120
+ exports.initializeAlpen = initializeAlpen;
121
+ ;
122
+ exports.AlpenInitializer = {
123
+ chainId: "ALPEN",
124
+ chainType: null,
125
+ initializer: initializeAlpen,
126
+ tokens: exports.AlpenAssets,
127
+ options: null
128
+ };
@@ -3,7 +3,7 @@ import { JsonRpcApiProvider } from "ethers";
3
3
  import { EVMConfiguration, EVMRetryPolicy } from "../../evm/chain/EVMChainInterface";
4
4
  import { EVMFees } from "../../evm/chain/modules/EVMFees";
5
5
  import { BotanixChainType } from "./BotanixChainType";
6
- export type BotanixAssetsType = BaseTokenType<"BBTC">;
6
+ export type BotanixAssetsType = BaseTokenType<"BTC">;
7
7
  export declare const BotanixAssets: BotanixAssetsType;
8
8
  export type BotanixOptions = {
9
9
  rpcUrl: string | JsonRpcApiProvider;
@@ -57,7 +57,7 @@ const BotanixContractAddresses = {
57
57
  }
58
58
  };
59
59
  exports.BotanixAssets = {
60
- BBTC: {
60
+ BTC: {
61
61
  address: "0x0000000000000000000000000000000000000000",
62
62
  decimals: 18,
63
63
  displayDecimals: 8
package/dist/index.d.ts CHANGED
@@ -39,6 +39,8 @@ export * from "./chains/citrea/CitreaChainType";
39
39
  export * from "./chains/citrea/CitreaFees";
40
40
  export * from "./chains/botanix/BotanixInitializer";
41
41
  export * from "./chains/botanix/BotanixChainType";
42
+ export * from "./chains/alpen/AlpenInitializer";
43
+ export * from "./chains/alpen/AlpenChainType";
42
44
  export * from "./evm/providers/JsonRpcProviderWithRetries";
43
45
  export * from "./evm/providers/WebSocketProviderWithRetries";
44
46
  export * from "./evm/providers/ReconnectingWebSocketProvider";
package/dist/index.js CHANGED
@@ -55,6 +55,8 @@ __exportStar(require("./chains/citrea/CitreaChainType"), exports);
55
55
  __exportStar(require("./chains/citrea/CitreaFees"), exports);
56
56
  __exportStar(require("./chains/botanix/BotanixInitializer"), exports);
57
57
  __exportStar(require("./chains/botanix/BotanixChainType"), exports);
58
+ __exportStar(require("./chains/alpen/AlpenInitializer"), exports);
59
+ __exportStar(require("./chains/alpen/AlpenChainType"), exports);
58
60
  __exportStar(require("./evm/providers/JsonRpcProviderWithRetries"), exports);
59
61
  __exportStar(require("./evm/providers/WebSocketProviderWithRetries"), exports);
60
62
  __exportStar(require("./evm/providers/ReconnectingWebSocketProvider"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atomiqlabs/chain-evm",
3
- "version": "1.1.8",
3
+ "version": "1.1.10",
4
4
  "description": "EVM specific base implementation",
5
5
  "main": "./dist/index.js",
6
6
  "types:": "./dist/index.d.ts",
@@ -0,0 +1,30 @@
1
+ import {ChainType} from "@atomiqlabs/base";
2
+ import {EVMPreFetchVerification} from "../../evm/swaps/modules/EVMSwapInit";
3
+ import {EVMTx} from "../../evm/chain/modules/EVMTransactions";
4
+ import {EVMSigner} from "../../evm/wallet/EVMSigner";
5
+ import {EVMSwapData} from "../../evm/swaps/EVMSwapData";
6
+ import {EVMChainInterface} from "../../evm/chain/EVMChainInterface";
7
+ import {EVMChainEventsBrowser} from "../../evm/events/EVMChainEventsBrowser";
8
+ import { EVMSpvVaultData } from "../../evm/spv_swap/EVMSpvVaultData";
9
+ import { EVMSpvWithdrawalData } from "../../evm/spv_swap/EVMSpvWithdrawalData";
10
+ import {EVMSwapContract} from "../../evm/swaps/EVMSwapContract";
11
+ import {EVMBtcRelay} from "../../evm/btcrelay/EVMBtcRelay";
12
+ import {EVMSpvVaultContract} from "../../evm/spv_swap/EVMSpvVaultContract";
13
+ import {Signer} from "ethers";
14
+
15
+ export type AlpenChainType = ChainType<
16
+ "ALPEN",
17
+ never,
18
+ EVMPreFetchVerification,
19
+ EVMTx,
20
+ EVMSigner,
21
+ Signer,
22
+ EVMSwapData,
23
+ EVMSwapContract<"ALPEN">,
24
+ EVMChainInterface<"ALPEN">,
25
+ EVMChainEventsBrowser,
26
+ EVMBtcRelay<any>,
27
+ EVMSpvVaultData,
28
+ EVMSpvWithdrawalData,
29
+ EVMSpvVaultContract<"ALPEN">
30
+ >;
@@ -0,0 +1,178 @@
1
+ import {BaseTokenType, BitcoinNetwork, BitcoinRpc, ChainData, ChainInitializer, ChainSwapType} from "@atomiqlabs/base";
2
+ import {JsonRpcApiProvider, JsonRpcProvider, WebSocketProvider} from "ethers";
3
+ import {EVMChainInterface, EVMConfiguration, EVMRetryPolicy} from "../../evm/chain/EVMChainInterface";
4
+ import {EVMFees} from "../../evm/chain/modules/EVMFees";
5
+ import {EVMBtcRelay} from "../../evm/btcrelay/EVMBtcRelay";
6
+ import {EVMSwapContract} from "../../evm/swaps/EVMSwapContract";
7
+ import {EVMSpvVaultContract} from "../../evm/spv_swap/EVMSpvVaultContract";
8
+ import {EVMChainEventsBrowser} from "../../evm/events/EVMChainEventsBrowser";
9
+ import {EVMSwapData} from "../../evm/swaps/EVMSwapData";
10
+ import {EVMSpvVaultData} from "../../evm/spv_swap/EVMSpvVaultData";
11
+ import {EVMSpvWithdrawalData} from "../../evm/spv_swap/EVMSpvWithdrawalData";
12
+ import {AlpenChainType} from "./AlpenChainType";
13
+
14
+ const AlpenChainIds = {
15
+ MAINNET: -1,
16
+ TESTNET: 2892
17
+ };
18
+
19
+ const AlpenContractAddresses = {
20
+ MAINNET: {
21
+ executionContract: "",
22
+ swapContract: "",
23
+ btcRelayContract: "",
24
+ btcRelayDeploymentHeight: 0,
25
+ spvVaultContract: "",
26
+ spvVaultDeploymentHeight: 0,
27
+ handlerContracts: {
28
+ refund: {
29
+ timelock: ""
30
+ },
31
+ claim: {
32
+ [ChainSwapType.HTLC]: "",
33
+ [ChainSwapType.CHAIN_TXID]: "",
34
+ [ChainSwapType.CHAIN]: "",
35
+ [ChainSwapType.CHAIN_NONCED]: ""
36
+ }
37
+ }
38
+ },
39
+ TESTNET: {
40
+ executionContract: "0xc98Ef084d3911C8447DBbE4dDa18bC2c9bB0584e",
41
+ swapContract: "0x59A54378B6bA9C21ba66487C6A701D702baDEabE",
42
+ btcRelayContract: "0x5bb0C725939cB825d1322A99a3FeB570097628c3",
43
+ btcRelayDeploymentHeight: 1424534,
44
+ spvVaultContract: "0x8A44f1995a54fD976c904Cccf9EbaB49c3182eb3",
45
+ spvVaultDeploymentHeight: 1424536,
46
+ handlerContracts: {
47
+ refund: {
48
+ timelock: "0xe8be24CF21341c9567664009a8a82C9Dc1eE90D6"
49
+ },
50
+ claim: {
51
+ [ChainSwapType.HTLC]: "0x32EB4DbDdC31e19ba908fecc7cae03F0d04F01Fa",
52
+ [ChainSwapType.CHAIN_TXID]: "0xaB2D14745362B26a732dD8B7F95daAE3D2914bBF",
53
+ [ChainSwapType.CHAIN]: "0x2920EE496693A5027249a027A6FD3F643E743745",
54
+ [ChainSwapType.CHAIN_NONCED]: "0x3887B02217726bB36958Dd595e57293fB63D5082"
55
+ }
56
+ }
57
+ }
58
+ };
59
+
60
+ export type AlpenAssetsType = BaseTokenType<"BTC">;
61
+ export const AlpenAssets: AlpenAssetsType = {
62
+ BTC: {
63
+ address: "0x0000000000000000000000000000000000000000",
64
+ decimals: 18,
65
+ displayDecimals: 8
66
+ }
67
+ } as const;
68
+
69
+ export type AlpenOptions = {
70
+ rpcUrl: string | JsonRpcApiProvider,
71
+ retryPolicy?: EVMRetryPolicy,
72
+ chainType?: "MAINNET" | "TESTNET",
73
+
74
+ swapContract?: string,
75
+ btcRelayContract?: string,
76
+ btcRelayDeploymentHeight?: number,
77
+ spvVaultContract?: string,
78
+ spvVaultDeploymentHeight?: number,
79
+ handlerContracts?: {
80
+ refund?: {
81
+ timelock?: string
82
+ },
83
+ claim?: {
84
+ [type in ChainSwapType]?: string
85
+ }
86
+ }
87
+
88
+ fees?: EVMFees,
89
+
90
+ evmConfig?: Omit<EVMConfiguration, "safeBlockTag" | "finalizedBlockTag">
91
+ }
92
+
93
+ export function initializeAlpen(
94
+ options: AlpenOptions,
95
+ bitcoinRpc: BitcoinRpc<any>,
96
+ network: BitcoinNetwork
97
+ ): ChainData<AlpenChainType> {
98
+ if(options.chainType==null) {
99
+ switch (network) {
100
+ case BitcoinNetwork.MAINNET:
101
+ options.chainType = "MAINNET";
102
+ break;
103
+ case BitcoinNetwork.TESTNET:
104
+ options.chainType = "TESTNET";
105
+ break;
106
+ }
107
+ }
108
+
109
+ const defaultContractAddresses = AlpenContractAddresses[options.chainType];
110
+ const chainId = AlpenChainIds[options.chainType];
111
+
112
+ const provider = typeof(options.rpcUrl)==="string" ?
113
+ (
114
+ options.rpcUrl.startsWith("ws")
115
+ ? new WebSocketProvider(options.rpcUrl, {name: "Botanix", chainId})
116
+ : new JsonRpcProvider(options.rpcUrl, {name: "Botanix", chainId})
117
+ ):
118
+ options.rpcUrl;
119
+
120
+ const Fees = options.fees ?? new EVMFees(provider, 2n * 1_000_000_000n, 100_000n);
121
+
122
+ const chainInterface = new EVMChainInterface("ALPEN", chainId, provider, {
123
+ safeBlockTag: "latest",
124
+ finalizedBlockTag: "latest",
125
+ maxLogsBlockRange: options?.evmConfig?.maxLogsBlockRange ?? 950,
126
+ maxLogTopics: options?.evmConfig?.maxLogTopics ?? 64,
127
+ maxParallelLogRequests: options?.evmConfig?.maxParallelLogRequests ?? 5,
128
+ maxParallelCalls: options?.evmConfig?.maxParallelCalls ?? 5,
129
+ useAccessLists: options?.evmConfig?.useAccessLists,
130
+ defaultAccessListAddresses: options?.evmConfig?.defaultAccessListAddresses
131
+ }, options.retryPolicy, Fees);
132
+
133
+ const btcRelay = new EVMBtcRelay(
134
+ chainInterface, bitcoinRpc, network, options.btcRelayContract ?? defaultContractAddresses.btcRelayContract,
135
+ options.btcRelayDeploymentHeight ?? defaultContractAddresses.btcRelayDeploymentHeight
136
+ );
137
+
138
+ const swapContract = new EVMSwapContract(
139
+ chainInterface, btcRelay, options.swapContract ?? defaultContractAddresses.swapContract, {
140
+ refund: {
141
+ ...defaultContractAddresses.handlerContracts.refund,
142
+ ...options?.handlerContracts?.refund
143
+ },
144
+ claim: {
145
+ ...defaultContractAddresses.handlerContracts.claim,
146
+ ...options?.handlerContracts?.claim
147
+ }
148
+ }
149
+ );
150
+
151
+ const spvVaultContract = new EVMSpvVaultContract(
152
+ chainInterface, btcRelay, bitcoinRpc, options.spvVaultContract ?? defaultContractAddresses.spvVaultContract,
153
+ options.spvVaultDeploymentHeight ?? defaultContractAddresses.spvVaultDeploymentHeight
154
+ )
155
+
156
+ const chainEvents = new EVMChainEventsBrowser(chainInterface, swapContract, spvVaultContract);
157
+
158
+ return {
159
+ chainId: "ALPEN",
160
+ btcRelay,
161
+ chainInterface,
162
+ swapContract,
163
+ chainEvents,
164
+ swapDataConstructor: EVMSwapData,
165
+ spvVaultContract,
166
+ spvVaultDataConstructor: EVMSpvVaultData,
167
+ spvVaultWithdrawalDataConstructor: EVMSpvWithdrawalData
168
+ }
169
+ };
170
+
171
+ export type AlpenInitializerType = ChainInitializer<AlpenOptions, AlpenChainType, AlpenAssetsType>;
172
+ export const AlpenInitializer: AlpenInitializerType = {
173
+ chainId: "ALPEN",
174
+ chainType: null as AlpenChainType,
175
+ initializer: initializeAlpen,
176
+ tokens: AlpenAssets,
177
+ options: null as AlpenOptions
178
+ } as const;
@@ -57,9 +57,9 @@ const BotanixContractAddresses = {
57
57
  }
58
58
  };
59
59
 
60
- export type BotanixAssetsType = BaseTokenType<"BBTC">;
60
+ export type BotanixAssetsType = BaseTokenType<"BTC">;
61
61
  export const BotanixAssets: BotanixAssetsType = {
62
- BBTC: {
62
+ BTC: {
63
63
  address: "0x0000000000000000000000000000000000000000",
64
64
  decimals: 18,
65
65
  displayDecimals: 8
package/src/index.ts CHANGED
@@ -48,6 +48,9 @@ export * from "./chains/citrea/CitreaFees";
48
48
  export * from "./chains/botanix/BotanixInitializer";
49
49
  export * from "./chains/botanix/BotanixChainType";
50
50
 
51
+ export * from "./chains/alpen/AlpenInitializer";
52
+ export * from "./chains/alpen/AlpenChainType";
53
+
51
54
  export * from "./evm/providers/JsonRpcProviderWithRetries";
52
55
  export * from "./evm/providers/WebSocketProviderWithRetries";
53
56
  export * from "./evm/providers/ReconnectingWebSocketProvider";