diff --git a/.changeset/short-feet-check.md b/.changeset/short-feet-check.md new file mode 100644 index 00000000000..b856eb69876 --- /dev/null +++ b/.changeset/short-feet-check.md @@ -0,0 +1,5 @@ +--- +"thirdweb": patch +--- + +Handle hex value format for smart wallet execution diff --git a/packages/thirdweb/src/react/web/ui/prebuilt/NFT/utils.ts b/packages/thirdweb/src/react/web/ui/prebuilt/NFT/utils.ts index 812cee1c3e0..5e8e6a70f51 100644 --- a/packages/thirdweb/src/react/web/ui/prebuilt/NFT/utils.ts +++ b/packages/thirdweb/src/react/web/ui/prebuilt/NFT/utils.ts @@ -17,6 +17,7 @@ export async function getNFTInfo(options: NFTProviderProps): Promise { }), getNFT1155({ ...options, + useIndexer: false, // TODO (insight): switch this call to only call insight once }), ]).then(([possibleNFT721, possibleNFT1155]) => { // getNFT extension always return an NFT object diff --git a/packages/thirdweb/src/wallets/smart/lib/calls.ts b/packages/thirdweb/src/wallets/smart/lib/calls.ts index 7ef1ccb053b..681994c9184 100644 --- a/packages/thirdweb/src/wallets/smart/lib/calls.ts +++ b/packages/thirdweb/src/wallets/smart/lib/calls.ts @@ -184,7 +184,7 @@ export function prepareExecute(args: { let value = transaction.value || 0n; // special handling of hedera chains, decimals for native value is 8 instead of 18 when passed as contract params if (transaction.chainId === 295 || transaction.chainId === 296) { - value = value / BigInt(10 ** 10); + value = BigInt(value) / BigInt(10 ** 10); } return prepareContractCall({ contract: accountContract, @@ -220,7 +220,7 @@ export function prepareBatchExecute(args: { const chainId = transactions[0]?.chainId; // special handling of hedera chains, decimals for native value is 8 instead of 18 when passed as contract params if (chainId === 295 || chainId === 296) { - values = values.map((value) => value / BigInt(10 ** 10)); + values = values.map((value) => BigInt(value) / BigInt(10 ** 10)); } return prepareContractCall({ contract: accountContract,