ox 0.14.15 → 0.14.16
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/CHANGELOG.md +6 -0
- package/_cjs/tempo/TransactionRequest.js +31 -0
- package/_cjs/tempo/TransactionRequest.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_esm/tempo/TransactionRequest.js +50 -0
- package/_esm/tempo/TransactionRequest.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_types/tempo/TransactionRequest.d.ts +24 -0
- package/_types/tempo/TransactionRequest.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/package.json +1 -1
- package/tempo/TransactionRequest.test.ts +174 -0
- package/tempo/TransactionRequest.ts +72 -0
- package/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# ox
|
|
2
2
|
|
|
3
|
+
## 0.14.16
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`3ca1d56`](https://github.com/wevm/ox/commit/3ca1d56ac70a883fad5100e3d4da8208b84f5a20) Thanks [@jxom](https://github.com/jxom)! - Added `TransactionRequest.fromRpc` to `ox/tempo`.
|
|
8
|
+
|
|
3
9
|
## 0.14.15
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fromRpc = fromRpc;
|
|
3
4
|
exports.toRpc = toRpc;
|
|
4
5
|
const Hex = require("../core/Hex.js");
|
|
5
6
|
const ox_TransactionRequest = require("../core/TransactionRequest.js");
|
|
@@ -8,6 +9,36 @@ const KeyAuthorization = require("./KeyAuthorization.js");
|
|
|
8
9
|
const TempoAddress = require("./TempoAddress.js");
|
|
9
10
|
const TokenId = require("./TokenId.js");
|
|
10
11
|
const Transaction = require("./Transaction.js");
|
|
12
|
+
function fromRpc(request) {
|
|
13
|
+
const { authorizationList: _, ...rest } = request;
|
|
14
|
+
const request_ = ox_TransactionRequest.fromRpc(rest);
|
|
15
|
+
if (typeof request.type !== 'undefined')
|
|
16
|
+
request_.type =
|
|
17
|
+
Transaction.fromRpcType[request.type] || request_.type;
|
|
18
|
+
if (request.authorizationList)
|
|
19
|
+
request_.authorizationList = AuthorizationTempo.fromRpcList(request.authorizationList);
|
|
20
|
+
if (request.calls)
|
|
21
|
+
request_.calls = request.calls.map((call) => {
|
|
22
|
+
const mapped = {
|
|
23
|
+
to: call.to,
|
|
24
|
+
data: call.data,
|
|
25
|
+
};
|
|
26
|
+
if (call.value && call.value !== '0x')
|
|
27
|
+
mapped.value = Hex.toBigInt(call.value);
|
|
28
|
+
return mapped;
|
|
29
|
+
});
|
|
30
|
+
if (typeof request.feeToken !== 'undefined')
|
|
31
|
+
request_.feeToken = TokenId.fromAddress(request.feeToken);
|
|
32
|
+
if (request.keyAuthorization)
|
|
33
|
+
request_.keyAuthorization = KeyAuthorization.fromRpc(request.keyAuthorization);
|
|
34
|
+
if (typeof request.validBefore !== 'undefined')
|
|
35
|
+
request_.validBefore = Hex.toNumber(request.validBefore);
|
|
36
|
+
if (typeof request.validAfter !== 'undefined')
|
|
37
|
+
request_.validAfter = Hex.toNumber(request.validAfter);
|
|
38
|
+
if (typeof request.nonceKey !== 'undefined')
|
|
39
|
+
request_.nonceKey = Hex.toBigInt(request.nonceKey);
|
|
40
|
+
return request_;
|
|
41
|
+
}
|
|
11
42
|
function toRpc(request) {
|
|
12
43
|
const request_rpc = ox_TransactionRequest.toRpc({
|
|
13
44
|
...request,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":"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"}
|
package/_cjs/version.js
CHANGED
|
@@ -5,6 +5,56 @@ import * as KeyAuthorization from './KeyAuthorization.js';
|
|
|
5
5
|
import * as TempoAddress from './TempoAddress.js';
|
|
6
6
|
import * as TokenId from './TokenId.js';
|
|
7
7
|
import * as Transaction from './Transaction.js';
|
|
8
|
+
/**
|
|
9
|
+
* Converts a {@link ox#TransactionRequest.Rpc} to a {@link ox#TransactionRequest.TransactionRequest}.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts twoslash
|
|
13
|
+
* import { TransactionRequest } from 'ox/tempo'
|
|
14
|
+
*
|
|
15
|
+
* const request = TransactionRequest.fromRpc({
|
|
16
|
+
* calls: [{
|
|
17
|
+
* data: '0xdeadbeef',
|
|
18
|
+
* to: '0xcafebabecafebabecafebabecafebabecafebabe',
|
|
19
|
+
* }],
|
|
20
|
+
* feeToken: '0x20c0000000000000000000000000000000000000',
|
|
21
|
+
* type: '0x76',
|
|
22
|
+
* })
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @param request - The RPC request to convert.
|
|
26
|
+
* @returns A transaction request.
|
|
27
|
+
*/
|
|
28
|
+
export function fromRpc(request) {
|
|
29
|
+
const { authorizationList: _, ...rest } = request;
|
|
30
|
+
const request_ = ox_TransactionRequest.fromRpc(rest);
|
|
31
|
+
if (typeof request.type !== 'undefined')
|
|
32
|
+
request_.type =
|
|
33
|
+
Transaction.fromRpcType[request.type] || request_.type;
|
|
34
|
+
if (request.authorizationList)
|
|
35
|
+
request_.authorizationList = AuthorizationTempo.fromRpcList(request.authorizationList);
|
|
36
|
+
if (request.calls)
|
|
37
|
+
request_.calls = request.calls.map((call) => {
|
|
38
|
+
const mapped = {
|
|
39
|
+
to: call.to,
|
|
40
|
+
data: call.data,
|
|
41
|
+
};
|
|
42
|
+
if (call.value && call.value !== '0x')
|
|
43
|
+
mapped.value = Hex.toBigInt(call.value);
|
|
44
|
+
return mapped;
|
|
45
|
+
});
|
|
46
|
+
if (typeof request.feeToken !== 'undefined')
|
|
47
|
+
request_.feeToken = TokenId.fromAddress(request.feeToken);
|
|
48
|
+
if (request.keyAuthorization)
|
|
49
|
+
request_.keyAuthorization = KeyAuthorization.fromRpc(request.keyAuthorization);
|
|
50
|
+
if (typeof request.validBefore !== 'undefined')
|
|
51
|
+
request_.validBefore = Hex.toNumber(request.validBefore);
|
|
52
|
+
if (typeof request.validAfter !== 'undefined')
|
|
53
|
+
request_.validAfter = Hex.toNumber(request.validAfter);
|
|
54
|
+
if (typeof request.nonceKey !== 'undefined')
|
|
55
|
+
request_.nonceKey = Hex.toBigInt(request.nonceKey);
|
|
56
|
+
return request_;
|
|
57
|
+
}
|
|
8
58
|
/**
|
|
9
59
|
* Converts a {@link ox#TransactionRequest.TransactionRequest} to a {@link ox#TransactionRequest.Rpc}.
|
|
10
60
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":"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"}
|
package/_esm/version.js
CHANGED
|
@@ -33,6 +33,30 @@ export type Rpc = Omit<TransactionRequest<Hex.Hex, Hex.Hex, string>, 'authorizat
|
|
|
33
33
|
keyAuthorization?: KeyAuthorization.Rpc | undefined;
|
|
34
34
|
nonceKey?: Hex.Hex | undefined;
|
|
35
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* Converts a {@link ox#TransactionRequest.Rpc} to a {@link ox#TransactionRequest.TransactionRequest}.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```ts twoslash
|
|
41
|
+
* import { TransactionRequest } from 'ox/tempo'
|
|
42
|
+
*
|
|
43
|
+
* const request = TransactionRequest.fromRpc({
|
|
44
|
+
* calls: [{
|
|
45
|
+
* data: '0xdeadbeef',
|
|
46
|
+
* to: '0xcafebabecafebabecafebabecafebabecafebabe',
|
|
47
|
+
* }],
|
|
48
|
+
* feeToken: '0x20c0000000000000000000000000000000000000',
|
|
49
|
+
* type: '0x76',
|
|
50
|
+
* })
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* @param request - The RPC request to convert.
|
|
54
|
+
* @returns A transaction request.
|
|
55
|
+
*/
|
|
56
|
+
export declare function fromRpc(request: Rpc): TransactionRequest;
|
|
57
|
+
export declare namespace fromRpc {
|
|
58
|
+
type ErrorType = AuthorizationTempo.fromRpcList.ErrorType | Hex.toNumber.ErrorType | Hex.toBigInt.ErrorType | Errors.GlobalErrorType;
|
|
59
|
+
}
|
|
36
60
|
/**
|
|
37
61
|
* Converts a {@link ox#TransactionRequest.TransactionRequest} to a {@link ox#TransactionRequest.Rpc}.
|
|
38
62
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionRequest.d.ts","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAEhD,KAAK,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,CAAA;AAEhD;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,CAC5B,UAAU,GAAG,MAAM,EACnB,UAAU,GAAG,MAAM,EACnB,IAAI,SAAS,MAAM,GAAG,MAAM,IAC1B,OAAO,CACT,IAAI,CACF,qBAAqB,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,EACtE,mBAAmB,CACpB,GAAG;IACF,iBAAiB,CAAC,EACd,kBAAkB,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,GACrD,SAAS,CAAA;IACb,KAAK,CAAC,EAAE,SAAS,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAA;IACrE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;IACtE,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAA;IAC5C,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IACpC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;CACpC,CACF,CAAA;AAED,gFAAgF;AAChF,MAAM,MAAM,GAAG,GAAG,IAAI,CACpB,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAC5C,mBAAmB,GAAG,kBAAkB,CACzC,GAAG;IACF,iBAAiB,CAAC,EAAE,kBAAkB,CAAC,OAAO,GAAG,SAAS,CAAA;IAC1D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,GAAG,GAAG,SAAS,CAAA;IACnD,QAAQ,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;CAC/B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,GAAG,CAoDtD;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAY,SAAS,GACjB,kBAAkB,CAAC,SAAS,CAAC,SAAS,GACtC,GAAG,CAAC,UAAU,CAAC,SAAS,GACxB,MAAM,CAAC,eAAe,CAAA;CAC3B"}
|
|
1
|
+
{"version":3,"file":"TransactionRequest.d.ts","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAEhD,KAAK,OAAO,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,CAAA;AAEhD;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,CAC5B,UAAU,GAAG,MAAM,EACnB,UAAU,GAAG,MAAM,EACnB,IAAI,SAAS,MAAM,GAAG,MAAM,IAC1B,OAAO,CACT,IAAI,CACF,qBAAqB,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,EACtE,mBAAmB,CACpB,GAAG;IACF,iBAAiB,CAAC,EACd,kBAAkB,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,GACrD,SAAS,CAAA;IACb,KAAK,CAAC,EAAE,SAAS,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAA;IACrE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;IACtE,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAA;IAC5C,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IACpC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;CACpC,CACF,CAAA;AAED,gFAAgF;AAChF,MAAM,MAAM,GAAG,GAAG,IAAI,CACpB,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAC5C,mBAAmB,GAAG,kBAAkB,CACzC,GAAG;IACF,iBAAiB,CAAC,EAAE,kBAAkB,CAAC,OAAO,GAAG,SAAS,CAAA;IAC1D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,GAAG,GAAG,SAAS,CAAA;IACnD,QAAQ,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;CAC/B,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,kBAAkB,CA0CxD;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAY,SAAS,GACjB,kBAAkB,CAAC,WAAW,CAAC,SAAS,GACxC,GAAG,CAAC,QAAQ,CAAC,SAAS,GACtB,GAAG,CAAC,QAAQ,CAAC,SAAS,GACtB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,GAAG,CAoDtD;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAY,SAAS,GACjB,kBAAkB,CAAC,SAAS,CAAC,SAAS,GACtC,GAAG,CAAC,UAAU,CAAC,SAAS,GACxB,MAAM,CAAC,eAAe,CAAA;CAC3B"}
|
package/_types/version.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { TransactionRequest } from 'ox/tempo'
|
|
2
|
+
import { describe, expect, test } from 'vitest'
|
|
3
|
+
|
|
4
|
+
describe('fromRpc', () => {
|
|
5
|
+
test('default', () => {
|
|
6
|
+
const request = TransactionRequest.fromRpc({
|
|
7
|
+
calls: [
|
|
8
|
+
{
|
|
9
|
+
data: '0xdeadbeef',
|
|
10
|
+
to: '0xcafebabecafebabecafebabecafebabecafebabe',
|
|
11
|
+
},
|
|
12
|
+
],
|
|
13
|
+
feeToken: '0x20c0000000000000000000000000000000000000',
|
|
14
|
+
type: '0x76',
|
|
15
|
+
})
|
|
16
|
+
expect(request).toMatchInlineSnapshot(`
|
|
17
|
+
{
|
|
18
|
+
"calls": [
|
|
19
|
+
{
|
|
20
|
+
"data": "0xdeadbeef",
|
|
21
|
+
"to": "0xcafebabecafebabecafebabecafebabecafebabe",
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
"feeToken": 0n,
|
|
25
|
+
"type": "tempo",
|
|
26
|
+
}
|
|
27
|
+
`)
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
test('behavior: calls with value', () => {
|
|
31
|
+
const request = TransactionRequest.fromRpc({
|
|
32
|
+
calls: [
|
|
33
|
+
{
|
|
34
|
+
data: '0xdeadbeef',
|
|
35
|
+
to: '0xcafebabecafebabecafebabecafebabecafebabe',
|
|
36
|
+
value: '0x2386f26fc10000',
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
type: '0x76',
|
|
40
|
+
})
|
|
41
|
+
expect(request.calls).toMatchInlineSnapshot(`
|
|
42
|
+
[
|
|
43
|
+
{
|
|
44
|
+
"data": "0xdeadbeef",
|
|
45
|
+
"to": "0xcafebabecafebabecafebabecafebabecafebabe",
|
|
46
|
+
"value": 10000000000000000n,
|
|
47
|
+
},
|
|
48
|
+
]
|
|
49
|
+
`)
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
test('behavior: validBefore + validAfter', () => {
|
|
53
|
+
const request = TransactionRequest.fromRpc({
|
|
54
|
+
calls: [],
|
|
55
|
+
validBefore: '0x64',
|
|
56
|
+
validAfter: '0x32',
|
|
57
|
+
type: '0x76',
|
|
58
|
+
})
|
|
59
|
+
expect(request.validBefore).toBe(100)
|
|
60
|
+
expect(request.validAfter).toBe(50)
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
test('behavior: nonceKey', () => {
|
|
64
|
+
const request = TransactionRequest.fromRpc({
|
|
65
|
+
calls: [],
|
|
66
|
+
nonceKey: '0xff',
|
|
67
|
+
type: '0x76',
|
|
68
|
+
})
|
|
69
|
+
expect(request.nonceKey).toBe(255n)
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
test('behavior: empty', () => {
|
|
73
|
+
const request = TransactionRequest.fromRpc({})
|
|
74
|
+
expect(request).toMatchInlineSnapshot('{}')
|
|
75
|
+
})
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
describe('toRpc', () => {
|
|
79
|
+
test('default', () => {
|
|
80
|
+
const request = TransactionRequest.toRpc({
|
|
81
|
+
calls: [
|
|
82
|
+
{
|
|
83
|
+
data: '0xdeadbeef',
|
|
84
|
+
to: '0xcafebabecafebabecafebabecafebabecafebabe',
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
feeToken: '0x20c0000000000000000000000000000000000000',
|
|
88
|
+
})
|
|
89
|
+
expect(request).toMatchInlineSnapshot(`
|
|
90
|
+
{
|
|
91
|
+
"calls": [
|
|
92
|
+
{
|
|
93
|
+
"data": "0xdeadbeef",
|
|
94
|
+
"to": "0xcafebabecafebabecafebabecafebabecafebabe",
|
|
95
|
+
"value": "0x",
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
"feeToken": "0x20c0000000000000000000000000000000000000",
|
|
99
|
+
"type": "0x76",
|
|
100
|
+
}
|
|
101
|
+
`)
|
|
102
|
+
})
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
describe('roundtrip', () => {
|
|
106
|
+
test('toRpc -> fromRpc', () => {
|
|
107
|
+
const original: TransactionRequest.TransactionRequest = {
|
|
108
|
+
calls: [
|
|
109
|
+
{
|
|
110
|
+
data: '0xdeadbeef',
|
|
111
|
+
to: '0xcafebabecafebabecafebabecafebabecafebabe',
|
|
112
|
+
value: 10000000000000000n,
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
data: '0x',
|
|
116
|
+
to: '0x1234567890123456789012345678901234567890',
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
feeToken: '0x20c0000000000000000000000000000000000001',
|
|
120
|
+
validBefore: 100,
|
|
121
|
+
validAfter: 50,
|
|
122
|
+
nonceKey: 255n,
|
|
123
|
+
gas: 100000n,
|
|
124
|
+
maxFeePerGas: 1000000000n,
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const rpc = TransactionRequest.toRpc(original)
|
|
128
|
+
const converted = TransactionRequest.fromRpc(rpc)
|
|
129
|
+
|
|
130
|
+
expect(converted.calls).toEqual(
|
|
131
|
+
original.calls!.map((call) => ({
|
|
132
|
+
to: call.to,
|
|
133
|
+
data: call.data ?? '0x',
|
|
134
|
+
value: call.value,
|
|
135
|
+
})),
|
|
136
|
+
)
|
|
137
|
+
expect(converted.feeToken).toEqual(1n)
|
|
138
|
+
expect(converted.validBefore).toBe(original.validBefore)
|
|
139
|
+
expect(converted.validAfter).toBe(original.validAfter)
|
|
140
|
+
expect(converted.nonceKey).toBe(original.nonceKey)
|
|
141
|
+
expect(converted.gas).toBe(original.gas)
|
|
142
|
+
expect(converted.maxFeePerGas).toBe(original.maxFeePerGas)
|
|
143
|
+
expect(converted.type).toBe('tempo')
|
|
144
|
+
})
|
|
145
|
+
|
|
146
|
+
test('fromRpc -> toRpc', () => {
|
|
147
|
+
const original: TransactionRequest.Rpc = {
|
|
148
|
+
calls: [
|
|
149
|
+
{
|
|
150
|
+
data: '0xdeadbeef',
|
|
151
|
+
to: '0xcafebabecafebabecafebabecafebabecafebabe',
|
|
152
|
+
value: '0x2386f26fc10000',
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
feeToken: '0x20c0000000000000000000000000000000000000',
|
|
156
|
+
validBefore: '0x64',
|
|
157
|
+
validAfter: '0x32',
|
|
158
|
+
nonceKey: '0xff',
|
|
159
|
+
gas: '0x186a0',
|
|
160
|
+
type: '0x76',
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
const request = TransactionRequest.fromRpc(original)
|
|
164
|
+
const rpc = TransactionRequest.toRpc(request)
|
|
165
|
+
|
|
166
|
+
expect(rpc.calls).toEqual(original.calls)
|
|
167
|
+
expect(rpc.feeToken).toBe(original.feeToken)
|
|
168
|
+
expect(rpc.validBefore).toBe(original.validBefore)
|
|
169
|
+
expect(rpc.validAfter).toBe(original.validAfter)
|
|
170
|
+
expect(rpc.nonceKey).toBe(original.nonceKey)
|
|
171
|
+
expect(rpc.gas).toBe(original.gas)
|
|
172
|
+
expect(rpc.type).toBe('0x76')
|
|
173
|
+
})
|
|
174
|
+
})
|
|
@@ -52,6 +52,78 @@ export type Rpc = Omit<
|
|
|
52
52
|
nonceKey?: Hex.Hex | undefined
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
/**
|
|
56
|
+
* Converts a {@link ox#TransactionRequest.Rpc} to a {@link ox#TransactionRequest.TransactionRequest}.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts twoslash
|
|
60
|
+
* import { TransactionRequest } from 'ox/tempo'
|
|
61
|
+
*
|
|
62
|
+
* const request = TransactionRequest.fromRpc({
|
|
63
|
+
* calls: [{
|
|
64
|
+
* data: '0xdeadbeef',
|
|
65
|
+
* to: '0xcafebabecafebabecafebabecafebabecafebabe',
|
|
66
|
+
* }],
|
|
67
|
+
* feeToken: '0x20c0000000000000000000000000000000000000',
|
|
68
|
+
* type: '0x76',
|
|
69
|
+
* })
|
|
70
|
+
* ```
|
|
71
|
+
*
|
|
72
|
+
* @param request - The RPC request to convert.
|
|
73
|
+
* @returns A transaction request.
|
|
74
|
+
*/
|
|
75
|
+
export function fromRpc(request: Rpc): TransactionRequest {
|
|
76
|
+
const { authorizationList: _, ...rest } = request
|
|
77
|
+
const request_ = ox_TransactionRequest.fromRpc(
|
|
78
|
+
rest as any,
|
|
79
|
+
) as TransactionRequest
|
|
80
|
+
|
|
81
|
+
if (typeof request.type !== 'undefined')
|
|
82
|
+
request_.type =
|
|
83
|
+
Transaction.fromRpcType[
|
|
84
|
+
request.type as keyof typeof Transaction.fromRpcType
|
|
85
|
+
] || request_.type
|
|
86
|
+
|
|
87
|
+
if (request.authorizationList)
|
|
88
|
+
request_.authorizationList = AuthorizationTempo.fromRpcList(
|
|
89
|
+
request.authorizationList,
|
|
90
|
+
)
|
|
91
|
+
if (request.calls)
|
|
92
|
+
request_.calls = request.calls.map((call) => {
|
|
93
|
+
const mapped: Call<bigint, TempoAddress.Address> = {
|
|
94
|
+
to: call.to,
|
|
95
|
+
data: call.data,
|
|
96
|
+
}
|
|
97
|
+
if (call.value && call.value !== '0x')
|
|
98
|
+
mapped.value = Hex.toBigInt(call.value)
|
|
99
|
+
return mapped
|
|
100
|
+
})
|
|
101
|
+
if (typeof request.feeToken !== 'undefined')
|
|
102
|
+
request_.feeToken = TokenId.fromAddress(
|
|
103
|
+
request.feeToken as TempoAddress.Address,
|
|
104
|
+
)
|
|
105
|
+
if (request.keyAuthorization)
|
|
106
|
+
request_.keyAuthorization = KeyAuthorization.fromRpc(
|
|
107
|
+
request.keyAuthorization,
|
|
108
|
+
)
|
|
109
|
+
if (typeof request.validBefore !== 'undefined')
|
|
110
|
+
request_.validBefore = Hex.toNumber(request.validBefore as Hex.Hex)
|
|
111
|
+
if (typeof request.validAfter !== 'undefined')
|
|
112
|
+
request_.validAfter = Hex.toNumber(request.validAfter as Hex.Hex)
|
|
113
|
+
if (typeof request.nonceKey !== 'undefined')
|
|
114
|
+
request_.nonceKey = Hex.toBigInt(request.nonceKey as Hex.Hex)
|
|
115
|
+
|
|
116
|
+
return request_
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export declare namespace fromRpc {
|
|
120
|
+
export type ErrorType =
|
|
121
|
+
| AuthorizationTempo.fromRpcList.ErrorType
|
|
122
|
+
| Hex.toNumber.ErrorType
|
|
123
|
+
| Hex.toBigInt.ErrorType
|
|
124
|
+
| Errors.GlobalErrorType
|
|
125
|
+
}
|
|
126
|
+
|
|
55
127
|
/**
|
|
56
128
|
* Converts a {@link ox#TransactionRequest.TransactionRequest} to a {@link ox#TransactionRequest.Rpc}.
|
|
57
129
|
*
|
package/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** @internal */
|
|
2
|
-
export const version = '0.14.
|
|
2
|
+
export const version = '0.14.16'
|