@heyanon/sdk 1.0.5 → 2.0.0
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/adapter/types.d.ts +16 -6
- package/dist/blockchain/constants/chains.d.ts +20 -19
- package/dist/blockchain/constants/index.d.ts +0 -3
- package/dist/blockchain/evm/abis/WETH9Abi.d.ts +187 -0
- package/dist/blockchain/evm/abis/index.d.ts +1 -0
- package/dist/blockchain/evm/constants/chains.d.ts +17 -0
- package/dist/blockchain/evm/constants/index.d.ts +3 -0
- package/dist/blockchain/evm/constants/weth9.d.ts +21 -0
- package/dist/blockchain/evm/index.d.ts +4 -0
- package/dist/blockchain/{helpers → evm/utils}/checkToApprove.d.ts +1 -1
- package/dist/blockchain/evm/utils/getChainFromName.d.ts +2 -0
- package/dist/blockchain/evm/utils/getChainName.d.ts +1 -0
- package/dist/blockchain/evm/utils/getUnwrapData.d.ts +3 -0
- package/dist/blockchain/evm/utils/getWrapAddress.d.ts +3 -0
- package/dist/blockchain/evm/utils/getWrapAddress.test.d.ts +1 -0
- package/dist/blockchain/evm/utils/getWrapData.d.ts +3 -0
- package/dist/blockchain/evm/utils/getWrapData.test.d.ts +1 -0
- package/dist/blockchain/evm/utils/getWrappedNative.d.ts +3 -0
- package/dist/blockchain/evm/utils/getWrappedNative.test.d.ts +1 -0
- package/dist/blockchain/{helpers → evm/utils}/index.d.ts +6 -2
- package/dist/blockchain/evm/utils/isEvmChain.d.ts +1 -0
- package/dist/blockchain/evm/utils/isEvmChain.test.d.ts +1 -0
- package/dist/blockchain/index.d.ts +2 -2
- package/dist/blockchain/solana/index.d.ts +2 -0
- package/dist/blockchain/solana/types.d.ts +12 -0
- package/dist/blockchain/solana/utils/buildV0Transaction.d.ts +8 -0
- package/dist/blockchain/solana/utils/index.d.ts +2 -0
- package/dist/blockchain/solana/utils/toPublicKey.d.ts +2 -0
- package/dist/blockchain/solana/utils/toPublicKey.test.d.ts +1 -0
- package/dist/index.js +476 -104
- package/dist/index.mjs +472 -94
- package/package.json +2 -1
- package/dist/blockchain/constants/chainNames.d.ts +0 -3
- package/dist/blockchain/constants/weth9.d.ts +0 -23
- package/dist/blockchain/helpers/getChainFromName.d.ts +0 -2
- package/dist/blockchain/helpers/getChainName.d.ts +0 -2
- package/dist/blockchain/helpers/getWrappedNative.d.ts +0 -3
- /package/dist/blockchain/{constants → evm/constants}/misc.d.ts +0 -0
- /package/dist/blockchain/{types.d.ts → evm/types.d.ts} +0 -0
- /package/dist/blockchain/{helpers → evm/utils}/checkToApprove.test.d.ts +0 -0
- /package/dist/blockchain/{helpers → evm/utils}/getChainFromName.test.d.ts +0 -0
- /package/dist/blockchain/{helpers → evm/utils}/getChainName.test.d.ts +0 -0
- /package/dist/blockchain/{helpers/getWrappedNative.test.d.ts → evm/utils/getUnwrapData.test.d.ts} +0 -0
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import { erc20Abi, getAddress, encodeFunctionData } from 'viem';
|
|
1
2
|
import { ethereumTokens, optimismTokens, bscTokens, polygonTokens, fantomTokens, zkSyncTokens, kavaTokens, avalancheTokens, arbitrumTokens, metisTokens, baseTokens, iotaTokens, sonicTokens, Token } from '@real-wagmi/sdk';
|
|
2
|
-
import {
|
|
3
|
+
import { TransactionMessage, VersionedTransaction, PublicKey } from '@solana/web3.js';
|
|
4
|
+
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
3
10
|
|
|
4
11
|
// src/adapter/transformers/toResult.ts
|
|
5
12
|
function toResult(data = "", error = false) {
|
|
@@ -9,100 +16,33 @@ function toResult(data = "", error = false) {
|
|
|
9
16
|
};
|
|
10
17
|
}
|
|
11
18
|
|
|
12
|
-
// src/blockchain/
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
ChainId3[ChainId3["FANTOM"] = 250] = "FANTOM";
|
|
21
|
-
ChainId3[ChainId3["ZKSYNC"] = 324] = "ZKSYNC";
|
|
22
|
-
ChainId3[ChainId3["METIS"] = 1088] = "METIS";
|
|
23
|
-
ChainId3[ChainId3["KAVA"] = 2222] = "KAVA";
|
|
24
|
-
ChainId3[ChainId3["BASE"] = 8453] = "BASE";
|
|
25
|
-
ChainId3[ChainId3["IOTA"] = 8822] = "IOTA";
|
|
26
|
-
ChainId3[ChainId3["AVALANCHE"] = 43114] = "AVALANCHE";
|
|
27
|
-
ChainId3[ChainId3["ARBITRUM"] = 42161] = "ARBITRUM";
|
|
28
|
-
ChainId3[ChainId3["ONE_SEPOLIA"] = 421614] = "ONE_SEPOLIA";
|
|
29
|
-
ChainId3[ChainId3["SCROLL"] = 534352] = "SCROLL";
|
|
30
|
-
ChainId3[ChainId3["SEPOLIA"] = 11155111] = "SEPOLIA";
|
|
31
|
-
return ChainId3;
|
|
32
|
-
})(ChainId || {});
|
|
33
|
-
var allChainIds = Object.values(ChainId).filter((value) => typeof value === "number");
|
|
34
|
-
var WETH9 = {
|
|
35
|
-
[1 /* ETHEREUM */]: ethereumTokens.weth,
|
|
36
|
-
[10 /* OPTIMISM */]: optimismTokens.weth,
|
|
37
|
-
[56 /* BSC */]: bscTokens.wbnb,
|
|
38
|
-
[137 /* POLYGON */]: polygonTokens.wmatic,
|
|
39
|
-
[250 /* FANTOM */]: fantomTokens.wftm,
|
|
40
|
-
[324 /* ZKSYNC */]: zkSyncTokens.weth,
|
|
41
|
-
[2222 /* KAVA */]: kavaTokens.wkava,
|
|
42
|
-
[43114 /* AVALANCHE */]: avalancheTokens.wavax,
|
|
43
|
-
[42161 /* ARBITRUM */]: arbitrumTokens.weth,
|
|
44
|
-
[1088 /* METIS */]: metisTokens.wmetis,
|
|
45
|
-
[8453 /* BASE */]: baseTokens.weth,
|
|
46
|
-
[8822 /* IOTA */]: iotaTokens.wiota,
|
|
47
|
-
[146 /* SONIC */]: sonicTokens.ws,
|
|
48
|
-
[11155111 /* SEPOLIA */]: new Token(11155111 /* SEPOLIA */, "0x7b79995e5f793a07bc00c21412e50ecae098e7f9", 18, "WETH", "Wrapped Ether"),
|
|
49
|
-
[421614 /* ONE_SEPOLIA */]: new Token(421614 /* ONE_SEPOLIA */, "0x980B62Da83eFf3D4576C647993b0c1D7faf17c73", 18, "WETH", "Wrapped Ether"),
|
|
50
|
-
[534352 /* SCROLL */]: new Token(534352 /* SCROLL */, "0x5300000000000000000000000000000000000004", 18, "WETH", "Wrapped Ether"),
|
|
51
|
-
[100 /* GNOSIS */]: new Token(100 /* GNOSIS */, "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d", 18, "WXDAI", "Wrapped XDAI")
|
|
52
|
-
};
|
|
19
|
+
// src/blockchain/evm/index.ts
|
|
20
|
+
var evm_exports = {};
|
|
21
|
+
__export(evm_exports, {
|
|
22
|
+
abis: () => abis_exports,
|
|
23
|
+
constants: () => constants_exports,
|
|
24
|
+
types: () => types_exports,
|
|
25
|
+
utils: () => utils_exports
|
|
26
|
+
});
|
|
53
27
|
|
|
54
|
-
// src/blockchain/
|
|
55
|
-
var
|
|
56
|
-
[56 /* BSC */]: "bsc",
|
|
57
|
-
[1 /* ETHEREUM */]: "ethereum",
|
|
58
|
-
[324 /* ZKSYNC */]: "zksync",
|
|
59
|
-
[10 /* OPTIMISM */]: "optimistic",
|
|
60
|
-
[137 /* POLYGON */]: "polygon",
|
|
61
|
-
[250 /* FANTOM */]: "fantom",
|
|
62
|
-
[2222 /* KAVA */]: "kava",
|
|
63
|
-
[43114 /* AVALANCHE */]: "avalanche",
|
|
64
|
-
[42161 /* ARBITRUM */]: "arbitrum-one",
|
|
65
|
-
[1088 /* METIS */]: "metis",
|
|
66
|
-
[8453 /* BASE */]: "base",
|
|
67
|
-
[8822 /* IOTA */]: "iota",
|
|
68
|
-
[11155111 /* SEPOLIA */]: "sepolia",
|
|
69
|
-
[146 /* SONIC */]: "sonic",
|
|
70
|
-
[100 /* GNOSIS */]: "gnosis",
|
|
71
|
-
[534352 /* SCROLL */]: "scroll",
|
|
72
|
-
[421614 /* ONE_SEPOLIA */]: "one-sepolia"
|
|
73
|
-
};
|
|
74
|
-
var allChainNames = Object.values(chainNames);
|
|
28
|
+
// src/blockchain/evm/types.ts
|
|
29
|
+
var types_exports = {};
|
|
75
30
|
|
|
76
|
-
// src/blockchain/
|
|
77
|
-
var
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if (name === chainName) {
|
|
92
|
-
return parseInt(chainId);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
throw new Error(`Unknown chain name: ${chainName}`);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
// src/blockchain/helpers/getWrappedNative.ts
|
|
99
|
-
function getWrappedNative(chainId) {
|
|
100
|
-
const token = WETH9[chainId];
|
|
101
|
-
if (!token) {
|
|
102
|
-
throw new Error(`Wrapped native for chainId ${chainId} not found`);
|
|
103
|
-
}
|
|
104
|
-
return token;
|
|
105
|
-
}
|
|
31
|
+
// src/blockchain/evm/utils/index.ts
|
|
32
|
+
var utils_exports = {};
|
|
33
|
+
__export(utils_exports, {
|
|
34
|
+
checkToApprove: () => checkToApprove,
|
|
35
|
+
getChainFromName: () => getChainFromName,
|
|
36
|
+
getChainName: () => getChainName,
|
|
37
|
+
getUnwrapData: () => getUnwrapData,
|
|
38
|
+
getWrapAddress: () => getWrapAddress,
|
|
39
|
+
getWrapData: () => getWrapData,
|
|
40
|
+
getWrappedNative: () => getWrappedNative,
|
|
41
|
+
isEvmChain: () => isEvmChain
|
|
42
|
+
});
|
|
43
|
+
var ZERO_ALLOWANCE = {
|
|
44
|
+
1: ["0xdAC17F958D2ee523a2206206994597C13D831ec7"]
|
|
45
|
+
};
|
|
106
46
|
async function checkToApprove({ args, transactions, provider }) {
|
|
107
47
|
const { account, target, spender, amount } = args;
|
|
108
48
|
const allowance = await provider.readContract({
|
|
@@ -111,6 +51,22 @@ async function checkToApprove({ args, transactions, provider }) {
|
|
|
111
51
|
functionName: "allowance",
|
|
112
52
|
args: [account, spender]
|
|
113
53
|
});
|
|
54
|
+
let chainId = provider.chain?.id;
|
|
55
|
+
if (!chainId) {
|
|
56
|
+
chainId = await provider.getChainId();
|
|
57
|
+
}
|
|
58
|
+
if (ZERO_ALLOWANCE[chainId]?.includes(getAddress(target))) {
|
|
59
|
+
if (allowance < amount && allowance > 0n) {
|
|
60
|
+
transactions.push({
|
|
61
|
+
target,
|
|
62
|
+
data: encodeFunctionData({
|
|
63
|
+
abi: erc20Abi,
|
|
64
|
+
functionName: "approve",
|
|
65
|
+
args: [spender, 0n]
|
|
66
|
+
})
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
114
70
|
if (allowance < amount) {
|
|
115
71
|
transactions.push({
|
|
116
72
|
target,
|
|
@@ -123,6 +79,428 @@ async function checkToApprove({ args, transactions, provider }) {
|
|
|
123
79
|
}
|
|
124
80
|
}
|
|
125
81
|
|
|
82
|
+
// src/blockchain/evm/constants/index.ts
|
|
83
|
+
var constants_exports = {};
|
|
84
|
+
__export(constants_exports, {
|
|
85
|
+
ChainIds: () => ChainIds,
|
|
86
|
+
DEAD_ADDRESS: () => DEAD_ADDRESS,
|
|
87
|
+
NATIVE_ADDRESS: () => NATIVE_ADDRESS,
|
|
88
|
+
WETH9: () => WETH9
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
// src/blockchain/evm/constants/misc.ts
|
|
92
|
+
var NATIVE_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
|
93
|
+
var DEAD_ADDRESS = "0x000000000000000000000000000000000000dEaD";
|
|
94
|
+
|
|
95
|
+
// src/blockchain/constants/chains.ts
|
|
96
|
+
var Chain = /* @__PURE__ */ ((Chain2) => {
|
|
97
|
+
Chain2["ETHEREUM"] = "ethereum";
|
|
98
|
+
Chain2["OPTIMISM"] = "optimism";
|
|
99
|
+
Chain2["BSC"] = "bsc";
|
|
100
|
+
Chain2["GNOSIS"] = "gnosis";
|
|
101
|
+
Chain2["POLYGON"] = "polygon";
|
|
102
|
+
Chain2["SONIC"] = "sonic";
|
|
103
|
+
Chain2["FANTOM"] = "fantom";
|
|
104
|
+
Chain2["ZKSYNC"] = "zksync";
|
|
105
|
+
Chain2["METIS"] = "metis";
|
|
106
|
+
Chain2["KAVA_EVM"] = "kava_evm";
|
|
107
|
+
Chain2["BASE"] = "base";
|
|
108
|
+
Chain2["IOTA_EVM"] = "iota_evm";
|
|
109
|
+
Chain2["AVALANCHE"] = "avalanche";
|
|
110
|
+
Chain2["ARBITRUM"] = "arbitrum";
|
|
111
|
+
Chain2["SCROLL"] = "scroll";
|
|
112
|
+
Chain2["SOLANA"] = "solana";
|
|
113
|
+
return Chain2;
|
|
114
|
+
})(Chain || {});
|
|
115
|
+
var allChains = Object.values(Chain);
|
|
116
|
+
var allEvmChains = Object.values(Chain).filter((chain) => chain !== "solana" /* SOLANA */);
|
|
117
|
+
var WETH9 = {
|
|
118
|
+
["ethereum" /* ETHEREUM */]: ethereumTokens.weth,
|
|
119
|
+
["optimism" /* OPTIMISM */]: optimismTokens.weth,
|
|
120
|
+
["bsc" /* BSC */]: bscTokens.wbnb,
|
|
121
|
+
["polygon" /* POLYGON */]: polygonTokens.wmatic,
|
|
122
|
+
["fantom" /* FANTOM */]: fantomTokens.wftm,
|
|
123
|
+
["zksync" /* ZKSYNC */]: zkSyncTokens.weth,
|
|
124
|
+
["kava_evm" /* KAVA_EVM */]: kavaTokens.wkava,
|
|
125
|
+
["avalanche" /* AVALANCHE */]: avalancheTokens.wavax,
|
|
126
|
+
["arbitrum" /* ARBITRUM */]: arbitrumTokens.weth,
|
|
127
|
+
["metis" /* METIS */]: metisTokens.wmetis,
|
|
128
|
+
["base" /* BASE */]: baseTokens.weth,
|
|
129
|
+
["iota_evm" /* IOTA_EVM */]: iotaTokens.wiota,
|
|
130
|
+
["sonic" /* SONIC */]: sonicTokens.ws,
|
|
131
|
+
["scroll" /* SCROLL */]: new Token(534352, "0x5300000000000000000000000000000000000004", 18, "WETH", "Wrapped Ether"),
|
|
132
|
+
["gnosis" /* GNOSIS */]: new Token(100, "0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d", 18, "WXDAI", "Wrapped XDAI")
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
// src/blockchain/evm/constants/chains.ts
|
|
136
|
+
var ChainIds = {
|
|
137
|
+
["ethereum" /* ETHEREUM */]: 1,
|
|
138
|
+
["optimism" /* OPTIMISM */]: 10,
|
|
139
|
+
["bsc" /* BSC */]: 56,
|
|
140
|
+
["gnosis" /* GNOSIS */]: 100,
|
|
141
|
+
["polygon" /* POLYGON */]: 137,
|
|
142
|
+
["sonic" /* SONIC */]: 146,
|
|
143
|
+
["fantom" /* FANTOM */]: 250,
|
|
144
|
+
["zksync" /* ZKSYNC */]: 324,
|
|
145
|
+
["metis" /* METIS */]: 1088,
|
|
146
|
+
["kava_evm" /* KAVA_EVM */]: 2222,
|
|
147
|
+
["base" /* BASE */]: 8453,
|
|
148
|
+
["iota_evm" /* IOTA_EVM */]: 8822,
|
|
149
|
+
["avalanche" /* AVALANCHE */]: 43114,
|
|
150
|
+
["arbitrum" /* ARBITRUM */]: 42161,
|
|
151
|
+
["scroll" /* SCROLL */]: 534352
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
// src/blockchain/evm/utils/getChainFromName.ts
|
|
155
|
+
function getChainFromName(chain) {
|
|
156
|
+
const chainId = ChainIds[chain];
|
|
157
|
+
if (!chainId)
|
|
158
|
+
throw new Error(`Unknown chain name: ${chain}`);
|
|
159
|
+
return chainId;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// src/blockchain/evm/utils/getChainName.ts
|
|
163
|
+
function getChainName(chainId) {
|
|
164
|
+
for (const [name, chain] of Object.entries(ChainIds)) {
|
|
165
|
+
if (chain === chainId) {
|
|
166
|
+
return name;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
throw new Error(`Chain name with id ${chainId} not found`);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// src/blockchain/evm/abis/index.ts
|
|
173
|
+
var abis_exports = {};
|
|
174
|
+
__export(abis_exports, {
|
|
175
|
+
WETH9Abi: () => WETH9Abi
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
// src/blockchain/evm/abis/WETH9Abi.ts
|
|
179
|
+
var WETH9Abi = [
|
|
180
|
+
{
|
|
181
|
+
anonymous: false,
|
|
182
|
+
inputs: [
|
|
183
|
+
{
|
|
184
|
+
indexed: true,
|
|
185
|
+
internalType: "address",
|
|
186
|
+
name: "owner",
|
|
187
|
+
type: "address"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
indexed: true,
|
|
191
|
+
internalType: "address",
|
|
192
|
+
name: "spender",
|
|
193
|
+
type: "address"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
indexed: false,
|
|
197
|
+
internalType: "uint256",
|
|
198
|
+
name: "value",
|
|
199
|
+
type: "uint256"
|
|
200
|
+
}
|
|
201
|
+
],
|
|
202
|
+
name: "Approval",
|
|
203
|
+
type: "event"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
anonymous: false,
|
|
207
|
+
inputs: [
|
|
208
|
+
{
|
|
209
|
+
indexed: true,
|
|
210
|
+
internalType: "address",
|
|
211
|
+
name: "from",
|
|
212
|
+
type: "address"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
indexed: true,
|
|
216
|
+
internalType: "address",
|
|
217
|
+
name: "to",
|
|
218
|
+
type: "address"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
indexed: false,
|
|
222
|
+
internalType: "uint256",
|
|
223
|
+
name: "value",
|
|
224
|
+
type: "uint256"
|
|
225
|
+
}
|
|
226
|
+
],
|
|
227
|
+
name: "Transfer",
|
|
228
|
+
type: "event"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
inputs: [
|
|
232
|
+
{
|
|
233
|
+
internalType: "address",
|
|
234
|
+
name: "owner",
|
|
235
|
+
type: "address"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
internalType: "address",
|
|
239
|
+
name: "spender",
|
|
240
|
+
type: "address"
|
|
241
|
+
}
|
|
242
|
+
],
|
|
243
|
+
name: "allowance",
|
|
244
|
+
outputs: [
|
|
245
|
+
{
|
|
246
|
+
internalType: "uint256",
|
|
247
|
+
name: "",
|
|
248
|
+
type: "uint256"
|
|
249
|
+
}
|
|
250
|
+
],
|
|
251
|
+
stateMutability: "view",
|
|
252
|
+
type: "function"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
inputs: [
|
|
256
|
+
{
|
|
257
|
+
internalType: "address",
|
|
258
|
+
name: "spender",
|
|
259
|
+
type: "address"
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
internalType: "uint256",
|
|
263
|
+
name: "amount",
|
|
264
|
+
type: "uint256"
|
|
265
|
+
}
|
|
266
|
+
],
|
|
267
|
+
name: "approve",
|
|
268
|
+
outputs: [
|
|
269
|
+
{
|
|
270
|
+
internalType: "bool",
|
|
271
|
+
name: "",
|
|
272
|
+
type: "bool"
|
|
273
|
+
}
|
|
274
|
+
],
|
|
275
|
+
stateMutability: "nonpayable",
|
|
276
|
+
type: "function"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
inputs: [
|
|
280
|
+
{
|
|
281
|
+
internalType: "address",
|
|
282
|
+
name: "account",
|
|
283
|
+
type: "address"
|
|
284
|
+
}
|
|
285
|
+
],
|
|
286
|
+
name: "balanceOf",
|
|
287
|
+
outputs: [
|
|
288
|
+
{
|
|
289
|
+
internalType: "uint256",
|
|
290
|
+
name: "",
|
|
291
|
+
type: "uint256"
|
|
292
|
+
}
|
|
293
|
+
],
|
|
294
|
+
stateMutability: "view",
|
|
295
|
+
type: "function"
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
inputs: [],
|
|
299
|
+
name: "deposit",
|
|
300
|
+
outputs: [],
|
|
301
|
+
stateMutability: "payable",
|
|
302
|
+
type: "function"
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
inputs: [],
|
|
306
|
+
name: "totalSupply",
|
|
307
|
+
outputs: [
|
|
308
|
+
{
|
|
309
|
+
internalType: "uint256",
|
|
310
|
+
name: "",
|
|
311
|
+
type: "uint256"
|
|
312
|
+
}
|
|
313
|
+
],
|
|
314
|
+
stateMutability: "view",
|
|
315
|
+
type: "function"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
inputs: [
|
|
319
|
+
{
|
|
320
|
+
internalType: "address",
|
|
321
|
+
name: "to",
|
|
322
|
+
type: "address"
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
internalType: "uint256",
|
|
326
|
+
name: "amount",
|
|
327
|
+
type: "uint256"
|
|
328
|
+
}
|
|
329
|
+
],
|
|
330
|
+
name: "transfer",
|
|
331
|
+
outputs: [
|
|
332
|
+
{
|
|
333
|
+
internalType: "bool",
|
|
334
|
+
name: "",
|
|
335
|
+
type: "bool"
|
|
336
|
+
}
|
|
337
|
+
],
|
|
338
|
+
stateMutability: "nonpayable",
|
|
339
|
+
type: "function"
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
inputs: [
|
|
343
|
+
{
|
|
344
|
+
internalType: "address",
|
|
345
|
+
name: "from",
|
|
346
|
+
type: "address"
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
internalType: "address",
|
|
350
|
+
name: "to",
|
|
351
|
+
type: "address"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
internalType: "uint256",
|
|
355
|
+
name: "amount",
|
|
356
|
+
type: "uint256"
|
|
357
|
+
}
|
|
358
|
+
],
|
|
359
|
+
name: "transferFrom",
|
|
360
|
+
outputs: [
|
|
361
|
+
{
|
|
362
|
+
internalType: "bool",
|
|
363
|
+
name: "",
|
|
364
|
+
type: "bool"
|
|
365
|
+
}
|
|
366
|
+
],
|
|
367
|
+
stateMutability: "nonpayable",
|
|
368
|
+
type: "function"
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
inputs: [
|
|
372
|
+
{
|
|
373
|
+
internalType: "uint256",
|
|
374
|
+
name: "wad",
|
|
375
|
+
type: "uint256"
|
|
376
|
+
}
|
|
377
|
+
],
|
|
378
|
+
name: "withdraw",
|
|
379
|
+
outputs: [],
|
|
380
|
+
stateMutability: "nonpayable",
|
|
381
|
+
type: "function"
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
inputs: [],
|
|
385
|
+
name: "name",
|
|
386
|
+
outputs: [
|
|
387
|
+
{
|
|
388
|
+
internalType: "string",
|
|
389
|
+
name: "",
|
|
390
|
+
type: "string"
|
|
391
|
+
}
|
|
392
|
+
],
|
|
393
|
+
stateMutability: "view",
|
|
394
|
+
type: "function"
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
inputs: [],
|
|
398
|
+
name: "symbol",
|
|
399
|
+
outputs: [
|
|
400
|
+
{
|
|
401
|
+
internalType: "string",
|
|
402
|
+
name: "",
|
|
403
|
+
type: "string"
|
|
404
|
+
}
|
|
405
|
+
],
|
|
406
|
+
stateMutability: "view",
|
|
407
|
+
type: "function"
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
inputs: [],
|
|
411
|
+
name: "decimals",
|
|
412
|
+
outputs: [
|
|
413
|
+
{
|
|
414
|
+
internalType: "uint8",
|
|
415
|
+
name: "",
|
|
416
|
+
type: "uint8"
|
|
417
|
+
}
|
|
418
|
+
],
|
|
419
|
+
stateMutability: "view",
|
|
420
|
+
type: "function"
|
|
421
|
+
}
|
|
422
|
+
];
|
|
423
|
+
|
|
424
|
+
// src/blockchain/evm/utils/getWrapAddress.ts
|
|
425
|
+
function getWrapAddress(chain) {
|
|
426
|
+
const wraperAddress = WETH9[chain]?.address;
|
|
427
|
+
if (!wraperAddress)
|
|
428
|
+
throw new Error(`Wrap address not set: ${chain}`);
|
|
429
|
+
return wraperAddress;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
// src/blockchain/evm/utils/getUnwrapData.ts
|
|
433
|
+
function getUnwrapData(chain, amount) {
|
|
434
|
+
const wraperAddress = getWrapAddress(chain);
|
|
435
|
+
return {
|
|
436
|
+
target: wraperAddress,
|
|
437
|
+
data: encodeFunctionData({
|
|
438
|
+
abi: WETH9Abi,
|
|
439
|
+
functionName: "withdraw",
|
|
440
|
+
args: [amount]
|
|
441
|
+
})
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
function getWrapData(chain, amount) {
|
|
445
|
+
const wraperAddress = getWrapAddress(chain);
|
|
446
|
+
return {
|
|
447
|
+
target: wraperAddress,
|
|
448
|
+
data: encodeFunctionData({
|
|
449
|
+
abi: WETH9Abi,
|
|
450
|
+
functionName: "deposit"
|
|
451
|
+
}),
|
|
452
|
+
value: amount
|
|
453
|
+
};
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
// src/blockchain/evm/utils/getWrappedNative.ts
|
|
457
|
+
function getWrappedNative(chain) {
|
|
458
|
+
const token = WETH9[chain];
|
|
459
|
+
if (!token)
|
|
460
|
+
throw new Error(`Wrapped native for chain ${chain} not found`);
|
|
461
|
+
return token;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
// src/blockchain/evm/utils/isEvmChain.ts
|
|
465
|
+
function isEvmChain(chain) {
|
|
466
|
+
return allEvmChains.includes(chain);
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
// src/blockchain/solana/index.ts
|
|
470
|
+
var solana_exports = {};
|
|
471
|
+
__export(solana_exports, {
|
|
472
|
+
types: () => types_exports2,
|
|
473
|
+
utils: () => utils_exports2
|
|
474
|
+
});
|
|
475
|
+
|
|
476
|
+
// src/blockchain/solana/types.ts
|
|
477
|
+
var types_exports2 = {};
|
|
478
|
+
|
|
479
|
+
// src/blockchain/solana/utils/index.ts
|
|
480
|
+
var utils_exports2 = {};
|
|
481
|
+
__export(utils_exports2, {
|
|
482
|
+
buildV0Transaction: () => buildV0Transaction,
|
|
483
|
+
toPublicKey: () => toPublicKey
|
|
484
|
+
});
|
|
485
|
+
async function buildV0Transaction({ connection, payer, instructions }) {
|
|
486
|
+
const { blockhash } = await connection.getLatestBlockhash();
|
|
487
|
+
const message = new TransactionMessage({
|
|
488
|
+
payerKey: payer,
|
|
489
|
+
recentBlockhash: blockhash,
|
|
490
|
+
instructions
|
|
491
|
+
}).compileToV0Message();
|
|
492
|
+
const transaction = new VersionedTransaction(message);
|
|
493
|
+
return transaction;
|
|
494
|
+
}
|
|
495
|
+
function toPublicKey(publicKey) {
|
|
496
|
+
try {
|
|
497
|
+
const result = new PublicKey(publicKey);
|
|
498
|
+
return result;
|
|
499
|
+
} catch (error) {
|
|
500
|
+
throw new Error(`${publicKey} is not publickey`);
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
|
|
126
504
|
// src/utils/retry.ts
|
|
127
505
|
function delay(ms) {
|
|
128
506
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
@@ -146,4 +524,4 @@ async function retry(fn, options) {
|
|
|
146
524
|
// src/utils/sleep.ts
|
|
147
525
|
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
148
526
|
|
|
149
|
-
export {
|
|
527
|
+
export { Chain, evm_exports as EVM, solana_exports as Solana, allChains, allEvmChains, retry, sleep, toResult };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heyanon/sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@real-wagmi/sdk": "^1.4.5",
|
|
45
|
+
"@solana/web3.js": "^1.98.0",
|
|
45
46
|
"viem": "^2.22.7",
|
|
46
47
|
"vitest": "^2.1.8"
|
|
47
48
|
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Token } from '@real-wagmi/sdk';
|
|
2
|
-
/**
|
|
3
|
-
* Known WETH9 implementation addresses, used in our implementation of Ether#wrapped
|
|
4
|
-
*/
|
|
5
|
-
export declare const WETH9: {
|
|
6
|
-
1: Token;
|
|
7
|
-
10: Token;
|
|
8
|
-
56: Token;
|
|
9
|
-
137: Token;
|
|
10
|
-
250: Token;
|
|
11
|
-
324: Token;
|
|
12
|
-
2222: Token;
|
|
13
|
-
43114: Token;
|
|
14
|
-
42161: Token;
|
|
15
|
-
1088: Token;
|
|
16
|
-
8453: Token;
|
|
17
|
-
8822: Token;
|
|
18
|
-
146: Token;
|
|
19
|
-
11155111: Token;
|
|
20
|
-
421614: Token;
|
|
21
|
-
534352: Token;
|
|
22
|
-
100: Token;
|
|
23
|
-
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/blockchain/{helpers/getWrappedNative.test.d.ts → evm/utils/getUnwrapData.test.d.ts}
RENAMED
|
File without changes
|