diff --git a/.changeset/forty-horses-wave.md b/.changeset/forty-horses-wave.md new file mode 100644 index 0000000000..bf2117cedb --- /dev/null +++ b/.changeset/forty-horses-wave.md @@ -0,0 +1,9 @@ +--- +"wagmi": patch +"@wagmi/core": patch +--- + +**Experimental (ERC-5792)**: + +- Removed `writeContracts` Action and Hook – use `sendCalls` instead. +- Added support for `account: null` in `sendCalls` to cater for sending calls without a connected account (account will be filled by the wallet). \ No newline at end of file diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 4044729885..52c23639ce 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -67,7 +67,7 @@ jobs: strategy: matrix: typescript-version: ['5.2.2', '5.3.3', '5.4.5', '5.5.2'] - viem-version: ['2.21.28', 'latest'] + viem-version: ['2.23.5', 'latest'] steps: - name: Clone repository diff --git a/package.json b/package.json index eade76cb73..59772f3bf6 100644 --- a/package.json +++ b/package.json @@ -51,12 +51,12 @@ "bun": "^1.1.29", "happy-dom": "^15.7.4", "knip": "^5.30.6", - "prool": "^0.0.16", + "prool": "^0.0.23", "publint": "^0.2.11", "sherif": "^1.0.0", "simple-git-hooks": "^2.11.1", "typescript": "5.5.4", - "viem": "2.21.28", + "viem": "2.23.5", "vitest": "^2.1.1" }, "packageManager": "pnpm@9.11.0", diff --git a/packages/core/src/actions/call.test.ts b/packages/core/src/actions/call.test.ts index b3b2ea0f13..b6466fd973 100644 --- a/packages/core/src/actions/call.test.ts +++ b/packages/core/src/actions/call.test.ts @@ -81,7 +81,7 @@ test('insufficient funds', async () => { value: 100000 ETH Details: Insufficient funds for gas * price + value - Version: 2.21.28] + Version: viem@2.23.5] `) }) @@ -104,7 +104,7 @@ test('maxFeePerGas less than maxPriorityFeePerGas', async () => { maxFeePerGas: 20 gwei maxPriorityFeePerGas: 22 gwei - Version: 2.21.28] + Version: viem@2.23.5] `) }) @@ -124,7 +124,7 @@ test('contract revert (contract error)', async () => { data: 0xa0712d6800000000000000000000000000000000000000000000000000000000000001a4 Details: execution reverted: revert: Token ID is taken - Version: 2.21.28] + Version: viem@2.23.5] `) }) @@ -144,6 +144,6 @@ test('contract revert (insufficient params)', async () => { data: 0xa0712d68 Details: execution reverted - Version: 2.21.28] + Version: viem@2.23.5] `) }) diff --git a/packages/core/src/actions/connect.test.ts b/packages/core/src/actions/connect.test.ts index 0b43ebc92f..e8c7efbf8a 100644 --- a/packages/core/src/actions/connect.test.ts +++ b/packages/core/src/actions/connect.test.ts @@ -57,7 +57,7 @@ test('behavior: user rejected request', async () => { [UserRejectedRequestError: User rejected the request. Details: Failed to connect. - Version: 2.21.28] + Version: viem@2.23.5] `) }) diff --git a/packages/core/src/actions/deployContract.test.ts b/packages/core/src/actions/deployContract.test.ts index 0ccb9a9713..5c098d74a0 100644 --- a/packages/core/src/actions/deployContract.test.ts +++ b/packages/core/src/actions/deployContract.test.ts @@ -60,7 +60,7 @@ test('behavior: no funds', async () => { data: 0x608060405260405180602001604052806000815250600b90805190602001906200002b92919062000484565b506000600f60006101000a81548160ff0219169083151502179055503480156200005457600080fd5b50604051620046d0380380620046d0833981810160405260808110156200007a57600080fd5b81019080805160405193929190846401000000008211156200009b57600080fd5b83820191506020820185811115620000b257600080fd5b8251866001820283011164010000000082111715620000d057600080fd5b8083526020830192505050908051906020019080838360005b8381101562000106578082015181840152602081019050620000e9565b50505050905090810190601f168015620001345780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200015857600080fd5b838201915060208201858111156200016f57600080fd5b82518660018202830111640100000000821117156200018d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620001c3578082015181840152602081019050620001a6565b50505050905090810190601f168015620001f15780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190805190602001909291905050508383620002296301ffc9a760e01b6200037360201b60201c565b81600690805190602001906200024192919062000484565b5080600790805190602001906200025a92919062000484565b50620002736380ac58cd60e01b6200037360201b60201c565b6200028b635b5e139f60e01b6200037360201b60201c565b620002a363780e9d6360e01b6200037360201b60201c565b50506000620002b76200047c60201b60201c565b905080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600e81905550620bdd808101601081905550505050506200052a565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141562000410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004c757805160ff1916838001178555620004f8565b82800160010185558215620004f8579182015b82811115620004f7578251825591602001919060010190620004da565b5b5090506200050791906200050b565b5090565b5b80821115620005265760008160009055506001016200050c565b5090565b614196806200053a6000396000f3fe60806040526004361061021a5760003560e01c80636c0360eb11610123578063b0f67427116100ab578063e36d64981161006f578063e36d649814610ddf578063e985e9c514610e0a578063e986655014610e91578063eb8d244414610ea8578063f2fde38b14610ed55761021a565b8063b0f6742714610bac578063b88d4fde14610bc3578063bb8a16bd14610cd5578063c87b56dd14610d00578063cb774d4714610db45761021a565b80637d17fcbe116100f25780637d17fcbe14610a395780638da5cb5b14610a5057806395d89b4114610a91578063a22cb46514610b21578063a723533e14610b7e5761021a565b80636c0360eb1461090257806370a0823114610992578063715018a6146109f75780637a3f451e14610a0e5761021a565b80632f745c59116101a65780634f6ccce7116101755780634f6ccce7146106cb57806355f804b31461071a578063571dff3b146107e2578063607e20e31461080d5780636352211e1461089d5761021a565b80632f745c59146105b357806334918dfd146106225780633ccfd60b1461063957806342842e0e146106505761021a565b8063095ea7b3116101ed578063095ea7b3146103bf578063109695231461041a57806318160ddd146104e257806318e20a381461050d57806323b872dd146105385761021a565b8063018a2c371461021f57806301ffc9a71461025a57806306fdde03146102ca578063081812fc1461035a575b600080fd5b34801561022b57600080fd5b506102586004803603602081101561024257600080fd5b8101908080359060200190929190505050610f26565b005b34801561026657600080fd5b506102b26004803603602081101561027d57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610fdf565b60405180821515815260200191505060405180910390f35b3480156102d657600080fd5b506102df611046565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561031f578082015181840152602081019050610304565b50505050905090810190601f16801561034c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036657600080fd5b506103936004803603602081101561037d57600080fd5b81019080803590602001909291905050506110e8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103cb57600080fd5b50610418600480360360408110156103e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611183565b005b34801561042657600080fd5b506104e06004803603602081101561043d57600080fd5b810190808035906020019064010000000081111561045a57600080fd5b82018360208201111561046c57600080fd5b8035906020019184600183028401116401000000008311171561048e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506112c7565b005b3480156104ee57600080fd5b506104f7611390565b6040518082815260200191505060405180910390f35b34801561051957600080fd5b506105226113a1565b6040518082815260200191505060405180910390f35b34801561054457600080fd5b506105b16004803603606081101561055b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113a7565b005b3480156105bf57600080fd5b5061060c600480360360408110156105d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061141d565b6040518082815260200191505060405180910390f35b34801561062e57600080fd5b50610637611478565b005b34801561064557600080fd5b5061064e611553565b005b34801561065c57600080fd5b506106c96004803603606081101561067357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611651565b005b3480156106d757600080fd5b50610704600480360360208110156106ee57600080fd5b8101908080359060200190929190505050611671565b6040518082815260200191505060405180910390f35b34801561072657600080fd5b506107e06004803603602081101561073d57600080fd5b810190808035906020019064010000000081111561075a57600080fd5b82018360208201111561076c57600080fd5b8035906020019184600183028401116401000000008311171561078e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611694565b005b3480156107ee57600080fd5b506107f761174f565b6040518082815260200191505060405180910390f35b34801561081957600080fd5b50610822611754565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610862578082015181840152602081019050610847565b50505050905090810190601f16801561088f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108a957600080fd5b506108d6600480360360208110156108c057600080fd5b81019080803590602001909291905050506117f2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561090e57600080fd5b50610917611829565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561095757808201518184015260208101905061093c565b50505050905090810190601f1680156109845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561099e57600080fd5b506109e1600480360360208110156109b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118cb565b6040518082815260200191505060405180910390f35b348015610a0357600080fd5b50610a0c6119a0565b005b348015610a1a57600080fd5b50610a23611b10565b6040518082815260200191505060405180910390f35b348015610a4557600080fd5b50610a4e611b1c565b005b348015610a5c57600080fd5b50610a65611c4c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a9d57600080fd5b50610aa6611c76565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ae6578082015181840152602081019050610acb565b50505050905090810190601f168015610b135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610b2d57600080fd5b50610b7c60048036036040811015610b4457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611d18565b005b610baa60048036036020811015610b9457600080fd5b8101908080359060200190929190505050611ece565b005b348015610bb857600080fd5b50610bc1612127565b005b348015610bcf57600080fd5b50610cd360048036036080811015610be657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610c4d57600080fd5b820183602082011115610c5f57600080fd5b80359060200191846001830284011164010000000083111715610c8157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061220b565b005b348015610ce157600080fd5b50610cea612283565b6040518082815260200191505060405180910390f35b348015610d0c57600080fd5b50610d3960048036036020811015610d2357600080fd5b8101908080359060200190929190505050612289565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d79578082015181840152602081019050610d5e565b50505050905090810190601f168015610da65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610dc057600080fd5b50610dc961255a565b6040518082815260200191505060405180910390f35b348015610deb57600080fd5b50610df4612560565b6040518082815260200191505060405180910390f35b348015610e1657600080fd5b50610e7960048036036040811015610e2d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612566565b60405180821515815260200191505060405180910390f35b348015610e9d57600080fd5b50610ea66125fa565b005b348015610eb457600080fd5b50610ebd612764565b60405180821515815260200191505060405180910390f35b348015610ee157600080fd5b50610f2460048036036020811015610ef857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612777565b005b610f2e61296c565b73ffffffffffffffffffffffffffffffffffffffff16610f4c611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614610fd5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060108190555050565b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110de5780601f106110b3576101008083540402835291602001916110de565b820191906000526020600020905b8154815290600101906020018083116110c157829003601f168201915b5050505050905090565b60006110f382612974565b611148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061408b602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061118e826117f2565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611215576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061410f6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661123461296c565b73ffffffffffffffffffffffffffffffffffffffff16148061126357506112628161125d61296c565b612566565b5b6112b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180613f956038913960400191505060405180910390fd5b6112c28383612991565b505050565b6112cf61296c565b73ffffffffffffffffffffffffffffffffffffffff166112ed611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614611376576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600b908051906020019061138c929190613de6565b5050565b600061139c6002612a4a565b905090565b60105481565b6113b86113b261296c565b82612a5f565b61140d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806141306031913960400191505060405180910390fd5b611418838383612b53565b505050565b600061147082600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612d9690919063ffffffff16565b905092915050565b61148061296c565b73ffffffffffffffffffffffffffffffffffffffff1661149e611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614611527576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600f60009054906101000a900460ff1615600f60006101000a81548160ff021916908315150217905550565b61155b61296c565b73ffffffffffffffffffffffffffffffffffffffff16611579611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614611602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561164d573d6000803e3d6000fd5b5050565b61166c8383836040518060200160405280600081525061220b565b505050565b600080611688836002612db090919063ffffffff16565b50905080915050919050565b61169c61296c565b73ffffffffffffffffffffffffffffffffffffffff166116ba611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614611743576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61174c81612ddc565b50565b601481565b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117ea5780601f106117bf576101008083540402835291602001916117ea565b820191906000526020600020905b8154815290600101906020018083116117cd57829003601f168201915b505050505081565b600061182282604051806060016040528060298152602001613ff7602991396002612df69092919063ffffffff16565b9050919050565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118c15780601f10611896576101008083540402835291602001916118c1565b820191906000526020600020905b8154815290600101906020018083116118a457829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613fcd602a913960400191505060405180910390fd5b611999600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612e15565b9050919050565b6119a861296c565b73ffffffffffffffffffffffffffffffffffffffff166119c6611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614611a4f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b67011c37937e08000081565b611b2461296c565b73ffffffffffffffffffffffffffffffffffffffff16611b42611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614611bcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600d5414611c43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f5374617274696e6720696e64657820697320616c72656164792073657400000081525060200191505060405180910390fd5b43600c81905550565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d0e5780601f10611ce357610100808354040283529160200191611d0e565b820191906000526020600020905b815481529060010190602001808311611cf157829003601f168201915b5050505050905090565b611d2061296c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b8060056000611dce61296c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611e7b61296c565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600f60009054906101000a900460ff16611f50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f53616c65206d7573742062652061637469766520746f206d696e74204170650081525060200191505060405180910390fd5b6014811115611faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613f746021913960400191505060405180910390fd5b600e54611fc782611fb9611390565b612e2a90919063ffffffff16565b111561201e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806140426028913960400191505060405180910390fd5b3461203a8267011c37937e080000612eb290919063ffffffff16565b11156120ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45746865722076616c75652073656e74206973206e6f7420636f72726563740081525060200191505060405180910390fd5b60005b818110156120ef5760006120c3611390565b9050600e546120d0611390565b10156120e1576120e03382612f38565b5b5080806001019150506120b1565b506000600c541480156121175750600e54612108611390565b148061211657506010544210155b5b156121245743600c819055505b50565b61212f61296c565b73ffffffffffffffffffffffffffffffffffffffff1661214d611c4c565b73ffffffffffffffffffffffffffffffffffffffff16146121d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006121e0611390565b905060005b601e811015612207576121fa33828401612f38565b80806001019150506121e5565b5050565b61221c61221661296c565b83612a5f565b612271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806141306031913960400191505060405180910390fd5b61227d84848484612f56565b50505050565b600e5481565b606061229482612974565b6122e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806140e0602f913960400191505060405180910390fd5b6060600860008481526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123925780601f1061236757610100808354040283529160200191612392565b820191906000526020600020905b81548152906001019060200180831161237557829003601f168201915b5050505050905060606123a3611829565b90506000815114156123b9578192505050612555565b60008251111561248a5780826040516020018083805190602001908083835b602083106123fb57805182526020820191506020810190506020830392506123d8565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831061244c5780518252602082019150602081019050602083039250612429565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050612555565b8061249485612fc8565b6040516020018083805190602001908083835b602083106124ca57805182526020820191506020810190506020830392506124a7565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831061251b57805182526020820191506020810190506020830392506124f8565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050505b919050565b600d5481565b600c5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000600d5414612672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f5374617274696e6720696e64657820697320616c72656164792073657400000081525060200191505060405180910390fd5b6000600c5414156126eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5374617274696e6720696e64657820626c6f636b206d7573742062652073657481525060200191505060405180910390fd5b600e54600c544060001c816126fc57fe5b06600d8190555060ff61271a600c544361310f90919063ffffffff16565b111561273a57600e54600143034060001c8161273257fe5b06600d819055505b6000600d5414156127625761275b6001600d54612e2a90919063ffffffff16565b600d819055505b565b600f60009054906101000a900460ff1681565b61277f61296c565b73ffffffffffffffffffffffffffffffffffffffff1661279d611c4c565b73ffffffffffffffffffffffffffffffffffffffff1614612826576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128ac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613ed86026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600061298a82600261319290919063ffffffff16565b9050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16612a04836117f2565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000612a58826000016131ac565b9050919050565b6000612a6a82612974565b612abf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613f48602c913960400191505060405180910390fd5b6000612aca836117f2565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612b3957508373ffffffffffffffffffffffffffffffffffffffff16612b21846110e8565b73ffffffffffffffffffffffffffffffffffffffff16145b80612b4a5750612b498185612566565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612b73826117f2565b73ffffffffffffffffffffffffffffffffffffffff1614612bdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806140b76029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613efe6024913960400191505060405180910390fd5b612c708383836131bd565b612c7b600082612991565b612ccc81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206131c290919063ffffffff16565b50612d1e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206131dc90919063ffffffff16565b50612d35818360026131f69092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000612da5836000018361322b565b60001c905092915050565b600080600080612dc386600001866132ae565b915091508160001c8160001c9350935050509250929050565b8060099080519060200190612df2929190613de6565b5050565b6000612e09846000018460001b84613347565b60001c90509392505050565b6000612e238260000161343d565b9050919050565b600080828401905083811015612ea8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415612ec55760009050612f32565b6000828402905082848281612ed657fe5b0414612f2d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061406a6021913960400191505060405180910390fd5b809150505b92915050565b612f5282826040518060200160405280600081525061344e565b5050565b612f61848484612b53565b612f6d848484846134bf565b612fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180613ea66032913960400191505060405180910390fd5b50505050565b60606000821415613010576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061310a565b600082905060005b6000821461303a578080600101915050600a828161303257fe5b049150613018565b60608167ffffffffffffffff8111801561305357600080fd5b506040519080825280601f01601f1916602001820160405280156130865781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461310257600a84816130a757fe5b0660300160f81b828280600190039350815181106130c157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84816130fa57fe5b049350613095565b819450505050505b919050565b600082821115613187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b60006131a4836000018360001b6136d8565b905092915050565b600081600001805490509050919050565b505050565b60006131d4836000018360001b6136fb565b905092915050565b60006131ee836000018360001b6137e3565b905092915050565b6000613222846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b613853565b90509392505050565b60008183600001805490501161328c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613e846022913960400191505060405180910390fd5b82600001828154811061329b57fe5b9060005260206000200154905092915050565b60008082846000018054905011613310576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806140206022913960400191505060405180910390fd5b600084600001848154811061332157fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b6000808460010160008581526020019081526020016000205490506000811415839061340e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156133d35780820151818401526020810190506133b8565b50505050905090810190601f1680156134005780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061342157fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b613458838361392f565b61346560008484846134bf565b6134ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180613ea66032913960400191505060405180910390fd5b505050565b60006134e08473ffffffffffffffffffffffffffffffffffffffff16613b23565b6134ed57600190506136d0565b606061365763150b7a0260e01b61350261296c565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561358657808201518184015260208101905061356b565b50505050905090810190601f1680156135b35780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001613ea6603291398773ffffffffffffffffffffffffffffffffffffffff16613b369092919063ffffffff16565b9050600081806020019051602081101561367057600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b600080836001016000848152602001908152602001600020549050600081146137d7576000600182039050600060018660000180549050039050600086600001828154811061374657fe5b906000526020600020015490508087600001848154811061376357fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061379b57fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506137dd565b60009150505b92915050565b60006137ef8383613b4e565b61384857826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905061384d565b600090505b92915050565b60008084600101600085815260200190815260200160002054905060008114156138fa57846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050613928565b8285600001600183038154811061390d57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156139d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b6139db81612974565b15613a4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b613a5a600083836131bd565b613aab81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206131dc90919063ffffffff16565b50613ac2818360026131f69092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b6060613b458484600085613b71565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b606082471015613bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613f226026913960400191505060405180910390fd5b613bd585613b23565b613c47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310613c975780518252602082019150602081019050602083039250613c74565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613cf9576040519150601f19603f3d011682016040523d82523d6000602084013e613cfe565b606091505b5091509150613d0e828286613d1a565b92505050949350505050565b60608315613d2a57829050613ddf565b600083511115613d3d5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613da4578082015181840152602081019050613d89565b50505050905090810190601f168015613dd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e2757805160ff1916838001178555613e55565b82800160010185558215613e55579182015b82811115613e54578251825591602001919060010190613e39565b5b509050613e629190613e66565b5090565b5b80821115613e7f576000816000905550600101613e67565b509056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e43616e206f6e6c79206d696e7420323020746f6b656e7320617420612074696d654552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473507572636861736520776f756c6420657863656564206d617820737570706c79206f662041706573536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a2646970667358221220b0e64d1fa6c4dbeb9c6f54607d7e1996943fe27624a80652f57b53fda084621b64736f6c63430007000033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000006080e6d70000000000000000000000000000000000000000000000000000000000000011426f7265644170655961636874436c756200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044241594300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000010f2c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014426f72656420417065205761676d6920436c756200000000000000000000000000000000000000000000000000000000000000000000000000000000000000044241594300000000000000000000000000000000000000000000000000000000 Details: Insufficient funds for gas * price + value - Version: 2.21.28] + Version: viem@2.23.5] `) await disconnect(config, { connector }) diff --git a/packages/core/src/actions/getConnectorClient.ts b/packages/core/src/actions/getConnectorClient.ts index 21751c94c6..534ba76bc6 100644 --- a/packages/core/src/actions/getConnectorClient.ts +++ b/packages/core/src/actions/getConnectorClient.ts @@ -33,7 +33,16 @@ export type GetConnectorClientParameters< > = Compute< ChainIdParameter & ConnectorParameter & { - account?: Address | Account | undefined + /** + * Account to use for the client. + * + * - `Account | Address`: An Account MUST exist on the connector. + * - `null`: Account MAY NOT exist on the connector. This is useful for + * actions that can infer the account from the connector (e.g. sending a + * call without a connected account – the user will be prompted to select + * an account within the wallet). + */ + account?: Address | Account | null | undefined } > @@ -78,7 +87,10 @@ export async function getConnectorClient< throw new ConnectorUnavailableReconnectingError({ connector }) const [accounts, chainId] = await Promise.all([ - connector.getAccounts(), + connector.getAccounts().catch((e) => { + if (parameters.account === null) return [] + throw e + }), connector.getChainId(), ]) connection = { @@ -107,7 +119,7 @@ export async function getConnectorClient< // Default using `custom` transport const account = parseAccount(parameters.account ?? connection.accounts[0]!) - account.address = getAddress(account.address) // TODO: Checksum address as part of `parseAccount`? + if (account) account.address = getAddress(account.address) // TODO: Checksum address as part of `parseAccount`? // If account was provided, check that it exists on the connector if ( diff --git a/packages/core/src/actions/getProof.test.ts b/packages/core/src/actions/getProof.test.ts index c87d795ad3..5ff0af2828 100644 --- a/packages/core/src/actions/getProof.test.ts +++ b/packages/core/src/actions/getProof.test.ts @@ -8,40 +8,9 @@ test('default', async () => { getProof(config, { chainId: chain.optimism.id, address: '0x4200000000000000000000000000000000000016', - blockNumber: 114571816n, storageKeys: [ '0x4a932049252365b3eedbc5190e18949f2ec11f39d3bef2d259764799a1b27d99', ], }), - ).resolves.toMatchInlineSnapshot(` - { - "accountProof": [ - "0xf90211a0aec097ff0b163846d6e5b768e46967582314d1caffabf2c16e9a423f7fcb8d3da05ad1d8f6f710b2c2dda3e725aa42a302157f83ffc7c69b9621bbb5bfefe62b17a0cb0037627302e2dc2075045ec10faafde69a80a1edf5d1ef78d224f3ed6994f0a09c5c44b45038b3ddcfe5628a649540688c8b31b689fc5ec2b14c917a093d1d85a04216666d8676bdf0e63fb908af9c4cfb080124f3e6afc8da715b574b93efd279a01eef3f90a8f9d0b90c22d42701b448b06d436c11f6305706c11f2253bd94f4eea0c257cfb0dced08d41e93741c225f65789bc54c02a7c3241cf9fd8fbc9142d1d0a045be5b8d25c71cbe5dacf30948475f4221fa43a0e45ebec27767ef0ec293af31a0f9cde1e9de76de09301165ad415109c98cd5268465b028155b5f2f2ee77af69aa01e01dbb3a67d2abc4d70cc4c384227f75e158df95181d21eea773942150dfa44a0a3d2a0647e6fa349417e8444aaa7eda7b1d444e8b8712891e87e7341ebd194d2a0800eba98063f7443733ca61c6f355b5175963fb36472aa15b3af9a653c5b457da0da5e2077053eedeb2ef8a9a9fa9e6ce3d5c063dc24b0f316eeef107f4e2114c9a036d924530d45f263afa48d5298bc568db875800b5272aedd0426a395b3fcd230a0b8bdc3049c6c862dec595a8c7a594e3593a42654826326593f411788b39d1212a0d819ac3bd17dba51e5a1493c91b5025c8bc661e00f6f002844180df4a43a4c8480", - "0xf90211a0b805b7a7bbc7029720574299f3b97236cd6f0bbb0b8ac2cfbf62718902a1432ea02b9862a6d568ae0f13edd27d4a1750e2a5b02679bdf8e5a8814db29ccfe39d3fa0a4bc082ad30d148b1a0797ad5c9f2d88f9a54f11e32974ae6eff3f4dec3566fba01b6e2891a8b73b7881c9b54d6ec3daf58128b4c47f72d051539676242d811e98a0d18f27e0419e2307f68c42be3b79f055a8a3db124d9c7e92cb25393cd1653784a0ff41d00710630c688c6ed133fa9df498890f1c240b0152b4dea8a57265c1ea2fa0aa4fdca61bd19df46a6e331e987084ebbc42abea26f1eeb64c4ca8dff065cbf4a0e620bae2104b1d201921ce06deb45a15c3af1b68d418957377dae72c67e6f585a0abf8366c18ef551f7c7cb8d7b4595e2e0ac661731fde452ed7f7f621a1f7bf63a0cb5b92eea1df1154704aca1ba670cf1feaebbc7e87d68113b026d28547bfcaa1a012a0dac634c209e866fb8ce640b1475a479369f38083e22314ec189962874d62a04c32234d31e689a4cd6b232ade9516f0117397bd5649d8034eba104d64ae003ca0a984a935c5414a1f6365a15f7a622d2f4c884ef738dd1813cf61606a171b7b45a01045ee2ba29a053e1d758e51ba75cad09feb3f6eaadf4f963354c814da9fe9b2a09b14eb84c54058ae92686987895b655a86275a50f83ef7fa3bc49d2aba77e11fa040486c01b404d6913fabd5a8b4d317efe4b71027c9d0df7b4a573027a5f9655b80", - "0xf90211a075d7b5a418239d733522dda7e064025f1239c404d71cefc80617597367b69e6ea00446f917d2cb1f173006a194b8008ffc6fabe80ed56d95bbe06aafe607a8371aa051f66d63226e926a653793951ca7d4a72f6888179132acae9e216cde54685e2da09a308e2c241396a17dfeaab1212f792a687a06abbc9fa22b8e83eccdc7c29349a01097a598bd8f93802bea714ddcdda520377a39d591463f6f5c6a2e545a2dc494a0ea7dff5fd2f496b6d4aa717e3dc57285c84d4410a5eb32962c8bccb537bd1836a0c65e0d0aa6425511926b3d716f06e7f552997c42a147038b0551830d1e7e473ba052cfbed72b35f842e97bc0371eb3e0de000bc2f97dc7c992fd8493ac5f64e341a02e055c597f0bd91a8884a280c2137657bfa518fa203b1daaf1215d61737e9f4aa09d4f4ab8eed159ff1dc4ccd532c78196108283ef2d2c93069e1dc7724fb2d826a024ef34e3fdea9f1a90ce8dedcb0a8449faa76517cc1c8b8ed7dfaee3bd32f81ca08ccafb12a0d8747e5a3a1d199539d6ca3b21e692ba7dd01c56528628e1ef3bc4a0f0dfb135f051e51faa4df4216dd7515463ddf35875285765fd9fc3604a03ea62a0509cf646a93abb590385cc9893f2b98de9458212ae7926c2a7138e36721e4763a0026d889911b1358c5db61a7341efc4766ec5d150c4c4ef1a3c7f9c8091c686a5a0cf93e413246488f8a42fc036f10763229d00ddcdef75b8f9ed2036dcd948ad5d80", - "0xf90211a03834b437dc1465b508a85ccd269ad873c69a7ed6796b665dae14dc207d432323a0402b7af438fa32fa1f59f335a350962f2f318e795c8899cd513541cad586c2cfa0fd381a630c104c79bbefe8a6a8f15f11d1573e73e3ec5ff3a7f52f97711b7d55a06c5952b899892f03161904217ea153321cc1d393c6164bfe89cc1a6e429b601ea07b795feeedc38eb14388bd79792d88b37fcd90a4d7a6a84fa1b8ad554f96075ba058a823957e1d2d33fe10d74becb6148829601029b0910280e7c4994482888f7ca00ab9f9c93fd408830dd344e81656433c4b2968b381c3a9af383f2b29a330a7d5a0be904c1f06d73f530927ac333dba9e57f14bb1bca7872fb73bad8815e94bf2b5a067f1dedae32d194f030fadc371cc0c8aa1d334e221752de96d7a3542b53db6bea084f036e3e5a267397c395627bde374b9cdf64a4b6c127d639787e3f2e0131f37a0578085fa54172c1e67b83a3bba32deeaf0b0a0a6aac6f2d7d4fd30527f89b324a097a2d41543cf7a6c3ad57ef560da5d3b9b2956297410bad25b5709f3e3e93a23a0bc42dc3a63bc7c914e8cfc58eb5b50f13932d28aff5b9e0cb41cf3bea42ca6afa0e7066d76bbfc5ced56def91150490892b62a08191bd19f59a2dd83fc28057067a0a9ceec139e1630098932aea819fb07d4de7af01be02f9663785ed5f755ab18fea0ea7d4e5c6c2577d4b660d7f592759a9a1e6f98602603018ecb1fcb4a50326cb880", - "0xf90211a03729ba493659e3703943576362e6452dba2df3e214c679d9d8f48f94dd84e9b4a035f68c6818ba438b6211158eba8c7992693d1a1b2c6189733873fb56a2840bc7a0d1431170f049e8fec428211a3c78963c9fa730cd8f97fa2ca62217f6a862cbfea037f7add832ba16a341ab2d3aa2deb1877e45f6815db97360441d02b5e3836859a0648a97f53652f28c2a032d171df0df9c8e000e56512949548212b30544be66d4a0bdb751793ec40618c0bbb7fb6488e70eda743e1fcfc31cc1bb4aea9f965c8b35a0f0a867a5c5b1d3fd7968ee809ee676f9582242d91299ecd2ea5150e1d6caa361a0110db586878cbee5c7db8a8fdbdda189c16cad7cc424aa9c9db7b2a2a2a96e97a0e2628f4e74eddbdf55e4670ed9360fe5600559d29c885048b5a58862de55c88aa03f315f378d19b1fca09434123d5e88d7aa242eabd7544a66034ae5cfacb90634a0b35ae967d8100626510ef78b70dad84a55d5699e97890230ca33dee057105e54a05aab0c8a7218d46a45b13134b523927937a336929e73a87bbd3bb8dad8b4650ba0bfb907aa47cac9243aea8e34cb539686157ed5603467d284f28ad3b1215c54a0a029b3627c90d0678ddb46f0fbe658be1ef97cbe948a14d16e209e34affc437a45a032c71ce3c49db9466dc877aeecf5e6e0708276a671028b561c5943b08d970939a0db4e356ee957b09ccd1db62833111a7b0c7dc0f8db31e770ccb0b9cce815a65980", - "0xf90211a00199ebec052ed22ec0f7f3baadbf4559fc63f7b6ed4afceb12e77f4cd107f552a0b1260838ef4a96865c4105de409b570c9c7e1f232aa0528d47170826608b39bfa0ab3b6b9417f136f7b858500120393d56db48462b5f73575b828270007474c3c8a0adaaea49c8f4466508fdfe29c973dad5c6592e7ff40bd02936ee03e7f38878afa047b275e895b55bb486b443d58a78623a05a84a5404257085004213e25c0b0e37a0f855c06b679d3bf5aa56efbca1e05d78f7cca5a06631afd8b31630df69c86d7ea08c24490e9ae16703569edce216efe8c87ade650838f4c9e5113e6caf42015426a0881d7e4280f550ffbffd31824cf0e3e1b4dbd63804e51f353538005a30fc0877a0359099ca55fe012b1ddea17601858c0ce86a35d9b77e0ab174663fadd196a184a0ef822991cc9807764f76797868f5873ecf89ef9947d02476cf6b80396a51bce8a04778e1764db94bbf19e8d755984934b31f9bc064f898dd27e170867b0eac823ca09379eaf8b3c2657fb540017d486e96534126c04a055fe6f8c9114a9a38566c06a00470dc7697991a3eeeb7aed5cd5212034525c9b3528c4e8245d23b27ec771f9ba028974e7be411113dba8d00f8b958eb06e1c957f82f2225ae44d5e6e81106672ba0df616fb6078a75efb74089ddc02226b9ef55311a3f402c7860e40f77bf59a8d6a0ddd81505aafeee3d17a112a8f7d1606a6ff981c10413324c8dd739c0cd69616f80", - "0xf8d180a0d5b2c83c7cc15a06046240474cc04a5db122c9ff8d82de8d61c524745afbf07680a014122b1b68146a56a29ee76cebed16482c59c969e6be8b7a5a6955679e781df280a0c1d58006c474a8d0d4e6daaa915d29aa1bfe9f9b2e363e791163c48c7c93615880a072b769a2cf7fe7e626fb030a21cfea696b941029e65b0faefae6531c86334e9e80a0342d2f17569764b28d61ab5102510f2d8ed939e0d72364ae01408e47a14544d280a0bde4e80a8b068e227830b7508abf475868969120bf5c55d06d0208d9619fcd728080808080", - "0xf8709d30147f4cc0e0156d993334777d699c312c2fe454f8b3fa338ed309f4a0b850f84e048a0fb5ee5ed06fd56c7c0fa0149d15d1300498bff4bfceb56dc005e70c54241eea0a5a7058c62ec345bf505ba01f958654ab06a152993e7a0ae7b6dbb0d4b19265cc9337b8789fe1353bd9dc35", - ], - "address": "0x4200000000000000000000000000000000000016", - "balance": 74191534315593685302287n, - "codeHash": "0x1f958654ab06a152993e7a0ae7b6dbb0d4b19265cc9337b8789fe1353bd9dc35", - "nonce": 4, - "storageHash": "0x149d15d1300498bff4bfceb56dc005e70c54241eea0a5a7058c62ec345bf505b", - "storageProof": [ - { - "key": "0x4a932049252365b3eedbc5190e18949f2ec11f39d3bef2d259764799a1b27d99", - "proof": [ - "0xf90211a082fc9029ea5c161f91c01fa183cef98be25957c6164c110a252e4b8b6b334b15a064cb07fb0bec48bf53bac5077716ab7bb59ebc01c608bfba0da28d44501d79a7a0a0c5ef49c5d553fa66b51f51295d5f28fba0a5555822d7012c1daebe4bb57417a0082a52cc3fbe21f63aceebc88d8a9e365888e486b90feb465f58fd0e263ab2a2a05be6b594e391fe3c73c066f7a1f10d4bac03c1a0766775cd4400a2cc025f6990a03def6b5c9833c22543c44950ada488e3bd7fb01ec696a4e476a479cdec802cfba0e10829d63ea34e89b5ceb433686378dbc11b5aefe122c7f8a28804fed8b76ca5a07313dc662f421586094f4b83d31aa743c9157dd1596b27e64f7040e2d0d90f1ea08dc1dcb08f1918a1fae1520a1f8ab33641de2c93b16495824ca50311bebf1e1aa0dd6bd1211e2fbcff725db48da6e68317a7121615065747801e3bee54e73b9b49a0b7e7dae52bb6d6fded480d0b087334603ac5dbc224da7c48882fbed98136da36a0a88d97b0bda3cbff682d9e36bfd403a976e12addddf3695d69bc7993d8d56448a0e041640af48ec21b4010a38690af8c9e65966bc3ca0aa71a7dc0775f64692aefa09e8c04289de47e1d905322ed50051cf1d8e0af98ca32f4ba32d8f0fcaa042570a0f9df510aad677a4c31c99a339faadb5bf2e6dd68fbc35e1a7cb55721f915c029a0413484ecb5adfc44f7ce43a8e35da709060709ba270be02e8089cdff7c386eb880", - "0xf90211a07a2e200a8f16e47dcb91d71a374bca1effd36b306aa944c3329ca78d5a40d4efa074172fb34e3c981ce51c2f0d4b13efb14ac5a5a55c7047b6b568f8a358a85d66a0e39dd251e0e88ce17ad5b94e74fecc3c884fa00d5581e28357dff24aafd21c45a0f093fa90b2772ae0cb96c742af3002c01821ddece546d96c60fac37e25a131caa064fd388011e6a3db2e4e069e112abcaa261e1a5c8f330b2fdf0b6a79ac6a67fea04e7ac3ceace081892ccf722c7075ae14471f213bf6b59cc7130476653a1d04bea012f91703aed54e6853294a560305aa7cc91c9c4fdd6e3a38d7d0ded2ff885305a0af76fe6e44f3933e3d089adfccdcecc424f3b1fed6f78b4578ab637d5bc37bfaa0c55e93899edd98059ef73ccd3bf494443e3920b14cc39bdeec53dce324de9b47a097dfe8a1ab57520fba75a3d0e4f262da1c02c32ee5e3e0914f37811dc7bc2e1da021f69e5e122ca6a80706509a807abf55eb61fe3cd9494357809aef507527cf00a0b9360d3affb06287b1ea34e05e73ff8c54c9474a5bbc25a0faf7911ed68ffcb1a082692b8ddba185029f3a4b7a6e1603522fa1681ec6e5d57898acc88f2a97cf62a0e5f37e8935f9afd5d5cf57d0b77699e12f03e83f692b6e68396ef7df409a099da0eff23323d9dbc46566310cf79bb330e03c5cfcb14f2dca6817376a25fed4e591a0d644c69038d00f36a57ba40f7d4f92b8bcb7b4d7f6c99be2fac989825d269e9680", - "0xf90211a02256a3dcab8a3656cfa906d0c3383987accb52b37d42436f2779b5e28a2e781ea00a1a86acaf1aafcad70bf8a462b3812d3d9d8dd04ec50a8d49db6eeb787538e1a02f728ef08fa473d3ee26f48cbbe025ff49c8efb7278b6a41392001b6a336ed9ea0a337a197c7beca40a182ee5e8a3ce5ecec54c9eca93161824bc8c8682c41b1d4a042bfe6c9c83b7829f827998a2f3c3556d3936adbe363b61e01f87d2553d3a4b2a05a9e6a84f98b98ac6d7ab19e649aee2cb37f7275055f9b6c25f0e8273dd0668ea070d6c892cc4f92b14ff2ad64eb0a0c653471cdaa788e40830363f31fc74ae084a0b155c0c14b5bfc1f832ab7f2de898e0ab90e2f51d9c3a9fefe3b9261b4b94a0ba01ab278c060ce4799fd3032cad51f8871bc2792ab195fbe2e3b18a66ec17a9255a04cf1677370cfd1113d7292c7642516c505931734ebee7ecfaf9cea60ae674044a0147032733387b67d84c2dd87f2dd68c7761cd3e505ec0703da30ac9a843f387aa0d7838721a1bb502a0dd278cc2b323358b35f49253e7b0a6fa7e1ea7943d0e3a1a018cc53f6f51671a7f984788cec8a3c80d3e1fc49d1bf6e255245f82ff3df6365a0218f211dd9cb46783d740eb0ac46cc1630f5f3e99d9c18006535fb94decee74ba0db499ee27ab3c1530244308ef91e7fa40cb5261609cb37857bdc4cefea434f81a050a2f6f0e7f10b9f957a566e2fd4641d6fee7277eef6ad4d4955c8a1d0f43dd480", - "0xf901b1a0afda91b7b1dfce2e5442b5b727498d66c631f5d3e619c1123266796396c7b3aaa06b8822be2629b7e5b281e8e5d4770838b373e91cae52019e715e1135a491dd1ca0e0e75a7bf2358956ae0d320fccfe76a8379e66f8450c82a47b702bf64604c1f98080a003116e33645e334f221ef3b4724c77733b73382bb686127c9bed3928d1cc3c16a02951521fe4306019363d0b587ea1dec4b2df028364f689cfa57ee1cc4dbf109ca06505871148d8fe4e7c335393f1ecc660d793e686af2385a9acf1a3d9788b7700a085ff044bd791555cc59cfac5ed5c17e1c69959c9e93a82c935bbe7339d7112f1a0dbdad86b6dc440b20ebe6db935738851b7e482ed54f728962d4c6a2af072116ba03148d81cce54eefefd1adc6c457359eeca1892f49ec80e061cf7622d0b0d1c87a0842517cbab04fa095b7e0c6a3d4e61c79ecde20f60d1bb04fc55fe13d02de23a80a02ee52ddf4999ae7bc96c2d0c0afe7c4831263e588a91b716c841b96806bb5edda0d57a51a236d736e25388017b23bd6646e9150dad4ddf27d9024d64815995ebd0a06a60b7eef7476f51fd08686963ec92f5153a28f6a7cab73a8dec06158eff706b80", - ], - "value": 0n, - }, - ], - } - `) + ).resolves.toBeDefined() }) diff --git a/packages/core/src/actions/getToken.test.ts b/packages/core/src/actions/getToken.test.ts index 8997c56894..4742aeaaab 100644 --- a/packages/core/src/actions/getToken.test.ts +++ b/packages/core/src/actions/getToken.test.ts @@ -79,6 +79,6 @@ test('behavior: bogus token', async () => { function: decimals() Docs: https://viem.sh/docs/contract/multicall - Version: 2.21.28] + Version: viem@2.23.5] `) }) diff --git a/packages/core/src/actions/readContracts.test.ts b/packages/core/src/actions/readContracts.test.ts index 6e609c44a1..1ecabee388 100644 --- a/packages/core/src/actions/readContracts.test.ts +++ b/packages/core/src/actions/readContracts.test.ts @@ -397,7 +397,7 @@ test('throws if allowFailure=false & a contract method fails', async () => { args: (0xA0Cf798816D4b9b9866b5330EEa46a18382f251e, 69420) Docs: https://viem.sh/docs/contract/readContract - Version: 2.21.28] + Version: viem@2.23.5] `, ) }) @@ -450,7 +450,7 @@ test('allowFailure=true & a contract method fails', async () => { args: (0xA0Cf798816D4b9b9866b5330EEa46a18382f251e, 69420) Docs: https://viem.sh/docs/contract/readContract - Version: 2.21.28], + Version: viem@2.23.5], "result": undefined, "status": "failure", }, @@ -464,7 +464,7 @@ test('allowFailure=true & a contract method fails', async () => { args: (0xA0Cf798816D4b9b9866b5330EEa46a18382f251e, 69421) Docs: https://viem.sh/docs/contract/readContract - Version: 2.21.28], + Version: viem@2.23.5], "result": undefined, "status": "failure", }, @@ -502,7 +502,7 @@ test('throws if allowFailure=false & encoding contract function data fails', asy args: (1e+31) Docs: https://viem.sh/docs/contract/readContract - Version: 2.21.28] + Version: viem@2.23.5] `, ) }) @@ -561,7 +561,7 @@ test('allowFailure=true & encoding contract function data fails', async () => { args: (1e+31) Docs: https://viem.sh/docs/contract/readContract - Version: 2.21.28], + Version: viem@2.23.5], "result": undefined, "status": "failure", }, @@ -579,7 +579,7 @@ test('allowFailure=true & encoding contract function data fails', async () => { args: (1e+31) Docs: https://viem.sh/docs/contract/readContract - Version: 2.21.28], + Version: viem@2.23.5], "result": undefined, "status": "failure", }, @@ -617,7 +617,7 @@ test('should throw if allowFailure=false & a contract has no response', async () args: (0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC) Docs: https://viem.sh/docs/contract/readContract - Version: 2.21.28] + Version: viem@2.23.5] `, ) }) @@ -669,7 +669,7 @@ test('allowFailure=true & a contract has no response', async () => { args: (0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC) Docs: https://viem.sh/docs/contract/readContract - Version: 2.21.28], + Version: viem@2.23.5], "result": undefined, "status": "failure", }, diff --git a/packages/core/src/actions/sendTransaction.test.ts b/packages/core/src/actions/sendTransaction.test.ts index caaba422e2..710691629b 100644 --- a/packages/core/src/actions/sendTransaction.test.ts +++ b/packages/core/src/actions/sendTransaction.test.ts @@ -88,7 +88,7 @@ test('behavior: value exceeds balance', async () => { value: 99999 ETH Details: Insufficient funds for gas * price + value - Version: 2.21.28] + Version: viem@2.23.5] `) await disconnect(config, { connector }) }) diff --git a/packages/core/src/actions/signMessage.test.ts b/packages/core/src/actions/signMessage.test.ts index 89cf26e8fd..1e3e43e69f 100644 --- a/packages/core/src/actions/signMessage.test.ts +++ b/packages/core/src/actions/signMessage.test.ts @@ -51,7 +51,7 @@ test('behavior: user rejected request', async () => { [UserRejectedRequestError: User rejected the request. Details: Failed to sign message. - Version: 2.21.28] + Version: viem@2.23.5] `) await disconnect(config, { connector: connector_ }) }) diff --git a/packages/core/src/actions/signTypedData.test.ts b/packages/core/src/actions/signTypedData.test.ts index fcbf2c50dc..e8c9b0c17e 100644 --- a/packages/core/src/actions/signTypedData.test.ts +++ b/packages/core/src/actions/signTypedData.test.ts @@ -47,7 +47,7 @@ test('behavior: user rejected request', async () => { [UserRejectedRequestError: User rejected the request. Details: Failed to sign typed data. - Version: 2.21.28] + Version: viem@2.23.5] `) await disconnect(config, { connector: connector_ }) }) diff --git a/packages/core/src/actions/switchChain.test.ts b/packages/core/src/actions/switchChain.test.ts index 5ce635e7be..c8036faeb4 100644 --- a/packages/core/src/actions/switchChain.test.ts +++ b/packages/core/src/actions/switchChain.test.ts @@ -43,7 +43,7 @@ test('behavior: user rejected request', async () => { [UserRejectedRequestError: User rejected the request. Details: Failed to switch chain. - Version: 2.21.28] + Version: viem@2.23.5] `) await disconnect(config, { connector: connector_ }) }) diff --git a/packages/core/src/actions/waitForTransactionReceipt.test.ts b/packages/core/src/actions/waitForTransactionReceipt.test.ts index d5a9c79d0c..39e2abc844 100644 --- a/packages/core/src/actions/waitForTransactionReceipt.test.ts +++ b/packages/core/src/actions/waitForTransactionReceipt.test.ts @@ -53,6 +53,6 @@ test('behavior: transaction reverted', async () => { nonce: 43 Details: execution reverted: PartyBid::claim: contribution already claimed - Version: 2.21.28] + Version: viem@2.23.5] `) }) diff --git a/packages/core/src/connectors/mock.test.ts b/packages/core/src/connectors/mock.test.ts index 516d619e64..d312d9bd10 100644 --- a/packages/core/src/connectors/mock.test.ts +++ b/packages/core/src/connectors/mock.test.ts @@ -30,7 +30,7 @@ test('behavior: features.connectError', () => { [UserRejectedRequestError: User rejected the request. Details: Failed to connect. - Version: 2.21.28] + Version: viem@2.23.5] `) }) @@ -58,7 +58,7 @@ test('behavior: connector.getProvider request errors', async () => { [UserRejectedRequestError: User rejected the request. Details: Failed to sign typed data. - Version: 2.21.28] + Version: viem@2.23.5] `) expect( @@ -70,7 +70,7 @@ test('behavior: connector.getProvider request errors', async () => { [UserRejectedRequestError: User rejected the request. Details: Failed to switch chain. - Version: 2.21.28] + Version: viem@2.23.5] `) expect( @@ -82,7 +82,7 @@ test('behavior: connector.getProvider request errors', async () => { [UserRejectedRequestError: User rejected the request. Details: Failed to switch chain. - Version: 2.21.28] + Version: viem@2.23.5] `) expect( @@ -94,7 +94,7 @@ test('behavior: connector.getProvider request errors', async () => { [UserRejectedRequestError: User rejected the request. Details: Failed to sign message. - Version: 2.21.28] + Version: viem@2.23.5] `) }) diff --git a/packages/core/src/experimental/actions/sendCalls.test.ts b/packages/core/src/experimental/actions/sendCalls.test.ts index 1ac4185888..34e0db028e 100644 --- a/packages/core/src/experimental/actions/sendCalls.test.ts +++ b/packages/core/src/experimental/actions/sendCalls.test.ts @@ -29,7 +29,7 @@ test('default', async () => { ], }), ).resolves.toMatchInlineSnapshot( - `"0x943e879b78e26f9e960a0c682e53d153a75487ef24624a44dbf22ae439b3d370"`, + `"0x5dedb5a4ff8968db37459b52b83cbdc92b01c9c709c9cff26e345ef5cf27f92e"`, ) await disconnect(config, { connector }) }) @@ -59,6 +59,31 @@ test('behavior: not connected', async () => { `) }) +test('behavior: nullish account (account filled by wallet)', async () => { + await expect( + sendCalls(config, { + account: null, + connector, + calls: [ + { + to: accounts[1], + value: parseEther('1'), + }, + { + to: accounts[2], + value: parseEther('2'), + }, + { + to: accounts[3], + value: parseEther('3'), + }, + ], + }), + ).resolves.toMatchInlineSnapshot( + `"0x035b56a56a5b2fea10e194bae4c846b415de48a8288c7eb704ba7880edcc29a0"`, + ) +}) + test('behavior: account does not exist on connector', async () => { await connect(config, { connector }) await expect( diff --git a/packages/core/src/experimental/actions/sendCalls.ts b/packages/core/src/experimental/actions/sendCalls.ts index 8f4985e320..cabce545d9 100644 --- a/packages/core/src/experimental/actions/sendCalls.ts +++ b/packages/core/src/experimental/actions/sendCalls.ts @@ -62,7 +62,7 @@ export async function sendCalls< return viem_sendCalls(client, { ...(rest as any), - ...(account ? { account } : {}), + ...(typeof account !== 'undefined' ? { account } : {}), calls, chain: chainId ? { id: chainId } : undefined, }) diff --git a/packages/core/src/experimental/actions/writeContracts.test.ts b/packages/core/src/experimental/actions/writeContracts.test.ts deleted file mode 100644 index 1f8ee319a7..0000000000 --- a/packages/core/src/experimental/actions/writeContracts.test.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { abi, address, config } from '@wagmi/test' -import { expect, test } from 'vitest' - -import { connect } from '../../actions/connect.js' -import { disconnect } from '../../actions/disconnect.js' -import { writeContracts } from './writeContracts.js' - -const connector = config.connectors[0]! - -test('default', async () => { - await connect(config, { connector }) - await expect( - writeContracts(config, { - contracts: [ - { - abi: abi.wagmiMintExample, - address: address.wagmiMintExample, - functionName: 'mint', - }, - { - abi: abi.wagmiMintExample, - address: address.wagmiMintExample, - functionName: 'mint', - }, - { - abi: abi.wagmiMintExample, - address: address.wagmiMintExample, - functionName: 'mint', - }, - ], - }), - ).resolves.toMatchInlineSnapshot( - `"0x1872d9f0ee275f586d93d23dbd683d8b6fd9a97ba8918a817c9f4b6fc3b85cf7"`, - ) - await disconnect(config, { connector }) -}) - -test('behavior: not connected', async () => { - await expect( - writeContracts(config, { - contracts: [ - { - abi: abi.wagmiMintExample, - address: address.wagmiMintExample, - functionName: 'mint', - }, - { - abi: abi.wagmiMintExample, - address: address.wagmiMintExample, - functionName: 'mint', - }, - { - abi: abi.wagmiMintExample, - address: address.wagmiMintExample, - functionName: 'mint', - }, - ], - }), - ).rejects.toThrowErrorMatchingInlineSnapshot(` - [ConnectorNotConnectedError: Connector not connected. - - Version: @wagmi/core@x.y.z] - `) -}) - -test('behavior: account does not exist on connector', async () => { - await connect(config, { connector }) - await expect( - writeContracts(config, { - account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e', - contracts: [ - { - abi: abi.wagmiMintExample, - address: address.wagmiMintExample, - functionName: 'mint', - }, - { - abi: abi.wagmiMintExample, - address: address.wagmiMintExample, - functionName: 'mint', - }, - { - abi: abi.wagmiMintExample, - address: address.wagmiMintExample, - functionName: 'mint', - }, - ], - }), - ).rejects.toThrowErrorMatchingInlineSnapshot(` - [ConnectorAccountNotFoundError: Account "0xA0Cf798816D4b9b9866b5330EEa46a18382f251e" not found for connector "Mock Connector". - - Version: @wagmi/core@x.y.z] - `) - await disconnect(config, { connector }) -}) diff --git a/packages/core/src/experimental/actions/writeContracts.ts b/packages/core/src/experimental/actions/writeContracts.ts deleted file mode 100644 index 06e6687592..0000000000 --- a/packages/core/src/experimental/actions/writeContracts.ts +++ /dev/null @@ -1,78 +0,0 @@ -import type { Account, Chain, ContractFunctionParameters } from 'viem' -import { - type WriteContractsErrorType as viem_WriteContractsErrorType, - type WriteContractsParameters as viem_WriteContractsParameters, - type WriteContractsReturnType as viem_WriteContractsReturnType, - writeContracts as viem_writeContracts, -} from 'viem/experimental' - -import { - type GetConnectorClientErrorType, - getConnectorClient, -} from '../../actions/getConnectorClient.js' -import type { Config } from '../../createConfig.js' -import type { BaseErrorType, ErrorType } from '../../errors/base.js' -import type { SelectChains } from '../../types/chain.js' -import type { - ChainIdParameter, - ConnectorParameter, -} from '../../types/properties.js' -import type { Compute } from '../../types/utils.js' - -export type WriteContractsParameters< - contracts extends readonly unknown[] = readonly ContractFunctionParameters[], - config extends Config = Config, - chainId extends - config['chains'][number]['id'] = config['chains'][number]['id'], - /// - chains extends readonly Chain[] = SelectChains, -> = { - [key in keyof chains]: Compute< - Omit< - viem_WriteContractsParameters< - contracts, - chains[key], - Account, - chains[key] - >, - 'chain' - > & - ChainIdParameter & - ConnectorParameter - > -}[number] - -export type WriteContractsReturnType = viem_WriteContractsReturnType - -export type WriteContractsErrorType = - // getConnectorClient() - | GetConnectorClientErrorType - // base - | BaseErrorType - | ErrorType - // viem - | viem_WriteContractsErrorType - -/** https://wagmi.sh/core/api/actions/writeContracts */ -export async function writeContracts< - const contracts extends readonly unknown[], - config extends Config, - chainId extends config['chains'][number]['id'], ->( - config: config, - parameters: WriteContractsParameters, -): Promise { - const { account, chainId, connector, ...rest } = parameters - - const client = await getConnectorClient(config, { - account, - chainId, - connector, - }) - - return viem_writeContracts(client, { - ...(rest as any), - ...(account ? { account } : {}), - chain: chainId ? { id: chainId } : undefined, - }) -} diff --git a/packages/core/src/experimental/query/writeContracts.test.ts b/packages/core/src/experimental/query/writeContracts.test.ts deleted file mode 100644 index 5f4a1f28dd..0000000000 --- a/packages/core/src/experimental/query/writeContracts.test.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { config } from '@wagmi/test' -import { expect, test } from 'vitest' - -import { writeContractsMutationOptions } from './writeContracts.js' - -test('default', () => { - expect(writeContractsMutationOptions(config)).toMatchInlineSnapshot(` - { - "mutationFn": [Function], - "mutationKey": [ - "writeContracts", - ], - } - `) -}) diff --git a/packages/core/src/experimental/query/writeContracts.ts b/packages/core/src/experimental/query/writeContracts.ts deleted file mode 100644 index 192a842ca0..0000000000 --- a/packages/core/src/experimental/query/writeContracts.ts +++ /dev/null @@ -1,70 +0,0 @@ -import type { MutateOptions, MutationOptions } from '@tanstack/query-core' - -import type { Config } from '../../createConfig.js' -import type { Compute } from '../../types/utils.js' -import { - type WriteContractsErrorType, - type WriteContractsParameters, - type WriteContractsReturnType, - writeContracts, -} from '../actions/writeContracts.js' - -export function writeContractsMutationOptions< - const contracts extends readonly unknown[], - config extends Config, ->(config: config) { - return { - mutationFn(variables) { - return writeContracts(config, variables as any) as any - }, - mutationKey: ['writeContracts'], - } as const satisfies MutationOptions< - WriteContractsData, - WriteContractsErrorType, - WriteContractsVariables - > -} - -export type WriteContractsData = Compute - -export type WriteContractsVariables< - contracts extends readonly unknown[], - config extends Config, - chainId extends config['chains'][number]['id'], -> = WriteContractsParameters - -export type WriteContractsMutate< - contracts extends readonly unknown[], - config extends Config, - context = unknown, -> = ( - variables: WriteContractsVariables, - options?: - | Compute< - MutateOptions< - WriteContractsData, - WriteContractsErrorType, - Compute>, - context - > - > - | undefined, -) => void - -export type WriteContractsMutateAsync< - contracts extends readonly unknown[], - config extends Config, - context = unknown, -> = ( - variables: WriteContractsVariables, - options?: - | Compute< - MutateOptions< - WriteContractsData, - WriteContractsErrorType, - Compute>, - context - > - > - | undefined, -) => Promise diff --git a/packages/core/src/exports/experimental.ts b/packages/core/src/exports/experimental.ts index 580cb678ba..f97fab49a8 100644 --- a/packages/core/src/exports/experimental.ts +++ b/packages/core/src/exports/experimental.ts @@ -31,13 +31,6 @@ export { showCallsStatus, } from '../experimental/actions/showCallsStatus.js' -export { - type WriteContractsErrorType, - type WriteContractsParameters, - type WriteContractsReturnType, - writeContracts, -} from '../experimental/actions/writeContracts.js' - //////////////////////////////////////////////////////////////////////////////// // Tanstack Query //////////////////////////////////////////////////////////////////////////////// @@ -75,11 +68,3 @@ export { type ShowCallsStatusVariables, showCallsStatusMutationOptions, } from '../experimental/query/showCallsStatus.js' - -export { - type WriteContractsData, - type WriteContractsMutate, - type WriteContractsMutateAsync, - type WriteContractsVariables, - writeContractsMutationOptions, -} from '../experimental/query/writeContracts.js' diff --git a/packages/core/src/transports/connector.test.ts b/packages/core/src/transports/connector.test.ts index e997ed608b..24fed11ce4 100644 --- a/packages/core/src/transports/connector.test.ts +++ b/packages/core/src/transports/connector.test.ts @@ -14,6 +14,7 @@ test('setup', () => { { "config": { "key": "connector", + "methods": undefined, "name": "Connector", "request": [Function], "retryCount": 3, @@ -35,7 +36,7 @@ test('behavior: connector type not found', () => { [ProviderDisconnectedError: The Provider is disconnected from all chains. Details: Could not find connector of type "foo" in \`connectors\` passed to \`createConfig\`. - Version: 2.21.28] + Version: viem@2.23.5] `) }) @@ -57,7 +58,7 @@ test('behavior: provider is disconnected', () => { [ProviderDisconnectedError: The Provider is disconnected from all chains. Details: Provider is disconnected. - Version: 2.21.28] + Version: viem@2.23.5] `) }) @@ -81,7 +82,7 @@ test('behavior: chainId mismatch', () => { [ChainDisconnectedError: The Provider is not connected to the requested chain. Details: The current chain of the connector (id: 1) does not match the target chain for the request (id: 10 – OP Mainnet). - Version: 2.21.28] + Version: viem@2.23.5] `) }) diff --git a/packages/core/src/transports/fallback.test.ts b/packages/core/src/transports/fallback.test.ts index d3d155cd23..dcae23cb79 100644 --- a/packages/core/src/transports/fallback.test.ts +++ b/packages/core/src/transports/fallback.test.ts @@ -13,6 +13,7 @@ test('setup', () => { { "config": { "key": "fallback", + "methods": undefined, "name": "Fallback", "request": [Function], "retryCount": 3, @@ -27,6 +28,7 @@ test('setup', () => { { "config": { "key": "connector", + "methods": undefined, "name": "Connector", "request": [Function], "retryCount": 0, @@ -40,6 +42,7 @@ test('setup', () => { { "config": { "key": "http", + "methods": undefined, "name": "HTTP JSON-RPC", "request": [Function], "retryCount": 0, diff --git a/packages/core/src/utils/extractRpcUrls.test.ts b/packages/core/src/utils/extractRpcUrls.test.ts index 09ade8ad76..6d2c21e26e 100644 --- a/packages/core/src/utils/extractRpcUrls.test.ts +++ b/packages/core/src/utils/extractRpcUrls.test.ts @@ -69,7 +69,7 @@ test('default', () => { }), ).toMatchInlineSnapshot(` [ - "https://cloudflare-eth.com", + "https://eth.merkle.io", ] `) @@ -85,7 +85,7 @@ test('default', () => { }), ).toMatchInlineSnapshot(` [ - "https://cloudflare-eth.com", + "https://eth.merkle.io", "https://lol.com", ] `) diff --git a/packages/react/src/experimental/hooks/useSendCalls.test.ts b/packages/react/src/experimental/hooks/useSendCalls.test.ts index 9261883091..1eeebdf902 100644 --- a/packages/react/src/experimental/hooks/useSendCalls.test.ts +++ b/packages/react/src/experimental/hooks/useSendCalls.test.ts @@ -33,7 +33,7 @@ test('default', async () => { await waitFor(() => expect(result.current.isSuccess).toBeTruthy()) expect(result.current.data).toMatchInlineSnapshot( - `"0x943e879b78e26f9e960a0c682e53d153a75487ef24624a44dbf22ae439b3d370"`, + `"0x5dedb5a4ff8968db37459b52b83cbdc92b01c9c709c9cff26e345ef5cf27f92e"`, ) await disconnect(config, { connector }) diff --git a/packages/react/src/experimental/hooks/useWriteContracts.test.ts b/packages/react/src/experimental/hooks/useWriteContracts.test.ts deleted file mode 100644 index db3519ebaa..0000000000 --- a/packages/react/src/experimental/hooks/useWriteContracts.test.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { connect, disconnect } from '@wagmi/core' -import { abi, address, config } from '@wagmi/test' -import { renderHook, waitFor } from '@wagmi/test/react' -import { expect, test } from 'vitest' - -import { useWriteContracts } from './useWriteContracts.js' - -const connector = config.connectors[0]! - -test('default', async () => { - await connect(config, { connector }) - - const { result } = renderHook(() => useWriteContracts()) - - result.current.writeContracts({ - contracts: [ - { - abi: abi.wagmiMintExample, - address: address.wagmiMintExample, - functionName: 'mint', - }, - { - abi: abi.wagmiMintExample, - address: address.wagmiMintExample, - functionName: 'mint', - }, - { - abi: abi.wagmiMintExample, - address: address.wagmiMintExample, - functionName: 'mint', - }, - ], - }) - await waitFor(() => expect(result.current.isSuccess).toBeTruthy()) - - expect(result.current.data).toMatchInlineSnapshot( - `"0x1872d9f0ee275f586d93d23dbd683d8b6fd9a97ba8918a817c9f4b6fc3b85cf7"`, - ) - - await disconnect(config, { connector }) -}) diff --git a/packages/react/src/experimental/hooks/useWriteContracts.ts b/packages/react/src/experimental/hooks/useWriteContracts.ts deleted file mode 100644 index 8d0d32aefb..0000000000 --- a/packages/react/src/experimental/hooks/useWriteContracts.ts +++ /dev/null @@ -1,85 +0,0 @@ -'use client' - -import { useMutation } from '@tanstack/react-query' -import type { Config, ResolvedRegister } from '@wagmi/core' -import { - type WriteContractsData, - type WriteContractsErrorType, - type WriteContractsMutate, - type WriteContractsMutateAsync, - type WriteContractsVariables, - writeContractsMutationOptions, -} from '@wagmi/core/experimental' -import type { Compute } from '@wagmi/core/internal' -import type { ContractFunctionParameters } from 'viem' - -import { useConfig } from '../../hooks/useConfig.js' -import type { ConfigParameter } from '../../types/properties.js' -import type { - UseMutationParameters, - UseMutationReturnType, -} from '../../utils/query.js' - -export type UseWriteContractsParameters< - contracts extends readonly unknown[] = readonly ContractFunctionParameters[], - config extends Config = Config, - context = unknown, -> = Compute< - ConfigParameter & { - mutation?: - | UseMutationParameters< - WriteContractsData, - WriteContractsErrorType, - WriteContractsVariables< - contracts, - config, - config['chains'][number]['id'] - >, - context - > - | undefined - } -> - -export type UseWriteContractsReturnType< - contracts extends readonly unknown[] = readonly ContractFunctionParameters[], - config extends Config = Config, - context = unknown, -> = Compute< - UseMutationReturnType< - WriteContractsData, - WriteContractsErrorType, - WriteContractsVariables, - context - > & { - writeContracts: WriteContractsMutate - writeContractsAsync: WriteContractsMutateAsync - } -> - -/** https://wagmi.sh/react/api/hooks/useWriteContracts */ -export function useWriteContracts< - const contracts extends - readonly unknown[] = readonly ContractFunctionParameters[], - config extends Config = ResolvedRegister['config'], - context = unknown, ->( - parameters: UseWriteContractsParameters = {}, -): UseWriteContractsReturnType { - const { mutation } = parameters - - const config = useConfig(parameters) - - const mutationOptions = writeContractsMutationOptions(config) - const { mutate, mutateAsync, ...result } = useMutation({ - ...mutation, - ...mutationOptions, - }) - - type Return = UseWriteContractsReturnType - return { - ...result, - writeContracts: mutate as Return['writeContracts'], - writeContractsAsync: mutateAsync as Return['writeContractsAsync'], - } -} diff --git a/packages/react/src/exports/actions/experimental.test.ts b/packages/react/src/exports/actions/experimental.test.ts index 8622a69c9d..57090767c3 100644 --- a/packages/react/src/exports/actions/experimental.test.ts +++ b/packages/react/src/exports/actions/experimental.test.ts @@ -9,14 +9,12 @@ test('exports', () => { "getCapabilities", "sendCalls", "showCallsStatus", - "writeContracts", "getCallsStatusQueryOptions", "getCallsStatusQueryKey", "getCapabilitiesQueryOptions", "getCapabilitiesQueryKey", "sendCallsMutationOptions", "showCallsStatusMutationOptions", - "writeContractsMutationOptions", ] `) }) diff --git a/packages/react/src/exports/experimental.ts b/packages/react/src/exports/experimental.ts index 924de884b0..131702ec7f 100644 --- a/packages/react/src/exports/experimental.ts +++ b/packages/react/src/exports/experimental.ts @@ -26,9 +26,3 @@ export { type UseShowCallsStatusReturnType, useShowCallsStatus, } from '../experimental/hooks/useShowCallsStatus.js' - -export { - type UseWriteContractsParameters, - type UseWriteContractsReturnType, - useWriteContracts, -} from '../experimental/hooks/useWriteContracts.js' diff --git a/packages/react/src/hooks/useProof.test.ts b/packages/react/src/hooks/useProof.test.ts index 0a072fc45e..3c3cb51945 100644 --- a/packages/react/src/hooks/useProof.test.ts +++ b/packages/react/src/hooks/useProof.test.ts @@ -10,7 +10,6 @@ test('default', async () => { useProof({ address: '0x4200000000000000000000000000000000000016', chainId: chain.optimism.id, - blockNumber: 114571816n, storageKeys: [ '0x4a932049252365b3eedbc5190e18949f2ec11f39d3bef2d259764799a1b27d99', ], @@ -19,37 +18,9 @@ test('default', async () => { await waitFor(() => expect(result.current.isSuccess).toBeTruthy()) - expect(result.current).toMatchInlineSnapshot(` + expect({ ...result.current, data: null }).toMatchInlineSnapshot(` { - "data": { - "accountProof": [ - "0xf90211a0aec097ff0b163846d6e5b768e46967582314d1caffabf2c16e9a423f7fcb8d3da05ad1d8f6f710b2c2dda3e725aa42a302157f83ffc7c69b9621bbb5bfefe62b17a0cb0037627302e2dc2075045ec10faafde69a80a1edf5d1ef78d224f3ed6994f0a09c5c44b45038b3ddcfe5628a649540688c8b31b689fc5ec2b14c917a093d1d85a04216666d8676bdf0e63fb908af9c4cfb080124f3e6afc8da715b574b93efd279a01eef3f90a8f9d0b90c22d42701b448b06d436c11f6305706c11f2253bd94f4eea0c257cfb0dced08d41e93741c225f65789bc54c02a7c3241cf9fd8fbc9142d1d0a045be5b8d25c71cbe5dacf30948475f4221fa43a0e45ebec27767ef0ec293af31a0f9cde1e9de76de09301165ad415109c98cd5268465b028155b5f2f2ee77af69aa01e01dbb3a67d2abc4d70cc4c384227f75e158df95181d21eea773942150dfa44a0a3d2a0647e6fa349417e8444aaa7eda7b1d444e8b8712891e87e7341ebd194d2a0800eba98063f7443733ca61c6f355b5175963fb36472aa15b3af9a653c5b457da0da5e2077053eedeb2ef8a9a9fa9e6ce3d5c063dc24b0f316eeef107f4e2114c9a036d924530d45f263afa48d5298bc568db875800b5272aedd0426a395b3fcd230a0b8bdc3049c6c862dec595a8c7a594e3593a42654826326593f411788b39d1212a0d819ac3bd17dba51e5a1493c91b5025c8bc661e00f6f002844180df4a43a4c8480", - "0xf90211a0b805b7a7bbc7029720574299f3b97236cd6f0bbb0b8ac2cfbf62718902a1432ea02b9862a6d568ae0f13edd27d4a1750e2a5b02679bdf8e5a8814db29ccfe39d3fa0a4bc082ad30d148b1a0797ad5c9f2d88f9a54f11e32974ae6eff3f4dec3566fba01b6e2891a8b73b7881c9b54d6ec3daf58128b4c47f72d051539676242d811e98a0d18f27e0419e2307f68c42be3b79f055a8a3db124d9c7e92cb25393cd1653784a0ff41d00710630c688c6ed133fa9df498890f1c240b0152b4dea8a57265c1ea2fa0aa4fdca61bd19df46a6e331e987084ebbc42abea26f1eeb64c4ca8dff065cbf4a0e620bae2104b1d201921ce06deb45a15c3af1b68d418957377dae72c67e6f585a0abf8366c18ef551f7c7cb8d7b4595e2e0ac661731fde452ed7f7f621a1f7bf63a0cb5b92eea1df1154704aca1ba670cf1feaebbc7e87d68113b026d28547bfcaa1a012a0dac634c209e866fb8ce640b1475a479369f38083e22314ec189962874d62a04c32234d31e689a4cd6b232ade9516f0117397bd5649d8034eba104d64ae003ca0a984a935c5414a1f6365a15f7a622d2f4c884ef738dd1813cf61606a171b7b45a01045ee2ba29a053e1d758e51ba75cad09feb3f6eaadf4f963354c814da9fe9b2a09b14eb84c54058ae92686987895b655a86275a50f83ef7fa3bc49d2aba77e11fa040486c01b404d6913fabd5a8b4d317efe4b71027c9d0df7b4a573027a5f9655b80", - "0xf90211a075d7b5a418239d733522dda7e064025f1239c404d71cefc80617597367b69e6ea00446f917d2cb1f173006a194b8008ffc6fabe80ed56d95bbe06aafe607a8371aa051f66d63226e926a653793951ca7d4a72f6888179132acae9e216cde54685e2da09a308e2c241396a17dfeaab1212f792a687a06abbc9fa22b8e83eccdc7c29349a01097a598bd8f93802bea714ddcdda520377a39d591463f6f5c6a2e545a2dc494a0ea7dff5fd2f496b6d4aa717e3dc57285c84d4410a5eb32962c8bccb537bd1836a0c65e0d0aa6425511926b3d716f06e7f552997c42a147038b0551830d1e7e473ba052cfbed72b35f842e97bc0371eb3e0de000bc2f97dc7c992fd8493ac5f64e341a02e055c597f0bd91a8884a280c2137657bfa518fa203b1daaf1215d61737e9f4aa09d4f4ab8eed159ff1dc4ccd532c78196108283ef2d2c93069e1dc7724fb2d826a024ef34e3fdea9f1a90ce8dedcb0a8449faa76517cc1c8b8ed7dfaee3bd32f81ca08ccafb12a0d8747e5a3a1d199539d6ca3b21e692ba7dd01c56528628e1ef3bc4a0f0dfb135f051e51faa4df4216dd7515463ddf35875285765fd9fc3604a03ea62a0509cf646a93abb590385cc9893f2b98de9458212ae7926c2a7138e36721e4763a0026d889911b1358c5db61a7341efc4766ec5d150c4c4ef1a3c7f9c8091c686a5a0cf93e413246488f8a42fc036f10763229d00ddcdef75b8f9ed2036dcd948ad5d80", - "0xf90211a03834b437dc1465b508a85ccd269ad873c69a7ed6796b665dae14dc207d432323a0402b7af438fa32fa1f59f335a350962f2f318e795c8899cd513541cad586c2cfa0fd381a630c104c79bbefe8a6a8f15f11d1573e73e3ec5ff3a7f52f97711b7d55a06c5952b899892f03161904217ea153321cc1d393c6164bfe89cc1a6e429b601ea07b795feeedc38eb14388bd79792d88b37fcd90a4d7a6a84fa1b8ad554f96075ba058a823957e1d2d33fe10d74becb6148829601029b0910280e7c4994482888f7ca00ab9f9c93fd408830dd344e81656433c4b2968b381c3a9af383f2b29a330a7d5a0be904c1f06d73f530927ac333dba9e57f14bb1bca7872fb73bad8815e94bf2b5a067f1dedae32d194f030fadc371cc0c8aa1d334e221752de96d7a3542b53db6bea084f036e3e5a267397c395627bde374b9cdf64a4b6c127d639787e3f2e0131f37a0578085fa54172c1e67b83a3bba32deeaf0b0a0a6aac6f2d7d4fd30527f89b324a097a2d41543cf7a6c3ad57ef560da5d3b9b2956297410bad25b5709f3e3e93a23a0bc42dc3a63bc7c914e8cfc58eb5b50f13932d28aff5b9e0cb41cf3bea42ca6afa0e7066d76bbfc5ced56def91150490892b62a08191bd19f59a2dd83fc28057067a0a9ceec139e1630098932aea819fb07d4de7af01be02f9663785ed5f755ab18fea0ea7d4e5c6c2577d4b660d7f592759a9a1e6f98602603018ecb1fcb4a50326cb880", - "0xf90211a03729ba493659e3703943576362e6452dba2df3e214c679d9d8f48f94dd84e9b4a035f68c6818ba438b6211158eba8c7992693d1a1b2c6189733873fb56a2840bc7a0d1431170f049e8fec428211a3c78963c9fa730cd8f97fa2ca62217f6a862cbfea037f7add832ba16a341ab2d3aa2deb1877e45f6815db97360441d02b5e3836859a0648a97f53652f28c2a032d171df0df9c8e000e56512949548212b30544be66d4a0bdb751793ec40618c0bbb7fb6488e70eda743e1fcfc31cc1bb4aea9f965c8b35a0f0a867a5c5b1d3fd7968ee809ee676f9582242d91299ecd2ea5150e1d6caa361a0110db586878cbee5c7db8a8fdbdda189c16cad7cc424aa9c9db7b2a2a2a96e97a0e2628f4e74eddbdf55e4670ed9360fe5600559d29c885048b5a58862de55c88aa03f315f378d19b1fca09434123d5e88d7aa242eabd7544a66034ae5cfacb90634a0b35ae967d8100626510ef78b70dad84a55d5699e97890230ca33dee057105e54a05aab0c8a7218d46a45b13134b523927937a336929e73a87bbd3bb8dad8b4650ba0bfb907aa47cac9243aea8e34cb539686157ed5603467d284f28ad3b1215c54a0a029b3627c90d0678ddb46f0fbe658be1ef97cbe948a14d16e209e34affc437a45a032c71ce3c49db9466dc877aeecf5e6e0708276a671028b561c5943b08d970939a0db4e356ee957b09ccd1db62833111a7b0c7dc0f8db31e770ccb0b9cce815a65980", - "0xf90211a00199ebec052ed22ec0f7f3baadbf4559fc63f7b6ed4afceb12e77f4cd107f552a0b1260838ef4a96865c4105de409b570c9c7e1f232aa0528d47170826608b39bfa0ab3b6b9417f136f7b858500120393d56db48462b5f73575b828270007474c3c8a0adaaea49c8f4466508fdfe29c973dad5c6592e7ff40bd02936ee03e7f38878afa047b275e895b55bb486b443d58a78623a05a84a5404257085004213e25c0b0e37a0f855c06b679d3bf5aa56efbca1e05d78f7cca5a06631afd8b31630df69c86d7ea08c24490e9ae16703569edce216efe8c87ade650838f4c9e5113e6caf42015426a0881d7e4280f550ffbffd31824cf0e3e1b4dbd63804e51f353538005a30fc0877a0359099ca55fe012b1ddea17601858c0ce86a35d9b77e0ab174663fadd196a184a0ef822991cc9807764f76797868f5873ecf89ef9947d02476cf6b80396a51bce8a04778e1764db94bbf19e8d755984934b31f9bc064f898dd27e170867b0eac823ca09379eaf8b3c2657fb540017d486e96534126c04a055fe6f8c9114a9a38566c06a00470dc7697991a3eeeb7aed5cd5212034525c9b3528c4e8245d23b27ec771f9ba028974e7be411113dba8d00f8b958eb06e1c957f82f2225ae44d5e6e81106672ba0df616fb6078a75efb74089ddc02226b9ef55311a3f402c7860e40f77bf59a8d6a0ddd81505aafeee3d17a112a8f7d1606a6ff981c10413324c8dd739c0cd69616f80", - "0xf8d180a0d5b2c83c7cc15a06046240474cc04a5db122c9ff8d82de8d61c524745afbf07680a014122b1b68146a56a29ee76cebed16482c59c969e6be8b7a5a6955679e781df280a0c1d58006c474a8d0d4e6daaa915d29aa1bfe9f9b2e363e791163c48c7c93615880a072b769a2cf7fe7e626fb030a21cfea696b941029e65b0faefae6531c86334e9e80a0342d2f17569764b28d61ab5102510f2d8ed939e0d72364ae01408e47a14544d280a0bde4e80a8b068e227830b7508abf475868969120bf5c55d06d0208d9619fcd728080808080", - "0xf8709d30147f4cc0e0156d993334777d699c312c2fe454f8b3fa338ed309f4a0b850f84e048a0fb5ee5ed06fd56c7c0fa0149d15d1300498bff4bfceb56dc005e70c54241eea0a5a7058c62ec345bf505ba01f958654ab06a152993e7a0ae7b6dbb0d4b19265cc9337b8789fe1353bd9dc35", - ], - "address": "0x4200000000000000000000000000000000000016", - "balance": 74191534315593685302287n, - "codeHash": "0x1f958654ab06a152993e7a0ae7b6dbb0d4b19265cc9337b8789fe1353bd9dc35", - "nonce": 4, - "storageHash": "0x149d15d1300498bff4bfceb56dc005e70c54241eea0a5a7058c62ec345bf505b", - "storageProof": [ - { - "key": "0x4a932049252365b3eedbc5190e18949f2ec11f39d3bef2d259764799a1b27d99", - "proof": [ - "0xf90211a082fc9029ea5c161f91c01fa183cef98be25957c6164c110a252e4b8b6b334b15a064cb07fb0bec48bf53bac5077716ab7bb59ebc01c608bfba0da28d44501d79a7a0a0c5ef49c5d553fa66b51f51295d5f28fba0a5555822d7012c1daebe4bb57417a0082a52cc3fbe21f63aceebc88d8a9e365888e486b90feb465f58fd0e263ab2a2a05be6b594e391fe3c73c066f7a1f10d4bac03c1a0766775cd4400a2cc025f6990a03def6b5c9833c22543c44950ada488e3bd7fb01ec696a4e476a479cdec802cfba0e10829d63ea34e89b5ceb433686378dbc11b5aefe122c7f8a28804fed8b76ca5a07313dc662f421586094f4b83d31aa743c9157dd1596b27e64f7040e2d0d90f1ea08dc1dcb08f1918a1fae1520a1f8ab33641de2c93b16495824ca50311bebf1e1aa0dd6bd1211e2fbcff725db48da6e68317a7121615065747801e3bee54e73b9b49a0b7e7dae52bb6d6fded480d0b087334603ac5dbc224da7c48882fbed98136da36a0a88d97b0bda3cbff682d9e36bfd403a976e12addddf3695d69bc7993d8d56448a0e041640af48ec21b4010a38690af8c9e65966bc3ca0aa71a7dc0775f64692aefa09e8c04289de47e1d905322ed50051cf1d8e0af98ca32f4ba32d8f0fcaa042570a0f9df510aad677a4c31c99a339faadb5bf2e6dd68fbc35e1a7cb55721f915c029a0413484ecb5adfc44f7ce43a8e35da709060709ba270be02e8089cdff7c386eb880", - "0xf90211a07a2e200a8f16e47dcb91d71a374bca1effd36b306aa944c3329ca78d5a40d4efa074172fb34e3c981ce51c2f0d4b13efb14ac5a5a55c7047b6b568f8a358a85d66a0e39dd251e0e88ce17ad5b94e74fecc3c884fa00d5581e28357dff24aafd21c45a0f093fa90b2772ae0cb96c742af3002c01821ddece546d96c60fac37e25a131caa064fd388011e6a3db2e4e069e112abcaa261e1a5c8f330b2fdf0b6a79ac6a67fea04e7ac3ceace081892ccf722c7075ae14471f213bf6b59cc7130476653a1d04bea012f91703aed54e6853294a560305aa7cc91c9c4fdd6e3a38d7d0ded2ff885305a0af76fe6e44f3933e3d089adfccdcecc424f3b1fed6f78b4578ab637d5bc37bfaa0c55e93899edd98059ef73ccd3bf494443e3920b14cc39bdeec53dce324de9b47a097dfe8a1ab57520fba75a3d0e4f262da1c02c32ee5e3e0914f37811dc7bc2e1da021f69e5e122ca6a80706509a807abf55eb61fe3cd9494357809aef507527cf00a0b9360d3affb06287b1ea34e05e73ff8c54c9474a5bbc25a0faf7911ed68ffcb1a082692b8ddba185029f3a4b7a6e1603522fa1681ec6e5d57898acc88f2a97cf62a0e5f37e8935f9afd5d5cf57d0b77699e12f03e83f692b6e68396ef7df409a099da0eff23323d9dbc46566310cf79bb330e03c5cfcb14f2dca6817376a25fed4e591a0d644c69038d00f36a57ba40f7d4f92b8bcb7b4d7f6c99be2fac989825d269e9680", - "0xf90211a02256a3dcab8a3656cfa906d0c3383987accb52b37d42436f2779b5e28a2e781ea00a1a86acaf1aafcad70bf8a462b3812d3d9d8dd04ec50a8d49db6eeb787538e1a02f728ef08fa473d3ee26f48cbbe025ff49c8efb7278b6a41392001b6a336ed9ea0a337a197c7beca40a182ee5e8a3ce5ecec54c9eca93161824bc8c8682c41b1d4a042bfe6c9c83b7829f827998a2f3c3556d3936adbe363b61e01f87d2553d3a4b2a05a9e6a84f98b98ac6d7ab19e649aee2cb37f7275055f9b6c25f0e8273dd0668ea070d6c892cc4f92b14ff2ad64eb0a0c653471cdaa788e40830363f31fc74ae084a0b155c0c14b5bfc1f832ab7f2de898e0ab90e2f51d9c3a9fefe3b9261b4b94a0ba01ab278c060ce4799fd3032cad51f8871bc2792ab195fbe2e3b18a66ec17a9255a04cf1677370cfd1113d7292c7642516c505931734ebee7ecfaf9cea60ae674044a0147032733387b67d84c2dd87f2dd68c7761cd3e505ec0703da30ac9a843f387aa0d7838721a1bb502a0dd278cc2b323358b35f49253e7b0a6fa7e1ea7943d0e3a1a018cc53f6f51671a7f984788cec8a3c80d3e1fc49d1bf6e255245f82ff3df6365a0218f211dd9cb46783d740eb0ac46cc1630f5f3e99d9c18006535fb94decee74ba0db499ee27ab3c1530244308ef91e7fa40cb5261609cb37857bdc4cefea434f81a050a2f6f0e7f10b9f957a566e2fd4641d6fee7277eef6ad4d4955c8a1d0f43dd480", - "0xf901b1a0afda91b7b1dfce2e5442b5b727498d66c631f5d3e619c1123266796396c7b3aaa06b8822be2629b7e5b281e8e5d4770838b373e91cae52019e715e1135a491dd1ca0e0e75a7bf2358956ae0d320fccfe76a8379e66f8450c82a47b702bf64604c1f98080a003116e33645e334f221ef3b4724c77733b73382bb686127c9bed3928d1cc3c16a02951521fe4306019363d0b587ea1dec4b2df028364f689cfa57ee1cc4dbf109ca06505871148d8fe4e7c335393f1ecc660d793e686af2385a9acf1a3d9788b7700a085ff044bd791555cc59cfac5ed5c17e1c69959c9e93a82c935bbe7339d7112f1a0dbdad86b6dc440b20ebe6db935738851b7e482ed54f728962d4c6a2af072116ba03148d81cce54eefefd1adc6c457359eeca1892f49ec80e061cf7622d0b0d1c87a0842517cbab04fa095b7e0c6a3d4e61c79ecde20f60d1bb04fc55fe13d02de23a80a02ee52ddf4999ae7bc96c2d0c0afe7c4831263e588a91b716c841b96806bb5edda0d57a51a236d736e25388017b23bd6646e9150dad4ddf27d9024d64815995ebd0a06a60b7eef7476f51fd08686963ec92f5153a28f6a7cab73a8dec06158eff706b80", - ], - "value": 0n, - }, - ], - }, + "data": null, "dataUpdatedAt": 1675209600000, "error": null, "errorUpdateCount": 0, @@ -75,7 +46,6 @@ test('default', async () => { "getProof", { "address": "0x4200000000000000000000000000000000000016", - "blockNumber": 114571816n, "chainId": 10, "storageKeys": [ "0x4a932049252365b3eedbc5190e18949f2ec11f39d3bef2d259764799a1b27d99", @@ -95,7 +65,6 @@ test('behavior: address: undefined -> defined', async () => { useProof({ address, chainId: chain.optimism.id, - blockNumber: 114571816n, storageKeys: [ '0x4a932049252365b3eedbc5190e18949f2ec11f39d3bef2d259764799a1b27d99', ], @@ -130,7 +99,6 @@ test('behavior: address: undefined -> defined', async () => { "getProof", { "address": undefined, - "blockNumber": 114571816n, "chainId": 10, "storageKeys": [ "0x4a932049252365b3eedbc5190e18949f2ec11f39d3bef2d259764799a1b27d99", @@ -147,37 +115,9 @@ test('behavior: address: undefined -> defined', async () => { await waitFor(() => expect(result.current.isSuccess).toBeTruthy()) - expect(result.current).toMatchInlineSnapshot(` + expect({ ...result.current, data: null }).toMatchInlineSnapshot(` { - "data": { - "accountProof": [ - "0xf90211a0aec097ff0b163846d6e5b768e46967582314d1caffabf2c16e9a423f7fcb8d3da05ad1d8f6f710b2c2dda3e725aa42a302157f83ffc7c69b9621bbb5bfefe62b17a0cb0037627302e2dc2075045ec10faafde69a80a1edf5d1ef78d224f3ed6994f0a09c5c44b45038b3ddcfe5628a649540688c8b31b689fc5ec2b14c917a093d1d85a04216666d8676bdf0e63fb908af9c4cfb080124f3e6afc8da715b574b93efd279a01eef3f90a8f9d0b90c22d42701b448b06d436c11f6305706c11f2253bd94f4eea0c257cfb0dced08d41e93741c225f65789bc54c02a7c3241cf9fd8fbc9142d1d0a045be5b8d25c71cbe5dacf30948475f4221fa43a0e45ebec27767ef0ec293af31a0f9cde1e9de76de09301165ad415109c98cd5268465b028155b5f2f2ee77af69aa01e01dbb3a67d2abc4d70cc4c384227f75e158df95181d21eea773942150dfa44a0a3d2a0647e6fa349417e8444aaa7eda7b1d444e8b8712891e87e7341ebd194d2a0800eba98063f7443733ca61c6f355b5175963fb36472aa15b3af9a653c5b457da0da5e2077053eedeb2ef8a9a9fa9e6ce3d5c063dc24b0f316eeef107f4e2114c9a036d924530d45f263afa48d5298bc568db875800b5272aedd0426a395b3fcd230a0b8bdc3049c6c862dec595a8c7a594e3593a42654826326593f411788b39d1212a0d819ac3bd17dba51e5a1493c91b5025c8bc661e00f6f002844180df4a43a4c8480", - "0xf90211a0b805b7a7bbc7029720574299f3b97236cd6f0bbb0b8ac2cfbf62718902a1432ea02b9862a6d568ae0f13edd27d4a1750e2a5b02679bdf8e5a8814db29ccfe39d3fa0a4bc082ad30d148b1a0797ad5c9f2d88f9a54f11e32974ae6eff3f4dec3566fba01b6e2891a8b73b7881c9b54d6ec3daf58128b4c47f72d051539676242d811e98a0d18f27e0419e2307f68c42be3b79f055a8a3db124d9c7e92cb25393cd1653784a0ff41d00710630c688c6ed133fa9df498890f1c240b0152b4dea8a57265c1ea2fa0aa4fdca61bd19df46a6e331e987084ebbc42abea26f1eeb64c4ca8dff065cbf4a0e620bae2104b1d201921ce06deb45a15c3af1b68d418957377dae72c67e6f585a0abf8366c18ef551f7c7cb8d7b4595e2e0ac661731fde452ed7f7f621a1f7bf63a0cb5b92eea1df1154704aca1ba670cf1feaebbc7e87d68113b026d28547bfcaa1a012a0dac634c209e866fb8ce640b1475a479369f38083e22314ec189962874d62a04c32234d31e689a4cd6b232ade9516f0117397bd5649d8034eba104d64ae003ca0a984a935c5414a1f6365a15f7a622d2f4c884ef738dd1813cf61606a171b7b45a01045ee2ba29a053e1d758e51ba75cad09feb3f6eaadf4f963354c814da9fe9b2a09b14eb84c54058ae92686987895b655a86275a50f83ef7fa3bc49d2aba77e11fa040486c01b404d6913fabd5a8b4d317efe4b71027c9d0df7b4a573027a5f9655b80", - "0xf90211a075d7b5a418239d733522dda7e064025f1239c404d71cefc80617597367b69e6ea00446f917d2cb1f173006a194b8008ffc6fabe80ed56d95bbe06aafe607a8371aa051f66d63226e926a653793951ca7d4a72f6888179132acae9e216cde54685e2da09a308e2c241396a17dfeaab1212f792a687a06abbc9fa22b8e83eccdc7c29349a01097a598bd8f93802bea714ddcdda520377a39d591463f6f5c6a2e545a2dc494a0ea7dff5fd2f496b6d4aa717e3dc57285c84d4410a5eb32962c8bccb537bd1836a0c65e0d0aa6425511926b3d716f06e7f552997c42a147038b0551830d1e7e473ba052cfbed72b35f842e97bc0371eb3e0de000bc2f97dc7c992fd8493ac5f64e341a02e055c597f0bd91a8884a280c2137657bfa518fa203b1daaf1215d61737e9f4aa09d4f4ab8eed159ff1dc4ccd532c78196108283ef2d2c93069e1dc7724fb2d826a024ef34e3fdea9f1a90ce8dedcb0a8449faa76517cc1c8b8ed7dfaee3bd32f81ca08ccafb12a0d8747e5a3a1d199539d6ca3b21e692ba7dd01c56528628e1ef3bc4a0f0dfb135f051e51faa4df4216dd7515463ddf35875285765fd9fc3604a03ea62a0509cf646a93abb590385cc9893f2b98de9458212ae7926c2a7138e36721e4763a0026d889911b1358c5db61a7341efc4766ec5d150c4c4ef1a3c7f9c8091c686a5a0cf93e413246488f8a42fc036f10763229d00ddcdef75b8f9ed2036dcd948ad5d80", - "0xf90211a03834b437dc1465b508a85ccd269ad873c69a7ed6796b665dae14dc207d432323a0402b7af438fa32fa1f59f335a350962f2f318e795c8899cd513541cad586c2cfa0fd381a630c104c79bbefe8a6a8f15f11d1573e73e3ec5ff3a7f52f97711b7d55a06c5952b899892f03161904217ea153321cc1d393c6164bfe89cc1a6e429b601ea07b795feeedc38eb14388bd79792d88b37fcd90a4d7a6a84fa1b8ad554f96075ba058a823957e1d2d33fe10d74becb6148829601029b0910280e7c4994482888f7ca00ab9f9c93fd408830dd344e81656433c4b2968b381c3a9af383f2b29a330a7d5a0be904c1f06d73f530927ac333dba9e57f14bb1bca7872fb73bad8815e94bf2b5a067f1dedae32d194f030fadc371cc0c8aa1d334e221752de96d7a3542b53db6bea084f036e3e5a267397c395627bde374b9cdf64a4b6c127d639787e3f2e0131f37a0578085fa54172c1e67b83a3bba32deeaf0b0a0a6aac6f2d7d4fd30527f89b324a097a2d41543cf7a6c3ad57ef560da5d3b9b2956297410bad25b5709f3e3e93a23a0bc42dc3a63bc7c914e8cfc58eb5b50f13932d28aff5b9e0cb41cf3bea42ca6afa0e7066d76bbfc5ced56def91150490892b62a08191bd19f59a2dd83fc28057067a0a9ceec139e1630098932aea819fb07d4de7af01be02f9663785ed5f755ab18fea0ea7d4e5c6c2577d4b660d7f592759a9a1e6f98602603018ecb1fcb4a50326cb880", - "0xf90211a03729ba493659e3703943576362e6452dba2df3e214c679d9d8f48f94dd84e9b4a035f68c6818ba438b6211158eba8c7992693d1a1b2c6189733873fb56a2840bc7a0d1431170f049e8fec428211a3c78963c9fa730cd8f97fa2ca62217f6a862cbfea037f7add832ba16a341ab2d3aa2deb1877e45f6815db97360441d02b5e3836859a0648a97f53652f28c2a032d171df0df9c8e000e56512949548212b30544be66d4a0bdb751793ec40618c0bbb7fb6488e70eda743e1fcfc31cc1bb4aea9f965c8b35a0f0a867a5c5b1d3fd7968ee809ee676f9582242d91299ecd2ea5150e1d6caa361a0110db586878cbee5c7db8a8fdbdda189c16cad7cc424aa9c9db7b2a2a2a96e97a0e2628f4e74eddbdf55e4670ed9360fe5600559d29c885048b5a58862de55c88aa03f315f378d19b1fca09434123d5e88d7aa242eabd7544a66034ae5cfacb90634a0b35ae967d8100626510ef78b70dad84a55d5699e97890230ca33dee057105e54a05aab0c8a7218d46a45b13134b523927937a336929e73a87bbd3bb8dad8b4650ba0bfb907aa47cac9243aea8e34cb539686157ed5603467d284f28ad3b1215c54a0a029b3627c90d0678ddb46f0fbe658be1ef97cbe948a14d16e209e34affc437a45a032c71ce3c49db9466dc877aeecf5e6e0708276a671028b561c5943b08d970939a0db4e356ee957b09ccd1db62833111a7b0c7dc0f8db31e770ccb0b9cce815a65980", - "0xf90211a00199ebec052ed22ec0f7f3baadbf4559fc63f7b6ed4afceb12e77f4cd107f552a0b1260838ef4a96865c4105de409b570c9c7e1f232aa0528d47170826608b39bfa0ab3b6b9417f136f7b858500120393d56db48462b5f73575b828270007474c3c8a0adaaea49c8f4466508fdfe29c973dad5c6592e7ff40bd02936ee03e7f38878afa047b275e895b55bb486b443d58a78623a05a84a5404257085004213e25c0b0e37a0f855c06b679d3bf5aa56efbca1e05d78f7cca5a06631afd8b31630df69c86d7ea08c24490e9ae16703569edce216efe8c87ade650838f4c9e5113e6caf42015426a0881d7e4280f550ffbffd31824cf0e3e1b4dbd63804e51f353538005a30fc0877a0359099ca55fe012b1ddea17601858c0ce86a35d9b77e0ab174663fadd196a184a0ef822991cc9807764f76797868f5873ecf89ef9947d02476cf6b80396a51bce8a04778e1764db94bbf19e8d755984934b31f9bc064f898dd27e170867b0eac823ca09379eaf8b3c2657fb540017d486e96534126c04a055fe6f8c9114a9a38566c06a00470dc7697991a3eeeb7aed5cd5212034525c9b3528c4e8245d23b27ec771f9ba028974e7be411113dba8d00f8b958eb06e1c957f82f2225ae44d5e6e81106672ba0df616fb6078a75efb74089ddc02226b9ef55311a3f402c7860e40f77bf59a8d6a0ddd81505aafeee3d17a112a8f7d1606a6ff981c10413324c8dd739c0cd69616f80", - "0xf8d180a0d5b2c83c7cc15a06046240474cc04a5db122c9ff8d82de8d61c524745afbf07680a014122b1b68146a56a29ee76cebed16482c59c969e6be8b7a5a6955679e781df280a0c1d58006c474a8d0d4e6daaa915d29aa1bfe9f9b2e363e791163c48c7c93615880a072b769a2cf7fe7e626fb030a21cfea696b941029e65b0faefae6531c86334e9e80a0342d2f17569764b28d61ab5102510f2d8ed939e0d72364ae01408e47a14544d280a0bde4e80a8b068e227830b7508abf475868969120bf5c55d06d0208d9619fcd728080808080", - "0xf8709d30147f4cc0e0156d993334777d699c312c2fe454f8b3fa338ed309f4a0b850f84e048a0fb5ee5ed06fd56c7c0fa0149d15d1300498bff4bfceb56dc005e70c54241eea0a5a7058c62ec345bf505ba01f958654ab06a152993e7a0ae7b6dbb0d4b19265cc9337b8789fe1353bd9dc35", - ], - "address": "0x4200000000000000000000000000000000000016", - "balance": 74191534315593685302287n, - "codeHash": "0x1f958654ab06a152993e7a0ae7b6dbb0d4b19265cc9337b8789fe1353bd9dc35", - "nonce": 4, - "storageHash": "0x149d15d1300498bff4bfceb56dc005e70c54241eea0a5a7058c62ec345bf505b", - "storageProof": [ - { - "key": "0x4a932049252365b3eedbc5190e18949f2ec11f39d3bef2d259764799a1b27d99", - "proof": [ - "0xf90211a082fc9029ea5c161f91c01fa183cef98be25957c6164c110a252e4b8b6b334b15a064cb07fb0bec48bf53bac5077716ab7bb59ebc01c608bfba0da28d44501d79a7a0a0c5ef49c5d553fa66b51f51295d5f28fba0a5555822d7012c1daebe4bb57417a0082a52cc3fbe21f63aceebc88d8a9e365888e486b90feb465f58fd0e263ab2a2a05be6b594e391fe3c73c066f7a1f10d4bac03c1a0766775cd4400a2cc025f6990a03def6b5c9833c22543c44950ada488e3bd7fb01ec696a4e476a479cdec802cfba0e10829d63ea34e89b5ceb433686378dbc11b5aefe122c7f8a28804fed8b76ca5a07313dc662f421586094f4b83d31aa743c9157dd1596b27e64f7040e2d0d90f1ea08dc1dcb08f1918a1fae1520a1f8ab33641de2c93b16495824ca50311bebf1e1aa0dd6bd1211e2fbcff725db48da6e68317a7121615065747801e3bee54e73b9b49a0b7e7dae52bb6d6fded480d0b087334603ac5dbc224da7c48882fbed98136da36a0a88d97b0bda3cbff682d9e36bfd403a976e12addddf3695d69bc7993d8d56448a0e041640af48ec21b4010a38690af8c9e65966bc3ca0aa71a7dc0775f64692aefa09e8c04289de47e1d905322ed50051cf1d8e0af98ca32f4ba32d8f0fcaa042570a0f9df510aad677a4c31c99a339faadb5bf2e6dd68fbc35e1a7cb55721f915c029a0413484ecb5adfc44f7ce43a8e35da709060709ba270be02e8089cdff7c386eb880", - "0xf90211a07a2e200a8f16e47dcb91d71a374bca1effd36b306aa944c3329ca78d5a40d4efa074172fb34e3c981ce51c2f0d4b13efb14ac5a5a55c7047b6b568f8a358a85d66a0e39dd251e0e88ce17ad5b94e74fecc3c884fa00d5581e28357dff24aafd21c45a0f093fa90b2772ae0cb96c742af3002c01821ddece546d96c60fac37e25a131caa064fd388011e6a3db2e4e069e112abcaa261e1a5c8f330b2fdf0b6a79ac6a67fea04e7ac3ceace081892ccf722c7075ae14471f213bf6b59cc7130476653a1d04bea012f91703aed54e6853294a560305aa7cc91c9c4fdd6e3a38d7d0ded2ff885305a0af76fe6e44f3933e3d089adfccdcecc424f3b1fed6f78b4578ab637d5bc37bfaa0c55e93899edd98059ef73ccd3bf494443e3920b14cc39bdeec53dce324de9b47a097dfe8a1ab57520fba75a3d0e4f262da1c02c32ee5e3e0914f37811dc7bc2e1da021f69e5e122ca6a80706509a807abf55eb61fe3cd9494357809aef507527cf00a0b9360d3affb06287b1ea34e05e73ff8c54c9474a5bbc25a0faf7911ed68ffcb1a082692b8ddba185029f3a4b7a6e1603522fa1681ec6e5d57898acc88f2a97cf62a0e5f37e8935f9afd5d5cf57d0b77699e12f03e83f692b6e68396ef7df409a099da0eff23323d9dbc46566310cf79bb330e03c5cfcb14f2dca6817376a25fed4e591a0d644c69038d00f36a57ba40f7d4f92b8bcb7b4d7f6c99be2fac989825d269e9680", - "0xf90211a02256a3dcab8a3656cfa906d0c3383987accb52b37d42436f2779b5e28a2e781ea00a1a86acaf1aafcad70bf8a462b3812d3d9d8dd04ec50a8d49db6eeb787538e1a02f728ef08fa473d3ee26f48cbbe025ff49c8efb7278b6a41392001b6a336ed9ea0a337a197c7beca40a182ee5e8a3ce5ecec54c9eca93161824bc8c8682c41b1d4a042bfe6c9c83b7829f827998a2f3c3556d3936adbe363b61e01f87d2553d3a4b2a05a9e6a84f98b98ac6d7ab19e649aee2cb37f7275055f9b6c25f0e8273dd0668ea070d6c892cc4f92b14ff2ad64eb0a0c653471cdaa788e40830363f31fc74ae084a0b155c0c14b5bfc1f832ab7f2de898e0ab90e2f51d9c3a9fefe3b9261b4b94a0ba01ab278c060ce4799fd3032cad51f8871bc2792ab195fbe2e3b18a66ec17a9255a04cf1677370cfd1113d7292c7642516c505931734ebee7ecfaf9cea60ae674044a0147032733387b67d84c2dd87f2dd68c7761cd3e505ec0703da30ac9a843f387aa0d7838721a1bb502a0dd278cc2b323358b35f49253e7b0a6fa7e1ea7943d0e3a1a018cc53f6f51671a7f984788cec8a3c80d3e1fc49d1bf6e255245f82ff3df6365a0218f211dd9cb46783d740eb0ac46cc1630f5f3e99d9c18006535fb94decee74ba0db499ee27ab3c1530244308ef91e7fa40cb5261609cb37857bdc4cefea434f81a050a2f6f0e7f10b9f957a566e2fd4641d6fee7277eef6ad4d4955c8a1d0f43dd480", - "0xf901b1a0afda91b7b1dfce2e5442b5b727498d66c631f5d3e619c1123266796396c7b3aaa06b8822be2629b7e5b281e8e5d4770838b373e91cae52019e715e1135a491dd1ca0e0e75a7bf2358956ae0d320fccfe76a8379e66f8450c82a47b702bf64604c1f98080a003116e33645e334f221ef3b4724c77733b73382bb686127c9bed3928d1cc3c16a02951521fe4306019363d0b587ea1dec4b2df028364f689cfa57ee1cc4dbf109ca06505871148d8fe4e7c335393f1ecc660d793e686af2385a9acf1a3d9788b7700a085ff044bd791555cc59cfac5ed5c17e1c69959c9e93a82c935bbe7339d7112f1a0dbdad86b6dc440b20ebe6db935738851b7e482ed54f728962d4c6a2af072116ba03148d81cce54eefefd1adc6c457359eeca1892f49ec80e061cf7622d0b0d1c87a0842517cbab04fa095b7e0c6a3d4e61c79ecde20f60d1bb04fc55fe13d02de23a80a02ee52ddf4999ae7bc96c2d0c0afe7c4831263e588a91b716c841b96806bb5edda0d57a51a236d736e25388017b23bd6646e9150dad4ddf27d9024d64815995ebd0a06a60b7eef7476f51fd08686963ec92f5153a28f6a7cab73a8dec06158eff706b80", - ], - "value": 0n, - }, - ], - }, + "data": null, "dataUpdatedAt": 1675209600000, "error": null, "errorUpdateCount": 0, @@ -203,7 +143,6 @@ test('behavior: address: undefined -> defined', async () => { "getProof", { "address": "0x4200000000000000000000000000000000000016", - "blockNumber": 114571816n, "chainId": 10, "storageKeys": [ "0x4a932049252365b3eedbc5190e18949f2ec11f39d3bef2d259764799a1b27d99", diff --git a/packages/test/package.json b/packages/test/package.json index f4e1f9fff4..d1c6fb9c19 100644 --- a/packages/test/package.json +++ b/packages/test/package.json @@ -58,7 +58,7 @@ "@types/react-dom": ">=18", "@wagmi/core": "workspace:*", "@wagmi/vue": "workspace:*", - "prool": "^0.0.4", + "prool": "^0.0.23", "react": ">=18", "react-dom": ">=18", "typescript": ">=5.0.4", diff --git a/packages/test/src/chains.ts b/packages/test/src/chains.ts index a79cea6a0b..af9bdc5d99 100644 --- a/packages/test/src/chains.ts +++ b/packages/test/src/chains.ts @@ -18,7 +18,7 @@ export type Chain = Compute< const mainnetFork = { blockNumber: 19_258_213n, - url: process.env.VITE_MAINNET_FORK_URL ?? 'https://cloudflare-eth.com', + url: process.env.VITE_MAINNET_FORK_URL ?? 'https://eth.merkle.io', } as const satisfies Fork export const mainnet = { diff --git a/packages/test/src/utils.ts b/packages/test/src/utils.ts index fe430fe911..85afe15c4b 100644 --- a/packages/test/src/utils.ts +++ b/packages/test/src/utils.ts @@ -1,4 +1,5 @@ -const pool = Number(process.env.VITEST_POOL_ID ?? 1) +const pool = + Number(process.env.VITEST_POOL_ID ?? 1) + Math.floor(Math.random() * 10000) export function getRpcUrls({ port }: { port: number }) { return { diff --git a/packages/vue/src/exports/actions/experimental.test.ts b/packages/vue/src/exports/actions/experimental.test.ts index 8622a69c9d..57090767c3 100644 --- a/packages/vue/src/exports/actions/experimental.test.ts +++ b/packages/vue/src/exports/actions/experimental.test.ts @@ -9,14 +9,12 @@ test('exports', () => { "getCapabilities", "sendCalls", "showCallsStatus", - "writeContracts", "getCallsStatusQueryOptions", "getCallsStatusQueryKey", "getCapabilitiesQueryOptions", "getCapabilitiesQueryKey", "sendCallsMutationOptions", "showCallsStatusMutationOptions", - "writeContractsMutationOptions", ] `) }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b1ee1ed7eb..7e1e8c64ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,8 +72,8 @@ importers: specifier: ^5.30.6 version: 5.30.6(@types/node@20.12.10)(typescript@5.5.4) prool: - specifier: ^0.0.16 - version: 0.0.16 + specifier: ^0.0.23 + version: 0.0.23 publint: specifier: ^0.2.11 version: 0.2.11 @@ -87,8 +87,8 @@ importers: specifier: 5.5.4 version: 5.5.4 viem: - specifier: 2.21.28 - version: 2.21.28(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4) + specifier: 2.23.5 + version: 2.23.5(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4) vitest: specifier: ^2.1.1 version: 2.1.1(@types/node@20.12.10)(happy-dom@15.7.4)(msw@2.4.9(typescript@5.5.4))(terser@5.31.0) @@ -1894,6 +1894,10 @@ packages: resolution: {integrity: sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==} engines: {node: ^14.21.3 || >=16} + '@noble/curves@1.8.1': + resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==} + engines: {node: ^14.21.3 || >=16} + '@noble/hashes@1.2.0': resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} @@ -1913,6 +1917,10 @@ packages: resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} engines: {node: ^14.21.3 || >=16} + '@noble/hashes@1.7.1': + resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==} + engines: {node: ^14.21.3 || >=16} + '@noble/secp256k1@1.7.1': resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} @@ -2621,6 +2629,9 @@ packages: '@scure/base@1.1.9': resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} + '@scure/base@1.2.4': + resolution: {integrity: sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==} + '@scure/bip32@1.1.5': resolution: {integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==} @@ -2633,8 +2644,8 @@ packages: '@scure/bip32@1.4.0': resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} - '@scure/bip32@1.5.0': - resolution: {integrity: sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==} + '@scure/bip32@1.6.2': + resolution: {integrity: sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==} '@scure/bip39@1.1.1': resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} @@ -2645,8 +2656,8 @@ packages: '@scure/bip39@1.3.0': resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} - '@scure/bip39@1.4.0': - resolution: {integrity: sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==} + '@scure/bip39@1.5.4': + resolution: {integrity: sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==} '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -3581,8 +3592,8 @@ packages: zod: optional: true - abitype@1.0.6: - resolution: {integrity: sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==} + abitype@1.0.8: + resolution: {integrity: sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==} peerDependencies: typescript: '>=5.0.4' zod: ^3 >=3.22.0 @@ -5839,10 +5850,6 @@ packages: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} - minipass@7.1.0: - resolution: {integrity: sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig==} - engines: {node: '>=16 || 14 >=14.17'} - minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -6224,6 +6231,14 @@ packages: outvariant@1.4.3: resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + ox@0.6.7: + resolution: {integrity: sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==} + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -6675,8 +6690,8 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} - prool@0.0.16: - resolution: {integrity: sha512-s+i66jsINIJQd8w5iGunT8hCeM6RSXjL8qgXDTvcIuaAOjVRVMh0/PgbJ90KR3JAprXWXpa5XQnDEc4fLnvy1Q==} + prool@0.0.23: + resolution: {integrity: sha512-r1d0DIiVsp7aXqGiNGKmgrqJZa8GjMGEjsgjQO22DEClYYvK+HMPZTQ9diBqleGuwfiRk3lnsWRMbFTRmFbk9g==} engines: {node: '>=22'} peerDependencies: '@pimlico/alto': '*' @@ -7769,8 +7784,8 @@ packages: typescript: optional: true - viem@2.21.28: - resolution: {integrity: sha512-CbS2Ldq+SdZYYSG+P4oNLi1s6xq7JnZoJsIkMhFcZUMRz3w2J1OvC1izUp6E1/Zp/XXo3wt6g/Ae+f3SGzup2A==} + viem@2.23.5: + resolution: {integrity: sha512-cUfBHdFQHmBlPW0loFXda0uZcoU+uJw3NRYQRwYgkrpH6PgovH8iuVqDn6t1jZk82zny4wQL54c9dCX2W9kLMg==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -8026,9 +8041,6 @@ packages: wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - webauthn-p256@0.0.10: - resolution: {integrity: sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==} - webextension-polyfill@0.10.0: resolution: {integrity: sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==} @@ -9757,6 +9769,10 @@ snapshots: dependencies: '@noble/hashes': 1.5.0 + '@noble/curves@1.8.1': + dependencies: + '@noble/hashes': 1.7.1 + '@noble/hashes@1.2.0': {} '@noble/hashes@1.3.1': {} @@ -9767,6 +9783,8 @@ snapshots: '@noble/hashes@1.5.0': {} + '@noble/hashes@1.7.1': {} + '@noble/secp256k1@1.7.1': {} '@nodelib/fs.scandir@2.1.5': @@ -10680,6 +10698,8 @@ snapshots: '@scure/base@1.1.9': {} + '@scure/base@1.2.4': {} + '@scure/bip32@1.1.5': dependencies: '@noble/hashes': 1.2.0 @@ -10704,11 +10724,11 @@ snapshots: '@noble/hashes': 1.4.0 '@scure/base': 1.1.7 - '@scure/bip32@1.5.0': + '@scure/bip32@1.6.2': dependencies: - '@noble/curves': 1.6.0 - '@noble/hashes': 1.5.0 - '@scure/base': 1.1.7 + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@scure/base': 1.2.4 '@scure/bip39@1.1.1': dependencies: @@ -10725,10 +10745,10 @@ snapshots: '@noble/hashes': 1.4.0 '@scure/base': 1.1.7 - '@scure/bip39@1.4.0': + '@scure/bip39@1.5.4': dependencies: - '@noble/hashes': 1.5.0 - '@scure/base': 1.1.9 + '@noble/hashes': 1.7.1 + '@scure/base': 1.2.4 '@sec-ant/readable-stream@0.4.1': {} @@ -12398,7 +12418,7 @@ snapshots: typescript: 5.5.4 zod: 3.22.4 - abitype@1.0.6(typescript@5.5.4)(zod@3.22.4): + abitype@1.0.8(typescript@5.5.4)(zod@3.22.4): optionalDependencies: typescript: 5.5.4 zod: 3.22.4 @@ -15018,8 +15038,6 @@ snapshots: minipass@5.0.0: {} - minipass@7.1.0: {} - minipass@7.1.2: {} minisearch@7.1.0: {} @@ -15739,6 +15757,20 @@ snapshots: outvariant@1.4.3: {} + ox@0.6.7(typescript@5.5.4)(zod@3.22.4): + dependencies: + '@adraffy/ens-normalize': 1.11.0 + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + abitype: 1.0.8(typescript@5.5.4)(zod@3.22.4) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - zod + p-filter@2.1.0: dependencies: p-map: 2.1.0 @@ -16169,7 +16201,7 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 - prool@0.0.16: + prool@0.0.23: dependencies: change-case: 5.4.4 eventemitter3: 5.0.1 @@ -16900,7 +16932,7 @@ snapshots: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 - minipass: 7.1.0 + minipass: 7.1.2 minizlib: 3.0.1 mkdirp: 3.0.1 yallist: 5.0.0 @@ -17417,16 +17449,15 @@ snapshots: - utf-8-validate - zod - viem@2.21.28(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4): + viem@2.23.5(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4): dependencies: - '@adraffy/ens-normalize': 1.11.0 - '@noble/curves': 1.6.0 - '@noble/hashes': 1.5.0 - '@scure/bip32': 1.5.0 - '@scure/bip39': 1.4.0 - abitype: 1.0.6(typescript@5.5.4)(zod@3.22.4) + '@noble/curves': 1.8.1 + '@noble/hashes': 1.7.1 + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + abitype: 1.0.8(typescript@5.5.4)(zod@3.22.4) isows: 1.0.6(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - webauthn-p256: 0.0.10 + ox: 0.6.7(typescript@5.5.4)(zod@3.22.4) ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) optionalDependencies: typescript: 5.5.4 @@ -17818,11 +17849,6 @@ snapshots: defaults: 1.0.4 optional: true - webauthn-p256@0.0.10: - dependencies: - '@noble/curves': 1.6.0 - '@noble/hashes': 1.5.0 - webextension-polyfill@0.10.0: {} webidl-conversions@3.0.1: {} diff --git a/site/.vitepress/sidebar.ts b/site/.vitepress/sidebar.ts index da4d4bf5e2..2bbc0b4d48 100644 --- a/site/.vitepress/sidebar.ts +++ b/site/.vitepress/sidebar.ts @@ -371,10 +371,6 @@ export function getSidebar() { text: 'useShowCallsStatus', link: '/react/api/hooks/useShowCallsStatus', }, - { - text: 'useWriteContracts', - link: '/react/api/hooks/useWriteContracts', - }, ], }, ], @@ -995,10 +991,6 @@ export function getSidebar() { text: 'showCallsStatus', link: '/core/api/actions/showCallsStatus', }, - { - text: 'writeContracts', - link: '/core/api/actions/writeContracts', - }, ], }, ], diff --git a/site/core/api/actions/sendCalls.md b/site/core/api/actions/sendCalls.md index 92332bd99d..6707802f20 100644 --- a/site/core/api/actions/sendCalls.md +++ b/site/core/api/actions/sendCalls.md @@ -52,9 +52,11 @@ import { type SendCallsParameters } from '@wagmi/core/experimental' ### account -`Account | Address | undefined` +`Account | Address | null | undefined` -Account to execute the calls. +Account to execute the calls. + +If set to `null`, it is assumed that the wallet will handle filling the sender of the calls. ::: code-group ```ts [index.ts] diff --git a/site/core/api/actions/writeContracts.md b/site/core/api/actions/writeContracts.md deleted file mode 100644 index c782330707..0000000000 --- a/site/core/api/actions/writeContracts.md +++ /dev/null @@ -1,319 +0,0 @@ - - -# writeContracts - -Action that requests for the wallet to sign and broadcast a batch of write contract calls (transactions) to the network. - -[Read more.](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_sendcalls) - -::: warning -This is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production. -::: - -## Import - -```ts -import { writeContracts } from '@wagmi/core/experimental' -``` - -## Usage - -::: code-group -```ts [index.ts] -import { parseAbi } from 'viem' -import { writeContracts } from '@wagmi/core/experimental' -import { config } from './config' - -const abi = parseAbi([ - 'function approve(address, uint256) returns (bool)', - 'function transferFrom(address, address, uint256) returns (bool)', -]) - -const id = await writeContracts(config, { - contracts: [ - { - address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', - abi, - functionName: 'approve', - args: [ - '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', - 100n - ], - }, - { - address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', - abi, - functionName: 'transferFrom', - args: [ - '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', - '0x0000000000000000000000000000000000000000', - 100n - ], - }, - ], -}) -``` -<<< @/snippets/core/config.ts[config.ts] -::: - -## Parameters - -```ts -import { type WriteContractsParameters } from '@wagmi/core/experimental' -``` - -### account - -`Account | Address | undefined` - -Account to execute the calls. - -::: code-group -```ts [index.ts] -import { parseAbi } from 'viem' -import { writeContracts } from '@wagmi/core/experimental' -import { config } from './config' - -const abi = parseAbi([ - 'function approve(address, uint256) returns (bool)', - 'function transferFrom(address, address, uint256) returns (bool)', -]) - -const id = await writeContracts(config, { - account: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus] - contracts: [ - { - address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', - abi, - functionName: 'approve', - args: [ - '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', - 100n - ], - }, - { - address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', - abi, - functionName: 'transferFrom', - args: [ - '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', - '0x0000000000000000000000000000000000000000', - 100n - ], - }, - ], -}) -``` -<<< @/snippets/core/config.ts[config.ts] -::: - -### contracts - -`{ to: Hex, data?: Hex, value?: bigint }[]` - -Calls to execute. - -::: code-group -```ts [index.ts] -import { parseAbi } from 'viem' -import { writeContracts } from '@wagmi/core/experimental' -import { config } from './config' - -const abi = parseAbi([ - 'function approve(address, uint256) returns (bool)', - 'function transferFrom(address, address, uint256) returns (bool)', -]) - -const id = await writeContracts(config, { - contracts: [ // [!code focus] - { // [!code focus] - address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus] - abi, // [!code focus] - functionName: 'approve', // [!code focus] - args: [ // [!code focus] - '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus] - 100n // [!code focus] - ], // [!code focus] - }, // [!code focus] - { // [!code focus] - address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', // [!code focus] - abi, // [!code focus] - functionName: 'transferFrom', // [!code focus] - args: [ // [!code focus] - '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', // [!code focus] - '0x0000000000000000000000000000000000000000', // [!code focus] - 100n // [!code focus] - ], // [!code focus] - }, // [!code focus] - ], // [!code focus] -}) -``` -<<< @/snippets/core/config.ts[config.ts] -::: - -### capabilities - -`WalletCapabilities | undefined` - -Capability metadata for the calls (e.g. specifying a paymaster). - -::: code-group -```ts [index.ts] -import { parseAbi } from 'viem' -import { writeContracts } from '@wagmi/core/experimental' -import { config } from './config' - -const abi = parseAbi([ - 'function approve(address, uint256) returns (bool)', - 'function transferFrom(address, address, uint256) returns (bool)', -]) - -const id = await writeContracts(config, { - contracts: [ - { - address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', - abi, - functionName: 'approve', - args: [ - '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', - 100n - ], - }, - { - address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', - abi, - functionName: 'transferFrom', - args: [ - '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', - '0x0000000000000000000000000000000000000000', - 100n - ], - }, - ], - capabilities: { // [!code focus] - paymasterService: { // [!code focus] - url: 'https://...' // [!code focus] - } // [!code focus] - } // [!code focus] -}) -``` -<<< @/snippets/core/config.ts[config.ts] -::: - -### chainId - -`number | undefined` - -The target chain ID to broadcast the calls. - -::: code-group -```ts [index.ts] -import { parseAbi } from 'viem' -import { writeContracts } from '@wagmi/core/experimental' -import { config } from './config' - -const abi = parseAbi([ - 'function approve(address, uint256) returns (bool)', - 'function transferFrom(address, address, uint256) returns (bool)', -]) - -const id = await writeContracts(config, { - contracts: [ - { - address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', - abi, - functionName: 'approve', - args: [ - '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', - 100n - ], - }, - { - address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', - abi, - functionName: 'transferFrom', - args: [ - '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', - '0x0000000000000000000000000000000000000000', - 100n - ], - }, - ], - chainId: 10, // [!code focus] -}) -``` -<<< @/snippets/core/config.ts[config.ts] -::: - -### connector - -`Connector | undefined` - -Connector to get send the calls with. - -::: code-group -```ts [index.ts] -import { parseAbi } from 'viem' -import { getConnections } from '@wagmi/core' -import { writeContracts } from '@wagmi/core/experimental' -import { config } from './config' - -const abi = parseAbi([ - 'function approve(address, uint256) returns (bool)', - 'function transferFrom(address, address, uint256) returns (bool)', -]) - -const connections = getConnections(config) -const id = await writeContracts(config, { - contracts: [ - { - address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', - abi, - functionName: 'approve', - args: [ - '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', - 100n - ], - }, - { - address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2', - abi, - functionName: 'transferFrom', - args: [ - '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', - '0x0000000000000000000000000000000000000000', - 100n - ], - }, - ], - connector: connections[0]?.connector, // [!code focus] -}) -``` -<<< @/snippets/core/config.ts[config.ts] -::: - -## Return Type - -```ts -import { type WriteContractsReturnType } from '@wagmi/core/experimental' -``` - -`bigint` - -Most recent block number seen. - -## Error - -```ts -import { type WriteContractsErrorType } from '@wagmi/core/experimental' -``` - - - -## Viem - -- [`writeContracts`](https://viem.sh/experimental/eip5792/writeContracts) diff --git a/site/dev/contributing.md b/site/dev/contributing.md index 1d9ffa2f68..f5c0d8335a 100644 --- a/site/dev/contributing.md +++ b/site/dev/contributing.md @@ -64,7 +64,7 @@ After the install completes, pnpm links packages across the project for developm The [dev playgrounds](#_5-running-the-dev-playgrounds) and [test suite](#_6-running-the-test-suite) require environment variables to be set. Copy over the following environment variables to `.env`, and fill them out. ```bash -VITE_MAINNET_FORK_URL=https://cloudflare-eth.com +VITE_MAINNET_FORK_URL=https://eth.merkle.io VITE_OPTIMISM_FORK_URL=https://mainnet.optimism.io NEXT_PUBLIC_WC_PROJECT_ID=3fbb6bba6f1de962d911bb5b5c9dba88 diff --git a/site/react/api/hooks/useWriteContracts.md b/site/react/api/hooks/useWriteContracts.md deleted file mode 100644 index 8f1964b187..0000000000 --- a/site/react/api/hooks/useWriteContracts.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: useWriteContracts -description: Hook that requests for the wallet to sign and broadcast a batch of calls (transactions) to the network. ---- - - - -# useWriteContracts - -Hook that requests for the wallet to sign and broadcast a batch of write contract calls (transactions) to the network. - -[Read more.](https://github.com/ethereum/EIPs/blob/815028dc634463e1716fc5ce44c019a6040f0bef/EIPS/eip-5792.md#wallet_sendcalls) - -::: warning -This is an experimental Hook that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production. -::: - -## Import - -```ts -import { useWriteContracts } from 'wagmi/experimental' -``` - -## Usage - -::: code-group -```tsx [index.tsx] -import { useWriteContracts } from 'wagmi/experimental' -import { parseAbi } from 'viem' - -const abi = parseAbi([ - 'function approve(address, uint256) returns (bool)', - 'function transferFrom(address, address, uint256) returns (bool)', -]) - -function App() { - const { writeContracts } = useWriteContracts() - - return ( - - ) -} -``` -<<< @/snippets/react/config.ts[config.ts] -::: - -## Parameters - -```ts -import { type UseWriteContractsParameters } from 'wagmi/experimental' -``` - -### config - -`Config | undefined` - -[`Config`](/react/api/createConfig#config) to use instead of retrieving from the nearest [`WagmiProvider`](/react/api/WagmiProvider). - -::: code-group -```tsx [index.tsx] -import { useWriteContracts } from 'wagmi/experimental' -import { config } from './config' // [!code focus] - -function App() { - const result = useWriteContracts({ - config, // [!code focus] - }) -} -``` -<<< @/snippets/react/config.ts[config.ts] -::: - - - -## Return Type - -```ts -import { type UseWriteContractsReturnType } from 'wagmi/experimental' -``` - - - - - -## Action - -- [`writeContracts`](/core/api/actions/writeContracts) diff --git a/site/shared/create-chain.md b/site/shared/create-chain.md index 3735d1bfe0..da2a7194cd 100644 --- a/site/shared/create-chain.md +++ b/site/shared/create-chain.md @@ -28,7 +28,7 @@ export const mainnet = { name: 'Ethereum', nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, rpcUrls: { - default: { http: ['https://cloudflare-eth.com'] }, + default: { http: ['https://eth.merkle.io'] }, }, blockExplorers: { default: { name: 'Etherscan', url: 'https://etherscan.io' }, @@ -56,7 +56,7 @@ export const mainnet = defineChain({ name: 'Ethereum', nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, rpcUrls: { - default: { http: ['https://cloudflare-eth.com'] }, + default: { http: ['https://eth.merkle.io'] }, }, blockExplorers: { default: { name: 'Etherscan', url: 'https://etherscan.io' },