thirdweb 5.64.6-nightly-f40d2474e6cc1227a8d05151210ef4793beb6142-20241101000357 → 5.65.0-nightly-06604162a11d99ff119bbf427a24b9a7d82c1575-20241103000408
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/analytics/track/index.js +2 -2
- package/dist/cjs/analytics/track/index.js.map +1 -1
- package/dist/cjs/auth/core/verify-jwt.js +2 -1
- package/dist/cjs/auth/core/verify-jwt.js.map +1 -1
- package/dist/cjs/extensions/erc721/drops/write/claimToBatch.js +8 -7
- package/dist/cjs/extensions/erc721/drops/write/claimToBatch.js.map +1 -1
- package/dist/cjs/pay/buyWithCrypto/getQuote.js +2 -1
- package/dist/cjs/pay/buyWithCrypto/getQuote.js.map +1 -1
- package/dist/cjs/pay/buyWithCrypto/getTransfer.js +2 -1
- package/dist/cjs/pay/buyWithCrypto/getTransfer.js.map +1 -1
- package/dist/cjs/pay/buyWithFiat/getQuote.js +2 -1
- package/dist/cjs/pay/buyWithFiat/getQuote.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +14 -0
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js +5 -4
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewAssets.js +29 -11
- package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewAssets.js.map +1 -1
- package/dist/cjs/rpc/rpc.js +2 -1
- package/dist/cjs/rpc/rpc.js.map +1 -1
- package/dist/cjs/utils/domains.js +3 -0
- package/dist/cjs/utils/domains.js.map +1 -1
- package/dist/cjs/utils/extensions/airdrop/process-snapshot-erc1155.js +3 -2
- package/dist/cjs/utils/extensions/airdrop/process-snapshot-erc1155.js.map +1 -1
- package/dist/cjs/utils/extensions/airdrop/process-snapshot-erc20.js +3 -2
- package/dist/cjs/utils/extensions/airdrop/process-snapshot-erc20.js.map +1 -1
- package/dist/cjs/utils/extensions/airdrop/process-snapshot-erc721.js +3 -2
- package/dist/cjs/utils/extensions/airdrop/process-snapshot-erc721.js.map +1 -1
- package/dist/cjs/utils/extensions/drops/process-override-list.js +3 -2
- package/dist/cjs/utils/extensions/drops/process-override-list.js.map +1 -1
- package/dist/cjs/utils/jwt/encode-jwt.js +5 -2
- package/dist/cjs/utils/jwt/encode-jwt.js.map +1 -1
- package/dist/cjs/utils/storage/walletStorage.js +4 -3
- package/dist/cjs/utils/storage/walletStorage.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/coinbase/coinbaseWebSDK.js +1 -0
- package/dist/cjs/wallets/coinbase/coinbaseWebSDK.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/authEndpoint.js +2 -1
- package/dist/cjs/wallets/in-app/core/authentication/authEndpoint.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/guest.js +2 -1
- package/dist/cjs/wallets/in-app/core/authentication/guest.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/jwt.js +2 -1
- package/dist/cjs/wallets/in-app/core/authentication/jwt.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/linkAccount.js +2 -1
- package/dist/cjs/wallets/in-app/core/authentication/linkAccount.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/passkeys.js +3 -2
- package/dist/cjs/wallets/in-app/core/authentication/passkeys.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/authentication/siwe.js +2 -1
- package/dist/cjs/wallets/in-app/core/authentication/siwe.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js +1 -0
- package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +2 -1
- package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/api/fetchers.js +5 -4
- package/dist/cjs/wallets/in-app/native/helpers/api/fetchers.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/errors.js +2 -1
- package/dist/cjs/wallets/in-app/native/helpers/errors.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/storage/local.js +2 -1
- package/dist/cjs/wallets/in-app/native/helpers/storage/local.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/wallet/migration.js +4 -3
- package/dist/cjs/wallets/in-app/native/helpers/wallet/migration.js.map +1 -1
- package/dist/cjs/wallets/in-app/native/helpers/wallet/recoveryCode.js +5 -4
- package/dist/cjs/wallets/in-app/native/helpers/wallet/recoveryCode.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/otp.js +3 -2
- package/dist/cjs/wallets/in-app/web/lib/auth/otp.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js +1 -0
- package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
- package/dist/cjs/wallets/injected/index.js +1 -0
- package/dist/cjs/wallets/injected/index.js.map +1 -1
- package/dist/cjs/wallets/manager/index.js +4 -3
- package/dist/cjs/wallets/manager/index.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/bundler.js +1 -1
- package/dist/cjs/wallets/smart/lib/bundler.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/paymaster.js +2 -1
- package/dist/cjs/wallets/smart/lib/paymaster.js.map +1 -1
- package/dist/cjs/wallets/wallet-connect/controller.js +3 -1
- package/dist/cjs/wallets/wallet-connect/controller.js.map +1 -1
- package/dist/cjs/wallets/wallet-connect/receiver/session-store.js +3 -2
- package/dist/cjs/wallets/wallet-connect/receiver/session-store.js.map +1 -1
- package/dist/esm/analytics/track/index.js +2 -2
- package/dist/esm/analytics/track/index.js.map +1 -1
- package/dist/esm/auth/core/verify-jwt.js +2 -1
- package/dist/esm/auth/core/verify-jwt.js.map +1 -1
- package/dist/esm/extensions/erc721/drops/write/claimToBatch.js +8 -7
- package/dist/esm/extensions/erc721/drops/write/claimToBatch.js.map +1 -1
- package/dist/esm/pay/buyWithCrypto/getQuote.js +2 -1
- package/dist/esm/pay/buyWithCrypto/getQuote.js.map +1 -1
- package/dist/esm/pay/buyWithCrypto/getTransfer.js +2 -1
- package/dist/esm/pay/buyWithCrypto/getTransfer.js.map +1 -1
- package/dist/esm/pay/buyWithFiat/getQuote.js +2 -1
- package/dist/esm/pay/buyWithFiat/getQuote.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +14 -0
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.js +5 -4
- package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/ViewAssets.js +30 -12
- package/dist/esm/react/web/ui/ConnectWallet/screens/ViewAssets.js.map +1 -1
- package/dist/esm/rpc/rpc.js +2 -1
- package/dist/esm/rpc/rpc.js.map +1 -1
- package/dist/esm/utils/domains.js +3 -0
- package/dist/esm/utils/domains.js.map +1 -1
- package/dist/esm/utils/extensions/airdrop/process-snapshot-erc1155.js +3 -2
- package/dist/esm/utils/extensions/airdrop/process-snapshot-erc1155.js.map +1 -1
- package/dist/esm/utils/extensions/airdrop/process-snapshot-erc20.js +3 -2
- package/dist/esm/utils/extensions/airdrop/process-snapshot-erc20.js.map +1 -1
- package/dist/esm/utils/extensions/airdrop/process-snapshot-erc721.js +3 -2
- package/dist/esm/utils/extensions/airdrop/process-snapshot-erc721.js.map +1 -1
- package/dist/esm/utils/extensions/drops/process-override-list.js +3 -2
- package/dist/esm/utils/extensions/drops/process-override-list.js.map +1 -1
- package/dist/esm/utils/jwt/encode-jwt.js +5 -2
- package/dist/esm/utils/jwt/encode-jwt.js.map +1 -1
- package/dist/esm/utils/storage/walletStorage.js +4 -3
- package/dist/esm/utils/storage/walletStorage.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/coinbase/coinbaseWebSDK.js +1 -0
- package/dist/esm/wallets/coinbase/coinbaseWebSDK.js.map +1 -1
- package/dist/esm/wallets/in-app/core/authentication/authEndpoint.js +2 -1
- package/dist/esm/wallets/in-app/core/authentication/authEndpoint.js.map +1 -1
- package/dist/esm/wallets/in-app/core/authentication/guest.js +2 -1
- package/dist/esm/wallets/in-app/core/authentication/guest.js.map +1 -1
- package/dist/esm/wallets/in-app/core/authentication/jwt.js +2 -1
- package/dist/esm/wallets/in-app/core/authentication/jwt.js.map +1 -1
- package/dist/esm/wallets/in-app/core/authentication/linkAccount.js +2 -1
- package/dist/esm/wallets/in-app/core/authentication/linkAccount.js.map +1 -1
- package/dist/esm/wallets/in-app/core/authentication/passkeys.js +3 -2
- package/dist/esm/wallets/in-app/core/authentication/passkeys.js.map +1 -1
- package/dist/esm/wallets/in-app/core/authentication/siwe.js +2 -1
- package/dist/esm/wallets/in-app/core/authentication/siwe.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js +1 -0
- package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +2 -1
- package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/api/fetchers.js +5 -4
- package/dist/esm/wallets/in-app/native/helpers/api/fetchers.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/errors.js +2 -1
- package/dist/esm/wallets/in-app/native/helpers/errors.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/storage/local.js +2 -1
- package/dist/esm/wallets/in-app/native/helpers/storage/local.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/wallet/migration.js +4 -3
- package/dist/esm/wallets/in-app/native/helpers/wallet/migration.js.map +1 -1
- package/dist/esm/wallets/in-app/native/helpers/wallet/recoveryCode.js +5 -4
- package/dist/esm/wallets/in-app/native/helpers/wallet/recoveryCode.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/auth/otp.js +3 -2
- package/dist/esm/wallets/in-app/web/lib/auth/otp.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js +1 -0
- package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
- package/dist/esm/wallets/injected/index.js +1 -0
- package/dist/esm/wallets/injected/index.js.map +1 -1
- package/dist/esm/wallets/manager/index.js +4 -3
- package/dist/esm/wallets/manager/index.js.map +1 -1
- package/dist/esm/wallets/smart/lib/bundler.js +1 -1
- package/dist/esm/wallets/smart/lib/bundler.js.map +1 -1
- package/dist/esm/wallets/smart/lib/paymaster.js +2 -1
- package/dist/esm/wallets/smart/lib/paymaster.js.map +1 -1
- package/dist/esm/wallets/wallet-connect/controller.js +3 -1
- package/dist/esm/wallets/wallet-connect/controller.js.map +1 -1
- package/dist/esm/wallets/wallet-connect/receiver/session-store.js +3 -2
- package/dist/esm/wallets/wallet-connect/receiver/session-store.js.map +1 -1
- package/dist/types/analytics/track/index.d.ts.map +1 -1
- package/dist/types/auth/core/verify-jwt.d.ts.map +1 -1
- package/dist/types/extensions/erc721/drops/write/claimToBatch.d.ts.map +1 -1
- package/dist/types/pay/buyWithCrypto/getQuote.d.ts.map +1 -1
- package/dist/types/pay/buyWithCrypto/getTransfer.d.ts.map +1 -1
- package/dist/types/pay/buyWithFiat/getQuote.d.ts.map +1 -1
- package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts +7 -0
- package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts +14 -0
- package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +7 -0
- package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/ViewAssets.d.ts +5 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/ViewAssets.d.ts.map +1 -1
- package/dist/types/rpc/rpc.d.ts.map +1 -1
- package/dist/types/utils/domains.d.ts +6 -0
- package/dist/types/utils/domains.d.ts.map +1 -1
- package/dist/types/utils/extensions/airdrop/process-snapshot-erc1155.d.ts.map +1 -1
- package/dist/types/utils/extensions/airdrop/process-snapshot-erc20.d.ts.map +1 -1
- package/dist/types/utils/extensions/airdrop/process-snapshot-erc721.d.ts.map +1 -1
- package/dist/types/utils/extensions/drops/process-override-list.d.ts.map +1 -1
- package/dist/types/utils/jwt/encode-jwt.d.ts.map +1 -1
- package/dist/types/utils/storage/walletStorage.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/coinbase/coinbaseWebSDK.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/authEndpoint.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/guest.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/jwt.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/linkAccount.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/passkeys.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/siwe.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/enclave-wallet.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/api/fetchers.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/errors.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/storage/local.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/wallet/migration.d.ts.map +1 -1
- package/dist/types/wallets/in-app/native/helpers/wallet/recoveryCode.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/otp.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/iframe-wallet.d.ts.map +1 -1
- package/dist/types/wallets/injected/index.d.ts.map +1 -1
- package/dist/types/wallets/manager/index.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/paymaster.d.ts.map +1 -1
- package/dist/types/wallets/wallet-connect/controller.d.ts.map +1 -1
- package/dist/types/wallets/wallet-connect/receiver/session-store.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/analytics/track/index.ts +2 -3
- package/src/auth/core/verify-jwt.ts +2 -1
- package/src/extensions/erc1155/drop1155.test.ts +12 -1
- package/src/extensions/erc1155/token1155.test.ts +12 -1
- package/src/extensions/erc1155/write/mintAdditionalSupplyToBatch.test.ts +0 -1
- package/src/extensions/erc20/drop20.test.ts +11 -2
- package/src/extensions/erc721/drop721.test.ts +10 -7
- package/src/extensions/erc721/drops/write/claimToBatch.ts +10 -11
- package/src/extensions/erc721/read/getNFT.test.ts +0 -67
- package/src/extensions/erc721/read/getNFTs.test.ts +0 -32
- package/src/extensions/erc721/token721.test.ts +115 -0
- package/src/extensions/prebuilts/deploy-erc721.test.ts +0 -42
- package/src/pay/buyWithCrypto/getQuote.ts +2 -1
- package/src/pay/buyWithCrypto/getTransfer.ts +2 -1
- package/src/pay/buyWithFiat/getQuote.ts +2 -1
- package/src/react/core/hooks/connection/ConnectButtonProps.ts +8 -0
- package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +14 -0
- package/src/react/web/ui/ConnectWallet/Details.tsx +30 -16
- package/src/react/web/ui/ConnectWallet/screens/ViewAssets.tsx +46 -24
- package/src/rpc/rpc.ts +2 -1
- package/src/utils/domains.ts +8 -0
- package/src/utils/extensions/airdrop/process-snapshot-erc1155.ts +3 -2
- package/src/utils/extensions/airdrop/process-snapshot-erc20.ts +3 -2
- package/src/utils/extensions/airdrop/process-snapshot-erc721.ts +3 -2
- package/src/utils/extensions/drops/process-override-list.ts +3 -2
- package/src/utils/jwt/encode-jwt.ts +5 -5
- package/src/utils/nft/fetch-token-metadata.test.ts +2 -1
- package/src/utils/storage/walletStorage.ts +4 -3
- package/src/version.ts +1 -1
- package/src/wallets/coinbase/coinbaseWebSDK.ts +1 -0
- package/src/wallets/in-app/core/authentication/authEndpoint.ts +2 -1
- package/src/wallets/in-app/core/authentication/guest.ts +2 -1
- package/src/wallets/in-app/core/authentication/jwt.ts +2 -1
- package/src/wallets/in-app/core/authentication/linkAccount.ts +2 -1
- package/src/wallets/in-app/core/authentication/passkeys.ts +3 -2
- package/src/wallets/in-app/core/authentication/siwe.ts +2 -1
- package/src/wallets/in-app/core/wallet/enclave-wallet.ts +1 -0
- package/src/wallets/in-app/core/wallet/in-app-core.ts +2 -1
- package/src/wallets/in-app/native/helpers/api/fetchers.ts +5 -4
- package/src/wallets/in-app/native/helpers/errors.ts +3 -1
- package/src/wallets/in-app/native/helpers/storage/local.ts +2 -1
- package/src/wallets/in-app/native/helpers/wallet/migration.ts +4 -3
- package/src/wallets/in-app/native/helpers/wallet/recoveryCode.ts +5 -4
- package/src/wallets/in-app/web/lib/auth/otp.ts +3 -2
- package/src/wallets/in-app/web/lib/iframe-wallet.ts +1 -0
- package/src/wallets/injected/index.ts +1 -0
- package/src/wallets/manager/index.ts +4 -3
- package/src/wallets/smart/lib/bundler.ts +1 -1
- package/src/wallets/smart/lib/paymaster.ts +2 -1
- package/src/wallets/wallet-connect/controller.ts +3 -1
- package/src/wallets/wallet-connect/receiver/session-store.ts +3 -6
- package/src/extensions/erc721/write/mintTo.test.ts +0 -69
- package/src/extensions/prebuilts/deploy-erc1155.test.ts +0 -54
- package/src/extensions/prebuilts/deploy-erc20.test.ts +0 -56
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "thirdweb",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.65.0-nightly-06604162a11d99ff119bbf427a24b9a7d82c1575-20241103000408",
|
4
4
|
"repository": {
|
5
5
|
"type": "git",
|
6
6
|
"url": "git+https://github.com/thirdweb-dev/js.git#main"
|
@@ -1,10 +1,9 @@
|
|
1
1
|
import type { ThirdwebClient } from "../../client/client.js";
|
2
|
+
import { getThirdwebBaseUrl } from "../../utils/domains.js";
|
2
3
|
import { getClientFetch } from "../../utils/fetch.js";
|
3
4
|
import { stringify } from "../../utils/json.js";
|
4
5
|
import type { Ecosystem } from "../../wallets/in-app/core/wallet/types.js";
|
5
6
|
|
6
|
-
const ANALYTICS_ENDPOINT = "https://c.thirdweb.com/event";
|
7
|
-
|
8
7
|
/**
|
9
8
|
* @internal
|
10
9
|
*/
|
@@ -23,7 +22,7 @@ export async function track({
|
|
23
22
|
...data,
|
24
23
|
};
|
25
24
|
|
26
|
-
return fetch(
|
25
|
+
return fetch(`${getThirdwebBaseUrl("analytics")}/event`, {
|
27
26
|
method: "POST",
|
28
27
|
body: stringify(event),
|
29
28
|
}).catch(() => {});
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { stringify } from "../../utils/json.js";
|
1
2
|
import { decodeJWT } from "../../utils/jwt/decode-jwt.js";
|
2
3
|
import type { JWTPayload } from "../../utils/jwt/types.js";
|
3
4
|
import { verifyEOASignature } from "../verify-signature.js";
|
@@ -82,7 +83,7 @@ export function verifyJWT(options: AuthOptions) {
|
|
82
83
|
}
|
83
84
|
|
84
85
|
const verified = await verifyEOASignature({
|
85
|
-
message:
|
86
|
+
message: stringify(payload),
|
86
87
|
signature,
|
87
88
|
address: issuerAddress,
|
88
89
|
});
|
@@ -16,6 +16,7 @@ import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-co
|
|
16
16
|
import { resolvePromisedValue } from "../../utils/promise/resolve-promised-value.js";
|
17
17
|
import { toEther } from "../../utils/units.js";
|
18
18
|
import { generateMerkleTreeInfoERC1155 } from "../airdrop/write/merkleInfoERC1155.js";
|
19
|
+
import { name } from "../common/read/name.js";
|
19
20
|
import { deployERC20Contract } from "../prebuilts/deploy-erc20.js";
|
20
21
|
import { deployERC1155Contract } from "../prebuilts/deploy-erc1155.js";
|
21
22
|
import { balanceOf } from "./__generated__/IERC1155/read/balanceOf.js";
|
@@ -45,12 +46,22 @@ describe.runIf(process.env.TW_SECRET_KEY)(
|
|
45
46
|
chain: ANVIL_CHAIN,
|
46
47
|
client: TEST_CLIENT,
|
47
48
|
params: {
|
48
|
-
name: "
|
49
|
+
name: "EditionDrop",
|
49
50
|
contractURI: TEST_CONTRACT_URI,
|
50
51
|
},
|
51
52
|
type: "DropERC1155",
|
52
53
|
});
|
53
54
|
|
55
|
+
expect(contractAddress).toBeDefined();
|
56
|
+
const deployedName = await name({
|
57
|
+
contract: getContract({
|
58
|
+
client: TEST_CLIENT,
|
59
|
+
chain: ANVIL_CHAIN,
|
60
|
+
address: contractAddress,
|
61
|
+
}),
|
62
|
+
});
|
63
|
+
expect(deployedName).toBe("EditionDrop");
|
64
|
+
|
54
65
|
contract = getContract({
|
55
66
|
address: contractAddress,
|
56
67
|
chain: ANVIL_CHAIN,
|
@@ -11,6 +11,7 @@ import {
|
|
11
11
|
import { resolveContractAbi } from "../../contract/actions/resolve-abi.js";
|
12
12
|
import { type ThirdwebContract, getContract } from "../../contract/contract.js";
|
13
13
|
import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-confirm-transaction.js";
|
14
|
+
import { name } from "../common/read/name.js";
|
14
15
|
import { deployERC1155Contract } from "../prebuilts/deploy-erc1155.js";
|
15
16
|
import { balanceOf } from "./__generated__/IERC1155/read/balanceOf.js";
|
16
17
|
import { totalSupply } from "./__generated__/IERC1155/read/totalSupply.js";
|
@@ -37,12 +38,22 @@ describe.runIf(process.env.TW_SECRET_KEY)("TokenERC1155", () => {
|
|
37
38
|
chain: ANVIL_CHAIN,
|
38
39
|
client: TEST_CLIENT,
|
39
40
|
params: {
|
40
|
-
name: "
|
41
|
+
name: "Edition",
|
41
42
|
contractURI: TEST_CONTRACT_URI,
|
42
43
|
},
|
43
44
|
type: "TokenERC1155",
|
44
45
|
});
|
45
46
|
|
47
|
+
expect(contractAddress).toBeDefined();
|
48
|
+
const deployedName = await name({
|
49
|
+
contract: getContract({
|
50
|
+
client: TEST_CLIENT,
|
51
|
+
chain: ANVIL_CHAIN,
|
52
|
+
address: contractAddress,
|
53
|
+
}),
|
54
|
+
});
|
55
|
+
expect(deployedName).toBe("Edition");
|
56
|
+
|
46
57
|
contract = getContract({
|
47
58
|
address: contractAddress,
|
48
59
|
chain: ANVIL_CHAIN,
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { beforeAll, describe, expect, it } from "vitest";
|
2
|
-
import { TEST_CONTRACT_URI } from "~test/ipfs-uris.js";
|
3
2
|
import { VITALIK_WALLET } from "../../../test/src/addresses.js";
|
4
3
|
import { ANVIL_CHAIN } from "../../../test/src/chains.js";
|
5
4
|
import { TEST_CLIENT } from "../../../test/src/test-clients.js";
|
@@ -13,6 +12,7 @@ import { type ThirdwebContract, getContract } from "../../contract/contract.js";
|
|
13
12
|
import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-confirm-transaction.js";
|
14
13
|
import { resolvePromisedValue } from "../../utils/promise/resolve-promised-value.js";
|
15
14
|
import { toEther } from "../../utils/units.js";
|
15
|
+
import { name } from "../common/read/name.js";
|
16
16
|
import { deployERC20Contract } from "../prebuilts/deploy-erc20.js";
|
17
17
|
import { getClaimConditions } from "./drops/read/getClaimConditions.js";
|
18
18
|
import { claimTo } from "./drops/write/claimTo.js";
|
@@ -35,11 +35,20 @@ describe.runIf(process.env.TW_SECRET_KEY)(
|
|
35
35
|
client: TEST_CLIENT,
|
36
36
|
params: {
|
37
37
|
name: "Test DropERC20",
|
38
|
-
contractURI: TEST_CONTRACT_URI,
|
39
38
|
},
|
40
39
|
type: "DropERC20",
|
41
40
|
});
|
42
41
|
|
42
|
+
expect(contractAddress).toBeDefined();
|
43
|
+
const deployedName = await name({
|
44
|
+
contract: getContract({
|
45
|
+
client: TEST_CLIENT,
|
46
|
+
chain: ANVIL_CHAIN,
|
47
|
+
address: contractAddress,
|
48
|
+
}),
|
49
|
+
});
|
50
|
+
expect(deployedName).toBe("Test DropERC20");
|
51
|
+
|
43
52
|
contract = getContract({
|
44
53
|
address: contractAddress,
|
45
54
|
chain: ANVIL_CHAIN,
|
@@ -13,6 +13,7 @@ import { type ThirdwebContract, getContract } from "../../contract/contract.js";
|
|
13
13
|
import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-confirm-transaction.js";
|
14
14
|
import { resolvePromisedValue } from "../../utils/promise/resolve-promised-value.js";
|
15
15
|
import { toEther } from "../../utils/units.js";
|
16
|
+
import { name } from "../common/read/name.js";
|
16
17
|
import { deployERC20Contract } from "../prebuilts/deploy-erc20.js";
|
17
18
|
import { deployERC721Contract } from "../prebuilts/deploy-erc721.js";
|
18
19
|
import { balanceOf } from "./__generated__/IERC721A/read/balanceOf.js";
|
@@ -40,11 +41,19 @@ describe.runIf(process.env.TW_SECRET_KEY)(
|
|
40
41
|
client: TEST_CLIENT,
|
41
42
|
params: {
|
42
43
|
name: "Test DropERC721",
|
43
|
-
contractURI: TEST_CONTRACT_URI,
|
44
44
|
},
|
45
45
|
type: "DropERC721",
|
46
46
|
});
|
47
47
|
|
48
|
+
contract = getContract({
|
49
|
+
address: contractAddress,
|
50
|
+
chain: ANVIL_CHAIN,
|
51
|
+
client: TEST_CLIENT,
|
52
|
+
});
|
53
|
+
|
54
|
+
const deployedName = await name({ contract });
|
55
|
+
expect(deployedName).toBe("Test DropERC721");
|
56
|
+
|
48
57
|
const erc20ContractAddress = await deployERC20Contract({
|
49
58
|
account: TEST_ACCOUNT_A,
|
50
59
|
chain: ANVIL_CHAIN,
|
@@ -61,12 +70,6 @@ describe.runIf(process.env.TW_SECRET_KEY)(
|
|
61
70
|
chain: ANVIL_CHAIN,
|
62
71
|
client: TEST_CLIENT,
|
63
72
|
});
|
64
|
-
|
65
|
-
contract = getContract({
|
66
|
-
address: contractAddress,
|
67
|
-
chain: ANVIL_CHAIN,
|
68
|
-
client: TEST_CLIENT,
|
69
|
-
});
|
70
73
|
// this deploys a contract, it may take some time
|
71
74
|
}, 120_000);
|
72
75
|
|
@@ -59,17 +59,15 @@ export function claimToBatch(
|
|
59
59
|
async function getClaimToBatchParams(
|
60
60
|
options: BaseTransactionOptions<ClaimToBatchParams>,
|
61
61
|
) {
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
)
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
`Error: Item at index ${errorIndexQuantity} is missing claim quantity`,
|
72
|
-
);
|
62
|
+
for (let i = 0; i < options.content.length; i++) {
|
63
|
+
if (!options.content[i]?.quantity) {
|
64
|
+
throw new Error(`Error: Item at index ${i} is missing claim quantity`);
|
65
|
+
}
|
66
|
+
if (!options.content[i]?.to) {
|
67
|
+
throw new Error(
|
68
|
+
`Error: Item at index ${i} is missing recipient address ("to")`,
|
69
|
+
);
|
70
|
+
}
|
73
71
|
}
|
74
72
|
const content = optimizeClaimContent(options.content);
|
75
73
|
const data = await Promise.all(
|
@@ -89,6 +87,7 @@ async function getClaimToBatchParams(
|
|
89
87
|
pricePerToken: claimParams.pricePerToken,
|
90
88
|
allowlistProof: claimParams.allowlistProof,
|
91
89
|
data: claimParams.data,
|
90
|
+
overrides: claimParams.overrides,
|
92
91
|
});
|
93
92
|
}),
|
94
93
|
);
|
@@ -1,16 +1,5 @@
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
2
|
-
|
3
|
-
import { ANVIL_CHAIN } from "~test/chains.js";
|
4
|
-
import { TEST_CONTRACT_URI } from "~test/ipfs-uris.js";
|
5
|
-
import { TEST_CLIENT } from "~test/test-clients.js";
|
6
2
|
import { DOODLES_CONTRACT } from "~test/test-contracts.js";
|
7
|
-
import { TEST_ACCOUNT_A } from "~test/test-wallets.js";
|
8
|
-
import { getContract } from "../../../contract/contract.js";
|
9
|
-
import { deployERC721Contract } from "../../../extensions/prebuilts/deploy-erc721.js";
|
10
|
-
import { sendAndConfirmTransaction } from "../../../transaction/actions/send-and-confirm-transaction.js";
|
11
|
-
import { parseNFT } from "../../../utils/nft/parseNft.js";
|
12
|
-
import { setTokenURI } from "../__generated__/INFTMetadata/write/setTokenURI.js";
|
13
|
-
import { mintTo } from "../write/mintTo.js";
|
14
3
|
import { getNFT } from "./getNFT.js";
|
15
4
|
|
16
5
|
describe.runIf(process.env.TW_SECRET_KEY)("erc721.getNFT", () => {
|
@@ -99,60 +88,4 @@ describe.runIf(process.env.TW_SECRET_KEY)("erc721.getNFT", () => {
|
|
99
88
|
}
|
100
89
|
`);
|
101
90
|
});
|
102
|
-
|
103
|
-
it("should return a default value if the URI of the token doesn't exist", async () => {
|
104
|
-
/**
|
105
|
-
* To create this test scenario, we first deploy an NFTCollection/Edition contract,
|
106
|
-
* mint a token, then purposefully change that token's URI to an empty string, using setTokenURI
|
107
|
-
*/
|
108
|
-
const contract = getContract({
|
109
|
-
address: await deployERC721Contract({
|
110
|
-
chain: ANVIL_CHAIN,
|
111
|
-
client: TEST_CLIENT,
|
112
|
-
account: TEST_ACCOUNT_A,
|
113
|
-
type: "TokenERC721",
|
114
|
-
params: {
|
115
|
-
name: "",
|
116
|
-
contractURI: TEST_CONTRACT_URI,
|
117
|
-
},
|
118
|
-
}),
|
119
|
-
chain: ANVIL_CHAIN,
|
120
|
-
client: TEST_CLIENT,
|
121
|
-
});
|
122
|
-
|
123
|
-
await sendAndConfirmTransaction({
|
124
|
-
transaction: mintTo({
|
125
|
-
contract,
|
126
|
-
nft: { name: "token 0" },
|
127
|
-
to: TEST_ACCOUNT_A.address,
|
128
|
-
}),
|
129
|
-
account: TEST_ACCOUNT_A,
|
130
|
-
});
|
131
|
-
|
132
|
-
await sendAndConfirmTransaction({
|
133
|
-
transaction: setTokenURI({
|
134
|
-
contract,
|
135
|
-
tokenId: 0n,
|
136
|
-
// Need to have some spaces because NFTMetadata.sol does not allow to update an empty valud
|
137
|
-
uri: " ",
|
138
|
-
}),
|
139
|
-
account: TEST_ACCOUNT_A,
|
140
|
-
});
|
141
|
-
|
142
|
-
expect(await getNFT({ contract, tokenId: 0n })).toStrictEqual(
|
143
|
-
parseNFT(
|
144
|
-
{
|
145
|
-
id: 0n,
|
146
|
-
type: "ERC721",
|
147
|
-
uri: "",
|
148
|
-
},
|
149
|
-
{
|
150
|
-
tokenId: 0n,
|
151
|
-
tokenUri: "",
|
152
|
-
type: "ERC721",
|
153
|
-
owner: null,
|
154
|
-
},
|
155
|
-
),
|
156
|
-
);
|
157
|
-
});
|
158
91
|
});
|
@@ -1,17 +1,8 @@
|
|
1
|
-
import { type Abi, toFunctionSelector } from "viem";
|
2
1
|
import { describe, expect, it } from "vitest";
|
3
|
-
import { ANVIL_CHAIN } from "~test/chains.js";
|
4
|
-
import { TEST_CONTRACT_URI } from "~test/ipfs-uris.js";
|
5
|
-
import { TEST_CLIENT } from "~test/test-clients.js";
|
6
2
|
import {
|
7
3
|
DOODLES_CONTRACT,
|
8
4
|
UNISWAPV3_FACTORY_CONTRACT,
|
9
5
|
} from "~test/test-contracts.js";
|
10
|
-
import { TEST_ACCOUNT_B } from "~test/test-wallets.js";
|
11
|
-
import { resolveContractAbi } from "../../../contract/actions/resolve-abi.js";
|
12
|
-
import { getContract } from "../../../contract/contract.js";
|
13
|
-
import { deployERC721Contract } from "../../../extensions/prebuilts/deploy-erc721.js";
|
14
|
-
import { isGetNFTSupported } from "./getNFT.js";
|
15
6
|
import { getNFTs } from "./getNFTs.js";
|
16
7
|
|
17
8
|
describe.runIf(process.env.TW_SECRET_KEY)("erc721.getNFTs", () => {
|
@@ -197,29 +188,6 @@ describe.runIf(process.env.TW_SECRET_KEY)("erc721.getNFTs", () => {
|
|
197
188
|
// TODO find a contract that we can use that has "1 indexed" NFTs, then re-enable this test
|
198
189
|
});
|
199
190
|
|
200
|
-
it("isGetNFTsSupported should work", async () => {
|
201
|
-
const contract = getContract({
|
202
|
-
address: await deployERC721Contract({
|
203
|
-
chain: ANVIL_CHAIN,
|
204
|
-
client: TEST_CLIENT,
|
205
|
-
type: "TokenERC721",
|
206
|
-
params: {
|
207
|
-
name: "",
|
208
|
-
contractURI: TEST_CONTRACT_URI,
|
209
|
-
},
|
210
|
-
account: TEST_ACCOUNT_B,
|
211
|
-
}),
|
212
|
-
chain: ANVIL_CHAIN,
|
213
|
-
client: TEST_CLIENT,
|
214
|
-
});
|
215
|
-
|
216
|
-
const abi = await resolveContractAbi<Abi>(contract);
|
217
|
-
const selectors = abi
|
218
|
-
.filter((f) => f.type === "function")
|
219
|
-
.map((f) => toFunctionSelector(f));
|
220
|
-
expect(isGetNFTSupported(selectors)).toBe(true);
|
221
|
-
});
|
222
|
-
|
223
191
|
it("should throw error if totalSupply and nextTokenIdToMint are not supported", async () => {
|
224
192
|
await expect(() =>
|
225
193
|
getNFTs({ contract: UNISWAPV3_FACTORY_CONTRACT }),
|
@@ -0,0 +1,115 @@
|
|
1
|
+
import { type Abi, toFunctionSelector } from "viem";
|
2
|
+
import { describe, expect, it } from "vitest";
|
3
|
+
import { ANVIL_CHAIN } from "~test/chains.js";
|
4
|
+
import { TEST_CONTRACT_URI } from "~test/ipfs-uris.js";
|
5
|
+
import { TEST_CLIENT } from "~test/test-clients.js";
|
6
|
+
import { TEST_ACCOUNT_B } from "~test/test-wallets.js";
|
7
|
+
import { resolveContractAbi } from "../../contract/actions/resolve-abi.js";
|
8
|
+
import { type ThirdwebContract, getContract } from "../../contract/contract.js";
|
9
|
+
import { name } from "../../extensions/common/read/name.js";
|
10
|
+
import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-confirm-transaction.js";
|
11
|
+
import { parseNFT } from "../../utils/nft/parseNft.js";
|
12
|
+
import { deployERC721Contract } from "../prebuilts/deploy-erc721.js";
|
13
|
+
import { tokenURI } from "./__generated__/IERC721A/read/tokenURI.js";
|
14
|
+
import { setTokenURI } from "./__generated__/INFTMetadata/write/setTokenURI.js";
|
15
|
+
import { getNFT, isGetNFTSupported } from "./read/getNFT.js";
|
16
|
+
import { mintTo } from "./write/mintTo.js";
|
17
|
+
|
18
|
+
const client = TEST_CLIENT;
|
19
|
+
const chain = ANVIL_CHAIN;
|
20
|
+
const account = TEST_ACCOUNT_B;
|
21
|
+
|
22
|
+
let token721Contract: ThirdwebContract;
|
23
|
+
|
24
|
+
describe.runIf(process.env.TW_SECRET_KEY)("deployERC721", () => {
|
25
|
+
it("should deploy ERC721 token", async () => {
|
26
|
+
const address = await deployERC721Contract({
|
27
|
+
client,
|
28
|
+
chain,
|
29
|
+
account,
|
30
|
+
type: "TokenERC721",
|
31
|
+
params: {
|
32
|
+
name: "NFTCollection",
|
33
|
+
contractURI: TEST_CONTRACT_URI,
|
34
|
+
},
|
35
|
+
});
|
36
|
+
expect(address).toBeDefined();
|
37
|
+
token721Contract = getContract({
|
38
|
+
client: TEST_CLIENT,
|
39
|
+
chain: ANVIL_CHAIN,
|
40
|
+
address,
|
41
|
+
});
|
42
|
+
const deployedName = await name({ contract: token721Contract });
|
43
|
+
expect(deployedName).toBe("NFTCollection");
|
44
|
+
});
|
45
|
+
|
46
|
+
it("should mint an nft when passed an object", async () => {
|
47
|
+
const transaction = mintTo({
|
48
|
+
contract: token721Contract,
|
49
|
+
nft: { name: "token 0" },
|
50
|
+
to: account.address,
|
51
|
+
});
|
52
|
+
await sendAndConfirmTransaction({
|
53
|
+
transaction,
|
54
|
+
account,
|
55
|
+
});
|
56
|
+
|
57
|
+
const nft = await getNFT({ contract: token721Contract, tokenId: 0n });
|
58
|
+
expect(nft.metadata.name).toBe("token 0");
|
59
|
+
});
|
60
|
+
|
61
|
+
it("should mint an nft when passed a string", async () => {
|
62
|
+
const transaction = mintTo({
|
63
|
+
contract: token721Contract,
|
64
|
+
nft: "ipfs://fake-token-uri",
|
65
|
+
to: account.address,
|
66
|
+
});
|
67
|
+
await sendAndConfirmTransaction({
|
68
|
+
transaction,
|
69
|
+
account,
|
70
|
+
});
|
71
|
+
const _uri = await tokenURI({ contract: token721Contract, tokenId: 1n });
|
72
|
+
expect(_uri).toBe("ipfs://fake-token-uri");
|
73
|
+
});
|
74
|
+
|
75
|
+
it("isGetNFTsSupported should work", async () => {
|
76
|
+
const abi = await resolveContractAbi<Abi>(token721Contract);
|
77
|
+
const selectors = abi
|
78
|
+
.filter((f) => f.type === "function")
|
79
|
+
.map((f) => toFunctionSelector(f));
|
80
|
+
expect(isGetNFTSupported(selectors)).toBe(true);
|
81
|
+
});
|
82
|
+
|
83
|
+
it("should return a default value if the URI of the token doesn't exist", async () => {
|
84
|
+
/**
|
85
|
+
* mint a token, then purposefully change that token's URI to an empty string, using setTokenURI
|
86
|
+
*/
|
87
|
+
await sendAndConfirmTransaction({
|
88
|
+
transaction: setTokenURI({
|
89
|
+
contract: token721Contract,
|
90
|
+
tokenId: 1n,
|
91
|
+
// Need to have some spaces because NFTMetadata.sol does not allow to update an empty value
|
92
|
+
uri: " ",
|
93
|
+
}),
|
94
|
+
account,
|
95
|
+
});
|
96
|
+
|
97
|
+
expect(
|
98
|
+
await getNFT({ contract: token721Contract, tokenId: 1n }),
|
99
|
+
).toStrictEqual(
|
100
|
+
parseNFT(
|
101
|
+
{
|
102
|
+
id: 1n,
|
103
|
+
type: "ERC721",
|
104
|
+
uri: "",
|
105
|
+
},
|
106
|
+
{
|
107
|
+
tokenId: 1n,
|
108
|
+
tokenUri: "",
|
109
|
+
type: "ERC721",
|
110
|
+
owner: null,
|
111
|
+
},
|
112
|
+
),
|
113
|
+
);
|
114
|
+
});
|
115
|
+
});
|
@@ -11,48 +11,6 @@ const account = TEST_ACCOUNT_B;
|
|
11
11
|
// skip this test suite if there is no secret key available to test with
|
12
12
|
// TODO: remove reliance on secret key during unit tests entirely
|
13
13
|
describe.runIf(process.env.TW_SECRET_KEY)("deployERC721", () => {
|
14
|
-
it("should deploy ERC721 drop", async () => {
|
15
|
-
const address = await deployERC721Contract({
|
16
|
-
client: TEST_CLIENT,
|
17
|
-
chain: ANVIL_CHAIN,
|
18
|
-
account,
|
19
|
-
type: "DropERC721",
|
20
|
-
params: {
|
21
|
-
name: "NFTDrop",
|
22
|
-
},
|
23
|
-
});
|
24
|
-
expect(address).toBeDefined();
|
25
|
-
const deployedName = await name({
|
26
|
-
contract: getContract({
|
27
|
-
client: TEST_CLIENT,
|
28
|
-
chain: ANVIL_CHAIN,
|
29
|
-
address,
|
30
|
-
}),
|
31
|
-
});
|
32
|
-
expect(deployedName).toBe("NFTDrop");
|
33
|
-
});
|
34
|
-
|
35
|
-
it("should deploy ERC721 token", async () => {
|
36
|
-
const address = await deployERC721Contract({
|
37
|
-
client: TEST_CLIENT,
|
38
|
-
chain: ANVIL_CHAIN,
|
39
|
-
account,
|
40
|
-
type: "TokenERC721",
|
41
|
-
params: {
|
42
|
-
name: "NFTCollection",
|
43
|
-
},
|
44
|
-
});
|
45
|
-
expect(address).toBeDefined();
|
46
|
-
const deployedName = await name({
|
47
|
-
contract: getContract({
|
48
|
-
client: TEST_CLIENT,
|
49
|
-
chain: ANVIL_CHAIN,
|
50
|
-
address,
|
51
|
-
}),
|
52
|
-
});
|
53
|
-
expect(deployedName).toBe("NFTCollection");
|
54
|
-
});
|
55
|
-
|
56
14
|
it("should deploy ERC721 open edition", async () => {
|
57
15
|
const address = await deployERC721Contract({
|
58
16
|
client: TEST_CLIENT,
|
@@ -5,6 +5,7 @@ import { getContract } from "../../contract/contract.js";
|
|
5
5
|
import { approve } from "../../extensions/erc20/write/approve.js";
|
6
6
|
import type { PrepareTransactionOptions } from "../../transaction/prepare-transaction.js";
|
7
7
|
import { getClientFetch } from "../../utils/fetch.js";
|
8
|
+
import { stringify } from "../../utils/json.js";
|
8
9
|
import { getPayBuyWithCryptoQuoteEndpoint } from "../utils/definitions.js";
|
9
10
|
import type {
|
10
11
|
QuoteApprovalInfo,
|
@@ -223,7 +224,7 @@ export async function getBuyWithCryptoQuote(
|
|
223
224
|
Accept: "application/json",
|
224
225
|
"Content-Type": "application/json",
|
225
226
|
},
|
226
|
-
body:
|
227
|
+
body: stringify({
|
227
228
|
fromAddress: params.fromAddress,
|
228
229
|
toAddress: params.toAddress,
|
229
230
|
fromChainId: params.fromChainId.toString(),
|
@@ -6,6 +6,7 @@ import { approve } from "../../extensions/erc20/write/approve.js";
|
|
6
6
|
import type { PrepareTransactionOptions } from "../../transaction/prepare-transaction.js";
|
7
7
|
import type { Address } from "../../utils/address.js";
|
8
8
|
import { getClientFetch } from "../../utils/fetch.js";
|
9
|
+
import { stringify } from "../../utils/json.js";
|
9
10
|
import { getPayBuyWithCryptoTransferEndpoint } from "../utils/definitions.js";
|
10
11
|
import type {
|
11
12
|
QuoteApprovalInfo,
|
@@ -129,7 +130,7 @@ export async function getBuyWithCryptoTransfer(
|
|
129
130
|
Accept: "application/json",
|
130
131
|
"Content-Type": "application/json",
|
131
132
|
},
|
132
|
-
body:
|
133
|
+
body: stringify({
|
133
134
|
fromAddress: params.fromAddress,
|
134
135
|
toAddress: params.toAddress,
|
135
136
|
chainId: params.chainId,
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import type { ThirdwebClient } from "../../client/client.js";
|
2
2
|
import { getClientFetch } from "../../utils/fetch.js";
|
3
|
+
import { stringify } from "../../utils/json.js";
|
3
4
|
import type { FiatProvider } from "../utils/commonTypes.js";
|
4
5
|
import { getPayBuyWithFiatQuoteEndpoint } from "../utils/definitions.js";
|
5
6
|
|
@@ -299,7 +300,7 @@ export async function getBuyWithFiatQuote(
|
|
299
300
|
Accept: "application/json",
|
300
301
|
"Content-Type": "application/json",
|
301
302
|
},
|
302
|
-
body:
|
303
|
+
body: stringify({
|
303
304
|
toAddress: params.toAddress,
|
304
305
|
fromCurrencySymbol: params.fromCurrencySymbol,
|
305
306
|
toChainId: params.toChainId.toString(),
|
@@ -3,6 +3,7 @@ import type { ThirdwebClient } from "../../../../client/client.js";
|
|
3
3
|
import type { BuyWithCryptoStatus } from "../../../../pay/buyWithCrypto/getStatus.js";
|
4
4
|
import type { BuyWithFiatStatus } from "../../../../pay/buyWithFiat/getStatus.js";
|
5
5
|
import type { FiatProvider } from "../../../../pay/utils/commonTypes.js";
|
6
|
+
import type { AssetTabs } from "../../../../react/web/ui/ConnectWallet/screens/ViewAssets.js";
|
6
7
|
import type { PreparedTransaction } from "../../../../transaction/prepare-transaction.js";
|
7
8
|
import type { Prettify } from "../../../../utils/type-utils.js";
|
8
9
|
import type { Account, Wallet } from "../../../../wallets/interfaces/wallet.js";
|
@@ -311,6 +312,13 @@ export type ConnectButton_detailsModalOptions = {
|
|
311
312
|
* All wallet IDs included in this array will be hidden from wallet selection when connected.
|
312
313
|
*/
|
313
314
|
hiddenWallets?: WalletId[];
|
315
|
+
|
316
|
+
/**
|
317
|
+
* When you click on "View Assets", by default the "Tokens" tab is shown first.
|
318
|
+
* If you want to show the "NFTs" tab first, change the order of the asset tabs to: ["nft", "token"]
|
319
|
+
* Note: If an empty array is passed, the [View Funds] button will be hidden
|
320
|
+
*/
|
321
|
+
assetTabs?: AssetTabs[];
|
314
322
|
};
|
315
323
|
|
316
324
|
/**
|
@@ -247,6 +247,20 @@ const TW_CONNECT_WALLET = "tw-connect-wallet";
|
|
247
247
|
* />
|
248
248
|
* ```
|
249
249
|
*
|
250
|
+
* ### Customizing the orders of the tabs in the [View Funds] screen
|
251
|
+
* When you click on "View Assets", by default the "Tokens" tab is shown first.
|
252
|
+
* If you want to show the "NFTs" tab first, change the order of the asset tabs to: ["nft", "token"]
|
253
|
+
* Note: If an empty array is passed, the [View Funds] button will be hidden
|
254
|
+
*
|
255
|
+
* ```tsx
|
256
|
+
* <ConnectButton
|
257
|
+
* client={client}
|
258
|
+
* detailsModal={{
|
259
|
+
* assetTabs: ["nft", "token"],
|
260
|
+
* }}
|
261
|
+
* />
|
262
|
+
* ```
|
263
|
+
*
|
250
264
|
* @param props
|
251
265
|
* Props for the `ConnectButton` component
|
252
266
|
*
|