From 3448035b86cc0b32cce4cd444def413fa6ff6bf3 Mon Sep 17 00:00:00 2001 From: Prithvish Baidya Date: Thu, 16 Jan 2025 11:13:30 +0530 Subject: [PATCH] feat: add transaction mode support to ERC20, ERC721, and ERC1155 v4 SDK routes --- .../routes/contract/extensions/erc1155/write/airdrop.ts | 2 ++ .../contract/extensions/erc1155/write/burn-batch.ts | 2 ++ .../routes/contract/extensions/erc1155/write/burn.ts | 2 ++ .../routes/contract/extensions/erc1155/write/lazy-mint.ts | 2 ++ .../extensions/erc1155/write/mint-additional-supply-to.ts | 2 ++ .../contract/extensions/erc1155/write/mint-batch-to.ts | 2 ++ .../extensions/erc1155/write/set-approval-for-all.ts | 2 ++ .../erc1155/write/set-batch-claim-conditions.ts | 2 ++ .../extensions/erc1155/write/set-claim-conditions.ts | 2 ++ .../contract/extensions/erc1155/write/signature-mint.ts | 2 ++ .../extensions/erc1155/write/update-claim-conditions.ts | 2 ++ .../extensions/erc1155/write/update-token-metadata.ts | 2 ++ .../routes/contract/extensions/erc20/write/burn-from.ts | 2 ++ src/server/routes/contract/extensions/erc20/write/burn.ts | 2 ++ .../contract/extensions/erc20/write/mint-batch-to.ts | 2 ++ .../contract/extensions/erc20/write/set-allowance.ts | 2 ++ .../extensions/erc20/write/set-claim-conditions.ts | 2 ++ .../contract/extensions/erc20/write/signature-mint.ts | 2 ++ .../extensions/erc20/write/update-claim-conditions.ts | 2 ++ .../routes/contract/extensions/erc721/write/burn.ts | 2 ++ .../routes/contract/extensions/erc721/write/lazy-mint.ts | 2 ++ .../contract/extensions/erc721/write/mint-batch-to.ts | 2 ++ .../extensions/erc721/write/set-approval-for-all.ts | 2 ++ .../extensions/erc721/write/set-approval-for-token.ts | 2 ++ .../extensions/erc721/write/set-claim-conditions.ts | 2 ++ .../extensions/erc721/write/update-claim-conditions.ts | 2 ++ .../extensions/erc721/write/update-token-metadata.ts | 2 ++ src/shared/db/transactions/queue-tx.ts | 8 +++++--- 28 files changed, 59 insertions(+), 3 deletions(-) diff --git a/src/server/routes/contract/extensions/erc1155/write/airdrop.ts b/src/server/routes/contract/extensions/erc1155/write/airdrop.ts index 255e7a639..47ba5e7f6 100644 --- a/src/server/routes/contract/extensions/erc1155/write/airdrop.ts +++ b/src/server/routes/contract/extensions/erc1155/write/airdrop.ts @@ -81,6 +81,7 @@ export async function erc1155airdrop(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); const contract = await getContract({ @@ -98,6 +99,7 @@ export async function erc1155airdrop(fastify: FastifyInstance) { extension: "erc1155", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ result: { diff --git a/src/server/routes/contract/extensions/erc1155/write/burn-batch.ts b/src/server/routes/contract/extensions/erc1155/write/burn-batch.ts index 192a77dc6..e24ae64c3 100644 --- a/src/server/routes/contract/extensions/erc1155/write/burn-batch.ts +++ b/src/server/routes/contract/extensions/erc1155/write/burn-batch.ts @@ -69,6 +69,7 @@ export async function erc1155burnBatch(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -87,6 +88,7 @@ export async function erc1155burnBatch(fastify: FastifyInstance) { extension: "erc1155", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc1155/write/burn.ts b/src/server/routes/contract/extensions/erc1155/write/burn.ts index 839b18eb9..10ffd4688 100644 --- a/src/server/routes/contract/extensions/erc1155/write/burn.ts +++ b/src/server/routes/contract/extensions/erc1155/write/burn.ts @@ -63,6 +63,7 @@ export async function erc1155burn(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -81,6 +82,7 @@ export async function erc1155burn(fastify: FastifyInstance) { extension: "erc1155", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc1155/write/lazy-mint.ts b/src/server/routes/contract/extensions/erc1155/write/lazy-mint.ts index 787684276..04fc4b6b0 100644 --- a/src/server/routes/contract/extensions/erc1155/write/lazy-mint.ts +++ b/src/server/routes/contract/extensions/erc1155/write/lazy-mint.ts @@ -69,6 +69,7 @@ export async function erc1155lazyMint(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -87,6 +88,7 @@ export async function erc1155lazyMint(fastify: FastifyInstance) { extension: "erc1155", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc1155/write/mint-additional-supply-to.ts b/src/server/routes/contract/extensions/erc1155/write/mint-additional-supply-to.ts index 33ad86da6..a63f73c79 100644 --- a/src/server/routes/contract/extensions/erc1155/write/mint-additional-supply-to.ts +++ b/src/server/routes/contract/extensions/erc1155/write/mint-additional-supply-to.ts @@ -70,6 +70,7 @@ export async function erc1155mintAdditionalSupplyTo(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -92,6 +93,7 @@ export async function erc1155mintAdditionalSupplyTo(fastify: FastifyInstance) { extension: "erc1155", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc1155/write/mint-batch-to.ts b/src/server/routes/contract/extensions/erc1155/write/mint-batch-to.ts index 0fae47ad0..595ea6311 100644 --- a/src/server/routes/contract/extensions/erc1155/write/mint-batch-to.ts +++ b/src/server/routes/contract/extensions/erc1155/write/mint-batch-to.ts @@ -86,6 +86,7 @@ export async function erc1155mintBatchTo(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -107,6 +108,7 @@ export async function erc1155mintBatchTo(fastify: FastifyInstance) { extension: "erc1155", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc1155/write/set-approval-for-all.ts b/src/server/routes/contract/extensions/erc1155/write/set-approval-for-all.ts index 091fe875c..5891a9dd1 100644 --- a/src/server/routes/contract/extensions/erc1155/write/set-approval-for-all.ts +++ b/src/server/routes/contract/extensions/erc1155/write/set-approval-for-all.ts @@ -66,6 +66,7 @@ export async function erc1155SetApprovalForAll(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -87,6 +88,7 @@ export async function erc1155SetApprovalForAll(fastify: FastifyInstance) { extension: "erc1155", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc1155/write/set-batch-claim-conditions.ts b/src/server/routes/contract/extensions/erc1155/write/set-batch-claim-conditions.ts index c019767de..4e432eae3 100644 --- a/src/server/routes/contract/extensions/erc1155/write/set-batch-claim-conditions.ts +++ b/src/server/routes/contract/extensions/erc1155/write/set-batch-claim-conditions.ts @@ -70,6 +70,7 @@ export async function erc1155SetBatchClaimConditions(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -118,6 +119,7 @@ export async function erc1155SetBatchClaimConditions(fastify: FastifyInstance) { extension: "erc1155", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc1155/write/set-claim-conditions.ts b/src/server/routes/contract/extensions/erc1155/write/set-claim-conditions.ts index 047b77757..9b30d33ee 100644 --- a/src/server/routes/contract/extensions/erc1155/write/set-claim-conditions.ts +++ b/src/server/routes/contract/extensions/erc1155/write/set-claim-conditions.ts @@ -67,6 +67,7 @@ export async function erc1155SetClaimCondition(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -105,6 +106,7 @@ export async function erc1155SetClaimCondition(fastify: FastifyInstance) { extension: "erc1155", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc1155/write/signature-mint.ts b/src/server/routes/contract/extensions/erc1155/write/signature-mint.ts index 946d9050a..05c50724a 100644 --- a/src/server/routes/contract/extensions/erc1155/write/signature-mint.ts +++ b/src/server/routes/contract/extensions/erc1155/write/signature-mint.ts @@ -62,6 +62,7 @@ export async function erc1155SignatureMint(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -91,6 +92,7 @@ export async function erc1155SignatureMint(fastify: FastifyInstance) { extension: "erc1155", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc1155/write/update-claim-conditions.ts b/src/server/routes/contract/extensions/erc1155/write/update-claim-conditions.ts index 0643daca7..c0ba8f104 100644 --- a/src/server/routes/contract/extensions/erc1155/write/update-claim-conditions.ts +++ b/src/server/routes/contract/extensions/erc1155/write/update-claim-conditions.ts @@ -65,6 +65,7 @@ export async function erc1155UpdateClaimConditions(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -105,6 +106,7 @@ export async function erc1155UpdateClaimConditions(fastify: FastifyInstance) { extension: "erc1155", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc1155/write/update-token-metadata.ts b/src/server/routes/contract/extensions/erc1155/write/update-token-metadata.ts index 724ec1d31..bcc6fbef1 100644 --- a/src/server/routes/contract/extensions/erc1155/write/update-token-metadata.ts +++ b/src/server/routes/contract/extensions/erc1155/write/update-token-metadata.ts @@ -56,6 +56,7 @@ export async function erc1155UpdateTokenMetadata(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -77,6 +78,7 @@ export async function erc1155UpdateTokenMetadata(fastify: FastifyInstance) { extension: "erc1155", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc20/write/burn-from.ts b/src/server/routes/contract/extensions/erc20/write/burn-from.ts index d0c9cffcd..cb9ff17ca 100644 --- a/src/server/routes/contract/extensions/erc20/write/burn-from.ts +++ b/src/server/routes/contract/extensions/erc20/write/burn-from.ts @@ -67,6 +67,7 @@ export async function erc20burnFrom(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -85,6 +86,7 @@ export async function erc20burnFrom(fastify: FastifyInstance) { extension: "erc20", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc20/write/burn.ts b/src/server/routes/contract/extensions/erc20/write/burn.ts index 392e5ab89..086f7fc5f 100644 --- a/src/server/routes/contract/extensions/erc20/write/burn.ts +++ b/src/server/routes/contract/extensions/erc20/write/burn.ts @@ -60,6 +60,7 @@ export async function erc20burn(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -78,6 +79,7 @@ export async function erc20burn(fastify: FastifyInstance) { extension: "erc20", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc20/write/mint-batch-to.ts b/src/server/routes/contract/extensions/erc20/write/mint-batch-to.ts index 256289397..81b008ca0 100644 --- a/src/server/routes/contract/extensions/erc20/write/mint-batch-to.ts +++ b/src/server/routes/contract/extensions/erc20/write/mint-batch-to.ts @@ -77,6 +77,7 @@ export async function erc20mintBatchTo(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -95,6 +96,7 @@ export async function erc20mintBatchTo(fastify: FastifyInstance) { extension: "erc20", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc20/write/set-allowance.ts b/src/server/routes/contract/extensions/erc20/write/set-allowance.ts index 33f094bc9..0977941a7 100644 --- a/src/server/routes/contract/extensions/erc20/write/set-allowance.ts +++ b/src/server/routes/contract/extensions/erc20/write/set-allowance.ts @@ -66,6 +66,7 @@ export async function erc20SetAlowance(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -87,6 +88,7 @@ export async function erc20SetAlowance(fastify: FastifyInstance) { extension: "erc20", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc20/write/set-claim-conditions.ts b/src/server/routes/contract/extensions/erc20/write/set-claim-conditions.ts index 0a0fa544c..ed1b88b70 100644 --- a/src/server/routes/contract/extensions/erc20/write/set-claim-conditions.ts +++ b/src/server/routes/contract/extensions/erc20/write/set-claim-conditions.ts @@ -60,6 +60,7 @@ export async function erc20SetClaimConditions(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -96,6 +97,7 @@ export async function erc20SetClaimConditions(fastify: FastifyInstance) { extension: "erc20", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc20/write/signature-mint.ts b/src/server/routes/contract/extensions/erc20/write/signature-mint.ts index 742ba25f7..1601ec311 100644 --- a/src/server/routes/contract/extensions/erc20/write/signature-mint.ts +++ b/src/server/routes/contract/extensions/erc20/write/signature-mint.ts @@ -62,6 +62,7 @@ export async function erc20SignatureMint(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -90,6 +91,7 @@ export async function erc20SignatureMint(fastify: FastifyInstance) { extension: "erc20", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc20/write/update-claim-conditions.ts b/src/server/routes/contract/extensions/erc20/write/update-claim-conditions.ts index 1e78c9387..77f778d2f 100644 --- a/src/server/routes/contract/extensions/erc20/write/update-claim-conditions.ts +++ b/src/server/routes/contract/extensions/erc20/write/update-claim-conditions.ts @@ -62,6 +62,7 @@ export async function erc20UpdateClaimConditions(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -101,6 +102,7 @@ export async function erc20UpdateClaimConditions(fastify: FastifyInstance) { extension: "erc20", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc721/write/burn.ts b/src/server/routes/contract/extensions/erc721/write/burn.ts index 4d0ec40f2..878ec7a42 100644 --- a/src/server/routes/contract/extensions/erc721/write/burn.ts +++ b/src/server/routes/contract/extensions/erc721/write/burn.ts @@ -59,6 +59,7 @@ export async function erc721burn(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -77,6 +78,7 @@ export async function erc721burn(fastify: FastifyInstance) { extension: "erc721", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc721/write/lazy-mint.ts b/src/server/routes/contract/extensions/erc721/write/lazy-mint.ts index ad103c268..64001b0f6 100644 --- a/src/server/routes/contract/extensions/erc721/write/lazy-mint.ts +++ b/src/server/routes/contract/extensions/erc721/write/lazy-mint.ts @@ -69,6 +69,7 @@ export async function erc721lazyMint(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -87,6 +88,7 @@ export async function erc721lazyMint(fastify: FastifyInstance) { extension: "erc721", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc721/write/mint-batch-to.ts b/src/server/routes/contract/extensions/erc721/write/mint-batch-to.ts index 49c1c5bec..862a51d4e 100644 --- a/src/server/routes/contract/extensions/erc721/write/mint-batch-to.ts +++ b/src/server/routes/contract/extensions/erc721/write/mint-batch-to.ts @@ -76,6 +76,7 @@ export async function erc721mintBatchTo(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -93,6 +94,7 @@ export async function erc721mintBatchTo(fastify: FastifyInstance) { extension: "erc721", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc721/write/set-approval-for-all.ts b/src/server/routes/contract/extensions/erc721/write/set-approval-for-all.ts index 7674f7dc0..52d69a119 100644 --- a/src/server/routes/contract/extensions/erc721/write/set-approval-for-all.ts +++ b/src/server/routes/contract/extensions/erc721/write/set-approval-for-all.ts @@ -64,6 +64,7 @@ export async function erc721SetApprovalForAll(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -85,6 +86,7 @@ export async function erc721SetApprovalForAll(fastify: FastifyInstance) { extension: "erc721", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc721/write/set-approval-for-token.ts b/src/server/routes/contract/extensions/erc721/write/set-approval-for-token.ts index 7b12719f2..d7a61e5a6 100644 --- a/src/server/routes/contract/extensions/erc721/write/set-approval-for-token.ts +++ b/src/server/routes/contract/extensions/erc721/write/set-approval-for-token.ts @@ -64,6 +64,7 @@ export async function erc721SetApprovalForToken(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -85,6 +86,7 @@ export async function erc721SetApprovalForToken(fastify: FastifyInstance) { extension: "erc721", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc721/write/set-claim-conditions.ts b/src/server/routes/contract/extensions/erc721/write/set-claim-conditions.ts index 21373150b..bb108b29a 100644 --- a/src/server/routes/contract/extensions/erc721/write/set-claim-conditions.ts +++ b/src/server/routes/contract/extensions/erc721/write/set-claim-conditions.ts @@ -60,6 +60,7 @@ export async function erc721SetClaimConditions(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -96,6 +97,7 @@ export async function erc721SetClaimConditions(fastify: FastifyInstance) { extension: "erc721", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc721/write/update-claim-conditions.ts b/src/server/routes/contract/extensions/erc721/write/update-claim-conditions.ts index 1b8112059..913091e9a 100644 --- a/src/server/routes/contract/extensions/erc721/write/update-claim-conditions.ts +++ b/src/server/routes/contract/extensions/erc721/write/update-claim-conditions.ts @@ -62,6 +62,7 @@ export async function erc721UpdateClaimConditions(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); @@ -101,6 +102,7 @@ export async function erc721UpdateClaimConditions(fastify: FastifyInstance) { extension: "erc721", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/server/routes/contract/extensions/erc721/write/update-token-metadata.ts b/src/server/routes/contract/extensions/erc721/write/update-token-metadata.ts index 8818f5489..fd8aec9da 100644 --- a/src/server/routes/contract/extensions/erc721/write/update-token-metadata.ts +++ b/src/server/routes/contract/extensions/erc721/write/update-token-metadata.ts @@ -56,6 +56,7 @@ export async function erc721UpdateTokenMetadata(fastify: FastifyInstance) { "x-backend-wallet-address": walletAddress, "x-account-address": accountAddress, "x-idempotency-key": idempotencyKey, + "x-transaction-mode": transactionMode, } = request.headers as Static; const chainId = await getChainIdFromChain(chain); const contract = await getContract({ @@ -76,6 +77,7 @@ export async function erc721UpdateTokenMetadata(fastify: FastifyInstance) { extension: "erc721", idempotencyKey, txOverrides, + transactionMode, }); reply.status(StatusCodes.OK).send({ diff --git a/src/shared/db/transactions/queue-tx.ts b/src/shared/db/transactions/queue-tx.ts index ae9e4cccb..508e5207e 100644 --- a/src/shared/db/transactions/queue-tx.ts +++ b/src/shared/db/transactions/queue-tx.ts @@ -4,7 +4,7 @@ import { ZERO_ADDRESS, type Address } from "thirdweb"; import type { ContractExtension } from "../../schemas/extension"; import { maybeBigInt, normalizeAddress } from "../../utils/primitive-types"; import { insertTransaction } from "../../utils/transaction/insert-transaction"; -import type { InsertedTransaction } from "../../utils/transaction/types"; +import type { AnyTransaction, InsertedTransaction } from "../../utils/transaction/types"; import { parseTransactionOverrides } from "../../../server/utils/transaction-overrides"; interface QueueTxParams { @@ -18,6 +18,7 @@ interface QueueTxParams { simulateTx?: boolean; idempotencyKey?: string; accountFactoryAddress?: Address; + transactionMode?: AnyTransaction["transactionMode"]; txOverrides?: { gas?: string; maxFeePerGas?: string; @@ -36,6 +37,7 @@ export const queueTx = async ({ idempotencyKey, txOverrides, accountFactoryAddress, + transactionMode }: QueueTxParams) => { // Transaction Details const functionName = tx.getMethod(); @@ -88,8 +90,8 @@ export const queueTx = async ({ insertedTransaction: { ...baseTransaction, isUserOp: false, - // NOTE: v4 endpoints that use queueTx cannot use sponsored mode - transactionMode: undefined, + // NOTE: v4 endpoints don't all support sponsored mode + transactionMode, deployedContractAddress, deployedContractType, from: normalizeAddress(await tx.getSignerAddress()),