From 3f3bfe5526fce3b6aa6aa89e215b9eea0085ab06 Mon Sep 17 00:00:00 2001 From: Jonas Daniels Date: Fri, 23 Feb 2024 11:49:42 -0800 Subject: [PATCH] refactor: simplify contract method signatures --- .../src/contract/deployment/deploy-via-clone-factory.ts | 2 +- packages/thirdweb/src/extensions/erc1155/read/balanceOf.ts | 3 +-- .../thirdweb/src/extensions/erc1155/read/balanceOfBatch.ts | 3 +-- .../src/extensions/erc1155/read/nextTokenIdToMint.ts | 2 +- packages/thirdweb/src/extensions/erc1155/read/tokenURI.ts | 3 +-- packages/thirdweb/src/extensions/erc1155/read/totalSupply.ts | 2 +- packages/thirdweb/src/extensions/erc20/read/allowance.ts | 3 +-- packages/thirdweb/src/extensions/erc20/read/balanceOf.ts | 2 +- packages/thirdweb/src/extensions/erc20/read/decimals.ts | 2 +- packages/thirdweb/src/extensions/erc20/read/totalSupply.ts | 2 +- packages/thirdweb/src/extensions/erc20/write/approve.ts | 2 +- packages/thirdweb/src/extensions/erc20/write/mintTo.ts | 2 +- packages/thirdweb/src/extensions/erc20/write/transfer.ts | 2 +- packages/thirdweb/src/extensions/erc20/write/transferFrom.ts | 2 +- packages/thirdweb/src/extensions/erc721/read/balanceOf.ts | 3 +-- .../thirdweb/src/extensions/erc721/read/nextTokenIdToMint.ts | 2 +- packages/thirdweb/src/extensions/erc721/read/ownerOf.ts | 3 +-- packages/thirdweb/src/extensions/erc721/read/startTokenId.ts | 2 +- packages/thirdweb/src/extensions/erc721/read/tokenURI.ts | 2 +- packages/thirdweb/src/extensions/erc721/read/totalSupply.ts | 2 +- packages/thirdweb/src/extensions/erc721/write/mintTo.ts | 2 +- .../thirdweb/src/extensions/erc721/write/transferFrom.ts | 2 +- packages/thirdweb/src/transaction/actions/encode.test.ts | 2 +- .../thirdweb/src/transaction/actions/estimate-gas.test.ts | 2 +- packages/thirdweb/src/transaction/actions/simulate.test.ts | 2 +- packages/thirdweb/src/transaction/read-contract.test.ts | 2 +- packages/thirdweb/src/wallets/smart/lib/calls.ts | 5 ++--- 27 files changed, 28 insertions(+), 35 deletions(-) diff --git a/packages/thirdweb/src/contract/deployment/deploy-via-clone-factory.ts b/packages/thirdweb/src/contract/deployment/deploy-via-clone-factory.ts index 7df5bc8c606..7c724130843 100644 --- a/packages/thirdweb/src/contract/deployment/deploy-via-clone-factory.ts +++ b/packages/thirdweb/src/contract/deployment/deploy-via-clone-factory.ts @@ -56,7 +56,7 @@ export async function prepareDeployTransactionViaCloneFactory( return prepareContractCall({ contract: factory, method: - "function deployProxyByImplementation(address _implementation, bytes memory _data, bytes32 _salt) returns (address deployedProxy)", + "function deployProxyByImplementation(address, bytes, bytes32) returns (address)", params: async () => { const implementation = getContract({ client, diff --git a/packages/thirdweb/src/extensions/erc1155/read/balanceOf.ts b/packages/thirdweb/src/extensions/erc1155/read/balanceOf.ts index a70f8baafd5..8b3a6b46ffa 100644 --- a/packages/thirdweb/src/extensions/erc1155/read/balanceOf.ts +++ b/packages/thirdweb/src/extensions/erc1155/read/balanceOf.ts @@ -22,8 +22,7 @@ export function balanceOf( ): Promise { return readContract({ ...options, - method: - "function balanceOf(owner address, tokenId uint256) view returns (uint256)", + method: "function balanceOf(address, uint256) view returns (uint256)", params: [options.address, options.tokenId], }); } diff --git a/packages/thirdweb/src/extensions/erc1155/read/balanceOfBatch.ts b/packages/thirdweb/src/extensions/erc1155/read/balanceOfBatch.ts index 38c2d2e689e..642c53bceb0 100644 --- a/packages/thirdweb/src/extensions/erc1155/read/balanceOfBatch.ts +++ b/packages/thirdweb/src/extensions/erc1155/read/balanceOfBatch.ts @@ -22,8 +22,7 @@ export function balanceOfBatch( ): Promise { return readContract({ ...options, - method: - "function balanceOfBatch(owners address[], tokenIds uint256[]) view returns (uint256[])", + method: "function balanceOfBatch(address[], uint256[]) returns (uint256[])", params: [options.owners, options.tokenIds], }); } diff --git a/packages/thirdweb/src/extensions/erc1155/read/nextTokenIdToMint.ts b/packages/thirdweb/src/extensions/erc1155/read/nextTokenIdToMint.ts index c5ae9abab79..b4f55872c49 100644 --- a/packages/thirdweb/src/extensions/erc1155/read/nextTokenIdToMint.ts +++ b/packages/thirdweb/src/extensions/erc1155/read/nextTokenIdToMint.ts @@ -17,6 +17,6 @@ export function nextTokenIdToMint( ): Promise { return readContract({ ...options, - method: "function nextTokenIdToMint() view returns (uint256)", + method: "function nextTokenIdToMint() returns (uint256)", }); } diff --git a/packages/thirdweb/src/extensions/erc1155/read/tokenURI.ts b/packages/thirdweb/src/extensions/erc1155/read/tokenURI.ts index d50bddd6e42..df7e227873a 100644 --- a/packages/thirdweb/src/extensions/erc1155/read/tokenURI.ts +++ b/packages/thirdweb/src/extensions/erc1155/read/tokenURI.ts @@ -19,8 +19,7 @@ export function tokenURI( ): Promise { return readContract({ ...options, - method: - "function tokenURI(tokenId uint256) external view returns (string memory)", + method: "function tokenURI(uint256) returns (string)", params: [options.tokenId], }); } diff --git a/packages/thirdweb/src/extensions/erc1155/read/totalSupply.ts b/packages/thirdweb/src/extensions/erc1155/read/totalSupply.ts index ef7e18b3662..fbcc85c70d1 100644 --- a/packages/thirdweb/src/extensions/erc1155/read/totalSupply.ts +++ b/packages/thirdweb/src/extensions/erc1155/read/totalSupply.ts @@ -19,7 +19,7 @@ export function totalSupply( ): Promise { return readContract({ ...options, - method: "function totalSupply(tokenId uint256) view returns (uint256)", + method: "function totalSupply(uint256) returns (uint256)", params: [options.tokenId], }); } diff --git a/packages/thirdweb/src/extensions/erc20/read/allowance.ts b/packages/thirdweb/src/extensions/erc20/read/allowance.ts index dc2c861ac05..3d882112df3 100644 --- a/packages/thirdweb/src/extensions/erc20/read/allowance.ts +++ b/packages/thirdweb/src/extensions/erc20/read/allowance.ts @@ -23,8 +23,7 @@ export function allowance( ): Promise { return readContract({ ...options, - method: - "function allowance(address owner, address spender) view returns (uint256)", + method: "function allowance(address, address) returns (uint256)", params: [options.owner, options.spender], }); } diff --git a/packages/thirdweb/src/extensions/erc20/read/balanceOf.ts b/packages/thirdweb/src/extensions/erc20/read/balanceOf.ts index 596a60a0401..928f16ee3cb 100644 --- a/packages/thirdweb/src/extensions/erc20/read/balanceOf.ts +++ b/packages/thirdweb/src/extensions/erc20/read/balanceOf.ts @@ -5,7 +5,7 @@ import { readContract } from "../../../transaction/read-contract.js"; import type { BaseTransactionOptions } from "../../../transaction/types.js"; import { toTokens } from "../../../utils/units.js"; -const METHOD = "function balanceOf(address) view returns (uint256)" as const; +const METHOD = "function balanceOf(address) returns (uint256)" as const; type BalanceOfParams = { address: string }; diff --git a/packages/thirdweb/src/extensions/erc20/read/decimals.ts b/packages/thirdweb/src/extensions/erc20/read/decimals.ts index 8e61efddb3d..df732cd6037 100644 --- a/packages/thirdweb/src/extensions/erc20/read/decimals.ts +++ b/packages/thirdweb/src/extensions/erc20/read/decimals.ts @@ -5,7 +5,7 @@ import { detectMethod } from "../../../utils/bytecode/detectExtension.js"; const cache = new WeakMap, Promise>(); -const METHOD = "function decimals() view returns (uint8)" as const; +const METHOD = "function decimals() returns (uint8)" as const; /** * Detects if the contract has a function to retrieve the number of decimals. diff --git a/packages/thirdweb/src/extensions/erc20/read/totalSupply.ts b/packages/thirdweb/src/extensions/erc20/read/totalSupply.ts index 71cab7639f9..d9a1db0d1b2 100644 --- a/packages/thirdweb/src/extensions/erc20/read/totalSupply.ts +++ b/packages/thirdweb/src/extensions/erc20/read/totalSupply.ts @@ -15,6 +15,6 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js"; export function totalSupply(options: BaseTransactionOptions): Promise { return readContract({ ...options, - method: "function totalSupply() view returns (uint256)", + method: "function totalSupply() returns (uint256)", }); } diff --git a/packages/thirdweb/src/extensions/erc20/write/approve.ts b/packages/thirdweb/src/extensions/erc20/write/approve.ts index 6540c6d0b58..339e095c965 100644 --- a/packages/thirdweb/src/extensions/erc20/write/approve.ts +++ b/packages/thirdweb/src/extensions/erc20/write/approve.ts @@ -33,7 +33,7 @@ export type ApproveParams = Prettify< export function approve(options: BaseTransactionOptions) { return prepareContractCall({ ...options, - method: "function approve(address spender, uint256 value) returns (bool)", + method: "function approve(address, uint256) returns (bool)", params: async () => { let amount: bigint; if ("amount" in options) { diff --git a/packages/thirdweb/src/extensions/erc20/write/mintTo.ts b/packages/thirdweb/src/extensions/erc20/write/mintTo.ts index 3c234eb1555..a99becef067 100644 --- a/packages/thirdweb/src/extensions/erc20/write/mintTo.ts +++ b/packages/thirdweb/src/extensions/erc20/write/mintTo.ts @@ -32,7 +32,7 @@ export type MintToParams = Prettify< export function mintTo(options: BaseTransactionOptions) { return prepareContractCall({ ...options, - method: "function mintTo(address to, uint256 amount)", + method: "function mintTo(address, uint256)", params: async () => { let amount: bigint; if ("amount" in options) { diff --git a/packages/thirdweb/src/extensions/erc20/write/transfer.ts b/packages/thirdweb/src/extensions/erc20/write/transfer.ts index 8a00c54b1c2..97e1d3205c3 100644 --- a/packages/thirdweb/src/extensions/erc20/write/transfer.ts +++ b/packages/thirdweb/src/extensions/erc20/write/transfer.ts @@ -32,7 +32,7 @@ export type TransferParams = Prettify< export function transfer(options: BaseTransactionOptions) { return prepareContractCall({ contract: options.contract, - method: "function transfer(address to, uint256 value)", + method: "function transfer(address, uint256)", params: async () => { let amount: bigint; if ("amount" in options) { diff --git a/packages/thirdweb/src/extensions/erc20/write/transferFrom.ts b/packages/thirdweb/src/extensions/erc20/write/transferFrom.ts index be62d4e24ab..fe9e7a913f8 100644 --- a/packages/thirdweb/src/extensions/erc20/write/transferFrom.ts +++ b/packages/thirdweb/src/extensions/erc20/write/transferFrom.ts @@ -37,7 +37,7 @@ export function transferFrom( ) { return prepareContractCall({ ...options, - method: "function transferFrom(address from, address to, uint256 value)", + method: "function transferFrom(address, address, uint256)", params: async () => { let amount: bigint; if ("amount" in options) { diff --git a/packages/thirdweb/src/extensions/erc721/read/balanceOf.ts b/packages/thirdweb/src/extensions/erc721/read/balanceOf.ts index 978af427f04..cbfa10bab39 100644 --- a/packages/thirdweb/src/extensions/erc721/read/balanceOf.ts +++ b/packages/thirdweb/src/extensions/erc721/read/balanceOf.ts @@ -19,8 +19,7 @@ export function balanceOf( ): Promise { return readContract({ ...options, - method: - "function balanceOf(address owner) external view returns (uint256 balance)", + method: "function balanceOf(address) returns (uint256)", params: [options.address], }); } diff --git a/packages/thirdweb/src/extensions/erc721/read/nextTokenIdToMint.ts b/packages/thirdweb/src/extensions/erc721/read/nextTokenIdToMint.ts index ca365fd6585..a98ef2b3157 100644 --- a/packages/thirdweb/src/extensions/erc721/read/nextTokenIdToMint.ts +++ b/packages/thirdweb/src/extensions/erc721/read/nextTokenIdToMint.ts @@ -17,6 +17,6 @@ export function nextTokenIdToMint( ): Promise { return readContract({ ...options, - method: "function nextTokenIdToMint() view returns (uint256)", + method: "function nextTokenIdToMint() returns (uint256)", }); } diff --git a/packages/thirdweb/src/extensions/erc721/read/ownerOf.ts b/packages/thirdweb/src/extensions/erc721/read/ownerOf.ts index 40793cae046..48d0c44aa23 100644 --- a/packages/thirdweb/src/extensions/erc721/read/ownerOf.ts +++ b/packages/thirdweb/src/extensions/erc721/read/ownerOf.ts @@ -19,8 +19,7 @@ export function ownerOf( ): Promise { return readContract({ ...options, - method: - "function ownerOf(uint256 tokenId) external view returns (address owner)", + method: "function ownerOf(uint256) returns (address)", params: [BigInt(options.tokenId)], }); } diff --git a/packages/thirdweb/src/extensions/erc721/read/startTokenId.ts b/packages/thirdweb/src/extensions/erc721/read/startTokenId.ts index a79609db21a..8db19b92ea9 100644 --- a/packages/thirdweb/src/extensions/erc721/read/startTokenId.ts +++ b/packages/thirdweb/src/extensions/erc721/read/startTokenId.ts @@ -15,6 +15,6 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js"; export function startTokenId(options: BaseTransactionOptions): Promise { return readContract({ ...options, - method: "function startTokenId() view returns (uint256)", + method: "function startTokenId() returns (uint256)", }); } diff --git a/packages/thirdweb/src/extensions/erc721/read/tokenURI.ts b/packages/thirdweb/src/extensions/erc721/read/tokenURI.ts index ad980098317..f16b96c9d97 100644 --- a/packages/thirdweb/src/extensions/erc721/read/tokenURI.ts +++ b/packages/thirdweb/src/extensions/erc721/read/tokenURI.ts @@ -19,7 +19,7 @@ export function tokenURI( ): Promise { return readContract({ ...options, - method: "function tokenURI(uint256 tokenId) returns (string memory)", + method: "function tokenURI(uint256) returns (string)", params: [options.tokenId], }); } diff --git a/packages/thirdweb/src/extensions/erc721/read/totalSupply.ts b/packages/thirdweb/src/extensions/erc721/read/totalSupply.ts index 7b083f527a4..4bbd858120e 100644 --- a/packages/thirdweb/src/extensions/erc721/read/totalSupply.ts +++ b/packages/thirdweb/src/extensions/erc721/read/totalSupply.ts @@ -15,6 +15,6 @@ import type { BaseTransactionOptions } from "../../../transaction/types.js"; export function totalSupply(options: BaseTransactionOptions): Promise { return readContract({ ...options, - method: "function totalSupply() view returns (uint256)", + method: "function totalSupply() returns (uint256)", }); } diff --git a/packages/thirdweb/src/extensions/erc721/write/mintTo.ts b/packages/thirdweb/src/extensions/erc721/write/mintTo.ts index c4abfc29b85..60ffea788ed 100644 --- a/packages/thirdweb/src/extensions/erc721/write/mintTo.ts +++ b/packages/thirdweb/src/extensions/erc721/write/mintTo.ts @@ -45,7 +45,7 @@ export type MintToParams = { export function mintTo(options: BaseTransactionOptions) { return prepareContractCall({ contract: options.contract, - method: "function mintTo(address _to, string memory _tokenURI)", + method: "function mintTo(address, string)", params: async () => { let tokenUri: string; diff --git a/packages/thirdweb/src/extensions/erc721/write/transferFrom.ts b/packages/thirdweb/src/extensions/erc721/write/transferFrom.ts index bdea37646fb..4bfab4aa4d6 100644 --- a/packages/thirdweb/src/extensions/erc721/write/transferFrom.ts +++ b/packages/thirdweb/src/extensions/erc721/write/transferFrom.ts @@ -32,7 +32,7 @@ export function transferFrom( ) { return prepareContractCall({ contract: options.contract, - method: "function transferFrom(address from, address to, uint256 tokenId)", + method: "function transferFrom(address, address, uint256)", params: [options.from, options.to, options.tokenId], }); } diff --git a/packages/thirdweb/src/transaction/actions/encode.test.ts b/packages/thirdweb/src/transaction/actions/encode.test.ts index 3cff7e08b8e..9645e575a1d 100644 --- a/packages/thirdweb/src/transaction/actions/encode.test.ts +++ b/packages/thirdweb/src/transaction/actions/encode.test.ts @@ -15,7 +15,7 @@ describe("transaction: encode", () => { it("should encode correctly (human-readable)", async () => { const tx = prepareContractCall({ contract: USDC_CONTRACT, - method: "function transfer(address to, uint256 value) returns (bool)", + method: "function transfer(address, uint256) returns (bool)", params: [TEST_WALLET_A, 100n], }); const encoded = await encode(tx); diff --git a/packages/thirdweb/src/transaction/actions/estimate-gas.test.ts b/packages/thirdweb/src/transaction/actions/estimate-gas.test.ts index 4539d189db2..a9861d92ca6 100644 --- a/packages/thirdweb/src/transaction/actions/estimate-gas.test.ts +++ b/packages/thirdweb/src/transaction/actions/estimate-gas.test.ts @@ -13,7 +13,7 @@ describe("transaction: estimate-gas", () => { it("should estimate gas correctly (human-readable)", async () => { const tx = prepareContractCall({ contract: USDC_CONTRACT, - method: "function transfer(address to, uint256 value) returns (bool)", + method: "function transfer(address, uint256) returns (bool)", params: [TEST_WALLET_A, 100n], }); const gasEstimate = await estimateGas({ diff --git a/packages/thirdweb/src/transaction/actions/simulate.test.ts b/packages/thirdweb/src/transaction/actions/simulate.test.ts index 24c85f666e3..a051761cf52 100644 --- a/packages/thirdweb/src/transaction/actions/simulate.test.ts +++ b/packages/thirdweb/src/transaction/actions/simulate.test.ts @@ -13,7 +13,7 @@ describe("transaction: simulate", () => { it("should simulate correctly (human-readable)", async () => { const tx = prepareContractCall({ contract: USDC_CONTRACT, - method: "function transfer(address to, uint256 value) returns (bool)", + method: "function transfer(address, uint256) returns (bool)", params: [TEST_WALLET_A, 100n], }); const result = await simulateTransaction({ diff --git a/packages/thirdweb/src/transaction/read-contract.test.ts b/packages/thirdweb/src/transaction/read-contract.test.ts index bb31db8a976..7859d649197 100644 --- a/packages/thirdweb/src/transaction/read-contract.test.ts +++ b/packages/thirdweb/src/transaction/read-contract.test.ts @@ -10,7 +10,7 @@ describe("transaction: read", () => { it("should read from the contract correctly", async () => { const result = await readContract({ contract: USDC_CONTRACT, - method: "function balanceOf(address owner) returns (uint256)", + method: "function balanceOf(address) returns (uint256)", params: [VITALIK_WALLET], }); diff --git a/packages/thirdweb/src/wallets/smart/lib/calls.ts b/packages/thirdweb/src/wallets/smart/lib/calls.ts index 966fe711a25..172ca1f4faf 100644 --- a/packages/thirdweb/src/wallets/smart/lib/calls.ts +++ b/packages/thirdweb/src/wallets/smart/lib/calls.ts @@ -42,7 +42,7 @@ export function prepareCreateAccount(args: { } return prepareContractCall({ contract: factoryContract, - method: "function createAccount(address, bytes) public returns (address)", + method: "function createAccount(address, bytes) returns (address)", params: [ options.overrides?.accountAddress || options.personalAccount.address, stringToHex(options.overrides?.accountSalt ?? ""), @@ -87,8 +87,7 @@ export function prepareBatchExecute(args: { } return prepareContractCall({ contract: accountContract, - method: - "function executeBatch(address[] calldata _target,uint256[] calldata _value,bytes[] calldata _calldata)", + method: "function executeBatch(address[], uint256[], bytes[])", params: [ transactions.map((tx) => tx.to || ""), transactions.map((tx) => tx.value || 0n),