thirdweb 5.89.1 → 5.90.1
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/chains/constants.js +17 -2
- package/dist/cjs/chains/constants.js.map +1 -1
- package/dist/cjs/exports/wallets/smart.js +2 -1
- package/dist/cjs/exports/wallets/smart.js.map +1 -1
- package/dist/cjs/gas/fee-data.js +1 -0
- package/dist/cjs/gas/fee-data.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +2 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js +2 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js.map +1 -1
- package/dist/cjs/storage/download.js +16 -0
- package/dist/cjs/storage/download.js.map +1 -1
- package/dist/cjs/storage/mock.js +46 -0
- package/dist/cjs/storage/mock.js.map +1 -0
- package/dist/cjs/storage/upload/web-node.js +6 -1
- package/dist/cjs/storage/upload/web-node.js.map +1 -1
- package/dist/cjs/transaction/actions/estimate-gas-cost.js +1 -1
- package/dist/cjs/transaction/actions/estimate-gas-cost.js.map +1 -1
- package/dist/cjs/utils/process.js +4 -1
- package/dist/cjs/utils/process.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/manager/index.js +1 -1
- package/dist/cjs/wallets/manager/index.js.map +1 -1
- package/dist/cjs/wallets/smart/index.js +1 -0
- package/dist/cjs/wallets/smart/index.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/bundler.js +75 -0
- package/dist/cjs/wallets/smart/lib/bundler.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/userop.js +35 -13
- package/dist/cjs/wallets/smart/lib/userop.js.map +1 -1
- package/dist/esm/chains/constants.js +17 -2
- package/dist/esm/chains/constants.js.map +1 -1
- package/dist/esm/exports/wallets/smart.js +1 -1
- package/dist/esm/exports/wallets/smart.js.map +1 -1
- package/dist/esm/gas/fee-data.js +1 -0
- package/dist/esm/gas/fee-data.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +2 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js +2 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.js.map +1 -1
- package/dist/esm/storage/download.js +16 -0
- package/dist/esm/storage/download.js.map +1 -1
- package/dist/esm/storage/mock.js +42 -0
- package/dist/esm/storage/mock.js.map +1 -0
- package/dist/esm/storage/upload/web-node.js +6 -1
- package/dist/esm/storage/upload/web-node.js.map +1 -1
- package/dist/esm/transaction/actions/estimate-gas-cost.js +1 -1
- package/dist/esm/transaction/actions/estimate-gas-cost.js.map +1 -1
- package/dist/esm/utils/process.js +3 -0
- package/dist/esm/utils/process.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/manager/index.js +1 -1
- package/dist/esm/wallets/manager/index.js.map +1 -1
- package/dist/esm/wallets/smart/index.js +1 -1
- package/dist/esm/wallets/smart/index.js.map +1 -1
- package/dist/esm/wallets/smart/lib/bundler.js +74 -0
- package/dist/esm/wallets/smart/lib/bundler.js.map +1 -1
- package/dist/esm/wallets/smart/lib/userop.js +34 -13
- package/dist/esm/wallets/smart/lib/userop.js.map +1 -1
- package/dist/types/chains/constants.d.ts +1 -1
- package/dist/types/chains/constants.d.ts.map +1 -1
- package/dist/types/exports/wallets/smart.d.ts +1 -1
- package/dist/types/exports/wallets/smart.d.ts.map +1 -1
- package/dist/types/gas/fee-data.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.d.ts.map +1 -1
- package/dist/types/storage/download.d.ts.map +1 -1
- package/dist/types/storage/mock.d.ts +11 -0
- package/dist/types/storage/mock.d.ts.map +1 -0
- package/dist/types/storage/upload/web-node.d.ts.map +1 -1
- package/dist/types/utils/process.d.ts +1 -0
- package/dist/types/utils/process.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/manager/index.d.ts +1 -1
- package/dist/types/wallets/manager/index.d.ts.map +1 -1
- package/dist/types/wallets/smart/index.d.ts +2 -0
- package/dist/types/wallets/smart/index.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/bundler.d.ts +30 -1
- package/dist/types/wallets/smart/lib/bundler.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/userop.d.ts +8 -0
- package/dist/types/wallets/smart/lib/userop.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/adapters/viem-legacy.test.ts +1 -1
- package/src/auth/verify-typed-data.test.ts +2 -4
- package/src/chains/constants.ts +17 -2
- package/src/contract/actions/resolve-abi.test.ts +3 -3
- package/src/exports/wallets/smart.ts +1 -0
- package/src/extensions/erc1155/customDrop1155.test.ts +3 -14
- package/src/extensions/erc1155/drop1155.test.ts +3 -14
- package/src/extensions/erc1155/token1155.test.ts +16 -109
- package/src/extensions/erc20/read/getCurrencyMetadata.test.ts +1 -1
- package/src/extensions/erc721/customDrop721.test.ts +3 -13
- package/src/extensions/erc721/drop721.test.ts +3 -13
- package/src/extensions/erc721/read/getNFTs.test.ts +1 -1
- package/src/extensions/erc721/read/getOwnedTokenIds.test.ts +1 -1
- package/src/extensions/lens/read/resolveAddress.test.ts +1 -1
- package/src/extensions/prebuilts/deploy-vote.test.ts +1 -1
- package/src/extensions/unstoppable-domains/read/resolveAddress.test.ts +1 -1
- package/src/extensions/unstoppable-domains/read/resolveName.test.ts +1 -1
- package/src/gas/fee-data.ts +1 -0
- package/src/pay/convert/cryptoToFiat.test.ts +4 -4
- package/src/pay/convert/fiatToCrypto.test.ts +4 -4
- package/src/react/core/hooks/wallets/useConnect.test.tsx +3 -3
- package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +3 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.tsx +3 -0
- package/src/react/web/ui/prebuilt/Account/balance.test.tsx +7 -13
- package/src/react/web/ui/prebuilt/Chain/icon.test.tsx +1 -1
- package/src/react/web/ui/prebuilt/NFT/description.test.tsx +1 -1
- package/src/react/web/ui/prebuilt/NFT/media.test.tsx +1 -1
- package/src/react/web/ui/prebuilt/NFT/name.test.tsx +1 -1
- package/src/react/web/ui/prebuilt/NFT/utils.test.ts +1 -1
- package/src/react/web/ui/prebuilt/Token/name.test.tsx +1 -1
- package/src/react/web/ui/prebuilt/Token/symbol.test.tsx +1 -1
- package/src/react/web/ui/prebuilt/Wallet/icon.test.tsx +1 -1
- package/src/react/web/ui/prebuilt/Wallet/name.test.tsx +1 -1
- package/src/react/web/ui/prebuilt/thirdweb/ClaimButton/ClaimButton.test.tsx +1 -1
- package/src/storage/download.test.ts +1 -1
- package/src/storage/download.ts +17 -0
- package/src/storage/mock.ts +52 -0
- package/src/storage/upload/web-node.test.ts +2 -1
- package/src/storage/upload/web-node.ts +8 -1
- package/src/transaction/actions/encode.test.ts +1 -1
- package/src/transaction/actions/estimate-gas-cost.ts +1 -1
- package/src/utils/nft/fetch-token-metadata.test.ts +1 -1
- package/src/utils/process.ts +4 -0
- package/src/version.ts +1 -1
- package/src/wallets/manager/index.ts +6 -2
- package/src/wallets/smart/index.ts +1 -1
- package/src/wallets/smart/lib/bundler.ts +95 -0
- package/src/wallets/smart/lib/userop.ts +42 -15
- package/src/wallets/smart/smart-wallet-integration-v07.test.ts +25 -21
- package/src/wallets/smart/smart-wallet-integration.test.ts +21 -1
- package/src/wallets/smart/smart-wallet-modular.test.ts +1 -2
@@ -1,7 +1,10 @@
|
|
1
|
+
import type { ThirdwebClient } from "../../../client/client.js";
|
2
|
+
import type { PreparedTransaction } from "../../../transaction/prepare-transaction.js";
|
1
3
|
import type { SerializableTransaction } from "../../../transaction/serialize-transaction.js";
|
2
4
|
import type { TransactionReceipt } from "../../../transaction/types.js";
|
3
5
|
import { type Hex } from "../../../utils/encoding/hex.js";
|
4
|
-
import
|
6
|
+
import type { Account } from "../../interfaces/wallet.js";
|
7
|
+
import { type BundlerOptions, type EstimationResult, type GasPriceResult, type PmTransactionData, type SmartWalletOptions, type UserOperationReceipt, type UserOperationV06, type UserOperationV07 } from "../types.js";
|
5
8
|
/**
|
6
9
|
* Bundle a user operation.
|
7
10
|
* @param args - The options for bundling a user operation.
|
@@ -46,6 +49,32 @@ export declare function estimateUserOpGas(args: {
|
|
46
49
|
};
|
47
50
|
};
|
48
51
|
}): Promise<EstimationResult>;
|
52
|
+
/**
|
53
|
+
* Estimate the gas cost of a user operation.
|
54
|
+
* @param args - The options for estimating the gas cost of a user operation.
|
55
|
+
* @returns The estimated gas cost of the user operation.
|
56
|
+
* @example
|
57
|
+
* ```ts
|
58
|
+
* import { estimateUserOpGasCost } from "thirdweb/wallets/smart";
|
59
|
+
*
|
60
|
+
* const gasCost = await estimateUserOpGasCost({
|
61
|
+
* transactions,
|
62
|
+
* adminAccount,
|
63
|
+
* client,
|
64
|
+
* smartWalletOptions,
|
65
|
+
* });
|
66
|
+
* ```
|
67
|
+
* @walletUtils
|
68
|
+
*/
|
69
|
+
export declare function estimateUserOpGasCost(args: {
|
70
|
+
transactions: PreparedTransaction[];
|
71
|
+
adminAccount: Account;
|
72
|
+
client: ThirdwebClient;
|
73
|
+
smartWalletOptions: SmartWalletOptions;
|
74
|
+
}): Promise<{
|
75
|
+
ether: string;
|
76
|
+
wei: bigint;
|
77
|
+
}>;
|
49
78
|
/**
|
50
79
|
* Get the gas fees of a user operation.
|
51
80
|
* @param args - The options for getting the gas price of a user operation.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../../../../src/wallets/smart/lib/bundler.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../../../../src/wallets/smart/lib/bundler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAKhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,gCAAgC,CAAC;AAIvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAEtB,MAAM,aAAa,CAAC;AAUrB;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAAC;IAC5C,OAAO,EAAE,cAAc,CAAC;CACzB,GAAG,OAAO,CAAC,GAAG,CAAC,CASf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE;IACJ,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAAC;IAC5C,OAAO,EAAE,cAAc,CAAC;CACzB,EACD,cAAc,CAAC,EAAE;IACf,CAAC,CAAC,EAAE,MAAM,GAAG;QACX,SAAS,EAAE;YACT,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAAC;SAC5B,CAAC;KACH,CAAC;CACH,GACA,OAAO,CAAC,gBAAgB,CAAC,CA6B3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,kBAAkB,EAAE,kBAAkB,CAAC;CACxC;;;GA6DA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,OAAO,EAAE,cAAc,CAAC;CACzB,GAAG,OAAO,CAAC,cAAc,CAAC,CAW1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,cAAc,GAAG;IACrB,UAAU,EAAE,GAAG,CAAC;CACjB,GACA,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CA6BzC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,cAAc,GAAG;IACrB,UAAU,EAAE,GAAG,CAAC;CACjB,GACA,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAU3C;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,EAAE,uBAAuB,CAAC;CACtC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAW7B;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,EAAE,uBAAuB,CAAC;IACrC,iBAAiB,EAAE,GAAG,CAAC;CACxB,GAAG,OAAO,CAAC;IAAE,eAAe,EAAE,GAAG,CAAA;CAAE,CAAC,CAepC"}
|
@@ -111,4 +111,12 @@ export declare function createAndSignUserOp(options: {
|
|
111
111
|
waitForDeployment?: boolean;
|
112
112
|
isDeployedOverride?: boolean;
|
113
113
|
}): Promise<UserOperationV06 | UserOperationV07>;
|
114
|
+
export declare function prepareUserOp(options: {
|
115
|
+
transactions: PreparedTransaction[];
|
116
|
+
adminAccount: Account;
|
117
|
+
client: ThirdwebClient;
|
118
|
+
smartWalletOptions: SmartWalletOptions;
|
119
|
+
waitForDeployment?: boolean;
|
120
|
+
isDeployedOverride?: boolean;
|
121
|
+
}): Promise<UserOperationV06 | UserOperationV07>;
|
114
122
|
//# sourceMappingURL=userop.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"userop.d.ts","sourceRoot":"","sources":["../../../../../src/wallets/smart/lib/userop.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,+BAA+B,CAAC;AAOvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AAI1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EACV,cAAc,EAEd,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAkCrB,eAAO,MAAM,qBAAqB,oBAAqB,gBAAgB,SAEtE,CAAC;AAMF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,cAAc,GAAG;IACrB,UAAU,EAAE,GAAG,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,kBAAkB,CAAC,CAc7B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,WAAW,EAAE,mBAAmB,CAAC;IACjC,eAAe,EAAE,gBAAgB,CAAC;IAClC,eAAe,EAAE,gBAAgB,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;CAC7C,GAAG,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAqF/C;AAsVD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAAC;IAC5C,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACvB,GAAG,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CA0C/C;AAkDD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,
|
1
|
+
{"version":3,"file":"userop.d.ts","sourceRoot":"","sources":["../../../../../src/wallets/smart/lib/userop.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,+BAA+B,CAAC;AAOvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AAI1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EACV,cAAc,EAEd,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAkCrB,eAAO,MAAM,qBAAqB,oBAAqB,gBAAgB,SAEtE,CAAC;AAMF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,cAAc,GAAG;IACrB,UAAU,EAAE,GAAG,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,kBAAkB,CAAC,CAc7B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,WAAW,EAAE,mBAAmB,CAAC;IACjC,eAAe,EAAE,gBAAgB,CAAC;IAClC,eAAe,EAAE,gBAAgB,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;CAC7C,GAAG,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAqF/C;AAsVD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAAC;IAC5C,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACvB,GAAG,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CA0C/C;AAkDD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,gDAiBA;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,gDAqEA"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "thirdweb",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.90.1",
|
4
4
|
"repository": {
|
5
5
|
"type": "git",
|
6
6
|
"url": "git+https://github.com/thirdweb-dev/js.git#main"
|
@@ -228,7 +228,7 @@
|
|
228
228
|
"mipd": "0.0.7",
|
229
229
|
"ox": "0.6.9",
|
230
230
|
"uqr": "0.1.2",
|
231
|
-
"viem": "2.
|
231
|
+
"viem": "2.23.5"
|
232
232
|
},
|
233
233
|
"peerDependencies": {
|
234
234
|
"@aws-sdk/client-lambda": "^3",
|
@@ -332,7 +332,7 @@
|
|
332
332
|
"ethers6": "npm:ethers@6",
|
333
333
|
"expo-linking": "7.0.5",
|
334
334
|
"expo-web-browser": "14.0.1",
|
335
|
-
"happy-dom": "
|
335
|
+
"happy-dom": "17.1.8",
|
336
336
|
"knip": "5.45.0",
|
337
337
|
"msw": "2.7.3",
|
338
338
|
"prettier": "3.3.3",
|
@@ -372,10 +372,10 @@
|
|
372
372
|
"clean": "rimraf dist",
|
373
373
|
"size": "size-limit",
|
374
374
|
"test:watch": "vitest -c ./test/vitest.config.ts dev",
|
375
|
-
"test": "vitest run -c ./test/vitest.config.ts --coverage",
|
376
|
-
"test:cov": "vitest dev -c ./test/vitest.config.ts --coverage",
|
377
|
-
"test:ui": "vitest dev -c ./test/vitest.config.ts --coverage --ui",
|
378
|
-
"test:dev": "vitest run -c ./test/vitest.config.ts",
|
375
|
+
"test": "NODE_OPTIONS=--max-old-space-size=8192 vitest run -c ./test/vitest.config.ts --coverage",
|
376
|
+
"test:cov": "NODE_OPTIONS=--max-old-space-size=8192 vitest dev -c ./test/vitest.config.ts --coverage",
|
377
|
+
"test:ui": "NODE_OPTIONS=--max-old-space-size=8192 vitest dev -c ./test/vitest.config.ts --coverage --ui",
|
378
|
+
"test:dev": "NODE_OPTIONS=--max-old-space-size=8192 vitest run -c ./test/vitest.config.ts",
|
379
379
|
"test:react": "vitest run -c ./test/vitest.config.ts dev --ui src/react",
|
380
380
|
"typedoc": "node scripts/typedoc.mjs && node scripts/parse.mjs",
|
381
381
|
"update-version": "node scripts/version.mjs",
|
@@ -153,7 +153,7 @@ describe("walletClient.toViem", () => {
|
|
153
153
|
[UnknownRpcError: An unknown RPC error occurred.
|
154
154
|
|
155
155
|
Details: Can't switch chains because only an account was passed to 'viemAdapter.walletClient.toViem()', please pass a connected wallet instance instead.
|
156
|
-
Version: viem@2.
|
156
|
+
Version: viem@2.23.5]
|
157
157
|
`);
|
158
158
|
});
|
159
159
|
});
|
@@ -26,8 +26,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("verifyTypedData", async () => {
|
|
26
26
|
).toBe(true);
|
27
27
|
});
|
28
28
|
|
29
|
-
|
30
|
-
test.skip("invalid EOA signature", async () => {
|
29
|
+
test("invalid EOA signature", async () => {
|
31
30
|
expect(
|
32
31
|
await verifyTypedData({
|
33
32
|
...typedData.basic,
|
@@ -54,8 +53,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("verifyTypedData", async () => {
|
|
54
53
|
).toBe(true);
|
55
54
|
});
|
56
55
|
|
57
|
-
|
58
|
-
test.skip("invalid smart account signature", async () => {
|
56
|
+
test("invalid smart account signature", async () => {
|
59
57
|
expect(
|
60
58
|
await verifyTypedData({
|
61
59
|
...typedData.basic,
|
package/src/chains/constants.ts
CHANGED
@@ -25,6 +25,21 @@ const opChains = [
|
|
25
25
|
* TODO this should be in the chain definition itself
|
26
26
|
* @internal
|
27
27
|
*/
|
28
|
-
export function isOpStackChain(chain: Chain) {
|
29
|
-
|
28
|
+
export async function isOpStackChain(chain: Chain) {
|
29
|
+
if (chain.id === 1337 || chain.id === 31337) {
|
30
|
+
return false;
|
31
|
+
}
|
32
|
+
|
33
|
+
if (opChains.includes(chain.id)) {
|
34
|
+
return true;
|
35
|
+
}
|
36
|
+
// fallback to checking the stack on rpc
|
37
|
+
try {
|
38
|
+
const { getChainMetadata } = await import("./utils.js");
|
39
|
+
const chainMetadata = await getChainMetadata(chain);
|
40
|
+
return chainMetadata.stackType === "optimism_bedrock";
|
41
|
+
} catch {
|
42
|
+
// If the network check fails, assume it's not a OP chain
|
43
|
+
return false;
|
44
|
+
}
|
30
45
|
}
|
@@ -61,7 +61,7 @@ it("should throw error if contract bytecode is 0x", async () => {
|
|
61
61
|
client: TEST_CLIENT,
|
62
62
|
chain: FORKED_ETHEREUM_CHAIN,
|
63
63
|
});
|
64
|
-
await expect(()
|
65
|
-
|
66
|
-
)
|
64
|
+
await expect(resolveAbiFromBytecode(wrongContract)).rejects.toThrowError(
|
65
|
+
"Failed to load contract bytecode",
|
66
|
+
);
|
67
67
|
});
|
@@ -69,20 +69,9 @@ describe.runIf(process.env.TW_SECRET_KEY)(
|
|
69
69
|
});
|
70
70
|
|
71
71
|
await expect(nextTokenIdToMint({ contract })).resolves.toBe(6n);
|
72
|
-
await
|
73
|
-
|
74
|
-
)
|
75
|
-
{
|
76
|
-
"id": 0n,
|
77
|
-
"metadata": {
|
78
|
-
"name": "Test NFT",
|
79
|
-
},
|
80
|
-
"owner": null,
|
81
|
-
"supply": 0n,
|
82
|
-
"tokenURI": "ipfs://QmTo68Dm1ntSp2BHLmE9gesS6ELuXosRz5mAgFCK6tfsRk/0",
|
83
|
-
"type": "ERC1155",
|
84
|
-
}
|
85
|
-
`);
|
72
|
+
expect((await getNFT({ contract, tokenId: 0n })).metadata.name).toBe(
|
73
|
+
"Test NFT",
|
74
|
+
);
|
86
75
|
});
|
87
76
|
|
88
77
|
it("should allow to claim tokens", async () => {
|
@@ -89,20 +89,9 @@ describe.runIf(process.env.TW_SECRET_KEY)(
|
|
89
89
|
});
|
90
90
|
|
91
91
|
await expect(nextTokenIdToMint({ contract })).resolves.toBe(6n);
|
92
|
-
await
|
93
|
-
|
94
|
-
)
|
95
|
-
{
|
96
|
-
"id": 0n,
|
97
|
-
"metadata": {
|
98
|
-
"name": "Test NFT",
|
99
|
-
},
|
100
|
-
"owner": null,
|
101
|
-
"supply": 0n,
|
102
|
-
"tokenURI": "ipfs://QmTo68Dm1ntSp2BHLmE9gesS6ELuXosRz5mAgFCK6tfsRk/0",
|
103
|
-
"type": "ERC1155",
|
104
|
-
}
|
105
|
-
`);
|
92
|
+
expect((await getNFT({ contract, tokenId: 0n })).metadata.name).toBe(
|
93
|
+
"Test NFT",
|
94
|
+
);
|
106
95
|
});
|
107
96
|
|
108
97
|
it("should update metadata", async () => {
|
@@ -81,20 +81,9 @@ describe.runIf(process.env.TW_SECRET_KEY)("TokenERC1155", () => {
|
|
81
81
|
// now 1 token minted
|
82
82
|
await expect(nextTokenIdToMint({ contract })).resolves.toBe(1n);
|
83
83
|
// tokenId 0 is minted
|
84
|
-
await
|
85
|
-
|
86
|
-
)
|
87
|
-
{
|
88
|
-
"id": 0n,
|
89
|
-
"metadata": {
|
90
|
-
"name": "Test NFT",
|
91
|
-
},
|
92
|
-
"owner": null,
|
93
|
-
"supply": 10n,
|
94
|
-
"tokenURI": "ipfs://QmUut8sypH8NaPUeksnirut7MgggMeQa9RvJ37sV513sw3/0",
|
95
|
-
"type": "ERC1155",
|
96
|
-
}
|
97
|
-
`);
|
84
|
+
expect((await getNFT({ contract, tokenId: 0n })).metadata.name).toBe(
|
85
|
+
"Test NFT",
|
86
|
+
);
|
98
87
|
// account should have a balance of 10
|
99
88
|
await expect(
|
100
89
|
balanceOf({ contract, owner: TEST_ACCOUNT_A.address, tokenId: 0n }),
|
@@ -119,20 +108,8 @@ describe.runIf(process.env.TW_SECRET_KEY)("TokenERC1155", () => {
|
|
119
108
|
await expect(nextTokenIdToMint({ contract })).resolves.toBe(1n);
|
120
109
|
// tokenId 0 is minted
|
121
110
|
// supply should be 15
|
122
|
-
|
123
|
-
|
124
|
-
).resolves.toMatchInlineSnapshot(`
|
125
|
-
{
|
126
|
-
"id": 0n,
|
127
|
-
"metadata": {
|
128
|
-
"name": "Test NFT",
|
129
|
-
},
|
130
|
-
"owner": null,
|
131
|
-
"supply": 15n,
|
132
|
-
"tokenURI": "ipfs://QmUut8sypH8NaPUeksnirut7MgggMeQa9RvJ37sV513sw3/0",
|
133
|
-
"type": "ERC1155",
|
134
|
-
}
|
135
|
-
`);
|
111
|
+
// @ts-expect-error - supply is there
|
112
|
+
expect((await getNFT({ contract, tokenId: 0n })).supply).toBe(15n);
|
136
113
|
// account should have a balance of 15
|
137
114
|
await expect(
|
138
115
|
balanceOf({ contract, owner: TEST_ACCOUNT_A.address, tokenId: 0n }),
|
@@ -155,30 +132,13 @@ describe.runIf(process.env.TW_SECRET_KEY)("TokenERC1155", () => {
|
|
155
132
|
|
156
133
|
// now 2 tokens minted
|
157
134
|
await expect(nextTokenIdToMint({ contract })).resolves.toBe(2n);
|
158
|
-
await expect(getNFTs({ contract })).resolves.
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
"owner": null,
|
166
|
-
"supply": 15n,
|
167
|
-
"tokenURI": "ipfs://QmUut8sypH8NaPUeksnirut7MgggMeQa9RvJ37sV513sw3/0",
|
168
|
-
"type": "ERC1155",
|
169
|
-
},
|
170
|
-
{
|
171
|
-
"id": 1n,
|
172
|
-
"metadata": {
|
173
|
-
"name": "Test NFT 2",
|
174
|
-
},
|
175
|
-
"owner": null,
|
176
|
-
"supply": 5n,
|
177
|
-
"tokenURI": "ipfs://QmV6gsfzdiMRtpnh8ay3CgutStVbes7qoF4DKpYE64h8hT/0",
|
178
|
-
"type": "ERC1155",
|
179
|
-
},
|
180
|
-
]
|
181
|
-
`);
|
135
|
+
await expect(getNFTs({ contract })).resolves.length(2);
|
136
|
+
expect((await getNFT({ contract, tokenId: 0n })).metadata.name).toBe(
|
137
|
+
"Test NFT",
|
138
|
+
);
|
139
|
+
expect((await getNFT({ contract, tokenId: 1n })).metadata.name).toBe(
|
140
|
+
"Test NFT 2",
|
141
|
+
);
|
182
142
|
});
|
183
143
|
|
184
144
|
it("isGetNFTsSupported should work with our Edition contracts", async () => {
|
@@ -241,63 +201,10 @@ describe.runIf(process.env.TW_SECRET_KEY)("TokenERC1155", () => {
|
|
241
201
|
});
|
242
202
|
|
243
203
|
const nfts = await getNFTs({ contract });
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
owner: null,
|
249
|
-
id: 0n,
|
250
|
-
tokenURI: "ipfs://QmTSyt6YgoFtH8yhWgevC22BxjyrkCKuzdk86nqQJCwrV9/0",
|
251
|
-
type: "ERC1155",
|
252
|
-
supply: 15n,
|
253
|
-
},
|
254
|
-
{
|
255
|
-
metadata: { name: "Test NFT 2" },
|
256
|
-
owner: null,
|
257
|
-
id: 1n,
|
258
|
-
tokenURI: "ipfs://QmV6gsfzdiMRtpnh8ay3CgutStVbes7qoF4DKpYE64h8hT/0",
|
259
|
-
type: "ERC1155",
|
260
|
-
supply: 5n,
|
261
|
-
},
|
262
|
-
{
|
263
|
-
metadata: {
|
264
|
-
name: "tw-contract-name",
|
265
|
-
symbol: "tw-contract-symbol",
|
266
|
-
description: "tw-contract-description",
|
267
|
-
},
|
268
|
-
owner: null,
|
269
|
-
id: 2n,
|
270
|
-
// Minted using URI from the test above
|
271
|
-
tokenURI:
|
272
|
-
"ipfs://bafybeiewg2e3vehsb5pb34xwk25eyyfwlvajzmgz3rtdrvn3upsxnsbhzi/contractUri.json",
|
273
|
-
type: "ERC1155",
|
274
|
-
supply: 1n,
|
275
|
-
},
|
276
|
-
{
|
277
|
-
metadata: { name: "batch token 0" },
|
278
|
-
owner: null,
|
279
|
-
id: 3n,
|
280
|
-
tokenURI: "ipfs://QmPSQhC2J6Wig4pH1Lt5th19FM58J5oukhfLfpc9L1i39Q/0",
|
281
|
-
type: "ERC1155",
|
282
|
-
supply: 1n,
|
283
|
-
},
|
284
|
-
{
|
285
|
-
metadata: { name: "batch token 1" },
|
286
|
-
owner: null,
|
287
|
-
id: 4n,
|
288
|
-
tokenURI: "ipfs://QmWRQwLBAeq6Wr65Yj7A4aeYqMD1C7Hs1moz15ncS6EhGu/0",
|
289
|
-
type: "ERC1155",
|
290
|
-
supply: 2n,
|
291
|
-
},
|
292
|
-
{
|
293
|
-
metadata: { name: "batch token 2" },
|
294
|
-
owner: null,
|
295
|
-
id: 5n,
|
296
|
-
tokenURI: "ipfs://QmTg1wxKGvdZR4NrdkYZGcfB5YYaBz75DH83td5RwprMRP/0",
|
297
|
-
type: "ERC1155",
|
298
|
-
supply: 3n,
|
299
|
-
},
|
300
|
-
]);
|
204
|
+
const names = nfts.map((nft) => nft.metadata.name);
|
205
|
+
expect(names).toContain("batch token 0");
|
206
|
+
expect(names).toContain("batch token 1");
|
207
|
+
expect(names).toContain("batch token 2");
|
301
208
|
});
|
302
209
|
|
303
210
|
it("getOwnedTokenIds should work", async () => {
|
@@ -4,7 +4,7 @@ import { getCurrencyMetadata } from "./getCurrencyMetadata.js";
|
|
4
4
|
|
5
5
|
describe("getCurrencyMetadata", () => {
|
6
6
|
it("should throw if not a valid ERC20 contract", async () => {
|
7
|
-
await expect(
|
7
|
+
await expect(
|
8
8
|
getCurrencyMetadata({ contract: DOODLES_CONTRACT }),
|
9
9
|
).rejects.toThrowError("Invalid currency token");
|
10
10
|
});
|
@@ -65,19 +65,9 @@ describe.runIf(process.env.TW_SECRET_KEY)(
|
|
65
65
|
});
|
66
66
|
|
67
67
|
await expect(nextTokenIdToMint({ contract })).resolves.toBe(6n);
|
68
|
-
await
|
69
|
-
|
70
|
-
)
|
71
|
-
{
|
72
|
-
"id": 0n,
|
73
|
-
"metadata": {
|
74
|
-
"name": "Test NFT",
|
75
|
-
},
|
76
|
-
"owner": null,
|
77
|
-
"tokenURI": "ipfs://QmTo68Dm1ntSp2BHLmE9gesS6ELuXosRz5mAgFCK6tfsRk/0",
|
78
|
-
"type": "ERC721",
|
79
|
-
}
|
80
|
-
`);
|
68
|
+
expect((await getNFT({ contract, tokenId: 0n })).metadata.name).toBe(
|
69
|
+
"Test NFT",
|
70
|
+
);
|
81
71
|
});
|
82
72
|
|
83
73
|
it("should allow to claim tokens", async () => {
|
@@ -96,19 +96,9 @@ describe.runIf(process.env.TW_SECRET_KEY)(
|
|
96
96
|
});
|
97
97
|
|
98
98
|
await expect(nextTokenIdToMint({ contract })).resolves.toBe(10n);
|
99
|
-
await
|
100
|
-
|
101
|
-
)
|
102
|
-
{
|
103
|
-
"id": 0n,
|
104
|
-
"metadata": {
|
105
|
-
"name": "Test NFT",
|
106
|
-
},
|
107
|
-
"owner": null,
|
108
|
-
"tokenURI": "ipfs://QmY1Rr4C7cYVPAaXykMMxg3AVbatDZ6Rd7u3gzt79CiDSB/0",
|
109
|
-
"type": "ERC721",
|
110
|
-
}
|
111
|
-
`);
|
99
|
+
expect((await getNFT({ contract, tokenId: 0n })).metadata.name).toBe(
|
100
|
+
"Test NFT",
|
101
|
+
);
|
112
102
|
});
|
113
103
|
|
114
104
|
it("should allow to claim tokens", async () => {
|
@@ -189,7 +189,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("erc721.getNFTs", () => {
|
|
189
189
|
});
|
190
190
|
|
191
191
|
it("should throw error if totalSupply and nextTokenIdToMint are not supported", async () => {
|
192
|
-
await expect(
|
192
|
+
await expect(
|
193
193
|
getNFTs({ contract: UNISWAPV3_FACTORY_CONTRACT }),
|
194
194
|
).rejects.toThrowError(
|
195
195
|
"Contract requires either `nextTokenIdToMint` or `totalSupply` function available to determine the next token ID to mint",
|
@@ -22,7 +22,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("erc721.getOwnedTokenIds", () => {
|
|
22
22
|
it("should throw if tokenOfOwnerByIndex or tokensOfOwner not supported", async () => {
|
23
23
|
// We know current Lens contract on Polygon doesn't have this.
|
24
24
|
const contract = UNISWAPV3_FACTORY_CONTRACT;
|
25
|
-
await expect(
|
25
|
+
await expect(
|
26
26
|
getOwnedTokenIds({ contract, owner: TEST_ACCOUNT_B.address }),
|
27
27
|
).rejects.toThrowError(
|
28
28
|
`The contract at ${contract.address} on chain ${contract.chain.id} does not support the tokenOfOwnerByIndex or tokensOfOwner interface`,
|
@@ -14,7 +14,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("resolve lens address", () => {
|
|
14
14
|
});
|
15
15
|
|
16
16
|
it("should throw if passed an invalid lens handle", async () => {
|
17
|
-
await expect(
|
17
|
+
await expect(
|
18
18
|
resolveAddress({ client: TEST_CLIENT, name: "vitalik.eth" }),
|
19
19
|
).rejects.toThrowError(
|
20
20
|
"Could not fetch the wallet address for lens handle: vitalik.eth",
|
@@ -9,7 +9,7 @@ const account = TEST_ACCOUNT_B;
|
|
9
9
|
|
10
10
|
describe.runIf(process.env.TW_SECRET_KEY)("deploy-voteERC20 contract", () => {
|
11
11
|
it("should throw if passed an non-integer-like value to minVoteQuorumRequiredPercent", async () => {
|
12
|
-
await expect(
|
12
|
+
await expect(
|
13
13
|
deployVoteContract({
|
14
14
|
account,
|
15
15
|
client: TEST_CLIENT,
|
@@ -18,7 +18,7 @@ describe.runIf(process.env.TW_SECRET_KEY)(
|
|
18
18
|
});
|
19
19
|
|
20
20
|
it("should throw error on addresses that dont own any UD", async () => {
|
21
|
-
await expect(
|
21
|
+
await expect(
|
22
22
|
resolveName({ client: TEST_CLIENT, address: TEST_ACCOUNT_D.address }),
|
23
23
|
).rejects.toThrowError(
|
24
24
|
`Failed to retrieve domain for address: ${TEST_ACCOUNT_D.address}. Make sure you have set the Reverse Resolution address for your domain at https://unstoppabledomains.com/manage?page=reverseResolution&domain=your-domain`,
|
package/src/gas/fee-data.ts
CHANGED
@@ -52,7 +52,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("Pay: crypto-to-fiat", () => {
|
|
52
52
|
});
|
53
53
|
|
54
54
|
it("should throw error for testnet chain (because testnets are not supported", async () => {
|
55
|
-
await expect(
|
55
|
+
await expect(
|
56
56
|
convertCryptoToFiat({
|
57
57
|
chain: sepolia,
|
58
58
|
fromTokenAddress: NATIVE_TOKEN_ADDRESS,
|
@@ -66,7 +66,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("Pay: crypto-to-fiat", () => {
|
|
66
66
|
});
|
67
67
|
|
68
68
|
it("should throw error if fromTokenAddress is set to an invalid EVM address", async () => {
|
69
|
-
await expect(
|
69
|
+
await expect(
|
70
70
|
convertCryptoToFiat({
|
71
71
|
chain: ethereum,
|
72
72
|
fromTokenAddress: "haha",
|
@@ -80,7 +80,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("Pay: crypto-to-fiat", () => {
|
|
80
80
|
});
|
81
81
|
|
82
82
|
it("should throw error if fromTokenAddress is set to a wallet address", async () => {
|
83
|
-
await expect(
|
83
|
+
await expect(
|
84
84
|
convertCryptoToFiat({
|
85
85
|
chain: base,
|
86
86
|
fromTokenAddress: TEST_ACCOUNT_A.address,
|
@@ -99,7 +99,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("Pay: crypto-to-fiat", () => {
|
|
99
99
|
status: 400,
|
100
100
|
statusText: "Bad Request",
|
101
101
|
});
|
102
|
-
await expect(
|
102
|
+
await expect(
|
103
103
|
convertCryptoToFiat({
|
104
104
|
chain: base,
|
105
105
|
fromTokenAddress: NATIVE_TOKEN_ADDRESS,
|
@@ -53,7 +53,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("Pay: fiatToCrypto", () => {
|
|
53
53
|
});
|
54
54
|
|
55
55
|
it("should throw error for testnet chain (because testnets are not supported", async () => {
|
56
|
-
await expect(
|
56
|
+
await expect(
|
57
57
|
convertFiatToCrypto({
|
58
58
|
chain: sepolia,
|
59
59
|
to: NATIVE_TOKEN_ADDRESS,
|
@@ -67,7 +67,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("Pay: fiatToCrypto", () => {
|
|
67
67
|
});
|
68
68
|
|
69
69
|
it("should throw error if `to` is set to an invalid EVM address", async () => {
|
70
|
-
await expect(
|
70
|
+
await expect(
|
71
71
|
convertFiatToCrypto({
|
72
72
|
chain: ethereum,
|
73
73
|
to: "haha",
|
@@ -81,7 +81,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("Pay: fiatToCrypto", () => {
|
|
81
81
|
});
|
82
82
|
|
83
83
|
it("should throw error if `to` is set to a wallet address", async () => {
|
84
|
-
await expect(
|
84
|
+
await expect(
|
85
85
|
convertFiatToCrypto({
|
86
86
|
chain: base,
|
87
87
|
to: TEST_ACCOUNT_A.address,
|
@@ -100,7 +100,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("Pay: fiatToCrypto", () => {
|
|
100
100
|
status: 400,
|
101
101
|
statusText: "Bad Request",
|
102
102
|
});
|
103
|
-
await expect(
|
103
|
+
await expect(
|
104
104
|
convertFiatToCrypto({
|
105
105
|
chain: ethereum,
|
106
106
|
to: NATIVE_TOKEN_ADDRESS,
|
@@ -48,7 +48,7 @@ describe("useAddConnectedWallet", () => {
|
|
48
48
|
},
|
49
49
|
);
|
50
50
|
const { result } = renderHook(() => useConnect(), { wrapper });
|
51
|
-
expect(statusResult.current).toEqual("
|
51
|
+
expect(statusResult.current).toEqual("unknown");
|
52
52
|
await result.current.connect(async () => wallet);
|
53
53
|
expect(statusResult.current).toEqual("connected");
|
54
54
|
|
@@ -67,7 +67,7 @@ describe("useAddConnectedWallet", () => {
|
|
67
67
|
},
|
68
68
|
);
|
69
69
|
const { result } = renderHook(() => useConnect(), { wrapper });
|
70
|
-
expect(statusResult.current).toEqual("
|
70
|
+
expect(statusResult.current).toEqual("unknown");
|
71
71
|
await result.current.connect(async () => wallet);
|
72
72
|
expect(statusResult.current).toEqual("connected");
|
73
73
|
|
@@ -85,7 +85,7 @@ describe("useAddConnectedWallet", () => {
|
|
85
85
|
wrapper,
|
86
86
|
},
|
87
87
|
);
|
88
|
-
expect(statusResult.current).toEqual("
|
88
|
+
expect(statusResult.current).toEqual("unknown");
|
89
89
|
const { result } = renderHook(() => useConnect(), { wrapper });
|
90
90
|
await result.current.connect(async () => {
|
91
91
|
throw new Error("test");
|