From 7fedd5ac6e3d1e76d9d6a0f2f5fff5225ecb19ec Mon Sep 17 00:00:00 2001 From: awkweb Date: Thu, 9 May 2024 14:31:16 -0400 Subject: [PATCH] feat: add gas property to contract transaction (#309) * add gas to contract transaction * update docs for gas on contract transaction * changeset * fix type for gas * Update src/utils/getTransactionContext.ts * Update .changeset/gold-books-kiss.md * Update site/pages/reference/frog-transaction-response.mdx * Update src/types/transaction.ts * chore: format --------- Co-authored-by: wigga --- .changeset/gold-books-kiss.md | 5 +++++ site/pages/reference/frog-transaction-response.mdx | 9 +++++---- src/types/transaction.ts | 2 +- src/utils/getTransactionContext.ts | 13 +++++++++++-- 4 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 .changeset/gold-books-kiss.md diff --git a/.changeset/gold-books-kiss.md b/.changeset/gold-books-kiss.md new file mode 100644 index 00000000..81437f8d --- /dev/null +++ b/.changeset/gold-books-kiss.md @@ -0,0 +1,5 @@ +--- +"frog": patch +--- + +Added gas limit for contract transactions diff --git a/site/pages/reference/frog-transaction-response.mdx b/site/pages/reference/frog-transaction-response.mdx index b2073723..3391731c 100644 --- a/site/pages/reference/frog-transaction-response.mdx +++ b/site/pages/reference/frog-transaction-response.mdx @@ -290,12 +290,13 @@ import { Frog, parseEther } from 'frog' export const app = new Frog() -app.transaction('/send-ether', (c) => { - return c.send({ +app.transaction('/mint', (c) => { + return c.contract({ + abi, chainId: 'eip155:10', gas: 100_000n, // [!code focus] - to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', - value: parseEther('1'), + functionName: 'mint', + to: '0xd2135CfB216b74109775236E36d4b433F1DF507B', }) }) ``` diff --git a/src/types/transaction.ts b/src/types/transaction.ts index 77eac328..f25d7162 100644 --- a/src/types/transaction.ts +++ b/src/types/transaction.ts @@ -90,7 +90,7 @@ export type ContractTransactionParameters< /// allFunctionNames = ContractFunctionName, allArgs = ContractFunctionArgs, -> = Pick & { +> = Pick & { /** Contract ABI. */ abi: abi /** Contract function arguments. */ diff --git a/src/utils/getTransactionContext.ts b/src/utils/getTransactionContext.ts index 6676e616..28b58e36 100644 --- a/src/utils/getTransactionContext.ts +++ b/src/utils/getTransactionContext.ts @@ -66,8 +66,16 @@ export function getTransactionContext< buttonIndex: frameData?.buttonIndex, buttonValue, contract(parameters) { - const { abi, chainId, functionName, to, args, attribution, value } = - parameters + const { + abi, + chainId, + functionName, + gas, + to, + args, + attribution, + value, + } = parameters const abiItem = getAbiItem({ abi: abi, @@ -89,6 +97,7 @@ export function getTransactionContext< args, functionName, } as EncodeFunctionDataParameters), + gas, to, value, })