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.
- package/LICENSE +21 -0
- package/README.md +353 -0
- package/dist/address.d.ts +5 -0
- package/dist/address.d.ts.map +1 -0
- package/dist/address.js +16 -0
- package/dist/address.js.map +1 -0
- package/dist/contract.d.ts +21 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/contract.js +62 -0
- package/dist/contract.js.map +1 -0
- package/dist/errors.d.ts +11 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +21 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/neoline/adapter.d.ts +35 -0
- package/dist/neoline/adapter.d.ts.map +1 -0
- package/dist/neoline/adapter.js +289 -0
- package/dist/neoline/adapter.js.map +1 -0
- package/dist/neoline/index.d.ts +3 -0
- package/dist/neoline/index.d.ts.map +1 -0
- package/dist/neoline/index.js +2 -0
- package/dist/neoline/index.js.map +1 -0
- package/dist/neoline/types.d.ts +86 -0
- package/dist/neoline/types.d.ts.map +1 -0
- package/dist/neoline/types.js +2 -0
- package/dist/neoline/types.js.map +1 -0
- package/dist/onegate/adapter.d.ts +35 -0
- package/dist/onegate/adapter.d.ts.map +1 -0
- package/dist/onegate/adapter.js +351 -0
- package/dist/onegate/adapter.js.map +1 -0
- package/dist/onegate/index.d.ts +3 -0
- package/dist/onegate/index.d.ts.map +1 -0
- package/dist/onegate/index.js +2 -0
- package/dist/onegate/index.js.map +1 -0
- package/dist/onegate/types.d.ts +80 -0
- package/dist/onegate/types.d.ts.map +1 -0
- package/dist/onegate/types.js +2 -0
- package/dist/onegate/types.js.map +1 -0
- package/dist/types.d.ts +69 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/wallet-connect/adapter.d.ts +33 -0
- package/dist/wallet-connect/adapter.d.ts.map +1 -0
- package/dist/wallet-connect/adapter.js +198 -0
- package/dist/wallet-connect/adapter.js.map +1 -0
- package/dist/wallet-connect/index.d.ts +3 -0
- package/dist/wallet-connect/index.d.ts.map +1 -0
- package/dist/wallet-connect/index.js +2 -0
- package/dist/wallet-connect/index.js.map +1 -0
- package/dist/wallet-connect/types.d.ts +16 -0
- package/dist/wallet-connect/types.d.ts.map +1 -0
- package/dist/wallet-connect/types.js +2 -0
- package/dist/wallet-connect/types.js.map +1 -0
- package/dist/wallet-kit.d.ts +40 -0
- package/dist/wallet-kit.d.ts.map +1 -0
- package/dist/wallet-kit.js +137 -0
- package/dist/wallet-kit.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { WalletNotConnectedError, WalletRequestError } from "../errors.js";
|
|
2
|
+
const NEO_NAMESPACE = "neo3";
|
|
3
|
+
const COMPATIBILITY_VERSION = 3;
|
|
4
|
+
const DEFAULT_WALLET_URL = "https://neon.coz.io/connect";
|
|
5
|
+
/**
|
|
6
|
+
* Small Neo-specific adapter around the current WalletConnect Sign Client.
|
|
7
|
+
*/
|
|
8
|
+
export class NeoWalletConnect {
|
|
9
|
+
signClient;
|
|
10
|
+
currentSession = null;
|
|
11
|
+
rawSession = null;
|
|
12
|
+
listeners = new Set();
|
|
13
|
+
walletUrl;
|
|
14
|
+
isManagingSession = false;
|
|
15
|
+
constructor(client, walletUrl) {
|
|
16
|
+
this.signClient = client;
|
|
17
|
+
this.walletUrl = walletUrl ?? DEFAULT_WALLET_URL;
|
|
18
|
+
}
|
|
19
|
+
static async init(options) {
|
|
20
|
+
const { SignClient } = await import("@walletconnect/sign-client");
|
|
21
|
+
const client = await SignClient.init({
|
|
22
|
+
projectId: options.projectId,
|
|
23
|
+
metadata: options.metadata,
|
|
24
|
+
...(options.relayUrl ? { relayUrl: options.relayUrl } : {})
|
|
25
|
+
});
|
|
26
|
+
return new NeoWalletConnect(client, options.walletUrl);
|
|
27
|
+
}
|
|
28
|
+
static fromSignClient(client, walletUrl) {
|
|
29
|
+
return new NeoWalletConnect(client, walletUrl);
|
|
30
|
+
}
|
|
31
|
+
get session() {
|
|
32
|
+
return this.currentSession;
|
|
33
|
+
}
|
|
34
|
+
isConnected() {
|
|
35
|
+
return this.currentSession !== null;
|
|
36
|
+
}
|
|
37
|
+
getChainId() {
|
|
38
|
+
return this.currentSession?.network ?? null;
|
|
39
|
+
}
|
|
40
|
+
getAccountAddress() {
|
|
41
|
+
return this.currentSession?.accountAddress ?? null;
|
|
42
|
+
}
|
|
43
|
+
async manageSession(network, methods = []) {
|
|
44
|
+
if (!this.isManagingSession) {
|
|
45
|
+
this.isManagingSession = true;
|
|
46
|
+
this.signClient.on("session_delete", event => {
|
|
47
|
+
if (event.topic === this.rawSession?.topic) {
|
|
48
|
+
this.setRawSession(null);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
this.signClient.on("session_expire", event => {
|
|
52
|
+
if (event.topic === this.rawSession?.topic) {
|
|
53
|
+
this.setRawSession(null);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
this.signClient.on("session_update", event => {
|
|
57
|
+
const updated = this.signClient.session.values.find(value => value.topic === event.topic);
|
|
58
|
+
if (updated) {
|
|
59
|
+
this.setRawSession(updated);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const session = this.signClient.session.values.find(value => {
|
|
64
|
+
const namespace = value.namespaces[NEO_NAMESPACE];
|
|
65
|
+
return (namespace?.accounts.some(account => !network || account.startsWith(`${network}:`)) &&
|
|
66
|
+
methods.every(method => namespace.methods.includes(method)));
|
|
67
|
+
}) ?? null;
|
|
68
|
+
this.setRawSession(session);
|
|
69
|
+
return this.currentSession;
|
|
70
|
+
}
|
|
71
|
+
async connect(network, methods) {
|
|
72
|
+
const { uri, approval } = await this.createConnection(network, methods);
|
|
73
|
+
if (uri) {
|
|
74
|
+
if (typeof window === "undefined") {
|
|
75
|
+
throw new WalletRequestError("connect() requires a browser window. Use createConnection() for a custom connection flow.", uri);
|
|
76
|
+
}
|
|
77
|
+
const connectUrl = new URL(this.walletUrl);
|
|
78
|
+
connectUrl.searchParams.set("uri", uri);
|
|
79
|
+
window.open(connectUrl, "_blank")?.focus();
|
|
80
|
+
}
|
|
81
|
+
return approval();
|
|
82
|
+
}
|
|
83
|
+
async createConnection(network, methods) {
|
|
84
|
+
const { approval, uri } = await this.signClient.connect({
|
|
85
|
+
requiredNamespaces: {
|
|
86
|
+
[NEO_NAMESPACE]: {
|
|
87
|
+
chains: [network],
|
|
88
|
+
methods,
|
|
89
|
+
events: []
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
const approve = async () => {
|
|
94
|
+
const session = await approval();
|
|
95
|
+
this.setRawSession(session);
|
|
96
|
+
return this.currentSession;
|
|
97
|
+
};
|
|
98
|
+
return {
|
|
99
|
+
approval: approve,
|
|
100
|
+
...(uri ? { uri: `${uri}&wccv=${COMPATIBILITY_VERSION}` } : {})
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
async disconnect() {
|
|
104
|
+
if (!this.currentSession) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (!this.rawSession) {
|
|
108
|
+
this.setRawSession(null);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
await this.signClient.disconnect({
|
|
112
|
+
topic: this.rawSession.topic,
|
|
113
|
+
reason: {
|
|
114
|
+
code: 5900,
|
|
115
|
+
message: "USER_DISCONNECTED"
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
this.setRawSession(null);
|
|
119
|
+
}
|
|
120
|
+
onSessionChange(listener) {
|
|
121
|
+
this.listeners.add(listener);
|
|
122
|
+
return () => this.listeners.delete(listener);
|
|
123
|
+
}
|
|
124
|
+
async request(method, params, context) {
|
|
125
|
+
const session = this.rawSession;
|
|
126
|
+
if (!session || !this.currentSession) {
|
|
127
|
+
throw new WalletNotConnectedError();
|
|
128
|
+
}
|
|
129
|
+
const chainId = session.namespaces[NEO_NAMESPACE]?.accounts[0]
|
|
130
|
+
?.split(":")
|
|
131
|
+
.slice(0, 2)
|
|
132
|
+
.join(":") ?? null;
|
|
133
|
+
if (!chainId) {
|
|
134
|
+
throw new WalletRequestError("The connected session does not contain a Neo N3 account.", session);
|
|
135
|
+
}
|
|
136
|
+
const requestParams = context && params !== null && typeof params === "object" && !Array.isArray(params)
|
|
137
|
+
? { ...params, contextualMessage: context }
|
|
138
|
+
: params;
|
|
139
|
+
return this.signClient.request({
|
|
140
|
+
topic: session.topic,
|
|
141
|
+
chainId,
|
|
142
|
+
request: {
|
|
143
|
+
method,
|
|
144
|
+
params: requestParams
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
setSession(session) {
|
|
149
|
+
this.currentSession = session;
|
|
150
|
+
for (const listener of this.listeners) {
|
|
151
|
+
void listener(session);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
setRawSession(session) {
|
|
155
|
+
this.rawSession = session;
|
|
156
|
+
if (!session) {
|
|
157
|
+
this.setSession(null);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const account = session.namespaces[NEO_NAMESPACE]?.accounts[0];
|
|
161
|
+
const network = account?.split(":").slice(0, 2).join(":");
|
|
162
|
+
const accountAddress = account?.split(":").slice(2).join(":");
|
|
163
|
+
const methods = session.namespaces[NEO_NAMESPACE]?.methods ?? [];
|
|
164
|
+
if (!accountAddress ||
|
|
165
|
+
(network !== "neo3:private" &&
|
|
166
|
+
network !== "neo3:testnet" &&
|
|
167
|
+
network !== "neo3:mainnet")) {
|
|
168
|
+
this.setSession(null);
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
this.setSession({
|
|
172
|
+
provider: "walletconnect",
|
|
173
|
+
network,
|
|
174
|
+
methods: methods.filter(isMethod),
|
|
175
|
+
accountAddress,
|
|
176
|
+
raw: session
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
function isMethod(value) {
|
|
181
|
+
return [
|
|
182
|
+
"invokeFunction",
|
|
183
|
+
"testInvoke",
|
|
184
|
+
"signMessage",
|
|
185
|
+
"verifyMessage",
|
|
186
|
+
"traverseIterator",
|
|
187
|
+
"getWalletInfo",
|
|
188
|
+
"getNetworkVersion",
|
|
189
|
+
"encrypt",
|
|
190
|
+
"decrypt",
|
|
191
|
+
"decryptFromArray",
|
|
192
|
+
"calculateFee",
|
|
193
|
+
"signTransaction",
|
|
194
|
+
"wipeRequests",
|
|
195
|
+
"withContext"
|
|
196
|
+
].includes(value);
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/wallet-connect/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallet-connect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACf,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallet-connect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { SignClientTypes } from "@walletconnect/types";
|
|
2
|
+
import type { WalletAdapter, WalletKitClientOptions } from "../types.js";
|
|
3
|
+
export type WalletMetadata = SignClientTypes.Metadata;
|
|
4
|
+
export interface WalletConnectOptions extends WalletKitClientOptions {
|
|
5
|
+
/** Project ID created at https://cloud.walletconnect.com. */
|
|
6
|
+
projectId: string;
|
|
7
|
+
metadata: WalletMetadata;
|
|
8
|
+
relayUrl?: string;
|
|
9
|
+
/** Wallet connection page opened by connect(). Defaults to Neon Wallet. */
|
|
10
|
+
walletUrl?: string;
|
|
11
|
+
}
|
|
12
|
+
/** @deprecated Use WalletConnectOptions. */
|
|
13
|
+
export type WalletKitOptions = WalletConnectOptions;
|
|
14
|
+
/** @deprecated Use WalletAdapter. */
|
|
15
|
+
export type WalletConnectAdapter = WalletAdapter;
|
|
16
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/wallet-connect/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC;AAEtD,MAAM,WAAW,oBAAqB,SAAQ,sBAAsB;IAClE,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4CAA4C;AAC5C,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAEpD,qCAAqC;AACrC,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/wallet-connect/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ContractInvocationMulti, InvokeResult, Signer } from "@cityofzion/neon-dappkit-types";
|
|
2
|
+
import { NeoContract, type ContractWallet } from "./contract.js";
|
|
3
|
+
import type { ConnectedAccount, ConnectionProposal, ContractOptions, Method, NetworkType, SessionListener, WalletAdapter, WalletKitClientOptions, WalletSession } from "./types.js";
|
|
4
|
+
import { type NeoLineOptions } from "./neoline/index.js";
|
|
5
|
+
import { type OneGateOptions } from "./onegate/index.js";
|
|
6
|
+
import { type WalletConnectOptions } from "./wallet-connect/index.js";
|
|
7
|
+
/**
|
|
8
|
+
* Framework-independent wallet client for Neo N3 applications.
|
|
9
|
+
*/
|
|
10
|
+
export declare class WalletKit implements ContractWallet {
|
|
11
|
+
readonly wallet: WalletAdapter;
|
|
12
|
+
/** @deprecated Use wallet. */
|
|
13
|
+
readonly walletConnect: WalletAdapter;
|
|
14
|
+
readonly network: NetworkType;
|
|
15
|
+
readonly methods: Method[];
|
|
16
|
+
private constructor();
|
|
17
|
+
static init(options: WalletConnectOptions): Promise<WalletKit>;
|
|
18
|
+
static initNeoLine(options?: NeoLineOptions): Promise<WalletKit>;
|
|
19
|
+
static initOneGate(options?: OneGateOptions): Promise<WalletKit>;
|
|
20
|
+
/**
|
|
21
|
+
* Wrap an existing WalletKit-compatible provider adapter.
|
|
22
|
+
*/
|
|
23
|
+
static fromClient(client: WalletAdapter, options?: WalletKitClientOptions): Promise<WalletKit>;
|
|
24
|
+
get isConnected(): boolean;
|
|
25
|
+
get account(): ConnectedAccount | null;
|
|
26
|
+
connect(): Promise<WalletSession>;
|
|
27
|
+
createConnection(): Promise<ConnectionProposal>;
|
|
28
|
+
disconnect(): Promise<void>;
|
|
29
|
+
onSessionChange(listener: SessionListener): () => void;
|
|
30
|
+
connectedSigner(scopes?: string | number): Signer;
|
|
31
|
+
contract(scriptHash: string, options?: ContractOptions): NeoContract;
|
|
32
|
+
invokeFunction(params: ContractInvocationMulti, context?: string): Promise<string>;
|
|
33
|
+
testInvoke(params: ContractInvocationMulti, context?: string): Promise<InvokeResult>;
|
|
34
|
+
private withDefaultSigner;
|
|
35
|
+
private invokeFunctionInternal;
|
|
36
|
+
private testInvokeInternal;
|
|
37
|
+
private requireConnectedAccount;
|
|
38
|
+
private hasCompatibleSession;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=wallet-kit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-kit.d.ts","sourceRoot":"","sources":["../src/wallet-kit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,MAAM,EACP,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAMjE,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,MAAM,EACN,WAAW,EACX,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAWnC;;GAEG;AACH,qBAAa,SAAU,YAAW,cAAc;IAC9C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,8BAA8B;IAC9B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAE3B,OAAO;WAUM,IAAI,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,SAAS,CAAC;WAUvD,WAAW,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,CAAC;WAK7D,WAAW,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,SAAS,CAAC;IAK1E;;OAEG;WACU,UAAU,CACrB,MAAM,EAAE,aAAa,EACrB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,SAAS,CAAC;IAUrB,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,OAAO,IAAI,gBAAgB,GAAG,IAAI,CAcrC;IAED,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IAIjC,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAI/C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAItD,eAAe,CAAC,MAAM,GAAE,MAAM,GAAG,MAAU,GAAG,MAAM;IAQpD,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,WAAW;IAIxE,cAAc,CACZ,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAKlB,UAAU,CACR,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC;IAKxB,OAAO,CAAC,iBAAiB;YAaX,sBAAsB;YAoBtB,kBAAkB;IAiBhC,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,oBAAoB;CAS7B"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { addressToScriptHash } from "./address.js";
|
|
2
|
+
import { NeoContract } from "./contract.js";
|
|
3
|
+
import { WalletKitError, WalletNotConnectedError, WalletRequestError } from "./errors.js";
|
|
4
|
+
import { NeoLineAdapter } from "./neoline/index.js";
|
|
5
|
+
import { OneGateAdapter } from "./onegate/index.js";
|
|
6
|
+
import { NeoWalletConnect } from "./wallet-connect/index.js";
|
|
7
|
+
const DEFAULT_NETWORK = "neo3:testnet";
|
|
8
|
+
const DEFAULT_METHODS = ["invokeFunction", "testInvoke"];
|
|
9
|
+
function requireText(value, field) {
|
|
10
|
+
if (value.trim().length === 0) {
|
|
11
|
+
throw new WalletKitError(`${field} must not be empty.`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Framework-independent wallet client for Neo N3 applications.
|
|
16
|
+
*/
|
|
17
|
+
export class WalletKit {
|
|
18
|
+
wallet;
|
|
19
|
+
/** @deprecated Use wallet. */
|
|
20
|
+
walletConnect;
|
|
21
|
+
network;
|
|
22
|
+
methods;
|
|
23
|
+
constructor(client, options) {
|
|
24
|
+
this.wallet = client;
|
|
25
|
+
this.walletConnect = client;
|
|
26
|
+
this.network = options.network ?? DEFAULT_NETWORK;
|
|
27
|
+
this.methods = [...(options.methods ?? DEFAULT_METHODS)];
|
|
28
|
+
}
|
|
29
|
+
static async init(options) {
|
|
30
|
+
requireText(options.projectId, "projectId");
|
|
31
|
+
requireText(options.metadata.name, "metadata.name");
|
|
32
|
+
requireText(options.metadata.url, "metadata.url");
|
|
33
|
+
const client = await NeoWalletConnect.init(options);
|
|
34
|
+
return WalletKit.fromClient(client, options);
|
|
35
|
+
}
|
|
36
|
+
static async initNeoLine(options = {}) {
|
|
37
|
+
const client = await NeoLineAdapter.init(options);
|
|
38
|
+
return WalletKit.fromClient(client, options);
|
|
39
|
+
}
|
|
40
|
+
static async initOneGate(options = {}) {
|
|
41
|
+
const client = await OneGateAdapter.init(options);
|
|
42
|
+
return WalletKit.fromClient(client, options);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Wrap an existing WalletKit-compatible provider adapter.
|
|
46
|
+
*/
|
|
47
|
+
static async fromClient(client, options = {}) {
|
|
48
|
+
const kit = new WalletKit(client, options);
|
|
49
|
+
if (options.manageSession !== false) {
|
|
50
|
+
await client.manageSession(kit.network, kit.methods);
|
|
51
|
+
}
|
|
52
|
+
return kit;
|
|
53
|
+
}
|
|
54
|
+
get isConnected() {
|
|
55
|
+
return this.hasCompatibleSession();
|
|
56
|
+
}
|
|
57
|
+
get account() {
|
|
58
|
+
if (!this.hasCompatibleSession()) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const address = this.wallet.getAccountAddress();
|
|
62
|
+
if (!address) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
address,
|
|
67
|
+
scriptHash: addressToScriptHash(address)
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
connect() {
|
|
71
|
+
return this.wallet.connect(this.network, this.methods);
|
|
72
|
+
}
|
|
73
|
+
createConnection() {
|
|
74
|
+
return this.wallet.createConnection(this.network, this.methods);
|
|
75
|
+
}
|
|
76
|
+
disconnect() {
|
|
77
|
+
return this.wallet.disconnect();
|
|
78
|
+
}
|
|
79
|
+
onSessionChange(listener) {
|
|
80
|
+
return this.wallet.onSessionChange(listener);
|
|
81
|
+
}
|
|
82
|
+
connectedSigner(scopes = 1) {
|
|
83
|
+
const account = this.requireConnectedAccount();
|
|
84
|
+
return {
|
|
85
|
+
account: account.scriptHash,
|
|
86
|
+
scopes
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
contract(scriptHash, options = {}) {
|
|
90
|
+
return new NeoContract(this, scriptHash, options);
|
|
91
|
+
}
|
|
92
|
+
invokeFunction(params, context) {
|
|
93
|
+
this.requireConnectedAccount();
|
|
94
|
+
return this.invokeFunctionInternal(this.withDefaultSigner(params), context);
|
|
95
|
+
}
|
|
96
|
+
testInvoke(params, context) {
|
|
97
|
+
this.requireConnectedAccount();
|
|
98
|
+
return this.testInvokeInternal(this.withDefaultSigner(params), context);
|
|
99
|
+
}
|
|
100
|
+
withDefaultSigner(params) {
|
|
101
|
+
if (params.signers !== undefined) {
|
|
102
|
+
return params;
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
...params,
|
|
106
|
+
signers: [this.connectedSigner()]
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
async invokeFunctionInternal(params, context) {
|
|
110
|
+
const result = await this.wallet.request("invokeFunction", params, context);
|
|
111
|
+
if (typeof result !== "string") {
|
|
112
|
+
throw new WalletRequestError("The wallet returned an invalid invokeFunction response.", result);
|
|
113
|
+
}
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
async testInvokeInternal(params, context) {
|
|
117
|
+
const result = await this.wallet.request("testInvoke", params, context);
|
|
118
|
+
if (!result || result.state !== "HALT") {
|
|
119
|
+
throw new WalletRequestError("The Neo test invocation failed.", result);
|
|
120
|
+
}
|
|
121
|
+
return result;
|
|
122
|
+
}
|
|
123
|
+
requireConnectedAccount() {
|
|
124
|
+
const account = this.account;
|
|
125
|
+
if (!account) {
|
|
126
|
+
throw new WalletNotConnectedError();
|
|
127
|
+
}
|
|
128
|
+
return account;
|
|
129
|
+
}
|
|
130
|
+
hasCompatibleSession() {
|
|
131
|
+
const session = this.wallet.session;
|
|
132
|
+
return (this.wallet.isConnected() &&
|
|
133
|
+
session?.network === this.network &&
|
|
134
|
+
this.methods.every(method => session.methods.includes(method)));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=wallet-kit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-kit.js","sourceRoot":"","sources":["../src/wallet-kit.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "neo-n3-walletkit",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Framework-independent TypeScript toolkit for connecting frontend applications to Neo N3 wallets.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"neo",
|
|
7
|
+
"neo-n3",
|
|
8
|
+
"wallet",
|
|
9
|
+
"walletconnect",
|
|
10
|
+
"neoline",
|
|
11
|
+
"onegate",
|
|
12
|
+
"nep-21",
|
|
13
|
+
"dapp",
|
|
14
|
+
"typescript",
|
|
15
|
+
"blockchain"
|
|
16
|
+
],
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"type": "module",
|
|
19
|
+
"sideEffects": false,
|
|
20
|
+
"files": [
|
|
21
|
+
"dist"
|
|
22
|
+
],
|
|
23
|
+
"main": "./dist/index.js",
|
|
24
|
+
"module": "./dist/index.js",
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"import": "./dist/index.js",
|
|
30
|
+
"default": "./dist/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./neoline": {
|
|
33
|
+
"types": "./dist/neoline/index.d.ts",
|
|
34
|
+
"import": "./dist/neoline/index.js",
|
|
35
|
+
"default": "./dist/neoline/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./onegate": {
|
|
38
|
+
"types": "./dist/onegate/index.d.ts",
|
|
39
|
+
"import": "./dist/onegate/index.js",
|
|
40
|
+
"default": "./dist/onegate/index.js"
|
|
41
|
+
},
|
|
42
|
+
"./wallet-connect": {
|
|
43
|
+
"types": "./dist/wallet-connect/index.d.ts",
|
|
44
|
+
"import": "./dist/wallet-connect/index.js",
|
|
45
|
+
"default": "./dist/wallet-connect/index.js"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"scripts": {
|
|
49
|
+
"build": "rimraf dist && tsc -p tsconfig.build.json",
|
|
50
|
+
"clean": "rimraf dist",
|
|
51
|
+
"test": "tsx --test test/*.test.ts",
|
|
52
|
+
"test:watch": "tsx --test --watch test/*.test.ts",
|
|
53
|
+
"typecheck": "tsc --noEmit",
|
|
54
|
+
"prepublishOnly": "npm run test && npm run typecheck && npm run build"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"@cityofzion/neon-dappkit-types": "^1.0.0",
|
|
58
|
+
"@noble/hashes": "^1.8.0",
|
|
59
|
+
"@scure/base": "^2.2.0",
|
|
60
|
+
"@walletconnect/sign-client": "^2.23.9",
|
|
61
|
+
"@walletconnect/types": "^2.23.9"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@types/node": "^24.10.0",
|
|
65
|
+
"rimraf": "^6.1.2",
|
|
66
|
+
"tsx": "^4.20.6",
|
|
67
|
+
"typescript": "^5.9.3"
|
|
68
|
+
},
|
|
69
|
+
"engines": {
|
|
70
|
+
"node": ">=18"
|
|
71
|
+
},
|
|
72
|
+
"publishConfig": {
|
|
73
|
+
"access": "public"
|
|
74
|
+
}
|
|
75
|
+
}
|