viem 0.0.0-main.20231026T220458 → 0.0.0-main.20231027T032213
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/_cjs/chains/celo/formatters.js +34 -5
- package/_cjs/chains/celo/formatters.js.map +1 -1
- package/_cjs/chains/celo/parsers.js +55 -0
- package/_cjs/chains/celo/parsers.js.map +1 -1
- package/_cjs/chains/celo/serializers.js +70 -6
- package/_cjs/chains/celo/serializers.js.map +1 -1
- package/_cjs/chains/utils/index.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_esm/chains/celo/formatters.js +34 -5
- package/_esm/chains/celo/formatters.js.map +1 -1
- package/_esm/chains/celo/parsers.js +56 -1
- package/_esm/chains/celo/parsers.js.map +1 -1
- package/_esm/chains/celo/serializers.js +73 -7
- package/_esm/chains/celo/serializers.js.map +1 -1
- package/_esm/chains/utils/index.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_types/chains/celo/formatters.d.ts +126 -0
- package/_types/chains/celo/formatters.d.ts.map +1 -1
- package/_types/chains/celo/parsers.d.ts.map +1 -1
- package/_types/chains/celo/serializers.d.ts +3 -1
- package/_types/chains/celo/serializers.d.ts.map +1 -1
- package/_types/chains/celo/types.d.ts +39 -7
- package/_types/chains/celo/types.d.ts.map +1 -1
- package/_types/chains/definitions/celo.d.ts +126 -0
- package/_types/chains/definitions/celo.d.ts.map +1 -1
- package/_types/chains/definitions/celoAlfajores.d.ts +126 -0
- package/_types/chains/definitions/celoAlfajores.d.ts.map +1 -1
- package/_types/chains/definitions/celoCannoli.d.ts +126 -0
- package/_types/chains/definitions/celoCannoli.d.ts.map +1 -1
- package/_types/chains/utils/index.d.ts +1 -1
- package/_types/chains/utils/index.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/chains/celo/formatters.ts +39 -5
- package/chains/celo/parsers.ts +82 -1
- package/chains/celo/serializers.ts +121 -9
- package/chains/celo/types.ts +60 -2
- package/chains/utils/index.ts +6 -0
- package/errors/version.ts +1 -1
- package/package.json +1 -1
@@ -7,6 +7,22 @@ const block_js_1 = require("../../utils/formatters/block.js");
|
|
7
7
|
const transaction_js_1 = require("../../utils/formatters/transaction.js");
|
8
8
|
const transactionReceipt_js_1 = require("../../utils/formatters/transactionReceipt.js");
|
9
9
|
const transactionRequest_js_1 = require("../../utils/formatters/transactionRequest.js");
|
10
|
+
function isTransactionRequestCIP64(args) {
|
11
|
+
if (args.type === 'cip64')
|
12
|
+
return true;
|
13
|
+
if (args.type)
|
14
|
+
return false;
|
15
|
+
return ('feeCurrency' in args &&
|
16
|
+
args.gatewayFee === undefined &&
|
17
|
+
args.gatewayFeeRecipient === undefined);
|
18
|
+
}
|
19
|
+
function isTransactionRequestCIP42(args) {
|
20
|
+
if (args.type === 'cip42')
|
21
|
+
return true;
|
22
|
+
if (args.type)
|
23
|
+
return false;
|
24
|
+
return args.gatewayFee !== undefined || args.gatewayFeeRecipient !== undefined;
|
25
|
+
}
|
10
26
|
exports.formattersCelo = {
|
11
27
|
block: (0, block_js_1.defineBlock)({
|
12
28
|
exclude: ['difficulty', 'gasLimit', 'mixHash', 'nonce', 'uncles'],
|
@@ -17,10 +33,14 @@ exports.formattersCelo = {
|
|
17
33
|
return {
|
18
34
|
...(0, transaction_js_1.formatTransaction)(transaction),
|
19
35
|
feeCurrency: transaction.feeCurrency,
|
20
|
-
|
21
|
-
?
|
22
|
-
|
23
|
-
|
36
|
+
...(transaction.type !== '0x7b'
|
37
|
+
? {
|
38
|
+
gatewayFee: transaction.gatewayFee
|
39
|
+
? (0, fromHex_js_1.hexToBigInt)(transaction.gatewayFee)
|
40
|
+
: null,
|
41
|
+
gatewayFeeRecipient: transaction.gatewayFeeRecipient || null,
|
42
|
+
}
|
43
|
+
: {}),
|
24
44
|
};
|
25
45
|
});
|
26
46
|
return {
|
@@ -31,6 +51,10 @@ exports.formattersCelo = {
|
|
31
51
|
}),
|
32
52
|
transaction: (0, transaction_js_1.defineTransaction)({
|
33
53
|
format(args) {
|
54
|
+
if (args.type === '0x7b')
|
55
|
+
return {
|
56
|
+
feeCurrency: args.feeCurrency,
|
57
|
+
};
|
34
58
|
return {
|
35
59
|
feeCurrency: args.feeCurrency,
|
36
60
|
gatewayFee: args.gatewayFee ? (0, fromHex_js_1.hexToBigInt)(args.gatewayFee) : null,
|
@@ -49,6 +73,11 @@ exports.formattersCelo = {
|
|
49
73
|
}),
|
50
74
|
transactionRequest: (0, transactionRequest_js_1.defineTransactionRequest)({
|
51
75
|
format(args) {
|
76
|
+
if (isTransactionRequestCIP64(args))
|
77
|
+
return {
|
78
|
+
type: '0x7b',
|
79
|
+
feeCurrency: args.feeCurrency,
|
80
|
+
};
|
52
81
|
const request = {
|
53
82
|
feeCurrency: args.feeCurrency,
|
54
83
|
gatewayFee: typeof args.gatewayFee !== 'undefined'
|
@@ -56,7 +85,7 @@ exports.formattersCelo = {
|
|
56
85
|
: undefined,
|
57
86
|
gatewayFeeRecipient: args.gatewayFeeRecipient,
|
58
87
|
};
|
59
|
-
if (args
|
88
|
+
if (isTransactionRequestCIP42(args))
|
60
89
|
request.type = '0x7c';
|
61
90
|
return request;
|
62
91
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../chains/celo/formatters.ts"],"names":[],"mappings":";;;AAGA,gEAA6D;AAC7D,4DAA2D;AAC3D,8DAA6D;AAC7D,0EAG8C;AAC9C,wFAAuF;AACvF,wFAAuF;
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../chains/celo/formatters.ts"],"names":[],"mappings":"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"}
|
@@ -11,6 +11,8 @@ function parseTransactionCelo(serializedTransaction) {
|
|
11
11
|
const serializedType = (0, slice_js_1.sliceHex)(serializedTransaction, 0, 1);
|
12
12
|
if (serializedType === '0x7c')
|
13
13
|
return parseTransactionCIP42(serializedTransaction);
|
14
|
+
if (serializedType === '0x7b')
|
15
|
+
return parseTransactionCIP64(serializedTransaction);
|
14
16
|
return (0, parseTransaction_js_1.parseTransaction)(serializedTransaction);
|
15
17
|
}
|
16
18
|
exports.parseTransactionCelo = parseTransactionCelo;
|
@@ -73,4 +75,57 @@ function parseTransactionCIP42(serializedTransaction) {
|
|
73
75
|
(0, serializers_js_1.assertTransactionCIP42)(transaction);
|
74
76
|
return transaction;
|
75
77
|
}
|
78
|
+
function parseTransactionCIP64(serializedTransaction) {
|
79
|
+
const transactionArray = (0, parseTransaction_js_1.toTransactionArray)(serializedTransaction);
|
80
|
+
const [chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gas, to, value, data, accessList, feeCurrency, v, r, s,] = transactionArray;
|
81
|
+
if (transactionArray.length !== 13 && transactionArray.length !== 10) {
|
82
|
+
throw new transaction_js_1.InvalidSerializedTransactionError({
|
83
|
+
attributes: {
|
84
|
+
chainId,
|
85
|
+
nonce,
|
86
|
+
maxPriorityFeePerGas,
|
87
|
+
maxFeePerGas,
|
88
|
+
gas,
|
89
|
+
to,
|
90
|
+
value,
|
91
|
+
data,
|
92
|
+
accessList,
|
93
|
+
feeCurrency,
|
94
|
+
...(transactionArray.length > 10
|
95
|
+
? {
|
96
|
+
v,
|
97
|
+
r,
|
98
|
+
s,
|
99
|
+
}
|
100
|
+
: {}),
|
101
|
+
},
|
102
|
+
serializedTransaction,
|
103
|
+
type: 'cip64',
|
104
|
+
});
|
105
|
+
}
|
106
|
+
const transaction = {
|
107
|
+
chainId: (0, fromHex_js_1.hexToNumber)(chainId),
|
108
|
+
type: 'cip64',
|
109
|
+
};
|
110
|
+
if ((0, isHex_js_1.isHex)(to) && to !== '0x')
|
111
|
+
transaction.to = to;
|
112
|
+
if ((0, isHex_js_1.isHex)(gas) && gas !== '0x')
|
113
|
+
transaction.gas = (0, fromHex_js_1.hexToBigInt)(gas);
|
114
|
+
if ((0, isHex_js_1.isHex)(data) && data !== '0x')
|
115
|
+
transaction.data = data;
|
116
|
+
if ((0, isHex_js_1.isHex)(nonce) && nonce !== '0x')
|
117
|
+
transaction.nonce = (0, fromHex_js_1.hexToNumber)(nonce);
|
118
|
+
if ((0, isHex_js_1.isHex)(value) && value !== '0x')
|
119
|
+
transaction.value = (0, fromHex_js_1.hexToBigInt)(value);
|
120
|
+
if ((0, isHex_js_1.isHex)(feeCurrency) && feeCurrency !== '0x')
|
121
|
+
transaction.feeCurrency = feeCurrency;
|
122
|
+
if ((0, isHex_js_1.isHex)(maxFeePerGas) && maxFeePerGas !== '0x')
|
123
|
+
transaction.maxFeePerGas = (0, fromHex_js_1.hexToBigInt)(maxFeePerGas);
|
124
|
+
if ((0, isHex_js_1.isHex)(maxPriorityFeePerGas) && maxPriorityFeePerGas !== '0x')
|
125
|
+
transaction.maxPriorityFeePerGas = (0, fromHex_js_1.hexToBigInt)(maxPriorityFeePerGas);
|
126
|
+
if (accessList.length !== 0 && accessList !== '0x')
|
127
|
+
transaction.accessList = (0, parseTransaction_js_1.parseAccessList)(accessList);
|
128
|
+
(0, serializers_js_1.assertTransactionCIP64)(transaction);
|
129
|
+
return transaction;
|
130
|
+
}
|
76
131
|
//# sourceMappingURL=parsers.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../chains/celo/parsers.ts"],"names":[],"mappings":";;;AAAA,gEAA+E;AAE/E,wDAAiD;AACjD,wDAAoD;AACpD,gEAA0E;AAG1E,qFAKoD;AACpD,
|
1
|
+
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../chains/celo/parsers.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.assertTransactionCIP42 = exports.serializersCelo = exports.serializeTransactionCelo = void 0;
|
3
|
+
exports.assertTransactionCIP64 = exports.assertTransactionCIP42 = exports.serializersCelo = exports.serializeTransactionCelo = void 0;
|
4
4
|
const address_js_1 = require("../../errors/address.js");
|
5
5
|
const base_js_1 = require("../../errors/base.js");
|
6
6
|
const chain_js_1 = require("../../errors/chain.js");
|
@@ -13,9 +13,15 @@ const toRlp_js_1 = require("../../utils/encoding/toRlp.js");
|
|
13
13
|
const serializeAccessList_js_1 = require("../../utils/transaction/serializeAccessList.js");
|
14
14
|
const serializeTransaction_js_1 = require("../../utils/transaction/serializeTransaction.js");
|
15
15
|
const serializeTransactionCelo = (tx, signature) => {
|
16
|
-
if (
|
16
|
+
if (isCIP64(tx)) {
|
17
|
+
return serializeTransactionCIP64(tx, signature);
|
18
|
+
}
|
19
|
+
else if (isCIP42(tx)) {
|
17
20
|
return serializeTransactionCIP42(tx, signature);
|
18
|
-
|
21
|
+
}
|
22
|
+
else {
|
23
|
+
return (0, serializeTransaction_js_1.serializeTransaction)(tx, signature);
|
24
|
+
}
|
19
25
|
};
|
20
26
|
exports.serializeTransactionCelo = serializeTransactionCelo;
|
21
27
|
exports.serializersCelo = {
|
@@ -46,14 +52,50 @@ function serializeTransactionCIP42(transaction, signature) {
|
|
46
52
|
(0, toRlp_js_1.toRlp)(serializedTransaction),
|
47
53
|
]);
|
48
54
|
}
|
55
|
+
function serializeTransactionCIP64(transaction, signature) {
|
56
|
+
assertTransactionCIP64(transaction);
|
57
|
+
const { chainId, gas, nonce, to, value, maxFeePerGas, maxPriorityFeePerGas, accessList, feeCurrency, data, } = transaction;
|
58
|
+
const serializedTransaction = [
|
59
|
+
(0, toHex_js_1.toHex)(chainId),
|
60
|
+
nonce ? (0, toHex_js_1.toHex)(nonce) : '0x',
|
61
|
+
maxPriorityFeePerGas ? (0, toHex_js_1.toHex)(maxPriorityFeePerGas) : '0x',
|
62
|
+
maxFeePerGas ? (0, toHex_js_1.toHex)(maxFeePerGas) : '0x',
|
63
|
+
gas ? (0, toHex_js_1.toHex)(gas) : '0x',
|
64
|
+
to ?? '0x',
|
65
|
+
value ? (0, toHex_js_1.toHex)(value) : '0x',
|
66
|
+
data ?? '0x',
|
67
|
+
(0, serializeAccessList_js_1.serializeAccessList)(accessList),
|
68
|
+
feeCurrency ?? '0x',
|
69
|
+
];
|
70
|
+
if (signature) {
|
71
|
+
serializedTransaction.push(signature.v === 27n ? '0x' : (0, toHex_js_1.toHex)(1), (0, trim_js_1.trim)(signature.r), (0, trim_js_1.trim)(signature.s));
|
72
|
+
}
|
73
|
+
return (0, concat_js_1.concatHex)([
|
74
|
+
'0x7b',
|
75
|
+
(0, toRlp_js_1.toRlp)(serializedTransaction),
|
76
|
+
]);
|
77
|
+
}
|
49
78
|
function isCIP42(transaction) {
|
50
|
-
if ('
|
79
|
+
if (transaction.type === 'cip42')
|
80
|
+
return true;
|
81
|
+
if (transaction.type)
|
82
|
+
return false;
|
83
|
+
return ('maxFeePerGas' in transaction &&
|
51
84
|
'maxPriorityFeePerGas' in transaction &&
|
52
85
|
('feeCurrency' in transaction ||
|
53
86
|
'gatewayFee' in transaction ||
|
54
|
-
'gatewayFeeRecipient' in transaction))
|
87
|
+
'gatewayFeeRecipient' in transaction));
|
88
|
+
}
|
89
|
+
function isCIP64(transaction) {
|
90
|
+
if (transaction.type === 'cip64')
|
55
91
|
return true;
|
56
|
-
|
92
|
+
if (transaction.type)
|
93
|
+
return false;
|
94
|
+
return ('maxFeePerGas' in transaction &&
|
95
|
+
'maxPriorityFeePerGas' in transaction &&
|
96
|
+
'feeCurrency' in transaction &&
|
97
|
+
!('gatewayFee' in transaction) &&
|
98
|
+
!('gatewayFeeRecipient' in transaction));
|
57
99
|
}
|
58
100
|
const MAX_MAX_FEE_PER_GAS = 115792089237316195423570985008687907853269984665640564039457584007913129639935n;
|
59
101
|
function assertTransactionCIP42(transaction) {
|
@@ -82,4 +124,26 @@ function assertTransactionCIP42(transaction) {
|
|
82
124
|
}
|
83
125
|
}
|
84
126
|
exports.assertTransactionCIP42 = assertTransactionCIP42;
|
127
|
+
function assertTransactionCIP64(transaction) {
|
128
|
+
const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to, feeCurrency, } = transaction;
|
129
|
+
if (chainId <= 0)
|
130
|
+
throw new chain_js_1.InvalidChainIdError({ chainId });
|
131
|
+
if (to && !(0, isAddress_js_1.isAddress)(to))
|
132
|
+
throw new address_js_1.InvalidAddressError({ address: to });
|
133
|
+
if (gasPrice)
|
134
|
+
throw new base_js_1.BaseError('`gasPrice` is not a valid CIP-64 Transaction attribute.');
|
135
|
+
if (maxFeePerGas && maxFeePerGas > MAX_MAX_FEE_PER_GAS)
|
136
|
+
throw new node_js_1.FeeCapTooHighError({ maxFeePerGas });
|
137
|
+
if (maxPriorityFeePerGas &&
|
138
|
+
maxFeePerGas &&
|
139
|
+
maxPriorityFeePerGas > maxFeePerGas)
|
140
|
+
throw new node_js_1.TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas });
|
141
|
+
if (feeCurrency && !feeCurrency?.startsWith('0x')) {
|
142
|
+
throw new base_js_1.BaseError('`feeCurrency` MUST be a token address for CIP-64 transactions.');
|
143
|
+
}
|
144
|
+
if (!feeCurrency) {
|
145
|
+
throw new base_js_1.BaseError('`feeCurrency` must be provided for CIP-64 transactions.');
|
146
|
+
}
|
147
|
+
}
|
148
|
+
exports.assertTransactionCIP64 = assertTransactionCIP64;
|
85
149
|
//# sourceMappingURL=serializers.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"serializers.js","sourceRoot":"","sources":["../../../chains/celo/serializers.ts"],"names":[],"mappings":";;;AAAA,wDAA6D;AAC7D,kDAAgD;AAChD,oDAA2D;AAC3D,kDAA8E;AAI9E,mEAA4D;AAC5D,0DAAsD;AACtD,sDAA+C;AAC/C,4DAAqD;AACrD,4DAAqD;AACrD,2FAAoF;AACpF,6FAGwD;
|
1
|
+
{"version":3,"file":"serializers.js","sourceRoot":"","sources":["../../../chains/celo/serializers.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../chains/utils/index.ts"],"names":[],"mappings":";;;AAAA,uDAAsD;AAA7C,+GAAA,cAAc,OAAA;AACvB,yDAG+B;AAF7B,0HAAA,wBAAwB,OAAA;AACxB,iHAAA,eAAe,OAAA;AAEjB,iDAAyD;AAAhD,kHAAA,oBAAoB,OAAA;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../chains/utils/index.ts"],"names":[],"mappings":";;;AAAA,uDAAsD;AAA7C,+GAAA,cAAc,OAAA;AACvB,yDAG+B;AAF7B,0HAAA,wBAAwB,OAAA;AACxB,iHAAA,eAAe,OAAA;AAEjB,iDAAyD;AAAhD,kHAAA,oBAAoB,OAAA;AA+B7B,2DAA8D;AAArD,mHAAA,kBAAkB,OAAA;AAgB3B,yDAA0D;AAAjD,iHAAA,gBAAgB,OAAA"}
|
package/_cjs/errors/version.js
CHANGED
@@ -5,6 +5,22 @@ import { defineBlock } from '../../utils/formatters/block.js';
|
|
5
5
|
import { defineTransaction, formatTransaction, } from '../../utils/formatters/transaction.js';
|
6
6
|
import { defineTransactionReceipt } from '../../utils/formatters/transactionReceipt.js';
|
7
7
|
import { defineTransactionRequest } from '../../utils/formatters/transactionRequest.js';
|
8
|
+
function isTransactionRequestCIP64(args) {
|
9
|
+
if (args.type === 'cip64')
|
10
|
+
return true;
|
11
|
+
if (args.type)
|
12
|
+
return false;
|
13
|
+
return ('feeCurrency' in args &&
|
14
|
+
args.gatewayFee === undefined &&
|
15
|
+
args.gatewayFeeRecipient === undefined);
|
16
|
+
}
|
17
|
+
function isTransactionRequestCIP42(args) {
|
18
|
+
if (args.type === 'cip42')
|
19
|
+
return true;
|
20
|
+
if (args.type)
|
21
|
+
return false;
|
22
|
+
return args.gatewayFee !== undefined || args.gatewayFeeRecipient !== undefined;
|
23
|
+
}
|
8
24
|
export const formattersCelo = {
|
9
25
|
block: /*#__PURE__*/ defineBlock({
|
10
26
|
exclude: ['difficulty', 'gasLimit', 'mixHash', 'nonce', 'uncles'],
|
@@ -15,10 +31,14 @@ export const formattersCelo = {
|
|
15
31
|
return {
|
16
32
|
...formatTransaction(transaction),
|
17
33
|
feeCurrency: transaction.feeCurrency,
|
18
|
-
|
19
|
-
?
|
20
|
-
|
21
|
-
|
34
|
+
...(transaction.type !== '0x7b'
|
35
|
+
? {
|
36
|
+
gatewayFee: transaction.gatewayFee
|
37
|
+
? hexToBigInt(transaction.gatewayFee)
|
38
|
+
: null,
|
39
|
+
gatewayFeeRecipient: transaction.gatewayFeeRecipient || null,
|
40
|
+
}
|
41
|
+
: {}),
|
22
42
|
};
|
23
43
|
});
|
24
44
|
return {
|
@@ -29,6 +49,10 @@ export const formattersCelo = {
|
|
29
49
|
}),
|
30
50
|
transaction: /*#__PURE__*/ defineTransaction({
|
31
51
|
format(args) {
|
52
|
+
if (args.type === '0x7b')
|
53
|
+
return {
|
54
|
+
feeCurrency: args.feeCurrency,
|
55
|
+
};
|
32
56
|
return {
|
33
57
|
feeCurrency: args.feeCurrency,
|
34
58
|
gatewayFee: args.gatewayFee ? hexToBigInt(args.gatewayFee) : null,
|
@@ -47,6 +71,11 @@ export const formattersCelo = {
|
|
47
71
|
}),
|
48
72
|
transactionRequest: /*#__PURE__*/ defineTransactionRequest({
|
49
73
|
format(args) {
|
74
|
+
if (isTransactionRequestCIP64(args))
|
75
|
+
return {
|
76
|
+
type: '0x7b',
|
77
|
+
feeCurrency: args.feeCurrency,
|
78
|
+
};
|
50
79
|
const request = {
|
51
80
|
feeCurrency: args.feeCurrency,
|
52
81
|
gatewayFee: typeof args.gatewayFee !== 'undefined'
|
@@ -54,7 +83,7 @@ export const formattersCelo = {
|
|
54
83
|
: undefined,
|
55
84
|
gatewayFeeRecipient: args.gatewayFeeRecipient,
|
56
85
|
};
|
57
|
-
if (args
|
86
|
+
if (isTransactionRequestCIP42(args))
|
58
87
|
request.type = '0x7c';
|
59
88
|
return request;
|
60
89
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../chains/celo/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,sBAAsB,CAAA;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAA;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAA;AAWvF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC;QAC/B,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;QACjE,MAAM,CACJ,IAEC;YAID,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;gBAC1D,IAAI,OAAO,WAAW,KAAK,QAAQ;oBAAE,OAAO,WAAW,CAAA;gBACvD,OAAO;oBACL,GAAG,iBAAiB,CAAC,WAA6B,CAAC;oBACnD,WAAW,EAAE,WAAW,CAAC,WAAW;
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../chains/celo/formatters.ts"],"names":[],"mappings":"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"}
|
@@ -3,11 +3,13 @@ import { isHex } from '../../utils/data/isHex.js';
|
|
3
3
|
import { sliceHex } from '../../utils/data/slice.js';
|
4
4
|
import { hexToBigInt, hexToNumber } from '../../utils/encoding/fromHex.js';
|
5
5
|
import { parseAccessList, parseTransaction, toTransactionArray, } from '../../utils/transaction/parseTransaction.js';
|
6
|
-
import { assertTransactionCIP42 } from './serializers.js';
|
6
|
+
import { assertTransactionCIP42, assertTransactionCIP64, } from './serializers.js';
|
7
7
|
export function parseTransactionCelo(serializedTransaction) {
|
8
8
|
const serializedType = sliceHex(serializedTransaction, 0, 1);
|
9
9
|
if (serializedType === '0x7c')
|
10
10
|
return parseTransactionCIP42(serializedTransaction);
|
11
|
+
if (serializedType === '0x7b')
|
12
|
+
return parseTransactionCIP64(serializedTransaction);
|
11
13
|
return parseTransaction(serializedTransaction);
|
12
14
|
}
|
13
15
|
function parseTransactionCIP42(serializedTransaction) {
|
@@ -69,4 +71,57 @@ function parseTransactionCIP42(serializedTransaction) {
|
|
69
71
|
assertTransactionCIP42(transaction);
|
70
72
|
return transaction;
|
71
73
|
}
|
74
|
+
function parseTransactionCIP64(serializedTransaction) {
|
75
|
+
const transactionArray = toTransactionArray(serializedTransaction);
|
76
|
+
const [chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gas, to, value, data, accessList, feeCurrency, v, r, s,] = transactionArray;
|
77
|
+
if (transactionArray.length !== 13 && transactionArray.length !== 10) {
|
78
|
+
throw new InvalidSerializedTransactionError({
|
79
|
+
attributes: {
|
80
|
+
chainId,
|
81
|
+
nonce,
|
82
|
+
maxPriorityFeePerGas,
|
83
|
+
maxFeePerGas,
|
84
|
+
gas,
|
85
|
+
to,
|
86
|
+
value,
|
87
|
+
data,
|
88
|
+
accessList,
|
89
|
+
feeCurrency,
|
90
|
+
...(transactionArray.length > 10
|
91
|
+
? {
|
92
|
+
v,
|
93
|
+
r,
|
94
|
+
s,
|
95
|
+
}
|
96
|
+
: {}),
|
97
|
+
},
|
98
|
+
serializedTransaction,
|
99
|
+
type: 'cip64',
|
100
|
+
});
|
101
|
+
}
|
102
|
+
const transaction = {
|
103
|
+
chainId: hexToNumber(chainId),
|
104
|
+
type: 'cip64',
|
105
|
+
};
|
106
|
+
if (isHex(to) && to !== '0x')
|
107
|
+
transaction.to = to;
|
108
|
+
if (isHex(gas) && gas !== '0x')
|
109
|
+
transaction.gas = hexToBigInt(gas);
|
110
|
+
if (isHex(data) && data !== '0x')
|
111
|
+
transaction.data = data;
|
112
|
+
if (isHex(nonce) && nonce !== '0x')
|
113
|
+
transaction.nonce = hexToNumber(nonce);
|
114
|
+
if (isHex(value) && value !== '0x')
|
115
|
+
transaction.value = hexToBigInt(value);
|
116
|
+
if (isHex(feeCurrency) && feeCurrency !== '0x')
|
117
|
+
transaction.feeCurrency = feeCurrency;
|
118
|
+
if (isHex(maxFeePerGas) && maxFeePerGas !== '0x')
|
119
|
+
transaction.maxFeePerGas = hexToBigInt(maxFeePerGas);
|
120
|
+
if (isHex(maxPriorityFeePerGas) && maxPriorityFeePerGas !== '0x')
|
121
|
+
transaction.maxPriorityFeePerGas = hexToBigInt(maxPriorityFeePerGas);
|
122
|
+
if (accessList.length !== 0 && accessList !== '0x')
|
123
|
+
transaction.accessList = parseAccessList(accessList);
|
124
|
+
assertTransactionCIP64(transaction);
|
125
|
+
return transaction;
|
126
|
+
}
|
72
127
|
//# sourceMappingURL=parsers.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../chains/celo/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,6BAA6B,CAAA;AAE/E,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAG1E,OAAO,EAEL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,6CAA6C,CAAA;AACpD,OAAO,
|
1
|
+
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../chains/celo/parsers.ts"],"names":[],"mappings":"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"}
|
@@ -10,11 +10,15 @@ import { toRlp } from '../../utils/encoding/toRlp.js';
|
|
10
10
|
import { serializeAccessList } from '../../utils/transaction/serializeAccessList.js';
|
11
11
|
import { serializeTransaction, } from '../../utils/transaction/serializeTransaction.js';
|
12
12
|
export const serializeTransactionCelo = (tx, signature) => {
|
13
|
-
|
14
|
-
|
13
|
+
if (isCIP64(tx)) {
|
14
|
+
return serializeTransactionCIP64(tx, signature);
|
15
|
+
}
|
16
|
+
else if (isCIP42(tx)) {
|
15
17
|
return serializeTransactionCIP42(tx, signature);
|
16
|
-
|
17
|
-
|
18
|
+
}
|
19
|
+
else {
|
20
|
+
return serializeTransaction(tx, signature);
|
21
|
+
}
|
18
22
|
};
|
19
23
|
export const serializersCelo = {
|
20
24
|
transaction: serializeTransactionCelo,
|
@@ -48,17 +52,58 @@ function serializeTransactionCIP42(transaction, signature) {
|
|
48
52
|
toRlp(serializedTransaction),
|
49
53
|
]);
|
50
54
|
}
|
55
|
+
function serializeTransactionCIP64(transaction, signature) {
|
56
|
+
assertTransactionCIP64(transaction);
|
57
|
+
const { chainId, gas, nonce, to, value, maxFeePerGas, maxPriorityFeePerGas, accessList, feeCurrency, data, } = transaction;
|
58
|
+
const serializedTransaction = [
|
59
|
+
toHex(chainId),
|
60
|
+
nonce ? toHex(nonce) : '0x',
|
61
|
+
maxPriorityFeePerGas ? toHex(maxPriorityFeePerGas) : '0x',
|
62
|
+
maxFeePerGas ? toHex(maxFeePerGas) : '0x',
|
63
|
+
gas ? toHex(gas) : '0x',
|
64
|
+
to ?? '0x',
|
65
|
+
value ? toHex(value) : '0x',
|
66
|
+
data ?? '0x',
|
67
|
+
serializeAccessList(accessList),
|
68
|
+
feeCurrency ?? '0x',
|
69
|
+
];
|
70
|
+
if (signature) {
|
71
|
+
serializedTransaction.push(signature.v === 27n ? '0x' : toHex(1), // yParity
|
72
|
+
trim(signature.r), trim(signature.s));
|
73
|
+
}
|
74
|
+
return concatHex([
|
75
|
+
'0x7b',
|
76
|
+
toRlp(serializedTransaction),
|
77
|
+
]);
|
78
|
+
}
|
51
79
|
//////////////////////////////////////////////////////////////////////////////
|
52
80
|
// Utilities
|
53
81
|
// process as CIP42 if any of these fields are present. realistically gatewayfee is not used but is part of spec
|
54
82
|
function isCIP42(transaction) {
|
55
|
-
if ('
|
83
|
+
if (transaction.type === 'cip42')
|
84
|
+
return true;
|
85
|
+
// if the type is defined as anything else, assume it is *not* cip42
|
86
|
+
if (transaction.type)
|
87
|
+
return false;
|
88
|
+
// if the type is undefined, check if the fields match the expectations for cip42
|
89
|
+
return ('maxFeePerGas' in transaction &&
|
56
90
|
'maxPriorityFeePerGas' in transaction &&
|
57
91
|
('feeCurrency' in transaction ||
|
58
92
|
'gatewayFee' in transaction ||
|
59
|
-
'gatewayFeeRecipient' in transaction))
|
93
|
+
'gatewayFeeRecipient' in transaction));
|
94
|
+
}
|
95
|
+
function isCIP64(transaction) {
|
96
|
+
if (transaction.type === 'cip64')
|
60
97
|
return true;
|
61
|
-
|
98
|
+
// if the type is defined as anything else, assume it is *not* cip64
|
99
|
+
if (transaction.type)
|
100
|
+
return false;
|
101
|
+
// if the type is undefined, check if the fields match the expectations for cip64
|
102
|
+
return ('maxFeePerGas' in transaction &&
|
103
|
+
'maxPriorityFeePerGas' in transaction &&
|
104
|
+
'feeCurrency' in transaction &&
|
105
|
+
!('gatewayFee' in transaction) &&
|
106
|
+
!('gatewayFeeRecipient' in transaction));
|
62
107
|
}
|
63
108
|
// maxFeePerGas must be less than 2^256 - 1: however writing like that caused exceptions to be raised
|
64
109
|
const MAX_MAX_FEE_PER_GAS = 115792089237316195423570985008687907853269984665640564039457584007913129639935n;
|
@@ -87,4 +132,25 @@ export function assertTransactionCIP42(transaction) {
|
|
87
132
|
throw new BaseError('Either `feeCurrency` or `gatewayFeeRecipient` must be provided for CIP-42 transactions.');
|
88
133
|
}
|
89
134
|
}
|
135
|
+
export function assertTransactionCIP64(transaction) {
|
136
|
+
const { chainId, maxPriorityFeePerGas, gasPrice, maxFeePerGas, to, feeCurrency, } = transaction;
|
137
|
+
if (chainId <= 0)
|
138
|
+
throw new InvalidChainIdError({ chainId });
|
139
|
+
if (to && !isAddress(to))
|
140
|
+
throw new InvalidAddressError({ address: to });
|
141
|
+
if (gasPrice)
|
142
|
+
throw new BaseError('`gasPrice` is not a valid CIP-64 Transaction attribute.');
|
143
|
+
if (maxFeePerGas && maxFeePerGas > MAX_MAX_FEE_PER_GAS)
|
144
|
+
throw new FeeCapTooHighError({ maxFeePerGas });
|
145
|
+
if (maxPriorityFeePerGas &&
|
146
|
+
maxFeePerGas &&
|
147
|
+
maxPriorityFeePerGas > maxFeePerGas)
|
148
|
+
throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas });
|
149
|
+
if (feeCurrency && !feeCurrency?.startsWith('0x')) {
|
150
|
+
throw new BaseError('`feeCurrency` MUST be a token address for CIP-64 transactions.');
|
151
|
+
}
|
152
|
+
if (!feeCurrency) {
|
153
|
+
throw new BaseError('`feeCurrency` must be provided for CIP-64 transactions.');
|
154
|
+
}
|
155
|
+
}
|
90
156
|
//# sourceMappingURL=serializers.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"serializers.js","sourceRoot":"","sources":["../../../chains/celo/serializers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAI9E,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAA;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAA;AACpF,OAAO,EAEL,oBAAoB,GACrB,MAAM,iDAAiD,CAAA;
|
1
|
+
{"version":3,"file":"serializers.js","sourceRoot":"","sources":["../../../chains/celo/serializers.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../chains/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EACL,wBAAwB,EACxB,eAAe,GAChB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../chains/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EACL,wBAAwB,EACxB,eAAe,GAChB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AA+BzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAgB9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA"}
|
package/_esm/errors/version.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export const version = '0.0.0-main.
|
1
|
+
export const version = '0.0.0-main.20231027T032213';
|
2
2
|
//# sourceMappingURL=version.js.map
|