@sequence0/sdk 2.0.0 → 2.1.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/README.md +10 -10
- package/dist/chains/casper.d.ts +74 -0
- package/dist/chains/casper.d.ts.map +1 -0
- package/dist/chains/casper.js +512 -0
- package/dist/chains/casper.js.map +1 -0
- package/dist/chains/cosmos.d.ts +22 -0
- package/dist/chains/cosmos.d.ts.map +1 -1
- package/dist/chains/cosmos.js +113 -12
- package/dist/chains/cosmos.js.map +1 -1
- package/dist/chains/ethereum.d.ts.map +1 -1
- package/dist/chains/ethereum.js +14 -2
- package/dist/chains/ethereum.js.map +1 -1
- package/dist/chains/flow.d.ts +57 -0
- package/dist/chains/flow.d.ts.map +1 -0
- package/dist/chains/flow.js +435 -0
- package/dist/chains/flow.js.map +1 -0
- package/dist/chains/icp.d.ts.map +1 -1
- package/dist/chains/icp.js +483 -67
- package/dist/chains/icp.js.map +1 -1
- package/dist/chains/iota.d.ts +80 -0
- package/dist/chains/iota.d.ts.map +1 -0
- package/dist/chains/iota.js +502 -0
- package/dist/chains/iota.js.map +1 -0
- package/dist/chains/kadena.d.ts +81 -0
- package/dist/chains/kadena.d.ts.map +1 -0
- package/dist/chains/kadena.js +356 -0
- package/dist/chains/kadena.js.map +1 -0
- package/dist/chains/near.d.ts +4 -1
- package/dist/chains/near.d.ts.map +1 -1
- package/dist/chains/near.js +58 -15
- package/dist/chains/near.js.map +1 -1
- package/dist/chains/nervos.d.ts +148 -0
- package/dist/chains/nervos.d.ts.map +1 -0
- package/dist/chains/nervos.js +913 -0
- package/dist/chains/nervos.js.map +1 -0
- package/dist/chains/radix.d.ts +81 -0
- package/dist/chains/radix.d.ts.map +1 -0
- package/dist/chains/radix.js +289 -0
- package/dist/chains/radix.js.map +1 -0
- package/dist/chains/solana.d.ts +4 -0
- package/dist/chains/solana.d.ts.map +1 -1
- package/dist/chains/solana.js +47 -13
- package/dist/chains/solana.js.map +1 -1
- package/dist/chains/stacks.d.ts +113 -0
- package/dist/chains/stacks.d.ts.map +1 -0
- package/dist/chains/stacks.js +576 -0
- package/dist/chains/stacks.js.map +1 -0
- package/dist/chains/sui.d.ts +11 -0
- package/dist/chains/sui.d.ts.map +1 -1
- package/dist/chains/sui.js +49 -8
- package/dist/chains/sui.js.map +1 -1
- package/dist/core/atomic.d.ts +1 -1
- package/dist/core/atomic.js +1 -1
- package/dist/core/client.d.ts +3 -3
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +11 -11
- package/dist/core/client.js.map +1 -1
- package/dist/core/delegation.d.ts +2 -2
- package/dist/core/delegation.d.ts.map +1 -1
- package/dist/core/delegation.js +1 -1
- package/dist/core/programmable.d.ts +1 -1
- package/dist/core/programmable.js +1 -1
- package/dist/core/solvency.d.ts +3 -3
- package/dist/core/solvency.js +3 -3
- package/dist/core/types.d.ts +94 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/universal-account.d.ts +3 -3
- package/dist/core/universal-account.js +3 -3
- package/dist/core/witness.d.ts +3 -3
- package/dist/core/witness.js +3 -3
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/settlement/settlement.d.ts +6 -6
- package/dist/settlement/settlement.d.ts.map +1 -1
- package/dist/settlement/settlement.js +5 -5
- package/dist/utils/discovery.d.ts.map +1 -1
- package/dist/utils/discovery.js +23 -7
- package/dist/utils/discovery.js.map +1 -1
- package/dist/utils/http.d.ts +1 -1
- package/dist/utils/http.d.ts.map +1 -1
- package/dist/utils/http.js +7 -2
- package/dist/utils/http.js.map +1 -1
- package/dist/utils/logger.d.ts +3 -3
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +3 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/wallet/wallet.d.ts.map +1 -1
- package/dist/wallet/wallet.js +47 -2
- package/dist/wallet/wallet.js.map +1 -1
- package/package.json +1 -1
package/dist/chains/cosmos.d.ts
CHANGED
|
@@ -32,6 +32,28 @@ export declare class CosmosAdapter implements ChainAdapter {
|
|
|
32
32
|
* Broadcast a signed Cosmos transaction
|
|
33
33
|
*/
|
|
34
34
|
broadcast(signedTx: string): Promise<string>;
|
|
35
|
+
/**
|
|
36
|
+
* Build the AuthInfo protobuf bytes manually.
|
|
37
|
+
*
|
|
38
|
+
* AuthInfo structure:
|
|
39
|
+
* message AuthInfo {
|
|
40
|
+
* repeated SignerInfo signer_infos = 1;
|
|
41
|
+
* Fee fee = 2;
|
|
42
|
+
* }
|
|
43
|
+
* message SignerInfo {
|
|
44
|
+
* google.protobuf.Any public_key = 1;
|
|
45
|
+
* ModeInfo mode_info = 2;
|
|
46
|
+
* uint64 sequence = 3;
|
|
47
|
+
* }
|
|
48
|
+
* message Fee {
|
|
49
|
+
* repeated Coin amount = 1;
|
|
50
|
+
* uint64 gas_limit = 2;
|
|
51
|
+
* }
|
|
52
|
+
*
|
|
53
|
+
* We encode this manually using protobuf wire format to avoid
|
|
54
|
+
* importing heavy cosmos-proto dependencies.
|
|
55
|
+
*/
|
|
56
|
+
private buildAuthInfoBytes;
|
|
35
57
|
/**
|
|
36
58
|
* Get native token balance
|
|
37
59
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../../src/chains/cosmos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"cosmos.d.ts","sourceRoot":"","sources":["../../src/chains/cosmos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AA2ChE,qBAAa,aAAc,YAAW,YAAY;IAC9C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,YAAY,CAAM;gBAEd,SAAS,SAAc,EAAE,MAAM,CAAC,EAAE,MAAM;IAOpD,SAAS,IAAI,MAAM;IAInB;;;;;OAKG;IACG,gBAAgB,CAAC,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAsGnF,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAS7C;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAsB7E;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoClD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,kBAAkB;IAiF1B;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAYrD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,CAElE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,CAEnE"}
|
package/dist/chains/cosmos.js
CHANGED
|
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
exports.CosmosAdapter = void 0;
|
|
14
14
|
exports.createCosmosAdapter = createCosmosAdapter;
|
|
15
15
|
exports.createOsmosisAdapter = createOsmosisAdapter;
|
|
16
|
+
const crypto_1 = require("crypto");
|
|
16
17
|
const errors_1 = require("../utils/errors");
|
|
17
18
|
const optional_deps_1 = require("../utils/optional-deps");
|
|
18
19
|
const DEFAULT_RPCS = {
|
|
@@ -70,7 +71,7 @@ class CosmosAdapter {
|
|
|
70
71
|
async buildTransaction(tx, fromAddress) {
|
|
71
72
|
try {
|
|
72
73
|
const { StargateClient } = this.cosmjs;
|
|
73
|
-
const { makeSignDoc, makeSignBytes, Registry
|
|
74
|
+
const { makeSignDoc, makeSignBytes, Registry } = this.protoSigning;
|
|
74
75
|
const client = await StargateClient.connect(this.rpcUrl);
|
|
75
76
|
const account = await client.getAccount(fromAddress);
|
|
76
77
|
if (!account) {
|
|
@@ -79,6 +80,7 @@ class CosmosAdapter {
|
|
|
79
80
|
const denom = tx.denom || DEFAULT_DENOMS[this.chainName] || 'uatom';
|
|
80
81
|
const chainId = tx.chainId || DEFAULT_CHAIN_IDS[this.chainName] || 'cosmoshub-4';
|
|
81
82
|
const gasLimit = tx.gas || '200000';
|
|
83
|
+
const gasPrice = tx.gasPrice || '0.025';
|
|
82
84
|
// Build MsgSend
|
|
83
85
|
const msgSend = {
|
|
84
86
|
typeUrl: '/cosmos.bank.v1beta1.MsgSend',
|
|
@@ -96,25 +98,38 @@ class CosmosAdapter {
|
|
|
96
98
|
memo: tx.memo || '',
|
|
97
99
|
},
|
|
98
100
|
});
|
|
99
|
-
//
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
// Resolve the signer's public key
|
|
102
|
+
let pubkeyBytes;
|
|
103
|
+
if (tx.publicKey) {
|
|
104
|
+
// Use provided public key
|
|
105
|
+
pubkeyBytes = Buffer.from(tx.publicKey, 'hex');
|
|
106
|
+
}
|
|
107
|
+
else if (account.pubkey) {
|
|
108
|
+
// Use on-chain public key (available after first TX)
|
|
109
|
+
pubkeyBytes = Buffer.from(account.pubkey.value, 'base64');
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
throw new Error('Public key required for Cosmos transactions. Provide publicKey in the transaction ' +
|
|
113
|
+
'or send at least one transaction from this account first.');
|
|
114
|
+
}
|
|
115
|
+
// Calculate fee amount: gasLimit * gasPrice
|
|
116
|
+
const feeAmount = Math.ceil(parseInt(gasLimit) * parseFloat(gasPrice)).toString();
|
|
117
|
+
// Build proper AuthInfo with SignerInfo + Fee (protobuf binary encoding)
|
|
118
|
+
const authInfoBytes = this.buildAuthInfoBytes(pubkeyBytes, account.sequence, gasLimit, feeAmount, denom);
|
|
119
|
+
const signDoc = makeSignDoc(txBodyEncoded, authInfoBytes, chainId, account.accountNumber);
|
|
106
120
|
const signBytes = makeSignBytes(signDoc);
|
|
107
121
|
// SHA-256 of signBytes is what FROST signs
|
|
108
|
-
const
|
|
109
|
-
const signingHash = crypto.createHash('sha256').update(Buffer.from(signBytes)).digest();
|
|
122
|
+
const signingHash = (0, crypto_1.createHash)('sha256').update(Buffer.from(signBytes)).digest();
|
|
110
123
|
const payload = {
|
|
111
124
|
signingHash: Buffer.from(signingHash).toString('hex'),
|
|
112
125
|
signBytes: Buffer.from(signBytes).toString('hex'),
|
|
113
126
|
txBodyEncoded: Buffer.from(txBodyEncoded).toString('hex'),
|
|
127
|
+
authInfoBytes: Buffer.from(authInfoBytes).toString('hex'),
|
|
114
128
|
chainId,
|
|
115
129
|
accountNumber: account.accountNumber,
|
|
116
130
|
sequence: account.sequence,
|
|
117
131
|
gasLimit,
|
|
132
|
+
feeAmount,
|
|
118
133
|
denom,
|
|
119
134
|
fromAddress,
|
|
120
135
|
toAddress: tx.to,
|
|
@@ -165,13 +180,13 @@ class CosmosAdapter {
|
|
|
165
180
|
try {
|
|
166
181
|
const { StargateClient } = this.cosmjs;
|
|
167
182
|
const payload = JSON.parse(Buffer.from(signedTx, 'hex').toString());
|
|
168
|
-
// Reconstruct the signed TX using Protobuf encoding
|
|
169
183
|
const { TxRaw } = this.protoSigning;
|
|
170
184
|
const txBodyBytes = Buffer.from(payload.txBodyEncoded, 'hex');
|
|
185
|
+
const authInfoBytes = Buffer.from(payload.authInfoBytes, 'hex');
|
|
171
186
|
const sigBytes = Buffer.from(payload.signature, 'hex');
|
|
172
187
|
const txRaw = TxRaw.fromPartial({
|
|
173
188
|
bodyBytes: txBodyBytes,
|
|
174
|
-
authInfoBytes:
|
|
189
|
+
authInfoBytes: authInfoBytes,
|
|
175
190
|
signatures: [sigBytes],
|
|
176
191
|
});
|
|
177
192
|
const txBytes = TxRaw.encode(txRaw).finish();
|
|
@@ -189,6 +204,92 @@ class CosmosAdapter {
|
|
|
189
204
|
throw new errors_1.ChainError(`Failed to broadcast Cosmos tx: ${e.message}`, 'cosmos');
|
|
190
205
|
}
|
|
191
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Build the AuthInfo protobuf bytes manually.
|
|
209
|
+
*
|
|
210
|
+
* AuthInfo structure:
|
|
211
|
+
* message AuthInfo {
|
|
212
|
+
* repeated SignerInfo signer_infos = 1;
|
|
213
|
+
* Fee fee = 2;
|
|
214
|
+
* }
|
|
215
|
+
* message SignerInfo {
|
|
216
|
+
* google.protobuf.Any public_key = 1;
|
|
217
|
+
* ModeInfo mode_info = 2;
|
|
218
|
+
* uint64 sequence = 3;
|
|
219
|
+
* }
|
|
220
|
+
* message Fee {
|
|
221
|
+
* repeated Coin amount = 1;
|
|
222
|
+
* uint64 gas_limit = 2;
|
|
223
|
+
* }
|
|
224
|
+
*
|
|
225
|
+
* We encode this manually using protobuf wire format to avoid
|
|
226
|
+
* importing heavy cosmos-proto dependencies.
|
|
227
|
+
*/
|
|
228
|
+
buildAuthInfoBytes(pubkey, sequence, gasLimit, feeAmount, feeDenom) {
|
|
229
|
+
// Helper: encode a varint (uses BigInt to avoid 32-bit overflow)
|
|
230
|
+
const varint = (value) => {
|
|
231
|
+
let n = BigInt(value);
|
|
232
|
+
const bytes = [];
|
|
233
|
+
while (n > 0x7fn) {
|
|
234
|
+
bytes.push(Number(n & 0x7fn) | 0x80);
|
|
235
|
+
n >>= 7n;
|
|
236
|
+
}
|
|
237
|
+
bytes.push(Number(n));
|
|
238
|
+
return bytes;
|
|
239
|
+
};
|
|
240
|
+
// Helper: encode field tag + wire type
|
|
241
|
+
const tag = (fieldNum, wireType) => {
|
|
242
|
+
return varint((fieldNum << 3) | wireType);
|
|
243
|
+
};
|
|
244
|
+
// Helper: length-delimited field (wire type 2)
|
|
245
|
+
const lengthDelimited = (fieldNum, data) => {
|
|
246
|
+
const bytes = data instanceof Uint8Array ? Array.from(data) : data;
|
|
247
|
+
return [...tag(fieldNum, 2), ...varint(bytes.length), ...bytes];
|
|
248
|
+
};
|
|
249
|
+
// Helper: varint field (wire type 0)
|
|
250
|
+
const varintField = (fieldNum, value) => {
|
|
251
|
+
return [...tag(fieldNum, 0), ...varint(value)];
|
|
252
|
+
};
|
|
253
|
+
// 1. Encode the public key as Any { type_url, value }
|
|
254
|
+
// type_url = "/cosmos.crypto.secp256k1.PubKey" (field 1, string)
|
|
255
|
+
// value = PubKey { key: bytes } (field 2, bytes)
|
|
256
|
+
const typeUrl = new TextEncoder().encode('/cosmos.crypto.secp256k1.PubKey');
|
|
257
|
+
// PubKey message: field 1 = key (bytes)
|
|
258
|
+
const pubkeyMsg = lengthDelimited(1, pubkey);
|
|
259
|
+
const anyMsg = [
|
|
260
|
+
...lengthDelimited(1, typeUrl), // type_url
|
|
261
|
+
...lengthDelimited(2, pubkeyMsg), // value
|
|
262
|
+
];
|
|
263
|
+
// 2. Encode ModeInfo { single: { mode: SIGN_MODE_DIRECT (1) } }
|
|
264
|
+
// ModeInfo: field 1 = single (ModeInfo.Single)
|
|
265
|
+
// ModeInfo.Single: field 1 = mode (enum, varint)
|
|
266
|
+
const modeInfoSingle = varintField(1, 1); // SIGN_MODE_DIRECT = 1
|
|
267
|
+
const modeInfo = lengthDelimited(1, modeInfoSingle);
|
|
268
|
+
// 3. Encode SignerInfo { public_key, mode_info, sequence }
|
|
269
|
+
const signerInfo = [
|
|
270
|
+
...lengthDelimited(1, anyMsg), // public_key (Any)
|
|
271
|
+
...lengthDelimited(2, modeInfo), // mode_info
|
|
272
|
+
...varintField(3, sequence), // sequence
|
|
273
|
+
];
|
|
274
|
+
// 4. Encode Fee { amount: [Coin], gas_limit }
|
|
275
|
+
// Coin: field 1 = denom (string), field 2 = amount (string)
|
|
276
|
+
const denomBytes = new TextEncoder().encode(feeDenom);
|
|
277
|
+
const amountBytes = new TextEncoder().encode(feeAmount);
|
|
278
|
+
const coin = [
|
|
279
|
+
...lengthDelimited(1, denomBytes),
|
|
280
|
+
...lengthDelimited(2, amountBytes),
|
|
281
|
+
];
|
|
282
|
+
const fee = [
|
|
283
|
+
...lengthDelimited(1, coin), // amount (repeated Coin)
|
|
284
|
+
...varintField(2, parseInt(gasLimit)), // gas_limit
|
|
285
|
+
];
|
|
286
|
+
// 5. Encode AuthInfo { signer_infos: [signerInfo], fee }
|
|
287
|
+
const authInfo = [
|
|
288
|
+
...lengthDelimited(1, signerInfo), // signer_infos (repeated)
|
|
289
|
+
...lengthDelimited(2, fee), // fee
|
|
290
|
+
];
|
|
291
|
+
return new Uint8Array(authInfo);
|
|
292
|
+
}
|
|
192
293
|
/**
|
|
193
294
|
* Get native token balance
|
|
194
295
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../src/chains/cosmos.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;
|
|
1
|
+
{"version":3,"file":"cosmos.js","sourceRoot":"","sources":["../../src/chains/cosmos.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethereum.d.ts","sourceRoot":"","sources":["../../src/chains/ethereum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA0J7D,qBAAa,eAAgB,YAAW,YAAY;IAChD,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAEZ,KAAK,GAAE,MAAmB,EAAE,MAAM,CAAC,EAAE,MAAM;IAOvD,SAAS,IAAI,MAAM;IAKnB;;;;OAIG;IACG,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ethereum.d.ts","sourceRoot":"","sources":["../../src/chains/ethereum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA0J7D,qBAAa,eAAgB,YAAW,YAAY;IAChD,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAEZ,KAAK,GAAE,MAAmB,EAAE,MAAM,CAAC,EAAE,MAAM;IAOvD,SAAS,IAAI,MAAM;IAKnB;;;;OAIG;IACG,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqEhF;;;;;;OAMG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B7E;;;;OAIG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYlD;;;;OAIG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlD,qCAAqC;IAC/B,WAAW,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASpE,iCAAiC;IAC3B,WAAW,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAA;KAAE,CAAC;IAStG,4DAA4D;IAC5D,aAAa,IAAI,OAAO;IAIxB,+BAA+B;IACzB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvC,8BAA8B;IACxB,qBAAqB,CAAC,IAAI,EAAE,MAAM;IAIxC,wCAAwC;IAClC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,SAAI;CAG3D;AAED,mCAAmC;AACnC,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAEtE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAErE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAEtE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAElE"}
|
package/dist/chains/ethereum.js
CHANGED
|
@@ -191,7 +191,13 @@ class EthereumAdapter {
|
|
|
191
191
|
to: tx.to,
|
|
192
192
|
value: tx.value ? BigInt(tx.value) : 0n,
|
|
193
193
|
data: tx.data || '0x',
|
|
194
|
-
}).catch(() =>
|
|
194
|
+
}).catch((err) => {
|
|
195
|
+
// Only default to 21000 for simple transfers (no calldata).
|
|
196
|
+
// Contract calls need accurate gas; re-throw so the caller knows.
|
|
197
|
+
if (!tx.data || tx.data === '0x')
|
|
198
|
+
return 21000n;
|
|
199
|
+
throw err;
|
|
200
|
+
});
|
|
195
201
|
// Build the transaction object — legacy (type 0) or EIP-1559 (type 2)
|
|
196
202
|
const useLegacy = LEGACY_ONLY_CHAINS.has(this.chainName)
|
|
197
203
|
|| tx.gasPrice !== undefined;
|
|
@@ -245,9 +251,15 @@ class EthereumAdapter {
|
|
|
245
251
|
async attachSignature(unsignedTx, signature) {
|
|
246
252
|
try {
|
|
247
253
|
const sig = signature.startsWith('0x') ? signature.slice(2) : signature;
|
|
254
|
+
if (sig.length < 128) {
|
|
255
|
+
throw new errors_1.ChainError(`Invalid signature length: expected at least 64 bytes (128 hex), got ${sig.length / 2} bytes`, this.chainName);
|
|
256
|
+
}
|
|
248
257
|
const r = '0x' + sig.slice(0, 64);
|
|
249
258
|
const s = '0x' + sig.slice(64, 128);
|
|
250
|
-
|
|
259
|
+
let v = parseInt(sig.slice(128, 130), 16);
|
|
260
|
+
if (isNaN(v))
|
|
261
|
+
v = 27;
|
|
262
|
+
// v=0,1 are valid for EIP-1559; v=27,28 for legacy
|
|
251
263
|
const tx = ethers_1.Transaction.from(unsignedTx);
|
|
252
264
|
tx.signature = ethers_1.Signature.from({ r, s, v });
|
|
253
265
|
return tx.serialized;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethereum.js","sourceRoot":"","sources":["../../src/chains/ethereum.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"ethereum.js","sourceRoot":"","sources":["../../src/chains/ethereum.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flow Chain Adapter
|
|
3
|
+
*
|
|
4
|
+
* Builds Flow transactions using manual RLP encoding (no external deps),
|
|
5
|
+
* signs with ECDSA_secp256k1 + SHA2-256 via FROST threshold signing,
|
|
6
|
+
* and broadcasts via Flow Access API (REST).
|
|
7
|
+
*
|
|
8
|
+
* Flow signing scheme: SHA2-256 of ("FLOW-V0.0-transaction" domain tag + RLP payload)
|
|
9
|
+
* Key algorithm: ECDSA_secp256k1 (algorithm ID 2 on Flow)
|
|
10
|
+
*
|
|
11
|
+
* No external dependencies required.
|
|
12
|
+
*/
|
|
13
|
+
import { ChainAdapter, FlowTransaction } from '../core/types';
|
|
14
|
+
export declare class FlowAdapter implements ChainAdapter {
|
|
15
|
+
private rpcUrl;
|
|
16
|
+
private network;
|
|
17
|
+
constructor(network?: 'mainnet' | 'testnet', rpcUrl?: string);
|
|
18
|
+
getRpcUrl(): string;
|
|
19
|
+
/**
|
|
20
|
+
* Build an unsigned Flow transaction.
|
|
21
|
+
*
|
|
22
|
+
* Fetches account info and latest block from the Flow Access API,
|
|
23
|
+
* constructs a Cadence FlowToken.transfer transaction, and returns
|
|
24
|
+
* the hex-encoded JSON envelope containing the RLP payload and metadata.
|
|
25
|
+
*/
|
|
26
|
+
buildTransaction(tx: FlowTransaction, fromAddress: string): Promise<string>;
|
|
27
|
+
/**
|
|
28
|
+
* Extract the signing payload (SHA2-256 hash) from the unsigned transaction.
|
|
29
|
+
*
|
|
30
|
+
* Flow signing: SHA2-256(domainTag + RLP(payload))
|
|
31
|
+
* The hash is computed during buildTransaction and stored in the envelope.
|
|
32
|
+
*/
|
|
33
|
+
getSigningPayload(unsignedTx: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Attach a secp256k1 ECDSA signature to the Flow transaction envelope.
|
|
36
|
+
*
|
|
37
|
+
* For simple transactions where proposer = payer = authorizer,
|
|
38
|
+
* the signature goes into the envelope signatures list.
|
|
39
|
+
*/
|
|
40
|
+
attachSignature(unsignedTx: string, signature: string): Promise<string>;
|
|
41
|
+
/**
|
|
42
|
+
* Broadcast a signed Flow transaction via the Access API.
|
|
43
|
+
*
|
|
44
|
+
* POST /v1/transactions with the signed transaction in the expected format.
|
|
45
|
+
*/
|
|
46
|
+
broadcast(signedTx: string): Promise<string>;
|
|
47
|
+
/**
|
|
48
|
+
* Get FLOW token balance for an address.
|
|
49
|
+
*
|
|
50
|
+
* Uses the Flow Access API /v1/accounts/{address} endpoint.
|
|
51
|
+
* Returns balance in FLOW (UFix64 format).
|
|
52
|
+
*/
|
|
53
|
+
getBalance(address: string): Promise<string>;
|
|
54
|
+
}
|
|
55
|
+
export declare function createFlowAdapter(rpcUrl?: string): FlowAdapter;
|
|
56
|
+
export declare function createFlowTestnetAdapter(rpcUrl?: string): FlowAdapter;
|
|
57
|
+
//# sourceMappingURL=flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/chains/flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAoP9D,qBAAa,WAAY,YAAW,YAAY;IAC5C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAGpB,OAAO,GAAE,SAAS,GAAG,SAAqB,EAC1C,MAAM,CAAC,EAAE,MAAM;IAMnB,SAAS,IAAI,MAAM;IAInB;;;;;;OAMG;IACG,gBAAgB,CAClB,EAAE,EAAE,eAAe,EACnB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC;IAqGlB;;;;;OAKG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAS7C;;;;;OAKG;IACG,eAAe,CACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC;IAsClB;;;;OAIG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4DlD;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAqBrD;AAaD,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAE9D;AAED,wBAAgB,wBAAwB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAErE"}
|