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.
Files changed (176) hide show
  1. package/dist/cjs/exports/wallets/smart.js +4 -2
  2. package/dist/cjs/exports/wallets/smart.js.map +1 -1
  3. package/dist/cjs/extensions/erc1155/drops/write/claimTo.js.map +1 -1
  4. package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js +32 -0
  5. package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js.map +1 -0
  6. package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.js +153 -0
  7. package/dist/cjs/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.js.map +1 -0
  8. package/dist/cjs/extensions/prebuilts/__generated__/VoteERC20/write/initialize.js +184 -0
  9. package/dist/cjs/extensions/prebuilts/__generated__/VoteERC20/write/initialize.js.map +1 -0
  10. package/dist/cjs/extensions/prebuilts/deploy-vote.js +122 -0
  11. package/dist/cjs/extensions/prebuilts/deploy-vote.js.map +1 -0
  12. package/dist/cjs/react/core/hooks/pay/useBuyWithCryptoQuote.js +5 -1
  13. package/dist/cjs/react/core/hooks/pay/useBuyWithCryptoQuote.js.map +1 -1
  14. package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuote.js +5 -1
  15. package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuote.js.map +1 -1
  16. package/dist/cjs/react/core/hooks/transaction/useSendAndConfirmTransaction.js +12 -0
  17. package/dist/cjs/react/core/hooks/transaction/useSendAndConfirmTransaction.js.map +1 -1
  18. package/dist/cjs/react/native/hooks/transaction/useSendTransaction.js +11 -0
  19. package/dist/cjs/react/native/hooks/transaction/useSendTransaction.js.map +1 -1
  20. package/dist/cjs/react/web/ui/TransactionButton/index.js +13 -0
  21. package/dist/cjs/react/web/ui/TransactionButton/index.js.map +1 -1
  22. package/dist/cjs/transaction/actions/send-and-confirm-transaction.js +13 -0
  23. package/dist/cjs/transaction/actions/send-and-confirm-transaction.js.map +1 -1
  24. package/dist/cjs/transaction/actions/send-transaction.js +13 -0
  25. package/dist/cjs/transaction/actions/send-transaction.js.map +1 -1
  26. package/dist/cjs/transaction/actions/zksync/send-eip712-transaction.js +1 -1
  27. package/dist/cjs/transaction/actions/zksync/send-eip712-transaction.js.map +1 -1
  28. package/dist/cjs/version.js +1 -1
  29. package/dist/cjs/version.js.map +1 -1
  30. package/dist/cjs/wallets/in-app/web/lib/in-app-account.js +5 -1
  31. package/dist/cjs/wallets/in-app/web/lib/in-app-account.js.map +1 -1
  32. package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js +1 -0
  33. package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js.map +1 -1
  34. package/dist/cjs/wallets/smart/index.js +13 -2
  35. package/dist/cjs/wallets/smart/index.js.map +1 -1
  36. package/dist/cjs/wallets/smart/lib/bundler.js +11 -2
  37. package/dist/cjs/wallets/smart/lib/bundler.js.map +1 -1
  38. package/dist/cjs/wallets/smart/lib/constants.js +27 -13
  39. package/dist/cjs/wallets/smart/lib/constants.js.map +1 -1
  40. package/dist/cjs/wallets/smart/lib/packUserOp.js +75 -0
  41. package/dist/cjs/wallets/smart/lib/packUserOp.js.map +1 -0
  42. package/dist/cjs/wallets/smart/lib/paymaster.js +11 -1
  43. package/dist/cjs/wallets/smart/lib/paymaster.js.map +1 -1
  44. package/dist/cjs/wallets/smart/lib/userop.js +201 -66
  45. package/dist/cjs/wallets/smart/lib/userop.js.map +1 -1
  46. package/dist/cjs/wallets/smart/lib/utils.js +1 -1
  47. package/dist/cjs/wallets/smart/lib/utils.js.map +1 -1
  48. package/dist/cjs/wallets/smart/smart-wallet.js +2 -1
  49. package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -1
  50. package/dist/cjs/wallets/smart/types.js.map +1 -1
  51. package/dist/esm/exports/wallets/smart.js +1 -1
  52. package/dist/esm/exports/wallets/smart.js.map +1 -1
  53. package/dist/esm/extensions/erc1155/drops/write/claimTo.js.map +1 -1
  54. package/dist/esm/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js +29 -0
  55. package/dist/esm/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.js.map +1 -0
  56. package/dist/esm/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.js +145 -0
  57. package/dist/esm/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.js.map +1 -0
  58. package/dist/esm/extensions/prebuilts/__generated__/VoteERC20/write/initialize.js +177 -0
  59. package/dist/esm/extensions/prebuilts/__generated__/VoteERC20/write/initialize.js.map +1 -0
  60. package/dist/esm/extensions/prebuilts/deploy-vote.js +119 -0
  61. package/dist/esm/extensions/prebuilts/deploy-vote.js.map +1 -0
  62. package/dist/esm/react/core/hooks/pay/useBuyWithCryptoQuote.js +5 -1
  63. package/dist/esm/react/core/hooks/pay/useBuyWithCryptoQuote.js.map +1 -1
  64. package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuote.js +5 -1
  65. package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuote.js.map +1 -1
  66. package/dist/esm/react/core/hooks/transaction/useSendAndConfirmTransaction.js +12 -0
  67. package/dist/esm/react/core/hooks/transaction/useSendAndConfirmTransaction.js.map +1 -1
  68. package/dist/esm/react/native/hooks/transaction/useSendTransaction.js +11 -0
  69. package/dist/esm/react/native/hooks/transaction/useSendTransaction.js.map +1 -1
  70. package/dist/esm/react/web/ui/TransactionButton/index.js +13 -0
  71. package/dist/esm/react/web/ui/TransactionButton/index.js.map +1 -1
  72. package/dist/esm/transaction/actions/send-and-confirm-transaction.js +13 -0
  73. package/dist/esm/transaction/actions/send-and-confirm-transaction.js.map +1 -1
  74. package/dist/esm/transaction/actions/send-transaction.js +13 -0
  75. package/dist/esm/transaction/actions/send-transaction.js.map +1 -1
  76. package/dist/esm/transaction/actions/zksync/send-eip712-transaction.js +1 -1
  77. package/dist/esm/transaction/actions/zksync/send-eip712-transaction.js.map +1 -1
  78. package/dist/esm/version.js +1 -1
  79. package/dist/esm/version.js.map +1 -1
  80. package/dist/esm/wallets/in-app/web/lib/in-app-account.js +5 -1
  81. package/dist/esm/wallets/in-app/web/lib/in-app-account.js.map +1 -1
  82. package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js +1 -0
  83. package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js.map +1 -1
  84. package/dist/esm/wallets/smart/index.js +14 -3
  85. package/dist/esm/wallets/smart/index.js.map +1 -1
  86. package/dist/esm/wallets/smart/lib/bundler.js +12 -3
  87. package/dist/esm/wallets/smart/lib/bundler.js.map +1 -1
  88. package/dist/esm/wallets/smart/lib/constants.js +23 -10
  89. package/dist/esm/wallets/smart/lib/constants.js.map +1 -1
  90. package/dist/esm/wallets/smart/lib/packUserOp.js +65 -0
  91. package/dist/esm/wallets/smart/lib/packUserOp.js.map +1 -0
  92. package/dist/esm/wallets/smart/lib/paymaster.js +12 -2
  93. package/dist/esm/wallets/smart/lib/paymaster.js.map +1 -1
  94. package/dist/esm/wallets/smart/lib/userop.js +202 -67
  95. package/dist/esm/wallets/smart/lib/userop.js.map +1 -1
  96. package/dist/esm/wallets/smart/lib/utils.js +1 -1
  97. package/dist/esm/wallets/smart/lib/utils.js.map +1 -1
  98. package/dist/esm/wallets/smart/smart-wallet.js +3 -2
  99. package/dist/esm/wallets/smart/smart-wallet.js.map +1 -1
  100. package/dist/esm/wallets/smart/types.js.map +1 -1
  101. package/dist/types/exports/wallets/smart.d.ts +2 -2
  102. package/dist/types/exports/wallets/smart.d.ts.map +1 -1
  103. package/dist/types/extensions/erc1155/drops/write/claimTo.d.ts +2 -3
  104. package/dist/types/extensions/erc1155/drops/write/claimTo.d.ts.map +1 -1
  105. package/dist/types/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.d.ts +57 -0
  106. package/dist/types/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.d.ts.map +1 -0
  107. package/dist/types/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.d.ts +123 -0
  108. package/dist/types/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.d.ts.map +1 -0
  109. package/dist/types/extensions/prebuilts/__generated__/VoteERC20/write/initialize.d.ts +129 -0
  110. package/dist/types/extensions/prebuilts/__generated__/VoteERC20/write/initialize.d.ts.map +1 -0
  111. package/dist/types/extensions/prebuilts/deploy-vote.d.ts +82 -0
  112. package/dist/types/extensions/prebuilts/deploy-vote.d.ts.map +1 -0
  113. package/dist/types/react/core/hooks/pay/useBuyWithCryptoQuote.d.ts.map +1 -1
  114. package/dist/types/react/core/hooks/pay/useBuyWithFiatQuote.d.ts.map +1 -1
  115. package/dist/types/react/core/hooks/transaction/useSendAndConfirmTransaction.d.ts +12 -0
  116. package/dist/types/react/core/hooks/transaction/useSendAndConfirmTransaction.d.ts.map +1 -1
  117. package/dist/types/react/native/hooks/transaction/useSendTransaction.d.ts +11 -0
  118. package/dist/types/react/native/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  119. package/dist/types/react/web/ui/TransactionButton/index.d.ts +13 -0
  120. package/dist/types/react/web/ui/TransactionButton/index.d.ts.map +1 -1
  121. package/dist/types/transaction/actions/send-and-confirm-transaction.d.ts +13 -0
  122. package/dist/types/transaction/actions/send-and-confirm-transaction.d.ts.map +1 -1
  123. package/dist/types/transaction/actions/send-transaction.d.ts +13 -0
  124. package/dist/types/transaction/actions/send-transaction.d.ts.map +1 -1
  125. package/dist/types/version.d.ts +1 -1
  126. package/dist/types/version.d.ts.map +1 -1
  127. package/dist/types/wallets/in-app/web/lib/in-app-account.d.ts.map +1 -1
  128. package/dist/types/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.d.ts.map +1 -1
  129. package/dist/types/wallets/smart/index.d.ts.map +1 -1
  130. package/dist/types/wallets/smart/lib/bundler.d.ts +3 -3
  131. package/dist/types/wallets/smart/lib/bundler.d.ts.map +1 -1
  132. package/dist/types/wallets/smart/lib/constants.d.ts +6 -6
  133. package/dist/types/wallets/smart/lib/constants.d.ts.map +1 -1
  134. package/dist/types/wallets/smart/lib/packUserOp.d.ts +16 -0
  135. package/dist/types/wallets/smart/lib/packUserOp.d.ts.map +1 -0
  136. package/dist/types/wallets/smart/lib/paymaster.d.ts +3 -3
  137. package/dist/types/wallets/smart/lib/paymaster.d.ts.map +1 -1
  138. package/dist/types/wallets/smart/lib/userop.d.ts +6 -4
  139. package/dist/types/wallets/smart/lib/userop.d.ts.map +1 -1
  140. package/dist/types/wallets/smart/lib/utils.d.ts +2 -2
  141. package/dist/types/wallets/smart/lib/utils.d.ts.map +1 -1
  142. package/dist/types/wallets/smart/smart-wallet.d.ts.map +1 -1
  143. package/dist/types/wallets/smart/types.d.ts +62 -9
  144. package/dist/types/wallets/smart/types.d.ts.map +1 -1
  145. package/package.json +1 -1
  146. package/src/exports/wallets/smart.ts +4 -2
  147. package/src/extensions/erc1155/drops/write/claimTo.ts +2 -3
  148. package/src/extensions/erc4337/__generated__/IEntryPoint_v07/events/PostOpRevertReason.ts +49 -0
  149. package/src/extensions/erc4337/__generated__/IEntryPoint_v07/read/getUserOpHash.ts +181 -0
  150. package/src/extensions/prebuilts/__generated__/VoteERC20/write/initialize.ts +230 -0
  151. package/src/extensions/prebuilts/deploy-vote.test.ts +73 -0
  152. package/src/extensions/prebuilts/deploy-vote.ts +213 -0
  153. package/src/extensions/vote/read/proposalExists.test.ts +123 -0
  154. package/src/react/core/hooks/pay/useBuyWithCryptoQuote.ts +16 -1
  155. package/src/react/core/hooks/pay/useBuyWithFiatQuote.ts +16 -1
  156. package/src/react/core/hooks/transaction/useSendAndConfirmTransaction.ts +12 -0
  157. package/src/react/native/hooks/transaction/useSendTransaction.tsx +11 -0
  158. package/src/react/web/ui/TransactionButton/index.tsx +13 -0
  159. package/src/transaction/actions/send-and-confirm-transaction.ts +13 -0
  160. package/src/transaction/actions/send-transaction.ts +13 -0
  161. package/src/transaction/actions/zksync/send-eip712-transaction.ts +1 -1
  162. package/src/version.ts +1 -1
  163. package/src/wallets/in-app/web/lib/in-app-account.ts +5 -1
  164. package/src/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.ts +1 -0
  165. package/src/wallets/smart/index.ts +21 -5
  166. package/src/wallets/smart/lib/bundler.ts +21 -5
  167. package/src/wallets/smart/lib/constants.ts +29 -10
  168. package/src/wallets/smart/lib/packUserOp.ts +79 -0
  169. package/src/wallets/smart/lib/paymaster.ts +22 -5
  170. package/src/wallets/smart/lib/userop.ts +292 -85
  171. package/src/wallets/smart/lib/utils.ts +11 -4
  172. package/src/wallets/smart/smart-wallet-integration-v07.test.ts +206 -0
  173. package/src/wallets/smart/smart-wallet-integration.test.ts +1 -1
  174. package/src/wallets/smart/smart-wallet-zksync.test.ts +3 -3
  175. package/src/wallets/smart/smart-wallet.ts +4 -2
  176. 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 protectin", async () => {
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 sendTransaction({
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: smartAccount,
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 { DEFAULT_ACCOUNT_FACTORY } from "./lib/constants.js";
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: createOptions.factoryAddress || DEFAULT_ACCOUNT_FACTORY,
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?: (userOp: UserOperation) => Promise<PaymasterResult>;
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 UserOperation = {
79
+ export type UserOperationV06 = {
78
80
  sender: Address;
79
81
  nonce: bigint;
80
- initCode: Hex | Uint8Array;
81
- callData: Hex | Uint8Array;
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 | Uint8Array;
88
- signature: Hex | Uint8Array;
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 UserOperationHexed = {
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 = {