Skip to content

Commit 75fe148

Browse files
authored
fix: Report claim-to SDK errors as 4xx (#659)
* fix: catch sdk errors as 4xx * remove unused file
1 parent 5dd74e1 commit 75fe148

File tree

3 files changed

+31
-9
lines changed

3 files changed

+31
-9
lines changed

src/server/routes/contract/extensions/erc1155/write/claimTo.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { Static, Type } from "@sinclair/typebox";
22
import { FastifyInstance } from "fastify";
33
import { StatusCodes } from "http-status-codes";
4-
import { Address, Hex } from "thirdweb";
4+
import { Address, Hex, encode } from "thirdweb";
55
import { claimTo } from "thirdweb/extensions/erc1155";
6-
import { resolvePromisedValue } from "thirdweb/utils";
76
import { getContractV5 } from "../../../../../../utils/cache/getContractv5";
87
import { maybeBigInt } from "../../../../../../utils/primitiveTypes";
98
import { insertTransaction } from "../../../../../../utils/transaction/insertTransaction";
9+
import { createCustomError } from "../../../../../middleware/error";
1010
import {
1111
erc1155ContractParamSchema,
1212
requestQuerystringSchema,
@@ -78,6 +78,7 @@ export async function erc1155claimTo(fastify: FastifyInstance) {
7878
chainId,
7979
contractAddress,
8080
});
81+
8182
const transaction = claimTo({
8283
contract,
8384
from: fromAddress as Address,
@@ -86,12 +87,19 @@ export async function erc1155claimTo(fastify: FastifyInstance) {
8687
tokenId: BigInt(tokenId),
8788
});
8889

90+
let data: Hex;
91+
try {
92+
data = await encode(transaction);
93+
} catch (e) {
94+
throw createCustomError(`${e}`, StatusCodes.BAD_REQUEST, "BAD_REQUEST");
95+
}
96+
8997
let queueId: string;
9098
const insertedTransaction = {
9199
chainId,
92100
from: fromAddress as Address,
93101
to: contractAddress as Address | undefined,
94-
data: (await resolvePromisedValue(transaction.data)) as Hex,
102+
data,
95103
value: maybeBigInt(txOverrides?.value),
96104
gas: maybeBigInt(txOverrides?.gas),
97105
maxFeePerGas: maybeBigInt(txOverrides?.maxFeePerGas),

src/server/routes/contract/extensions/erc20/write/claimTo.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { Static, Type } from "@sinclair/typebox";
22
import { FastifyInstance } from "fastify";
33
import { StatusCodes } from "http-status-codes";
4-
import { Address, Hex } from "thirdweb";
4+
import { Address, Hex, encode } from "thirdweb";
55
import { claimTo } from "thirdweb/extensions/erc20";
6-
import { resolvePromisedValue } from "thirdweb/utils";
76
import { getContractV5 } from "../../../../../../utils/cache/getContractv5";
87
import { maybeBigInt } from "../../../../../../utils/primitiveTypes";
98
import { insertTransaction } from "../../../../../../utils/transaction/insertTransaction";
9+
import { createCustomError } from "../../../../../middleware/error";
1010
import {
1111
erc20ContractParamSchema,
1212
requestQuerystringSchema,
@@ -82,12 +82,19 @@ export async function erc20claimTo(fastify: FastifyInstance) {
8282
quantity: amount,
8383
});
8484

85+
let data: Hex;
86+
try {
87+
data = await encode(transaction);
88+
} catch (e) {
89+
throw createCustomError(`${e}`, StatusCodes.BAD_REQUEST, "BAD_REQUEST");
90+
}
91+
8592
let queueId: string;
8693
const insertedTransaction = {
8794
chainId,
8895
from: fromAddress as Address,
8996
to: contractAddress as Address | undefined,
90-
data: (await resolvePromisedValue(transaction.data)) as Hex,
97+
data,
9198
value: maybeBigInt(txOverrides?.value),
9299
gas: maybeBigInt(txOverrides?.gas),
93100
maxFeePerGas: maybeBigInt(txOverrides?.maxFeePerGas),

src/server/routes/contract/extensions/erc721/write/claimTo.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { Static, Type } from "@sinclair/typebox";
22
import { FastifyInstance } from "fastify";
33
import { StatusCodes } from "http-status-codes";
4-
import { Address, Hex } from "thirdweb";
4+
import { Address, Hex, encode } from "thirdweb";
55
import { claimTo } from "thirdweb/extensions/erc721";
6-
import { resolvePromisedValue } from "thirdweb/utils";
76
import { getContractV5 } from "../../../../../../utils/cache/getContractv5";
87
import { maybeBigInt } from "../../../../../../utils/primitiveTypes";
98
import { insertTransaction } from "../../../../../../utils/transaction/insertTransaction";
9+
import { createCustomError } from "../../../../../middleware/error";
1010
import {
1111
contractParamSchema,
1212
requestQuerystringSchema,
@@ -81,12 +81,19 @@ export async function erc721claimTo(fastify: FastifyInstance) {
8181
quantity: BigInt(quantity),
8282
});
8383

84+
let data: Hex;
85+
try {
86+
data = await encode(transaction);
87+
} catch (e) {
88+
throw createCustomError(`${e}`, StatusCodes.BAD_REQUEST, "BAD_REQUEST");
89+
}
90+
8491
let queueId: string;
8592
const insertedTransaction = {
8693
chainId,
8794
from: fromAddress as Address,
8895
to: contractAddress as Address | undefined,
89-
data: (await resolvePromisedValue(transaction.data)) as Hex,
96+
data,
9097
value: maybeBigInt(txOverrides?.value),
9198
gas: maybeBigInt(txOverrides?.gas),
9299
maxFeePerGas: maybeBigInt(txOverrides?.maxFeePerGas),

0 commit comments

Comments
 (0)