permissionless 0.2.7 → 0.2.9

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 (57) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/_cjs/accounts/index.js +3 -1
  3. package/_cjs/accounts/index.js.map +1 -1
  4. package/_cjs/accounts/thirdweb/toThirdwebSmartAccount.js +118 -0
  5. package/_cjs/accounts/thirdweb/toThirdwebSmartAccount.js.map +1 -0
  6. package/_cjs/accounts/thirdweb/utils/encodeCallData.js +76 -0
  7. package/_cjs/accounts/thirdweb/utils/encodeCallData.js.map +1 -0
  8. package/_cjs/accounts/thirdweb/utils/getAccountAddress.js +37 -0
  9. package/_cjs/accounts/thirdweb/utils/getAccountAddress.js.map +1 -0
  10. package/_cjs/accounts/thirdweb/utils/getFactoryData.js +37 -0
  11. package/_cjs/accounts/thirdweb/utils/getFactoryData.js.map +1 -0
  12. package/_cjs/accounts/thirdweb/utils/signMessage.js +19 -0
  13. package/_cjs/accounts/thirdweb/utils/signMessage.js.map +1 -0
  14. package/_cjs/accounts/thirdweb/utils/signTypedData.js +40 -0
  15. package/_cjs/accounts/thirdweb/utils/signTypedData.js.map +1 -0
  16. package/_cjs/actions/public/getSenderAddress.js +7 -4
  17. package/_cjs/actions/public/getSenderAddress.js.map +1 -1
  18. package/_esm/accounts/index.js +2 -1
  19. package/_esm/accounts/index.js.map +1 -1
  20. package/_esm/accounts/thirdweb/toThirdwebSmartAccount.js +122 -0
  21. package/_esm/accounts/thirdweb/toThirdwebSmartAccount.js.map +1 -0
  22. package/_esm/accounts/thirdweb/utils/encodeCallData.js +72 -0
  23. package/_esm/accounts/thirdweb/utils/encodeCallData.js.map +1 -0
  24. package/_esm/accounts/thirdweb/utils/getAccountAddress.js +33 -0
  25. package/_esm/accounts/thirdweb/utils/getAccountAddress.js.map +1 -0
  26. package/_esm/accounts/thirdweb/utils/getFactoryData.js +33 -0
  27. package/_esm/accounts/thirdweb/utils/getFactoryData.js.map +1 -0
  28. package/_esm/accounts/thirdweb/utils/signMessage.js +17 -0
  29. package/_esm/accounts/thirdweb/utils/signMessage.js.map +1 -0
  30. package/_esm/accounts/thirdweb/utils/signTypedData.js +40 -0
  31. package/_esm/accounts/thirdweb/utils/signTypedData.js.map +1 -0
  32. package/_esm/actions/public/getSenderAddress.js +8 -6
  33. package/_esm/actions/public/getSenderAddress.js.map +1 -1
  34. package/_types/accounts/index.d.ts +2 -1
  35. package/_types/accounts/index.d.ts.map +1 -1
  36. package/_types/accounts/thirdweb/toThirdwebSmartAccount.d.ts +37 -0
  37. package/_types/accounts/thirdweb/toThirdwebSmartAccount.d.ts.map +1 -0
  38. package/_types/accounts/thirdweb/utils/encodeCallData.d.ts +6 -0
  39. package/_types/accounts/thirdweb/utils/encodeCallData.d.ts.map +1 -0
  40. package/_types/accounts/thirdweb/utils/getAccountAddress.d.ts +8 -0
  41. package/_types/accounts/thirdweb/utils/getAccountAddress.d.ts.map +1 -0
  42. package/_types/accounts/thirdweb/utils/getFactoryData.d.ts +6 -0
  43. package/_types/accounts/thirdweb/utils/getFactoryData.d.ts.map +1 -0
  44. package/_types/accounts/thirdweb/utils/signMessage.d.ts +8 -0
  45. package/_types/accounts/thirdweb/utils/signMessage.d.ts.map +1 -0
  46. package/_types/accounts/thirdweb/utils/signTypedData.d.ts +7 -0
  47. package/_types/accounts/thirdweb/utils/signTypedData.d.ts.map +1 -0
  48. package/_types/actions/public/getSenderAddress.d.ts.map +1 -1
  49. package/accounts/index.ts +12 -1
  50. package/accounts/thirdweb/toThirdwebSmartAccount.ts +203 -0
  51. package/accounts/thirdweb/utils/encodeCallData.ts +81 -0
  52. package/accounts/thirdweb/utils/getAccountAddress.ts +48 -0
  53. package/accounts/thirdweb/utils/getFactoryData.ts +40 -0
  54. package/accounts/thirdweb/utils/signMessage.ts +34 -0
  55. package/accounts/thirdweb/utils/signTypedData.ts +67 -0
  56. package/actions/public/getSenderAddress.ts +11 -8
  57. package/package.json +2 -8
