@lendasat/lendaswap-sdk-pure 0.2.21-preview.0 → 0.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +4 -1
- package/dist/api/client.js.map +1 -1
- package/dist/version.d.ts +4 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +4 -1
- package/dist/price-feed.d.ts +0 -124
- package/dist/price-feed.d.ts.map +0 -1
- package/dist/price-feed.js +0 -178
- package/dist/price-feed.js.map +0 -1
- package/dist/src/api/client.d.ts +0 -31
- package/dist/src/api/client.d.ts.map +0 -1
- package/dist/src/api/client.js +0 -12
- package/dist/src/api/client.js.map +0 -1
- package/dist/src/arkade.d.ts +0 -36
- package/dist/src/arkade.d.ts.map +0 -1
- package/dist/src/arkade.js +0 -68
- package/dist/src/arkade.js.map +0 -1
- package/dist/src/client.d.ts +0 -760
- package/dist/src/client.d.ts.map +0 -1
- package/dist/src/client.js +0 -2169
- package/dist/src/client.js.map +0 -1
- package/dist/src/create/arkade.d.ts +0 -34
- package/dist/src/create/arkade.d.ts.map +0 -1
- package/dist/src/create/arkade.js +0 -76
- package/dist/src/create/arkade.js.map +0 -1
- package/dist/src/create/bitcoin-to-arkade.d.ts +0 -36
- package/dist/src/create/bitcoin-to-arkade.d.ts.map +0 -1
- package/dist/src/create/bitcoin-to-arkade.js +0 -69
- package/dist/src/create/bitcoin-to-arkade.js.map +0 -1
- package/dist/src/create/bitcoin.d.ts +0 -31
- package/dist/src/create/bitcoin.d.ts.map +0 -1
- package/dist/src/create/bitcoin.js +0 -67
- package/dist/src/create/bitcoin.js.map +0 -1
- package/dist/src/create/evm-to-arkade.d.ts +0 -34
- package/dist/src/create/evm-to-arkade.d.ts.map +0 -1
- package/dist/src/create/evm-to-arkade.js +0 -69
- package/dist/src/create/evm-to-arkade.js.map +0 -1
- package/dist/src/create/evm-to-bitcoin.d.ts +0 -35
- package/dist/src/create/evm-to-bitcoin.d.ts.map +0 -1
- package/dist/src/create/evm-to-bitcoin.js +0 -71
- package/dist/src/create/evm-to-bitcoin.js.map +0 -1
- package/dist/src/create/evm-to-lightning.d.ts +0 -34
- package/dist/src/create/evm-to-lightning.d.ts.map +0 -1
- package/dist/src/create/evm-to-lightning.js +0 -66
- package/dist/src/create/evm-to-lightning.js.map +0 -1
- package/dist/src/create/index.d.ts +0 -19
- package/dist/src/create/index.d.ts.map +0 -1
- package/dist/src/create/index.js +0 -18
- package/dist/src/create/index.js.map +0 -1
- package/dist/src/create/lightning.d.ts +0 -31
- package/dist/src/create/lightning.d.ts.map +0 -1
- package/dist/src/create/lightning.js +0 -72
- package/dist/src/create/lightning.js.map +0 -1
- package/dist/src/create/types.d.ts +0 -247
- package/dist/src/create/types.d.ts.map +0 -1
- package/dist/src/create/types.js +0 -5
- package/dist/src/create/types.js.map +0 -1
- package/dist/src/delegate.d.ts +0 -62
- package/dist/src/delegate.d.ts.map +0 -1
- package/dist/src/delegate.js +0 -284
- package/dist/src/delegate.js.map +0 -1
- package/dist/src/esplora.d.ts +0 -41
- package/dist/src/esplora.d.ts.map +0 -1
- package/dist/src/esplora.js +0 -47
- package/dist/src/esplora.js.map +0 -1
- package/dist/src/evm/coordinator.d.ts +0 -247
- package/dist/src/evm/coordinator.d.ts.map +0 -1
- package/dist/src/evm/coordinator.js +0 -414
- package/dist/src/evm/coordinator.js.map +0 -1
- package/dist/src/evm/htlc.d.ts +0 -238
- package/dist/src/evm/htlc.d.ts.map +0 -1
- package/dist/src/evm/htlc.js +0 -278
- package/dist/src/evm/htlc.js.map +0 -1
- package/dist/src/evm/index.d.ts +0 -9
- package/dist/src/evm/index.d.ts.map +0 -1
- package/dist/src/evm/index.js +0 -9
- package/dist/src/evm/index.js.map +0 -1
- package/dist/src/evm/signing.d.ts +0 -30
- package/dist/src/evm/signing.d.ts.map +0 -1
- package/dist/src/evm/signing.js +0 -91
- package/dist/src/evm/signing.js.map +0 -1
- package/dist/src/generated/api.d.ts +0 -2736
- package/dist/src/generated/api.d.ts.map +0 -1
- package/dist/src/generated/api.js +0 -6
- package/dist/src/generated/api.js.map +0 -1
- package/dist/src/index.d.ts +0 -18
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -24
- package/dist/src/index.js.map +0 -1
- package/dist/src/node.d.ts +0 -19
- package/dist/src/node.d.ts.map +0 -1
- package/dist/src/node.js +0 -19
- package/dist/src/node.js.map +0 -1
- package/dist/src/price-calculations.d.ts +0 -109
- package/dist/src/price-calculations.d.ts.map +0 -1
- package/dist/src/price-calculations.js +0 -135
- package/dist/src/price-calculations.js.map +0 -1
- package/dist/src/redeem/arkade.d.ts +0 -65
- package/dist/src/redeem/arkade.d.ts.map +0 -1
- package/dist/src/redeem/arkade.js +0 -217
- package/dist/src/redeem/arkade.js.map +0 -1
- package/dist/src/redeem/ethereum.d.ts +0 -52
- package/dist/src/redeem/ethereum.d.ts.map +0 -1
- package/dist/src/redeem/ethereum.js +0 -206
- package/dist/src/redeem/ethereum.js.map +0 -1
- package/dist/src/redeem/gasless.d.ts +0 -41
- package/dist/src/redeem/gasless.d.ts.map +0 -1
- package/dist/src/redeem/gasless.js +0 -71
- package/dist/src/redeem/gasless.js.map +0 -1
- package/dist/src/redeem/index.d.ts +0 -49
- package/dist/src/redeem/index.d.ts.map +0 -1
- package/dist/src/redeem/index.js +0 -189
- package/dist/src/redeem/index.js.map +0 -1
- package/dist/src/redeem/types.d.ts +0 -126
- package/dist/src/redeem/types.d.ts.map +0 -1
- package/dist/src/redeem/types.js +0 -36
- package/dist/src/redeem/types.js.map +0 -1
- package/dist/src/refund/arkade.d.ts +0 -62
- package/dist/src/refund/arkade.d.ts.map +0 -1
- package/dist/src/refund/arkade.js +0 -212
- package/dist/src/refund/arkade.js.map +0 -1
- package/dist/src/refund/index.d.ts +0 -10
- package/dist/src/refund/index.d.ts.map +0 -1
- package/dist/src/refund/index.js +0 -10
- package/dist/src/refund/index.js.map +0 -1
- package/dist/src/refund/onchain.d.ts +0 -137
- package/dist/src/refund/onchain.d.ts.map +0 -1
- package/dist/src/refund/onchain.js +0 -366
- package/dist/src/refund/onchain.js.map +0 -1
- package/dist/src/signer/index.d.ts +0 -106
- package/dist/src/signer/index.d.ts.map +0 -1
- package/dist/src/signer/index.js +0 -179
- package/dist/src/signer/index.js.map +0 -1
- package/dist/src/storage/idb.d.ts +0 -70
- package/dist/src/storage/idb.d.ts.map +0 -1
- package/dist/src/storage/idb.js +0 -236
- package/dist/src/storage/idb.js.map +0 -1
- package/dist/src/storage/index.d.ts +0 -152
- package/dist/src/storage/index.d.ts.map +0 -1
- package/dist/src/storage/index.js +0 -98
- package/dist/src/storage/index.js.map +0 -1
- package/dist/src/storage/sqlite.d.ts +0 -95
- package/dist/src/storage/sqlite.d.ts.map +0 -1
- package/dist/src/storage/sqlite.js +0 -206
- package/dist/src/storage/sqlite.js.map +0 -1
- package/dist/src/storage/types.d.ts +0 -57
- package/dist/src/storage/types.d.ts.map +0 -1
- package/dist/src/storage/types.js +0 -9
- package/dist/src/storage/types.js.map +0 -1
- package/dist/src/tokens.d.ts +0 -29
- package/dist/src/tokens.d.ts.map +0 -1
- package/dist/src/tokens.js +0 -89
- package/dist/src/tokens.js.map +0 -1
- package/dist/src/usd-price.d.ts +0 -34
- package/dist/src/usd-price.d.ts.map +0 -1
- package/dist/src/usd-price.js +0 -83
- package/dist/src/usd-price.js.map +0 -1
- package/dist/tests/api-client.test.d.ts +0 -2
- package/dist/tests/api-client.test.d.ts.map +0 -1
- package/dist/tests/api-client.test.js +0 -86
- package/dist/tests/api-client.test.js.map +0 -1
- package/dist/tests/client.test.d.ts +0 -2
- package/dist/tests/client.test.d.ts.map +0 -1
- package/dist/tests/client.test.js +0 -150
- package/dist/tests/client.test.js.map +0 -1
- package/dist/tests/index.test.d.ts +0 -2
- package/dist/tests/index.test.d.ts.map +0 -1
- package/dist/tests/index.test.js +0 -8
- package/dist/tests/index.test.js.map +0 -1
- package/dist/tests/onchain-refund.test.d.ts +0 -2
- package/dist/tests/onchain-refund.test.d.ts.map +0 -1
- package/dist/tests/onchain-refund.test.js +0 -279
- package/dist/tests/onchain-refund.test.js.map +0 -1
- package/dist/tests/signer.test.d.ts +0 -2
- package/dist/tests/signer.test.d.ts.map +0 -1
- package/dist/tests/signer.test.js +0 -92
- package/dist/tests/signer.test.js.map +0 -1
- package/dist/tests/sqlite-storage.test.d.ts +0 -2
- package/dist/tests/sqlite-storage.test.d.ts.map +0 -1
- package/dist/tests/sqlite-storage.test.js +0 -160
- package/dist/tests/sqlite-storage.test.js.map +0 -1
- package/dist/tests/storage.test.d.ts +0 -2
- package/dist/tests/storage.test.d.ts.map +0 -1
- package/dist/tests/storage.test.js +0 -184
- package/dist/tests/storage.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/usdt0-bridge/bridge.d.ts +0 -82
- package/dist/usdt0-bridge/bridge.d.ts.map +0 -1
- package/dist/usdt0-bridge/bridge.js +0 -56
- package/dist/usdt0-bridge/bridge.js.map +0 -1
- package/dist/usdt0-bridge/chains.d.ts +0 -41
- package/dist/usdt0-bridge/chains.d.ts.map +0 -1
- package/dist/usdt0-bridge/chains.js +0 -117
- package/dist/usdt0-bridge/chains.js.map +0 -1
- package/dist/usdt0-bridge/layerzero-tracker.d.ts +0 -34
- package/dist/usdt0-bridge/layerzero-tracker.d.ts.map +0 -1
- package/dist/usdt0-bridge/layerzero-tracker.js +0 -86
- package/dist/usdt0-bridge/layerzero-tracker.js.map +0 -1
- package/dist/usdt0-bridge/oft-abi.d.ts +0 -145
- package/dist/usdt0-bridge/oft-abi.d.ts.map +0 -1
- package/dist/usdt0-bridge/oft-abi.js +0 -117
- package/dist/usdt0-bridge/oft-abi.js.map +0 -1
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
2
|
-
import { SWAP_STORAGE_VERSION } from "../src/storage/index.js";
|
|
3
|
-
import { SqliteSwapStorage, SqliteWalletStorage, sqliteStorageFactory, } from "../src/storage/sqlite.js";
|
|
4
|
-
describe("SqliteWalletStorage", () => {
|
|
5
|
-
let storage;
|
|
6
|
-
beforeEach(() => {
|
|
7
|
-
// Use in-memory database for tests
|
|
8
|
-
storage = new SqliteWalletStorage(":memory:");
|
|
9
|
-
});
|
|
10
|
-
afterEach(() => {
|
|
11
|
-
storage.close();
|
|
12
|
-
});
|
|
13
|
-
it("should return null for mnemonic when not set", async () => {
|
|
14
|
-
const mnemonic = await storage.getMnemonic();
|
|
15
|
-
expect(mnemonic).toBeNull();
|
|
16
|
-
});
|
|
17
|
-
it("should store and retrieve mnemonic", async () => {
|
|
18
|
-
const testMnemonic = "test mnemonic phrase";
|
|
19
|
-
await storage.setMnemonic(testMnemonic);
|
|
20
|
-
const retrieved = await storage.getMnemonic();
|
|
21
|
-
expect(retrieved).toBe(testMnemonic);
|
|
22
|
-
});
|
|
23
|
-
it("should return 0 for key index when not set", async () => {
|
|
24
|
-
const keyIndex = await storage.getKeyIndex();
|
|
25
|
-
expect(keyIndex).toBe(0);
|
|
26
|
-
});
|
|
27
|
-
it("should store and retrieve key index", async () => {
|
|
28
|
-
await storage.setKeyIndex(5);
|
|
29
|
-
const retrieved = await storage.getKeyIndex();
|
|
30
|
-
expect(retrieved).toBe(5);
|
|
31
|
-
});
|
|
32
|
-
it("should increment key index", async () => {
|
|
33
|
-
const first = await storage.incrementKeyIndex();
|
|
34
|
-
expect(first).toBe(0);
|
|
35
|
-
const second = await storage.incrementKeyIndex();
|
|
36
|
-
expect(second).toBe(1);
|
|
37
|
-
const keyIndex = await storage.getKeyIndex();
|
|
38
|
-
expect(keyIndex).toBe(2);
|
|
39
|
-
});
|
|
40
|
-
it("should clear all data", async () => {
|
|
41
|
-
await storage.setMnemonic("test mnemonic");
|
|
42
|
-
await storage.setKeyIndex(10);
|
|
43
|
-
await storage.clear();
|
|
44
|
-
expect(await storage.getMnemonic()).toBeNull();
|
|
45
|
-
expect(await storage.getKeyIndex()).toBe(0);
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
describe("SqliteSwapStorage", () => {
|
|
49
|
-
let storage;
|
|
50
|
-
const createTestSwap = (id) => ({
|
|
51
|
-
version: SWAP_STORAGE_VERSION,
|
|
52
|
-
swapId: id,
|
|
53
|
-
keyIndex: 0,
|
|
54
|
-
response: {
|
|
55
|
-
id,
|
|
56
|
-
status: "pending",
|
|
57
|
-
direction: "btc_to_evm",
|
|
58
|
-
},
|
|
59
|
-
publicKey: "02abc",
|
|
60
|
-
preimage: "preimage123",
|
|
61
|
-
preimageHash: "hash123",
|
|
62
|
-
secretKey: "secret123",
|
|
63
|
-
storedAt: Date.now(),
|
|
64
|
-
updatedAt: Date.now(),
|
|
65
|
-
});
|
|
66
|
-
beforeEach(() => {
|
|
67
|
-
storage = new SqliteSwapStorage(":memory:");
|
|
68
|
-
});
|
|
69
|
-
afterEach(() => {
|
|
70
|
-
storage.close();
|
|
71
|
-
});
|
|
72
|
-
it("should return null for non-existent swap", async () => {
|
|
73
|
-
const swap = await storage.get("non-existent");
|
|
74
|
-
expect(swap).toBeNull();
|
|
75
|
-
});
|
|
76
|
-
it("should store and retrieve swap", async () => {
|
|
77
|
-
const testSwap = createTestSwap("swap-1");
|
|
78
|
-
await storage.store(testSwap);
|
|
79
|
-
const retrieved = await storage.get("swap-1");
|
|
80
|
-
expect(retrieved).toEqual(testSwap);
|
|
81
|
-
});
|
|
82
|
-
it("should update swap response", async () => {
|
|
83
|
-
const testSwap = createTestSwap("swap-1");
|
|
84
|
-
await storage.store(testSwap);
|
|
85
|
-
const newResponse = {
|
|
86
|
-
...testSwap.response,
|
|
87
|
-
status: "serverredeemed",
|
|
88
|
-
};
|
|
89
|
-
await storage.update("swap-1", newResponse);
|
|
90
|
-
const retrieved = await storage.get("swap-1");
|
|
91
|
-
expect(retrieved?.response.status).toBe("serverredeemed");
|
|
92
|
-
expect(retrieved?.updatedAt).toBeGreaterThanOrEqual(testSwap.updatedAt);
|
|
93
|
-
});
|
|
94
|
-
it("should delete swap", async () => {
|
|
95
|
-
const testSwap = createTestSwap("swap-1");
|
|
96
|
-
await storage.store(testSwap);
|
|
97
|
-
await storage.delete("swap-1");
|
|
98
|
-
const retrieved = await storage.get("swap-1");
|
|
99
|
-
expect(retrieved).toBeNull();
|
|
100
|
-
});
|
|
101
|
-
it("should list all swap IDs", async () => {
|
|
102
|
-
await storage.store(createTestSwap("swap-1"));
|
|
103
|
-
await storage.store(createTestSwap("swap-2"));
|
|
104
|
-
await storage.store(createTestSwap("swap-3"));
|
|
105
|
-
const ids = await storage.list();
|
|
106
|
-
expect(ids).toHaveLength(3);
|
|
107
|
-
expect(ids).toContain("swap-1");
|
|
108
|
-
expect(ids).toContain("swap-2");
|
|
109
|
-
expect(ids).toContain("swap-3");
|
|
110
|
-
});
|
|
111
|
-
it("should get all swaps", async () => {
|
|
112
|
-
await storage.store(createTestSwap("swap-1"));
|
|
113
|
-
await storage.store(createTestSwap("swap-2"));
|
|
114
|
-
const swaps = await storage.getAll();
|
|
115
|
-
expect(swaps).toHaveLength(2);
|
|
116
|
-
});
|
|
117
|
-
it("should clear all swaps", async () => {
|
|
118
|
-
await storage.store(createTestSwap("swap-1"));
|
|
119
|
-
await storage.store(createTestSwap("swap-2"));
|
|
120
|
-
await storage.clear();
|
|
121
|
-
const swaps = await storage.getAll();
|
|
122
|
-
expect(swaps).toHaveLength(0);
|
|
123
|
-
});
|
|
124
|
-
it("should replace existing swap on store", async () => {
|
|
125
|
-
const testSwap = createTestSwap("swap-1");
|
|
126
|
-
await storage.store(testSwap);
|
|
127
|
-
const updatedSwap = { ...testSwap, keyIndex: 5 };
|
|
128
|
-
await storage.store(updatedSwap);
|
|
129
|
-
const retrieved = await storage.get("swap-1");
|
|
130
|
-
expect(retrieved?.keyIndex).toBe(5);
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
describe("sqliteStorageFactory", () => {
|
|
134
|
-
it("should create wallet and swap storage with shared path", () => {
|
|
135
|
-
const { walletStorage, swapStorage, close } = sqliteStorageFactory(":memory:");
|
|
136
|
-
expect(walletStorage).toBeInstanceOf(SqliteWalletStorage);
|
|
137
|
-
expect(swapStorage).toBeInstanceOf(SqliteSwapStorage);
|
|
138
|
-
close();
|
|
139
|
-
});
|
|
140
|
-
it("should work independently", async () => {
|
|
141
|
-
const { walletStorage, swapStorage, close } = sqliteStorageFactory(":memory:");
|
|
142
|
-
await walletStorage.setMnemonic("test");
|
|
143
|
-
await swapStorage.store({
|
|
144
|
-
version: SWAP_STORAGE_VERSION,
|
|
145
|
-
swapId: "test-swap",
|
|
146
|
-
keyIndex: 0,
|
|
147
|
-
response: { id: "test-swap", direction: "btc_to_evm" },
|
|
148
|
-
publicKey: "pk",
|
|
149
|
-
preimage: "pre",
|
|
150
|
-
preimageHash: "hash",
|
|
151
|
-
secretKey: "sk",
|
|
152
|
-
storedAt: Date.now(),
|
|
153
|
-
updatedAt: Date.now(),
|
|
154
|
-
});
|
|
155
|
-
expect(await walletStorage.getMnemonic()).toBe("test");
|
|
156
|
-
expect(await swapStorage.get("test-swap")).not.toBeNull();
|
|
157
|
-
close();
|
|
158
|
-
});
|
|
159
|
-
});
|
|
160
|
-
//# sourceMappingURL=sqlite-storage.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-storage.test.js","sourceRoot":"","sources":["../../tests/sqlite-storage.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.test.d.ts","sourceRoot":"","sources":["../../tests/storage.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import { beforeEach, describe, expect, it } from "vitest";
|
|
2
|
-
import { InMemorySwapStorage, InMemoryWalletStorage, inMemoryStorageFactory, SWAP_STORAGE_VERSION, } from "../src/index.js";
|
|
3
|
-
describe("InMemoryWalletStorage", () => {
|
|
4
|
-
let storage;
|
|
5
|
-
beforeEach(() => {
|
|
6
|
-
storage = new InMemoryWalletStorage();
|
|
7
|
-
});
|
|
8
|
-
describe("mnemonic", () => {
|
|
9
|
-
it("should return null when no mnemonic is set", async () => {
|
|
10
|
-
const mnemonic = await storage.getMnemonic();
|
|
11
|
-
expect(mnemonic).toBeNull();
|
|
12
|
-
});
|
|
13
|
-
it("should store and retrieve mnemonic", async () => {
|
|
14
|
-
const testMnemonic = "test mnemonic phrase";
|
|
15
|
-
await storage.setMnemonic(testMnemonic);
|
|
16
|
-
const retrieved = await storage.getMnemonic();
|
|
17
|
-
expect(retrieved).toBe(testMnemonic);
|
|
18
|
-
});
|
|
19
|
-
it("should overwrite existing mnemonic", async () => {
|
|
20
|
-
await storage.setMnemonic("first mnemonic");
|
|
21
|
-
await storage.setMnemonic("second mnemonic");
|
|
22
|
-
const retrieved = await storage.getMnemonic();
|
|
23
|
-
expect(retrieved).toBe("second mnemonic");
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
describe("keyIndex", () => {
|
|
27
|
-
it("should return 0 when no key index is set", async () => {
|
|
28
|
-
const index = await storage.getKeyIndex();
|
|
29
|
-
expect(index).toBe(0);
|
|
30
|
-
});
|
|
31
|
-
it("should store and retrieve key index", async () => {
|
|
32
|
-
await storage.setKeyIndex(42);
|
|
33
|
-
const index = await storage.getKeyIndex();
|
|
34
|
-
expect(index).toBe(42);
|
|
35
|
-
});
|
|
36
|
-
it("should increment key index", async () => {
|
|
37
|
-
await storage.setKeyIndex(5);
|
|
38
|
-
const beforeIncrement = await storage.incrementKeyIndex();
|
|
39
|
-
expect(beforeIncrement).toBe(5);
|
|
40
|
-
const afterIncrement = await storage.getKeyIndex();
|
|
41
|
-
expect(afterIncrement).toBe(6);
|
|
42
|
-
});
|
|
43
|
-
it("should increment from 0 when not set", async () => {
|
|
44
|
-
const index = await storage.incrementKeyIndex();
|
|
45
|
-
expect(index).toBe(0);
|
|
46
|
-
const newIndex = await storage.getKeyIndex();
|
|
47
|
-
expect(newIndex).toBe(1);
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
describe("clear", () => {
|
|
51
|
-
it("should clear all data", async () => {
|
|
52
|
-
await storage.setMnemonic("test mnemonic");
|
|
53
|
-
await storage.setKeyIndex(10);
|
|
54
|
-
await storage.clear();
|
|
55
|
-
expect(await storage.getMnemonic()).toBeNull();
|
|
56
|
-
expect(await storage.getKeyIndex()).toBe(0);
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
/** Helper to create a test StoredSwap */
|
|
61
|
-
function createTestSwap(swapId, overrides = {}) {
|
|
62
|
-
return {
|
|
63
|
-
version: SWAP_STORAGE_VERSION,
|
|
64
|
-
swapId,
|
|
65
|
-
keyIndex: 0,
|
|
66
|
-
response: {
|
|
67
|
-
direction: "btc_to_evm",
|
|
68
|
-
id: swapId,
|
|
69
|
-
status: "pending",
|
|
70
|
-
},
|
|
71
|
-
publicKey: `02${"a".repeat(64)}`,
|
|
72
|
-
preimage: "b".repeat(64),
|
|
73
|
-
preimageHash: "c".repeat(64),
|
|
74
|
-
secretKey: "d".repeat(64),
|
|
75
|
-
storedAt: Date.now(),
|
|
76
|
-
updatedAt: Date.now(),
|
|
77
|
-
...overrides,
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
describe("InMemorySwapStorage", () => {
|
|
81
|
-
let storage;
|
|
82
|
-
beforeEach(() => {
|
|
83
|
-
storage = new InMemorySwapStorage();
|
|
84
|
-
});
|
|
85
|
-
describe("get/store", () => {
|
|
86
|
-
it("should return null for non-existent swap", async () => {
|
|
87
|
-
const swap = await storage.get("non-existent");
|
|
88
|
-
expect(swap).toBeNull();
|
|
89
|
-
});
|
|
90
|
-
it("should store and retrieve swap", async () => {
|
|
91
|
-
const testSwap = createTestSwap("swap-1", { keyIndex: 5 });
|
|
92
|
-
await storage.store(testSwap);
|
|
93
|
-
const retrieved = await storage.get("swap-1");
|
|
94
|
-
expect(retrieved).toEqual(testSwap);
|
|
95
|
-
});
|
|
96
|
-
it("should overwrite existing swap", async () => {
|
|
97
|
-
await storage.store(createTestSwap("swap-1", { keyIndex: 1 }));
|
|
98
|
-
await storage.store(createTestSwap("swap-1", { keyIndex: 2 }));
|
|
99
|
-
const retrieved = await storage.get("swap-1");
|
|
100
|
-
expect(retrieved?.keyIndex).toBe(2);
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
describe("update", () => {
|
|
104
|
-
it("should update swap response", async () => {
|
|
105
|
-
const testSwap = createTestSwap("swap-1");
|
|
106
|
-
await storage.store(testSwap);
|
|
107
|
-
const updatedResponse = {
|
|
108
|
-
...testSwap.response,
|
|
109
|
-
status: "clientredeemed",
|
|
110
|
-
};
|
|
111
|
-
await storage.update("swap-1", updatedResponse);
|
|
112
|
-
const retrieved = await storage.get("swap-1");
|
|
113
|
-
expect(retrieved?.response.status).toBe("clientredeemed");
|
|
114
|
-
expect(retrieved?.updatedAt).toBeGreaterThanOrEqual(testSwap.updatedAt);
|
|
115
|
-
});
|
|
116
|
-
it("should throw when updating non-existent swap", async () => {
|
|
117
|
-
const response = createTestSwap("swap-1").response;
|
|
118
|
-
await expect(storage.update("non-existent", response)).rejects.toThrow("Swap not found: non-existent");
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
describe("delete", () => {
|
|
122
|
-
it("should delete existing swap", async () => {
|
|
123
|
-
await storage.store(createTestSwap("swap-1"));
|
|
124
|
-
await storage.delete("swap-1");
|
|
125
|
-
const retrieved = await storage.get("swap-1");
|
|
126
|
-
expect(retrieved).toBeNull();
|
|
127
|
-
});
|
|
128
|
-
it("should not throw when deleting non-existent swap", async () => {
|
|
129
|
-
await expect(storage.delete("non-existent")).resolves.not.toThrow();
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
describe("list", () => {
|
|
133
|
-
it("should return empty array when no swaps", async () => {
|
|
134
|
-
const list = await storage.list();
|
|
135
|
-
expect(list).toEqual([]);
|
|
136
|
-
});
|
|
137
|
-
it("should return all swap IDs", async () => {
|
|
138
|
-
await storage.store(createTestSwap("swap-1"));
|
|
139
|
-
await storage.store(createTestSwap("swap-2"));
|
|
140
|
-
await storage.store(createTestSwap("swap-3"));
|
|
141
|
-
const list = await storage.list();
|
|
142
|
-
expect(list).toHaveLength(3);
|
|
143
|
-
expect(list).toContain("swap-1");
|
|
144
|
-
expect(list).toContain("swap-2");
|
|
145
|
-
expect(list).toContain("swap-3");
|
|
146
|
-
});
|
|
147
|
-
});
|
|
148
|
-
describe("getAll", () => {
|
|
149
|
-
it("should return empty array when no swaps", async () => {
|
|
150
|
-
const all = await storage.getAll();
|
|
151
|
-
expect(all).toEqual([]);
|
|
152
|
-
});
|
|
153
|
-
it("should return all swaps", async () => {
|
|
154
|
-
const swap1 = createTestSwap("swap-1", { keyIndex: 0 });
|
|
155
|
-
const swap2 = createTestSwap("swap-2", { keyIndex: 1 });
|
|
156
|
-
await storage.store(swap1);
|
|
157
|
-
await storage.store(swap2);
|
|
158
|
-
const all = await storage.getAll();
|
|
159
|
-
expect(all).toHaveLength(2);
|
|
160
|
-
expect(all.map((s) => s.swapId)).toContain("swap-1");
|
|
161
|
-
expect(all.map((s) => s.swapId)).toContain("swap-2");
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
describe("clear", () => {
|
|
165
|
-
it("should clear all swaps", async () => {
|
|
166
|
-
await storage.store(createTestSwap("swap-1"));
|
|
167
|
-
await storage.store(createTestSwap("swap-2"));
|
|
168
|
-
await storage.clear();
|
|
169
|
-
expect(await storage.list()).toEqual([]);
|
|
170
|
-
expect(await storage.getAll()).toEqual([]);
|
|
171
|
-
});
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
describe("inMemoryStorageFactory", () => {
|
|
175
|
-
it("should create wallet storage", () => {
|
|
176
|
-
const walletStorage = inMemoryStorageFactory.createWalletStorage();
|
|
177
|
-
expect(walletStorage).toBeInstanceOf(InMemoryWalletStorage);
|
|
178
|
-
});
|
|
179
|
-
it("should create swap storage", () => {
|
|
180
|
-
const swapStorage = inMemoryStorageFactory.createSwapStorage();
|
|
181
|
-
expect(swapStorage).toBeInstanceOf(InMemorySwapStorage);
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
//# sourceMappingURL=storage.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.test.js","sourceRoot":"","sources":["../../tests/storage.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"root":["../src/arkade.ts","../src/client.ts","../src/delegate.ts","../src/esplora.ts","../src/index.ts","../src/node.ts","../src/price-calculations.ts","../src/tokens.ts","../src/usd-price.ts","../src/api/client.ts","../src/create/arkade.ts","../src/create/bitcoin-to-arkade.ts","../src/create/bitcoin.ts","../src/create/evm-to-arkade.ts","../src/create/evm-to-bitcoin.ts","../src/create/evm-to-lightning.ts","../src/create/index.ts","../src/create/lightning.ts","../src/create/types.ts","../src/evm/coordinator.ts","../src/evm/htlc.ts","../src/evm/index.ts","../src/evm/signing.ts","../src/generated/api.ts","../src/redeem/arkade.ts","../src/redeem/ethereum.ts","../src/redeem/gasless.ts","../src/redeem/index.ts","../src/redeem/types.ts","../src/refund/arkade.ts","../src/refund/index.ts","../src/refund/onchain.ts","../src/signer/index.ts","../src/storage/idb.ts","../src/storage/index.ts","../src/storage/sqlite.ts","../src/storage/types.ts","../tests/api-client.test.ts","../tests/client.test.ts","../tests/index.test.ts","../tests/onchain-refund.test.ts","../tests/signer.test.ts","../tests/sqlite-storage.test.ts","../tests/storage.test.ts"],"errors":true,"version":"5.7.3"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* USDT0 cross-chain bridge via LayerZero OFT protocol.
|
|
3
|
-
*
|
|
4
|
-
* Builds unsigned transactions for bridging USDT0 from any supported
|
|
5
|
-
* source chain to Arbitrum, where the existing LendaSwap flow takes over.
|
|
6
|
-
*
|
|
7
|
-
* This module never holds private keys or submits transactions.
|
|
8
|
-
*/
|
|
9
|
-
import { ARBITRUM_LZ_EID, ARBITRUM_USDT0_ADDRESS, USDT0_CHAINS, type Usdt0ChainConfig } from "./chains.js";
|
|
10
|
-
/** Unsigned transaction ready for the client to sign and submit. */
|
|
11
|
-
export interface UnsignedTransaction {
|
|
12
|
-
to: string;
|
|
13
|
-
data: string;
|
|
14
|
-
value: string;
|
|
15
|
-
}
|
|
16
|
-
/** Quote details for a USDT0 bridge operation. */
|
|
17
|
-
export interface BridgeQuote {
|
|
18
|
-
/** LayerZero messaging fee in native token (wei) */
|
|
19
|
-
nativeFee: string;
|
|
20
|
-
/** Amount that will be received on Arbitrum (in USDT0 smallest units) */
|
|
21
|
-
amountReceived: string;
|
|
22
|
-
/** Amount being sent (in USDT0 smallest units) */
|
|
23
|
-
amountSent: string;
|
|
24
|
-
/** Estimated bridge time in seconds */
|
|
25
|
-
bridgeTimeEstimate: number;
|
|
26
|
-
}
|
|
27
|
-
/** Result of preparing a source chain swap. */
|
|
28
|
-
export interface PrepareSourceChainSwapResult {
|
|
29
|
-
/** Unsigned transaction for the user to sign on the source chain */
|
|
30
|
-
tx: UnsignedTransaction;
|
|
31
|
-
/** Quote details */
|
|
32
|
-
quote: BridgeQuote;
|
|
33
|
-
}
|
|
34
|
-
/** Options for preparing a source chain swap. */
|
|
35
|
-
export interface PrepareSourceChainSwapOptions {
|
|
36
|
-
/** Source chain ID (e.g. 10 for Optimism) */
|
|
37
|
-
fromChainId: number;
|
|
38
|
-
/** USDT0 amount in human-readable units (e.g. "100" for 100 USDT0) */
|
|
39
|
-
amount: string;
|
|
40
|
-
/** Recipient address on Arbitrum (where USDT0 will be delivered) */
|
|
41
|
-
recipientAddress: string;
|
|
42
|
-
/** Refund address on source chain (receives excess LayerZero fees) */
|
|
43
|
-
refundAddress: string;
|
|
44
|
-
}
|
|
45
|
-
/** Status update callback for bridge delivery monitoring. */
|
|
46
|
-
export type BridgeStatusCallback = (status: {
|
|
47
|
-
stage: "pending" | "inflight" | "delivered" | "failed";
|
|
48
|
-
message: string;
|
|
49
|
-
sourceTxHash?: string;
|
|
50
|
-
}) => void;
|
|
51
|
-
/**
|
|
52
|
-
* Pad an EVM address to 32 bytes (for LayerZero's bytes32 recipient format).
|
|
53
|
-
*/
|
|
54
|
-
export declare function padAddressToBytes32(address: string): string;
|
|
55
|
-
/**
|
|
56
|
-
* Parse a human-readable USDT0 amount to its smallest unit (6 decimals).
|
|
57
|
-
*/
|
|
58
|
-
export declare function parseUsdt0Amount(amount: string, decimals: number): bigint;
|
|
59
|
-
/**
|
|
60
|
-
* Build the SendParam tuple for OFT quoting and sending.
|
|
61
|
-
*/
|
|
62
|
-
export declare function buildSendParam(recipientAddress: string, amountLD: bigint, minAmountLD: bigint): {
|
|
63
|
-
dstEid: number;
|
|
64
|
-
to: string;
|
|
65
|
-
amountLD: bigint;
|
|
66
|
-
minAmountLD: bigint;
|
|
67
|
-
extraOptions: string;
|
|
68
|
-
composeMsg: string;
|
|
69
|
-
oftCmd: string;
|
|
70
|
-
};
|
|
71
|
-
/**
|
|
72
|
-
* Get chain configuration for a given chain ID.
|
|
73
|
-
* Returns undefined if the chain is not supported.
|
|
74
|
-
*/
|
|
75
|
-
export declare function getUsdt0ChainConfig(chainId: number): Usdt0ChainConfig | undefined;
|
|
76
|
-
/**
|
|
77
|
-
* Validate that a chain ID is supported for USDT0 bridging.
|
|
78
|
-
*/
|
|
79
|
-
export declare function isUsdt0SourceChain(chainId: number): boolean;
|
|
80
|
-
export { ARBITRUM_LZ_EID, ARBITRUM_USDT0_ADDRESS, USDT0_CHAINS };
|
|
81
|
-
export type { Usdt0ChainConfig };
|
|
82
|
-
//# sourceMappingURL=bridge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/usdt0-bridge/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAErB,oEAAoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,kDAAkD;AAClD,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,cAAc,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,+CAA+C;AAC/C,MAAM,WAAW,4BAA4B;IAC3C,oEAAoE;IACpE,EAAE,EAAE,mBAAmB,CAAC;IACxB,oBAAoB;IACpB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,iDAAiD;AACjD,MAAM,WAAW,6BAA6B;IAC5C,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,gBAAgB,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,6DAA6D;AAC7D,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE;IAC1C,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KAAK,IAAI,CAAC;AAEX;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMzE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB;IACD,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAUA;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GACd,gBAAgB,GAAG,SAAS,CAE9B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAGD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* USDT0 cross-chain bridge via LayerZero OFT protocol.
|
|
3
|
-
*
|
|
4
|
-
* Builds unsigned transactions for bridging USDT0 from any supported
|
|
5
|
-
* source chain to Arbitrum, where the existing LendaSwap flow takes over.
|
|
6
|
-
*
|
|
7
|
-
* This module never holds private keys or submits transactions.
|
|
8
|
-
*/
|
|
9
|
-
import { ARBITRUM_LZ_EID, ARBITRUM_USDT0_ADDRESS, USDT0_CHAINS, } from "./chains.js";
|
|
10
|
-
/**
|
|
11
|
-
* Pad an EVM address to 32 bytes (for LayerZero's bytes32 recipient format).
|
|
12
|
-
*/
|
|
13
|
-
export function padAddressToBytes32(address) {
|
|
14
|
-
const cleaned = address.toLowerCase().replace("0x", "");
|
|
15
|
-
return "0x" + cleaned.padStart(64, "0");
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Parse a human-readable USDT0 amount to its smallest unit (6 decimals).
|
|
19
|
-
*/
|
|
20
|
-
export function parseUsdt0Amount(amount, decimals) {
|
|
21
|
-
const parts = amount.split(".");
|
|
22
|
-
const whole = parts[0] || "0";
|
|
23
|
-
let frac = parts[1] || "";
|
|
24
|
-
frac = frac.padEnd(decimals, "0").slice(0, decimals);
|
|
25
|
-
return BigInt(whole) * BigInt(10 ** decimals) + BigInt(frac);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Build the SendParam tuple for OFT quoting and sending.
|
|
29
|
-
*/
|
|
30
|
-
export function buildSendParam(recipientAddress, amountLD, minAmountLD) {
|
|
31
|
-
return {
|
|
32
|
-
dstEid: ARBITRUM_LZ_EID,
|
|
33
|
-
to: padAddressToBytes32(recipientAddress),
|
|
34
|
-
amountLD,
|
|
35
|
-
minAmountLD,
|
|
36
|
-
extraOptions: "0x",
|
|
37
|
-
composeMsg: "0x",
|
|
38
|
-
oftCmd: "0x",
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Get chain configuration for a given chain ID.
|
|
43
|
-
* Returns undefined if the chain is not supported.
|
|
44
|
-
*/
|
|
45
|
-
export function getUsdt0ChainConfig(chainId) {
|
|
46
|
-
return USDT0_CHAINS[chainId];
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Validate that a chain ID is supported for USDT0 bridging.
|
|
50
|
-
*/
|
|
51
|
-
export function isUsdt0SourceChain(chainId) {
|
|
52
|
-
return chainId in USDT0_CHAINS;
|
|
53
|
-
}
|
|
54
|
-
// Re-export for convenience
|
|
55
|
-
export { ARBITRUM_LZ_EID, ARBITRUM_USDT0_ADDRESS, USDT0_CHAINS };
|
|
56
|
-
//# sourceMappingURL=bridge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/usdt0-bridge/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,YAAY,GAEb,MAAM,aAAa,CAAC;AAgDrB;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACxD,OAAO,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,QAAgB;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAC9B,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,gBAAwB,EACxB,QAAgB,EAChB,WAAmB;IAUnB,OAAO;QACL,MAAM,EAAE,eAAe;QACvB,EAAE,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;QACzC,QAAQ;QACR,WAAW;QACX,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAe;IAEf,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,OAAO,IAAI,YAAY,CAAC;AACjC,CAAC;AAED,4BAA4B;AAC5B,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* USDT0 OFT chain configuration.
|
|
3
|
-
*
|
|
4
|
-
* Adding a new USDT0-supported chain requires only a new entry here.
|
|
5
|
-
* Contract addresses sourced from https://docs.usdt0.to/technical-documentation/deployments
|
|
6
|
-
*/
|
|
7
|
-
export interface Usdt0ChainConfig {
|
|
8
|
-
/** USDT0 OFT contract address on this chain (used for bridging) */
|
|
9
|
-
oftAddress: string;
|
|
10
|
-
/** USDT0 ERC-20 token address on this chain (used for balanceOf, approvals) */
|
|
11
|
-
tokenAddress: string;
|
|
12
|
-
/** LayerZero endpoint ID for this chain */
|
|
13
|
-
lzEid: number;
|
|
14
|
-
/** Human-readable chain name */
|
|
15
|
-
name: string;
|
|
16
|
-
/** USDT0 decimals (6 on all chains) */
|
|
17
|
-
decimals: number;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* All supported USDT0 source chains, keyed by EVM chain ID.
|
|
21
|
-
*
|
|
22
|
-
* The destination chain (Arbitrum, chain ID 42161) is where LendaSwap's
|
|
23
|
-
* existing swap flow takes over — it is included here for reference
|
|
24
|
-
* but is not a valid source chain for `prepareSourceChainSwap()`.
|
|
25
|
-
*/
|
|
26
|
-
export declare const USDT0_CHAINS: Record<number, Usdt0ChainConfig>;
|
|
27
|
-
/** Arbitrum is always the destination chain for the USDT0 bridge. */
|
|
28
|
-
export declare const ARBITRUM_CHAIN_ID = 42161;
|
|
29
|
-
export declare const ARBITRUM_LZ_EID = 30110;
|
|
30
|
-
/** USDT0 OFT contract on Arbitrum (used for bridging). */
|
|
31
|
-
export declare const ARBITRUM_USDT0_ADDRESS = "0x14E4A1B13bf7F943c8ff7C51fb60FA964A298D92";
|
|
32
|
-
/** USDT0 ERC-20 token address on Arbitrum (used for balanceOf, approvals). */
|
|
33
|
-
export declare const ARBITRUM_USDT0_TOKEN_ADDRESS = "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9";
|
|
34
|
-
/**
|
|
35
|
-
* Returns source chains available for USDT0 bridging (excludes Arbitrum).
|
|
36
|
-
*/
|
|
37
|
-
export declare function getUsdt0SourceChains(): Array<{
|
|
38
|
-
chainId: number;
|
|
39
|
-
config: Usdt0ChainConfig;
|
|
40
|
-
}>;
|
|
41
|
-
//# sourceMappingURL=chains.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../src/usdt0-bridge/chains.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAsFzD,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,0DAA0D;AAC1D,eAAO,MAAM,sBAAsB,+CACW,CAAC;AAC/C,8EAA8E;AAC9E,eAAO,MAAM,4BAA4B,+CACK,CAAC;AAE/C;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,KAAK,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC,CAKD"}
|