@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.
- package/dist/esm/client/actions/getCallsStatus.d.ts +4 -3
- package/dist/esm/client/actions/getCallsStatus.js +1 -0
- package/dist/esm/client/actions/getCallsStatus.js.map +1 -1
- package/dist/esm/client/actions/grantPermissions.d.ts +5 -4
- package/dist/esm/client/actions/grantPermissions.js +21 -5
- package/dist/esm/client/actions/grantPermissions.js.map +1 -1
- package/dist/esm/client/actions/prepareCalls.d.ts +4 -3
- package/dist/esm/client/actions/prepareCalls.js +3 -2
- package/dist/esm/client/actions/prepareCalls.js.map +1 -1
- package/dist/esm/client/actions/prepareSign.d.ts +4 -3
- package/dist/esm/client/actions/prepareSign.js +1 -0
- package/dist/esm/client/actions/prepareSign.js.map +1 -1
- package/dist/esm/client/actions/requestAccount.js +1 -1
- package/dist/esm/client/actions/requestAccount.js.map +1 -1
- package/dist/esm/client/client.e2e-test.js +171 -349
- package/dist/esm/client/client.e2e-test.js.map +1 -1
- package/dist/esm/client/index.d.ts +8 -6
- package/dist/esm/client/index.js +18 -18
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/{isomorphic/utils/createAccount.d.ts → internal/account.d.ts} +1 -5
- package/dist/esm/{isomorphic/utils/createAccount.js → internal/account.js} +8 -32
- package/dist/esm/internal/account.js.map +1 -0
- package/dist/esm/types.d.ts +4 -10
- package/dist/esm/types.js.map +1 -1
- package/dist/types/client/actions/getCallsStatus.d.ts +4 -3
- package/dist/types/client/actions/getCallsStatus.d.ts.map +1 -1
- package/dist/types/client/actions/grantPermissions.d.ts +5 -4
- package/dist/types/client/actions/grantPermissions.d.ts.map +1 -1
- package/dist/types/client/actions/prepareCalls.d.ts +4 -3
- package/dist/types/client/actions/prepareCalls.d.ts.map +1 -1
- package/dist/types/client/actions/prepareSign.d.ts +4 -3
- package/dist/types/client/actions/prepareSign.d.ts.map +1 -1
- package/dist/types/client/actions/requestAccount.d.ts.map +1 -1
- package/dist/types/client/index.d.ts +8 -6
- package/dist/types/client/index.d.ts.map +1 -1
- package/dist/types/{isomorphic/utils/createAccount.d.ts → internal/account.d.ts} +2 -6
- package/dist/types/internal/account.d.ts.map +1 -0
- package/dist/types/types.d.ts +4 -10
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +3 -8
- package/src/client/actions/getCallsStatus.ts +8 -6
- package/src/client/actions/grantPermissions.ts +41 -10
- package/src/client/actions/prepareCalls.ts +13 -8
- package/src/client/actions/prepareSign.ts +9 -6
- package/src/client/actions/requestAccount.ts +1 -1
- package/src/client/client.e2e-test.ts +208 -442
- package/src/client/index.ts +39 -30
- package/src/{isomorphic/utils/createAccount.ts → internal/account.ts} +9 -49
- package/src/types.ts +6 -17
- package/dist/esm/exports/internal.d.ts +0 -4
- package/dist/esm/exports/internal.js +0 -3
- package/dist/esm/exports/internal.js.map +0 -1
- package/dist/esm/isomorphic/actions/createSession.d.ts +0 -13
- package/dist/esm/isomorphic/actions/createSession.js +0 -94
- package/dist/esm/isomorphic/actions/createSession.js.map +0 -1
- package/dist/esm/isomorphic/actions/formatSign.d.ts +0 -8
- package/dist/esm/isomorphic/actions/formatSign.js +0 -42
- package/dist/esm/isomorphic/actions/formatSign.js.map +0 -1
- package/dist/esm/isomorphic/actions/getCallsStatus.d.ts +0 -7
- package/dist/esm/isomorphic/actions/getCallsStatus.js +0 -71
- package/dist/esm/isomorphic/actions/getCallsStatus.js.map +0 -1
- package/dist/esm/isomorphic/actions/prepareCalls.d.ts +0 -7
- package/dist/esm/isomorphic/actions/prepareCalls.js +0 -116
- package/dist/esm/isomorphic/actions/prepareCalls.js.map +0 -1
- package/dist/esm/isomorphic/actions/prepareSign.d.ts +0 -7
- package/dist/esm/isomorphic/actions/prepareSign.js +0 -49
- package/dist/esm/isomorphic/actions/prepareSign.js.map +0 -1
- package/dist/esm/isomorphic/actions/sendPreparedCalls.d.ts +0 -7
- package/dist/esm/isomorphic/actions/sendPreparedCalls.js +0 -183
- package/dist/esm/isomorphic/actions/sendPreparedCalls.js.map +0 -1
- package/dist/esm/isomorphic/client.d.ts +0 -275
- package/dist/esm/isomorphic/client.js +0 -41
- package/dist/esm/isomorphic/client.js.map +0 -1
- package/dist/esm/isomorphic/utils/7702.d.ts +0 -19
- package/dist/esm/isomorphic/utils/7702.js +0 -70
- package/dist/esm/isomorphic/utils/7702.js.map +0 -1
- 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 -15
- 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/types/exports/internal.d.ts +0 -5
- package/dist/types/exports/internal.d.ts.map +0 -1
- package/dist/types/isomorphic/actions/createSession.d.ts +0 -14
- package/dist/types/isomorphic/actions/createSession.d.ts.map +0 -1
- package/dist/types/isomorphic/actions/formatSign.d.ts +0 -9
- package/dist/types/isomorphic/actions/formatSign.d.ts.map +0 -1
- package/dist/types/isomorphic/actions/getCallsStatus.d.ts +0 -8
- package/dist/types/isomorphic/actions/getCallsStatus.d.ts.map +0 -1
- package/dist/types/isomorphic/actions/prepareCalls.d.ts +0 -8
- package/dist/types/isomorphic/actions/prepareCalls.d.ts.map +0 -1
- package/dist/types/isomorphic/actions/prepareSign.d.ts +0 -8
- package/dist/types/isomorphic/actions/prepareSign.d.ts.map +0 -1
- package/dist/types/isomorphic/actions/sendPreparedCalls.d.ts +0 -8
- package/dist/types/isomorphic/actions/sendPreparedCalls.d.ts.map +0 -1
- package/dist/types/isomorphic/client.d.ts +0 -276
- package/dist/types/isomorphic/client.d.ts.map +0 -1
- package/dist/types/isomorphic/utils/7702.d.ts +0 -20
- package/dist/types/isomorphic/utils/7702.d.ts.map +0 -1
- 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/src/exports/internal.ts +0 -8
- package/src/isomorphic/actions/createSession.ts +0 -163
- package/src/isomorphic/actions/formatSign.ts +0 -76
- package/src/isomorphic/actions/getCallsStatus.ts +0 -112
- package/src/isomorphic/actions/prepareCalls.ts +0 -172
- package/src/isomorphic/actions/prepareSign.ts +0 -88
- package/src/isomorphic/actions/sendPreparedCalls.ts +0 -271
- package/src/isomorphic/client.ts +0 -102
- package/src/isomorphic/utils/7702.ts +0 -135
- package/src/isomorphic/utils/createDummySigner.ts +0 -27
- package/src/isomorphic/utils/decodeSignature.ts +0 -21
- package/src/isomorphic/utils/parsePermissionsContext.ts +0 -51
- package/src/isomorphic/utils/supportsFeature.ts +0 -34
- package/src/local/client.ts +0 -136
- package/src/remote/client.ts +0 -67
package/src/local/client.ts
DELETED
|
@@ -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
|
-
};
|
package/src/remote/client.ts
DELETED
|
@@ -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
|
-
};
|