neo-n3-walletkit 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.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +353 -0
  3. package/dist/address.d.ts +5 -0
  4. package/dist/address.d.ts.map +1 -0
  5. package/dist/address.js +16 -0
  6. package/dist/address.js.map +1 -0
  7. package/dist/contract.d.ts +21 -0
  8. package/dist/contract.d.ts.map +1 -0
  9. package/dist/contract.js +62 -0
  10. package/dist/contract.js.map +1 -0
  11. package/dist/errors.d.ts +11 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +21 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/index.d.ts +13 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +8 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/neoline/adapter.d.ts +35 -0
  20. package/dist/neoline/adapter.d.ts.map +1 -0
  21. package/dist/neoline/adapter.js +289 -0
  22. package/dist/neoline/adapter.js.map +1 -0
  23. package/dist/neoline/index.d.ts +3 -0
  24. package/dist/neoline/index.d.ts.map +1 -0
  25. package/dist/neoline/index.js +2 -0
  26. package/dist/neoline/index.js.map +1 -0
  27. package/dist/neoline/types.d.ts +86 -0
  28. package/dist/neoline/types.d.ts.map +1 -0
  29. package/dist/neoline/types.js +2 -0
  30. package/dist/neoline/types.js.map +1 -0
  31. package/dist/onegate/adapter.d.ts +35 -0
  32. package/dist/onegate/adapter.d.ts.map +1 -0
  33. package/dist/onegate/adapter.js +351 -0
  34. package/dist/onegate/adapter.js.map +1 -0
  35. package/dist/onegate/index.d.ts +3 -0
  36. package/dist/onegate/index.d.ts.map +1 -0
  37. package/dist/onegate/index.js +2 -0
  38. package/dist/onegate/index.js.map +1 -0
  39. package/dist/onegate/types.d.ts +80 -0
  40. package/dist/onegate/types.d.ts.map +1 -0
  41. package/dist/onegate/types.js +2 -0
  42. package/dist/onegate/types.js.map +1 -0
  43. package/dist/types.d.ts +69 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +2 -0
  46. package/dist/types.js.map +1 -0
  47. package/dist/wallet-connect/adapter.d.ts +33 -0
  48. package/dist/wallet-connect/adapter.d.ts.map +1 -0
  49. package/dist/wallet-connect/adapter.js +198 -0
  50. package/dist/wallet-connect/adapter.js.map +1 -0
  51. package/dist/wallet-connect/index.d.ts +3 -0
  52. package/dist/wallet-connect/index.d.ts.map +1 -0
  53. package/dist/wallet-connect/index.js +2 -0
  54. package/dist/wallet-connect/index.js.map +1 -0
  55. package/dist/wallet-connect/types.d.ts +16 -0
  56. package/dist/wallet-connect/types.d.ts.map +1 -0
  57. package/dist/wallet-connect/types.js +2 -0
  58. package/dist/wallet-connect/types.js.map +1 -0
  59. package/dist/wallet-kit.d.ts +40 -0
  60. package/dist/wallet-kit.d.ts.map +1 -0
  61. package/dist/wallet-kit.js +137 -0
  62. package/dist/wallet-kit.js.map +1 -0
  63. package/package.json +75 -0