@@ -0,0 +1,72 @@
1
+ import { encodeFunctionData } from "viem";
2
+ export const encodeCallData = async (calls) => {
3
+ if (calls.length > 1) {
4
+ return encodeFunctionData({
5
+ abi: [
6
+ {
7
+ inputs: [
8
+ {
9
+ internalType: "address[]",
10
+ name: "dest",
11
+ type: "address[]"
12
+ },
13
+ {
14
+ internalType: "uint256[]",
15
+ name: "value",
16
+ type: "uint256[]"
17
+ },
18
+ {
19
+ internalType: "bytes[]",
20
+ name: "func",
21
+ type: "bytes[]"
22
+ }
23
+ ],
24
+ name: "executeBatch",
25
+ outputs: [],
26
+ stateMutability: "nonpayable",
27
+ type: "function"
28
+ }
29
+ ],
30
+ functionName: "executeBatch",
31
+ args: [
32
+ calls.map((a) => a.to),
33
+ calls.map((a) => a.value ?? 0n),
34
+ calls.map((a) => a.data ?? "0x")
35
+ ]
36
+ });
37
+ }
38
+ const call = calls.length === 0 ? undefined : calls[0];
39
+ if (!call) {
40
+ throw new Error("No calls to encode");
41
+ }
42
+ return encodeFunctionData({
43
+ abi: [
44
+ {
45
+ inputs: [
46
+ {
47
+ internalType: "address",
48
+ name: "dest",
49
+ type: "address"
50
+ },
51
+ {
52
+ internalType: "uint256",
53
+ name: "value",
54
+ type: "uint256"
55
+ },
56
+ {
57
+ internalType: "bytes",
58
+ name: "func",
59
+ type: "bytes"
60
+ }
61
+ ],
62
+ name: "execute",
63
+ outputs: [],
64
+ stateMutability: "nonpayable",
65
+ type: "function"
66
+ }
67
+ ],
68
+ functionName: "execute",
69
+ args: [call.to, call.value ?? 0n, call.data ?? "0x"]
70
+ });
71
+ };
72
+ //# sourceMappingURL=encodeCallData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encodeCallData.js","sourceRoot":"","sources":["../../../../accounts/thirdweb/utils/encodeCallData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAEzC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAC/B,KAIG,EACL,EAAE;IACA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,kBAAkB,CAAC;YACtB,GAAG,EAAE;gBACD;oBACI,MAAM,EAAE;wBACJ;4BACI,YAAY,EAAE,WAAW;4BACzB,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,WAAW;yBACpB;wBACD;4BACI,YAAY,EAAE,WAAW;4BACzB,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,WAAW;yBACpB;wBACD;4BACI,YAAY,EAAE,SAAS;4BACvB,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,SAAS;yBAClB;qBACJ;oBACD,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,EAAE;oBACX,eAAe,EAAE,YAAY;oBAC7B,IAAI,EAAE,UAAU;iBACnB;aACJ;YACD,YAAY,EAAE,cAAc;YAC5B,IAAI,EAAE;gBACF,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;aACnC;SACJ,CAAC,CAAA;IACN,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAEtD,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACzC,CAAC;IAED,OAAO,kBAAkB,CAAC;QACtB,GAAG,EAAE;YACD;gBACI,MAAM,EAAE;oBACJ;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,OAAO;wBACrB,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,EAAE;gBACX,eAAe,EAAE,YAAY;gBAC7B,IAAI,EAAE,UAAU;aACnB;SACJ;QACD,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;KACvD,CAAC,CAAA;AACN,CAAC,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { readContract } from "viem/actions";
2
+ import { getAction } from "viem/utils";
3
+ export const getAccountAddress = async (client, args) => {
4
+ const { adminAddress, factoryAddress, salt } = args;
5
+ return getAction(client, readContract, "readContract")({
6
+ address: factoryAddress,
7
+ abi: [
8
+ {
9
+ inputs: [
10
+ {
11
+ name: "_adminSigner",
12
+ type: "address"
13
+ },
14
+ {
15
+ name: "_data",
16
+ type: "bytes"
17
+ }
18
+ ],
19
+ name: "getAddress",
20
+ outputs: [
21
+ {
22
+ type: "address"
23
+ }
24
+ ],
25
+ stateMutability: "view",
26
+ type: "function"
27
+ }
28
+ ],
29
+ functionName: "getAddress",
30
+ args: [adminAddress, salt]
31
+ });
32
+ };
33
+ //# sourceMappingURL=getAccountAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAccountAddress.js","sourceRoot":"","sources":["../../../../accounts/thirdweb/utils/getAccountAddress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAQtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAClC,MAAc,EACd,IAA6B,EACb,EAAE;IAClB,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IAEnD,OAAO,SAAS,CACZ,MAAM,EACN,YAAY,EACZ,cAAc,CACjB,CAAC;QACE,OAAO,EAAE,cAAc;QACvB,GAAG,EAAE;YACD;gBACI,MAAM,EAAE;oBACJ;wBACI,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,SAAS;qBAClB;iBACJ;gBACD,eAAe,EAAE,MAAM;gBACvB,IAAI,EAAE,UAAU;aACnB;SACJ;QACD,YAAY,EAAE,YAAY;QAC1B,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;KAC7B,CAAC,CAAA;AACN,CAAC,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { encodeFunctionData } from "viem";
2
+ export const getFactoryData = async ({ admin, salt }) => {
3
+ return encodeFunctionData({
4
+ abi: [
5
+ {
6
+ inputs: [
7
+ {
8
+ internalType: "address",
9
+ name: "_admin",
10
+ type: "address"
11
+ },
12
+ {
13
+ internalType: "bytes",
14
+ name: "_salt",
15
+ type: "bytes"
16
+ }
17
+ ],
18
+ name: "createAccount",
19
+ outputs: [
20
+ {
21
+ internalType: "address",
22
+ type: "address"
23
+ }
24
+ ],
25
+ stateMutability: "nonpayable",
26
+ type: "function"
27
+ }
28
+ ],
29
+ functionName: "createAccount",
30
+ args: [admin, salt]
31
+ });
32
+ };
33
+ //# sourceMappingURL=getFactoryData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFactoryData.js","sourceRoot":"","sources":["../../../../accounts/thirdweb/utils/getFactoryData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAEzC,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,EACjC,KAAK,EACL,IAAI,EAIP,EAAE,EAAE;IACD,OAAO,kBAAkB,CAAC;QACtB,GAAG,EAAE;YACD;gBACI,MAAM,EAAE;oBACJ;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,OAAO;wBACrB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE;oBACL;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,SAAS;qBAClB;iBACJ;gBACD,eAAe,EAAE,YAAY;gBAC7B,IAAI,EAAE,UAAU;aACnB;SACJ;QACD,YAAY,EAAE,eAAe;QAC7B,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;KACtB,CAAC,CAAA;AACN,CAAC,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { hashMessage } from "viem";
2
+ import { signMessage as _signMessage } from "viem/actions";
3
+ export async function signMessage({ message, admin, accountAddress, chainId }) {
4
+ const hashedMessage = hashMessage(message);
5
+ return admin.signTypedData({
6
+ domain: {
7
+ name: "Account",
8
+ version: "1",
9
+ chainId,
10
+ verifyingContract: accountAddress
11
+ },
12
+ primaryType: "AccountMessage",
13
+ types: { AccountMessage: [{ name: "message", type: "bytes" }] },
14
+ message: { message: hashedMessage }
15
+ });
16
+ }
17
+ //# sourceMappingURL=signMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signMessage.js","sourceRoot":"","sources":["../../../../accounts/thirdweb/utils/signMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,WAAW,EACd,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAE1D,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAC9B,OAAO,EACP,KAAK,EACL,cAAc,EACd,OAAO,EAMV;IACG,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IAE1C,OAAO,KAAK,CAAC,aAAa,CAAC;QACvB,MAAM,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,GAAG;YACZ,OAAO;YACP,iBAAiB,EAAE,cAAc;SACpC;QACD,WAAW,EAAE,gBAAgB;QAC7B,KAAK,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;QAC/D,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;KACtC,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { encodeAbiParameters, getTypesForEIP712Domain, hashTypedData, validateTypedData } from "viem";
2
+ export async function signTypedData(parameters) {
3
+ const { admin, accountAddress, chainId, ...typedData } = parameters;
4
+ const isSelfVerifyingContract = typedData.domain?.verifyingContract?.toLowerCase() === accountAddress;
5
+ // If this is a self-verifying contract, we can use the admin's signature
6
+ if (isSelfVerifyingContract) {
7
+ return admin.signTypedData({
8
+ ...typedData
9
+ });
10
+ }
11
+ const { message, primaryType, types: _types, domain } = typedData;
12
+ const types = {
13
+ EIP712Domain: getTypesForEIP712Domain({
14
+ domain: domain
15
+ }),
16
+ ..._types
17
+ };
18
+ // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc
19
+ // as we can't statically check this with TypeScript.
20
+ validateTypedData({
21
+ domain,
22
+ message,
23
+ primaryType,
24
+ types
25
+ });
26
+ const typedHash = hashTypedData({ message, primaryType, types, domain });
27
+ const wrappedMessageHash = encodeAbiParameters([{ type: "bytes32" }], [typedHash]);
28
+ return admin.signTypedData({
29
+ domain: {
30
+ name: "Account",
31
+ version: "1",
32
+ chainId,
33
+ verifyingContract: accountAddress
34
+ },
35
+ primaryType: "AccountMessage",
36
+ types: { AccountMessage: [{ name: "message", type: "bytes" }] },
37
+ message: { message: wrappedMessageHash }
38
+ });
39
+ }
40
+ //# sourceMappingURL=signTypedData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signTypedData.js","sourceRoot":"","sources":["../../../../accounts/thirdweb/utils/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACpB,MAAM,MAAM,CAAA;AAEb,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,UAIC;IAED,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,UAAU,CAAA;IACnE,MAAM,uBAAuB,GAErB,SAAS,CAAC,MACb,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,cAAc,CAAA;IAE1D,yEAAyE;IACzE,IAAI,uBAAuB,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,aAAa,CAAC;YACvB,GAAG,SAAS;SACf,CAAC,CAAA;IACN,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IACjE,MAAM,KAAK,GAAG;QACV,YAAY,EAAE,uBAAuB,CAAC;YAClC,MAAM,EAAE,MAAM;SACjB,CAAC;QACF,GAAG,MAAM;KACZ,CAAA;IAED,uFAAuF;IACvF,qDAAqD;IACrD,iBAAiB,CAAC;QACd,MAAM;QACN,OAAO;QACP,WAAW;QACX,KAAK;KACR,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,aAAa,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IACxE,MAAM,kBAAkB,GAAG,mBAAmB,CAC1C,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EACrB,CAAC,SAAS,CAAC,CACd,CAAA;IAED,OAAO,KAAK,CAAC,aAAa,CAAC;QACvB,MAAM,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,GAAG;YACZ,OAAO;YACP,iBAAiB,EAAE,cAAc;SACpC;QACD,WAAW,EAAE,gBAAgB;QAC7B,KAAK,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;QAC/D,OAAO,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;KAC3C,CAAC,CAAA;AACN,CAAC"}
@@ -1,4 +1,4 @@
1
- import { BaseError, ContractFunctionRevertedError, InvalidInputRpcError, RpcRequestError, UnknownRpcError, concat, decodeErrorResult } from "viem";
1
+ import { BaseError, ContractFunctionRevertedError, InvalidInputRpcError, RawContractError, RpcRequestError, UnknownRpcError, concat, decodeErrorResult } from "viem";
2
2
  import { simulateContract } from "viem/actions";
