thirdweb 5.48.2 → 5.48.3-nightly-a8e2bc58c9e8fe5b75d6c27d406e6b80d5d067e2-20240828000339
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/exports/wallets/smart.js +4 -2
- package/dist/cjs/exports/wallets/smart.js.map +1 -1
- package/dist/cjs/extensions/erc1155/drops/write/claimTo.js.map +1 -1
- package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js +32 -0
- package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js.map +1 -0
- package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.js +153 -0
- package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.js.map +1 -0
- package/dist/cjs/extensions/prebuilts/__generated__/VoteERC20/write/initialize.js +184 -0
- package/dist/cjs/extensions/prebuilts/__generated__/VoteERC20/write/initialize.js.map +1 -0
- package/dist/cjs/extensions/prebuilts/deploy-vote.js +122 -0
- package/dist/cjs/extensions/prebuilts/deploy-vote.js.map +1 -0
- package/dist/cjs/react/core/hooks/pay/useBuyWithCryptoQuote.js +5 -1
- package/dist/cjs/react/core/hooks/pay/useBuyWithCryptoQuote.js.map +1 -1
- package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuote.js +5 -1
- package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuote.js.map +1 -1
- package/dist/cjs/react/core/hooks/transaction/useSendAndConfirmTransaction.js +12 -0
- package/dist/cjs/react/core/hooks/transaction/useSendAndConfirmTransaction.js.map +1 -1
- package/dist/cjs/react/native/hooks/transaction/useSendTransaction.js +11 -0
- package/dist/cjs/react/native/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/cjs/react/web/ui/TransactionButton/index.js +13 -0
- package/dist/cjs/react/web/ui/TransactionButton/index.js.map +1 -1
- package/dist/cjs/transaction/actions/send-and-confirm-transaction.js +13 -0
- package/dist/cjs/transaction/actions/send-and-confirm-transaction.js.map +1 -1
- package/dist/cjs/transaction/actions/send-transaction.js +13 -0
- package/dist/cjs/transaction/actions/send-transaction.js.map +1 -1
- package/dist/cjs/transaction/actions/zksync/send-eip712-transaction.js +1 -1
- package/dist/cjs/transaction/actions/zksync/send-eip712-transaction.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/in-app-account.js +5 -1
- package/dist/cjs/wallets/in-app/web/lib/in-app-account.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js +1 -0
- package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js.map +1 -1
- package/dist/cjs/wallets/smart/index.js +13 -2
- package/dist/cjs/wallets/smart/index.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/bundler.js +11 -2
- package/dist/cjs/wallets/smart/lib/bundler.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/constants.js +27 -13
- package/dist/cjs/wallets/smart/lib/constants.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/packUserOp.js +75 -0
- package/dist/cjs/wallets/smart/lib/packUserOp.js.map +1 -0
- package/dist/cjs/wallets/smart/lib/paymaster.js +11 -1
- package/dist/cjs/wallets/smart/lib/paymaster.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/userop.js +201 -66
- package/dist/cjs/wallets/smart/lib/userop.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/utils.js +1 -1
- package/dist/cjs/wallets/smart/lib/utils.js.map +1 -1
- package/dist/cjs/wallets/smart/smart-wallet.js +2 -1
- package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -1
- package/dist/cjs/wallets/smart/types.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/extensions/erc1155/drops/write/claimTo.js.map +1 -1
- package/dist/esm/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js +29 -0
- package/dist/esm/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js.map +1 -0
- package/dist/esm/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.js +145 -0
- package/dist/esm/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.js.map +1 -0
- package/dist/esm/extensions/prebuilts/__generated__/VoteERC20/write/initialize.js +177 -0
- package/dist/esm/extensions/prebuilts/__generated__/VoteERC20/write/initialize.js.map +1 -0
- package/dist/esm/extensions/prebuilts/deploy-vote.js +119 -0
- package/dist/esm/extensions/prebuilts/deploy-vote.js.map +1 -0
- package/dist/esm/react/core/hooks/pay/useBuyWithCryptoQuote.js +5 -1
- package/dist/esm/react/core/hooks/pay/useBuyWithCryptoQuote.js.map +1 -1
- package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuote.js +5 -1
- package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuote.js.map +1 -1
- package/dist/esm/react/core/hooks/transaction/useSendAndConfirmTransaction.js +12 -0
- package/dist/esm/react/core/hooks/transaction/useSendAndConfirmTransaction.js.map +1 -1
- package/dist/esm/react/native/hooks/transaction/useSendTransaction.js +11 -0
- package/dist/esm/react/native/hooks/transaction/useSendTransaction.js.map +1 -1
- package/dist/esm/react/web/ui/TransactionButton/index.js +13 -0
- package/dist/esm/react/web/ui/TransactionButton/index.js.map +1 -1
- package/dist/esm/transaction/actions/send-and-confirm-transaction.js +13 -0
- package/dist/esm/transaction/actions/send-and-confirm-transaction.js.map +1 -1
- package/dist/esm/transaction/actions/send-transaction.js +13 -0
- package/dist/esm/transaction/actions/send-transaction.js.map +1 -1
- package/dist/esm/transaction/actions/zksync/send-eip712-transaction.js +1 -1
- package/dist/esm/transaction/actions/zksync/send-eip712-transaction.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/in-app-account.js +5 -1
- package/dist/esm/wallets/in-app/web/lib/in-app-account.js.map +1 -1
- package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js +1 -0
- package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js.map +1 -1
- package/dist/esm/wallets/smart/index.js +14 -3
- package/dist/esm/wallets/smart/index.js.map +1 -1
- package/dist/esm/wallets/smart/lib/bundler.js +12 -3
- package/dist/esm/wallets/smart/lib/bundler.js.map +1 -1
- package/dist/esm/wallets/smart/lib/constants.js +23 -10
- package/dist/esm/wallets/smart/lib/constants.js.map +1 -1
- package/dist/esm/wallets/smart/lib/packUserOp.js +65 -0
- package/dist/esm/wallets/smart/lib/packUserOp.js.map +1 -0
- package/dist/esm/wallets/smart/lib/paymaster.js +12 -2
- package/dist/esm/wallets/smart/lib/paymaster.js.map +1 -1
- package/dist/esm/wallets/smart/lib/userop.js +202 -67
- package/dist/esm/wallets/smart/lib/userop.js.map +1 -1
- package/dist/esm/wallets/smart/lib/utils.js +1 -1
- package/dist/esm/wallets/smart/lib/utils.js.map +1 -1
- package/dist/esm/wallets/smart/smart-wallet.js +3 -2
- package/dist/esm/wallets/smart/smart-wallet.js.map +1 -1
- package/dist/esm/wallets/smart/types.js.map +1 -1
- package/dist/types/exports/wallets/smart.d.ts +2 -2
- package/dist/types/exports/wallets/smart.d.ts.map +1 -1
- package/dist/types/extensions/erc1155/drops/write/claimTo.d.ts +2 -3
- package/dist/types/extensions/erc1155/drops/write/claimTo.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.d.ts +57 -0
- package/dist/types/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.d.ts.map +1 -0
- package/dist/types/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.d.ts +123 -0
- package/dist/types/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.d.ts.map +1 -0
- package/dist/types/extensions/prebuilts/__generated__/VoteERC20/write/initialize.d.ts +129 -0
- package/dist/types/extensions/prebuilts/__generated__/VoteERC20/write/initialize.d.ts.map +1 -0
- package/dist/types/extensions/prebuilts/deploy-vote.d.ts +82 -0
- package/dist/types/extensions/prebuilts/deploy-vote.d.ts.map +1 -0
- package/dist/types/react/core/hooks/pay/useBuyWithCryptoQuote.d.ts.map +1 -1
- package/dist/types/react/core/hooks/pay/useBuyWithFiatQuote.d.ts.map +1 -1
- package/dist/types/react/core/hooks/transaction/useSendAndConfirmTransaction.d.ts +12 -0
- package/dist/types/react/core/hooks/transaction/useSendAndConfirmTransaction.d.ts.map +1 -1
- package/dist/types/react/native/hooks/transaction/useSendTransaction.d.ts +11 -0
- package/dist/types/react/native/hooks/transaction/useSendTransaction.d.ts.map +1 -1
- package/dist/types/react/web/ui/TransactionButton/index.d.ts +13 -0
- package/dist/types/react/web/ui/TransactionButton/index.d.ts.map +1 -1
- package/dist/types/transaction/actions/send-and-confirm-transaction.d.ts +13 -0
- package/dist/types/transaction/actions/send-and-confirm-transaction.d.ts.map +1 -1
- package/dist/types/transaction/actions/send-transaction.d.ts +13 -0
- package/dist/types/transaction/actions/send-transaction.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/in-app-account.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.d.ts.map +1 -1
- package/dist/types/wallets/smart/index.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/bundler.d.ts +3 -3
- package/dist/types/wallets/smart/lib/bundler.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/constants.d.ts +6 -6
- package/dist/types/wallets/smart/lib/constants.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/packUserOp.d.ts +16 -0
- package/dist/types/wallets/smart/lib/packUserOp.d.ts.map +1 -0
- package/dist/types/wallets/smart/lib/paymaster.d.ts +3 -3
- package/dist/types/wallets/smart/lib/paymaster.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/userop.d.ts +6 -4
- package/dist/types/wallets/smart/lib/userop.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/utils.d.ts +2 -2
- package/dist/types/wallets/smart/lib/utils.d.ts.map +1 -1
- package/dist/types/wallets/smart/smart-wallet.d.ts.map +1 -1
- package/dist/types/wallets/smart/types.d.ts +62 -9
- package/dist/types/wallets/smart/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/exports/wallets/smart.ts +4 -2
- package/src/extensions/erc1155/drops/write/claimTo.ts +2 -3
- package/src/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.ts +49 -0
- package/src/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.ts +181 -0
- package/src/extensions/prebuilts/__generated__/VoteERC20/write/initialize.ts +230 -0
- package/src/extensions/prebuilts/deploy-vote.test.ts +73 -0
- package/src/extensions/prebuilts/deploy-vote.ts +213 -0
- package/src/extensions/vote/read/proposalExists.test.ts +123 -0
- package/src/react/core/hooks/pay/useBuyWithCryptoQuote.ts +16 -1
- package/src/react/core/hooks/pay/useBuyWithFiatQuote.ts +16 -1
- package/src/react/core/hooks/transaction/useSendAndConfirmTransaction.ts +12 -0
- package/src/react/native/hooks/transaction/useSendTransaction.tsx +11 -0
- package/src/react/web/ui/TransactionButton/index.tsx +13 -0
- package/src/transaction/actions/send-and-confirm-transaction.ts +13 -0
- package/src/transaction/actions/send-transaction.ts +13 -0
- package/src/transaction/actions/zksync/send-eip712-transaction.ts +1 -1
- package/src/version.ts +1 -1
- package/src/wallets/in-app/web/lib/in-app-account.ts +5 -1
- package/src/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.ts +1 -0
- package/src/wallets/smart/index.ts +21 -5
- package/src/wallets/smart/lib/bundler.ts +21 -5
- package/src/wallets/smart/lib/constants.ts +29 -10
- package/src/wallets/smart/lib/packUserOp.ts +79 -0
- package/src/wallets/smart/lib/paymaster.ts +22 -5
- package/src/wallets/smart/lib/userop.ts +292 -85
- package/src/wallets/smart/lib/utils.ts +11 -4
- package/src/wallets/smart/smart-wallet-integration-v07.test.ts +206 -0
- package/src/wallets/smart/smart-wallet-integration.test.ts +1 -1
- package/src/wallets/smart/smart-wallet-zksync.test.ts +3 -3
- package/src/wallets/smart/smart-wallet.ts +4 -2
- package/src/wallets/smart/types.ts +73 -9
@@ -200,7 +200,7 @@ describe.runIf(process.env.TW_SECRET_KEY).sequential(
|
|
200
200
|
expect(logs.some((l) => l.args.isAdmin)).toBe(true);
|
201
201
|
});
|
202
202
|
|
203
|
-
it("can use a different factory without replay
|
203
|
+
it("can use a different factory without replay protection", async () => {
|
204
204
|
const wallet = smartWallet({
|
205
205
|
chain,
|
206
206
|
factoryAddress: factoryAddress,
|
@@ -6,6 +6,7 @@ import { zkSyncSepolia } from "../../chains/chain-definitions/zksync-sepolia.js"
|
|
6
6
|
import { defineChain } from "../../chains/utils.js";
|
7
7
|
import { getContract } from "../../contract/contract.js";
|
8
8
|
import { claimTo } from "../../extensions/erc1155/drops/write/claimTo.js";
|
9
|
+
import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-confirm-transaction.js";
|
9
10
|
import { sendTransaction } from "../../transaction/actions/send-transaction.js";
|
10
11
|
import { prepareTransaction } from "../../transaction/prepare-transaction.js";
|
11
12
|
import type { Account, Wallet } from "../interfaces/wallet.js";
|
@@ -50,7 +51,7 @@ describe.runIf(process.env.TW_SECRET_KEY).skip(
|
|
50
51
|
});
|
51
52
|
|
52
53
|
it("should send a transactions", async () => {
|
53
|
-
const tx = await
|
54
|
+
const tx = await sendAndConfirmTransaction({
|
54
55
|
transaction: claimTo({
|
55
56
|
contract,
|
56
57
|
quantity: 1n,
|
@@ -107,9 +108,8 @@ describe.runIf(process.env.TW_SECRET_KEY).skip(
|
|
107
108
|
to: account.address,
|
108
109
|
tokenId: 0n,
|
109
110
|
}),
|
110
|
-
account:
|
111
|
+
account: account,
|
111
112
|
});
|
112
|
-
console.log("tx", tx.transactionHash);
|
113
113
|
expect(tx.transactionHash.length).toBe(66);
|
114
114
|
});
|
115
115
|
},
|
@@ -9,7 +9,7 @@ import type {
|
|
9
9
|
CreateWalletArgs,
|
10
10
|
WalletConnectionOption,
|
11
11
|
} from "../wallet-types.js";
|
12
|
-
import {
|
12
|
+
import { getDefaultAccountFactory } from "./lib/constants.js";
|
13
13
|
|
14
14
|
/**
|
15
15
|
* Creates a ERC4337 smart wallet based on a admin account.
|
@@ -170,7 +170,9 @@ export function smartWallet(
|
|
170
170
|
}
|
171
171
|
// check if factory is deployed
|
172
172
|
const factory = getContract({
|
173
|
-
address:
|
173
|
+
address:
|
174
|
+
createOptions.factoryAddress ||
|
175
|
+
getDefaultAccountFactory(createOptions.overrides?.entrypointAddress),
|
174
176
|
chain: newChain,
|
175
177
|
client: lastConnectOptions.client,
|
176
178
|
});
|
@@ -21,7 +21,9 @@ export type SmartWalletOptions = Prettify<
|
|
21
21
|
address: string;
|
22
22
|
token: string;
|
23
23
|
};
|
24
|
-
paymaster?: (
|
24
|
+
paymaster?: (
|
25
|
+
userOp: UserOperationV06 | UserOperationV07,
|
26
|
+
) => Promise<PaymasterResult>;
|
25
27
|
predictAddress?: (factoryContract: ThirdwebContract) => Promise<string>;
|
26
28
|
createAccount?: (
|
27
29
|
factoryContract: ThirdwebContract,
|
@@ -74,21 +76,51 @@ export type SmartWalletConnectionOptions = {
|
|
74
76
|
chain?: Chain;
|
75
77
|
};
|
76
78
|
|
77
|
-
export type
|
79
|
+
export type UserOperationV06 = {
|
78
80
|
sender: Address;
|
79
81
|
nonce: bigint;
|
80
|
-
initCode: Hex
|
81
|
-
callData: Hex
|
82
|
+
initCode: Hex;
|
83
|
+
callData: Hex;
|
82
84
|
callGasLimit: bigint;
|
83
85
|
verificationGasLimit: bigint;
|
84
86
|
preVerificationGas: bigint;
|
85
87
|
maxFeePerGas: bigint;
|
86
88
|
maxPriorityFeePerGas: bigint;
|
87
|
-
paymasterAndData: Hex
|
88
|
-
signature: Hex
|
89
|
+
paymasterAndData: Hex;
|
90
|
+
signature: Hex;
|
91
|
+
};
|
92
|
+
|
93
|
+
export type UserOperationV07 = {
|
94
|
+
sender: string; // address
|
95
|
+
nonce: bigint; // uint256
|
96
|
+
factory: string | undefined; // address
|
97
|
+
factoryData: Hex; // bytes
|
98
|
+
callData: Hex; // bytes
|
99
|
+
callGasLimit: bigint; // uint256
|
100
|
+
verificationGasLimit: bigint; // uint256
|
101
|
+
preVerificationGas: bigint; // uint256
|
102
|
+
maxFeePerGas: bigint; // uint256
|
103
|
+
maxPriorityFeePerGas: bigint; // uint256
|
104
|
+
paymaster: string | undefined; // address
|
105
|
+
paymasterData: Hex; // bytes
|
106
|
+
paymasterVerificationGasLimit: bigint; // uint256
|
107
|
+
paymasterPostOpGasLimit: bigint; // uint256
|
108
|
+
signature: Hex; // bytes
|
109
|
+
};
|
110
|
+
|
111
|
+
export type PackedUserOperation = {
|
112
|
+
sender: string; // address
|
113
|
+
nonce: bigint; // uint256
|
114
|
+
initCode: Hex; // bytes
|
115
|
+
callData: Hex; // bytes
|
116
|
+
accountGasLimits: Hex; // bytes32
|
117
|
+
preVerificationGas: bigint; // uint256
|
118
|
+
gasFees: Hex; // bytes32
|
119
|
+
paymasterAndData: Hex; // bytes
|
120
|
+
signature: Hex; // bytes
|
89
121
|
};
|
90
122
|
|
91
|
-
export type
|
123
|
+
export type UserOperationV06Hexed = {
|
92
124
|
sender: Address;
|
93
125
|
nonce: Hex;
|
94
126
|
initCode: Hex;
|
@@ -102,18 +134,50 @@ export type UserOperationHexed = {
|
|
102
134
|
signature: Hex;
|
103
135
|
};
|
104
136
|
|
137
|
+
export type UserOperationV07Hexed = {
|
138
|
+
sender: Hex;
|
139
|
+
nonce: Hex;
|
140
|
+
factory: Hex;
|
141
|
+
factoryData: Hex;
|
142
|
+
callData: Hex;
|
143
|
+
callGasLimit: Hex;
|
144
|
+
verificationGasLimit: Hex;
|
145
|
+
preVerificationGas: Hex;
|
146
|
+
maxFeePerGas: Hex;
|
147
|
+
maxPriorityFeePerGas: Hex;
|
148
|
+
paymaster: Hex;
|
149
|
+
paymasterVerificationGasLimit: Hex;
|
150
|
+
paymasterPostOpGasLimit: Hex;
|
151
|
+
paymasterData: Hex;
|
152
|
+
signature: Hex;
|
153
|
+
};
|
154
|
+
|
105
155
|
export type PaymasterResult = {
|
106
|
-
paymasterAndData: string;
|
107
156
|
preVerificationGas?: bigint;
|
108
157
|
verificationGasLimit?: bigint;
|
109
158
|
callGasLimit?: bigint;
|
110
|
-
}
|
159
|
+
} & (
|
160
|
+
| {
|
161
|
+
// v0.6 types
|
162
|
+
paymasterAndData: string;
|
163
|
+
}
|
164
|
+
| {
|
165
|
+
// v0.7 types
|
166
|
+
paymaster: string;
|
167
|
+
paymasterData: string;
|
168
|
+
paymasterVerificationGasLimit?: bigint;
|
169
|
+
paymasterPostOpGasLimit?: bigint;
|
170
|
+
}
|
171
|
+
);
|
111
172
|
|
112
173
|
export type EstimationResult = {
|
113
174
|
preVerificationGas: bigint;
|
114
175
|
verificationGas: bigint;
|
115
176
|
verificationGasLimit: bigint;
|
116
177
|
callGasLimit: bigint;
|
178
|
+
// v0.7 types
|
179
|
+
paymasterVerificationGasLimit?: bigint;
|
180
|
+
paymasterPostOpGasLimit?: bigint;
|
117
181
|
};
|
118
182
|
|
119
183
|
export type GasPriceResult = {
|