@account-kit/wallet-client 0.1.0-alpha.11 → 0.1.0-alpha.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/dist/esm/client/actions/getCallsStatus.d.ts +4 -3
  2. package/dist/esm/client/actions/getCallsStatus.js +1 -0
  3. package/dist/esm/client/actions/getCallsStatus.js.map +1 -1
  4. package/dist/esm/client/actions/grantPermissions.d.ts +5 -4
  5. package/dist/esm/client/actions/grantPermissions.js +21 -5
  6. package/dist/esm/client/actions/grantPermissions.js.map +1 -1
  7. package/dist/esm/client/actions/prepareCalls.d.ts +4 -3
  8. package/dist/esm/client/actions/prepareCalls.js +3 -2
  9. package/dist/esm/client/actions/prepareCalls.js.map +1 -1
  10. package/dist/esm/client/actions/prepareSign.d.ts +4 -3
  11. package/dist/esm/client/actions/prepareSign.js +1 -0
  12. package/dist/esm/client/actions/prepareSign.js.map +1 -1
  13. package/dist/esm/client/actions/requestAccount.js +1 -1
  14. package/dist/esm/client/actions/requestAccount.js.map +1 -1
  15. package/dist/esm/client/client.e2e-test.js +171 -349
  16. package/dist/esm/client/client.e2e-test.js.map +1 -1
  17. package/dist/esm/client/index.d.ts +8 -6
  18. package/dist/esm/client/index.js +18 -18
  19. package/dist/esm/client/index.js.map +1 -1
  20. package/dist/esm/{isomorphic/utils/createAccount.d.ts → internal/account.d.ts} +1 -5
  21. package/dist/esm/{isomorphic/utils/createAccount.js → internal/account.js} +8 -32
  22. package/dist/esm/internal/account.js.map +1 -0
  23. package/dist/esm/types.d.ts +4 -10
  24. package/dist/esm/types.js.map +1 -1
  25. package/dist/types/client/actions/getCallsStatus.d.ts +4 -3
  26. package/dist/types/client/actions/getCallsStatus.d.ts.map +1 -1
  27. package/dist/types/client/actions/grantPermissions.d.ts +5 -4
  28. package/dist/types/client/actions/grantPermissions.d.ts.map +1 -1
  29. package/dist/types/client/actions/prepareCalls.d.ts +4 -3
  30. package/dist/types/client/actions/prepareCalls.d.ts.map +1 -1
  31. package/dist/types/client/actions/prepareSign.d.ts +4 -3
  32. package/dist/types/client/actions/prepareSign.d.ts.map +1 -1
  33. package/dist/types/client/actions/requestAccount.d.ts.map +1 -1
  34. package/dist/types/client/index.d.ts +8 -6
  35. package/dist/types/client/index.d.ts.map +1 -1
  36. package/dist/types/{isomorphic/utils/createAccount.d.ts → internal/account.d.ts} +2 -6
  37. package/dist/types/internal/account.d.ts.map +1 -0
  38. package/dist/types/types.d.ts +4 -10
  39. package/dist/types/types.d.ts.map +1 -1
  40. package/package.json +3 -8
  41. package/src/client/actions/getCallsStatus.ts +8 -6
  42. package/src/client/actions/grantPermissions.ts +41 -10
  43. package/src/client/actions/prepareCalls.ts +13 -8
  44. package/src/client/actions/prepareSign.ts +9 -6
  45. package/src/client/actions/requestAccount.ts +1 -1
  46. package/src/client/client.e2e-test.ts +208 -442
  47. package/src/client/index.ts +39 -30
  48. package/src/{isomorphic/utils/createAccount.ts → internal/account.ts} +9 -49
  49. package/src/types.ts +6 -17
  50. package/dist/esm/exports/internal.d.ts +0 -4
  51. package/dist/esm/exports/internal.js +0 -3
  52. package/dist/esm/exports/internal.js.map +0 -1
  53. package/dist/esm/isomorphic/actions/createSession.d.ts +0 -13
  54. package/dist/esm/isomorphic/actions/createSession.js +0 -94
  55. package/dist/esm/isomorphic/actions/createSession.js.map +0 -1
  56. package/dist/esm/isomorphic/actions/formatSign.d.ts +0 -8
  57. package/dist/esm/isomorphic/actions/formatSign.js +0 -42
  58. package/dist/esm/isomorphic/actions/formatSign.js.map +0 -1
  59. package/dist/esm/isomorphic/actions/getCallsStatus.d.ts +0 -7
  60. package/dist/esm/isomorphic/actions/getCallsStatus.js +0 -71
  61. package/dist/esm/isomorphic/actions/getCallsStatus.js.map +0 -1
  62. package/dist/esm/isomorphic/actions/prepareCalls.d.ts +0 -7
  63. package/dist/esm/isomorphic/actions/prepareCalls.js +0 -116
  64. package/dist/esm/isomorphic/actions/prepareCalls.js.map +0 -1
  65. package/dist/esm/isomorphic/actions/prepareSign.d.ts +0 -7
  66. package/dist/esm/isomorphic/actions/prepareSign.js +0 -49
  67. package/dist/esm/isomorphic/actions/prepareSign.js.map +0 -1
  68. package/dist/esm/isomorphic/actions/sendPreparedCalls.d.ts +0 -7
  69. package/dist/esm/isomorphic/actions/sendPreparedCalls.js +0 -183
  70. package/dist/esm/isomorphic/actions/sendPreparedCalls.js.map +0 -1
  71. package/dist/esm/isomorphic/client.d.ts +0 -275
  72. package/dist/esm/isomorphic/client.js +0 -41
  73. package/dist/esm/isomorphic/client.js.map +0 -1
  74. package/dist/esm/isomorphic/utils/7702.d.ts +0 -19
  75. package/dist/esm/isomorphic/utils/7702.js +0 -70
  76. package/dist/esm/isomorphic/utils/7702.js.map +0 -1
  77. package/dist/esm/isomorphic/utils/createAccount.js.map +0 -1
  78. package/dist/esm/isomorphic/utils/createDummySigner.d.ts +0 -3
  79. package/dist/esm/isomorphic/utils/createDummySigner.js +0 -17
  80. package/dist/esm/isomorphic/utils/createDummySigner.js.map +0 -1
  81. package/dist/esm/isomorphic/utils/decodeSignature.d.ts +0 -3
  82. package/dist/esm/isomorphic/utils/decodeSignature.js +0 -15
  83. package/dist/esm/isomorphic/utils/decodeSignature.js.map +0 -1
  84. package/dist/esm/isomorphic/utils/parsePermissionsContext.d.ts +0 -21
  85. package/dist/esm/isomorphic/utils/parsePermissionsContext.js +0 -34
  86. package/dist/esm/isomorphic/utils/parsePermissionsContext.js.map +0 -1
  87. package/dist/esm/isomorphic/utils/supportsFeature.d.ts +0 -4
  88. package/dist/esm/isomorphic/utils/supportsFeature.js +0 -21
  89. package/dist/esm/isomorphic/utils/supportsFeature.js.map +0 -1
  90. package/dist/esm/local/client.d.ts +0 -3
  91. package/dist/esm/local/client.js +0 -97
  92. package/dist/esm/local/client.js.map +0 -1
  93. package/dist/esm/remote/client.d.ts +0 -9
  94. package/dist/esm/remote/client.js +0 -41
  95. package/dist/esm/remote/client.js.map +0 -1
  96. package/dist/types/exports/internal.d.ts +0 -5
  97. package/dist/types/exports/internal.d.ts.map +0 -1
  98. package/dist/types/isomorphic/actions/createSession.d.ts +0 -14
  99. package/dist/types/isomorphic/actions/createSession.d.ts.map +0 -1
  100. package/dist/types/isomorphic/actions/formatSign.d.ts +0 -9
  101. package/dist/types/isomorphic/actions/formatSign.d.ts.map +0 -1
  102. package/dist/types/isomorphic/actions/getCallsStatus.d.ts +0 -8
  103. package/dist/types/isomorphic/actions/getCallsStatus.d.ts.map +0 -1
  104. package/dist/types/isomorphic/actions/prepareCalls.d.ts +0 -8
  105. package/dist/types/isomorphic/actions/prepareCalls.d.ts.map +0 -1
  106. package/dist/types/isomorphic/actions/prepareSign.d.ts +0 -8
  107. package/dist/types/isomorphic/actions/prepareSign.d.ts.map +0 -1
  108. package/dist/types/isomorphic/actions/sendPreparedCalls.d.ts +0 -8
  109. package/dist/types/isomorphic/actions/sendPreparedCalls.d.ts.map +0 -1
  110. package/dist/types/isomorphic/client.d.ts +0 -276
  111. package/dist/types/isomorphic/client.d.ts.map +0 -1
  112. package/dist/types/isomorphic/utils/7702.d.ts +0 -20
  113. package/dist/types/isomorphic/utils/7702.d.ts.map +0 -1
  114. package/dist/types/isomorphic/utils/createAccount.d.ts.map +0 -1
  115. package/dist/types/isomorphic/utils/createDummySigner.d.ts +0 -4
  116. package/dist/types/isomorphic/utils/createDummySigner.d.ts.map +0 -1
  117. package/dist/types/isomorphic/utils/decodeSignature.d.ts +0 -4
  118. package/dist/types/isomorphic/utils/decodeSignature.d.ts.map +0 -1
  119. package/dist/types/isomorphic/utils/parsePermissionsContext.d.ts +0 -22
  120. package/dist/types/isomorphic/utils/parsePermissionsContext.d.ts.map +0 -1
  121. package/dist/types/isomorphic/utils/supportsFeature.d.ts +0 -5
  122. package/dist/types/isomorphic/utils/supportsFeature.d.ts.map +0 -1
  123. package/dist/types/local/client.d.ts +0 -4
  124. package/dist/types/local/client.d.ts.map +0 -1
  125. package/dist/types/remote/client.d.ts +0 -10
  126. package/dist/types/remote/client.d.ts.map +0 -1
  127. package/src/exports/internal.ts +0 -8
  128. package/src/isomorphic/actions/createSession.ts +0 -163
  129. package/src/isomorphic/actions/formatSign.ts +0 -76
  130. package/src/isomorphic/actions/getCallsStatus.ts +0 -112
  131. package/src/isomorphic/actions/prepareCalls.ts +0 -172
  132. package/src/isomorphic/actions/prepareSign.ts +0 -88
  133. package/src/isomorphic/actions/sendPreparedCalls.ts +0 -271
  134. package/src/isomorphic/client.ts +0 -102
  135. package/src/isomorphic/utils/7702.ts +0 -135
  136. package/src/isomorphic/utils/createDummySigner.ts +0 -27
  137. package/src/isomorphic/utils/decodeSignature.ts +0 -21
  138. package/src/isomorphic/utils/parsePermissionsContext.ts +0 -51
  139. package/src/isomorphic/utils/supportsFeature.ts +0 -34
  140. package/src/local/client.ts +0 -136
  141. package/src/remote/client.ts +0 -67