@@ -0,0 +1,351 @@
1
+ import { addressToScriptHash } from "../address.js";
2
+ import { WalletNotConnectedError, WalletRequestError } from "../errors.js";
3
+ const SUPPORTED_METHODS = ["invokeFunction", "testInvoke"];
4
+ const DEFAULT_READY_TIMEOUT = 5_000;
5
+ const MAINNET_MAGIC = 860_833_102;
6
+ const TESTNET_MAGIC = 894_710_606;
7
+ /**
8
+ * Adapter for OneGate's current NEP-21 Neo N3 provider.
9
+ */
10
+ export class OneGateAdapter {
11
+ provider;
12
+ currentSession = null;
13
+ listeners = new Set();
14
+ eventsBound = false;
15
+ lastMethods = [...SUPPORTED_METHODS];
16
+ constructor(provider) {
17
+ this.provider = provider;
18
+ }
19
+ static async init(options = {}) {
20
+ const provider = await waitForOneGate(options.waitForReadyMs);
21
+ return new OneGateAdapter(provider);
22
+ }
23
+ static fromProvider(provider) {
24
+ return new OneGateAdapter(provider);
25
+ }
26
+ get session() {
27
+ return this.currentSession;
28
+ }
29
+ isConnected() {
30
+ return this.currentSession !== null;
31
+ }
32
+ getChainId() {
33
+ return this.currentSession?.network ?? null;
34
+ }
35
+ getAccountAddress() {
36
+ return this.currentSession?.accountAddress ?? null;
37
+ }
38
+ async manageSession(network, methods = []) {
39
+ this.assertSupportedMethods(methods);
40
+ if (methods.length > 0) {
41
+ this.lastMethods = [...methods];
42
+ }
43
+ this.bindEvents();
44
+ if (!this.provider.connected) {
45
+ return null;
46
+ }
47
+ try {
48
+ const providerNetwork = this.readNetwork();
49
+ const accounts = await this.provider.getAccounts();
50
+ const account = accounts[0];
51
+ if (!account ||
52
+ (network !== undefined && providerNetwork !== network)) {
53
+ return null;
54
+ }
55
+ return this.setConnectedSession(account.address, providerNetwork, methods);
56
+ }
57
+ catch {
58
+ return null;
59
+ }
60
+ }
61
+ async connect(network, methods) {
62
+ this.assertSupportedMethods(methods);
63
+ this.bindEvents();
64
+ const providerNetwork = this.readNetwork();
65
+ if (providerNetwork !== network) {
66
+ throw new WalletRequestError(`OneGate is connected to ${providerNetwork}, but WalletKit requires ${network}. Switch the network in OneGate and try again.`, { expected: network, actual: providerNetwork });
67
+ }
68
+ let account;
69
+ try {
70
+ account = (await this.provider.getAccounts())[0];
71
+ }
72
+ catch {
73
+ // A disconnected provider may require pickAddress before exposing accounts.
74
+ }
75
+ if (!account) {
76
+ const address = await this.provider.pickAddress("Select an account to connect");
77
+ account = { address, hash: `0x${addressToScriptHash(address)}` };
78
+ }
79
+ this.lastMethods = [...methods];
80
+ return this.setConnectedSession(account.address, network, methods);
81
+ }
82
+ async createConnection(network, methods) {
83
+ return {
84
+ approval: () => this.connect(network, methods)
85
+ };
86
+ }
87
+ async disconnect() {
88
+ // NEP-21 exposes no disconnect method, so this clears WalletKit's session.
89
+ this.setSession(null);
90
+ }
91
+ onSessionChange(listener) {
92
+ this.listeners.add(listener);
93
+ return () => this.listeners.delete(listener);
94
+ }
95
+ async request(method, params, _context) {
96
+ if (!this.currentSession) {
97
+ throw new WalletNotConnectedError();
98
+ }
99
+ const request = requireInvocation(params);
100
+ if (method === "invokeFunction") {
101
+ return this.invoke(request);
102
+ }
103
+ if (method === "testInvoke") {
104
+ return this.testInvoke(request);
105
+ }
106
+ throw new WalletRequestError(`OneGate does not support the WalletKit method "${method}".`, method);
107
+ }
108
+ async invoke(request) {
109
+ const invocations = request.invocations.map(formatInvocation);
110
+ const signers = formatSigners(request.signers ?? []);
111
+ const options = writeOptions(request);
112
+ return this.provider.invoke(invocations, signers, undefined, options);
113
+ }
114
+ async testInvoke(request) {
115
+ if (request.invocations.length !== 1) {
116
+ throw new WalletRequestError("OneGate testInvoke currently supports one invocation per request.", request);
117
+ }
118
+ const invocation = request.invocations[0];
119
+ if (!invocation) {
120
+ throw new WalletRequestError("Expected a Neo contract invocation request.", request);
121
+ }
122
+ return normalizeReadResult(await this.provider.call(formatInvocation(invocation)));
123
+ }
124
+ assertSupportedMethods(methods) {
125
+ const unsupported = methods.filter(method => !SUPPORTED_METHODS.includes(method));
126
+ if (unsupported.length > 0) {
127
+ throw new WalletRequestError(`OneGate does not support these WalletKit methods: ${unsupported.join(", ")}.`, unsupported);
128
+ }
129
+ }
130
+ readNetwork() {
131
+ const network = toNetworkType(this.provider.network);
132
+ if (!network) {
133
+ throw new WalletRequestError(`WalletKit does not support OneGate network magic ${this.provider.network}.`, this.provider.network);
134
+ }
135
+ return network;
136
+ }
137
+ bindEvents() {
138
+ if (this.eventsBound) {
139
+ return;
140
+ }
141
+ this.eventsBound = true;
142
+ this.provider.on("accountchanged", event => {
143
+ this.refreshAccount(readAccounts(event)[0]);
144
+ });
145
+ this.provider.on("networkchanged", () => {
146
+ void this.refreshSession();
147
+ });
148
+ }
149
+ refreshAccount(account) {
150
+ if (!account) {
151
+ this.setSession(null);
152
+ return;
153
+ }
154
+ try {
155
+ this.setConnectedSession(account.address, this.readNetwork(), this.lastMethods);
156
+ }
157
+ catch {
158
+ this.setSession(null);
159
+ }
160
+ }
161
+ async refreshSession() {
162
+ try {
163
+ const account = (await this.provider.getAccounts())[0];
164
+ this.refreshAccount(account);
165
+ }
166
+ catch {
167
+ this.setSession(null);
168
+ }
169
+ }
170
+ setConnectedSession(accountAddress, network, methods) {
171
+ this.lastMethods = [...methods];
172
+ const session = {
173
+ provider: "onegate",
174
+ network,
175
+ methods: [...methods],
176
+ accountAddress,
177
+ raw: this.provider
178
+ };
179
+ this.setSession(session);
180
+ return session;
181
+ }
182
+ setSession(session) {
183
+ this.currentSession = session;
184
+ for (const listener of this.listeners) {
185
+ void listener(session);
186
+ }
187
+ }
188
+ }
189
+ function formatInvocation(invocation) {
190
+ return {
191
+ hash: withHexPrefix(invocation.scriptHash),
192
+ operation: invocation.operation,
193
+ args: (invocation.args ?? []).map(formatArg),
194
+ ...(invocation.abortOnFail === undefined
195
+ ? {}
196
+ : { abortOnFail: invocation.abortOnFail })
197
+ };
198
+ }
199
+ function formatArg(arg) {
200
+ if (arg.type === "Address") {
201
+ return {
202
+ type: "Hash160",
203
+ value: `0x${addressToScriptHash(arg.value)}`
204
+ };
205
+ }
206
+ if (arg.type === "Hash160") {
207
+ return {
208
+ ...arg,
209
+ value: withHexPrefix(arg.value)
210
+ };
211
+ }
212
+ return arg;
213
+ }
214
+ function formatSigners(signers) {
215
+ return signers.map(signer => {
216
+ if (!signer.account) {
217
+ throw new WalletRequestError("OneGate requires an account on each signer.", signer);
218
+ }
219
+ return {
220
+ account: withHexPrefix(signer.account),
221
+ scopes: formatScopes(signer.scopes),
222
+ ...(signer.allowedContracts === undefined
223
+ ? {}
224
+ : { allowedContracts: signer.allowedContracts.map(withHexPrefix) }),
225
+ ...(signer.allowedGroups === undefined
226
+ ? {}
227
+ : { allowedGroups: signer.allowedGroups }),
228
+ ...(signer.rules === undefined ? {} : { rules: signer.rules })
229
+ };
230
+ });
231
+ }
232
+ function formatScopes(scopes) {
233
+ if (typeof scopes === "string") {
234
+ return scopes;
235
+ }
236
+ if (scopes === 0) {
237
+ return "None";
238
+ }
239
+ if (scopes === 128) {
240
+ return "Global";
241
+ }
242
+ if ((scopes & ~(1 | 16 | 32 | 64)) !== 0) {
243
+ throw new WalletRequestError(`Unsupported OneGate signer scope ${scopes}.`, scopes);
244
+ }
245
+ const values = [];
246
+ if ((scopes & 1) !== 0)
247
+ values.push("CalledByEntry");
248
+ if ((scopes & 16) !== 0)
249
+ values.push("CustomContracts");
250
+ if ((scopes & 32) !== 0)
251
+ values.push("CustomGroups");
252
+ if ((scopes & 64) !== 0)
253
+ values.push("WitnessRules");
254
+ if (values.length === 0) {
255
+ throw new WalletRequestError(`Unsupported OneGate signer scope ${scopes}.`, scopes);
256
+ }
257
+ return values.join(", ");
258
+ }
259
+ function writeOptions(request) {
260
+ if (request.extraNetworkFee !== undefined ||
261
+ request.networkFeeOverride !== undefined) {
262
+ throw new WalletRequestError("OneGate NEP-21 does not support network-fee overrides.", request);
263
+ }
264
+ return {
265
+ ...(request.systemFeeOverride === undefined
266
+ ? {}
267
+ : { suggestedSystemFee: request.systemFeeOverride }),
268
+ ...(request.extraSystemFee === undefined
269
+ ? {}
270
+ : { extraSystemFee: request.extraSystemFee })
271
+ };
272
+ }
273
+ function normalizeReadResult(result) {
274
+ return {
275
+ script: result.script,
276
+ state: result.state === "HALT" ? "HALT" : "FAULT",
277
+ gasconsumed: String(result.gasconsumed),
278
+ exception: result.exception ?? null,
279
+ notifications: result.notifications,
280
+ stack: result.stack
281
+ };
282
+ }
283
+ function requireInvocation(value) {
284
+ if (!value ||
285
+ typeof value !== "object" ||
286
+ !("invocations" in value) ||
287
+ !Array.isArray(value.invocations) ||
288
+ value.invocations.length === 0) {
289
+ throw new WalletRequestError("Expected a Neo contract invocation request.", value);
290
+ }
291
+ return value;
292
+ }
293
+ function toNetworkType(network) {
294
+ if (network === MAINNET_MAGIC) {
295
+ return "neo3:mainnet";
296
+ }
297
+ if (network === TESTNET_MAGIC) {
298
+ return "neo3:testnet";
299
+ }
300
+ return null;
301
+ }
302
+ function withHexPrefix(value) {
303
+ return value.startsWith("0x") ? value : `0x${value}`;
304
+ }
305
+ function readAccounts(event) {
306
+ const detail = event.detail;
307
+ return Array.isArray(detail?.accounts)
308
+ ? detail.accounts
309
+ : [];
310
+ }
311
+ function isOneGateProvider(value) {
312
+ if (!value || typeof value !== "object") {
313
+ return false;
314
+ }
315
+ const provider = value;
316
+ const identity = `${provider.name ?? ""} ${provider.website ?? ""}`.toLowerCase();
317
+ return (identity.includes("onegate") &&
318
+ typeof provider.getAccounts === "function" &&
319
+ typeof provider.call === "function" &&
320
+ typeof provider.invoke === "function");
321
+ }
322
+ async function waitForOneGate(waitForReadyMs = DEFAULT_READY_TIMEOUT) {
323
+ if (typeof window === "undefined") {
324
+ throw new WalletRequestError("OneGate requires a browser or OneGate mobile dApp browser.", null);
325
+ }
326
+ const existing = window.OneGate;
327
+ if (isOneGateProvider(existing)) {
328
+ return existing;
329
+ }
330
+ return new Promise((resolve, reject) => {
331
+ const readyEvent = "Neo.DapiProvider.ready";
332
+ const onReady = (event) => {
333
+ const provider = event.detail?.provider;
334
+ if (!isOneGateProvider(provider)) {
335
+ return;
336
+ }
337
+ window.clearTimeout(timeout);
338
+ window.removeEventListener(readyEvent, onReady);
339
+ resolve(provider);
340
+ };
341
+ const timeout = window.setTimeout(() => {
342
+ window.removeEventListener(readyEvent, onReady);
343
+ reject(new WalletRequestError("OneGate NEP-21 provider was not detected. Open the dApp inside OneGate and try again.", null));
344
+ }, waitForReadyMs);
345
+ window.addEventListener(readyEvent, onReady);
346
+ window.dispatchEvent(new CustomEvent("Neo.DapiProvider.request", {
347
+ detail: { version: "1.0" }
348
+ }));
349
+ });
350
+ }
351
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/onegate/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { OneGateAdapter } from "./adapter.js";
2
+ export type { OneGateAccount, OneGateInvocation, OneGateInvocationResult, OneGateNetwork, OneGateOptions, OneGateProvider, OneGateSigner, OneGateTransactionOptions, OneGateWitnessScope } from "./types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/onegate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { OneGateAdapter } from "./adapter.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/onegate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,80 @@
1
+ import type { Arg } from "@cityofzion/neon-dappkit-types";
2
+ import type { WalletKitClientOptions } from "../types.js";
3
+ export interface OneGateOptions extends WalletKitClientOptions {
4
+ /** Time to wait for OneGate to answer the NEP-21 provider request. */
5
+ waitForReadyMs?: number;
6
+ }
7
+ export type OneGateNetwork = number;
8
+ export interface OneGateAccount {
9
+ hash: string;
10
+ address: string;
11
+ label?: string;
12
+ contract?: {
13
+ script?: string;
14
+ parameters: Array<{
15
+ name?: string;
16
+ type: string;
17
+ }>;
18
+ deployed: boolean;
19
+ };
20
+ extra?: unknown;
21
+ }
22
+ export type OneGateWitnessScope = "None" | "CalledByEntry" | "CustomContracts" | "CustomGroups" | "WitnessRules" | "Global" | string;
23
+ export interface OneGateSigner {
24
+ account: string;
25
+ scopes: OneGateWitnessScope;
26
+ allowedContracts?: string[];
27
+ allowedGroups?: string[];
28
+ rules?: unknown[];
29
+ }
30
+ export interface OneGateInvocation {
31
+ hash: string;
32
+ operation: string;
33
+ args?: Arg[];
34
+ abortOnFail?: boolean;
35
+ }
36
+ export interface OneGateInvocationResult {
37
+ script: string;
38
+ state: string;
39
+ gasconsumed: number | string;
40
+ exception?: string;
41
+ notifications: unknown[];
42
+ stack: unknown[];
43
+ }
44
+ export interface OneGateTransactionOptions {
45
+ suggestedSystemFee?: number | string;
46
+ extraSystemFee?: number | string;
47
+ validUntilBlock?: number;
48
+ }
49
+ export interface OneGateProvider {
50
+ readonly name: string;
51
+ readonly version: string;
52
+ readonly dapiVersion: string;
53
+ readonly compatibility: string[];
54
+ readonly connected: boolean;
55
+ readonly network: OneGateNetwork;
56
+ readonly supportedNetworks: OneGateNetwork[];
57
+ readonly icon: string;
58
+ readonly website: string;
59
+ readonly extra: unknown;
60
+ authenticate(payload: Record<string, unknown>): Promise<Record<string, unknown>>;
61
+ getAccounts(): Promise<OneGateAccount[]>;
62
+ pickAddress(prompt?: string): Promise<string>;
63
+ getBalance(asset: string, account: string): Promise<number | string>;
64
+ getTokenInfo(hash: string): Promise<Record<string, unknown>>;
65
+ call(invocation: OneGateInvocation): Promise<OneGateInvocationResult>;
66
+ getBlock(hashOrIndex: string | number): Promise<Record<string, unknown>>;
67
+ getBlockCount(): Promise<number>;
68
+ getTransaction(txid: string): Promise<Record<string, unknown>>;
69
+ getApplicationLog(txid: string): Promise<Record<string, unknown>>;
70
+ getStorage(hash: string, key: string): Promise<string>;
71
+ send(asset: string, from: string, to: string, amount: number | string, data?: Arg): Promise<string>;
72
+ invoke(invocations: OneGateInvocation[], signers?: OneGateSigner[], attributes?: Array<Record<string, unknown>>, options?: OneGateTransactionOptions): Promise<string>;
73
+ makeTransaction(invocations: OneGateInvocation[], signers?: OneGateSigner[], attributes?: Array<Record<string, unknown>>, options?: OneGateTransactionOptions): Promise<Record<string, unknown>>;
74
+ sign(context: Record<string, unknown>): Promise<Record<string, unknown>>;
75
+ signMessage(message: string, account?: string, options?: Record<string, boolean>): Promise<Record<string, unknown>>;
76
+ relay(context: Record<string, unknown>): Promise<string>;
77
+ on(event: "accountchanged" | "networkchanged", listener: (event: CustomEvent) => void): void;
78
+ removeListener(event: "accountchanged" | "networkchanged", listener: (event: CustomEvent) => void): void;
79
+ }
80
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/onegate/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/onegate/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
1
+ import type { Arg, ContractInvocationMulti, Signer } from "@cityofzion/neon-dappkit-types";
2
+ export interface ConnectedAccount {
3
+ address: string;
4
+ /** Neo N3 script hash without the 0x prefix. */
5
+ scriptHash: string;
6
+ }
7
+ export type NetworkType = "neo3:private" | "neo3:testnet" | "neo3:mainnet";
8
+ export type Method = "invokeFunction" | "testInvoke" | "signMessage" | "verifyMessage" | "traverseIterator" | "getWalletInfo" | "getNetworkVersion" | "encrypt" | "decrypt" | "decryptFromArray" | "calculateFee" | "signTransaction" | "wipeRequests" | "withContext";
9
+ export type WalletProvider = "walletconnect" | "neoline" | "onegate";
10
+ export interface WalletSession {
11
+ provider: WalletProvider;
12
+ network: NetworkType;
13
+ methods: Method[];
14
+ accountAddress: string;
15
+ /** Provider-specific session data. */
16
+ raw?: unknown;
17
+ }
18
+ export interface ConnectionProposal {
19
+ uri?: string;
20
+ approval: () => Promise<WalletSession>;
21
+ }
22
+ export type SessionListener = (session: WalletSession | null) => void | Promise<void>;
23
+ export interface WalletAdapter {
24
+ readonly session: WalletSession | null;
25
+ isConnected(): boolean;
26
+ getChainId(): NetworkType | null;
27
+ getAccountAddress(): string | null;
28
+ manageSession(network?: NetworkType, methods?: Method[]): Promise<WalletSession | null>;
29
+ connect(network: NetworkType, methods: Method[]): Promise<WalletSession>;
30
+ createConnection(network: NetworkType, methods: Method[]): Promise<ConnectionProposal>;
31
+ disconnect(): Promise<void>;
32
+ onSessionChange(listener: SessionListener): () => void;
33
+ request<T>(method: Method, params: unknown, context?: string): Promise<T>;
34
+ }
35
+ export interface WalletKitClientOptions {
36
+ /** Defaults to neo3:testnet to avoid accidental mainnet calls. */
37
+ network?: NetworkType;
38
+ /** Defaults to invokeFunction and testInvoke. */
39
+ methods?: Method[];
40
+ /** Restore an existing provider session during initialization. */
41
+ manageSession?: boolean;
42
+ }
43
+ export type WalletArg = Arg | {
44
+ type: "Address";
45
+ value: string;
46
+ };
47
+ export interface ContractOptions {
48
+ /** Signers used when a call does not provide its own signers. */
49
+ signers?: Signer[];
50
+ /**
51
+ * Automatically use the connected account with CalledByEntry scope.
52
+ * Defaults to true when signers are not provided.
53
+ */
54
+ includeConnectedSigner?: boolean;
55
+ }
56
+ export interface ContractCallOptions extends Omit<ContractInvocationMulti, "invocations" | "signers"> {
57
+ signers?: Signer[];
58
+ includeConnectedSigner?: boolean;
59
+ abortOnFail?: boolean;
60
+ /** Message displayed by wallets that support contextual messages. */
61
+ context?: string;
62
+ }
63
+ export type ContractArgs = WalletArg[];
64
+ export interface ContractMethod {
65
+ operation: string;
66
+ args?: ContractArgs;
67
+ options?: ContractCallOptions;
68
+ }
69
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import type { SignClient as SignClientConstructor } from "@walletconnect/sign-client";
2
+ import type { ConnectionProposal, Method, NetworkType, SessionListener, WalletSession } from "../types.js";
3
+ import type { WalletConnectAdapter, WalletConnectOptions } from "./types.js";
4
+ type SignClientInstance = InstanceType<typeof SignClientConstructor>;
5
+ type ClientInitOptions = Pick<WalletConnectOptions, "projectId" | "metadata" | "relayUrl" | "walletUrl">;
6
+ /**
7
+ * Small Neo-specific adapter around the current WalletConnect Sign Client.
8
+ */
9
+ export declare class NeoWalletConnect implements WalletConnectAdapter {
10
+ readonly signClient: SignClientInstance;
11
+ private currentSession;
12
+ private rawSession;
13
+ private readonly listeners;
14
+ private readonly walletUrl;
15
+ private isManagingSession;
16
+ private constructor();
17
+ static init(options: ClientInitOptions): Promise<NeoWalletConnect>;
18
+ static fromSignClient(client: SignClientInstance, walletUrl?: string): NeoWalletConnect;
19
+ get session(): WalletSession | null;
20
+ isConnected(): boolean;
21
+ getChainId(): NetworkType | null;
22
+ getAccountAddress(): string | null;
23
+ manageSession(network?: NetworkType, methods?: Method[]): Promise<WalletSession | null>;
24
+ connect(network: NetworkType, methods: Method[]): Promise<WalletSession>;
25
+ createConnection(network: NetworkType, methods: Method[]): Promise<ConnectionProposal>;
26
+ disconnect(): Promise<void>;
27
+ onSessionChange(listener: SessionListener): () => void;
28
+ request<T>(method: Method, params: unknown, context?: string): Promise<T>;
29
+ private setSession;
30
+ private setRawSession;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/wallet-connect/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,IAAI,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAOtF,OAAO,KAAK,EACV,kBAAkB,EAClB,MAAM,EACN,WAAW,EACX,eAAe,EACf,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAMpB,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAErE,KAAK,iBAAiB,GAAG,IAAI,CAC3B,oBAAoB,EACpB,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CACpD,CAAC;AAEF;;GAEG;AACH,qBAAa,gBAAiB,YAAW,oBAAoB;IAC3D,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAExC,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO;WAKM,IAAI,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAWxE,MAAM,CAAC,cAAc,CACnB,MAAM,EAAE,kBAAkB,EAC1B,SAAS,CAAC,EAAE,MAAM,GACjB,gBAAgB;IAInB,IAAI,OAAO,IAAI,aAAa,GAAG,IAAI,CAElC;IAED,WAAW,IAAI,OAAO;IAItB,UAAU,IAAI,WAAW,GAAG,IAAI;IAIhC,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAI5B,aAAa,CACjB,OAAO,CAAC,EAAE,WAAW,EACrB,OAAO,GAAE,MAAM,EAAO,GACrB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAuC1B,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAmBxE,gBAAgB,CACpB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,kBAAkB,CAAC;IAuBxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAKhD,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,CAAC,CAAC;IAkCb,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,aAAa;CA8BtB"}