Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/quietly-dogs-march.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@wagmi/core': patch
---

Fixed `feePayer` types for Tempo chains on `sendTransaction`, `sendTransactionSync`, and `deployContract`.
5 changes: 5 additions & 0 deletions .changeset/slowly-birds-sing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@wagmi/vue': patch
---

Fixed `feePayer` types for Tempo chains on `useSendTransaction`.
5 changes: 5 additions & 0 deletions .changeset/softly-cats-dance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'wagmi': patch
---

Fixed `feePayer` types for Tempo chains on `useSendTransaction`, `useSendTransactionSync`, `useWriteContract`, and `useWriteContractSync`.
67 changes: 66 additions & 1 deletion packages/core/src/actions/deployContract.test-d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { abi, bytecode, config } from '@wagmi/test'
import { http } from 'viem'
import { celo, mainnet } from 'viem/chains'
import { privateKeyToAccount } from 'viem/accounts'
import { celo, mainnet, tempoLocalnet } from 'viem/chains'
import { expectTypeOf, test } from 'vitest'

import { createConfig } from '../createConfig.js'
Expand Down Expand Up @@ -69,3 +70,67 @@ test('chain formatters', () => {
feeCurrency: '0x',
})
})

test('tempo feePayer', () => {
const feePayer = privateKeyToAccount(
'0x0123456789012345678901234567890123456789012345678901234567890123',
)

const tempoConfig = createConfig({
chains: [tempoLocalnet],
transports: { [tempoLocalnet.id]: http() },
})

deployContract(tempoConfig, {
abi: abi.bayc,
bytecode: bytecode.bayc,
args: ['Bored Ape Wagmi Club', 'BAYC', 69420n, 0n],
feePayer: true,
})

deployContract(tempoConfig, {
abi: abi.bayc,
bytecode: bytecode.bayc,
args: ['Bored Ape Wagmi Club', 'BAYC', 69420n, 0n],
feePayer,
})

const config = createConfig({
chains: [mainnet, tempoLocalnet],
transports: { [mainnet.id]: http(), [tempoLocalnet.id]: http() },
})

deployContract(config, {
chainId: tempoLocalnet.id,
abi: abi.bayc,
bytecode: bytecode.bayc,
args: ['Bored Ape Wagmi Club', 'BAYC', 69420n, 0n],
feePayer: true,
})

deployContract(config, {
chainId: tempoLocalnet.id,
abi: abi.bayc,
bytecode: bytecode.bayc,
args: ['Bored Ape Wagmi Club', 'BAYC', 69420n, 0n],
feePayer,
})

deployContract(config, {
chainId: mainnet.id,
abi: abi.bayc,
bytecode: bytecode.bayc,
args: ['Bored Ape Wagmi Club', 'BAYC', 69420n, 0n],
// @ts-expect-error
feePayer: true,
})

type Result = DeployContractParameters<
typeof abi.bayc,
typeof config,
typeof mainnet.id
>
expectTypeOf<Result>().not.toMatchTypeOf<{
feePayer?: true | typeof feePayer | undefined
}>()
})
6 changes: 3 additions & 3 deletions packages/core/src/actions/deployContract.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import type {
ChainIdParameter,
ConnectorParameter,
} from '../types/properties.js'
import type { Compute } from '../types/utils.js'
import type { UnionCompute, UnionLooseOmit } from '../types/utils.js'
import { getAction } from '../utils/getAction.js'
import {
type GetConnectorClientErrorType,
Expand All @@ -28,8 +28,8 @@ export type DeployContractParameters<
allArgs = ContractConstructorArgs<abi>,
chains extends readonly Chain[] = SelectChains<config, chainId>,
> = {
[key in keyof chains]: Compute<
Omit<
[key in keyof chains]: UnionCompute<
UnionLooseOmit<
viem_DeployContractParameters<
abi,
chains[key],
Expand Down
55 changes: 52 additions & 3 deletions packages/core/src/actions/sendTransaction.test-d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { http, parseEther } from 'viem'
import { celo, mainnet } from 'viem/chains'
import { privateKeyToAccount } from 'viem/accounts'
import { celo, mainnet, tempoLocalnet } from 'viem/chains'
import { expectTypeOf, test } from 'vitest'

import { createConfig } from '../createConfig.js'
Expand Down Expand Up @@ -40,11 +41,59 @@ test('chain formatters', () => {
expectTypeOf<Result3>().not.toMatchTypeOf<{
feeCurrency?: `0x${string}` | undefined
}>()
})

test('tempo feePayer', () => {
const feePayer = privateKeyToAccount(
'0x0123456789012345678901234567890123456789012345678901234567890123',
)

const tempoConfig = createConfig({
chains: [tempoLocalnet],
transports: { [tempoLocalnet.id]: http() },
})

sendTransaction(tempoConfig, {
to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
value: 1n,
feePayer: true,
})

sendTransaction(tempoConfig, {
to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
value: 1n,
feePayer,
})

const config = createConfig({
chains: [mainnet, tempoLocalnet],
transports: { [mainnet.id]: http(), [tempoLocalnet.id]: http() },
})

sendTransaction(config, {
chainId: tempoLocalnet.id,
to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
value: 1n,
feePayer: true,
})

sendTransaction(config, {
chainId: tempoLocalnet.id,
to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
value: 1n,
feePayer,
})

sendTransaction(config, {
chainId: mainnet.id,
to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
value: parseEther('0.01'),
value: 1n,
// @ts-expect-error
feeCurrency: '0x',
feePayer: true,
})

type Result = SendTransactionParameters<typeof config, typeof mainnet.id>
expectTypeOf<Result>().not.toMatchTypeOf<{
feePayer?: true | typeof feePayer | undefined
}>()
})
12 changes: 7 additions & 5 deletions packages/core/src/actions/sendTransaction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import type {
ChainIdParameter,
ConnectorParameter,
} from '../types/properties.js'
import type { Compute } from '../types/utils.js'
import type { UnionCompute, UnionLooseOmit } from '../types/utils.js'
import { getAction } from '../utils/getAction.js'
import {
type GetConnectorClientErrorType,
Expand All @@ -30,15 +30,17 @@ export type SendTransactionParameters<
///
chains extends readonly Chain[] = SelectChains<config, chainId>,
> = {
[key in keyof chains]: Compute<
Omit<
[key in keyof chains]: UnionCompute<
UnionLooseOmit<
viem_SendTransactionParameters<chains[key], Account, chains[key]>,
'chain' | 'gas'
> &
ChainIdParameter<config, chainId> &
ConnectorParameter
SendTransactionOverrides
>
}[number] & {
}[number]

type SendTransactionOverrides = ConnectorParameter & {
/** Gas provided for transaction execution. */
gas?: TransactionRequest['gas'] | null
}
Expand Down
99 changes: 99 additions & 0 deletions packages/core/src/actions/sendTransactionSync.test-d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
import { http, parseEther } from 'viem'
import { privateKeyToAccount } from 'viem/accounts'
import { celo, mainnet, tempoLocalnet } from 'viem/chains'
import { expectTypeOf, test } from 'vitest'

import { createConfig } from '../createConfig.js'
import {
type SendTransactionSyncParameters,
sendTransactionSync,
} from './sendTransactionSync.js'

test('chain formatters', () => {
const config = createConfig({
chains: [mainnet, celo],
transports: { [celo.id]: http(), [mainnet.id]: http() },
})

type Result = SendTransactionSyncParameters<typeof config>
expectTypeOf<Result>().toMatchTypeOf<{
chainId?: typeof celo.id | typeof mainnet.id | undefined
feeCurrency?: `0x${string}` | undefined
}>()
sendTransactionSync(config, {
to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
value: parseEther('0.01'),
feeCurrency: '0x',
})

type Result2 = SendTransactionSyncParameters<typeof config, typeof celo.id>
expectTypeOf<Result2>().toMatchTypeOf<{
feeCurrency?: `0x${string}` | undefined
}>()
sendTransactionSync(config, {
chainId: celo.id,
to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
value: parseEther('0.01'),
feeCurrency: '0x',
})

type Result3 = SendTransactionSyncParameters<typeof config, typeof mainnet.id>
expectTypeOf<Result3>().not.toMatchTypeOf<{
feeCurrency?: `0x${string}` | undefined
}>()
})

test('tempo feePayer', () => {
const feePayer = privateKeyToAccount(
'0x0123456789012345678901234567890123456789012345678901234567890123',
)

const tempoConfig = createConfig({
chains: [tempoLocalnet],
transports: { [tempoLocalnet.id]: http() },
})

sendTransactionSync(tempoConfig, {
to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
value: 1n,
feePayer: true,
})

sendTransactionSync(tempoConfig, {
to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
value: 1n,
feePayer,
})

const config = createConfig({
chains: [mainnet, tempoLocalnet],
transports: { [mainnet.id]: http(), [tempoLocalnet.id]: http() },
})

sendTransactionSync(config, {
chainId: tempoLocalnet.id,
to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
value: 1n,
feePayer: true,
})

sendTransactionSync(config, {
chainId: tempoLocalnet.id,
to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
value: 1n,
feePayer,
})

sendTransactionSync(config, {
chainId: mainnet.id,
to: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
value: 1n,
// @ts-expect-error
feePayer: true,
})

type Result = SendTransactionSyncParameters<typeof config, typeof mainnet.id>
expectTypeOf<Result>().not.toMatchTypeOf<{
feePayer?: true | typeof feePayer | undefined
}>()
})
12 changes: 7 additions & 5 deletions packages/core/src/actions/sendTransactionSync.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
ChainIdParameter,
ConnectorParameter,
} from '../types/properties.js'
import type { Compute } from '../types/utils.js'
import type { UnionCompute, UnionLooseOmit } from '../types/utils.js'
import { getAction } from '../utils/getAction.js'
import {
type GetConnectorClientErrorType,
Expand All @@ -30,15 +30,17 @@
///
chains extends readonly Chain[] = SelectChains<config, chainId>,
> = {
[key in keyof chains]: Compute<
Omit<
[key in keyof chains]: UnionCompute<
UnionLooseOmit<
viem_SendTransactionSyncParameters<chains[key], Account, chains[key]>,
'chain' | 'gas'
> &
ChainIdParameter<config, chainId> &
ConnectorParameter
SendTransactionSyncOverrides
>
}[number] & {
}[number]

type SendTransactionSyncOverrides = ConnectorParameter & {
/** Gas provided for transaction execution. */
gas?: TransactionRequest['gas'] | null
}
Expand Down Expand Up @@ -85,7 +87,7 @@
viem_sendTransactionSync,
'sendTransactionSync',
)
const hash = await action({

Check failure on line 90 in packages/core/src/actions/sendTransactionSync.ts

View workflow job for this annotation

GitHub Actions / Verify / Test (3, 4)

[core] packages/core/src/actions/sendTransactionSync.test.ts > default

TransactionExecutionError: HTTP request failed. Status: 400 URL: http://127.0.0.1:8545/4995 Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]} Request Arguments: chain: Ethereum (id: 1) from: 0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce to: 0xd2135CfB216b74109775236E36d4b433F1DF507B value: 0.0001 ETH Details: Bad Request Version: viem@2.47.5 ❯ getTransactionError node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/errors/getTransactionError.js:11:12 ❯ sendTransactionSync node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/actions/wallet/sendTransactionSync.js:221:15 ❯ sendTransactionSync packages/core/src/actions/sendTransactionSync.ts:90:16 ❯ packages/core/src/actions/sendTransactionSync.test.ts:23:21 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { details: 'Bad Request', docsPath: undefined, metaMessages: [ 'Status: 400', 'URL: http://127.0.0.1:8545/4995', 'Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]}', ' ', 'Request Arguments:', ' chain: Ethereum (id: 1)\n from: 0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce\n to: 0xd2135CfB216b74109775236E36d4b433F1DF507B\n value: 0.0001 ETH' ], shortMessage: 'HTTP request failed.', version: '2.47.5', walk: 'Function<walk>' } Caused by: HttpRequestError: HTTP request failed. Status: 400 URL: http://127.0.0.1:8545/4995 Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]} Details: Bad Request Version: viem@2.47.5 ❯ Object.request node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/rpc/http.js:64:27 ❯ Object.request packages/core/src/connectors/mock.ts:330:35 ❯ withRetry.delay.count.count node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/buildRequest.js:28:24 ❯ attemptRetry node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/promise/withRetry.js:12:30 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { details: 'Bad Request', docsPath: undefined, metaMessages: [ 'Status: 400', 'URL: http://127.0.0.1:8545/4995', 'Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]}' ], shortMessage: 'HTTP request failed.', version: '2.47.5', body: { method: 'eth_sendTransaction', params: [ { from: '0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce', to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', value: '0x5af3107a4000' } ] }, headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', has: 'Function<has>', forEach: 'Function<forEach>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>' }, status: 400, url: 'http://127.0.0.1:8545/4995', walk: 'Function<walk>' }

Check failure on line 90 in packages/core/src/actions/sendTransactionSync.ts

View workflow job for this annotation

GitHub Actions / Verify / Test (3, 4)

[core] packages/core/src/actions/sendTransactionSync.test.ts > default

TransactionExecutionError: HTTP request failed. Status: 400 URL: http://127.0.0.1:8545/4995 Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]} Request Arguments: chain: Ethereum (id: 1) from: 0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce to: 0xd2135CfB216b74109775236E36d4b433F1DF507B value: 0.0001 ETH Details: Bad Request Version: viem@2.47.5 ❯ getTransactionError node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/errors/getTransactionError.js:11:12 ❯ sendTransactionSync node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/actions/wallet/sendTransactionSync.js:221:15 ❯ sendTransactionSync packages/core/src/actions/sendTransactionSync.ts:90:16 ❯ packages/core/src/actions/sendTransactionSync.test.ts:23:21 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { details: 'Bad Request', docsPath: undefined, metaMessages: [ 'Status: 400', 'URL: http://127.0.0.1:8545/4995', 'Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]}', ' ', 'Request Arguments:', ' chain: Ethereum (id: 1)\n from: 0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce\n to: 0xd2135CfB216b74109775236E36d4b433F1DF507B\n value: 0.0001 ETH' ], shortMessage: 'HTTP request failed.', version: '2.47.5', walk: 'Function<walk>' } Caused by: HttpRequestError: HTTP request failed. Status: 400 URL: http://127.0.0.1:8545/4995 Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]} Details: Bad Request Version: viem@2.47.5 ❯ Object.request node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/rpc/http.js:64:27 ❯ Object.request packages/core/src/connectors/mock.ts:330:35 ❯ withRetry.delay.count.count node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/buildRequest.js:28:24 ❯ attemptRetry node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/promise/withRetry.js:12:30 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { details: 'Bad Request', docsPath: undefined, metaMessages: [ 'Status: 400', 'URL: http://127.0.0.1:8545/4995', 'Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]}' ], shortMessage: 'HTTP request failed.', version: '2.47.5', body: { method: 'eth_sendTransaction', params: [ { from: '0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce', to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', value: '0x5af3107a4000' } ] }, headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', has: 'Function<has>', forEach: 'Function<forEach>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>' }, status: 400, url: 'http://127.0.0.1:8545/4995', walk: 'Function<walk>' }

Check failure on line 90 in packages/core/src/actions/sendTransactionSync.ts

View workflow job for this annotation

GitHub Actions / Verify / Test (3, 4)

[core] packages/core/src/actions/sendTransactionSync.test.ts > default

TransactionExecutionError: HTTP request failed. Status: 400 URL: http://127.0.0.1:8545/4995 Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]} Request Arguments: chain: Ethereum (id: 1) from: 0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce to: 0xd2135CfB216b74109775236E36d4b433F1DF507B value: 0.0001 ETH Details: Bad Request Version: viem@2.47.5 ❯ getTransactionError node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/errors/getTransactionError.js:11:12 ❯ sendTransactionSync node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/actions/wallet/sendTransactionSync.js:221:15 ❯ sendTransactionSync packages/core/src/actions/sendTransactionSync.ts:90:16 ❯ packages/core/src/actions/sendTransactionSync.test.ts:23:21 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { details: 'Bad Request', docsPath: undefined, metaMessages: [ 'Status: 400', 'URL: http://127.0.0.1:8545/4995', 'Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]}', ' ', 'Request Arguments:', ' chain: Ethereum (id: 1)\n from: 0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce\n to: 0xd2135CfB216b74109775236E36d4b433F1DF507B\n value: 0.0001 ETH' ], shortMessage: 'HTTP request failed.', version: '2.47.5', walk: 'Function<walk>' } Caused by: HttpRequestError: HTTP request failed. Status: 400 URL: http://127.0.0.1:8545/4995 Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]} Details: Bad Request Version: viem@2.47.5 ❯ Object.request node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/rpc/http.js:64:27 ❯ Object.request packages/core/src/connectors/mock.ts:330:35 ❯ withRetry.delay.count.count node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/buildRequest.js:28:24 ❯ attemptRetry node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/promise/withRetry.js:12:30 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { details: 'Bad Request', docsPath: undefined, metaMessages: [ 'Status: 400', 'URL: http://127.0.0.1:8545/4995', 'Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]}' ], shortMessage: 'HTTP request failed.', version: '2.47.5', body: { method: 'eth_sendTransaction', params: [ { from: '0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce', to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', value: '0x5af3107a4000' } ] }, headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', has: 'Function<has>', forEach: 'Function<forEach>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>' }, status: 400, url: 'http://127.0.0.1:8545/4995', walk: 'Function<walk>' }

Check failure on line 90 in packages/core/src/actions/sendTransactionSync.ts

View workflow job for this annotation

GitHub Actions / Verify / Test (3, 4)

[core] packages/core/src/actions/sendTransactionSync.test.ts > default

TransactionExecutionError: HTTP request failed. Status: 400 URL: http://127.0.0.1:8545/4995 Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]} Request Arguments: chain: Ethereum (id: 1) from: 0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce to: 0xd2135CfB216b74109775236E36d4b433F1DF507B value: 0.0001 ETH Details: Bad Request Version: viem@2.47.5 ❯ getTransactionError node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/errors/getTransactionError.js:11:12 ❯ sendTransactionSync node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/actions/wallet/sendTransactionSync.js:221:15 ❯ sendTransactionSync packages/core/src/actions/sendTransactionSync.ts:90:16 ❯ packages/core/src/actions/sendTransactionSync.test.ts:23:21 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { details: 'Bad Request', docsPath: undefined, metaMessages: [ 'Status: 400', 'URL: http://127.0.0.1:8545/4995', 'Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]}', ' ', 'Request Arguments:', ' chain: Ethereum (id: 1)\n from: 0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce\n to: 0xd2135CfB216b74109775236E36d4b433F1DF507B\n value: 0.0001 ETH' ], shortMessage: 'HTTP request failed.', version: '2.47.5', walk: 'Function<walk>' } Caused by: Caused by: HttpRequestError: HTTP request failed. Status: 400 URL: http://127.0.0.1:8545/4995 Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]} Details: Bad Request Version: viem@2.47.5 ❯ Object.request node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/rpc/http.js:64:27 ❯ Object.request packages/core/src/connectors/mock.ts:330:35 ❯ withRetry.delay.count.count node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/buildRequest.js:28:24 ❯ attemptRetry node_modules/.pnpm/viem@2.47.5_bufferutil@4.0.8_typescript@5.9.3_utf-8-validate@5.0.10_zod@4.1.11/node_modules/viem/_esm/utils/promise/withRetry.js:12:30 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { details: 'Bad Request', docsPath: undefined, metaMessages: [ 'Status: 400', 'URL: http://127.0.0.1:8545/4995', 'Request body: {"method":"eth_sendTransaction","params":[{"from":"0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce","to":"0xd2135CfB216b74109775236E36d4b433F1DF507B","value":"0x5af3107a4000"}]}' ], shortMessage: 'HTTP request failed.', version: '2.47.5', body: { method: 'eth_sendTransaction', params: [ { from: '0x1D5D7e139A994CeE7f360be398Ef032fE5D74fce', to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', value: '0x5af3107a4000' } ] }, headers: { constructor: 'Function<Headers>', append: 'Function<append>', delete: 'Function<delete>', get: 'Function<get>', set: 'Function<set>', getSetCookie: 'Function<getSetCookie>', has: 'Function<has>', forEach: 'Function<forEach>', keys: 'Function<keys>', values: 'Function<values>', entries: 'Function<entries>' }, status: 400, url: 'http://127.0.0.1:8545/4995', walk: 'Function<walk>' }
...(rest as any),
...(account ? { account } : {}),
assertChainId: !!chainId,
Expand Down
Loading
Loading