@@ -1,136 +0,0 @@
1
- import { split } from "@aa-sdk/core";
2
- import { buildDeferredActionDigest } from "@account-kit/smart-contracts/experimental";
3
- import { createClient, custom, type Address } from "viem";
4
- import {
5
- encodePermissionsContext,
6
- prefixSignatureKeyType,
7
- } from "@alchemy/wallet-api-types/capabilities";
8
- import { signSignatureRequest } from "../client/actions/signSignatureRequest.js";
9
- import { internalStateDecorator } from "../internal/decorator.js";
10
- import type { PrepareCallsParams } from "../isomorphic/actions/prepareCalls.ts";
11
- import {
12
- createIsomorphicClient,
13
- type IsomorphicClient,
14
- } from "../isomorphic/client.js";
15
- import type {
16
- CreateInnerClientParams,
17
- InnerClientActions,
18
- InnerWalletApiClient,
19
- } from "../types.ts";
20
- import { assertNever } from "../utils.js";
21
-
22
- const localMethods = [
23
- "wallet_prepareCalls",
24
- "wallet_sendPreparedCalls",
25
- "wallet_getCallsStatus",
26
- "wallet_createSession",
27
- ] as const satisfies string[];
28
- type LocalMethod = (typeof localMethods)[number];
29
-
30
- export function createLocalClient<
31
- TAccount extends Address | undefined = Address | undefined,
32
- >(params: CreateInnerClientParams<TAccount>): InnerWalletApiClient;
33
-
34
- export function createLocalClient(
35
- params: CreateInnerClientParams,
36
- ): InnerWalletApiClient {
37
- const { chain, transport, policyId, account } = params;
38
- const isomorphicClient = createIsomorphicClient({
39
- transport,
40
- chain,
41
- policyId,
42
- useErc7677middleware: false,
43
- });
44
-
45
- const clientMap: Record<string, ReturnType<typeof createIsomorphicClient>> = {
46
- [policyId ?? "default"]: isomorphicClient,
47
- };
48
-
49
- const innerTransport = split({
50
- overrides: [
51
- {
52
- methods: localMethods,
53
- transport: custom(
54
- {
55
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
- async request(args: { method: LocalMethod; params: any }) {
57
- switch (args.method) {
58
- case "wallet_prepareCalls": {
59
- const params = args.params[0] as PrepareCallsParams;
60
- const capabilityPolicyId =
61
- params.capabilities?.paymasterService?.policyId;
62
-
63
- if (
64
- capabilityPolicyId != null &&
65
- policyId !== capabilityPolicyId &&
66
- !clientMap[capabilityPolicyId]
67
- ) {
68
- clientMap[capabilityPolicyId] = createIsomorphicClient({
69
- transport,
70
- chain,
71
- policyId: capabilityPolicyId,
72
- });
73
- }
74
-
75
- const client =
76
- clientMap[capabilityPolicyId ?? policyId ?? "default"];
77
- return client.prepareCalls(params);
78
- }
79
- case "wallet_sendPreparedCalls":
80
- return isomorphicClient.sendPreparedCalls(args.params[0]);
81
- case "wallet_getCallsStatus":
82
- return isomorphicClient.getCallsStatus(args.params[0]);
83
- case "wallet_createSession": {
84
- return isomorphicClient.createSession(args.params[0]);
85
- }
86
- default:
87
- return assertNever(
88
- args.method,
89
- `Unexpected method: ${args.method}`,
90
- );
91
- }
92
- },
93
- },
94
- {
95
- retryCount: 0,
96
- },
97
- ),
98
- },
99
- ],
100
- fallback: transport,
101
- });
102
-
103
- return createClient({
104
- transport: innerTransport,
105
- chain,
106
- account,
107
- })
108
- .extend(() => ({
109
- policyId,
110
- ...innerClientActions(isomorphicClient),
111
- }))
112
- .extend(() => ({
113
- internal: internalStateDecorator(),
114
- }));
115
- }
116
-
117
- const innerClientActions = (
118
- isomorphicClient: IsomorphicClient,
119
- ): InnerClientActions => {
120
- return {
121
- grantPermissions: async (signer, params) => {
122
- const { signatureRequest, fullPreSignatureDeferredActionDigest } =
123
- await isomorphicClient.createSession(params);
124
- const signature = await signSignatureRequest(signer, signatureRequest);
125
- return {
126
- context: encodePermissionsContext({
127
- contextVersion: "LOCAL_MODE_DEFERRED_ACTION",
128
- deferredAction: buildDeferredActionDigest({
129
- fullPreSignatureDeferredActionDigest,
130
- sig: prefixSignatureKeyType(signature.data, signature.type),
131
- }),
132
- }),
133
- };
134
- },
135
- };
136
- };
@@ -1,67 +0,0 @@
1
- import { Provider } from "ox";
2
- import { createClient, custom, type Address } from "viem";
3
- import { encodePermissionsContext } from "@alchemy/wallet-api-types/capabilities";
4
- import { WalletServerRpcSchema } from "@alchemy/wallet-api-types/rpc";
5
- import { signSignatureRequest } from "../client/actions/signSignatureRequest.js";
6
- import { internalStateDecorator } from "../internal/decorator.js";
7
- import type {
8
- CreateInnerClientParams,
9
- InnerClientActions,
10
- InnerWalletApiClient,
11
- InnerWalletApiClientBase,
12
- } from "../types.ts";
13
-
14
- /**
15
- * This is a low-level client just used to make RPC requests in remote mode
16
- * This should be wrapped by a higher-level smart account client that provides actions
17
- * that uses this client under the hood
18
- * @returns
19
- */
20
- export function createRemoteClient<
21
- TAccount extends Address | undefined = Address | undefined,
22
- >(params: CreateInnerClientParams<TAccount>): InnerWalletApiClient;
23
-
24
- export function createRemoteClient(
25
- params: CreateInnerClientParams,
26
- ): InnerWalletApiClient {
27
- const { transport, chain, account } = params;
28
-
29
- const client = createClient({
30
- transport: (opts) =>
31
- custom(Provider.from(transport(opts), { schema: WalletServerRpcSchema }))(
32
- opts,
33
- ),
34
- chain,
35
- account,
36
- })
37
- .extend((_client) => ({
38
- policyId: params.policyId,
39
- ...innerClientActions(_client),
40
- }))
41
- .extend(() => ({
42
- internal: internalStateDecorator(),
43
- }));
44
-
45
- return client;
46
- }
47
-
48
- const innerClientActions = (
49
- apiClient: InnerWalletApiClientBase,
50
- ): InnerClientActions => {
51
- return {
52
- grantPermissions: async (signer, params) => {
53
- const { sessionId, signatureRequest } = await apiClient.request({
54
- method: "wallet_createSession",
55
- params: [params],
56
- });
57
- const signature = await signSignatureRequest(signer, signatureRequest);
58
- return {
59
- context: encodePermissionsContext({
60
- contextVersion: "REMOTE_MODE_DEFERRED_ACTION",
61
- sessionId,
62
- signature: signature.data,
63
- }),
64
- };
65
- },
66
- };
67
- };