@0xsequence/wallet-wdk 0.0.0-20250520201059
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/.env.test +3 -0
- package/.turbo/turbo-build.log +5 -0
- package/CHANGELOG.md +11 -0
- package/LICENSE +202 -0
- package/dist/dbs/auth-commitments.d.ts +17 -0
- package/dist/dbs/auth-commitments.d.ts.map +1 -0
- package/dist/dbs/auth-commitments.js +13 -0
- package/dist/dbs/auth-keys.d.ts +19 -0
- package/dist/dbs/auth-keys.d.ts.map +1 -0
- package/dist/dbs/auth-keys.js +67 -0
- package/dist/dbs/generic.d.ts +33 -0
- package/dist/dbs/generic.d.ts.map +1 -0
- package/dist/dbs/generic.js +170 -0
- package/dist/dbs/index.d.ts +12 -0
- package/dist/dbs/index.d.ts.map +1 -0
- package/dist/dbs/index.js +8 -0
- package/dist/dbs/messages.d.ts +6 -0
- package/dist/dbs/messages.d.ts.map +1 -0
- package/dist/dbs/messages.js +13 -0
- package/dist/dbs/recovery.d.ts +6 -0
- package/dist/dbs/recovery.d.ts.map +1 -0
- package/dist/dbs/recovery.js +13 -0
- package/dist/dbs/signatures.d.ts +6 -0
- package/dist/dbs/signatures.d.ts.map +1 -0
- package/dist/dbs/signatures.js +13 -0
- package/dist/dbs/transactions.d.ts +6 -0
- package/dist/dbs/transactions.d.ts.map +1 -0
- package/dist/dbs/transactions.js +13 -0
- package/dist/dbs/wallets.d.ts +6 -0
- package/dist/dbs/wallets.d.ts.map +1 -0
- package/dist/dbs/wallets.js +13 -0
- package/dist/identity/signer.d.ts +17 -0
- package/dist/identity/signer.d.ts.map +1 -0
- package/dist/identity/signer.js +58 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/sequence/cron.d.ts +19 -0
- package/dist/sequence/cron.d.ts.map +1 -0
- package/dist/sequence/cron.js +118 -0
- package/dist/sequence/devices.d.ts +14 -0
- package/dist/sequence/devices.d.ts.map +1 -0
- package/dist/sequence/devices.js +43 -0
- package/dist/sequence/handlers/authcode-pkce.d.ts +14 -0
- package/dist/sequence/handlers/authcode-pkce.d.ts.map +1 -0
- package/dist/sequence/handlers/authcode-pkce.js +48 -0
- package/dist/sequence/handlers/authcode.d.ts +25 -0
- package/dist/sequence/handlers/authcode.d.ts.map +1 -0
- package/dist/sequence/handlers/authcode.js +91 -0
- package/dist/sequence/handlers/devices.d.ts +14 -0
- package/dist/sequence/handlers/devices.d.ts.map +1 -0
- package/dist/sequence/handlers/devices.js +39 -0
- package/dist/sequence/handlers/handler.d.ts +8 -0
- package/dist/sequence/handlers/handler.d.ts.map +1 -0
- package/dist/sequence/handlers/handler.js +1 -0
- package/dist/sequence/handlers/identity.d.ts +21 -0
- package/dist/sequence/handlers/identity.d.ts.map +1 -0
- package/dist/sequence/handlers/identity.js +86 -0
- package/dist/sequence/handlers/index.d.ts +7 -0
- package/dist/sequence/handlers/index.d.ts.map +1 -0
- package/dist/sequence/handlers/index.js +5 -0
- package/dist/sequence/handlers/mnemonic.d.ts +19 -0
- package/dist/sequence/handlers/mnemonic.d.ts.map +1 -0
- package/dist/sequence/handlers/mnemonic.js +67 -0
- package/dist/sequence/handlers/otp.d.ts +20 -0
- package/dist/sequence/handlers/otp.d.ts.map +1 -0
- package/dist/sequence/handlers/otp.js +83 -0
- package/dist/sequence/handlers/passkeys.d.ts +17 -0
- package/dist/sequence/handlers/passkeys.d.ts.map +1 -0
- package/dist/sequence/handlers/passkeys.js +63 -0
- package/dist/sequence/handlers/recovery.d.ts +15 -0
- package/dist/sequence/handlers/recovery.d.ts.map +1 -0
- package/dist/sequence/handlers/recovery.js +72 -0
- package/dist/sequence/index.d.ts +12 -0
- package/dist/sequence/index.d.ts.map +1 -0
- package/dist/sequence/index.js +9 -0
- package/dist/sequence/logger.d.ts +7 -0
- package/dist/sequence/logger.d.ts.map +1 -0
- package/dist/sequence/logger.js +11 -0
- package/dist/sequence/manager.d.ts +287 -0
- package/dist/sequence/manager.d.ts.map +1 -0
- package/dist/sequence/manager.js +356 -0
- package/dist/sequence/messages.d.ts +18 -0
- package/dist/sequence/messages.d.ts.map +1 -0
- package/dist/sequence/messages.js +115 -0
- package/dist/sequence/recovery.d.ts +30 -0
- package/dist/sequence/recovery.d.ts.map +1 -0
- package/dist/sequence/recovery.js +314 -0
- package/dist/sequence/sessions.d.ts +26 -0
- package/dist/sequence/sessions.d.ts.map +1 -0
- package/dist/sequence/sessions.js +169 -0
- package/dist/sequence/signatures.d.ts +21 -0
- package/dist/sequence/signatures.d.ts.map +1 -0
- package/dist/sequence/signatures.js +192 -0
- package/dist/sequence/signers.d.ts +14 -0
- package/dist/sequence/signers.d.ts.map +1 -0
- package/dist/sequence/signers.js +74 -0
- package/dist/sequence/transactions.d.ts +26 -0
- package/dist/sequence/transactions.d.ts.map +1 -0
- package/dist/sequence/transactions.js +201 -0
- package/dist/sequence/types/index.d.ts +9 -0
- package/dist/sequence/types/index.d.ts.map +1 -0
- package/dist/sequence/types/index.js +2 -0
- package/dist/sequence/types/message-request.d.ts +23 -0
- package/dist/sequence/types/message-request.d.ts.map +1 -0
- package/dist/sequence/types/message-request.js +1 -0
- package/dist/sequence/types/recovery.d.ts +15 -0
- package/dist/sequence/types/recovery.d.ts.map +1 -0
- package/dist/sequence/types/recovery.js +1 -0
- package/dist/sequence/types/signature-request.d.ts +76 -0
- package/dist/sequence/types/signature-request.d.ts.map +1 -0
- package/dist/sequence/types/signature-request.js +11 -0
- package/dist/sequence/types/signer.d.ts +28 -0
- package/dist/sequence/types/signer.d.ts.map +1 -0
- package/dist/sequence/types/signer.js +10 -0
- package/dist/sequence/types/transaction-request.d.ts +41 -0
- package/dist/sequence/types/transaction-request.d.ts.map +1 -0
- package/dist/sequence/types/transaction-request.js +1 -0
- package/dist/sequence/types/wallet.d.ts +21 -0
- package/dist/sequence/types/wallet.d.ts.map +1 -0
- package/dist/sequence/types/wallet.js +1 -0
- package/dist/sequence/wallets.d.ts +121 -0
- package/dist/sequence/wallets.d.ts.map +1 -0
- package/dist/sequence/wallets.js +632 -0
- package/package.json +40 -0
- package/src/dbs/auth-commitments.ts +26 -0
- package/src/dbs/auth-keys.ts +85 -0
- package/src/dbs/generic.ts +194 -0
- package/src/dbs/index.ts +13 -0
- package/src/dbs/messages.ts +16 -0
- package/src/dbs/recovery.ts +15 -0
- package/src/dbs/signatures.ts +15 -0
- package/src/dbs/transactions.ts +16 -0
- package/src/dbs/wallets.ts +16 -0
- package/src/identity/signer.ts +78 -0
- package/src/index.ts +2 -0
- package/src/sequence/cron.ts +134 -0
- package/src/sequence/devices.ts +53 -0
- package/src/sequence/handlers/authcode-pkce.ts +70 -0
- package/src/sequence/handlers/authcode.ts +116 -0
- package/src/sequence/handlers/devices.ts +53 -0
- package/src/sequence/handlers/handler.ts +14 -0
- package/src/sequence/handlers/identity.ts +101 -0
- package/src/sequence/handlers/index.ts +6 -0
- package/src/sequence/handlers/mnemonic.ts +88 -0
- package/src/sequence/handlers/otp.ts +107 -0
- package/src/sequence/handlers/passkeys.ts +84 -0
- package/src/sequence/handlers/recovery.ts +88 -0
- package/src/sequence/index.ts +25 -0
- package/src/sequence/logger.ts +11 -0
- package/src/sequence/manager.ts +634 -0
- package/src/sequence/messages.ts +146 -0
- package/src/sequence/recovery.ts +429 -0
- package/src/sequence/sessions.ts +238 -0
- package/src/sequence/signatures.ts +263 -0
- package/src/sequence/signers.ts +88 -0
- package/src/sequence/transactions.ts +281 -0
- package/src/sequence/types/index.ts +27 -0
- package/src/sequence/types/message-request.ts +26 -0
- package/src/sequence/types/recovery.ts +15 -0
- package/src/sequence/types/signature-request.ts +89 -0
- package/src/sequence/types/signer.ts +32 -0
- package/src/sequence/types/transaction-request.ts +47 -0
- package/src/sequence/types/wallet.ts +24 -0
- package/src/sequence/wallets.ts +853 -0
- package/test/constants.ts +62 -0
- package/test/recovery.test.ts +211 -0
- package/test/sessions.test.ts +324 -0
- package/test/setup.ts +63 -0
- package/test/transactions.test.ts +464 -0
- package/test/wallets.test.ts +381 -0
- package/tsconfig.json +10 -0
- package/vitest.config.ts +11 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Address } from 'ox/Address'
|
|
2
|
+
import { BaseSignatureRequest, SignerUnavailable, SignerReady, SignerActionable, Kinds } from '../types/index.js'
|
|
3
|
+
import { Handler } from './handler.js'
|
|
4
|
+
import { Recovery } from '../recovery.js'
|
|
5
|
+
import { Payload } from '@0xsequence/wallet-primitives'
|
|
6
|
+
import { Hex } from 'ox'
|
|
7
|
+
import { Signatures } from '../signatures.js'
|
|
8
|
+
|
|
9
|
+
export class RecoveryHandler implements Handler {
|
|
10
|
+
kind = Kinds.Recovery
|
|
11
|
+
|
|
12
|
+
constructor(
|
|
13
|
+
private readonly signatures: Signatures,
|
|
14
|
+
public readonly recovery: Recovery,
|
|
15
|
+
) {}
|
|
16
|
+
|
|
17
|
+
onStatusChange(cb: () => void): () => void {
|
|
18
|
+
return this.recovery.onQueuedRecoveryPayloadsUpdate(undefined, cb)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async status(
|
|
22
|
+
address: Address,
|
|
23
|
+
imageHash: Hex.Hex | undefined,
|
|
24
|
+
request: BaseSignatureRequest,
|
|
25
|
+
): Promise<SignerUnavailable | SignerReady | SignerActionable> {
|
|
26
|
+
const queued = await this.recovery.getQueuedRecoveryPayloads(request.wallet)
|
|
27
|
+
|
|
28
|
+
// If there is no queued payload for this request then we are unavailable
|
|
29
|
+
const requestHash = Hex.fromBytes(
|
|
30
|
+
Payload.hash(request.envelope.wallet, request.envelope.chainId, request.envelope.payload),
|
|
31
|
+
)
|
|
32
|
+
const found = queued.find((p) => p.payloadHash === requestHash)
|
|
33
|
+
if (!found) {
|
|
34
|
+
return {
|
|
35
|
+
address: request.wallet,
|
|
36
|
+
handler: this,
|
|
37
|
+
status: 'unavailable',
|
|
38
|
+
reason: 'no-recovery-payload-queued',
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (!imageHash) {
|
|
43
|
+
return {
|
|
44
|
+
address: request.wallet,
|
|
45
|
+
handler: this,
|
|
46
|
+
status: 'unavailable',
|
|
47
|
+
reason: 'no-image-hash',
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (found.endTimestamp > Date.now() / 1000) {
|
|
52
|
+
return {
|
|
53
|
+
address: request.wallet,
|
|
54
|
+
handler: this,
|
|
55
|
+
status: 'unavailable',
|
|
56
|
+
reason: 'timelock-not-met',
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
try {
|
|
61
|
+
const signature = await this.recovery.encodeRecoverySignature(imageHash, found.signer)
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
address: request.wallet,
|
|
65
|
+
handler: this,
|
|
66
|
+
status: 'ready',
|
|
67
|
+
handle: async () => {
|
|
68
|
+
this.signatures.addSignature(request.id, {
|
|
69
|
+
imageHash,
|
|
70
|
+
signature: {
|
|
71
|
+
address,
|
|
72
|
+
data: Hex.fromBytes(signature),
|
|
73
|
+
type: 'sapient_compact',
|
|
74
|
+
},
|
|
75
|
+
})
|
|
76
|
+
return true
|
|
77
|
+
},
|
|
78
|
+
}
|
|
79
|
+
} catch (e) {
|
|
80
|
+
return {
|
|
81
|
+
address: request.wallet,
|
|
82
|
+
handler: this,
|
|
83
|
+
status: 'unavailable',
|
|
84
|
+
reason: 'failed-to-encode-recovery-signature',
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Network } from '@0xsequence/wallet-primitives'
|
|
2
|
+
export { Network as Networks }
|
|
3
|
+
|
|
4
|
+
export type { ManagerOptions, Databases, Sequence, Modules, Shared } from './manager.js'
|
|
5
|
+
export { ManagerOptionsDefaults, CreateWalletOptionsDefaults, applyManagerOptionsDefaults, Manager } from './manager.js'
|
|
6
|
+
export { Sessions } from './sessions.js'
|
|
7
|
+
export { Signatures } from './signatures.js'
|
|
8
|
+
export type {
|
|
9
|
+
StartSignUpWithRedirectArgs,
|
|
10
|
+
CommonSignupArgs,
|
|
11
|
+
PasskeySignupArgs,
|
|
12
|
+
MnemonicSignupArgs,
|
|
13
|
+
EmailOtpSignupArgs,
|
|
14
|
+
CompleteRedirectArgs,
|
|
15
|
+
SignupArgs,
|
|
16
|
+
LoginToWalletArgs,
|
|
17
|
+
LoginToMnemonicArgs,
|
|
18
|
+
LoginToPasskeyArgs,
|
|
19
|
+
LoginArgs,
|
|
20
|
+
} from './wallets.js'
|
|
21
|
+
export { isLoginToWalletArgs, isLoginToMnemonicArgs, isLoginToPasskeyArgs, Wallets } from './wallets.js'
|
|
22
|
+
|
|
23
|
+
export * from './types/index.js'
|
|
24
|
+
import * as Handlers from './handlers/index.js'
|
|
25
|
+
export { Handlers }
|