thirdweb 5.90.1 → 5.90.3
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/contract/deployment/zksync/implementations.js +2 -2
- package/dist/cjs/exports/wallets/smart.js +2 -1
- package/dist/cjs/exports/wallets/smart.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +91 -4
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
- package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js +2 -2
- package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
- package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js +2 -1
- package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js.map +1 -1
- package/dist/cjs/utils/promise/resolve-promised-value.js +1 -0
- package/dist/cjs/utils/promise/resolve-promised-value.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/in-app/core/actions/sign-message.enclave.js +3 -1
- package/dist/cjs/wallets/in-app/core/actions/sign-message.enclave.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js +4 -2
- package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/bundler.js +1 -0
- package/dist/cjs/wallets/smart/lib/bundler.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/userop.js +53 -16
- package/dist/cjs/wallets/smart/lib/userop.js.map +1 -1
- package/dist/esm/contract/deployment/zksync/implementations.js +2 -2
- package/dist/esm/exports/wallets/smart.js +1 -1
- package/dist/esm/exports/wallets/smart.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js +91 -4
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.js.map +1 -1
- package/dist/esm/react/web/wallets/shared/OTPLoginUI.js +2 -2
- package/dist/esm/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
- package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js +2 -1
- package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js.map +1 -1
- package/dist/esm/utils/promise/resolve-promised-value.js +1 -0
- package/dist/esm/utils/promise/resolve-promised-value.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/in-app/core/actions/sign-message.enclave.js +3 -1
- package/dist/esm/wallets/in-app/core/actions/sign-message.enclave.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js +4 -2
- package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
- package/dist/esm/wallets/smart/lib/bundler.js +1 -0
- package/dist/esm/wallets/smart/lib/bundler.js.map +1 -1
- package/dist/esm/wallets/smart/lib/userop.js +51 -15
- package/dist/esm/wallets/smart/lib/userop.js.map +1 -1
- package/dist/types/auth/core/generate-jwt.d.ts.map +1 -1
- package/dist/types/auth/core/generate-login-payload.d.ts.map +1 -1
- package/dist/types/auth/core/verify-jwt.d.ts.map +1 -1
- package/dist/types/auth/core/verify-login-payload.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/extensions/erc721/lazyMinting/helpers/hashDelayedRevealBatch.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/BatchMetadataERC1155/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/BatchMetadataERC721/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/ClaimableERC1155/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/ClaimableERC20/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/ClaimableERC721/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/MintableERC1155/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/MintableERC20/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/MintableERC721/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/OpenEditionMetadataERC721/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC721/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/SequentialTokenIdERC1155/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/TransferableERC1155/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/TransferableERC20/module/install.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/TransferableERC721/module/install.d.ts.map +1 -1
- package/dist/types/react/core/hooks/others/useInvalidateQueries.d.ts.map +1 -1
- package/dist/types/react/core/hooks/transaction/transaction-button-utils.d.ts.map +1 -1
- package/dist/types/react/core/utils/wait.d.ts.map +1 -1
- package/dist/types/react/native/ui/components/Address.d.ts.map +1 -1
- package/dist/types/react/native/ui/components/ChainIcon.d.ts.map +1 -1
- package/dist/types/react/native/ui/components/RNImage.d.ts.map +1 -1
- package/dist/types/react/native/ui/components/WalletImage.d.ts.map +1 -1
- package/dist/types/react/native/ui/connect/ErrorView.d.ts.map +1 -1
- package/dist/types/react/native/ui/connect/LoadingView.d.ts.map +1 -1
- package/dist/types/react/native/ui/connect/ReceiveScreen.d.ts.map +1 -1
- package/dist/types/react/native/ui/connect/SendScreen.d.ts.map +1 -1
- package/dist/types/react/native/ui/connect/SuccessView.d.ts.map +1 -1
- package/dist/types/react/native/ui/connect/TokenListScreen.d.ts.map +1 -1
- package/dist/types/react/web/providers/wallet-ui-states-provider.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectModal.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectModalContent.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Modal/DeepLinkConnectUI.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Modal/InjectedConnectUI.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/icons/ThirdwebTextIcon.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.d.ts +2 -0
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/pendingSwapTx.d.ts.map +1 -1
- package/dist/types/react/web/ui/components/ChainIcon.d.ts.map +1 -1
- package/dist/types/react/web/ui/components/QRCode.d.ts.map +1 -1
- package/dist/types/react/web/ui/components/TextDivider.d.ts.map +1 -1
- package/dist/types/react/web/wallets/injected/locale/br.d.ts.map +1 -1
- package/dist/types/react/web/wallets/injected/locale/de.d.ts.map +1 -1
- package/dist/types/react/web/wallets/injected/locale/en.d.ts.map +1 -1
- package/dist/types/react/web/wallets/injected/locale/es.d.ts.map +1 -1
- package/dist/types/react/web/wallets/injected/locale/fr.d.ts.map +1 -1
- package/dist/types/react/web/wallets/injected/locale/ja.d.ts.map +1 -1
- package/dist/types/react/web/wallets/injected/locale/kr.d.ts.map +1 -1
- package/dist/types/react/web/wallets/injected/locale/tl.d.ts.map +1 -1
- package/dist/types/react/web/wallets/injected/locale/vi.d.ts.map +1 -1
- package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
- package/dist/types/transaction/actions/zksync/getEip721Domain.d.ts.map +1 -1
- package/dist/types/transaction/resolve-method.d.ts.map +1 -1
- package/dist/types/utils/any-evm/zksync/isZkSyncChain.d.ts.map +1 -1
- package/dist/types/utils/bigint.d.ts.map +1 -1
- package/dist/types/utils/domains.d.ts.map +1 -1
- package/dist/types/utils/promise/resolve-promised-value.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/connection/autoConnectCore.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/actions/sign-message.enclave.d.ts +3 -1
- package/dist/types/wallets/in-app/core/actions/sign-message.enclave.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/authentication/getLoginPath.d.ts.map +1 -1
- package/dist/types/wallets/in-app/core/constants/settings.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/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/web/lib/auth/oauth.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/otp.d.ts.map +1 -1
- package/dist/types/wallets/interfaces/wallet.d.ts +3 -1
- package/dist/types/wallets/interfaces/wallet.d.ts.map +1 -1
- package/dist/types/wallets/manager/index.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/bundler.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/constants.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/packUserOp.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/userop.d.ts +24 -1
- package/dist/types/wallets/smart/lib/userop.d.ts.map +1 -1
- package/package.json +12 -12
- package/src/contract/deployment/zksync/implementations.ts +2 -2
- package/src/exports/wallets/smart.ts +1 -0
- package/src/extensions/erc1155/drop1155.test.ts +0 -59
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferConfirmationScreen.tsx +116 -4
- package/src/react/web/wallets/shared/OTPLoginUI.tsx +2 -2
- package/src/transaction/actions/gasless/providers/engine.test.ts +6 -10
- package/src/transaction/actions/gasless/providers/openzeppelin.test.ts +6 -10
- package/src/utils/any-evm/zksync/isZkSyncChain.ts +2 -1
- package/src/utils/bytecode/resolveImplementation.test.ts +48 -45
- package/src/utils/promise/resolve-promised-value.ts +1 -0
- package/src/version.ts +1 -1
- package/src/wallets/in-app/core/actions/sign-message.enclave.ts +5 -1
- package/src/wallets/in-app/core/wallet/enclave-wallet.ts +4 -2
- package/src/wallets/interfaces/wallet.ts +9 -1
- package/src/wallets/smart/lib/bundler.ts +1 -0
- package/src/wallets/smart/lib/userop.ts +59 -17
- package/src/wallets/smart/smart-wallet-integration-v07.test.ts +3 -2
- package/src/wallets/smart/smart-wallet-integration.test.ts +1 -0
- package/src/wallets/smart/smart-wallet-modular.test.ts +1 -1
@@ -6,13 +6,15 @@ import type { ClientScopedStorage } from "../authentication/client-scoped-storag
|
|
6
6
|
|
7
7
|
export async function signMessage({
|
8
8
|
client,
|
9
|
-
payload: { message, isRaw },
|
9
|
+
payload: { message, isRaw, originalMessage, chainId },
|
10
10
|
storage,
|
11
11
|
}: {
|
12
12
|
client: ThirdwebClient;
|
13
13
|
payload: {
|
14
14
|
message: string;
|
15
15
|
isRaw: boolean;
|
16
|
+
originalMessage?: string;
|
17
|
+
chainId?: number;
|
16
18
|
};
|
17
19
|
storage: ClientScopedStorage;
|
18
20
|
}) {
|
@@ -37,6 +39,8 @@ export async function signMessage({
|
|
37
39
|
messagePayload: {
|
38
40
|
message,
|
39
41
|
isRaw,
|
42
|
+
originalMessage,
|
43
|
+
chainId,
|
40
44
|
},
|
41
45
|
}),
|
42
46
|
},
|
@@ -217,10 +217,10 @@ export class EnclaveWallet implements IWebWallet {
|
|
217
217
|
|
218
218
|
return { transactionHash };
|
219
219
|
},
|
220
|
-
async signMessage({ message }) {
|
220
|
+
async signMessage({ message, originalMessage, chainId }) {
|
221
221
|
const messagePayload = (() => {
|
222
222
|
if (typeof message === "string") {
|
223
|
-
return { message, isRaw: false };
|
223
|
+
return { message, isRaw: false, originalMessage, chainId };
|
224
224
|
}
|
225
225
|
return {
|
226
226
|
message:
|
@@ -228,6 +228,8 @@ export class EnclaveWallet implements IWebWallet {
|
|
228
228
|
? message.raw
|
229
229
|
: bytesToHex(message.raw),
|
230
230
|
isRaw: true,
|
231
|
+
originalMessage,
|
232
|
+
chainId,
|
231
233
|
};
|
232
234
|
})();
|
233
235
|
|
@@ -182,7 +182,15 @@ export type Account = {
|
|
182
182
|
* const signature = await account.signMessage({ message: 'hello!' });
|
183
183
|
* ```
|
184
184
|
*/
|
185
|
-
signMessage: ({
|
185
|
+
signMessage: ({
|
186
|
+
message,
|
187
|
+
originalMessage,
|
188
|
+
chainId,
|
189
|
+
}: {
|
190
|
+
message: SignableMessage;
|
191
|
+
originalMessage?: string;
|
192
|
+
chainId?: number;
|
193
|
+
}) => Promise<Hex>;
|
186
194
|
/**
|
187
195
|
* Sign the given typed data and return the signature
|
188
196
|
* @example
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { maxUint96 } from "ox/Solidity";
|
2
|
-
import { concat
|
2
|
+
import { concat } from "viem";
|
3
3
|
import type { Chain } from "../../../chains/types.js";
|
4
4
|
import type { ThirdwebClient } from "../../../client/client.js";
|
5
5
|
import {
|
@@ -16,9 +16,11 @@ import type { PreparedTransaction } from "../../../transaction/prepare-transacti
|
|
16
16
|
import type { TransactionReceipt } from "../../../transaction/types.js";
|
17
17
|
import { encodeAbiParameters } from "../../../utils/abi/encodeAbiParameters.js";
|
18
18
|
import { isContractDeployed } from "../../../utils/bytecode/is-contract-deployed.js";
|
19
|
-
import type
|
19
|
+
import { type Hex, toHex } from "../../../utils/encoding/hex.js";
|
20
20
|
import { hexToBytes } from "../../../utils/encoding/to-bytes.js";
|
21
21
|
import { isThirdwebUrl } from "../../../utils/fetch.js";
|
22
|
+
import { keccak256 } from "../../../utils/hashing/keccak256.js";
|
23
|
+
import { stringify } from "../../../utils/json.js";
|
22
24
|
import { resolvePromisedValue } from "../../../utils/promise/resolve-promised-value.js";
|
23
25
|
import type { Account } from "../../interfaces/wallet.js";
|
24
26
|
import type {
|
@@ -321,7 +323,9 @@ async function populateUserOp_v0_7(args: {
|
|
321
323
|
createAccountOverride: overrides?.createAccount,
|
322
324
|
}),
|
323
325
|
);
|
324
|
-
|
326
|
+
if (waitForDeployment) {
|
327
|
+
markAccountDeploying(accountContract);
|
328
|
+
}
|
325
329
|
}
|
326
330
|
|
327
331
|
const partialOp: UserOperationV07 = {
|
@@ -481,7 +485,9 @@ async function populateUserOp_v0_6(args: {
|
|
481
485
|
accountSalt: overrides?.accountSalt,
|
482
486
|
createAccountOverride: overrides?.createAccount,
|
483
487
|
});
|
484
|
-
|
488
|
+
if (waitForDeployment) {
|
489
|
+
markAccountDeploying(accountContract);
|
490
|
+
}
|
485
491
|
}
|
486
492
|
|
487
493
|
const partialOp: UserOperationV06 = {
|
@@ -593,6 +599,54 @@ export async function signUserOp(args: {
|
|
593
599
|
}): Promise<UserOperationV06 | UserOperationV07> {
|
594
600
|
const { userOp, chain, entrypointAddress, adminAccount } = args;
|
595
601
|
|
602
|
+
const userOpHash = await getUserOpHash({
|
603
|
+
client: args.client,
|
604
|
+
userOp,
|
605
|
+
chain,
|
606
|
+
entrypointAddress,
|
607
|
+
});
|
608
|
+
|
609
|
+
if (adminAccount.signMessage) {
|
610
|
+
const signature = await adminAccount.signMessage({
|
611
|
+
message: {
|
612
|
+
raw: hexToBytes(userOpHash),
|
613
|
+
},
|
614
|
+
originalMessage: stringify(userOp),
|
615
|
+
chainId: chain.id,
|
616
|
+
});
|
617
|
+
return {
|
618
|
+
...userOp,
|
619
|
+
signature,
|
620
|
+
};
|
621
|
+
}
|
622
|
+
throw new Error("signMessage not implemented in signingAccount");
|
623
|
+
}
|
624
|
+
|
625
|
+
/**
|
626
|
+
* Get the hash of a user operation.
|
627
|
+
* @param args - The options for getting the user operation hash
|
628
|
+
* @returns - The user operation hash
|
629
|
+
* @example
|
630
|
+
* ```ts
|
631
|
+
* import { getUserOpHash } from "thirdweb/wallets/smart";
|
632
|
+
*
|
633
|
+
* const userOp = await createUnsignedUserOp(...);
|
634
|
+
* const userOpHash = await getUserOpHash({
|
635
|
+
* client,
|
636
|
+
* userOp,
|
637
|
+
* chain,
|
638
|
+
* });
|
639
|
+
* ```
|
640
|
+
* @walletUtils
|
641
|
+
*/
|
642
|
+
export async function getUserOpHash(args: {
|
643
|
+
client: ThirdwebClient;
|
644
|
+
userOp: UserOperationV06 | UserOperationV07;
|
645
|
+
chain: Chain;
|
646
|
+
entrypointAddress?: string;
|
647
|
+
}): Promise<Hex> {
|
648
|
+
const { userOp, chain, entrypointAddress } = args;
|
649
|
+
|
596
650
|
const entrypointVersion = getEntryPointVersion(
|
597
651
|
entrypointAddress || ENTRYPOINT_ADDRESS_v0_6,
|
598
652
|
);
|
@@ -619,19 +673,7 @@ export async function signUserOp(args: {
|
|
619
673
|
userOp: userOp as UserOperationV06,
|
620
674
|
});
|
621
675
|
}
|
622
|
-
|
623
|
-
if (adminAccount.signMessage) {
|
624
|
-
const signature = await adminAccount.signMessage({
|
625
|
-
message: {
|
626
|
-
raw: hexToBytes(userOpHash),
|
627
|
-
},
|
628
|
-
});
|
629
|
-
return {
|
630
|
-
...userOp,
|
631
|
-
signature,
|
632
|
-
};
|
633
|
-
}
|
634
|
-
throw new Error("signMessage not implemented in signingAccount");
|
676
|
+
return userOpHash;
|
635
677
|
}
|
636
678
|
|
637
679
|
async function getAccountInitCode(options: {
|
@@ -49,9 +49,10 @@ const contract = getContract({
|
|
49
49
|
address: "0xe2cb0eb5147b42095c2FfA6F7ec953bb0bE347D8",
|
50
50
|
});
|
51
51
|
|
52
|
-
describe.sequential(
|
52
|
+
describe.runIf(process.env.TW_SECRET_KEY).sequential(
|
53
53
|
"SmartWallet 0.7 core tests",
|
54
54
|
{
|
55
|
+
retry: 0,
|
55
56
|
timeout: 240_000,
|
56
57
|
},
|
57
58
|
() => {
|
@@ -200,7 +201,7 @@ describe.sequential(
|
|
200
201
|
});
|
201
202
|
|
202
203
|
await expect(tx).rejects.toMatchInlineSnapshot(`
|
203
|
-
[TransactionError:
|
204
|
+
[TransactionError: Execution Reverted: {"code":3,"message":"execution reverted: Not authorized"}
|
204
205
|
|
205
206
|
contract: ${contract.address}
|
206
207
|
chainId: 11155111]
|
@@ -28,7 +28,7 @@ const client = TEST_CLIENT;
|
|
28
28
|
const DEFAULT_FACTORY_ADDRESS = "0xB1846E893CA01c5Dcdaa40371C1e13f2e0Df5717";
|
29
29
|
const DEFAULT_VALIDATOR_ADDRESS = "0x7D3631d823e0De311DC86f580946EeF2eEC81fba";
|
30
30
|
|
31
|
-
describe.sequential(
|
31
|
+
describe.runIf(process.env.TW_SECRET_KEY).sequential(
|
32
32
|
"SmartWallet modular tests",
|
33
33
|
{
|
34
34
|
retry: 0,
|