@xian-tech/wallet-core 0.1.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/README.md +17 -0
- package/dist/approvals.d.ts +7 -0
- package/dist/approvals.d.ts.map +1 -0
- package/dist/approvals.js +287 -0
- package/dist/approvals.js.map +1 -0
- package/dist/constants.d.ts +9 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +24 -0
- package/dist/constants.js.map +1 -0
- package/dist/controller.d.ts +96 -0
- package/dist/controller.d.ts.map +1 -0
- package/dist/controller.js +1082 -0
- package/dist/controller.js.map +1 -0
- package/dist/crypto.d.ts +25 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/crypto.js +199 -0
- package/dist/crypto.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +168 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +36 -0
package/README.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# @xian-tech/wallet-core
|
|
2
|
+
|
|
3
|
+
Reusable wallet-domain logic for Xian browser wallets.
|
|
4
|
+
|
|
5
|
+
This package lives in `xian-wallet-browser` and depends on the official
|
|
6
|
+
`@xian-tech/client` and `@xian-tech/provider` packages from the sibling `xian-js` repo.
|
|
7
|
+
|
|
8
|
+
It is intentionally UI-agnostic. It owns:
|
|
9
|
+
|
|
10
|
+
- wallet state models
|
|
11
|
+
- key encryption and recovery helpers, including BIP39-based recovery phrases
|
|
12
|
+
- approval rendering helpers
|
|
13
|
+
- the wallet controller that enforces provider permissions, approvals, durable
|
|
14
|
+
request lifecycle, network-preset management, and tx flow
|
|
15
|
+
|
|
16
|
+
It does not own browser-extension transport, popup rendering, or injected-page
|
|
17
|
+
bridges. Those stay in app-level code such as `apps/wallet-extension/`.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ApprovalKind, ApprovalView, PendingApprovalRecord } from "./types";
|
|
2
|
+
export declare function approvalKindFromMethod(method: string): ApprovalKind;
|
|
3
|
+
export declare function buildApprovalView(approval: PendingApprovalRecord, options?: {
|
|
4
|
+
account?: string;
|
|
5
|
+
chainId?: string;
|
|
6
|
+
}): ApprovalView;
|
|
7
|
+
//# sourceMappingURL=approvals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAuGjB,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAiBnE;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,YAAY,CAmNd"}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
function prettyJson(value) {
|
|
2
|
+
return JSON.stringify(value, null, 2);
|
|
3
|
+
}
|
|
4
|
+
function payloadForRequest(request) {
|
|
5
|
+
if (Array.isArray(request.params)) {
|
|
6
|
+
return request.params[0] ?? null;
|
|
7
|
+
}
|
|
8
|
+
return request.params ?? null;
|
|
9
|
+
}
|
|
10
|
+
function stringifyValue(value) {
|
|
11
|
+
if (value == null) {
|
|
12
|
+
return "Not provided";
|
|
13
|
+
}
|
|
14
|
+
if (typeof value === "string") {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
if (typeof value === "number" ||
|
|
18
|
+
typeof value === "bigint" ||
|
|
19
|
+
typeof value === "boolean") {
|
|
20
|
+
return String(value);
|
|
21
|
+
}
|
|
22
|
+
return prettyJson(value);
|
|
23
|
+
}
|
|
24
|
+
function compactDetail(label, value, options) {
|
|
25
|
+
if (value == null ||
|
|
26
|
+
value === "" ||
|
|
27
|
+
(typeof value === "number" && Number.isNaN(value))) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
label,
|
|
32
|
+
value: stringifyValue(value),
|
|
33
|
+
monospace: options?.monospace,
|
|
34
|
+
tone: options?.tone
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function compactDetails(details) {
|
|
38
|
+
return details.filter((detail) => detail != null);
|
|
39
|
+
}
|
|
40
|
+
function txPayloadFromRequestPayload(payload) {
|
|
41
|
+
if (typeof payload !== "object" || payload == null) {
|
|
42
|
+
return {};
|
|
43
|
+
}
|
|
44
|
+
const root = payload;
|
|
45
|
+
const tx = typeof root.tx === "object" && root.tx != null
|
|
46
|
+
? root.tx
|
|
47
|
+
: root;
|
|
48
|
+
const txPayload = typeof tx.payload === "object" && tx.payload != null
|
|
49
|
+
? tx.payload
|
|
50
|
+
: tx;
|
|
51
|
+
return txPayload;
|
|
52
|
+
}
|
|
53
|
+
function intentFromRequestPayload(payload) {
|
|
54
|
+
if (typeof payload !== "object" || payload == null) {
|
|
55
|
+
return {};
|
|
56
|
+
}
|
|
57
|
+
const root = payload;
|
|
58
|
+
return typeof root.intent === "object" && root.intent != null
|
|
59
|
+
? root.intent
|
|
60
|
+
: root;
|
|
61
|
+
}
|
|
62
|
+
function assetFromRequestPayload(payload) {
|
|
63
|
+
if (typeof payload !== "object" || payload == null) {
|
|
64
|
+
return {};
|
|
65
|
+
}
|
|
66
|
+
const root = payload;
|
|
67
|
+
return typeof root.options === "object" && root.options != null
|
|
68
|
+
? root.options
|
|
69
|
+
: root;
|
|
70
|
+
}
|
|
71
|
+
function messagePreview(message) {
|
|
72
|
+
if (message.length <= 160) {
|
|
73
|
+
return message;
|
|
74
|
+
}
|
|
75
|
+
return `${message.slice(0, 157)}...`;
|
|
76
|
+
}
|
|
77
|
+
export function approvalKindFromMethod(method) {
|
|
78
|
+
switch (method) {
|
|
79
|
+
case "xian_requestAccounts":
|
|
80
|
+
return "connect";
|
|
81
|
+
case "xian_signMessage":
|
|
82
|
+
return "signMessage";
|
|
83
|
+
case "xian_signTransaction":
|
|
84
|
+
return "signTransaction";
|
|
85
|
+
case "xian_sendTransaction":
|
|
86
|
+
return "sendTransaction";
|
|
87
|
+
case "xian_sendCall":
|
|
88
|
+
return "sendCall";
|
|
89
|
+
case "xian_watchAsset":
|
|
90
|
+
return "watchAsset";
|
|
91
|
+
default:
|
|
92
|
+
throw new Error(`unsupported approval method: ${method}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
export function buildApprovalView(approval, options) {
|
|
96
|
+
const payload = payloadForRequest(approval.request);
|
|
97
|
+
switch (approval.kind) {
|
|
98
|
+
case "connect":
|
|
99
|
+
return {
|
|
100
|
+
id: approval.id,
|
|
101
|
+
origin: approval.origin,
|
|
102
|
+
kind: approval.kind,
|
|
103
|
+
title: "Connect wallet",
|
|
104
|
+
description: "Allow this site to view your active address and request wallet actions.",
|
|
105
|
+
approveLabel: "Connect",
|
|
106
|
+
details: compactDetails([
|
|
107
|
+
compactDetail("Site", approval.origin, { monospace: true }),
|
|
108
|
+
compactDetail("Account", options?.account, { monospace: true }),
|
|
109
|
+
compactDetail("Network", options?.chainId),
|
|
110
|
+
compactDetail("Access", "View your address and request approvals")
|
|
111
|
+
]),
|
|
112
|
+
highlights: [
|
|
113
|
+
"Connection does not send a transaction or move funds.",
|
|
114
|
+
"Future signing and transaction requests will still need explicit approval."
|
|
115
|
+
],
|
|
116
|
+
warnings: [
|
|
117
|
+
"Only connect sites you trust. You can revoke site access from the wallet at any time."
|
|
118
|
+
],
|
|
119
|
+
payload: prettyJson({
|
|
120
|
+
origin: approval.origin,
|
|
121
|
+
account: options?.account ?? null,
|
|
122
|
+
chainId: options?.chainId ?? null
|
|
123
|
+
}),
|
|
124
|
+
payloadLabel: "Connection request",
|
|
125
|
+
account: options?.account,
|
|
126
|
+
chainId: options?.chainId,
|
|
127
|
+
createdAt: approval.createdAt
|
|
128
|
+
};
|
|
129
|
+
case "signMessage":
|
|
130
|
+
{
|
|
131
|
+
const message = typeof payload === "object" && payload != null
|
|
132
|
+
? String(payload.message ?? "")
|
|
133
|
+
: String(payload ?? "");
|
|
134
|
+
return {
|
|
135
|
+
id: approval.id,
|
|
136
|
+
origin: approval.origin,
|
|
137
|
+
kind: approval.kind,
|
|
138
|
+
title: "Sign message",
|
|
139
|
+
description: "Review the exact message carefully. Message signing should never be used as a substitute for transaction approval.",
|
|
140
|
+
approveLabel: "Sign message",
|
|
141
|
+
details: compactDetails([
|
|
142
|
+
compactDetail("Account", options?.account, { monospace: true }),
|
|
143
|
+
compactDetail("Network", options?.chainId),
|
|
144
|
+
compactDetail("Length", `${message.length} characters`),
|
|
145
|
+
compactDetail("Preview", messagePreview(message))
|
|
146
|
+
]),
|
|
147
|
+
highlights: message.length > 0 ? [messagePreview(message)] : [],
|
|
148
|
+
warnings: [
|
|
149
|
+
"Do not sign messages you do not understand.",
|
|
150
|
+
"Never sign a message that looks like a transaction payload or seed phrase request."
|
|
151
|
+
],
|
|
152
|
+
payload: message,
|
|
153
|
+
payloadLabel: "Full message",
|
|
154
|
+
account: options?.account,
|
|
155
|
+
chainId: options?.chainId,
|
|
156
|
+
createdAt: approval.createdAt
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
case "signTransaction":
|
|
160
|
+
{
|
|
161
|
+
const txPayload = txPayloadFromRequestPayload(payload);
|
|
162
|
+
return {
|
|
163
|
+
id: approval.id,
|
|
164
|
+
origin: approval.origin,
|
|
165
|
+
kind: approval.kind,
|
|
166
|
+
title: "Sign prepared transaction",
|
|
167
|
+
description: "The site already prepared a full transaction payload. Verify the sender, target contract, function, and stamp budget before signing.",
|
|
168
|
+
approveLabel: "Sign transaction",
|
|
169
|
+
details: compactDetails([
|
|
170
|
+
compactDetail("Sender", txPayload.sender, { monospace: true }),
|
|
171
|
+
compactDetail("Contract", txPayload.contract, { monospace: true }),
|
|
172
|
+
compactDetail("Function", txPayload.function),
|
|
173
|
+
compactDetail("Network", txPayload.chain_id ?? options?.chainId),
|
|
174
|
+
compactDetail("Nonce", txPayload.nonce),
|
|
175
|
+
compactDetail("Stamps", txPayload.stamps_supplied)
|
|
176
|
+
]),
|
|
177
|
+
highlights: [
|
|
178
|
+
`${stringifyValue(txPayload.contract ?? "unknown")}.${stringifyValue(txPayload.function ?? "unknown")}`
|
|
179
|
+
],
|
|
180
|
+
warnings: [
|
|
181
|
+
"Prepared transactions may perform arbitrary contract actions. Inspect the raw payload if anything looks unfamiliar."
|
|
182
|
+
],
|
|
183
|
+
payload: prettyJson(payload),
|
|
184
|
+
payloadLabel: "Raw transaction",
|
|
185
|
+
account: options?.account,
|
|
186
|
+
chainId: options?.chainId,
|
|
187
|
+
createdAt: approval.createdAt
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
case "sendTransaction":
|
|
191
|
+
{
|
|
192
|
+
const txPayload = txPayloadFromRequestPayload(payload);
|
|
193
|
+
return {
|
|
194
|
+
id: approval.id,
|
|
195
|
+
origin: approval.origin,
|
|
196
|
+
kind: approval.kind,
|
|
197
|
+
title: "Send prepared transaction",
|
|
198
|
+
description: "The site supplied a full unsigned transaction. Approving will sign and broadcast it from your wallet.",
|
|
199
|
+
approveLabel: "Send transaction",
|
|
200
|
+
details: compactDetails([
|
|
201
|
+
compactDetail("Sender", txPayload.sender, { monospace: true }),
|
|
202
|
+
compactDetail("Contract", txPayload.contract, { monospace: true }),
|
|
203
|
+
compactDetail("Function", txPayload.function),
|
|
204
|
+
compactDetail("Network", txPayload.chain_id ?? options?.chainId),
|
|
205
|
+
compactDetail("Nonce", txPayload.nonce),
|
|
206
|
+
compactDetail("Stamps", txPayload.stamps_supplied, {
|
|
207
|
+
tone: "warning"
|
|
208
|
+
})
|
|
209
|
+
]),
|
|
210
|
+
highlights: [
|
|
211
|
+
"This request can broadcast immediately after approval."
|
|
212
|
+
],
|
|
213
|
+
warnings: [
|
|
214
|
+
"Broadcasting a transaction may move funds or execute irreversible contract logic."
|
|
215
|
+
],
|
|
216
|
+
payload: prettyJson(payload),
|
|
217
|
+
payloadLabel: "Raw transaction",
|
|
218
|
+
account: options?.account,
|
|
219
|
+
chainId: options?.chainId,
|
|
220
|
+
createdAt: approval.createdAt
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
case "sendCall":
|
|
224
|
+
{
|
|
225
|
+
const intent = intentFromRequestPayload(payload);
|
|
226
|
+
const kwargs = typeof intent.kwargs === "object" && intent.kwargs != null
|
|
227
|
+
? intent.kwargs
|
|
228
|
+
: undefined;
|
|
229
|
+
return {
|
|
230
|
+
id: approval.id,
|
|
231
|
+
origin: approval.origin,
|
|
232
|
+
kind: approval.kind,
|
|
233
|
+
title: "Send contract call",
|
|
234
|
+
description: "The wallet will prepare, sign, and broadcast this intent on your behalf using the active account and latest nonce.",
|
|
235
|
+
approveLabel: "Approve call",
|
|
236
|
+
details: compactDetails([
|
|
237
|
+
compactDetail("Contract", intent.contract, { monospace: true }),
|
|
238
|
+
compactDetail("Function", intent.function),
|
|
239
|
+
compactDetail("Network", intent.chainId ?? options?.chainId),
|
|
240
|
+
compactDetail("Stamps", intent.stampsSupplied ?? intent.stamps, { tone: "warning" }),
|
|
241
|
+
compactDetail("Arguments", kwargs ? `${Object.keys(kwargs).length} field(s)` : undefined)
|
|
242
|
+
]),
|
|
243
|
+
highlights: [
|
|
244
|
+
`${stringifyValue(intent.contract ?? "unknown")}.${stringifyValue(intent.function ?? "unknown")}`
|
|
245
|
+
],
|
|
246
|
+
warnings: [
|
|
247
|
+
"The wallet will fill the sender and nonce at approval time. Confirm the contract and arguments match your intent."
|
|
248
|
+
],
|
|
249
|
+
payload: prettyJson(payload),
|
|
250
|
+
payloadLabel: "Raw call intent",
|
|
251
|
+
account: options?.account,
|
|
252
|
+
chainId: options?.chainId,
|
|
253
|
+
createdAt: approval.createdAt
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
case "watchAsset":
|
|
257
|
+
{
|
|
258
|
+
const asset = assetFromRequestPayload(payload);
|
|
259
|
+
return {
|
|
260
|
+
id: approval.id,
|
|
261
|
+
origin: approval.origin,
|
|
262
|
+
kind: approval.kind,
|
|
263
|
+
title: "Add asset to wallet",
|
|
264
|
+
description: "Allow this site to add an asset to your wallet list. This does not verify the asset’s legitimacy.",
|
|
265
|
+
approveLabel: "Add asset",
|
|
266
|
+
details: compactDetails([
|
|
267
|
+
compactDetail("Name", asset.name),
|
|
268
|
+
compactDetail("Symbol", asset.symbol),
|
|
269
|
+
compactDetail("Contract", asset.contract, { monospace: true }),
|
|
270
|
+
compactDetail("Decimals", asset.decimals)
|
|
271
|
+
]),
|
|
272
|
+
highlights: [
|
|
273
|
+
"Always verify the asset contract from an independent trusted source."
|
|
274
|
+
],
|
|
275
|
+
warnings: [
|
|
276
|
+
"Token metadata can be spoofed. Matching names and symbols do not prove authenticity."
|
|
277
|
+
],
|
|
278
|
+
payload: prettyJson(payload),
|
|
279
|
+
payloadLabel: "Asset metadata",
|
|
280
|
+
account: options?.account,
|
|
281
|
+
chainId: options?.chainId,
|
|
282
|
+
createdAt: approval.createdAt
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=approvals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { XianWalletCapabilities } from "@xian-tech/provider";
|
|
2
|
+
import type { WalletNetworkPreset } from "./types";
|
|
3
|
+
export declare const DEFAULT_RPC_URL = "http://127.0.0.1:26657";
|
|
4
|
+
export declare const DEFAULT_DASHBOARD_URL = "http://127.0.0.1:8080";
|
|
5
|
+
export declare const LOCAL_NETWORK_PRESET_ID = "local-node";
|
|
6
|
+
export declare const LOCAL_NETWORK_PRESET_NAME = "Local node";
|
|
7
|
+
export declare const DEFAULT_NETWORK_PRESETS: WalletNetworkPreset[];
|
|
8
|
+
export declare const DEFAULT_WALLET_CAPABILITIES: XianWalletCapabilities;
|
|
9
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,eAAe,2BAA2B,CAAC;AACxD,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAC7D,eAAO,MAAM,uBAAuB,eAAe,CAAC;AACpD,eAAO,MAAM,yBAAyB,eAAe,CAAC;AAEtD,eAAO,MAAM,uBAAuB,EAAE,mBAAmB,EAQxD,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,sBASzC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const DEFAULT_RPC_URL = "http://127.0.0.1:26657";
|
|
2
|
+
export const DEFAULT_DASHBOARD_URL = "http://127.0.0.1:8080";
|
|
3
|
+
export const LOCAL_NETWORK_PRESET_ID = "local-node";
|
|
4
|
+
export const LOCAL_NETWORK_PRESET_NAME = "Local node";
|
|
5
|
+
export const DEFAULT_NETWORK_PRESETS = [
|
|
6
|
+
{
|
|
7
|
+
id: LOCAL_NETWORK_PRESET_ID,
|
|
8
|
+
name: LOCAL_NETWORK_PRESET_NAME,
|
|
9
|
+
rpcUrl: DEFAULT_RPC_URL,
|
|
10
|
+
dashboardUrl: DEFAULT_DASHBOARD_URL,
|
|
11
|
+
builtin: true
|
|
12
|
+
}
|
|
13
|
+
];
|
|
14
|
+
export const DEFAULT_WALLET_CAPABILITIES = {
|
|
15
|
+
getWalletInfo: true,
|
|
16
|
+
prepareTransaction: true,
|
|
17
|
+
signMessage: true,
|
|
18
|
+
signTransaction: true,
|
|
19
|
+
sendTransaction: true,
|
|
20
|
+
sendCall: true,
|
|
21
|
+
switchChain: true,
|
|
22
|
+
watchAsset: true
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AACxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAC7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AACpD,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CAAC;AAEtD,MAAM,CAAC,MAAM,uBAAuB,GAA0B;IAC5D;QACE,EAAE,EAAE,uBAAuB;QAC3B,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,eAAe;QACvB,YAAY,EAAE,qBAAqB;QACnC,OAAO,EAAE,IAAI;KACd;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,IAAI;IACxB,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;CACjB,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Ed25519Signer } from "@xian-tech/client";
|
|
2
|
+
import { type BroadcastMode, type TransactionSubmission, type XianProviderRequest, type XianSignedTransaction, type XianUnsignedTransaction, type XianWalletDescriptor } from "@xian-tech/provider";
|
|
3
|
+
import type { ApprovalView, PersistedApproval, PopupState, ProviderRequestStartResult, ProviderRequestStatusResult, StoredWalletState, WalletControllerStore, WalletCreateResult, WalletNetworkPresetInput, WalletSerializedError, WalletSettingsInput, WalletSetupInput } from "./types";
|
|
4
|
+
export interface WalletNetworkClient {
|
|
5
|
+
getChainId(): Promise<string>;
|
|
6
|
+
buildTx(intent: {
|
|
7
|
+
sender: string;
|
|
8
|
+
contract: string;
|
|
9
|
+
function: string;
|
|
10
|
+
kwargs: Record<string, unknown>;
|
|
11
|
+
chainId?: string;
|
|
12
|
+
stamps?: number | bigint;
|
|
13
|
+
stampsSupplied?: number | bigint;
|
|
14
|
+
}): Promise<XianUnsignedTransaction>;
|
|
15
|
+
signTx(tx: XianUnsignedTransaction, signer: Ed25519Signer): Promise<XianSignedTransaction>;
|
|
16
|
+
broadcastTx(tx: XianSignedTransaction, options?: {
|
|
17
|
+
mode?: BroadcastMode;
|
|
18
|
+
waitForTx?: boolean;
|
|
19
|
+
timeoutMs?: number;
|
|
20
|
+
pollIntervalMs?: number;
|
|
21
|
+
}): Promise<TransactionSubmission>;
|
|
22
|
+
}
|
|
23
|
+
export interface WalletControllerOptions {
|
|
24
|
+
wallet: XianWalletDescriptor;
|
|
25
|
+
version: string;
|
|
26
|
+
store: WalletControllerStore;
|
|
27
|
+
createClient?(state: StoredWalletState): WalletNetworkClient;
|
|
28
|
+
onProviderEvent?(event: string, args: unknown[], targetOrigin?: string): Promise<void> | void;
|
|
29
|
+
onApprovalRequested?(approvalId: string, view: ApprovalView): Promise<void> | void;
|
|
30
|
+
createId?(): string;
|
|
31
|
+
now?(): number;
|
|
32
|
+
}
|
|
33
|
+
export declare class WalletController {
|
|
34
|
+
private readonly options;
|
|
35
|
+
private readonly requestWaiters;
|
|
36
|
+
private unlockedPrivateKey;
|
|
37
|
+
private unlockedSigner;
|
|
38
|
+
constructor(options: WalletControllerOptions);
|
|
39
|
+
private get store();
|
|
40
|
+
private providerCapabilities;
|
|
41
|
+
private createId;
|
|
42
|
+
private now;
|
|
43
|
+
private serializeError;
|
|
44
|
+
private getUnlockedSigner;
|
|
45
|
+
private currentClient;
|
|
46
|
+
private requireStoredWallet;
|
|
47
|
+
private activeNetworkPreset;
|
|
48
|
+
private loadWalletState;
|
|
49
|
+
private displayChainId;
|
|
50
|
+
private networkStatus;
|
|
51
|
+
private emitChainChangedForConnectedOrigins;
|
|
52
|
+
private applyActivePreset;
|
|
53
|
+
private requireConnectedOrigin;
|
|
54
|
+
private safeGetChainId;
|
|
55
|
+
private buildWalletInfo;
|
|
56
|
+
private persistWalletState;
|
|
57
|
+
private updateConnectedOrigin;
|
|
58
|
+
private updateWatchedAssets;
|
|
59
|
+
private sanitizeNetworkPresetInput;
|
|
60
|
+
private upsertNetworkPresetInState;
|
|
61
|
+
private broadcastProviderEvent;
|
|
62
|
+
private emitConnectionLifecycle;
|
|
63
|
+
private emitDisconnectLifecycle;
|
|
64
|
+
private prepareTransaction;
|
|
65
|
+
private signPreparedTransaction;
|
|
66
|
+
private sendPreparedTransaction;
|
|
67
|
+
private executeApprovedRequest;
|
|
68
|
+
private fulfillRequest;
|
|
69
|
+
private rejectRequest;
|
|
70
|
+
private createApprovalRequest;
|
|
71
|
+
private executeImmediateRequest;
|
|
72
|
+
getPopupState(): Promise<PopupState>;
|
|
73
|
+
createOrImportWallet(input: WalletSetupInput): Promise<WalletCreateResult>;
|
|
74
|
+
unlockWallet(password: string): Promise<PopupState>;
|
|
75
|
+
revealMnemonic(password: string): Promise<string>;
|
|
76
|
+
lockWallet(): Promise<PopupState>;
|
|
77
|
+
updateSettings(input: WalletSettingsInput): Promise<PopupState>;
|
|
78
|
+
disconnectOrigin(origin: string): Promise<PopupState>;
|
|
79
|
+
disconnectAllOrigins(): Promise<PopupState>;
|
|
80
|
+
removeWatchedAsset(contract: string): Promise<PopupState>;
|
|
81
|
+
saveNetworkPreset(input: WalletNetworkPresetInput): Promise<PopupState>;
|
|
82
|
+
switchNetwork(presetId: string): Promise<PopupState>;
|
|
83
|
+
removeNetworkPreset(presetId: string): Promise<PopupState>;
|
|
84
|
+
startProviderRequest(requestId: string, origin: string, request: XianProviderRequest): Promise<ProviderRequestStartResult>;
|
|
85
|
+
getProviderRequestStatus(requestId: string, options?: {
|
|
86
|
+
consume?: boolean;
|
|
87
|
+
}): Promise<ProviderRequestStatusResult>;
|
|
88
|
+
getApprovalView(approvalId: string): Promise<ApprovalView>;
|
|
89
|
+
listApprovalStates(): Promise<PersistedApproval[]>;
|
|
90
|
+
attachApprovalWindow(approvalId: string, windowId: number): Promise<void>;
|
|
91
|
+
resolveApproval(approvalId: string, approved: boolean): Promise<null>;
|
|
92
|
+
dismissApproval(approvalId: string, reason?: unknown): Promise<boolean>;
|
|
93
|
+
handleProviderRequest(origin: string, request: XianProviderRequest): Promise<unknown>;
|
|
94
|
+
}
|
|
95
|
+
export declare function errorFromSerializedWalletError(error: WalletSerializedError): Error;
|
|
96
|
+
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"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"}
|