Skip to content

Commit ef3f433

Browse files
authored
fix(tempo): preserve keyType/keyId/keyData in formatTransactionRequest (#4567)
* fix(tempo): preserve keyType/keyId/keyData in formatTransactionRequest Amp-Thread-ID: https://ampcode.com/threads/T-019de258-46af-76ce-a25b-8388cd0e2e46 * Update tempo-formatter-preserve-key-fields.md
1 parent 394ef8a commit ef3f433

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"viem": patch
3+
---
4+
5+
`viem/tempo`: Preserved `keyType`, `keyId`, and `keyData` from the input request when no account is present in `formatTransactionRequest`.

src/tempo/Formatters.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ export function formatTransactionRequest(
7272
): TransactionRequestRpc {
7373
const request = r as TransactionRequest & {
7474
account?: viem_Account | Address | undefined
75+
keyData?: Hex.Hex | undefined
76+
keyId?: Address | undefined
77+
keyType?: 'p256' | 'secp256k1' | 'webAuthn' | undefined
7578
}
7679
const account = request.account
7780
? parseAccount<Account | viem_Account | Address>(request.account)
@@ -119,18 +122,18 @@ export function formatTransactionRequest(
119122
const [keyType, keyData] = (() => {
120123
const type =
121124
account && 'keyType' in account ? account.keyType : account?.source
122-
if (!type) return [undefined, undefined]
125+
if (!type) return [request.keyType, request.keyData]
123126
if (type === 'webAuthn')
124127
// TODO: derive correct bytes size of key data based on webauthn create metadata.
125128
return ['webAuthn', `0x${'ff'.repeat(1400)}`]
126129
if (['p256', 'secp256k1'].includes(type)) return [type, undefined]
127-
return [undefined, undefined]
130+
return [request.keyType, request.keyData]
128131
})()
129132

130133
const keyId =
131134
account && 'accessKeyAddress' in account
132135
? account.accessKeyAddress
133-
: undefined
136+
: request.keyId
134137

135138
if (account) rpc.from = account.address
136139

0 commit comments

Comments
 (0)