@wagmi/core 3.0.2 → 3.2.0
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/exports/internal.js.map +1 -1
- package/dist/esm/exports/query.js +1 -1
- package/dist/esm/exports/query.js.map +1 -1
- package/dist/esm/exports/tempo.js +9 -0
- package/dist/esm/exports/tempo.js.map +1 -0
- package/dist/esm/tempo/Connectors.js +534 -0
- package/dist/esm/tempo/Connectors.js.map +1 -0
- package/dist/esm/tempo/KeyManager.js +106 -0
- package/dist/esm/tempo/KeyManager.js.map +1 -0
- package/dist/esm/tempo/actions/amm.js +437 -0
- package/dist/esm/tempo/actions/amm.js.map +1 -0
- package/dist/esm/tempo/actions/dex.js +1059 -0
- package/dist/esm/tempo/actions/dex.js.map +1 -0
- package/dist/esm/tempo/actions/faucet.js +64 -0
- package/dist/esm/tempo/actions/faucet.js.map +1 -0
- package/dist/esm/tempo/actions/fee.js +160 -0
- package/dist/esm/tempo/actions/fee.js.map +1 -0
- package/dist/esm/tempo/actions/index.js +11 -0
- package/dist/esm/tempo/actions/index.js.map +1 -0
- package/dist/esm/tempo/actions/nonce.js +91 -0
- package/dist/esm/tempo/actions/nonce.js.map +1 -0
- package/dist/esm/tempo/actions/policy.js +532 -0
- package/dist/esm/tempo/actions/policy.js.map +1 -0
- package/dist/esm/tempo/actions/reward.js +384 -0
- package/dist/esm/tempo/actions/reward.js.map +1 -0
- package/dist/esm/tempo/actions/token.js +1717 -0
- package/dist/esm/tempo/actions/token.js.map +1 -0
- package/dist/esm/tempo/actions/utils.js +2 -0
- package/dist/esm/tempo/actions/utils.js.map +1 -0
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/exports/internal.d.ts +1 -1
- package/dist/types/exports/internal.d.ts.map +1 -1
- package/dist/types/exports/query.d.ts +1 -1
- package/dist/types/exports/query.d.ts.map +1 -1
- package/dist/types/exports/tempo.d.ts +5 -0
- package/dist/types/exports/tempo.d.ts.map +1 -0
- package/dist/types/tempo/Connectors.d.ts +99 -0
- package/dist/types/tempo/Connectors.d.ts.map +1 -0
- package/dist/types/tempo/KeyManager.d.ts +71 -0
- package/dist/types/tempo/KeyManager.d.ts.map +1 -0
- package/dist/types/tempo/actions/amm.d.ts +387 -0
- package/dist/types/tempo/actions/amm.d.ts.map +1 -0
- package/dist/types/tempo/actions/dex.d.ts +926 -0
- package/dist/types/tempo/actions/dex.d.ts.map +1 -0
- package/dist/types/tempo/actions/faucet.d.ts +70 -0
- package/dist/types/tempo/actions/faucet.d.ts.map +1 -0
- package/dist/types/tempo/actions/fee.d.ts +141 -0
- package/dist/types/tempo/actions/fee.d.ts.map +1 -0
- package/dist/types/tempo/actions/index.d.ts +10 -0
- package/dist/types/tempo/actions/index.d.ts.map +1 -0
- package/dist/types/tempo/actions/nonce.d.ts +79 -0
- package/dist/types/tempo/actions/nonce.d.ts.map +1 -0
- package/dist/types/tempo/actions/policy.d.ts +478 -0
- package/dist/types/tempo/actions/policy.d.ts.map +1 -0
- package/dist/types/tempo/actions/reward.d.ts +340 -0
- package/dist/types/tempo/actions/reward.d.ts.map +1 -0
- package/dist/types/tempo/actions/token.d.ts +1531 -0
- package/dist/types/tempo/actions/token.d.ts.map +1 -0
- package/dist/types/tempo/actions/utils.d.ts +9 -0
- package/dist/types/tempo/actions/utils.d.ts.map +1 -0
- package/dist/types/types/utils.d.ts +16 -0
- package/dist/types/types/utils.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +14 -2
- package/src/exports/internal.ts +3 -0
- package/src/exports/query.ts +4 -1
- package/src/exports/tempo.ts +14 -0
- package/src/tempo/Connectors.ts +762 -0
- package/src/tempo/KeyManager.ts +176 -0
- package/src/tempo/actions/amm.ts +678 -0
- package/src/tempo/actions/dex.ts +1685 -0
- package/src/tempo/actions/faucet.ts +95 -0
- package/src/tempo/actions/fee.ts +259 -0
- package/src/tempo/actions/index.ts +10 -0
- package/src/tempo/actions/nonce.ts +147 -0
- package/src/tempo/actions/policy.ts +827 -0
- package/src/tempo/actions/reward.ts +624 -0
- package/src/tempo/actions/token.ts +2598 -0
- package/src/tempo/actions/utils.ts +26 -0
- package/src/types/utils.ts +19 -0
- package/src/version.ts +1 -1
- package/tempo/package.json +5 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/exports/internal.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,gEAAgE;AAChE,OAAO,EAGL,WAAW,GACZ,MAAM,2BAA2B,CAAA;AAElC,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,OAAO,EACL,aAAa,EACb,OAAO,GAER,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/exports/internal.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,gEAAgE;AAChE,OAAO,EAGL,WAAW,GACZ,MAAM,2BAA2B,CAAA;AAElC,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,OAAO,EACL,aAAa,EACb,OAAO,GAER,MAAM,qBAAqB,CAAA;AA8B5B,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -48,7 +48,7 @@ export { switchChainMutationOptions, } from '../query/switchChain.js';
|
|
|
48
48
|
export {
|
|
49
49
|
/** @deprecated use `switchConnectionMutationOptions` instead */
|
|
50
50
|
switchConnectionMutationOptions as switchAccountMutationOptions, switchConnectionMutationOptions, } from '../query/switchConnection.js';
|
|
51
|
-
export { hashFn, structuralSharing } from '../query/utils.js';
|
|
51
|
+
export { hashFn, structuralSharing, } from '../query/utils.js';
|
|
52
52
|
export { verifyMessageQueryKey, verifyMessageQueryOptions, } from '../query/verifyMessage.js';
|
|
53
53
|
export { verifyTypedDataQueryKey, verifyTypedDataQueryOptions, } from '../query/verifyTypedData.js';
|
|
54
54
|
export { waitForCallsStatusQueryKey, waitForCallsStatusQueryOptions, } from '../query/waitForCallsStatus.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/exports/query.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/exports/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
2
|
+
// Tempo
|
|
3
|
+
////////////////////////////////////////////////////////////////////////////////
|
|
4
|
+
/** biome-ignore-all lint/performance/noReExportAll: entrypoint */
|
|
5
|
+
// biome-ignore lint/performance/noBarrelFile: entrypoint module
|
|
6
|
+
export * as Actions from '../tempo/actions/index.js';
|
|
7
|
+
export { dangerous_secp256k1, webAuthn, } from '../tempo/Connectors.js';
|
|
8
|
+
export * as KeyManager from '../tempo/KeyManager.js';
|
|
9
|
+
//# sourceMappingURL=tempo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tempo.js","sourceRoot":"","sources":["../../../src/exports/tempo.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,QAAQ;AACR,gFAAgF;AAEhF,kEAAkE;AAClE,gEAAgE;AAChE,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAEL,mBAAmB,EAEnB,QAAQ,GACT,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,534 @@
|
|
|
1
|
+
import * as Address from 'ox/Address';
|
|
2
|
+
import * as PublicKey from 'ox/PublicKey';
|
|
3
|
+
import { KeyAuthorization, SignatureEnvelope } from 'ox/tempo';
|
|
4
|
+
import { createClient, defineChain, getAddress, SwitchChainError, } from 'viem';
|
|
5
|
+
import { generatePrivateKey, privateKeyToAccount, } from 'viem/accounts';
|
|
6
|
+
import { Account, WebAuthnP256, WebCryptoP256, walletNamespaceCompat, } from 'viem/tempo';
|
|
7
|
+
import { createConnector } from '../connectors/createConnector.js';
|
|
8
|
+
import { ChainNotConfiguredError } from '../errors/config.js';
|
|
9
|
+
webAuthn.type = 'webAuthn';
|
|
10
|
+
/**
|
|
11
|
+
* Connector for a WebAuthn EOA.
|
|
12
|
+
*/
|
|
13
|
+
export function webAuthn(options) {
|
|
14
|
+
let account;
|
|
15
|
+
let accessKey;
|
|
16
|
+
const defaultAccessKeyOptions = {
|
|
17
|
+
expiry: Math.floor((Date.now() + 24 * 60 * 60 * 1000) / 1000),
|
|
18
|
+
strict: false,
|
|
19
|
+
};
|
|
20
|
+
const accessKeyOptions = (() => {
|
|
21
|
+
if (typeof options.grantAccessKey === 'object')
|
|
22
|
+
return { ...defaultAccessKeyOptions, ...options.grantAccessKey };
|
|
23
|
+
if (options.grantAccessKey === true)
|
|
24
|
+
return defaultAccessKeyOptions;
|
|
25
|
+
return undefined;
|
|
26
|
+
})();
|
|
27
|
+
return createConnector((config) => ({
|
|
28
|
+
id: 'webAuthn',
|
|
29
|
+
name: 'EOA (WebAuthn)',
|
|
30
|
+
type: 'webAuthn',
|
|
31
|
+
async setup() {
|
|
32
|
+
const credential = await config.storage?.getItem('webAuthn.activeCredential');
|
|
33
|
+
if (!credential)
|
|
34
|
+
return;
|
|
35
|
+
account = Account.fromWebAuthnP256(credential);
|
|
36
|
+
},
|
|
37
|
+
async connect(parameters = {}) {
|
|
38
|
+
const capabilities = 'capabilities' in parameters ? (parameters.capabilities ?? {}) : {};
|
|
39
|
+
if (accessKeyOptions?.strict &&
|
|
40
|
+
accessKeyOptions.expiry &&
|
|
41
|
+
accessKeyOptions.expiry < Date.now() / 1000)
|
|
42
|
+
throw new Error(`\`grantAccessKey.expiry = ${accessKeyOptions.expiry}\` is in the past (${new Date(accessKeyOptions.expiry * 1000).toLocaleString()}). Please provide a valid expiry.`);
|
|
43
|
+
// We are going to need to find:
|
|
44
|
+
// - a WebAuthn `credential` to instantiate an account
|
|
45
|
+
// - optionally, a `keyPair` to use as the access key for the account
|
|
46
|
+
// - optionally, a signed `keyAuthorization` to provision the access key
|
|
47
|
+
const { credential, keyAuthorization, keyPair } = await (async () => {
|
|
48
|
+
// If the connection type is of "sign-up", we are going to create a new credential
|
|
49
|
+
// and provision an access key (if needed).
|
|
50
|
+
if (capabilities.type === 'sign-up') {
|
|
51
|
+
// Create credential (sign up)
|
|
52
|
+
const createOptions_remote = await options.keyManager.getChallenge?.();
|
|
53
|
+
const label = capabilities.label ??
|
|
54
|
+
options.createOptions?.label ??
|
|
55
|
+
new Date().toISOString();
|
|
56
|
+
const rpId = createOptions_remote?.rp?.id ??
|
|
57
|
+
options.createOptions?.rpId ??
|
|
58
|
+
options.rpId;
|
|
59
|
+
const credential = await WebAuthnP256.createCredential({
|
|
60
|
+
...(options.createOptions ?? {}),
|
|
61
|
+
label,
|
|
62
|
+
rpId,
|
|
63
|
+
...(createOptions_remote ?? {}),
|
|
64
|
+
});
|
|
65
|
+
await options.keyManager.setPublicKey({
|
|
66
|
+
credential: credential.raw,
|
|
67
|
+
publicKey: credential.publicKey,
|
|
68
|
+
});
|
|
69
|
+
// Get key pair (access key) to use for the account.
|
|
70
|
+
const keyPair = await (async () => {
|
|
71
|
+
if (!accessKeyOptions)
|
|
72
|
+
return undefined;
|
|
73
|
+
return await WebCryptoP256.createKeyPair();
|
|
74
|
+
})();
|
|
75
|
+
return { credential, keyPair };
|
|
76
|
+
}
|
|
77
|
+
// If we are not selecting an account, we will check if an active credential is present in
|
|
78
|
+
// storage and if so, we will use it to instantiate an account.
|
|
79
|
+
if (!capabilities.selectAccount) {
|
|
80
|
+
const credential = (await config.storage?.getItem('webAuthn.activeCredential'));
|
|
81
|
+
if (credential) {
|
|
82
|
+
// Get key pair (access key) to use for the account.
|
|
83
|
+
const keyPair = await (async () => {
|
|
84
|
+
if (!accessKeyOptions)
|
|
85
|
+
return undefined;
|
|
86
|
+
const address = Address.fromPublicKey(PublicKey.fromHex(credential.publicKey));
|
|
87
|
+
return await idb.get(`accessKey:${address}`);
|
|
88
|
+
})();
|
|
89
|
+
// If the access key provisioning is not in strict mode, return the credential and key pair (if exists).
|
|
90
|
+
if (!accessKeyOptions?.strict)
|
|
91
|
+
return { credential, keyPair };
|
|
92
|
+
// If a key pair is found, return the credential and key pair.
|
|
93
|
+
if (keyPair)
|
|
94
|
+
return { credential, keyPair };
|
|
95
|
+
// If we are reconnecting, throw an error if not found.
|
|
96
|
+
if (parameters.isReconnecting)
|
|
97
|
+
throw new Error('credential not found.');
|
|
98
|
+
// Otherwise, we want to continue to sign up or register against new key pair.
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Discover credential
|
|
102
|
+
{
|
|
103
|
+
// Get key pair (access key) to use for the account.
|
|
104
|
+
const keyPair = await (async () => {
|
|
105
|
+
if (!accessKeyOptions)
|
|
106
|
+
return undefined;
|
|
107
|
+
return await WebCryptoP256.createKeyPair();
|
|
108
|
+
})();
|
|
109
|
+
// If we are provisioning an access key, we will need to sign a key authorization.
|
|
110
|
+
// We will need the hash (digest) to sign, and the address of the access key to construct the key authorization.
|
|
111
|
+
const { hash, keyAuthorization_unsigned } = await (async () => {
|
|
112
|
+
if (!keyPair)
|
|
113
|
+
return { accessKeyAddress: undefined, hash: undefined };
|
|
114
|
+
const accessKeyAddress = Address.fromPublicKey(keyPair.publicKey);
|
|
115
|
+
const keyAuthorization_unsigned = KeyAuthorization.from({
|
|
116
|
+
...accessKeyOptions,
|
|
117
|
+
address: accessKeyAddress,
|
|
118
|
+
type: 'p256',
|
|
119
|
+
});
|
|
120
|
+
const hash = KeyAuthorization.getSignPayload(keyAuthorization_unsigned);
|
|
121
|
+
return { keyAuthorization_unsigned, hash };
|
|
122
|
+
})();
|
|
123
|
+
// If no active credential, we will attempt to load the last active credential from storage.
|
|
124
|
+
const lastActiveCredential = !capabilities.selectAccount
|
|
125
|
+
? await config.storage?.getItem('webAuthn.lastActiveCredential')
|
|
126
|
+
: undefined;
|
|
127
|
+
const credential = await WebAuthnP256.getCredential({
|
|
128
|
+
...(options.getOptions ?? {}),
|
|
129
|
+
credentialId: lastActiveCredential?.id,
|
|
130
|
+
async getPublicKey(credential) {
|
|
131
|
+
const publicKey = await options.keyManager.getPublicKey({
|
|
132
|
+
credential,
|
|
133
|
+
});
|
|
134
|
+
if (!publicKey)
|
|
135
|
+
throw new Error('publicKey not found.');
|
|
136
|
+
return publicKey;
|
|
137
|
+
},
|
|
138
|
+
hash,
|
|
139
|
+
rpId: options.getOptions?.rpId ?? options.rpId,
|
|
140
|
+
});
|
|
141
|
+
const keyAuthorization = keyAuthorization_unsigned
|
|
142
|
+
? KeyAuthorization.from({
|
|
143
|
+
...keyAuthorization_unsigned,
|
|
144
|
+
signature: SignatureEnvelope.from({
|
|
145
|
+
metadata: credential.metadata,
|
|
146
|
+
signature: credential.signature,
|
|
147
|
+
publicKey: PublicKey.fromHex(credential.publicKey),
|
|
148
|
+
type: 'webAuthn',
|
|
149
|
+
}),
|
|
150
|
+
})
|
|
151
|
+
: undefined;
|
|
152
|
+
return { credential, keyAuthorization, keyPair };
|
|
153
|
+
}
|
|
154
|
+
})();
|
|
155
|
+
config.storage?.setItem('webAuthn.lastActiveCredential', normalizeValue(credential));
|
|
156
|
+
config.storage?.setItem('webAuthn.activeCredential', normalizeValue(credential));
|
|
157
|
+
account = Account.fromWebAuthnP256(credential);
|
|
158
|
+
if (keyPair) {
|
|
159
|
+
accessKey = Account.fromWebCryptoP256(keyPair, {
|
|
160
|
+
access: account,
|
|
161
|
+
});
|
|
162
|
+
// If we are reconnecting, check if the access key is expired.
|
|
163
|
+
if (parameters.isReconnecting) {
|
|
164
|
+
if ('keyAuthorization' in keyPair &&
|
|
165
|
+
keyPair.keyAuthorization.expiry &&
|
|
166
|
+
keyPair.keyAuthorization.expiry < Date.now() / 1000) {
|
|
167
|
+
// remove any pending key authorizations from storage.
|
|
168
|
+
await config?.storage?.removeItem(`pendingKeyAuthorization:${account.address.toLowerCase()}`);
|
|
169
|
+
const message = `Access key expired (on ${new Date(keyPair.keyAuthorization.expiry * 1000).toLocaleString()}).`;
|
|
170
|
+
accessKey = undefined;
|
|
171
|
+
// if in strict mode, disconnect and throw an error.
|
|
172
|
+
if (accessKeyOptions?.strict) {
|
|
173
|
+
await this.disconnect();
|
|
174
|
+
throw new Error(message);
|
|
175
|
+
}
|
|
176
|
+
// otherwise, fall back to the root account.
|
|
177
|
+
// biome-ignore lint/suspicious/noConsole: notify
|
|
178
|
+
console.warn(`${message} Falling back to passkey.`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// If we are not reconnecting, orchestrate the provisioning of the access key.
|
|
182
|
+
else {
|
|
183
|
+
const keyAuth = keyAuthorization ??
|
|
184
|
+
(await account.signKeyAuthorization(accessKey, accessKeyOptions));
|
|
185
|
+
await config?.storage?.setItem(`pendingKeyAuthorization:${account.address.toLowerCase()}`, keyAuth);
|
|
186
|
+
await idb.set(`accessKey:${account.address.toLowerCase()}`, {
|
|
187
|
+
...keyPair,
|
|
188
|
+
keyAuthorization: keyAuth,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
// If we are granting an access key and it is in strict mode, throw an error if the access key is not provisioned.
|
|
192
|
+
}
|
|
193
|
+
else if (accessKeyOptions?.strict) {
|
|
194
|
+
await config.storage?.removeItem('webAuthn.activeCredential');
|
|
195
|
+
throw new Error('access key not found');
|
|
196
|
+
}
|
|
197
|
+
const address = getAddress(account.address);
|
|
198
|
+
const chainId = parameters.chainId ?? config.chains[0]?.id;
|
|
199
|
+
if (!chainId)
|
|
200
|
+
throw new ChainNotConfiguredError();
|
|
201
|
+
return {
|
|
202
|
+
accounts: (parameters.withCapabilities
|
|
203
|
+
? [{ address }]
|
|
204
|
+
: [address]),
|
|
205
|
+
chainId,
|
|
206
|
+
};
|
|
207
|
+
},
|
|
208
|
+
async disconnect() {
|
|
209
|
+
await config.storage?.removeItem('webAuthn.activeCredential');
|
|
210
|
+
config.emitter.emit('disconnect');
|
|
211
|
+
account = undefined;
|
|
212
|
+
},
|
|
213
|
+
async getAccounts() {
|
|
214
|
+
if (!account)
|
|
215
|
+
return [];
|
|
216
|
+
return [getAddress(account.address)];
|
|
217
|
+
},
|
|
218
|
+
async getChainId() {
|
|
219
|
+
return config.chains[0]?.id;
|
|
220
|
+
},
|
|
221
|
+
async isAuthorized() {
|
|
222
|
+
try {
|
|
223
|
+
const accounts = await this.getAccounts();
|
|
224
|
+
return !!accounts.length;
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
// biome-ignore lint/suspicious/noConsole: notify
|
|
228
|
+
console.error('Connector.webAuthn: Failed to check authorization', error);
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
async switchChain({ chainId }) {
|
|
233
|
+
const chain = config.chains.find((chain) => chain.id === chainId);
|
|
234
|
+
if (!chain)
|
|
235
|
+
throw new SwitchChainError(new ChainNotConfiguredError());
|
|
236
|
+
return chain;
|
|
237
|
+
},
|
|
238
|
+
onAccountsChanged() { },
|
|
239
|
+
onChainChanged(chain) {
|
|
240
|
+
const chainId = Number(chain);
|
|
241
|
+
config.emitter.emit('change', { chainId });
|
|
242
|
+
},
|
|
243
|
+
async onDisconnect() {
|
|
244
|
+
config.emitter.emit('disconnect');
|
|
245
|
+
account = undefined;
|
|
246
|
+
},
|
|
247
|
+
async getClient({ chainId } = {}) {
|
|
248
|
+
const chain = config.chains.find((x) => x.id === chainId) ?? config.chains[0];
|
|
249
|
+
if (!chain)
|
|
250
|
+
throw new ChainNotConfiguredError();
|
|
251
|
+
const transports = config.transports;
|
|
252
|
+
if (!transports)
|
|
253
|
+
throw new ChainNotConfiguredError();
|
|
254
|
+
const transport = transports[chain.id];
|
|
255
|
+
if (!transport)
|
|
256
|
+
throw new ChainNotConfiguredError();
|
|
257
|
+
const targetAccount = await (async () => {
|
|
258
|
+
if (!accessKey)
|
|
259
|
+
return account;
|
|
260
|
+
const item = await idb.get(`accessKey:${accessKey.address.toLowerCase()}`);
|
|
261
|
+
if (item?.keyAuthorization.expiry &&
|
|
262
|
+
item.keyAuthorization.expiry < Date.now() / 1000) {
|
|
263
|
+
// remove any pending key authorizations from storage.
|
|
264
|
+
await config?.storage?.removeItem(`pendingKeyAuthorization:${accessKey.address.toLowerCase()}`);
|
|
265
|
+
const message = `Access key expired (on ${new Date(item.keyAuthorization.expiry * 1000).toLocaleString()}).`;
|
|
266
|
+
// if in strict mode, disconnect and throw an error.
|
|
267
|
+
if (accessKeyOptions?.strict) {
|
|
268
|
+
await this.disconnect();
|
|
269
|
+
throw new Error(message);
|
|
270
|
+
}
|
|
271
|
+
// otherwise, fall back to the root account.
|
|
272
|
+
// biome-ignore lint/suspicious/noConsole: notify
|
|
273
|
+
console.warn(`${message} Falling back to passkey.`);
|
|
274
|
+
return account;
|
|
275
|
+
}
|
|
276
|
+
return accessKey;
|
|
277
|
+
})();
|
|
278
|
+
if (!targetAccount)
|
|
279
|
+
throw new Error('account not found.');
|
|
280
|
+
const targetChain = defineChain({
|
|
281
|
+
...chain,
|
|
282
|
+
async prepareTransactionRequest(args, { phase }) {
|
|
283
|
+
const keyAuthorization = await (async () => {
|
|
284
|
+
{
|
|
285
|
+
const keyAuthorization = args.keyAuthorization;
|
|
286
|
+
if (keyAuthorization)
|
|
287
|
+
return keyAuthorization;
|
|
288
|
+
}
|
|
289
|
+
const keyAuthorization = await config.storage?.getItem(`pendingKeyAuthorization:${targetAccount?.address.toLowerCase()}`);
|
|
290
|
+
await config.storage?.removeItem(`pendingKeyAuthorization:${targetAccount?.address.toLowerCase()}`);
|
|
291
|
+
return keyAuthorization;
|
|
292
|
+
})();
|
|
293
|
+
const [prepareTransactionRequestFn, options] = (() => {
|
|
294
|
+
if (!chain.prepareTransactionRequest)
|
|
295
|
+
return [undefined, undefined];
|
|
296
|
+
if (typeof chain.prepareTransactionRequest === 'function')
|
|
297
|
+
return [chain.prepareTransactionRequest, undefined];
|
|
298
|
+
return chain.prepareTransactionRequest;
|
|
299
|
+
})();
|
|
300
|
+
const request = await (async () => {
|
|
301
|
+
if (!prepareTransactionRequestFn)
|
|
302
|
+
return {};
|
|
303
|
+
if (!options || options?.runAt?.includes(phase))
|
|
304
|
+
return await prepareTransactionRequestFn(args, { phase });
|
|
305
|
+
return {};
|
|
306
|
+
})();
|
|
307
|
+
return {
|
|
308
|
+
...args,
|
|
309
|
+
...request,
|
|
310
|
+
keyAuthorization,
|
|
311
|
+
};
|
|
312
|
+
},
|
|
313
|
+
});
|
|
314
|
+
return createClient({
|
|
315
|
+
account: targetAccount,
|
|
316
|
+
chain: targetChain,
|
|
317
|
+
transport: walletNamespaceCompat(transport, {
|
|
318
|
+
account: targetAccount,
|
|
319
|
+
}),
|
|
320
|
+
});
|
|
321
|
+
},
|
|
322
|
+
async getProvider({ chainId } = {}) {
|
|
323
|
+
const { request } = await this.getClient({ chainId });
|
|
324
|
+
return { request };
|
|
325
|
+
},
|
|
326
|
+
}));
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Normalizes a value into a structured-clone compatible format.
|
|
330
|
+
*
|
|
331
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Window/structuredClone
|
|
332
|
+
*/
|
|
333
|
+
function normalizeValue(value) {
|
|
334
|
+
if (Array.isArray(value))
|
|
335
|
+
return value.map(normalizeValue);
|
|
336
|
+
if (typeof value === 'function')
|
|
337
|
+
return undefined;
|
|
338
|
+
if (typeof value !== 'object' || value === null)
|
|
339
|
+
return value;
|
|
340
|
+
if (Object.getPrototypeOf(value) !== Object.prototype)
|
|
341
|
+
try {
|
|
342
|
+
return structuredClone(value);
|
|
343
|
+
}
|
|
344
|
+
catch {
|
|
345
|
+
return undefined;
|
|
346
|
+
}
|
|
347
|
+
const normalized = {};
|
|
348
|
+
for (const [k, v] of Object.entries(value))
|
|
349
|
+
normalized[k] = normalizeValue(v);
|
|
350
|
+
return normalized;
|
|
351
|
+
}
|
|
352
|
+
// Based on `idb-keyval`
|
|
353
|
+
// https://github.com/jakearchibald/idb-keyval
|
|
354
|
+
let defaultGetStoreFunc;
|
|
355
|
+
const idb = {
|
|
356
|
+
/**
|
|
357
|
+
* Get a value by its key.
|
|
358
|
+
*
|
|
359
|
+
* @param key
|
|
360
|
+
* @param customStore Method to get a custom store. Use with caution (see the docs).
|
|
361
|
+
*/
|
|
362
|
+
get(key) {
|
|
363
|
+
return this.defaultGetStore()('readonly', (store) => this.promisifyRequest(store.get(key)));
|
|
364
|
+
},
|
|
365
|
+
/**
|
|
366
|
+
* Set a value with a key.
|
|
367
|
+
*
|
|
368
|
+
* @param key
|
|
369
|
+
* @param value
|
|
370
|
+
* @param customStore Method to get a custom store. Use with caution (see the docs).
|
|
371
|
+
*/
|
|
372
|
+
set(key, value) {
|
|
373
|
+
return this.defaultGetStore()('readwrite', (store) => {
|
|
374
|
+
store.put(value, key);
|
|
375
|
+
return this.promisifyRequest(store.transaction);
|
|
376
|
+
});
|
|
377
|
+
},
|
|
378
|
+
defaultGetStore() {
|
|
379
|
+
if (!defaultGetStoreFunc)
|
|
380
|
+
defaultGetStoreFunc = this.createStore('keyval-store', 'keyval');
|
|
381
|
+
return defaultGetStoreFunc;
|
|
382
|
+
},
|
|
383
|
+
createStore(dbName, storeName) {
|
|
384
|
+
let dbp;
|
|
385
|
+
const getDB = () => {
|
|
386
|
+
if (dbp)
|
|
387
|
+
return dbp;
|
|
388
|
+
const request = indexedDB.open(dbName);
|
|
389
|
+
request.onupgradeneeded = () => request.result.createObjectStore(storeName);
|
|
390
|
+
dbp = this.promisifyRequest(request);
|
|
391
|
+
dbp.then((db) => {
|
|
392
|
+
// It seems like Safari sometimes likes to just close the connection.
|
|
393
|
+
// It's supposed to fire this event when that happens. Let's hope it does!
|
|
394
|
+
db.onclose = () => {
|
|
395
|
+
dbp = undefined;
|
|
396
|
+
};
|
|
397
|
+
}, () => { });
|
|
398
|
+
return dbp;
|
|
399
|
+
};
|
|
400
|
+
return (txMode, callback) => getDB().then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName)));
|
|
401
|
+
},
|
|
402
|
+
promisifyRequest(request) {
|
|
403
|
+
return new Promise((resolve, reject) => {
|
|
404
|
+
// @ts-ignore - file size hacks
|
|
405
|
+
request.oncomplete = request.onsuccess = () => resolve(request.result);
|
|
406
|
+
// @ts-ignore - file size hacks
|
|
407
|
+
request.onabort = request.onerror = () => reject(request.error);
|
|
408
|
+
});
|
|
409
|
+
},
|
|
410
|
+
};
|
|
411
|
+
dangerous_secp256k1.type = 'dangerous_secp256k1';
|
|
412
|
+
/**
|
|
413
|
+
* Connector for a Secp256k1 EOA.
|
|
414
|
+
*
|
|
415
|
+
* WARNING: NOT RECOMMENDED FOR PRODUCTION USAGE.
|
|
416
|
+
* This connector stores private keys in clear text, and are bound to the session
|
|
417
|
+
* length of the storage used.
|
|
418
|
+
*/
|
|
419
|
+
export function dangerous_secp256k1(options = {}) {
|
|
420
|
+
let account;
|
|
421
|
+
return createConnector((config) => ({
|
|
422
|
+
id: 'secp256k1',
|
|
423
|
+
name: 'EOA (Secp256k1)',
|
|
424
|
+
type: 'secp256k1',
|
|
425
|
+
async setup() {
|
|
426
|
+
const address = await config.storage?.getItem('secp256k1.activeAddress');
|
|
427
|
+
const privateKey = await config.storage?.getItem(`secp256k1.${address}.privateKey`);
|
|
428
|
+
if (privateKey)
|
|
429
|
+
account = privateKeyToAccount(privateKey);
|
|
430
|
+
else if (address &&
|
|
431
|
+
options.account &&
|
|
432
|
+
Address.isEqual(address, options.account.address))
|
|
433
|
+
account = options.account;
|
|
434
|
+
},
|
|
435
|
+
async connect(parameters = {}) {
|
|
436
|
+
const address = await (async () => {
|
|
437
|
+
if ('capabilities' in parameters &&
|
|
438
|
+
parameters.capabilities?.type === 'sign-up') {
|
|
439
|
+
const privateKey = generatePrivateKey();
|
|
440
|
+
const account = privateKeyToAccount(privateKey);
|
|
441
|
+
const address = account.address;
|
|
442
|
+
await config.storage?.setItem(`secp256k1.${address}.privateKey`, privateKey);
|
|
443
|
+
await config.storage?.setItem('secp256k1.activeAddress', address);
|
|
444
|
+
await config.storage?.setItem('secp256k1.lastActiveAddress', address);
|
|
445
|
+
return address;
|
|
446
|
+
}
|
|
447
|
+
const address = await config.storage?.getItem('secp256k1.lastActiveAddress');
|
|
448
|
+
const privateKey = await config.storage?.getItem(`secp256k1.${address}.privateKey`);
|
|
449
|
+
if (privateKey)
|
|
450
|
+
account = privateKeyToAccount(privateKey);
|
|
451
|
+
else if (options.account) {
|
|
452
|
+
account = options.account;
|
|
453
|
+
await config.storage?.setItem('secp256k1.lastActiveAddress', account.address);
|
|
454
|
+
}
|
|
455
|
+
if (!account)
|
|
456
|
+
throw new Error('account not found.');
|
|
457
|
+
await config.storage?.setItem('secp256k1.activeAddress', account.address);
|
|
458
|
+
return account.address;
|
|
459
|
+
})();
|
|
460
|
+
const chainId = parameters.chainId ?? config.chains[0]?.id;
|
|
461
|
+
if (!chainId)
|
|
462
|
+
throw new ChainNotConfiguredError();
|
|
463
|
+
return {
|
|
464
|
+
accounts: (parameters.withCapabilities
|
|
465
|
+
? [{ address }]
|
|
466
|
+
: [address]),
|
|
467
|
+
chainId,
|
|
468
|
+
};
|
|
469
|
+
},
|
|
470
|
+
async disconnect() {
|
|
471
|
+
await config.storage?.removeItem('secp256k1.activeAddress');
|
|
472
|
+
account = undefined;
|
|
473
|
+
},
|
|
474
|
+
async getAccounts() {
|
|
475
|
+
if (!account)
|
|
476
|
+
return [];
|
|
477
|
+
return [getAddress(account.address)];
|
|
478
|
+
},
|
|
479
|
+
async getChainId() {
|
|
480
|
+
return config.chains[0]?.id;
|
|
481
|
+
},
|
|
482
|
+
async isAuthorized() {
|
|
483
|
+
try {
|
|
484
|
+
const accounts = await this.getAccounts();
|
|
485
|
+
return !!accounts.length;
|
|
486
|
+
}
|
|
487
|
+
catch (error) {
|
|
488
|
+
// biome-ignore lint/suspicious/noConsole: notify
|
|
489
|
+
console.error('Connector.secp256k1: Failed to check authorization', error);
|
|
490
|
+
return false;
|
|
491
|
+
}
|
|
492
|
+
},
|
|
493
|
+
async switchChain({ chainId }) {
|
|
494
|
+
const chain = config.chains.find((chain) => chain.id === chainId);
|
|
495
|
+
if (!chain)
|
|
496
|
+
throw new SwitchChainError(new ChainNotConfiguredError());
|
|
497
|
+
return chain;
|
|
498
|
+
},
|
|
499
|
+
onAccountsChanged() { },
|
|
500
|
+
onChainChanged(chain) {
|
|
501
|
+
const chainId = Number(chain);
|
|
502
|
+
config.emitter.emit('change', { chainId });
|
|
503
|
+
},
|
|
504
|
+
async onDisconnect() {
|
|
505
|
+
config.emitter.emit('disconnect');
|
|
506
|
+
account = undefined;
|
|
507
|
+
},
|
|
508
|
+
async getClient({ chainId } = {}) {
|
|
509
|
+
const chain = config.chains.find((x) => x.id === chainId) ?? config.chains[0];
|
|
510
|
+
if (!chain)
|
|
511
|
+
throw new ChainNotConfiguredError();
|
|
512
|
+
const transports = config.transports;
|
|
513
|
+
if (!transports)
|
|
514
|
+
throw new ChainNotConfiguredError();
|
|
515
|
+
const transport = transports[chain.id];
|
|
516
|
+
if (!transport)
|
|
517
|
+
throw new ChainNotConfiguredError();
|
|
518
|
+
if (!account)
|
|
519
|
+
throw new Error('account not found.');
|
|
520
|
+
return createClient({
|
|
521
|
+
account,
|
|
522
|
+
chain,
|
|
523
|
+
transport: walletNamespaceCompat(transport, {
|
|
524
|
+
account,
|
|
525
|
+
}),
|
|
526
|
+
});
|
|
527
|
+
},
|
|
528
|
+
async getProvider({ chainId } = {}) {
|
|
529
|
+
const { request } = await this.getClient({ chainId });
|
|
530
|
+
return { request };
|
|
531
|
+
},
|
|
532
|
+
}));
|
|
533
|
+
}
|
|
534
|
+
//# sourceMappingURL=Connectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Connectors.js","sourceRoot":"","sources":["../../../src/tempo/Connectors.ts"],"names":[],"mappings":"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"}
|