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.
- package/CHANGELOG.md +12 -0
- package/_cjs/accounts/index.js +3 -1
- package/_cjs/accounts/index.js.map +1 -1
- package/_cjs/accounts/thirdweb/toThirdwebSmartAccount.js +118 -0
- package/_cjs/accounts/thirdweb/toThirdwebSmartAccount.js.map +1 -0
- package/_cjs/accounts/thirdweb/utils/encodeCallData.js +76 -0
- package/_cjs/accounts/thirdweb/utils/encodeCallData.js.map +1 -0
- package/_cjs/accounts/thirdweb/utils/getAccountAddress.js +37 -0
- package/_cjs/accounts/thirdweb/utils/getAccountAddress.js.map +1 -0
- package/_cjs/accounts/thirdweb/utils/getFactoryData.js +37 -0
- package/_cjs/accounts/thirdweb/utils/getFactoryData.js.map +1 -0
- package/_cjs/accounts/thirdweb/utils/signMessage.js +19 -0
- package/_cjs/accounts/thirdweb/utils/signMessage.js.map +1 -0
- package/_cjs/accounts/thirdweb/utils/signTypedData.js +40 -0
- package/_cjs/accounts/thirdweb/utils/signTypedData.js.map +1 -0
- package/_cjs/actions/public/getSenderAddress.js +7 -4
- package/_cjs/actions/public/getSenderAddress.js.map +1 -1
- package/_esm/accounts/index.js +2 -1
- package/_esm/accounts/index.js.map +1 -1
- package/_esm/accounts/thirdweb/toThirdwebSmartAccount.js +122 -0
- package/_esm/accounts/thirdweb/toThirdwebSmartAccount.js.map +1 -0
- package/_esm/accounts/thirdweb/utils/encodeCallData.js +72 -0
- package/_esm/accounts/thirdweb/utils/encodeCallData.js.map +1 -0
- package/_esm/accounts/thirdweb/utils/getAccountAddress.js +33 -0
- package/_esm/accounts/thirdweb/utils/getAccountAddress.js.map +1 -0
- package/_esm/accounts/thirdweb/utils/getFactoryData.js +33 -0
- package/_esm/accounts/thirdweb/utils/getFactoryData.js.map +1 -0
- package/_esm/accounts/thirdweb/utils/signMessage.js +17 -0
- package/_esm/accounts/thirdweb/utils/signMessage.js.map +1 -0
- package/_esm/accounts/thirdweb/utils/signTypedData.js +40 -0
- package/_esm/accounts/thirdweb/utils/signTypedData.js.map +1 -0
- package/_esm/actions/public/getSenderAddress.js +8 -6
- package/_esm/actions/public/getSenderAddress.js.map +1 -1
- package/_types/accounts/index.d.ts +2 -1
- package/_types/accounts/index.d.ts.map +1 -1
- package/_types/accounts/thirdweb/toThirdwebSmartAccount.d.ts +37 -0
- package/_types/accounts/thirdweb/toThirdwebSmartAccount.d.ts.map +1 -0
- package/_types/accounts/thirdweb/utils/encodeCallData.d.ts +6 -0
- package/_types/accounts/thirdweb/utils/encodeCallData.d.ts.map +1 -0
- package/_types/accounts/thirdweb/utils/getAccountAddress.d.ts +8 -0
- package/_types/accounts/thirdweb/utils/getAccountAddress.d.ts.map +1 -0
- package/_types/accounts/thirdweb/utils/getFactoryData.d.ts +6 -0
- package/_types/accounts/thirdweb/utils/getFactoryData.d.ts.map +1 -0
- package/_types/accounts/thirdweb/utils/signMessage.d.ts +8 -0
- package/_types/accounts/thirdweb/utils/signMessage.d.ts.map +1 -0
- package/_types/accounts/thirdweb/utils/signTypedData.d.ts +7 -0
- package/_types/accounts/thirdweb/utils/signTypedData.d.ts.map +1 -0
- package/_types/actions/public/getSenderAddress.d.ts.map +1 -1
- package/accounts/index.ts +12 -1
- package/accounts/thirdweb/toThirdwebSmartAccount.ts +203 -0
- package/accounts/thirdweb/utils/encodeCallData.ts +81 -0
- package/accounts/thirdweb/utils/getAccountAddress.ts +48 -0
- package/accounts/thirdweb/utils/getFactoryData.ts +40 -0
- package/accounts/thirdweb/utils/signMessage.ts +34 -0
- package/accounts/thirdweb/utils/signTypedData.ts +67 -0
- package/actions/public/getSenderAddress.ts +11 -8
- 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
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
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":"AAAA,OAAO,EAEH,SAAS,EAGT,6BAA6B,EAE7B,oBAAoB,EAGpB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,MAAM,EACN,iBAAiB,EACpB,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAiBtC,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IAGjD,YAAY,EACR,KAAK,EACL,iBAAiB,KACmC,EAAE;QACtD,KAAK,CACD,0CACI,iBAAiB,CAAC,CAAC,CAAC,MAAM,iBAAiB,EAAE,CAAC,CAAC,CAAC,EACpD,iGAAiG,EACjG;YACI,KAAK;SACR,CACJ,CAAA;QAbI;;;;mBAAO,wBAAwB;WAAA;IAcxC,CAAC;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACjC,MAAc,EACd,IAAsC,EACtB,EAAE;IAClB,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAElE,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACX,mEAAmE,CACtE,CAAA;IACL,CAAC;IAED,IAAI,CAAC;QACD,MAAM,SAAS,CACX,MAAM,EACN,gBAAgB,EAChB,kBAAkB,CACrB,CAAC;YACE,OAAO,EAAE,iBAAiB;YAC1B,GAAG,EAAE;gBACD;oBACI,MAAM,EAAE;wBACJ;4BACI,YAAY,EAAE,SAAS;4BACvB,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,SAAS;yBAClB;qBACJ;oBACD,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,OAAO;iBAChB;gBACD;oBACI,MAAM,EAAE;wBACJ;4BACI,YAAY,EAAE,OAAO;4BACrB,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,OAAO;yBAChB;qBACJ;oBACD,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,EAAE;oBACX,eAAe,EAAE,YAAY;oBAC7B,IAAI,EAAE,UAAU;iBACnB;aACJ;YACD,YAAY,EAAE,kBAAkB;YAChC,IAAI,EAAE,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,OAAc,EAAE,WAAkB,CAAC,CAAC,CAAC;SACnE,CAAC,CAAA;IACN,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,WAAW,GAAI,CAAwC,CAAC,IAAI,CAC9D,CAAC,GAAG,EAAE,EAAE,CACJ,GAAG,YAAY,6BAA6B;YAC5C,GAAG,YAAY,eAAe;YAC9B,GAAG,YAAY,oBAAoB;YACnC,GAAG,YAAY,eAAe,CACrC,CAAA;QAED,IAAI,WAAW,YAAY,6BAA6B,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA;YACnD,IACI,SAAS,KAAK,qBAAqB;gBACnC,WAAW,CAAC,IAAI,EAAE,IAAI;gBACtB,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAC3B,CAAC;gBACC,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAY,CAAA;YAC/C,CAAC;QACL,CAAC;QAED,IAAI,WAAW,YAAY,eAAe,EAAE,CAAC;YACzC,MAAM,cAAc,GAAG,gBAAgB,CAAA;YACvC,8CAA8C;YAC9C,MAAM,KAAK,GAAI,WAA8B,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAC1D,cAAc,CACjB,CAAA;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CACX,gDAAgD,CACnD,CAAA;YACL,CAAC;YAED,MAAM,IAAI,GAAQ,KAAK,CAAC,CAAC,CAAC,CAAA;YAE1B,MAAM,KAAK,GAAG,iBAAiB,CAAC;gBAC5B,GAAG,EAAE;oBACD;wBACI,MAAM,EAAE;4BACJ;gCACI,YAAY,EAAE,SAAS;gCACvB,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,SAAS;6BAClB;yBACJ;wBACD,IAAI,EAAE,qBAAqB;wBAC3B,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,IAAI;aACP,CAAC,CAAA;YAEF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAY,CAAA;QACnC,CAAC;QAED,IAAI,WAAW,YAAY,oBAAoB,EAAE,CAAC;YAC9C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CACpB,CAAC,YAAY,gBAAgB;gBACzB,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,YAAY,SAAS;oBACtB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,IAAK,GAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;oBACvD,CAAC,CAAC,EAAE,CACO,CAAA;YAErB,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAA;YAE5D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACX,gDAAgD,CACnD,CAAA;YACL,CAAC;YAED,MAAM,KAAK,GAAG,iBAAiB,CAAC;gBAC5B,GAAG,EAAE;oBACD;wBACI,MAAM,EAAE;4BACJ;gCACI,YAAY,EAAE,SAAS;gCACvB,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,SAAS;6BAClB;yBACJ;wBACD,IAAI,EAAE,qBAAqB;wBAC3B,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,IAAI;aACP,CAAC,CAAA;YAEF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAY,CAAA;QACnC,CAAC;QAED,IAAI,WAAW,YAAY,eAAe,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK;YACzB,8CAA8C;YAC7C,WAA8B,CAAC,KAAK,CAAC,IAAI,CAC7C,CAAA;YACD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAA;YAExC,MAAM,cAAc,GAAG,gBAAgB,CAAA;YACvC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;YAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CACX,gDAAgD,CACnD,CAAA;YACL,CAAC;YAED,MAAM,IAAI,GAAQ,KAAK,CAAC,CAAC,CAAC,CAAA;YAE1B,MAAM,KAAK,GAAG,iBAAiB,CAAC;gBAC5B,GAAG,EAAE;oBACD;wBACI,MAAM,EAAE;4BACJ;gCACI,YAAY,EAAE,SAAS;gCACvB,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,SAAS;6BAClB;yBACJ;wBACD,IAAI,EAAE,qBAAqB;wBAC3B,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,IAAI;aACP,CAAC,CAAA;YAEF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAY,CAAA;QACnC,CAAC;QAED,MAAM,CAAC,CAAA;IACX,CAAC;IAED,MAAM,IAAI,sBAAsB,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAA;AAC3D,CAAC,CAAA"}
|
|
@@ -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
|
-
|
|
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 @@
|
|
|
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 @@
|
|
|
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,
|
|
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
|
+
}
|