3
3
  import { getAction } from "viem/utils";
4
4
  export class InvalidEntryPointError extends BaseError {
@@ -117,13 +117,15 @@ export const getSenderAddress = async (client, args) => {
117
117
  return error.args[0];
118
118
  }
119
119
  if (revertError instanceof InvalidInputRpcError) {
120
- const hexStringRegex = /0x[a-fA-F0-9]+/;
121
- // biome-ignore lint/suspicious/noExplicitAny:
122
- const match = revertError.cause.data.match(hexStringRegex);
123
- if (!match) {
120
+ const { data: data_ } = (e instanceof RawContractError
121
+ ? e
122
+ : e instanceof BaseError
123
+ ? e.walk((err) => "data" in err) || e.walk()
124
+ : {});
125
+ const data = typeof data_ === "string" ? data_ : data_?.data;
126
+ if (data === undefined) {
124
127
  throw new Error("Failed to parse revert bytes from RPC response");
125
128
  }
126
- const data = match[0];
127
129
  const error = decodeErrorResult({
128
130
  abi: [
129
131
  {
@@ -1 +1 @@
1
- {"version":3,"file":"getSenderAddress.js","sourceRoot":"","sources":["../../../actions/public/getSenderAddress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getSenderAddress.js","sourceRoot":"","sources":["../../../actions/public/getSenderAddress.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,6 @@ import { type ToTrustSmartAccountParameters, type ToTrustSmartAccountReturnType,
4
4
  import { type SafeSmartAccountImplementation, type SafeVersion, type ToSafeSmartAccountParameters, type ToSafeSmartAccountReturnType, toSafeSmartAccount } from "./safe/toSafeSmartAccount";
5
5
  import { type EcdsaKernelSmartAccountImplementation, type KernelVersion, type ToEcdsaKernelSmartAccountParameters, type ToEcdsaKernelSmartAccountReturnType, toEcdsaKernelSmartAccount } from "./kernel/toEcdsaKernelSmartAccount";
6
6
  import { type BiconomySmartAccountImplementation, type ToBiconomySmartAccountParameters, type ToBiconomySmartAccountReturnType, toBiconomySmartAccount } from "./biconomy/toBiconomySmartAccount";
7
- export { type ToSimpleSmartAccountParameters, type SimpleSmartAccountImplementation, type ToSimpleSmartAccountReturnType, toSimpleSmartAccount, type LightAccountVersion, type ToLightSmartAccountParameters, type LightSmartAccountImplementation, type ToLightSmartAccountReturnType, toLightSmartAccount, type ToTrustSmartAccountParameters, type TrustSmartAccountImplementation, type ToTrustSmartAccountReturnType, toTrustSmartAccount, type ToSafeSmartAccountParameters, type SafeSmartAccountImplementation, type ToSafeSmartAccountReturnType, toSafeSmartAccount, type ToEcdsaKernelSmartAccountParameters, type EcdsaKernelSmartAccountImplementation, type ToEcdsaKernelSmartAccountReturnType, type SafeVersion, type KernelVersion, toEcdsaKernelSmartAccount, type ToBiconomySmartAccountReturnType, type ToBiconomySmartAccountParameters, type BiconomySmartAccountImplementation, toBiconomySmartAccount };
7
+ import { type ThirdwebSmartAccountImplementation, type ToThirdwebSmartAccountParameters, type ToThirdwebSmartAccountReturnType, toThirdwebSmartAccount } from "./thirdweb/toThirdwebSmartAccount";
8
+ export { type ToSimpleSmartAccountParameters, type SimpleSmartAccountImplementation, type ToSimpleSmartAccountReturnType, toSimpleSmartAccount, type LightAccountVersion, type ToLightSmartAccountParameters, type LightSmartAccountImplementation, type ToLightSmartAccountReturnType, toLightSmartAccount, type ToTrustSmartAccountParameters, type TrustSmartAccountImplementation, type ToTrustSmartAccountReturnType, toTrustSmartAccount, type ToSafeSmartAccountParameters, type SafeSmartAccountImplementation, type ToSafeSmartAccountReturnType, toSafeSmartAccount, type ToEcdsaKernelSmartAccountParameters, type EcdsaKernelSmartAccountImplementation, type ToEcdsaKernelSmartAccountReturnType, type SafeVersion, type KernelVersion, toEcdsaKernelSmartAccount, type ToBiconomySmartAccountReturnType, type ToBiconomySmartAccountParameters, type BiconomySmartAccountImplementation, toBiconomySmartAccount, type ToThirdwebSmartAccountReturnType, type ToThirdwebSmartAccountParameters, type ThirdwebSmartAccountImplementation, toThirdwebSmartAccount };
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,gCAAgC,EACrC,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACnC,oBAAoB,EACvB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,mBAAmB,EACtB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACH,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,EACpC,mBAAmB,EACtB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACH,KAAK,8BAA8B,EACnC,KAAK,WAAW,EAChB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,kBAAkB,EACrB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACH,KAAK,qCAAqC,EAC1C,KAAK,aAAa,EAClB,KAAK,mCAAmC,EACxC,KAAK,mCAAmC,EACxC,yBAAyB,EAC5B,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EACH,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,sBAAsB,EACzB,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EACH,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,EACrC,KAAK,8BAA8B,EACnC,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,EAClC,mBAAmB,EACnB,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,EAClC,mBAAmB,EACnB,KAAK,4BAA4B,EACjC,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EACjC,kBAAkB,EAClB,KAAK,mCAAmC,EACxC,KAAK,qCAAqC,EAC1C,KAAK,mCAAmC,EACxC,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,yBAAyB,EACzB,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,kCAAkC,EACvC,sBAAsB,EACzB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,gCAAgC,EACrC,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACnC,oBAAoB,EACvB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,mBAAmB,EACtB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACH,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,EACpC,mBAAmB,EACtB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACH,KAAK,8BAA8B,EACnC,KAAK,WAAW,EAChB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,kBAAkB,EACrB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACH,KAAK,qCAAqC,EAC1C,KAAK,aAAa,EAClB,KAAK,mCAAmC,EACxC,KAAK,mCAAmC,EACxC,yBAAyB,EAC5B,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EACH,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,sBAAsB,EACzB,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EACH,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,sBAAsB,EACzB,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EACH,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,EACrC,KAAK,8BAA8B,EACnC,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,EAClC,mBAAmB,EACnB,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,EAClC,mBAAmB,EACnB,KAAK,4BAA4B,EACjC,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EACjC,kBAAkB,EAClB,KAAK,mCAAmC,EACxC,KAAK,qCAAqC,EAC1C,KAAK,mCAAmC,EACxC,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,yBAAyB,EACzB,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,kCAAkC,EACvC,sBAAsB,EACtB,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,kCAAkC,EACvC,sBAAsB,EACzB,CAAA"}
@@ -0,0 +1,37 @@
1
+ import type { Account, Address, Assign, Chain, Client, EIP1193Provider, LocalAccount, OneOf, Transport, WalletClient } from "viem";
2
+ import { type SmartAccount, type SmartAccountImplementation, entryPoint06Abi, entryPoint07Abi } from "viem/account-abstraction";
3
+ /**
4
+ * Default addresses for Thirdweb Smart Account
5
+ */
6
+ export declare const THIRDWEB_ADDRESSES: {
7
+ "0.6": {
8
+ factoryAddress: Address;
9
+ };
10
+ "0.7": {
11
+ factoryAddress: Address;
12
+ };
13
+ };
14
+ export type ToThirdwebSmartAccountParameters<entryPointVersion extends "0.6" | "0.7" = "0.7"> = {
15
+ client: Client;
16
+ owner: OneOf<EIP1193Provider | WalletClient<Transport, Chain | undefined, Account> | LocalAccount>;
17
+ factoryAddress?: Address;
18
+ entryPoint?: {
19
+ address: Address;
20
+ version: entryPointVersion;
21
+ };
22
+ salt?: string;
23
+ address?: Address;
24
+ secp256k1VerificationFacetAddress?: Address;
25
+ nonceKey?: bigint;
26
+ };
27
+ export type ThirdwebSmartAccountImplementation<entryPointVersion extends "0.6" | "0.7" = "0.7"> = Assign<SmartAccountImplementation<entryPointVersion extends "0.6" ? typeof entryPoint06Abi : typeof entryPoint07Abi, entryPointVersion>, {
28
+ sign: NonNullable<SmartAccountImplementation["sign"]>;
29
+ }>;
30
+ export type ToThirdwebSmartAccountReturnType<entryPointVersion extends "0.6" | "0.7" = "0.7"> = SmartAccount<ThirdwebSmartAccountImplementation<entryPointVersion>>;
31
+ /**
32
+ * @description Creates a Thirdweb Smart Account from a private key.
33
+ *
34
+ * @returns A Private Key Thirdweb Smart Account.
35
+ */
36
+ export declare function toThirdwebSmartAccount<entryPointVersion extends "0.6" | "0.7" = "0.7">(parameters: ToThirdwebSmartAccountParameters<entryPointVersion>): Promise<ToThirdwebSmartAccountReturnType<entryPointVersion>>;
37
+ //# sourceMappingURL=toThirdwebSmartAccount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toThirdwebSmartAccount.d.ts","sourceRoot":"","sources":["../../../accounts/thirdweb/toThirdwebSmartAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,eAAe,EACf,YAAY,EACZ,KAAK,EACL,SAAS,EAET,YAAY,EACf,MAAM,MAAM,CAAA;AAIb,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAE/B,eAAe,EACf,eAAe,EAIlB,MAAM,0BAA0B,CAAA;AASjC;;GAEG;AACH,eAAO,MAAM,kBAAkB;;wBAEyC,OAAO;;;wBAGP,OAAO;;CAE9E,CAAA;AAED,MAAM,MAAM,gCAAgC,CACxC,iBAAiB,SAAS,KAAK,GAAG,KAAK,GAAG,KAAK,IAC/C;IACA,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,KAAK,CACN,eAAe,GACf,YAAY,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,CAAC,GACnD,YAAY,CACjB,CAAA;IACD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE;QACT,OAAO,EAAE,OAAO,CAAA;QAChB,OAAO,EAAE,iBAAiB,CAAA;KAC7B,CAAA;IACD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iCAAiC,CAAC,EAAE,OAAO,CAAA;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,kCAAkC,CAC1C,iBAAiB,SAAS,KAAK,GAAG,KAAK,GAAG,KAAK,IAC/C,MAAM,CACN,0BAA0B,CACtB,iBAAiB,SAAS,KAAK,GACzB,OAAO,eAAe,GACtB,OAAO,eAAe,EAC5B,iBAAiB,CACpB,EACD;IAAE,IAAI,EAAE,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,CAC5D,CAAA;AAED,MAAM,MAAM,gCAAgC,CACxC,iBAAiB,SAAS,KAAK,GAAG,KAAK,GAAG,KAAK,IAC/C,YAAY,CAAC,kCAAkC,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAEvE;;;;GAIG;AACH,wBAAsB,sBAAsB,CACxC,iBAAiB,SAAS,KAAK,GAAG,KAAK,GAAG,KAAK,EAE/C,UAAU,EAAE,gCAAgC,CAAC,iBAAiB,CAAC,GAChE,OAAO,CAAC,gCAAgC,CAAC,iBAAiB,CAAC,CAAC,CA+G9D"}
@@ -0,0 +1,6 @@
1
+ export declare const encodeCallData: (calls: readonly {
2
+ to: `0x${string}`;
3
+ value?: bigint | undefined;
4
+ data?: `0x${string}` | undefined;
5
+ }[]) => Promise<`0x${string}`>;
6
+ //# sourceMappingURL=encodeCallData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encodeCallData.d.ts","sourceRoot":"","sources":["../../../../accounts/thirdweb/utils/encodeCallData.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,UAChB,SAAS;IACZ,EAAE,EAAE,KAAK,MAAM,EAAE,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAAA;CACnC,EAAE,2BAyEN,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { Address, Client, Hex } from "viem";
2
+ export type GetAccountAddressParams = {
3
+ adminAddress: Address;
4
+ factoryAddress: Address;
5
+ salt: Hex;
6
+ };
7
+ export declare const getAccountAddress: (client: Client, args: GetAccountAddressParams) => Promise<Address>;
8
+ //# sourceMappingURL=getAccountAddress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAccountAddress.d.ts","sourceRoot":"","sources":["../../../../accounts/thirdweb/utils/getAccountAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAIhD,MAAM,MAAM,uBAAuB,GAAG;IAClC,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB,IAAI,EAAE,GAAG,CAAA;CACZ,CAAA;AAED,eAAO,MAAM,iBAAiB,WAClB,MAAM,QACR,uBAAuB,KAC9B,OAAO,CAAC,OAAO,CAkCjB,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { Address, Hex } from "viem";
2
+ export declare const getFactoryData: ({ admin, salt }: {
3
+ admin: Address;
4
+ salt: Hex;
5
+ }) => Promise<`0x${string}`>;
6
+ //# sourceMappingURL=getFactoryData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFactoryData.d.ts","sourceRoot":"","sources":["../../../../accounts/thirdweb/utils/getFactoryData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAGxC,eAAO,MAAM,cAAc,oBAGxB;IACC,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,GAAG,CAAA;CACZ,2BA8BA,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { type Address, type LocalAccount, type SignMessageReturnType, type SignableMessage } from "viem";
2
+ export declare function signMessage({ message, admin, accountAddress, chainId }: {
3
+ chainId: number;
4
+ message: SignableMessage;
5
+ admin: LocalAccount;
6
+ accountAddress: Address;
7
+ }): Promise<SignMessageReturnType>;
8
+ //# sourceMappingURL=signMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signMessage.d.ts","sourceRoot":"","sources":["../../../../accounts/thirdweb/utils/signMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EAEvB,MAAM,MAAM,CAAA;AAGb,wBAAsB,WAAW,CAAC,EAC9B,OAAO,EACP,KAAK,EACL,cAAc,EACd,OAAO,EACV,EAAE;IACC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,eAAe,CAAA;IACxB,KAAK,EAAE,YAAY,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;CAC1B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAcjC"}
@@ -0,0 +1,7 @@
1
+ import { type Address, type LocalAccount, type SignTypedDataReturnType, type TypedDataDefinition } from "viem";
2
+ export declare function signTypedData(parameters: TypedDataDefinition & {
3
+ accountAddress: Address;
4
+ chainId: number;
5
+ admin: LocalAccount;
6
+ }): Promise<SignTypedDataReturnType>;
7
+ //# sourceMappingURL=signTypedData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signTypedData.d.ts","sourceRoot":"","sources":["../../../../accounts/thirdweb/utils/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAM3B,MAAM,MAAM,CAAA;AAEb,wBAAsB,aAAa,CAC/B,UAAU,EAAE,mBAAmB,GAAG;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,YAAY,CAAA;CACtB,GACF,OAAO,CAAC,uBAAuB,CAAC,CAgDlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getSenderAddress.d.ts","sourceRoot":"","sources":["../../../actions/public/getSenderAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,OAAO,EACZ,SAAS,EACT,KAAK,MAAM,EAGX,KAAK,GAAG,EAER,KAAK,KAAK,EACV,KAAK,QAAQ,EAKhB,MAAM,MAAM,CAAA;AAKb,MAAM,MAAM,sBAAsB,GAAG,KAAK,CACpC;IACI,QAAQ,EAAE,GAAG,CAAA;IACb,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAA;IACf,WAAW,CAAC,EAAE,KAAK,CAAA;CACtB,GACD;IACI,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,GAAG,CAAA;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAA;CACnB,CACN,CAAA;AAED,qBAAa,sBAAuB,SAAQ,SAAS;IACxC,IAAI,SAA2B;gBAE5B,EACR,KAAK,EACL,iBAAiB,EACpB,GAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAO;CAU7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,WACjB,MAAM,QACR,QAAQ,CAAC,sBAAsB,CAAC,KACvC,OAAO,CAAC,OAAO,CAiLjB,CAAA"}
1
+ {"version":3,"file":"getSenderAddress.d.ts","sourceRoot":"","sources":["../../../actions/public/getSenderAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,OAAO,EACZ,SAAS,EACT,KAAK,MAAM,EAGX,KAAK,GAAG,EAER,KAAK,KAAK,EACV,KAAK,QAAQ,EAMhB,MAAM,MAAM,CAAA;AAKb,MAAM,MAAM,sBAAsB,GAAG,KAAK,CACpC;IACI,QAAQ,EAAE,GAAG,CAAA;IACb,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,CAAC,EAAE,KAAK,CAAA;IACf,WAAW,CAAC,EAAE,KAAK,CAAA;CACtB,GACD;IACI,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,GAAG,CAAA;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAA;CACnB,CACN,CAAA;AAED,qBAAa,sBAAuB,SAAQ,SAAS;IACxC,IAAI,SAA2B;gBAE5B,EACR,KAAK,EACL,iBAAiB,EACpB,GAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAO;CAU7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,WACjB,MAAM,QACR,QAAQ,CAAC,sBAAsB,CAAC,KACvC,OAAO,CAAC,OAAO,CAmLjB,CAAA"}
package/accounts/index.ts CHANGED
@@ -43,6 +43,13 @@ import {
43
43
  toBiconomySmartAccount
44
44
  } from "./biconomy/toBiconomySmartAccount"
45
45
 
46
+ import {
47
+ type ThirdwebSmartAccountImplementation,
48
+ type ToThirdwebSmartAccountParameters,
49
+ type ToThirdwebSmartAccountReturnType,
50
+ toThirdwebSmartAccount
51
+ } from "./thirdweb/toThirdwebSmartAccount"
52
+
46
53
  export {
47
54
  type ToSimpleSmartAccountParameters,
48
55
  type SimpleSmartAccountImplementation,
@@ -70,5 +77,9 @@ export {
70
77
  type ToBiconomySmartAccountReturnType,
71
78
  type ToBiconomySmartAccountParameters,
72
79
  type BiconomySmartAccountImplementation,
73
- toBiconomySmartAccount
80
+ toBiconomySmartAccount,
81
+ type ToThirdwebSmartAccountReturnType,
82
+ type ToThirdwebSmartAccountParameters,
83
+ type ThirdwebSmartAccountImplementation,
84
+ toThirdwebSmartAccount
74
85
  }
@@ -0,0 +1,203 @@
1
+ import type {
2
+ Account,
3
+ Address,
4
+ Assign,
5
+ Chain,
6
+ Client,
7
+ EIP1193Provider,
8
+ LocalAccount,
9
+ OneOf,
10
+ Transport,
11
+ TypedDataDefinition,
12
+ WalletClient
13
+ } from "viem"
14
+ import { getChainId } from "viem/actions"
15
+ import { getAccountNonce } from "../../actions/public/getAccountNonce"
16
+
17
+ import {
18
+ type SmartAccount,
19
+ type SmartAccountImplementation,
20
+ type UserOperation,
21
+ entryPoint06Abi,
22
+ entryPoint07Abi,
23
+ entryPoint07Address,
24
+ getUserOperationHash,
25
+ toSmartAccount
26
+ } from "viem/account-abstraction"
27
+ import { getAction, toHex } from "viem/utils"
28
+ import { toOwner } from "../../utils/toOwner"
29
+ import { encodeCallData } from "./utils/encodeCallData"
30
+ import { getAccountAddress } from "./utils/getAccountAddress"
31
+ import { getFactoryData } from "./utils/getFactoryData"
32
+ import { signMessage } from "./utils/signMessage"
33
+ import { signTypedData } from "./utils/signTypedData"
34
+
35
+ /**
36
+ * Default addresses for Thirdweb Smart Account
37
+ */
38
+ export const THIRDWEB_ADDRESSES = {
39
+ "0.6": {
40
+ factoryAddress: "0x85e23b94e7F5E9cC1fF78BCe78cfb15B81f0DF00" as Address
41
+ },
42
+ "0.7": {
43
+ factoryAddress: "0x4be0ddfebca9a5a4a617dee4dece99e7c862dceb" as Address
44
+ }
45
+ }
46
+
47
+ export type ToThirdwebSmartAccountParameters<
48
+ entryPointVersion extends "0.6" | "0.7" = "0.7"
49
+ > = {
50
+ client: Client
51
+ owner: OneOf<
52
+ | EIP1193Provider
53
+ | WalletClient<Transport, Chain | undefined, Account>
54
+ | LocalAccount
55
+ >
56
+ factoryAddress?: Address
57
+ entryPoint?: {
58
+ address: Address
59
+ version: entryPointVersion
60
+ }
61
+ salt?: string
62
+ address?: Address
63
+ secp256k1VerificationFacetAddress?: Address
64
+ nonceKey?: bigint
65
+ }
66
+
67
+ export type ThirdwebSmartAccountImplementation<
68
+ entryPointVersion extends "0.6" | "0.7" = "0.7"
69
+ > = Assign<
70
+ SmartAccountImplementation<
71
+ entryPointVersion extends "0.6"
72
+ ? typeof entryPoint06Abi
73
+ : typeof entryPoint07Abi,
74
+ entryPointVersion
75
+ >,
76
+ { sign: NonNullable<SmartAccountImplementation["sign"]> }
77
+ >
78
+
79
+ export type ToThirdwebSmartAccountReturnType<
80
+ entryPointVersion extends "0.6" | "0.7" = "0.7"
81
+ > = SmartAccount<ThirdwebSmartAccountImplementation<entryPointVersion>>
82
+
83
+ /**
84
+ * @description Creates a Thirdweb Smart Account from a private key.
85
+ *
86
+ * @returns A Private Key Thirdweb Smart Account.
87
+ */
88
+ export async function toThirdwebSmartAccount<
89
+ entryPointVersion extends "0.6" | "0.7" = "0.7"
90
+ >(
91
+ parameters: ToThirdwebSmartAccountParameters<entryPointVersion>
92
+ ): Promise<ToThirdwebSmartAccountReturnType<entryPointVersion>> {
93
+ const entryPoint = {
94
+ address: parameters.entryPoint?.address ?? entryPoint07Address,
95
+ abi:
96
+ (parameters.entryPoint?.version ?? "0.7") === "0.6"
97
+ ? entryPoint06Abi
98
+ : entryPoint07Abi,
99
+ version: parameters.entryPoint?.version ?? "0.7"
100
+ } as const
101
+
102
+ const {
103
+ owner,
104
+ client,
105
+ salt,
106
+ address,
107
+ factoryAddress = THIRDWEB_ADDRESSES[entryPoint.version].factoryAddress
108
+ } = parameters
109
+
110
+ const admin = await toOwner({ owner })
111
+
112
+ let accountAddress: Address | undefined = address
113
+
114
+ let chainId: number
115
+
116
+ const getMemoizedChainId = async () => {
117
+ if (chainId) return chainId
118
+ chainId = client.chain
119
+ ? client.chain.id
120
+ : await getAction(client, getChainId, "getChainId")({})
121
+ return chainId
122
+ }
123
+
124
+ const getFactoryArgs = async () => {
125
+ return {
126
+ factory: factoryAddress,
127
+ factoryData: await getFactoryData({
128
+ admin: admin.address,
129
+ salt: salt ? toHex(salt) : "0x"
130
+ })
131
+ }
132
+ }
133
+
134
+ return toSmartAccount({
135
+ client,
136
+ entryPoint,
137
+ getFactoryArgs,
138
+ async getAddress() {
139
+ if (accountAddress) return accountAddress
140
+
141
+ accountAddress = await getAccountAddress(client, {
142
+ adminAddress: admin.address,
143
+ factoryAddress,
144
+ salt: salt ? toHex(salt) : "0x"
145
+ })
146
+
147
+ return accountAddress
148
+ },
149
+ async encodeCalls(calls) {
150
+ return encodeCallData(calls)
151
+ },
152
+ async getNonce(args) {
153
+ return getAccountNonce(client, {
154
+ address: await this.getAddress(),
155
+ entryPointAddress: entryPoint.address,
156
+ key: parameters?.nonceKey ?? args?.key
157
+ })
158
+ },
159
+ async getStubSignature() {
160
+ return "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c"
161
+ },
162
+ async sign({ hash }) {
163
+ return this.signMessage({ message: hash })
164
+ },
165
+ async signMessage({ message }) {
166
+ return signMessage({
167
+ admin,
168
+ chainId: await getMemoizedChainId(),
169
+ accountAddress: await this.getAddress(),
170
+ message
171
+ })
172
+ },
173
+ async signTypedData(typedData) {
174
+ return signTypedData({
175
+ admin,
176
+ chainId: await getMemoizedChainId(),
177
+ accountAddress: await this.getAddress(),
178
+ ...(typedData as TypedDataDefinition)
179
+ })
180
+ },
181
+ async signUserOperation(parameters) {
182
+ const { chainId = await getMemoizedChainId(), ...userOperation } =
183
+ parameters
184
+
185
+ return admin.signMessage({
186
+ message: {
187
+ raw: getUserOperationHash({
188
+ userOperation: {
189
+ ...userOperation,
190
+ sender:
191
+ userOperation.sender ??
192
+ (await this.getAddress()),
193
+ signature: "0x"
194
+ } as UserOperation<entryPointVersion>,
195
+ entryPointAddress: entryPoint.address,
196
+ entryPointVersion: entryPoint.version,
197
+ chainId: chainId
198
+ })
199
+ }
200
+ })
201
+ }
202
+ }) as Promise<ToThirdwebSmartAccountReturnType<entryPointVersion>>
203
+ }