@account-kit/wallet-client 0.1.0-alpha.9 → 4.50.1
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/LICENSE +21 -0
- package/dist/esm/client/actions/formatSign.d.ts +30 -0
- package/dist/esm/client/actions/formatSign.js +32 -0
- package/dist/esm/client/actions/formatSign.js.map +1 -0
- package/dist/esm/client/actions/getCallsStatus.d.ts +6 -3
- package/dist/esm/client/actions/getCallsStatus.js +3 -0
- package/dist/esm/client/actions/getCallsStatus.js.map +1 -1
- package/dist/esm/client/actions/grantPermissions.d.ts +10 -11
- package/dist/esm/client/actions/grantPermissions.js +26 -12
- package/dist/esm/client/actions/grantPermissions.js.map +1 -1
- package/dist/esm/client/actions/listAccounts.d.ts +10 -3
- package/dist/esm/client/actions/listAccounts.js +14 -2
- package/dist/esm/client/actions/listAccounts.js.map +1 -1
- package/dist/esm/client/actions/prepareCalls.d.ts +6 -3
- package/dist/esm/client/actions/prepareCalls.js +12 -8
- package/dist/esm/client/actions/prepareCalls.js.map +1 -1
- package/dist/esm/client/actions/prepareSign.d.ts +28 -0
- package/dist/esm/client/actions/prepareSign.js +31 -0
- package/dist/esm/client/actions/prepareSign.js.map +1 -0
- package/dist/esm/client/actions/requestAccount.d.ts +3 -1
- package/dist/esm/client/actions/requestAccount.js +5 -3
- package/dist/esm/client/actions/requestAccount.js.map +1 -1
- package/dist/esm/client/actions/sendPreparedCalls.d.ts +3 -1
- package/dist/esm/client/actions/sendPreparedCalls.js +2 -0
- package/dist/esm/client/actions/sendPreparedCalls.js.map +1 -1
- package/dist/esm/client/actions/signMessage.d.ts +5 -2
- package/dist/esm/client/actions/signMessage.js +5 -2
- package/dist/esm/client/actions/signMessage.js.map +1 -1
- package/dist/esm/client/actions/signPreparedCalls.d.ts +2 -2
- package/dist/esm/client/actions/signPreparedCalls.js +3 -3
- package/dist/esm/client/actions/signPreparedCalls.js.map +1 -1
- package/dist/esm/client/actions/signSignatureRequest.d.ts +6 -10
- package/dist/esm/client/actions/signSignatureRequest.js +4 -7
- package/dist/esm/client/actions/signSignatureRequest.js.map +1 -1
- package/dist/esm/client/actions/signTypedData.d.ts +2 -0
- package/dist/esm/client/actions/signTypedData.js +2 -0
- package/dist/esm/client/actions/signTypedData.js.map +1 -1
- package/dist/esm/client/decorator.d.ts +0 -2
- package/dist/esm/client/decorator.js +1 -3
- package/dist/esm/client/decorator.js.map +1 -1
- package/dist/esm/client/index.d.ts +10 -6
- package/dist/esm/client/index.js +18 -21
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/exports/index.d.ts +1 -5
- package/dist/esm/exports/index.js +1 -6
- package/dist/esm/exports/index.js.map +1 -1
- package/dist/esm/internal/account.d.ts +33 -0
- package/dist/esm/{isomorphic/utils/createAccount.js → internal/account.js} +25 -49
- package/dist/esm/internal/account.js.map +1 -0
- package/dist/esm/types.d.ts +5 -11
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils.d.ts +13 -1
- package/dist/esm/utils.js +13 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/version.d.ts +1 -0
- package/dist/esm/version.js +4 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/types/client/actions/formatSign.d.ts +31 -0
- package/dist/types/client/actions/formatSign.d.ts.map +1 -0
- package/dist/types/client/actions/getCallsStatus.d.ts +6 -3
- package/dist/types/client/actions/getCallsStatus.d.ts.map +1 -1
- package/dist/types/client/actions/grantPermissions.d.ts +10 -11
- package/dist/types/client/actions/grantPermissions.d.ts.map +1 -1
- package/dist/types/client/actions/listAccounts.d.ts +10 -3
- package/dist/types/client/actions/listAccounts.d.ts.map +1 -1
- package/dist/types/client/actions/prepareCalls.d.ts +6 -3
- package/dist/types/client/actions/prepareCalls.d.ts.map +1 -1
- package/dist/types/client/actions/prepareSign.d.ts +29 -0
- package/dist/types/client/actions/prepareSign.d.ts.map +1 -0
- package/dist/types/client/actions/requestAccount.d.ts +3 -1
- package/dist/types/client/actions/requestAccount.d.ts.map +1 -1
- package/dist/types/client/actions/sendPreparedCalls.d.ts +3 -1
- package/dist/types/client/actions/sendPreparedCalls.d.ts.map +1 -1
- package/dist/types/client/actions/signMessage.d.ts +5 -2
- package/dist/types/client/actions/signMessage.d.ts.map +1 -1
- package/dist/types/client/actions/signPreparedCalls.d.ts +2 -2
- package/dist/types/client/actions/signPreparedCalls.d.ts.map +1 -1
- package/dist/types/client/actions/signSignatureRequest.d.ts +6 -10
- package/dist/types/client/actions/signSignatureRequest.d.ts.map +1 -1
- package/dist/types/client/actions/signTypedData.d.ts +2 -0
- package/dist/types/client/actions/signTypedData.d.ts.map +1 -1
- package/dist/types/client/decorator.d.ts +0 -2
- package/dist/types/client/decorator.d.ts.map +1 -1
- package/dist/types/client/index.d.ts +10 -6
- package/dist/types/client/index.d.ts.map +1 -1
- package/dist/types/exports/index.d.ts +1 -5
- package/dist/types/exports/index.d.ts.map +1 -1
- package/dist/types/internal/account.d.ts +34 -0
- package/dist/types/internal/account.d.ts.map +1 -0
- package/dist/types/types.d.ts +5 -11
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils.d.ts +13 -1
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/types/version.d.ts +2 -0
- package/dist/types/version.d.ts.map +1 -0
- package/package.json +32 -28
- package/src/client/actions/formatSign.ts +55 -0
- package/src/client/actions/getCallsStatus.ts +10 -6
- package/src/client/actions/grantPermissions.ts +46 -18
- package/src/client/actions/listAccounts.ts +22 -5
- package/src/client/actions/prepareCalls.ts +22 -16
- package/src/client/actions/prepareSign.ts +51 -0
- package/src/client/actions/requestAccount.ts +6 -4
- package/src/client/actions/sendPreparedCalls.ts +3 -1
- package/src/client/actions/signMessage.ts +5 -2
- package/src/client/actions/signPreparedCalls.ts +8 -12
- package/src/client/actions/signSignatureRequest.ts +12 -15
- package/src/client/actions/signTypedData.ts +2 -0
- package/src/client/decorator.ts +1 -8
- package/src/client/index.ts +41 -33
- package/src/exports/index.ts +1 -13
- package/src/internal/account.ts +120 -0
- package/src/types.ts +7 -18
- package/src/utils.ts +13 -1
- package/src/version.ts +3 -0
- package/dist/esm/capabilities/eip7702Auth.d.ts +0 -4
- package/dist/esm/capabilities/eip7702Auth.js +0 -18
- package/dist/esm/capabilities/eip7702Auth.js.map +0 -1
- package/dist/esm/capabilities/index.d.ts +0 -41
- package/dist/esm/capabilities/index.js +0 -14
- package/dist/esm/capabilities/index.js.map +0 -1
- package/dist/esm/capabilities/multiDimensionalNonce.d.ts +0 -3
- package/dist/esm/capabilities/multiDimensionalNonce.js +0 -7
- package/dist/esm/capabilities/multiDimensionalNonce.js.map +0 -1
- package/dist/esm/capabilities/overrides.d.ts +0 -26
- package/dist/esm/capabilities/overrides.js +0 -14
- package/dist/esm/capabilities/overrides.js.map +0 -1
- package/dist/esm/capabilities/paymaster.d.ts +0 -3
- package/dist/esm/capabilities/paymaster.js +0 -5
- package/dist/esm/capabilities/paymaster.js.map +0 -1
- package/dist/esm/capabilities/permissions/index.d.ts +0 -145
- package/dist/esm/capabilities/permissions/index.js +0 -83
- package/dist/esm/capabilities/permissions/index.js.map +0 -1
- package/dist/esm/capabilities/permissions/mav2.d.ts +0 -36
- package/dist/esm/capabilities/permissions/mav2.js +0 -88
- package/dist/esm/capabilities/permissions/mav2.js.map +0 -1
- package/dist/esm/client/actions/createAccount.d.ts +0 -35
- package/dist/esm/client/actions/createAccount.js +0 -32
- package/dist/esm/client/actions/createAccount.js.map +0 -1
- package/dist/esm/client/client.e2e-test.d.ts +0 -1
- package/dist/esm/client/client.e2e-test.js +0 -375
- package/dist/esm/client/client.e2e-test.js.map +0 -1
- package/dist/esm/exports/internal.d.ts +0 -14
- package/dist/esm/exports/internal.js +0 -16
- package/dist/esm/exports/internal.js.map +0 -1
- package/dist/esm/isomorphic/actions/createSession.d.ts +0 -14
- package/dist/esm/isomorphic/actions/createSession.js +0 -95
- package/dist/esm/isomorphic/actions/createSession.js.map +0 -1
- package/dist/esm/isomorphic/actions/getCallsStatus.d.ts +0 -21
- package/dist/esm/isomorphic/actions/getCallsStatus.js +0 -113
- package/dist/esm/isomorphic/actions/getCallsStatus.js.map +0 -1
- package/dist/esm/isomorphic/actions/prepareCalls.d.ts +0 -8
- package/dist/esm/isomorphic/actions/prepareCalls.js +0 -116
- package/dist/esm/isomorphic/actions/prepareCalls.js.map +0 -1
- package/dist/esm/isomorphic/actions/sendPreparedCalls.d.ts +0 -8
- package/dist/esm/isomorphic/actions/sendPreparedCalls.js +0 -157
- package/dist/esm/isomorphic/actions/sendPreparedCalls.js.map +0 -1
- package/dist/esm/isomorphic/client.d.ts +0 -239
- package/dist/esm/isomorphic/client.js +0 -37
- package/dist/esm/isomorphic/client.js.map +0 -1
- package/dist/esm/isomorphic/utils/7702.d.ts +0 -23
- package/dist/esm/isomorphic/utils/7702.js +0 -75
- package/dist/esm/isomorphic/utils/7702.js.map +0 -1
- package/dist/esm/isomorphic/utils/createAccount.d.ts +0 -24
- package/dist/esm/isomorphic/utils/createAccount.js.map +0 -1
- package/dist/esm/isomorphic/utils/createDummySigner.d.ts +0 -3
- package/dist/esm/isomorphic/utils/createDummySigner.js +0 -17
- package/dist/esm/isomorphic/utils/createDummySigner.js.map +0 -1
- package/dist/esm/isomorphic/utils/decodeSignature.d.ts +0 -3
- package/dist/esm/isomorphic/utils/decodeSignature.js +0 -13
- package/dist/esm/isomorphic/utils/decodeSignature.js.map +0 -1
- package/dist/esm/isomorphic/utils/parsePermissionsContext.d.ts +0 -21
- package/dist/esm/isomorphic/utils/parsePermissionsContext.js +0 -34
- package/dist/esm/isomorphic/utils/parsePermissionsContext.js.map +0 -1
- package/dist/esm/isomorphic/utils/supportsFeature.d.ts +0 -4
- package/dist/esm/isomorphic/utils/supportsFeature.js +0 -21
- package/dist/esm/isomorphic/utils/supportsFeature.js.map +0 -1
- package/dist/esm/local/client.d.ts +0 -3
- package/dist/esm/local/client.js +0 -97
- package/dist/esm/local/client.js.map +0 -1
- package/dist/esm/remote/client.d.ts +0 -9
- package/dist/esm/remote/client.js +0 -41
- package/dist/esm/remote/client.js.map +0 -1
- package/dist/esm/rpc/examples.d.ts +0 -230
- package/dist/esm/rpc/examples.js +0 -314
- package/dist/esm/rpc/examples.js.map +0 -1
- package/dist/esm/rpc/request.d.ts +0 -755
- package/dist/esm/rpc/request.js +0 -214
- package/dist/esm/rpc/request.js.map +0 -1
- package/dist/esm/rpc/schema.d.ts +0 -703
- package/dist/esm/rpc/schema.js +0 -5
- package/dist/esm/rpc/schema.js.map +0 -1
- package/dist/esm/schemas.d.ts +0 -712
- package/dist/esm/schemas.js +0 -463
- package/dist/esm/schemas.js.map +0 -1
- package/dist/types/capabilities/eip7702Auth.d.ts +0 -5
- package/dist/types/capabilities/eip7702Auth.d.ts.map +0 -1
- package/dist/types/capabilities/index.d.ts +0 -42
- package/dist/types/capabilities/index.d.ts.map +0 -1
- package/dist/types/capabilities/multiDimensionalNonce.d.ts +0 -4
- package/dist/types/capabilities/multiDimensionalNonce.d.ts.map +0 -1
- package/dist/types/capabilities/overrides.d.ts +0 -27
- package/dist/types/capabilities/overrides.d.ts.map +0 -1
- package/dist/types/capabilities/paymaster.d.ts +0 -4
- package/dist/types/capabilities/paymaster.d.ts.map +0 -1
- package/dist/types/capabilities/permissions/index.d.ts +0 -146
- package/dist/types/capabilities/permissions/index.d.ts.map +0 -1
- package/dist/types/capabilities/permissions/mav2.d.ts +0 -37
- package/dist/types/capabilities/permissions/mav2.d.ts.map +0 -1
- package/dist/types/client/actions/createAccount.d.ts +0 -36
- package/dist/types/client/actions/createAccount.d.ts.map +0 -1
- package/dist/types/client/client.e2e-test.d.ts +0 -2
- package/dist/types/client/client.e2e-test.d.ts.map +0 -1
- package/dist/types/exports/internal.d.ts +0 -15
- package/dist/types/exports/internal.d.ts.map +0 -1
- package/dist/types/isomorphic/actions/createSession.d.ts +0 -15
- package/dist/types/isomorphic/actions/createSession.d.ts.map +0 -1
- package/dist/types/isomorphic/actions/getCallsStatus.d.ts +0 -22
- package/dist/types/isomorphic/actions/getCallsStatus.d.ts.map +0 -1
- package/dist/types/isomorphic/actions/prepareCalls.d.ts +0 -9
- package/dist/types/isomorphic/actions/prepareCalls.d.ts.map +0 -1
- package/dist/types/isomorphic/actions/sendPreparedCalls.d.ts +0 -9
- package/dist/types/isomorphic/actions/sendPreparedCalls.d.ts.map +0 -1
- package/dist/types/isomorphic/client.d.ts +0 -240
- package/dist/types/isomorphic/client.d.ts.map +0 -1
- package/dist/types/isomorphic/utils/7702.d.ts +0 -24
- package/dist/types/isomorphic/utils/7702.d.ts.map +0 -1
- package/dist/types/isomorphic/utils/createAccount.d.ts +0 -25
- package/dist/types/isomorphic/utils/createAccount.d.ts.map +0 -1
- package/dist/types/isomorphic/utils/createDummySigner.d.ts +0 -4
- package/dist/types/isomorphic/utils/createDummySigner.d.ts.map +0 -1
- package/dist/types/isomorphic/utils/decodeSignature.d.ts +0 -4
- package/dist/types/isomorphic/utils/decodeSignature.d.ts.map +0 -1
- package/dist/types/isomorphic/utils/parsePermissionsContext.d.ts +0 -22
- package/dist/types/isomorphic/utils/parsePermissionsContext.d.ts.map +0 -1
- package/dist/types/isomorphic/utils/supportsFeature.d.ts +0 -5
- package/dist/types/isomorphic/utils/supportsFeature.d.ts.map +0 -1
- package/dist/types/local/client.d.ts +0 -4
- package/dist/types/local/client.d.ts.map +0 -1
- package/dist/types/remote/client.d.ts +0 -10
- package/dist/types/remote/client.d.ts.map +0 -1
- package/dist/types/rpc/examples.d.ts +0 -231
- package/dist/types/rpc/examples.d.ts.map +0 -1
- package/dist/types/rpc/request.d.ts +0 -756
- package/dist/types/rpc/request.d.ts.map +0 -1
- package/dist/types/rpc/schema.d.ts +0 -704
- package/dist/types/rpc/schema.d.ts.map +0 -1
- package/dist/types/schemas.d.ts +0 -713
- package/dist/types/schemas.d.ts.map +0 -1
- package/src/capabilities/eip7702Auth.ts +0 -26
- package/src/capabilities/index.ts +0 -14
- package/src/capabilities/multiDimensionalNonce.ts +0 -7
- package/src/capabilities/overrides.ts +0 -35
- package/src/capabilities/paymaster.ts +0 -5
- package/src/capabilities/permissions/index.ts +0 -163
- package/src/capabilities/permissions/mav2.ts +0 -138
- package/src/client/actions/createAccount.ts +0 -53
- package/src/client/client.e2e-test.ts +0 -463
- package/src/exports/internal.ts +0 -17
- package/src/isomorphic/actions/createSession.ts +0 -159
- package/src/isomorphic/actions/getCallsStatus.ts +0 -170
- package/src/isomorphic/actions/prepareCalls.ts +0 -170
- package/src/isomorphic/actions/sendPreparedCalls.ts +0 -232
- package/src/isomorphic/client.ts +0 -94
- package/src/isomorphic/utils/7702.ts +0 -143
- package/src/isomorphic/utils/createAccount.ts +0 -170
- package/src/isomorphic/utils/createDummySigner.ts +0 -27
- package/src/isomorphic/utils/decodeSignature.ts +0 -18
- package/src/isomorphic/utils/parsePermissionsContext.ts +0 -49
- package/src/isomorphic/utils/supportsFeature.ts +0 -34
- package/src/local/client.ts +0 -136
- package/src/remote/client.ts +0 -67
- package/src/rpc/examples.ts +0 -342
- package/src/rpc/request.ts +0 -300
- package/src/rpc/schema.ts +0 -40
- package/src/schemas.ts +0 -657
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/capabilities/permissions/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { PermissionType } from \"@account-kit/smart-contracts/experimental\";\nimport {\n Type,\n type TLiteral,\n type TLiteralValue,\n type TObject,\n type TSchema,\n} from \"@sinclair/typebox\";\nimport { KeySigner, TypeAddress, TypeHex } from \"../../schemas.js\";\n\nconst Permission = <\n TData extends TSchema,\n TLiteralVal extends TLiteralValue,\n TType extends TLiteral<TLiteralVal>,\n>(\n typeString: TLiteralVal, // e.g., \"root\"\n typeEnum: TLiteralVal, // e.g., PermissionType.ROOT\n data: TData,\n description: string,\n): TObject<{ type: TType; data: TData }> => {\n return Type.Transform(\n Type.Object(\n {\n type: Type.Literal(typeEnum),\n data,\n },\n { description, title: `${typeString}` },\n ),\n )\n .Decode((value) => ({\n ...value,\n type: typeString, // enum → string\n }))\n .Encode((value) => ({\n ...value,\n type: typeEnum, // string → enum\n })) as never;\n};\n\nconst NativeTokenTransfer = Permission(\n \"native-token-transfer\",\n PermissionType.NATIVE_TOKEN_TRANSFER,\n Type.Object({\n allowance: TypeHex(),\n }),\n \"allows transfer of native tokens from the account\",\n);\n\nconst Erc20TokenTransfer = Permission(\n \"erc20-token-transfer\",\n PermissionType.ERC20_TOKEN_TRANSFER,\n Type.Object({\n allowance: TypeHex(),\n address: TypeAddress,\n }),\n \"allows transfer or approval of erc20 tokens from the account\",\n);\n\nconst GasLimit = Permission(\n \"gas-limit\",\n PermissionType.GAS_LIMIT,\n Type.Object({\n limit: TypeHex(),\n }),\n \"allows the key to spend gas for UOs\",\n);\n\nconst ContractAccess = Permission(\n \"contract-access\",\n PermissionType.CONTRACT_ACCESS,\n Type.Object({\n address: TypeAddress,\n }),\n \"grants access to all functions in a contract\",\n);\n\nconst AccountFunction = Permission(\n \"account-functions\",\n PermissionType.ACCOUNT_FUNCTIONS,\n Type.Object({\n functions: Type.Array(TypeHex(), { minItems: 1 }),\n }),\n \"grants access to functions in the account\",\n);\n\nconst AllExternalFunctionAccess = Permission(\n \"functions-on-all-contracts\",\n PermissionType.FUNCTIONS_ON_ALL_CONTRACTS,\n Type.Object({\n functions: Type.Array(TypeHex(), { minItems: 1 }),\n }),\n \"access to a function selector in any address or contract\",\n);\n\nconst ContractFunctionAccess = Permission(\n \"functions-on-contract\",\n PermissionType.FUNCTIONS_ON_CONTRACT,\n Type.Object({\n address: TypeAddress,\n functions: Type.Array(TypeHex(), { minItems: 1 }),\n }),\n \"grants access to specified functions on a specific contract\",\n);\n\nconst Root = Permission(\n \"root\",\n PermissionType.ROOT,\n Type.Optional(Type.Never()),\n \"grants full access to everything\",\n);\n\nexport const TypePermission = Type.Union([\n // 7715 permissions\n NativeTokenTransfer,\n Erc20TokenTransfer,\n GasLimit,\n // additional permissions\n ContractAccess,\n AccountFunction,\n AllExternalFunctionAccess,\n ContractFunctionAccess,\n Root,\n]);\n\nexport const PermissionsArray = Type.Array(TypePermission, { minItems: 1 });\n\nexport const PermissionsContext = Type.Object(\n {\n context: TypeHex(),\n },\n {\n description: \"Permissions context\",\n },\n);\n\nexport const RemotePermission = Type.Object(\n {\n sessionId: TypeHex(),\n signature: TypeHex(),\n },\n {\n description: \"Remote permission\",\n },\n);\n\nexport const PermissionsData = Type.Object({\n chainId: TypeHex(),\n expirySec: Type.Optional(\n Type.Integer({\n maximum: 9999999999, // This is valid until November 20, 2286.\n description: \"Unix timestamp in seconds (0 for no expiry)\",\n }),\n ),\n key: KeySigner,\n permissions: PermissionsArray,\n});\n\nexport const PermissionsCapability = Type.Union([\n PermissionsContext,\n RemotePermission,\n // TODO: support permissions object here instead of only context-encoded permissions\n // PermissionsData,\n]);\n"]}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type { Static } from "@sinclair/typebox";
|
|
2
|
-
import { type Hex } from "viem";
|
|
3
|
-
import type { KeySigner } from "../../schemas.ts";
|
|
4
|
-
import type { PermissionsCapability, PermissionsData } from "./index.ts";
|
|
5
|
-
export declare const SESSION_ID_LENGTH_BYTES = 16;
|
|
6
|
-
export declare const ENTITY_ID_LENGTH_BYTES = 4;
|
|
7
|
-
export declare const PermissionsContextVersion: {
|
|
8
|
-
readonly REMOTE_MODE_DEFERRED_ACTION: "0x00";
|
|
9
|
-
readonly LOCAL_MODE_DEFERRED_ACTION: "0x01";
|
|
10
|
-
readonly NON_DEFERRED_ACTION: "0x02";
|
|
11
|
-
};
|
|
12
|
-
type DecodedPermissionsContext = {
|
|
13
|
-
contextVersion: keyof typeof PermissionsContextVersion;
|
|
14
|
-
} & ({
|
|
15
|
-
contextVersion: "REMOTE_MODE_DEFERRED_ACTION";
|
|
16
|
-
sessionId: Hex;
|
|
17
|
-
signature: Hex;
|
|
18
|
-
deferredAction?: never;
|
|
19
|
-
} | {
|
|
20
|
-
contextVersion: "LOCAL_MODE_DEFERRED_ACTION";
|
|
21
|
-
deferredAction: Hex;
|
|
22
|
-
sessionId?: never;
|
|
23
|
-
signature?: never;
|
|
24
|
-
} | {
|
|
25
|
-
contextVersion: "NON_DEFERRED_ACTION";
|
|
26
|
-
deferredAction?: never;
|
|
27
|
-
sessionId?: never;
|
|
28
|
-
signature?: never;
|
|
29
|
-
entityId: Hex;
|
|
30
|
-
isGlobalValidation: boolean;
|
|
31
|
-
});
|
|
32
|
-
export declare const encodePermissionsContext: (context: DecodedPermissionsContext) => Hex;
|
|
33
|
-
export declare const decodePermissionsContext: (capability: Static<typeof PermissionsCapability>) => DecodedPermissionsContext;
|
|
34
|
-
export declare const prefixSignatureKeyType: (sig: Hex, type: KeySigner["type"]) => Hex;
|
|
35
|
-
export declare const isGlobalValidation: (data: Pick<Static<typeof PermissionsData>, "permissions">) => boolean;
|
|
36
|
-
export {};
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { PermissionType } from "@account-kit/smart-contracts/experimental";
|
|
2
|
-
import { concatHex, sliceHex } from "viem";
|
|
3
|
-
import { assertNever } from "../../utils.js";
|
|
4
|
-
export const SESSION_ID_LENGTH_BYTES = 16;
|
|
5
|
-
export const ENTITY_ID_LENGTH_BYTES = 4;
|
|
6
|
-
export const PermissionsContextVersion = {
|
|
7
|
-
REMOTE_MODE_DEFERRED_ACTION: "0x00",
|
|
8
|
-
LOCAL_MODE_DEFERRED_ACTION: "0x01",
|
|
9
|
-
NON_DEFERRED_ACTION: "0x02",
|
|
10
|
-
};
|
|
11
|
-
export const encodePermissionsContext = (context) => {
|
|
12
|
-
switch (context.contextVersion) {
|
|
13
|
-
case "REMOTE_MODE_DEFERRED_ACTION":
|
|
14
|
-
return concatHex([
|
|
15
|
-
PermissionsContextVersion.REMOTE_MODE_DEFERRED_ACTION,
|
|
16
|
-
context.sessionId,
|
|
17
|
-
context.signature,
|
|
18
|
-
]);
|
|
19
|
-
case "LOCAL_MODE_DEFERRED_ACTION":
|
|
20
|
-
return concatHex([
|
|
21
|
-
PermissionsContextVersion.LOCAL_MODE_DEFERRED_ACTION,
|
|
22
|
-
context.deferredAction,
|
|
23
|
-
]);
|
|
24
|
-
case "NON_DEFERRED_ACTION":
|
|
25
|
-
return concatHex([
|
|
26
|
-
PermissionsContextVersion.NON_DEFERRED_ACTION,
|
|
27
|
-
context.isGlobalValidation ? "0x01" : "0x00",
|
|
28
|
-
context.entityId,
|
|
29
|
-
]);
|
|
30
|
-
default:
|
|
31
|
-
return assertNever(context, "Unexpected context version");
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
export const decodePermissionsContext = (capability) => {
|
|
35
|
-
if (!("context" in capability)) {
|
|
36
|
-
return {
|
|
37
|
-
contextVersion: "REMOTE_MODE_DEFERRED_ACTION",
|
|
38
|
-
sessionId: capability.sessionId,
|
|
39
|
-
signature: capability.signature,
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
const input = capability.context;
|
|
43
|
-
const contextVersion = sliceHex(input, 0, 1);
|
|
44
|
-
switch (contextVersion) {
|
|
45
|
-
case "0x00": {
|
|
46
|
-
const sessionId = sliceHex(input, 1, SESSION_ID_LENGTH_BYTES + 1);
|
|
47
|
-
const signature = sliceHex(input, SESSION_ID_LENGTH_BYTES + 1);
|
|
48
|
-
return {
|
|
49
|
-
contextVersion: "REMOTE_MODE_DEFERRED_ACTION",
|
|
50
|
-
sessionId,
|
|
51
|
-
signature,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
case "0x01": {
|
|
55
|
-
const deferredAction = sliceHex(input, 1);
|
|
56
|
-
return {
|
|
57
|
-
contextVersion: "LOCAL_MODE_DEFERRED_ACTION",
|
|
58
|
-
deferredAction,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
case "0x02": {
|
|
62
|
-
const isGlobalValidation = sliceHex(input, 1, 2) === "0x01";
|
|
63
|
-
const entityId = sliceHex(input, 2, ENTITY_ID_LENGTH_BYTES + 2);
|
|
64
|
-
return {
|
|
65
|
-
contextVersion: "NON_DEFERRED_ACTION",
|
|
66
|
-
isGlobalValidation,
|
|
67
|
-
entityId,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
default:
|
|
71
|
-
return assertNever(contextVersion, `Unexpected context version: ${contextVersion}`);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
export const prefixSignatureKeyType = (sig, type) => {
|
|
75
|
-
switch (type) {
|
|
76
|
-
case "ecdsa":
|
|
77
|
-
case "secp256k1":
|
|
78
|
-
return concatHex(["0x00", sig]);
|
|
79
|
-
case "contract":
|
|
80
|
-
return concatHex(["0x01", sig]);
|
|
81
|
-
default:
|
|
82
|
-
return assertNever(type, "Unexpected session key type");
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
export const isGlobalValidation = (data) => {
|
|
86
|
-
return data.permissions.some((p) => p.type === PermissionType.ROOT);
|
|
87
|
-
};
|
|
88
|
-
//# sourceMappingURL=mav2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mav2.js","sourceRoot":"","sources":["../../../../src/capabilities/permissions/mav2.ts"],"names":[],"mappings":"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","sourcesContent":["import { PermissionType } from \"@account-kit/smart-contracts/experimental\";\nimport type { Static } from \"@sinclair/typebox\";\nimport { concatHex, sliceHex, type Hex } from \"viem\";\nimport type { KeySigner } from \"../../schemas.ts\";\nimport { assertNever } from \"../../utils.js\";\nimport type { PermissionsCapability, PermissionsData } from \"./index.ts\";\n\nexport const SESSION_ID_LENGTH_BYTES = 16;\nexport const ENTITY_ID_LENGTH_BYTES = 4;\n\nexport const PermissionsContextVersion = {\n REMOTE_MODE_DEFERRED_ACTION: \"0x00\",\n LOCAL_MODE_DEFERRED_ACTION: \"0x01\",\n NON_DEFERRED_ACTION: \"0x02\",\n} as const;\n\ntype ContextVersionHex =\n (typeof PermissionsContextVersion)[keyof typeof PermissionsContextVersion];\n\ntype DecodedPermissionsContext = {\n contextVersion: keyof typeof PermissionsContextVersion;\n} & (\n | {\n contextVersion: \"REMOTE_MODE_DEFERRED_ACTION\";\n sessionId: Hex;\n signature: Hex;\n deferredAction?: never;\n }\n | {\n contextVersion: \"LOCAL_MODE_DEFERRED_ACTION\";\n deferredAction: Hex;\n sessionId?: never;\n signature?: never;\n }\n | {\n contextVersion: \"NON_DEFERRED_ACTION\";\n deferredAction?: never;\n sessionId?: never;\n signature?: never;\n entityId: Hex;\n isGlobalValidation: boolean;\n }\n);\n\nexport const encodePermissionsContext = (\n context: DecodedPermissionsContext,\n): Hex => {\n switch (context.contextVersion) {\n case \"REMOTE_MODE_DEFERRED_ACTION\":\n return concatHex([\n PermissionsContextVersion.REMOTE_MODE_DEFERRED_ACTION,\n context.sessionId,\n context.signature,\n ]);\n case \"LOCAL_MODE_DEFERRED_ACTION\":\n return concatHex([\n PermissionsContextVersion.LOCAL_MODE_DEFERRED_ACTION,\n context.deferredAction,\n ]);\n case \"NON_DEFERRED_ACTION\":\n return concatHex([\n PermissionsContextVersion.NON_DEFERRED_ACTION,\n context.isGlobalValidation ? \"0x01\" : \"0x00\",\n context.entityId,\n ]);\n default:\n return assertNever(context, \"Unexpected context version\");\n }\n};\n\nexport const decodePermissionsContext = (\n capability: Static<typeof PermissionsCapability>,\n): DecodedPermissionsContext => {\n if (!(\"context\" in capability)) {\n return {\n contextVersion: \"REMOTE_MODE_DEFERRED_ACTION\",\n sessionId: capability.sessionId,\n signature: capability.signature,\n };\n }\n\n const input = capability.context;\n\n const contextVersion = sliceHex(input, 0, 1) as ContextVersionHex;\n switch (contextVersion) {\n case \"0x00\": {\n const sessionId = sliceHex(input, 1, SESSION_ID_LENGTH_BYTES + 1);\n const signature = sliceHex(input, SESSION_ID_LENGTH_BYTES + 1);\n return {\n contextVersion: \"REMOTE_MODE_DEFERRED_ACTION\",\n sessionId,\n signature,\n };\n }\n case \"0x01\": {\n const deferredAction = sliceHex(input, 1);\n return {\n contextVersion: \"LOCAL_MODE_DEFERRED_ACTION\",\n deferredAction,\n };\n }\n case \"0x02\": {\n const isGlobalValidation = sliceHex(input, 1, 2) === \"0x01\";\n const entityId = sliceHex(input, 2, ENTITY_ID_LENGTH_BYTES + 2);\n return {\n contextVersion: \"NON_DEFERRED_ACTION\",\n isGlobalValidation,\n entityId,\n };\n }\n default:\n return assertNever(\n contextVersion,\n `Unexpected context version: ${contextVersion}`,\n );\n }\n};\n\nexport const prefixSignatureKeyType = (\n sig: Hex,\n type: KeySigner[\"type\"],\n): Hex => {\n switch (type) {\n case \"ecdsa\":\n case \"secp256k1\":\n return concatHex([\"0x00\", sig]);\n case \"contract\":\n return concatHex([\"0x01\", sig]);\n default:\n return assertNever(type, \"Unexpected session key type\");\n }\n};\n\nexport const isGlobalValidation = (\n data: Pick<Static<typeof PermissionsData>, \"permissions\">,\n): boolean => {\n return data.permissions.some((p) => p.type === PermissionType.ROOT);\n};\n"]}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { SmartAccountSigner } from "@aa-sdk/core";
|
|
2
|
-
import type { Static } from "@sinclair/typebox";
|
|
3
|
-
import type { Address } from "abitype";
|
|
4
|
-
import type { wallet_createAccount } from "../../rpc/request.ts";
|
|
5
|
-
import type { InnerWalletApiClient } from "../../types.ts";
|
|
6
|
-
export type CreateAccountParams = Omit<Extract<Static<typeof wallet_createAccount>["Request"]["params"][0], {
|
|
7
|
-
signerAddress: Address;
|
|
8
|
-
}>, "signerAddress">;
|
|
9
|
-
export type CreateAccountResult = Static<typeof wallet_createAccount>["ReturnType"];
|
|
10
|
-
/**
|
|
11
|
-
* Creates a new account for the provided signer using the wallet API client.
|
|
12
|
-
* This method is primarily used to import existing accounts.
|
|
13
|
-
* For most cases, you should use requestAccount instead.
|
|
14
|
-
* If the account already exists, an error will be thrown.
|
|
15
|
-
*
|
|
16
|
-
* @param {InnerWalletApiClient} client - The wallet API client to use for the request
|
|
17
|
-
* @param {SmartAccountSigner} signer - The signer that will be associated with the account
|
|
18
|
-
* @param {CreateAccountParams} params - Parameters for creating the account
|
|
19
|
-
* @param {string} [params.id] - Optional UUID v4 identifier for the account
|
|
20
|
-
* @param {object} params.creationOptions - Options for account creation
|
|
21
|
-
* @param {string} [params.creationOptions.accountType] - Currently only "sma-b" (Modular Account v2) is supported
|
|
22
|
-
* @param {string} [params.creationOptions.salt] - Optional hex string to use as salt for account creation
|
|
23
|
-
* @returns {Promise<CreateAccountResult>} A Promise that resolves to the created account information
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* // Create a new account with a custom salt
|
|
27
|
-
* const account = await client.createAccount({
|
|
28
|
-
* creationOptions: {
|
|
29
|
-
* accountType: "sma-b",
|
|
30
|
-
* salt: "0x04"
|
|
31
|
-
* }
|
|
32
|
-
* });
|
|
33
|
-
* console.log(`Created account at address: ${account.accountAddress}`);
|
|
34
|
-
*/
|
|
35
|
-
export declare function createAccount(client: InnerWalletApiClient, signer: SmartAccountSigner, params: CreateAccountParams): Promise<CreateAccountResult>;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates a new account for the provided signer using the wallet API client.
|
|
3
|
-
* This method is primarily used to import existing accounts.
|
|
4
|
-
* For most cases, you should use requestAccount instead.
|
|
5
|
-
* If the account already exists, an error will be thrown.
|
|
6
|
-
*
|
|
7
|
-
* @param {InnerWalletApiClient} client - The wallet API client to use for the request
|
|
8
|
-
* @param {SmartAccountSigner} signer - The signer that will be associated with the account
|
|
9
|
-
* @param {CreateAccountParams} params - Parameters for creating the account
|
|
10
|
-
* @param {string} [params.id] - Optional UUID v4 identifier for the account
|
|
11
|
-
* @param {object} params.creationOptions - Options for account creation
|
|
12
|
-
* @param {string} [params.creationOptions.accountType] - Currently only "sma-b" (Modular Account v2) is supported
|
|
13
|
-
* @param {string} [params.creationOptions.salt] - Optional hex string to use as salt for account creation
|
|
14
|
-
* @returns {Promise<CreateAccountResult>} A Promise that resolves to the created account information
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* // Create a new account with a custom salt
|
|
18
|
-
* const account = await client.createAccount({
|
|
19
|
-
* creationOptions: {
|
|
20
|
-
* accountType: "sma-b",
|
|
21
|
-
* salt: "0x04"
|
|
22
|
-
* }
|
|
23
|
-
* });
|
|
24
|
-
* console.log(`Created account at address: ${account.accountAddress}`);
|
|
25
|
-
*/
|
|
26
|
-
export async function createAccount(client, signer, params) {
|
|
27
|
-
return client.request({
|
|
28
|
-
method: "wallet_createAccount",
|
|
29
|
-
params: [{ signerAddress: await signer.getAddress(), ...params }],
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=createAccount.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createAccount.js","sourceRoot":"","sources":["../../../../src/client/actions/createAccount.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA4B,EAC5B,MAA0B,EAC1B,MAA2B;IAE3B,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,MAAM,EAAE,sBAAsB;QAC9B,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC;KAClE,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { SmartAccountSigner } from \"@aa-sdk/core\";\nimport type { Static } from \"@sinclair/typebox\";\nimport type { Address } from \"abitype\";\nimport type { wallet_createAccount } from \"../../rpc/request.ts\";\nimport type { InnerWalletApiClient } from \"../../types.ts\";\n\nexport type CreateAccountParams = Omit<\n Extract<\n Static<typeof wallet_createAccount>[\"Request\"][\"params\"][0],\n { signerAddress: Address }\n >,\n \"signerAddress\"\n>;\n\nexport type CreateAccountResult = Static<\n typeof wallet_createAccount\n>[\"ReturnType\"];\n\n/**\n * Creates a new account for the provided signer using the wallet API client.\n * This method is primarily used to import existing accounts.\n * For most cases, you should use requestAccount instead.\n * If the account already exists, an error will be thrown.\n *\n * @param {InnerWalletApiClient} client - The wallet API client to use for the request\n * @param {SmartAccountSigner} signer - The signer that will be associated with the account\n * @param {CreateAccountParams} params - Parameters for creating the account\n * @param {string} [params.id] - Optional UUID v4 identifier for the account\n * @param {object} params.creationOptions - Options for account creation\n * @param {string} [params.creationOptions.accountType] - Currently only \"sma-b\" (Modular Account v2) is supported\n * @param {string} [params.creationOptions.salt] - Optional hex string to use as salt for account creation\n * @returns {Promise<CreateAccountResult>} A Promise that resolves to the created account information\n *\n * @example\n * // Create a new account with a custom salt\n * const account = await client.createAccount({\n * creationOptions: {\n * accountType: \"sma-b\",\n * salt: \"0x04\"\n * }\n * });\n * console.log(`Created account at address: ${account.accountAddress}`);\n */\nexport async function createAccount(\n client: InnerWalletApiClient,\n signer: SmartAccountSigner,\n params: CreateAccountParams,\n): Promise<CreateAccountResult> {\n return client.request({\n method: \"wallet_createAccount\",\n params: [{ signerAddress: await signer.getAddress(), ...params }],\n });\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,375 +0,0 @@
|
|
|
1
|
-
import { LocalAccountSigner } from "@aa-sdk/core";
|
|
2
|
-
import { alchemy, arbitrumSepolia } from "@account-kit/infra";
|
|
3
|
-
import { describe, expect, it } from "bun:test";
|
|
4
|
-
import { createPublicClient, zeroAddress } from "viem";
|
|
5
|
-
import { createSmartWalletClient } from "./index.js";
|
|
6
|
-
describe("Client E2E Tests", () => {
|
|
7
|
-
const transport = alchemy(process.env.ALCHEMY_PROXY_RPC_URL
|
|
8
|
-
? {
|
|
9
|
-
rpcUrl: process.env.ALCHEMY_PROXY_RPC_URL,
|
|
10
|
-
}
|
|
11
|
-
: {
|
|
12
|
-
apiKey: process.env.TEST_ALCHEMY_API_KEY,
|
|
13
|
-
});
|
|
14
|
-
describe("Local Mode Tests", () => {
|
|
15
|
-
const signer = LocalAccountSigner.privateKeyToAccountSigner("0xbaca22d9b6846ec09a4da378ffa07e2f14ce7d65675d135911b6fd281416bb03");
|
|
16
|
-
const client = createSmartWalletClient({
|
|
17
|
-
transport,
|
|
18
|
-
chain: arbitrumSepolia,
|
|
19
|
-
mode: "local",
|
|
20
|
-
signer,
|
|
21
|
-
});
|
|
22
|
-
const publicClient = createPublicClient({
|
|
23
|
-
chain: arbitrumSepolia,
|
|
24
|
-
transport,
|
|
25
|
-
});
|
|
26
|
-
it("should successfully get a counterfactual address", async () => {
|
|
27
|
-
const account = await client.requestAccount();
|
|
28
|
-
expect(account.address).toMatchInlineSnapshot(`"0xa46944b7a39c35d931D514ACAc3ac77c226a81ff"`);
|
|
29
|
-
});
|
|
30
|
-
it("should successfully request account with different salt", async () => {
|
|
31
|
-
const account = await client.requestAccount({
|
|
32
|
-
id: "f4c1d956-24ef-4002-a141-2c9d6d92af1a",
|
|
33
|
-
creationHint: { salt: "0x1" },
|
|
34
|
-
});
|
|
35
|
-
expect(account.address).toMatchInlineSnapshot(`"0xA692f0E5AfAD20F771443D89C635146C6A592f06"`);
|
|
36
|
-
});
|
|
37
|
-
it("should not cache account if different inputs provided", async () => {
|
|
38
|
-
const account = await client.requestAccount();
|
|
39
|
-
const account2 = await client.requestAccount({
|
|
40
|
-
id: "52ab44be-b03e-47ed-ad65-43014ea5fbfc",
|
|
41
|
-
creationHint: { salt: "0x2" },
|
|
42
|
-
});
|
|
43
|
-
expect(account.address).not.toEqual(account2.address);
|
|
44
|
-
});
|
|
45
|
-
it("can correctly sign a message", async () => {
|
|
46
|
-
const account = await client.requestAccount();
|
|
47
|
-
const message = "hello world";
|
|
48
|
-
const signature = await client.signMessage({ message });
|
|
49
|
-
const isValid = await publicClient.verifyMessage({
|
|
50
|
-
address: account.address,
|
|
51
|
-
message,
|
|
52
|
-
signature,
|
|
53
|
-
});
|
|
54
|
-
expect(isValid).toBeTrue();
|
|
55
|
-
});
|
|
56
|
-
it("can correctly sign typed data", async () => {
|
|
57
|
-
const account = await client.requestAccount();
|
|
58
|
-
const signature = await client.signTypedData(givenTypedData);
|
|
59
|
-
const isValid = await publicClient.verifyTypedData({
|
|
60
|
-
...givenTypedData,
|
|
61
|
-
signature,
|
|
62
|
-
address: account.address,
|
|
63
|
-
});
|
|
64
|
-
expect(isValid).toBeTrue();
|
|
65
|
-
});
|
|
66
|
-
it("can correctly sign a message with a different account", async () => {
|
|
67
|
-
const account = await client.requestAccount({
|
|
68
|
-
id: "f4c1d956-24ef-4002-a141-2c9d6d92af1a",
|
|
69
|
-
creationHint: { salt: "0x1" },
|
|
70
|
-
});
|
|
71
|
-
const message = "hello world";
|
|
72
|
-
const signature = await client.signMessage({
|
|
73
|
-
message,
|
|
74
|
-
account: account.address,
|
|
75
|
-
});
|
|
76
|
-
const isValid = await publicClient.verifyMessage({
|
|
77
|
-
address: account.address,
|
|
78
|
-
message,
|
|
79
|
-
signature,
|
|
80
|
-
});
|
|
81
|
-
expect(isValid).toBeTrue();
|
|
82
|
-
});
|
|
83
|
-
it("can correctly sign typed data with a different account", async () => {
|
|
84
|
-
const account = await client.requestAccount({
|
|
85
|
-
id: "f4c1d956-24ef-4002-a141-2c9d6d92af1a",
|
|
86
|
-
creationHint: { salt: "0x1" },
|
|
87
|
-
});
|
|
88
|
-
const signature = await client.signTypedData({
|
|
89
|
-
...givenTypedData,
|
|
90
|
-
account: account.address,
|
|
91
|
-
});
|
|
92
|
-
const isValid = await publicClient.verifyTypedData({
|
|
93
|
-
...givenTypedData,
|
|
94
|
-
signature,
|
|
95
|
-
address: account.address,
|
|
96
|
-
});
|
|
97
|
-
expect(isValid).toBeTrue();
|
|
98
|
-
});
|
|
99
|
-
it("should successfully send a UO with paymaster using 7702", async () => {
|
|
100
|
-
const _signer = LocalAccountSigner.privateKeyToAccountSigner("0x49daf21e92c997093e9ffdf7e7ddbf8970e9eadc5d4847d0f690db25d5128e1f");
|
|
101
|
-
const _client = createSmartWalletClient({
|
|
102
|
-
transport,
|
|
103
|
-
chain: arbitrumSepolia,
|
|
104
|
-
mode: "local",
|
|
105
|
-
signer: _signer,
|
|
106
|
-
});
|
|
107
|
-
const account = await _client.requestAccount({
|
|
108
|
-
creationHint: {
|
|
109
|
-
accountType: "7702",
|
|
110
|
-
},
|
|
111
|
-
});
|
|
112
|
-
const preparedCalls = await _client.prepareCalls({
|
|
113
|
-
calls: [{ to: zeroAddress, value: "0x0" }],
|
|
114
|
-
from: account.address,
|
|
115
|
-
capabilities: {
|
|
116
|
-
paymasterService: {
|
|
117
|
-
policyId: process.env.TEST_PAYMASTER_POLICY_ID,
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
});
|
|
121
|
-
const signedCalls = await _client.signPreparedCalls(preparedCalls);
|
|
122
|
-
const result = await _client.sendPreparedCalls(signedCalls);
|
|
123
|
-
expect(result.preparedCallIds).toBeArrayOfSize(1);
|
|
124
|
-
});
|
|
125
|
-
it("should successfully send a UO with paymaster", async () => {
|
|
126
|
-
const account = await client.requestAccount();
|
|
127
|
-
const preparedCalls = await client.prepareCalls({
|
|
128
|
-
calls: [{ to: zeroAddress, value: "0x0" }],
|
|
129
|
-
from: account.address,
|
|
130
|
-
capabilities: {
|
|
131
|
-
paymasterService: {
|
|
132
|
-
policyId: process.env.TEST_PAYMASTER_POLICY_ID,
|
|
133
|
-
},
|
|
134
|
-
},
|
|
135
|
-
});
|
|
136
|
-
const signedCalls = await client.signPreparedCalls(preparedCalls);
|
|
137
|
-
const result = await client.sendPreparedCalls(signedCalls);
|
|
138
|
-
expect(result.preparedCallIds).toBeArrayOfSize(1);
|
|
139
|
-
});
|
|
140
|
-
it("should successfully create a session with grantPermissions and send a UO", async () => {
|
|
141
|
-
const account = await client.requestAccount();
|
|
142
|
-
const sessionKey = LocalAccountSigner.generatePrivateKeySigner();
|
|
143
|
-
const permissions = await client.grantPermissions({
|
|
144
|
-
account: account.address,
|
|
145
|
-
expirySec: Math.floor(Date.now() / 1000) + 60 * 60,
|
|
146
|
-
key: {
|
|
147
|
-
publicKey: await sessionKey.getAddress(),
|
|
148
|
-
type: "secp256k1",
|
|
149
|
-
},
|
|
150
|
-
permissions: [{ type: "root" }],
|
|
151
|
-
});
|
|
152
|
-
const sessionKeyClient = createSmartWalletClient({
|
|
153
|
-
transport,
|
|
154
|
-
chain: arbitrumSepolia,
|
|
155
|
-
mode: "local",
|
|
156
|
-
signer: sessionKey,
|
|
157
|
-
});
|
|
158
|
-
const preparedCalls = await sessionKeyClient.prepareCalls({
|
|
159
|
-
calls: [{ to: zeroAddress, value: "0x0" }],
|
|
160
|
-
from: account.address,
|
|
161
|
-
capabilities: {
|
|
162
|
-
paymasterService: {
|
|
163
|
-
policyId: process.env.TEST_PAYMASTER_POLICY_ID,
|
|
164
|
-
},
|
|
165
|
-
permissions,
|
|
166
|
-
},
|
|
167
|
-
});
|
|
168
|
-
const signedCalls = await sessionKeyClient.signPreparedCalls(preparedCalls);
|
|
169
|
-
const result = await sessionKeyClient.sendPreparedCalls({
|
|
170
|
-
...signedCalls,
|
|
171
|
-
capabilities: {
|
|
172
|
-
permissions,
|
|
173
|
-
},
|
|
174
|
-
});
|
|
175
|
-
expect(result.preparedCallIds).toBeArrayOfSize(1);
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
describe("Remote Mode Tests", () => {
|
|
179
|
-
const signer = LocalAccountSigner.privateKeyToAccountSigner("0xd7b061ef04d29cf68b3c89356678eccec9988de8d5ed892c19461c4a9d65925d");
|
|
180
|
-
const client = createSmartWalletClient({
|
|
181
|
-
transport,
|
|
182
|
-
chain: arbitrumSepolia,
|
|
183
|
-
mode: "remote",
|
|
184
|
-
signer,
|
|
185
|
-
});
|
|
186
|
-
const publicClient = createPublicClient({
|
|
187
|
-
chain: arbitrumSepolia,
|
|
188
|
-
transport,
|
|
189
|
-
});
|
|
190
|
-
it("should successfully get a counterfactual address", async () => {
|
|
191
|
-
const account = await client.requestAccount();
|
|
192
|
-
expect(account.address).toMatchInlineSnapshot(`"0x76E765e80FFAC96ac10Aa8908a8267A3B80d606D"`);
|
|
193
|
-
});
|
|
194
|
-
it("should successfully request account with different salt", async () => {
|
|
195
|
-
const account = await client.requestAccount({
|
|
196
|
-
id: "26b375e3-c94a-4e98-b6b7-5a97121aa583",
|
|
197
|
-
creationHint: { salt: "0x1" },
|
|
198
|
-
});
|
|
199
|
-
expect(account.address).toMatchInlineSnapshot(`"0xdfdd407b9569D40BEFa503208753E59cAc9713fA"`);
|
|
200
|
-
});
|
|
201
|
-
it("should not cache account if different inputs provided", async () => {
|
|
202
|
-
const account = await client.requestAccount();
|
|
203
|
-
const account2 = await client.requestAccount({
|
|
204
|
-
id: "2a3320b4-6ed2-4833-a488-5188e9bdd9d2",
|
|
205
|
-
creationHint: { salt: "0x2" },
|
|
206
|
-
});
|
|
207
|
-
expect(account.address).not.toEqual(account2.address);
|
|
208
|
-
});
|
|
209
|
-
it("can correctly sign a message", async () => {
|
|
210
|
-
const account = await client.requestAccount();
|
|
211
|
-
const message = "hello world";
|
|
212
|
-
const signature = await client.signMessage({ message });
|
|
213
|
-
const isValid = await publicClient.verifyMessage({
|
|
214
|
-
address: account.address,
|
|
215
|
-
message: "hello world",
|
|
216
|
-
signature,
|
|
217
|
-
});
|
|
218
|
-
expect(isValid).toBeTrue();
|
|
219
|
-
});
|
|
220
|
-
it("can correctly sign typed data", async () => {
|
|
221
|
-
const account = await client.requestAccount();
|
|
222
|
-
const signature = await client.signTypedData(givenTypedData);
|
|
223
|
-
const isValid = await publicClient.verifyTypedData({
|
|
224
|
-
...givenTypedData,
|
|
225
|
-
signature,
|
|
226
|
-
address: account.address,
|
|
227
|
-
});
|
|
228
|
-
expect(isValid).toBeTrue();
|
|
229
|
-
});
|
|
230
|
-
it("can correctly sign a message with a different account", async () => {
|
|
231
|
-
const account = await client.requestAccount({
|
|
232
|
-
id: "26b375e3-c94a-4e98-b6b7-5a97121aa583",
|
|
233
|
-
creationHint: { salt: "0x1" },
|
|
234
|
-
});
|
|
235
|
-
const message = "hello world";
|
|
236
|
-
const signature = await client.signMessage({
|
|
237
|
-
message,
|
|
238
|
-
account: account.address,
|
|
239
|
-
});
|
|
240
|
-
const isValid = await publicClient.verifyMessage({
|
|
241
|
-
address: account.address,
|
|
242
|
-
message: "hello world",
|
|
243
|
-
signature,
|
|
244
|
-
});
|
|
245
|
-
expect(isValid).toBeTrue();
|
|
246
|
-
});
|
|
247
|
-
it("can correctly sign typed data with a different account", async () => {
|
|
248
|
-
const account = await client.requestAccount({
|
|
249
|
-
id: "26b375e3-c94a-4e98-b6b7-5a97121aa583",
|
|
250
|
-
creationHint: { salt: "0x1" },
|
|
251
|
-
});
|
|
252
|
-
const signature = await client.signTypedData({
|
|
253
|
-
...givenTypedData,
|
|
254
|
-
account: account.address,
|
|
255
|
-
});
|
|
256
|
-
const isValid = await publicClient.verifyTypedData({
|
|
257
|
-
...givenTypedData,
|
|
258
|
-
signature,
|
|
259
|
-
address: account.address,
|
|
260
|
-
});
|
|
261
|
-
expect(isValid).toBeTrue();
|
|
262
|
-
});
|
|
263
|
-
it("should successfully send a UO with paymaster", async () => {
|
|
264
|
-
const account = await client.requestAccount();
|
|
265
|
-
const preparedCalls = await client.prepareCalls({
|
|
266
|
-
calls: [{ to: zeroAddress, value: "0x0" }],
|
|
267
|
-
from: account.address,
|
|
268
|
-
capabilities: {
|
|
269
|
-
paymasterService: {
|
|
270
|
-
policyId: process.env.TEST_PAYMASTER_POLICY_ID,
|
|
271
|
-
},
|
|
272
|
-
},
|
|
273
|
-
});
|
|
274
|
-
const signedCalls = await client.signPreparedCalls(preparedCalls);
|
|
275
|
-
const result = await client.sendPreparedCalls(signedCalls);
|
|
276
|
-
expect(result.preparedCallIds).toBeArrayOfSize(1);
|
|
277
|
-
});
|
|
278
|
-
it("should successfully send a UO with paymaster using 7702", async () => {
|
|
279
|
-
const _signer = LocalAccountSigner.privateKeyToAccountSigner("0x00d35c6d307b5cddeb70aeed96ee27a551fee58bf1a43858477e6c11f9172ba8");
|
|
280
|
-
const _client = createSmartWalletClient({
|
|
281
|
-
transport,
|
|
282
|
-
chain: arbitrumSepolia,
|
|
283
|
-
mode: "remote",
|
|
284
|
-
signer: _signer,
|
|
285
|
-
});
|
|
286
|
-
const account = await _client.requestAccount({
|
|
287
|
-
creationHint: {
|
|
288
|
-
accountType: "7702",
|
|
289
|
-
},
|
|
290
|
-
});
|
|
291
|
-
expect(account.address).toBe(await _signer.getAddress());
|
|
292
|
-
const preparedCalls = await _client.prepareCalls({
|
|
293
|
-
calls: [{ to: zeroAddress, value: "0x0" }],
|
|
294
|
-
from: account.address,
|
|
295
|
-
capabilities: {
|
|
296
|
-
paymasterService: {
|
|
297
|
-
policyId: process.env.TEST_PAYMASTER_POLICY_ID,
|
|
298
|
-
},
|
|
299
|
-
},
|
|
300
|
-
});
|
|
301
|
-
const signedCalls = await _client.signPreparedCalls(preparedCalls);
|
|
302
|
-
const result = await _client.sendPreparedCalls(signedCalls);
|
|
303
|
-
expect(result.preparedCallIds).toBeArrayOfSize(1);
|
|
304
|
-
});
|
|
305
|
-
it("should successfully create a session with grantPermissions and send a UO", async () => {
|
|
306
|
-
const account = await client.requestAccount();
|
|
307
|
-
const sessionKey = LocalAccountSigner.generatePrivateKeySigner();
|
|
308
|
-
const permissions = await client.grantPermissions({
|
|
309
|
-
account: account.address,
|
|
310
|
-
expirySec: Math.floor(Date.now() / 1000) + 60 * 60,
|
|
311
|
-
key: {
|
|
312
|
-
publicKey: await sessionKey.getAddress(),
|
|
313
|
-
type: "secp256k1",
|
|
314
|
-
},
|
|
315
|
-
permissions: [{ type: "root" }],
|
|
316
|
-
});
|
|
317
|
-
const sessionKeyClient = createSmartWalletClient({
|
|
318
|
-
transport,
|
|
319
|
-
chain: arbitrumSepolia,
|
|
320
|
-
mode: "remote",
|
|
321
|
-
signer: sessionKey,
|
|
322
|
-
});
|
|
323
|
-
const preparedCalls = await sessionKeyClient.prepareCalls({
|
|
324
|
-
calls: [{ to: zeroAddress, value: "0x0" }],
|
|
325
|
-
from: account.address,
|
|
326
|
-
capabilities: {
|
|
327
|
-
paymasterService: {
|
|
328
|
-
policyId: process.env.TEST_PAYMASTER_POLICY_ID,
|
|
329
|
-
},
|
|
330
|
-
permissions,
|
|
331
|
-
},
|
|
332
|
-
});
|
|
333
|
-
const signedCalls = await sessionKeyClient.signPreparedCalls(preparedCalls);
|
|
334
|
-
const result = await sessionKeyClient.sendPreparedCalls({
|
|
335
|
-
...signedCalls,
|
|
336
|
-
capabilities: {
|
|
337
|
-
permissions,
|
|
338
|
-
},
|
|
339
|
-
});
|
|
340
|
-
expect(result.preparedCallIds).toBeArrayOfSize(1);
|
|
341
|
-
});
|
|
342
|
-
});
|
|
343
|
-
const givenTypedData = {
|
|
344
|
-
types: {
|
|
345
|
-
Person: [
|
|
346
|
-
{ name: "name", type: "string" },
|
|
347
|
-
{ name: "wallet", type: "address" },
|
|
348
|
-
],
|
|
349
|
-
Mail: [
|
|
350
|
-
{ name: "from", type: "Person" },
|
|
351
|
-
{ name: "to", type: "Person" },
|
|
352
|
-
{ name: "contents", type: "string" },
|
|
353
|
-
],
|
|
354
|
-
},
|
|
355
|
-
primaryType: "Mail",
|
|
356
|
-
domain: {
|
|
357
|
-
name: "Ether Mail",
|
|
358
|
-
version: "1",
|
|
359
|
-
chainId: 1,
|
|
360
|
-
verifyingContract: "0xbbc68f94D29d52EE8D4994E54d6ED0fEAeb99C2c",
|
|
361
|
-
},
|
|
362
|
-
message: {
|
|
363
|
-
from: {
|
|
364
|
-
name: "Alice",
|
|
365
|
-
wallet: "0xFC24e57486116026740634F629ffC4E5C95A6893",
|
|
366
|
-
},
|
|
367
|
-
to: {
|
|
368
|
-
name: "Bob",
|
|
369
|
-
wallet: "0xe7a26f006EAA562308C5df235C02BFB9a5849177",
|
|
370
|
-
},
|
|
371
|
-
contents: "Hello, Bob!",
|
|
372
|
-
},
|
|
373
|
-
};
|
|
374
|
-
});
|
|
375
|
-
//# sourceMappingURL=client.e2e-test.js.map
|