tempo.ts 0.8.2 → 0.8.3
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/dist/viem/Chain.d.ts +1 -3
- package/dist/viem/Chain.d.ts.map +1 -1
- package/dist/viem/Formatters.d.ts +2 -4
- package/dist/viem/Formatters.d.ts.map +1 -1
- package/dist/viem/Formatters.js +6 -4
- package/dist/viem/Formatters.js.map +1 -1
- package/package.json +1 -1
- package/src/viem/Formatters.ts +12 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# tempo.ts
|
|
2
2
|
|
|
3
|
+
## 0.8.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`c092cfa`](https://github.com/tempoxyz/tempo-ts/commit/c092cfad47898d10f621da8bad5e414a624dd05e) Thanks [@jxom](https://github.com/jxom)! - `tempo.ts/viem`: Fixed `account` type on transaction requests.
|
|
8
|
+
|
|
3
9
|
## 0.8.2
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
package/dist/viem/Chain.d.ts
CHANGED
|
@@ -246,9 +246,7 @@ declare function config<const chain extends Chain>(chain: chain): {
|
|
|
246
246
|
};
|
|
247
247
|
readonly transactionRequest: {
|
|
248
248
|
exclude: [] | undefined;
|
|
249
|
-
format: (args: import("../internal/types.js").UnionOmit<Transaction.TransactionRequest, "feeToken"> & import("./internal/types.js").GetFeeTokenParameter<chain
|
|
250
|
-
account?: import("viem").Account | undefined;
|
|
251
|
-
}, action?: string | undefined) => ({
|
|
249
|
+
format: (args: import("../internal/types.js").UnionOmit<Transaction.TransactionRequest, "feeToken"> & import("./internal/types.js").GetFeeTokenParameter<chain>, action?: string | undefined) => ({
|
|
252
250
|
data?: `0x${string}` | undefined;
|
|
253
251
|
from?: `0x${string}` | undefined;
|
|
254
252
|
gas?: `0x${string}` | undefined;
|
package/dist/viem/Chain.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../src/viem/Chain.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,KAAK,IAAI,UAAU,EACzB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAEhD,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,MAAM,MAAM,KAAK,CACf,QAAQ,SAAS,OAAO,CAAC,gBAAgB,GAAG,IAAI,GAAG,SAAS,GACxD,OAAO,CAAC,gBAAgB,GACxB,IAAI,GACJ,SAAS,IACX,UAAU,GACZ,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,IAAI,GAC/B;IACE,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAA;CACvD,GACD;IACE,QAAQ,EAAE,QAAQ,CAAA;CACnB,CAAC,CAAA;AAER,iBAAS,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,KAAK,EAAE,KAAK,EAAE,KAAK
|
|
1
|
+
{"version":3,"file":"Chain.d.ts","sourceRoot":"","sources":["../../src/viem/Chain.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,KAAK,IAAI,UAAU,EACzB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,KAAK,OAAO,MAAM,kBAAkB,CAAA;AAEhD,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,MAAM,MAAM,KAAK,CACf,QAAQ,SAAS,OAAO,CAAC,gBAAgB,GAAG,IAAI,GAAG,SAAS,GACxD,OAAO,CAAC,gBAAgB,GACxB,IAAI,GACJ,SAAS,IACX,UAAU,GACZ,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,IAAI,GAC/B;IACE,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAA;CACvD,GACD;IACE,QAAQ,EAAE,QAAQ,CAAA;CACnB,CAAC,CAAA;AAER,iBAAS,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,KAAK,EAAE,KAAK,EAAE,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAgGzC,sBAAsB;;UAInC;AAED,wBAAgB,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,UAAU,EACnD,KAAK,EAAE,KAAK,GACX,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAK3B;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,UAAU,GAAG;QAChB;;;;;;;;WAQG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAA;KACvD,CAAA;IAED,KAAK,WAAW,CAAC,KAAK,SAAS,UAAU,IAAI,CAAC,CAC5C,UAAU,SAAS,MAAM,CAAC,UAAU,GAAG,SAAS,EAEhD,UAAU,EAAE,UAAU,KACnB,UAAU,CAAC,OAAO,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;KAAE,CAAA;CAC1E"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { type Chain
|
|
1
|
+
import { type Chain } from 'viem';
|
|
2
2
|
import type { UnionOmit } from '../internal/types.js';
|
|
3
3
|
import type { GetFeeTokenParameter } from './internal/types.js';
|
|
4
4
|
import { type Transaction, type TransactionReceipt, type TransactionReceiptRpc, type TransactionRequest, type TransactionRequestRpc, type TransactionRpc } from './Transaction.js';
|
|
5
5
|
export declare function formatTransaction(transaction: TransactionRpc): Transaction<bigint, number, boolean>;
|
|
6
6
|
export declare function formatTransactionReceipt(receipt: TransactionReceiptRpc): TransactionReceipt;
|
|
7
|
-
type Request<chain extends Chain | undefined> = UnionOmit<TransactionRequest, 'feeToken'> & GetFeeTokenParameter<chain
|
|
8
|
-
account?: viem_Account | undefined;
|
|
9
|
-
};
|
|
7
|
+
type Request<chain extends Chain | undefined> = UnionOmit<TransactionRequest, 'feeToken'> & GetFeeTokenParameter<chain>;
|
|
10
8
|
export declare function formatTransactionRequest<chain extends Chain | undefined>(r: Request<chain>, action?: string | undefined): TransactionRequestRpc;
|
|
11
9
|
export {};
|
|
12
10
|
//# sourceMappingURL=Formatters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Formatters.d.ts","sourceRoot":"","sources":["../../src/viem/Formatters.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"Formatters.d.ts","sourceRoot":"","sources":["../../src/viem/Formatters.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,KAAK,EAKX,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAIrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AAEzB,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,cAAc,GAC1B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAkCtC;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,qBAAqB,GAC7B,kBAAkB,CAEpB;AAED,KAAK,OAAO,CAAC,KAAK,SAAS,KAAK,GAAG,SAAS,IAAI,SAAS,CACvD,kBAAkB,EAClB,UAAU,CACX,GACC,oBAAoB,CAAC,KAAK,CAAC,CAAA;AAC7B,wBAAgB,wBAAwB,CAAC,KAAK,SAAS,KAAK,GAAG,SAAS,EACtE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAC1B,qBAAqB,CA4FvB"}
|
package/dist/viem/Formatters.js
CHANGED
|
@@ -36,7 +36,9 @@ export function formatTransactionReceipt(receipt) {
|
|
|
36
36
|
}
|
|
37
37
|
export function formatTransactionRequest(r, action) {
|
|
38
38
|
const request = r;
|
|
39
|
-
const account = request.account
|
|
39
|
+
const account = request.account
|
|
40
|
+
? parseAccount(request.account)
|
|
41
|
+
: undefined;
|
|
40
42
|
// Convert EIP-1559 transactions to AA transactions.
|
|
41
43
|
if (request.type === 'eip1559')
|
|
42
44
|
request.type = 'aa';
|
|
@@ -72,7 +74,7 @@ export function formatTransactionRequest(r, action) {
|
|
|
72
74
|
// TODO: `calls` will not be supported by a lot of JSON-RPC accounts (wallet),
|
|
73
75
|
// use `wallet_sendCalls` or sequential `eth_sendTransaction` to mimic the
|
|
74
76
|
// behavior of `calls`.
|
|
75
|
-
if (
|
|
77
|
+
if (account?.type === 'json-rpc') {
|
|
76
78
|
if (rpc.calls?.length && rpc.calls.length > 1)
|
|
77
79
|
throw new Error('Batch calls are not supported with JSON-RPC accounts yet.');
|
|
78
80
|
rpc.type = undefined;
|
|
@@ -81,13 +83,13 @@ export function formatTransactionRequest(r, action) {
|
|
|
81
83
|
// However, `calls` may not be supported by JSON-RPC accounts (wallets) yet,
|
|
82
84
|
// so we will not remove the `data`, `to`, and `value` fields to make it
|
|
83
85
|
// compatible with the base transaction structure.
|
|
84
|
-
if (
|
|
86
|
+
if (account?.type !== 'json-rpc') {
|
|
85
87
|
rpc.to = undefined;
|
|
86
88
|
rpc.data = undefined;
|
|
87
89
|
rpc.value = undefined;
|
|
88
90
|
}
|
|
89
91
|
const [keyType, keyData] = (() => {
|
|
90
|
-
const type = account
|
|
92
|
+
const type = account && 'keyType' in account ? account.keyType : account?.source;
|
|
91
93
|
if (!type)
|
|
92
94
|
return [undefined, undefined];
|
|
93
95
|
if (type === 'webAuthn')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Formatters.js","sourceRoot":"","sources":["../../src/viem/Formatters.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAE7F,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAGL,iBAAiB,IAAI,sBAAsB,EAC3C,wBAAwB,IAAI,6BAA6B,EACzD,wBAAwB,IAAI,6BAA6B,GAC1D,MAAM,MAAM,CAAA;AACb,OAAO,
|
|
1
|
+
{"version":3,"file":"Formatters.js","sourceRoot":"","sources":["../../src/viem/Formatters.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/viem/Formatters.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
formatTransactionReceipt as viem_formatTransactionReceipt,
|
|
9
9
|
formatTransactionRequest as viem_formatTransactionRequest,
|
|
10
10
|
} from 'viem'
|
|
11
|
-
import { parseAccount } from 'viem/accounts'
|
|
11
|
+
import { type Address, parseAccount } from 'viem/accounts'
|
|
12
12
|
import type { UnionOmit } from '../internal/types.js'
|
|
13
13
|
import * as ox_Transaction from '../ox/Transaction.js'
|
|
14
14
|
import * as ox_TransactionRequest from '../ox/TransactionRequest.js'
|
|
@@ -72,13 +72,17 @@ type Request<chain extends Chain | undefined> = UnionOmit<
|
|
|
72
72
|
TransactionRequest,
|
|
73
73
|
'feeToken'
|
|
74
74
|
> &
|
|
75
|
-
GetFeeTokenParameter<chain>
|
|
75
|
+
GetFeeTokenParameter<chain>
|
|
76
76
|
export function formatTransactionRequest<chain extends Chain | undefined>(
|
|
77
77
|
r: Request<chain>,
|
|
78
78
|
action?: string | undefined,
|
|
79
79
|
): TransactionRequestRpc {
|
|
80
|
-
const request = r as Request<chain>
|
|
81
|
-
|
|
80
|
+
const request = r as Request<chain> & {
|
|
81
|
+
account?: viem_Account | Address | undefined
|
|
82
|
+
}
|
|
83
|
+
const account = request.account
|
|
84
|
+
? parseAccount<Account | viem_Account | Address>(request.account)
|
|
85
|
+
: undefined
|
|
82
86
|
|
|
83
87
|
// Convert EIP-1559 transactions to AA transactions.
|
|
84
88
|
if (request.type === 'eip1559') (request as any).type = 'aa'
|
|
@@ -122,7 +126,7 @@ export function formatTransactionRequest<chain extends Chain | undefined>(
|
|
|
122
126
|
// TODO: `calls` will not be supported by a lot of JSON-RPC accounts (wallet),
|
|
123
127
|
// use `wallet_sendCalls` or sequential `eth_sendTransaction` to mimic the
|
|
124
128
|
// behavior of `calls`.
|
|
125
|
-
if (
|
|
129
|
+
if (account?.type === 'json-rpc') {
|
|
126
130
|
if (rpc.calls?.length && rpc.calls.length > 1)
|
|
127
131
|
throw new Error(
|
|
128
132
|
'Batch calls are not supported with JSON-RPC accounts yet.',
|
|
@@ -134,14 +138,15 @@ export function formatTransactionRequest<chain extends Chain | undefined>(
|
|
|
134
138
|
// However, `calls` may not be supported by JSON-RPC accounts (wallets) yet,
|
|
135
139
|
// so we will not remove the `data`, `to`, and `value` fields to make it
|
|
136
140
|
// compatible with the base transaction structure.
|
|
137
|
-
if (
|
|
141
|
+
if (account?.type !== 'json-rpc') {
|
|
138
142
|
rpc.to = undefined
|
|
139
143
|
rpc.data = undefined
|
|
140
144
|
rpc.value = undefined
|
|
141
145
|
}
|
|
142
146
|
|
|
143
147
|
const [keyType, keyData] = (() => {
|
|
144
|
-
const type =
|
|
148
|
+
const type =
|
|
149
|
+
account && 'keyType' in account ? account.keyType : account?.source
|
|
145
150
|
if (!type) return [undefined, undefined]
|
|
146
151
|
if (type === 'webAuthn')
|
|
147
152
|
// TODO: derive correct bytes size of key data based on webauthn create metadata.
|