ic-siwa 0.1.0 → 0.1.2
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/README.md +1 -1
- package/dist/candid/ic_siwa_provider.d.ts +106 -13
- package/dist/candid/ic_siwa_provider.d.ts.map +1 -1
- package/dist/candid/ic_siwa_provider.js +52 -11
- package/dist/candid/ic_siwa_provider.js.map +1 -1
- package/dist/client.d.ts +53 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +117 -24
- package/dist/client.js.map +1 -1
- package/dist/identity.d.ts +2 -0
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +21 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -5,6 +5,20 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { Principal } from '@dfinity/principal';
|
|
7
7
|
import type { ActorMethod } from '@dfinity/agent';
|
|
8
|
+
export interface DebugInfo {
|
|
9
|
+
'uri': string;
|
|
10
|
+
'domain': string;
|
|
11
|
+
'delegation_targets_count': bigint;
|
|
12
|
+
'chain_id': bigint;
|
|
13
|
+
'allowed_domains': Array<string>;
|
|
14
|
+
'allowed_domains_count': bigint;
|
|
15
|
+
'rate_limit_total': number;
|
|
16
|
+
'rate_limit_per_address': number;
|
|
17
|
+
'session_expiration_ns': bigint;
|
|
18
|
+
'rate_limit_window_seconds': bigint;
|
|
19
|
+
'delegation_targets': Array<Principal>;
|
|
20
|
+
'debug_enabled': boolean;
|
|
21
|
+
}
|
|
8
22
|
export interface Delegation {
|
|
9
23
|
'pubkey': Uint8Array | number[];
|
|
10
24
|
'targets': [] | [Array<Principal>];
|
|
@@ -17,38 +31,62 @@ export interface InitArgs {
|
|
|
17
31
|
'chain_id': bigint;
|
|
18
32
|
'allowed_domains': [] | [Array<string>];
|
|
19
33
|
'allowed_canisters': [] | [Array<Principal>];
|
|
34
|
+
'rate_limits': [] | [RateLimitArgs];
|
|
35
|
+
'delegation_targets': [] | [Array<Principal>];
|
|
36
|
+
'debug': [] | [boolean];
|
|
20
37
|
'session_expiration_time': bigint;
|
|
21
38
|
}
|
|
22
39
|
export interface LoginResponse {
|
|
23
40
|
'user_principal': Principal;
|
|
41
|
+
'user_canister_pubkey': Uint8Array | number[];
|
|
24
42
|
'expiration': bigint;
|
|
25
43
|
}
|
|
44
|
+
export interface PrepareLoginRequest {
|
|
45
|
+
'uri': [] | [string];
|
|
46
|
+
'domain': [] | [string];
|
|
47
|
+
'address': string;
|
|
48
|
+
}
|
|
26
49
|
export interface PrepareLoginResponse {
|
|
27
50
|
'expiration': bigint;
|
|
28
51
|
'message': string;
|
|
29
52
|
'nonce': string;
|
|
30
53
|
}
|
|
54
|
+
export interface RateLimitArgs {
|
|
55
|
+
'max_logins_total': number;
|
|
56
|
+
'window_seconds': bigint;
|
|
57
|
+
'max_logins_per_address': number;
|
|
58
|
+
}
|
|
31
59
|
export type Result = {
|
|
32
|
-
'Ok':
|
|
60
|
+
'Ok': DebugInfo;
|
|
33
61
|
} | {
|
|
34
62
|
'Err': string;
|
|
35
63
|
};
|
|
36
64
|
export type Result_1 = {
|
|
37
|
-
'Ok':
|
|
65
|
+
'Ok': string;
|
|
38
66
|
} | {
|
|
39
67
|
'Err': string;
|
|
40
68
|
};
|
|
41
69
|
export type Result_2 = {
|
|
42
|
-
'Ok':
|
|
70
|
+
'Ok': Principal;
|
|
43
71
|
} | {
|
|
44
72
|
'Err': string;
|
|
45
73
|
};
|
|
46
74
|
export type Result_3 = {
|
|
47
|
-
'Ok':
|
|
75
|
+
'Ok': SignedDelegation;
|
|
48
76
|
} | {
|
|
49
77
|
'Err': string;
|
|
50
78
|
};
|
|
51
79
|
export type Result_4 = {
|
|
80
|
+
'Ok': LoginResponse;
|
|
81
|
+
} | {
|
|
82
|
+
'Err': string;
|
|
83
|
+
};
|
|
84
|
+
export type Result_5 = {
|
|
85
|
+
'Ok': null;
|
|
86
|
+
} | {
|
|
87
|
+
'Err': string;
|
|
88
|
+
};
|
|
89
|
+
export type Result_6 = {
|
|
52
90
|
'Ok': PrepareLoginResponse;
|
|
53
91
|
} | {
|
|
54
92
|
'Err': string;
|
|
@@ -58,35 +96,46 @@ export interface SignedDelegation {
|
|
|
58
96
|
'delegation': Delegation;
|
|
59
97
|
}
|
|
60
98
|
export interface _SERVICE {
|
|
99
|
+
/**
|
|
100
|
+
* Get debug diagnostics (only available when debug=true in init args)
|
|
101
|
+
*
|
|
102
|
+
* Returns configuration and state information for debugging.
|
|
103
|
+
* This endpoint is disabled in production (when debug=false).
|
|
104
|
+
*/
|
|
105
|
+
'debug_info': ActorMethod<[], Result>;
|
|
61
106
|
/**
|
|
62
107
|
* Get Avalanche address for ICP principal
|
|
63
108
|
*/
|
|
64
|
-
'get_address': ActorMethod<[Principal],
|
|
109
|
+
'get_address': ActorMethod<[Principal], Result_1>;
|
|
65
110
|
/**
|
|
66
111
|
* Get Avalanche address for caller
|
|
67
112
|
*/
|
|
68
|
-
'get_caller_address': ActorMethod<[],
|
|
113
|
+
'get_caller_address': ActorMethod<[], Result_1>;
|
|
69
114
|
/**
|
|
70
115
|
* Get ICP principal for Avalanche address
|
|
71
116
|
*/
|
|
72
|
-
'get_principal': ActorMethod<[string],
|
|
117
|
+
'get_principal': ActorMethod<[string], Result_2>;
|
|
73
118
|
/**
|
|
74
119
|
* Get delegation for authenticated principal
|
|
75
120
|
*
|
|
121
|
+
* This is a **query** call that retrieves the certified delegation.
|
|
122
|
+
* You **must** call `siwa_prepare_delegation` first (an update call) and wait
|
|
123
|
+
* for it to complete before calling this query.
|
|
124
|
+
*
|
|
76
125
|
* # Arguments
|
|
77
126
|
* * `address` - The Avalanche address
|
|
78
127
|
* * `session_key` - The session public key from login
|
|
79
|
-
* * `expiration` - Requested expiration timestamp (
|
|
128
|
+
* * `expiration` - Requested expiration timestamp (used for validation)
|
|
80
129
|
*
|
|
81
130
|
* # Returns
|
|
82
131
|
* * `Ok(SignedDelegation)` - The signed delegation for the session
|
|
83
|
-
* * `Err(String)` - Error if not authenticated or
|
|
132
|
+
* * `Err(String)` - Error if not authenticated, expired, or delegation not prepared
|
|
84
133
|
*/
|
|
85
134
|
'siwa_get_delegation': ActorMethod<[
|
|
86
135
|
string,
|
|
87
136
|
Uint8Array | number[],
|
|
88
137
|
bigint
|
|
89
|
-
],
|
|
138
|
+
], Result_3>;
|
|
90
139
|
/**
|
|
91
140
|
* Complete SIWA login with signed message
|
|
92
141
|
*
|
|
@@ -99,9 +148,32 @@ export interface _SERVICE {
|
|
|
99
148
|
* * `Ok(LoginResponse)` - The derived principal and session expiration
|
|
100
149
|
* * `Err(String)` - Error if signature is invalid or session expired
|
|
101
150
|
*/
|
|
102
|
-
'siwa_login': ActorMethod<[string, string, Uint8Array | number[]],
|
|
151
|
+
'siwa_login': ActorMethod<[string, string, Uint8Array | number[]], Result_4>;
|
|
103
152
|
/**
|
|
104
|
-
* Prepare a
|
|
153
|
+
* Prepare a delegation for an authenticated session
|
|
154
|
+
*
|
|
155
|
+
* This must be called before `siwa_get_delegation` to store the delegation
|
|
156
|
+
* in the signature map for certified responses.
|
|
157
|
+
*
|
|
158
|
+
* # Arguments
|
|
159
|
+
* * `address` - The Avalanche address
|
|
160
|
+
* * `session_key` - The session public key from login
|
|
161
|
+
* * `expiration` - Requested expiration timestamp (may be capped)
|
|
162
|
+
*
|
|
163
|
+
* # Returns
|
|
164
|
+
* * `Ok(())` - Delegation prepared successfully
|
|
165
|
+
* * `Err(String)` - Error if not authenticated or expired
|
|
166
|
+
*/
|
|
167
|
+
'siwa_prepare_delegation': ActorMethod<[
|
|
168
|
+
string,
|
|
169
|
+
Uint8Array | number[],
|
|
170
|
+
bigint
|
|
171
|
+
], Result_5>;
|
|
172
|
+
/**
|
|
173
|
+
* Prepare a SIWA login message for signing (simple version)
|
|
174
|
+
*
|
|
175
|
+
* Uses the canister's default domain/uri from init args.
|
|
176
|
+
* For multi-tenant "SIWA as a Service", use `siwa_prepare_login_with_options` instead.
|
|
105
177
|
*
|
|
106
178
|
* # Arguments
|
|
107
179
|
* * `address` - The Avalanche address (0x-prefixed, EIP-55 checksummed)
|
|
@@ -110,7 +182,28 @@ export interface _SERVICE {
|
|
|
110
182
|
* * `Ok(PrepareLoginResponse)` - The message to sign, nonce, and expiration
|
|
111
183
|
* * `Err(String)` - Error description if address is invalid
|
|
112
184
|
*/
|
|
113
|
-
'siwa_prepare_login': ActorMethod<[string],
|
|
185
|
+
'siwa_prepare_login': ActorMethod<[string], Result_6>;
|
|
186
|
+
/**
|
|
187
|
+
* Prepare a SIWA login message with custom domain/uri (multi-tenant version)
|
|
188
|
+
*
|
|
189
|
+
* This is the "SIWA as a Service" endpoint where each calling application
|
|
190
|
+
* can specify its own domain/uri for the wallet signing prompt.
|
|
191
|
+
*
|
|
192
|
+
* The domain must be in the `allowed_domains` whitelist configured at init.
|
|
193
|
+
*
|
|
194
|
+
* # Arguments
|
|
195
|
+
* * `request` - Login request containing:
|
|
196
|
+
* - `address`: The Avalanche address (0x-prefixed)
|
|
197
|
+
* - `domain`: Optional domain to show in wallet (must be whitelisted)
|
|
198
|
+
* - `uri`: Optional URI to show in wallet
|
|
199
|
+
*
|
|
200
|
+
* # Returns
|
|
201
|
+
* * `Ok(PrepareLoginResponse)` - The message to sign, nonce, and expiration
|
|
202
|
+
* * `Err(String)` - Error if address invalid or domain not whitelisted
|
|
203
|
+
*/
|
|
204
|
+
'siwa_prepare_login_with_options': ActorMethod<[
|
|
205
|
+
PrepareLoginRequest
|
|
206
|
+
], Result_6>;
|
|
114
207
|
}
|
|
115
208
|
export declare const idlFactory: ({ IDL }: {
|
|
116
209
|
IDL: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ic_siwa_provider.d.ts","sourceRoot":"","sources":["../../src/candid/ic_siwa_provider.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAG,UAAU,GAAG,MAAM,EAAE,CAAC;IACjC,SAAS,EAAG,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACpC,YAAY,EAAG,MAAM,CAAC;CACvB;AACD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAG,MAAM,CAAC;IACf,QAAQ,EAAG,MAAM,CAAC;IAClB,MAAM,EAAG,MAAM,CAAC;IAChB,UAAU,EAAG,MAAM,CAAC;IACpB,iBAAiB,EAAG,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,mBAAmB,EAAG,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,yBAAyB,EAAG,MAAM,CAAC;CACpC;AACD,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAG,SAAS,CAAC;IAC7B,YAAY,EAAG,MAAM,CAAC;CACvB;AACD,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAG,MAAM,CAAC;IACtB,SAAS,EAAG,MAAM,CAAC;IACnB,OAAO,EAAG,MAAM,CAAC;CAClB;AACD,MAAM,MAAM,MAAM,GAAG;IAAE,IAAI,EAAG,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"ic_siwa_provider.d.ts","sourceRoot":"","sources":["../../src/candid/ic_siwa_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
* DO NOT EDIT MANUALLY - regenerate with: ic-siwa candid
|
|
6
6
|
*/
|
|
7
7
|
export const idlFactory = ({ IDL }) => {
|
|
8
|
+
const RateLimitArgs = IDL.Record({
|
|
9
|
+
'max_logins_total': IDL.Nat32,
|
|
10
|
+
'window_seconds': IDL.Nat64,
|
|
11
|
+
'max_logins_per_address': IDL.Nat32,
|
|
12
|
+
});
|
|
8
13
|
const InitArgs = IDL.Record({
|
|
9
14
|
'uri': IDL.Text,
|
|
10
15
|
'domain': IDL.Text,
|
|
@@ -12,10 +17,28 @@ export const idlFactory = ({ IDL }) => {
|
|
|
12
17
|
'chain_id': IDL.Nat64,
|
|
13
18
|
'allowed_domains': IDL.Opt(IDL.Vec(IDL.Text)),
|
|
14
19
|
'allowed_canisters': IDL.Opt(IDL.Vec(IDL.Principal)),
|
|
20
|
+
'rate_limits': IDL.Opt(RateLimitArgs),
|
|
21
|
+
'delegation_targets': IDL.Opt(IDL.Vec(IDL.Principal)),
|
|
22
|
+
'debug': IDL.Opt(IDL.Bool),
|
|
15
23
|
'session_expiration_time': IDL.Nat64,
|
|
16
24
|
});
|
|
17
|
-
const
|
|
18
|
-
|
|
25
|
+
const DebugInfo = IDL.Record({
|
|
26
|
+
'uri': IDL.Text,
|
|
27
|
+
'domain': IDL.Text,
|
|
28
|
+
'delegation_targets_count': IDL.Nat64,
|
|
29
|
+
'chain_id': IDL.Nat64,
|
|
30
|
+
'allowed_domains': IDL.Vec(IDL.Text),
|
|
31
|
+
'allowed_domains_count': IDL.Nat64,
|
|
32
|
+
'rate_limit_total': IDL.Nat32,
|
|
33
|
+
'rate_limit_per_address': IDL.Nat32,
|
|
34
|
+
'session_expiration_ns': IDL.Nat64,
|
|
35
|
+
'rate_limit_window_seconds': IDL.Nat64,
|
|
36
|
+
'delegation_targets': IDL.Vec(IDL.Principal),
|
|
37
|
+
'debug_enabled': IDL.Bool,
|
|
38
|
+
});
|
|
39
|
+
const Result = IDL.Variant({ 'Ok': DebugInfo, 'Err': IDL.Text });
|
|
40
|
+
const Result_1 = IDL.Variant({ 'Ok': IDL.Text, 'Err': IDL.Text });
|
|
41
|
+
const Result_2 = IDL.Variant({ 'Ok': IDL.Principal, 'Err': IDL.Text });
|
|
19
42
|
const Delegation = IDL.Record({
|
|
20
43
|
'pubkey': IDL.Vec(IDL.Nat8),
|
|
21
44
|
'targets': IDL.Opt(IDL.Vec(IDL.Principal)),
|
|
@@ -25,31 +48,46 @@ export const idlFactory = ({ IDL }) => {
|
|
|
25
48
|
'signature': IDL.Vec(IDL.Nat8),
|
|
26
49
|
'delegation': Delegation,
|
|
27
50
|
});
|
|
28
|
-
const
|
|
51
|
+
const Result_3 = IDL.Variant({ 'Ok': SignedDelegation, 'Err': IDL.Text });
|
|
29
52
|
const LoginResponse = IDL.Record({
|
|
30
53
|
'user_principal': IDL.Principal,
|
|
54
|
+
'user_canister_pubkey': IDL.Vec(IDL.Nat8),
|
|
31
55
|
'expiration': IDL.Nat64,
|
|
32
56
|
});
|
|
33
|
-
const
|
|
57
|
+
const Result_4 = IDL.Variant({ 'Ok': LoginResponse, 'Err': IDL.Text });
|
|
58
|
+
const Result_5 = IDL.Variant({ 'Ok': IDL.Null, 'Err': IDL.Text });
|
|
34
59
|
const PrepareLoginResponse = IDL.Record({
|
|
35
60
|
'expiration': IDL.Nat64,
|
|
36
61
|
'message': IDL.Text,
|
|
37
62
|
'nonce': IDL.Text,
|
|
38
63
|
});
|
|
39
|
-
const
|
|
64
|
+
const Result_6 = IDL.Variant({
|
|
40
65
|
'Ok': PrepareLoginResponse,
|
|
41
66
|
'Err': IDL.Text,
|
|
42
67
|
});
|
|
68
|
+
const PrepareLoginRequest = IDL.Record({
|
|
69
|
+
'uri': IDL.Opt(IDL.Text),
|
|
70
|
+
'domain': IDL.Opt(IDL.Text),
|
|
71
|
+
'address': IDL.Text,
|
|
72
|
+
});
|
|
43
73
|
return IDL.Service({
|
|
44
|
-
'
|
|
45
|
-
'
|
|
46
|
-
'
|
|
47
|
-
'
|
|
48
|
-
'
|
|
49
|
-
'
|
|
74
|
+
'debug_info': IDL.Func([], [Result], ['query']),
|
|
75
|
+
'get_address': IDL.Func([IDL.Principal], [Result_1], ['query']),
|
|
76
|
+
'get_caller_address': IDL.Func([], [Result_1], ['query']),
|
|
77
|
+
'get_principal': IDL.Func([IDL.Text], [Result_2], ['query']),
|
|
78
|
+
'siwa_get_delegation': IDL.Func([IDL.Text, IDL.Vec(IDL.Nat8), IDL.Nat64], [Result_3], ['query']),
|
|
79
|
+
'siwa_login': IDL.Func([IDL.Text, IDL.Text, IDL.Vec(IDL.Nat8)], [Result_4], []),
|
|
80
|
+
'siwa_prepare_delegation': IDL.Func([IDL.Text, IDL.Vec(IDL.Nat8), IDL.Nat64], [Result_5], []),
|
|
81
|
+
'siwa_prepare_login': IDL.Func([IDL.Text], [Result_6], []),
|
|
82
|
+
'siwa_prepare_login_with_options': IDL.Func([PrepareLoginRequest], [Result_6], []),
|
|
50
83
|
});
|
|
51
84
|
};
|
|
52
85
|
export const init = ({ IDL }) => {
|
|
86
|
+
const RateLimitArgs = IDL.Record({
|
|
87
|
+
'max_logins_total': IDL.Nat32,
|
|
88
|
+
'window_seconds': IDL.Nat64,
|
|
89
|
+
'max_logins_per_address': IDL.Nat32,
|
|
90
|
+
});
|
|
53
91
|
const InitArgs = IDL.Record({
|
|
54
92
|
'uri': IDL.Text,
|
|
55
93
|
'domain': IDL.Text,
|
|
@@ -57,6 +95,9 @@ export const init = ({ IDL }) => {
|
|
|
57
95
|
'chain_id': IDL.Nat64,
|
|
58
96
|
'allowed_domains': IDL.Opt(IDL.Vec(IDL.Text)),
|
|
59
97
|
'allowed_canisters': IDL.Opt(IDL.Vec(IDL.Principal)),
|
|
98
|
+
'rate_limits': IDL.Opt(RateLimitArgs),
|
|
99
|
+
'delegation_targets': IDL.Opt(IDL.Vec(IDL.Principal)),
|
|
100
|
+
'debug': IDL.Opt(IDL.Bool),
|
|
60
101
|
'session_expiration_time': IDL.Nat64,
|
|
61
102
|
});
|
|
62
103
|
return [InitArgs];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ic_siwa_provider.js","sourceRoot":"","sources":["../../src/candid/ic_siwa_provider.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"ic_siwa_provider.js","sourceRoot":"","sources":["../../src/candid/ic_siwa_provider.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { Ed25519KeyIdentity } from "@dfinity/identity";
|
|
|
6
6
|
import { Principal } from "@dfinity/principal";
|
|
7
7
|
import { type SiwaIdentity } from "./identity";
|
|
8
8
|
import { type StorageProvider } from "./storage";
|
|
9
|
-
import type { PreparedLogin, LoginResult } from "./types";
|
|
9
|
+
import type { PreparedLogin, LoginResult, PrepareLoginOptions } from "./types";
|
|
10
10
|
/**
|
|
11
11
|
* SIWA Client configuration options
|
|
12
12
|
*/
|
|
@@ -61,9 +61,35 @@ export declare class SiwaClient {
|
|
|
61
61
|
*/
|
|
62
62
|
private createProviderActor;
|
|
63
63
|
/**
|
|
64
|
-
* Prepare a login message for signing
|
|
64
|
+
* Prepare a login message for signing (simple version)
|
|
65
|
+
*
|
|
66
|
+
* Uses the canister's default domain/uri. For multi-tenant scenarios,
|
|
67
|
+
* use `prepareLoginWithOptions` to specify your app's domain.
|
|
68
|
+
*
|
|
69
|
+
* @param address - The Avalanche address (0x-prefixed)
|
|
65
70
|
*/
|
|
66
71
|
prepareLogin(address: string): Promise<PreparedLogin>;
|
|
72
|
+
/**
|
|
73
|
+
* Prepare a login message with custom domain/uri (multi-tenant version)
|
|
74
|
+
*
|
|
75
|
+
* This is the "SIWA as a Service" method where each calling application
|
|
76
|
+
* can specify its own domain/uri for the wallet signing prompt.
|
|
77
|
+
*
|
|
78
|
+
* @param options - Login options including address and optional domain/uri
|
|
79
|
+
* @param options.address - The Avalanche address (0x-prefixed)
|
|
80
|
+
* @param options.domain - Domain to show in wallet (must be whitelisted)
|
|
81
|
+
* @param options.uri - URI to show in wallet
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* const prepared = await client.prepareLoginWithOptions({
|
|
86
|
+
* address: "0x1234...",
|
|
87
|
+
* domain: "game.tresr.community",
|
|
88
|
+
* uri: "https://game.tresr.community"
|
|
89
|
+
* });
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
prepareLoginWithOptions(options: PrepareLoginOptions): Promise<PreparedLogin>;
|
|
67
93
|
/**
|
|
68
94
|
* Complete login with signed message
|
|
69
95
|
*
|
|
@@ -75,8 +101,13 @@ export declare class SiwaClient {
|
|
|
75
101
|
/**
|
|
76
102
|
* Build delegation chain from canister response
|
|
77
103
|
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
104
|
+
* The delegation chain structure is:
|
|
105
|
+
* - Root (publicKey parameter): The canister's derived public key for this user
|
|
106
|
+
* - Delegation: Grants the session key the ability to act on behalf of the user
|
|
107
|
+
*
|
|
108
|
+
* @param candidDelegation - Delegation record from canister (contains session key as pubkey)
|
|
109
|
+
* @param signatureBytes - Signature from canister over the delegation
|
|
110
|
+
* @param canisterPubkey - The canister's public key (root of the chain, the signer)
|
|
80
111
|
*/
|
|
81
112
|
private buildDelegationChain;
|
|
82
113
|
/**
|
|
@@ -91,6 +122,21 @@ export declare class SiwaClient {
|
|
|
91
122
|
* Login with a wallet client (convenience method)
|
|
92
123
|
*
|
|
93
124
|
* @param walletClient - A viem wallet client or similar
|
|
125
|
+
* @param options - Optional domain/uri for multi-tenant scenarios
|
|
126
|
+
* @param options.domain - Domain to show in wallet (must be whitelisted)
|
|
127
|
+
* @param options.uri - URI to show in wallet
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```ts
|
|
131
|
+
* // Simple usage (uses canister defaults)
|
|
132
|
+
* await client.loginWithWallet(walletClient);
|
|
133
|
+
*
|
|
134
|
+
* // Multi-tenant usage (specify your app's domain)
|
|
135
|
+
* await client.loginWithWallet(walletClient, {
|
|
136
|
+
* domain: "game.tresr.community",
|
|
137
|
+
* uri: "https://game.tresr.community"
|
|
138
|
+
* });
|
|
139
|
+
* ```
|
|
94
140
|
*/
|
|
95
141
|
loginWithWallet(walletClient: {
|
|
96
142
|
account: {
|
|
@@ -99,6 +145,9 @@ export declare class SiwaClient {
|
|
|
99
145
|
signMessage: (args: {
|
|
100
146
|
message: string;
|
|
101
147
|
}) => Promise<string>;
|
|
148
|
+
}, options?: {
|
|
149
|
+
domain?: string;
|
|
150
|
+
uri?: string;
|
|
102
151
|
}): Promise<LoginResult>;
|
|
103
152
|
/**
|
|
104
153
|
* Logout and clear stored identity
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAQ,SAAS,EAAgC,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAGL,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAU7C,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAuB,KAAK,eAAe,EAAC,MAAM,WAAW,CAAC;AACrE,OAAO,KAAK,EAAC,aAAa,EAAE,WAAW,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -109,12 +109,45 @@ export class SiwaClient {
|
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
111
|
/**
|
|
112
|
-
* Prepare a login message for signing
|
|
112
|
+
* Prepare a login message for signing (simple version)
|
|
113
|
+
*
|
|
114
|
+
* Uses the canister's default domain/uri. For multi-tenant scenarios,
|
|
115
|
+
* use `prepareLoginWithOptions` to specify your app's domain.
|
|
116
|
+
*
|
|
117
|
+
* @param address - The Avalanche address (0x-prefixed)
|
|
113
118
|
*/
|
|
114
119
|
async prepareLogin(address) {
|
|
120
|
+
return this.prepareLoginWithOptions({ address });
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Prepare a login message with custom domain/uri (multi-tenant version)
|
|
124
|
+
*
|
|
125
|
+
* This is the "SIWA as a Service" method where each calling application
|
|
126
|
+
* can specify its own domain/uri for the wallet signing prompt.
|
|
127
|
+
*
|
|
128
|
+
* @param options - Login options including address and optional domain/uri
|
|
129
|
+
* @param options.address - The Avalanche address (0x-prefixed)
|
|
130
|
+
* @param options.domain - Domain to show in wallet (must be whitelisted)
|
|
131
|
+
* @param options.uri - URI to show in wallet
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```ts
|
|
135
|
+
* const prepared = await client.prepareLoginWithOptions({
|
|
136
|
+
* address: "0x1234...",
|
|
137
|
+
* domain: "game.tresr.community",
|
|
138
|
+
* uri: "https://game.tresr.community"
|
|
139
|
+
* });
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
async prepareLoginWithOptions(options) {
|
|
115
143
|
try {
|
|
116
144
|
const actor = await this.createProviderActor();
|
|
117
|
-
|
|
145
|
+
// Use the new multi-tenant endpoint if domain/uri provided
|
|
146
|
+
const response = await actor.siwa_prepare_login_with_options({
|
|
147
|
+
address: options.address,
|
|
148
|
+
domain: options.domain ? [options.domain] : [],
|
|
149
|
+
uri: options.uri ? [options.uri] : [],
|
|
150
|
+
});
|
|
118
151
|
if ("Err" in response) {
|
|
119
152
|
throw new SiwaError(SiwaErrorCode.CanisterError, response.Err, response);
|
|
120
153
|
}
|
|
@@ -153,11 +186,22 @@ export class SiwaClient {
|
|
|
153
186
|
if ("Err" in loginResponse) {
|
|
154
187
|
throw new SiwaError(SiwaErrorCode.CanisterError, loginResponse.Err, loginResponse);
|
|
155
188
|
}
|
|
156
|
-
// LoginResponse contains user_principal and
|
|
157
|
-
const { user_principal: principal, expiration: loginExpiration } = loginResponse.Ok;
|
|
189
|
+
// LoginResponse contains user_principal, expiration, and user_canister_pubkey
|
|
190
|
+
const { user_principal: principal, expiration: loginExpiration, user_canister_pubkey: userCanisterPubkey, } = loginResponse.Ok;
|
|
191
|
+
// Convert the canister's public key to Uint8Array
|
|
192
|
+
// This is the ROOT of the delegation chain (the signer)
|
|
193
|
+
const canisterPubkeyBytes = userCanisterPubkey instanceof Uint8Array
|
|
194
|
+
? userCanisterPubkey
|
|
195
|
+
: new Uint8Array(userCanisterPubkey);
|
|
158
196
|
// Use the expiration from login response, or default to 30 minutes
|
|
159
197
|
const expirationNs = loginExpiration ??
|
|
160
198
|
BigInt(Date.now() + 30 * 60 * 1000) * BigInt(1_000_000);
|
|
199
|
+
// Prepare delegation first (stores in signature map for certified response)
|
|
200
|
+
const prepareResult = await actor.siwa_prepare_delegation(address, sessionKeyBytes, expirationNs);
|
|
201
|
+
if ("Err" in prepareResult) {
|
|
202
|
+
throw new SiwaError(SiwaErrorCode.CanisterError, prepareResult.Err, prepareResult);
|
|
203
|
+
}
|
|
204
|
+
// Now get the certified delegation
|
|
161
205
|
const delegationResponse = await actor.siwa_get_delegation(address, sessionKeyBytes, expirationNs);
|
|
162
206
|
if ("Err" in delegationResponse) {
|
|
163
207
|
throw new SiwaError(SiwaErrorCode.CanisterError, delegationResponse.Err, delegationResponse);
|
|
@@ -169,15 +213,21 @@ export class SiwaClient {
|
|
|
169
213
|
? delegationSignature
|
|
170
214
|
: new Uint8Array(delegationSignature);
|
|
171
215
|
// Build delegation chain from the canister's delegation
|
|
172
|
-
|
|
216
|
+
// The canister's public key is the root (signer) of the delegation chain
|
|
217
|
+
const delegationChain = this.buildDelegationChain(candidDelegation, signatureBytes, canisterPubkeyBytes);
|
|
173
218
|
// Calculate expiration in milliseconds
|
|
174
219
|
const expirationMs = Number(expirationNs / BigInt(1_000_000));
|
|
220
|
+
// Convert canister pubkey to hex for storage
|
|
221
|
+
const canisterPubkeyHex = Array.from(canisterPubkeyBytes)
|
|
222
|
+
.map((b) => b.toString(16).padStart(2, "0"))
|
|
223
|
+
.join("");
|
|
175
224
|
// Create serialized identity data
|
|
176
225
|
const serializedIdentity = {
|
|
177
226
|
baseKey: JSON.stringify(this.sessionKey.toJSON()),
|
|
178
227
|
delegationChain: JSON.stringify(delegationChain.toJSON()),
|
|
179
228
|
expiration: expirationMs,
|
|
180
229
|
address,
|
|
230
|
+
canisterPubkey: canisterPubkeyHex,
|
|
181
231
|
};
|
|
182
232
|
// Create identity
|
|
183
233
|
this.identity = await createSiwaIdentity(serializedIdentity);
|
|
@@ -206,34 +256,39 @@ export class SiwaClient {
|
|
|
206
256
|
/**
|
|
207
257
|
* Build delegation chain from canister response
|
|
208
258
|
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
259
|
+
* The delegation chain structure is:
|
|
260
|
+
* - Root (publicKey parameter): The canister's derived public key for this user
|
|
261
|
+
* - Delegation: Grants the session key the ability to act on behalf of the user
|
|
262
|
+
*
|
|
263
|
+
* @param candidDelegation - Delegation record from canister (contains session key as pubkey)
|
|
264
|
+
* @param signatureBytes - Signature from canister over the delegation
|
|
265
|
+
* @param canisterPubkey - The canister's public key (root of the chain, the signer)
|
|
211
266
|
*/
|
|
212
|
-
buildDelegationChain(candidDelegation, signatureBytes) {
|
|
267
|
+
buildDelegationChain(candidDelegation, signatureBytes, canisterPubkey) {
|
|
213
268
|
if (!this.sessionKey) {
|
|
214
269
|
throw new SiwaError(SiwaErrorCode.NotAuthenticated, "No session key available");
|
|
215
270
|
}
|
|
216
|
-
//
|
|
217
|
-
|
|
271
|
+
// The delegation's pubkey is the session key - the key being delegated TO
|
|
272
|
+
// @dfinity/identity v3.x uses Uint8Array instead of ArrayBuffer
|
|
273
|
+
const sessionKeyPubkey = candidDelegation.pubkey instanceof Uint8Array
|
|
218
274
|
? candidDelegation.pubkey
|
|
219
275
|
: new Uint8Array(candidDelegation.pubkey);
|
|
220
|
-
// Create a proper ArrayBuffer copy from the Uint8Array
|
|
221
|
-
const pubkeyBuffer = new ArrayBuffer(pubkeyBytes.length);
|
|
222
|
-
new Uint8Array(pubkeyBuffer).set(pubkeyBytes);
|
|
223
276
|
// Create Delegation instance from canister response
|
|
224
277
|
// Note: targets are optional in the candid type
|
|
225
278
|
const targets = candidDelegation.targets[0]; // opt vec principal -> [] | [Principal[]]
|
|
226
|
-
const delegation = new Delegation(
|
|
227
|
-
// Create delegation chain
|
|
228
|
-
//
|
|
229
|
-
|
|
230
|
-
|
|
279
|
+
const delegation = new Delegation(sessionKeyPubkey, candidDelegation.expiration, targets);
|
|
280
|
+
// Create delegation chain:
|
|
281
|
+
// - delegations[0]: canister delegates to session key
|
|
282
|
+
// - publicKey: canister's public key (the root/signer of the chain)
|
|
283
|
+
//
|
|
284
|
+
// This allows the session key to sign requests that will be verified
|
|
285
|
+
// as coming from the user's canister-derived identity.
|
|
231
286
|
return DelegationChain.fromDelegations([
|
|
232
287
|
{
|
|
233
288
|
delegation,
|
|
234
|
-
signature:
|
|
289
|
+
signature: signatureBytes,
|
|
235
290
|
},
|
|
236
|
-
],
|
|
291
|
+
], canisterPubkey);
|
|
237
292
|
}
|
|
238
293
|
/**
|
|
239
294
|
* Refresh the current delegation
|
|
@@ -246,10 +301,28 @@ export class SiwaClient {
|
|
|
246
301
|
const address = identity.getAddress();
|
|
247
302
|
// Convert to number[] for Candid encoding (blob = vec nat8)
|
|
248
303
|
const sessionKeyBytes = Array.from(new Uint8Array(this.sessionKey.getPublicKey().toDer()));
|
|
304
|
+
// Get the stored canister pubkey from the serialized identity
|
|
305
|
+
const serialized = identity.serialize();
|
|
306
|
+
if (!serialized.canisterPubkey) {
|
|
307
|
+
// Legacy identity without canister pubkey, need to re-login
|
|
308
|
+
await this.logout();
|
|
309
|
+
return null;
|
|
310
|
+
}
|
|
311
|
+
// Convert hex back to Uint8Array
|
|
312
|
+
const canisterPubkeyBytes = new Uint8Array(serialized.canisterPubkey.match(/.{1,2}/g)?.map((b) => parseInt(b, 16)) ??
|
|
313
|
+
[]);
|
|
249
314
|
try {
|
|
250
315
|
const actor = await this.createProviderActor();
|
|
251
316
|
// Get new delegation
|
|
252
317
|
const expirationNs = BigInt(Date.now() + 30 * 60 * 1000) * BigInt(1_000_000);
|
|
318
|
+
// Prepare delegation first (stores in signature map for certified response)
|
|
319
|
+
const prepareResult = await actor.siwa_prepare_delegation(address, sessionKeyBytes, expirationNs);
|
|
320
|
+
if ("Err" in prepareResult) {
|
|
321
|
+
// Session may have expired, need to re-login
|
|
322
|
+
await this.logout();
|
|
323
|
+
return null;
|
|
324
|
+
}
|
|
325
|
+
// Now get the certified delegation
|
|
253
326
|
const delegationResponse = await actor.siwa_get_delegation(address, sessionKeyBytes, expirationNs);
|
|
254
327
|
if ("Err" in delegationResponse) {
|
|
255
328
|
// Session may have expired, need to re-login
|
|
@@ -260,13 +333,14 @@ export class SiwaClient {
|
|
|
260
333
|
const signatureBytes = delegationSignature instanceof Uint8Array
|
|
261
334
|
? delegationSignature
|
|
262
335
|
: new Uint8Array(delegationSignature);
|
|
263
|
-
const delegationChain = this.buildDelegationChain(candidDelegation, signatureBytes);
|
|
336
|
+
const delegationChain = this.buildDelegationChain(candidDelegation, signatureBytes, canisterPubkeyBytes);
|
|
264
337
|
const expirationMs = Number(expirationNs / BigInt(1_000_000));
|
|
265
338
|
const serializedIdentity = {
|
|
266
339
|
baseKey: JSON.stringify(this.sessionKey.toJSON()),
|
|
267
340
|
delegationChain: JSON.stringify(delegationChain.toJSON()),
|
|
268
341
|
expiration: expirationMs,
|
|
269
342
|
address,
|
|
343
|
+
canisterPubkey: serialized.canisterPubkey,
|
|
270
344
|
};
|
|
271
345
|
this.identity = await createSiwaIdentity(serializedIdentity);
|
|
272
346
|
await this.storage.set("siwa_identity", JSON.stringify(serializedIdentity));
|
|
@@ -314,11 +388,30 @@ export class SiwaClient {
|
|
|
314
388
|
* Login with a wallet client (convenience method)
|
|
315
389
|
*
|
|
316
390
|
* @param walletClient - A viem wallet client or similar
|
|
391
|
+
* @param options - Optional domain/uri for multi-tenant scenarios
|
|
392
|
+
* @param options.domain - Domain to show in wallet (must be whitelisted)
|
|
393
|
+
* @param options.uri - URI to show in wallet
|
|
394
|
+
*
|
|
395
|
+
* @example
|
|
396
|
+
* ```ts
|
|
397
|
+
* // Simple usage (uses canister defaults)
|
|
398
|
+
* await client.loginWithWallet(walletClient);
|
|
399
|
+
*
|
|
400
|
+
* // Multi-tenant usage (specify your app's domain)
|
|
401
|
+
* await client.loginWithWallet(walletClient, {
|
|
402
|
+
* domain: "game.tresr.community",
|
|
403
|
+
* uri: "https://game.tresr.community"
|
|
404
|
+
* });
|
|
405
|
+
* ```
|
|
317
406
|
*/
|
|
318
|
-
async loginWithWallet(walletClient) {
|
|
407
|
+
async loginWithWallet(walletClient, options) {
|
|
319
408
|
const address = walletClient.account.address;
|
|
320
|
-
// Prepare login message
|
|
321
|
-
const prepared = await this.
|
|
409
|
+
// Prepare login message with optional domain/uri
|
|
410
|
+
const prepared = await this.prepareLoginWithOptions({
|
|
411
|
+
address,
|
|
412
|
+
domain: options?.domain,
|
|
413
|
+
uri: options?.uri,
|
|
414
|
+
});
|
|
322
415
|
// Sign message with wallet
|
|
323
416
|
const signature = await walletClient.signMessage({
|
|
324
417
|
message: prepared.message,
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/identity.d.ts
CHANGED
package/dist/identity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAElB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAElB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,YAAY,IAAI,SAAS,CAAC;IAC1B,gCAAgC;IAChC,UAAU,IAAI,MAAM,CAAC;IACrB,uCAAuC;IACvC,SAAS,IAAI,OAAO,CAAC;IACrB,+BAA+B;IAC/B,aAAa,IAAI,MAAM,CAAC;IACxB,4BAA4B;IAC5B,SAAS,IAAI,kBAAkB,CAAC;IAChC,6CAA6C;IAC7C,qBAAqB,IAAI,kBAAkB,CAAC;CAC7C;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,YAAY,CAAC,CAsCvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,kBAAkB,CAEvD"}
|
package/dist/identity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAqC3B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAwB;IAExB,mBAAmB;IACnB,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE1D,2BAA2B;IAC3B,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEvE,6BAA6B;IAC7B,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,cAAc,CAC1D,OAAO,EACP,eAAe,CAChB,CAAC;IAEF,OAAO;QACL,YAAY;YACV,OAAO,kBAAkB,CAAC,YAAY,EAAE,CAAC;QAC3C,CAAC;QAED,UAAU;YACR,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,SAAS;YACP,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QACtC,CAAC;QAED,aAAa;YACX,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;QAED,SAAS;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QAED,qBAAqB;YACnB,OAAO,kBAAkB,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,kBAAkB,CAAC,QAAQ,EAAE,CAAC;AACvC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ export { SiwaClient, type SiwaClientOptions } from "./client";
|
|
|
26
26
|
export { SiwaError, SiwaErrorCode } from "./errors";
|
|
27
27
|
export { type SiwaIdentity, type SerializedIdentity, createSiwaIdentity, generateSessionKey, } from "./identity";
|
|
28
28
|
export { type StorageProvider, LocalStorageProvider, MemoryStorageProvider, } from "./storage";
|
|
29
|
-
export type { PreparedLogin, LoginResult, SignedDelegation, SiwaMessage, WalletClient, } from "./types";
|
|
29
|
+
export type { PreparedLogin, LoginResult, SignedDelegation, SiwaMessage, WalletClient, PrepareLoginOptions, } from "./types";
|
|
30
30
|
export { idlFactory as siwaProviderIdlFactory, type _SERVICE as SiwaProviderService, type InitArgs as SiwaProviderInitArgs, } from "./candid";
|
|
31
31
|
export declare const VERSION = "0.1.0";
|
|
32
32
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAC,UAAU,EAAE,KAAK,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAC,SAAS,EAAE,aAAa,EAAC,MAAM,UAAU,CAAC;AAClD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,eAAe,EACpB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAC,UAAU,EAAE,KAAK,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAC,SAAS,EAAE,aAAa,EAAC,MAAM,UAAU,CAAC;AAClD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,eAAe,EACpB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,UAAU,IAAI,sBAAsB,EACpC,KAAK,QAAQ,IAAI,mBAAmB,EACpC,KAAK,QAAQ,IAAI,oBAAoB,GACtC,MAAM,UAAU,CAAC;AAGlB,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAC,UAAU,EAAyB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAC,SAAS,EAAE,aAAa,EAAC,MAAM,UAAU,CAAC;AAClD,OAAO,EAGL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAC,UAAU,EAAyB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAC,SAAS,EAAE,aAAa,EAAC,MAAM,UAAU,CAAC;AAClD,OAAO,EAGL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AAUnB,oCAAoC;AACpC,OAAO,EACL,UAAU,IAAI,sBAAsB,GAGrC,MAAM,UAAU,CAAC;AAElB,UAAU;AACV,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -2,6 +2,27 @@
|
|
|
2
2
|
* Type definitions for IC-SIWA
|
|
3
3
|
*/
|
|
4
4
|
import type { Principal } from "@dfinity/principal";
|
|
5
|
+
/**
|
|
6
|
+
* Options for preparing a login request
|
|
7
|
+
*
|
|
8
|
+
* Used for multi-tenant "SIWA as a Service" where each calling application
|
|
9
|
+
* can specify its own domain/uri for the wallet signing prompt.
|
|
10
|
+
*/
|
|
11
|
+
export interface PrepareLoginOptions {
|
|
12
|
+
/** The Avalanche address (0x-prefixed) */
|
|
13
|
+
address: string;
|
|
14
|
+
/**
|
|
15
|
+
* Optional domain to show in wallet (e.g., "game.tresr.community").
|
|
16
|
+
* Must be whitelisted in the canister's allowed_domains.
|
|
17
|
+
* Falls back to canister default if not provided.
|
|
18
|
+
*/
|
|
19
|
+
domain?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Optional URI to show in wallet (e.g., "https://game.tresr.community").
|
|
22
|
+
* Falls back to canister default if not provided.
|
|
23
|
+
*/
|
|
24
|
+
uri?: string;
|
|
25
|
+
}
|
|
5
26
|
/**
|
|
6
27
|
* Prepared login response from canister
|
|
7
28
|
*/
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,SAAS,EAAE,SAAS,CAAC;IACrB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,sBAAsB;IACtB,SAAS,EAAE,UAAU,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,OAAO,EAAE;QACP,sCAAsC;QACtC,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,qBAAqB;IACrB,WAAW,CAAC,IAAI,EAAE;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvD"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,SAAS,EAAE,SAAS,CAAC;IACrB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,sBAAsB;IACtB,SAAS,EAAE,UAAU,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,OAAO,EAAE;QACP,sCAAsC;QACtC,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,qBAAqB;IACrB,WAAW,CAAC,IAAI,EAAE;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ic-siwa",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Sign in with Avalanche for the Internet Computer",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -41,22 +41,22 @@
|
|
|
41
41
|
"wallet"
|
|
42
42
|
],
|
|
43
43
|
"author": "Irken Empire <dev@irkenempire.tech>",
|
|
44
|
-
"license": "
|
|
44
|
+
"license": "Unlicense",
|
|
45
45
|
"repository": {
|
|
46
46
|
"type": "git",
|
|
47
47
|
"url": "https://github.com/irken-empire/ic-siwa"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@dfinity/agent": "
|
|
51
|
-
"@dfinity/candid": "
|
|
52
|
-
"@dfinity/identity": "
|
|
53
|
-
"@dfinity/principal": "
|
|
50
|
+
"@dfinity/agent": "3.4.3",
|
|
51
|
+
"@dfinity/candid": "3.4.3",
|
|
52
|
+
"@dfinity/identity": "3.4.3",
|
|
53
|
+
"@dfinity/principal": "3.4.3"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@types/bun": "1.3.8",
|
|
57
|
-
"
|
|
57
|
+
"eslint": "9.39.2",
|
|
58
58
|
"prettier": "3.8.1",
|
|
59
|
-
"
|
|
59
|
+
"typescript": "5.9.3"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"viem": "2.45.1"
|