@fastxyz/fast-connector 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 +115 -0
- package/dist/client.d.ts +48 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +591 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/testing.d.ts +66 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +280 -0
- package/dist/testing.js.map +1 -0
- package/dist/types.d.ts +85 -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 +66 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { FastConnectorAccount, FastConnectorAdapter, FastConnectorTransactionCertificate } from './types.js';
|
|
2
|
+
export interface MockAccountOptions {
|
|
3
|
+
publicKey?: string;
|
|
4
|
+
address?: string;
|
|
5
|
+
injected?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface MockTransferCertificateOptions {
|
|
8
|
+
senderAddress?: string;
|
|
9
|
+
senderPublicKey?: string;
|
|
10
|
+
recipientAddress?: string;
|
|
11
|
+
recipientPublicKey?: string;
|
|
12
|
+
tokenId?: string | Uint8Array | 'native';
|
|
13
|
+
amountHex?: string;
|
|
14
|
+
nonce?: string | number | bigint;
|
|
15
|
+
timestampNanos?: string | number | bigint;
|
|
16
|
+
userData?: Iterable<number> | null;
|
|
17
|
+
archival?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface MockClaimCertificateOptions {
|
|
20
|
+
senderAddress?: string;
|
|
21
|
+
senderPublicKey?: string;
|
|
22
|
+
recipientAddress?: string;
|
|
23
|
+
recipientPublicKey?: string;
|
|
24
|
+
claimData?: number[];
|
|
25
|
+
verifierCommittee?: Array<number[]>;
|
|
26
|
+
verifierQuorum?: string | number | bigint;
|
|
27
|
+
signatures?: Array<[number[], number[]]>;
|
|
28
|
+
nonce?: string | number | bigint;
|
|
29
|
+
timestampNanos?: string | number | bigint;
|
|
30
|
+
archival?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface CreateMockInjectedFastConnectorOptions {
|
|
33
|
+
accounts?: FastConnectorAccount[];
|
|
34
|
+
connected?: boolean;
|
|
35
|
+
connectResult?: boolean;
|
|
36
|
+
disconnectResult?: boolean;
|
|
37
|
+
activeNetwork?: string;
|
|
38
|
+
nextNonce?: number;
|
|
39
|
+
signatureHex?: string;
|
|
40
|
+
signMessage?: FastConnectorAdapter['signMessage'];
|
|
41
|
+
transfer?: NonNullable<FastConnectorAdapter['transfer']>;
|
|
42
|
+
submitClaim?: NonNullable<FastConnectorAdapter['submitClaim']>;
|
|
43
|
+
supportedMethods?: Partial<Record<MockInjectedFastConnectorOptionalMethod, boolean>>;
|
|
44
|
+
}
|
|
45
|
+
export interface MockInjectedFastConnectorControls {
|
|
46
|
+
getAccounts(): FastConnectorAccount[];
|
|
47
|
+
setAccounts(accounts: FastConnectorAccount[]): void;
|
|
48
|
+
getActiveNetwork(): string;
|
|
49
|
+
setActiveNetwork(network: string): void;
|
|
50
|
+
getNextNonce(): number;
|
|
51
|
+
setNextNonce(nonce: number): void;
|
|
52
|
+
emitAccountChanged(account: FastConnectorAccount): void;
|
|
53
|
+
dispatchInitialized(target?: FastsetInitializedTarget): boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface MockInjectedFastConnector extends FastConnectorAdapter {
|
|
56
|
+
readonly mock: MockInjectedFastConnectorControls;
|
|
57
|
+
}
|
|
58
|
+
export type FastsetInitializedTarget = Pick<EventTarget, 'dispatchEvent'>;
|
|
59
|
+
export type MockInjectedFastConnectorOptionalMethod = 'disconnect' | 'isConnected' | 'getActiveNetwork' | 'onAccountChanged' | 'transfer' | 'submitClaim';
|
|
60
|
+
export declare function createMockAccount(options?: MockAccountOptions): FastConnectorAccount;
|
|
61
|
+
export declare function createMockTransferCertificate(options?: MockTransferCertificateOptions): FastConnectorTransactionCertificate;
|
|
62
|
+
export declare function createMockClaimCertificate(options?: MockClaimCertificateOptions): FastConnectorTransactionCertificate;
|
|
63
|
+
export declare function dispatchFastsetInitialized(target?: FastsetInitializedTarget): boolean;
|
|
64
|
+
export declare function emitMockAccountChanged(wallet: MockInjectedFastConnector, account: FastConnectorAccount): void;
|
|
65
|
+
export declare function createMockInjectedFastConnector(options?: CreateMockInjectedFastConnectorOptions): MockInjectedFastConnector;
|
|
66
|
+
//# sourceMappingURL=testing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
package/dist/testing.js
ADDED
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { bytesToHex, decodeFastAddress, encodeFastAddress, FAST_TOKEN_ID, hexToBytes, hexToTokenId, } from '@fastxyz/sdk/core';
|
|
2
|
+
const DEFAULT_MOCK_PUBLIC_KEY = 'aa'.repeat(32);
|
|
3
|
+
const DEFAULT_SIGNATURE_HEX = 'cc'.repeat(64);
|
|
4
|
+
function cloneAccount(account) {
|
|
5
|
+
return {
|
|
6
|
+
address: account.address,
|
|
7
|
+
publicKey: account.publicKey,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function getDefaultInitTarget() {
|
|
11
|
+
if (typeof window !== 'undefined') {
|
|
12
|
+
return window;
|
|
13
|
+
}
|
|
14
|
+
throw new Error('No default event target available. Pass an explicit target to dispatchFastsetInitialized().');
|
|
15
|
+
}
|
|
16
|
+
function currentTimestampNanos() {
|
|
17
|
+
return String(BigInt(Date.now()) * 1000000n);
|
|
18
|
+
}
|
|
19
|
+
function normalizePublicKey(value) {
|
|
20
|
+
const normalized = value.trim().replace(/^0x/i, '').toLowerCase();
|
|
21
|
+
if (!/^[0-9a-f]{64}$/.test(normalized)) {
|
|
22
|
+
throw new TypeError(`Invalid mock Fast public key: "${value}"`);
|
|
23
|
+
}
|
|
24
|
+
return normalized;
|
|
25
|
+
}
|
|
26
|
+
function normalizeSignatureHex(value) {
|
|
27
|
+
const normalized = value.trim().replace(/^0x/i, '').toLowerCase();
|
|
28
|
+
if (!/^[0-9a-f]{128}$/.test(normalized)) {
|
|
29
|
+
throw new TypeError('Mock signature hex must be a 64-byte hex string.');
|
|
30
|
+
}
|
|
31
|
+
return normalized;
|
|
32
|
+
}
|
|
33
|
+
function normalizeAmountHex(value) {
|
|
34
|
+
const normalized = (value ?? '1').trim().replace(/^0x/i, '').toLowerCase();
|
|
35
|
+
if (!/^[0-9a-f]+$/.test(normalized)) {
|
|
36
|
+
throw new TypeError(`Invalid mock transfer amount hex: "${value ?? ''}"`);
|
|
37
|
+
}
|
|
38
|
+
return normalized;
|
|
39
|
+
}
|
|
40
|
+
function normalizeNonce(value, fallback) {
|
|
41
|
+
if (value === undefined) {
|
|
42
|
+
return String(fallback);
|
|
43
|
+
}
|
|
44
|
+
return String(value);
|
|
45
|
+
}
|
|
46
|
+
function normalizeTimestampNanos(value) {
|
|
47
|
+
if (value === undefined) {
|
|
48
|
+
return currentTimestampNanos();
|
|
49
|
+
}
|
|
50
|
+
return String(value);
|
|
51
|
+
}
|
|
52
|
+
function normalizeAddress(value) {
|
|
53
|
+
try {
|
|
54
|
+
const decoded = decodeFastAddress(value);
|
|
55
|
+
return {
|
|
56
|
+
address: decoded.address,
|
|
57
|
+
publicKey: normalizePublicKey(bytesToHex(decoded.bytes)),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
throw new TypeError(`Invalid mock Fast address: "${value}"`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function resolvePartyBytes(address, publicKey, fallbackPublicKey) {
|
|
65
|
+
if (publicKey !== undefined) {
|
|
66
|
+
return hexToBytes(normalizePublicKey(publicKey));
|
|
67
|
+
}
|
|
68
|
+
if (address !== undefined) {
|
|
69
|
+
return decodeFastAddress(address).bytes;
|
|
70
|
+
}
|
|
71
|
+
return hexToBytes(fallbackPublicKey);
|
|
72
|
+
}
|
|
73
|
+
function resolveTokenIdBytes(tokenId) {
|
|
74
|
+
if (tokenId === undefined || tokenId === 'native') {
|
|
75
|
+
return FAST_TOKEN_ID;
|
|
76
|
+
}
|
|
77
|
+
return typeof tokenId === 'string' ? hexToTokenId(tokenId) : tokenId;
|
|
78
|
+
}
|
|
79
|
+
export function createMockAccount(options = {}) {
|
|
80
|
+
const normalizedPublicKey = options.publicKey === undefined
|
|
81
|
+
? undefined
|
|
82
|
+
: normalizePublicKey(options.publicKey);
|
|
83
|
+
const normalizedAddress = options.address === undefined
|
|
84
|
+
? undefined
|
|
85
|
+
: normalizeAddress(options.address);
|
|
86
|
+
const publicKey = normalizedPublicKey ?? normalizedAddress?.publicKey ?? DEFAULT_MOCK_PUBLIC_KEY;
|
|
87
|
+
const address = normalizedAddress?.address ?? encodeFastAddress(hexToBytes(publicKey));
|
|
88
|
+
if (normalizedPublicKey !== undefined && normalizedAddress !== undefined && normalizedAddress.publicKey !== normalizedPublicKey) {
|
|
89
|
+
throw new TypeError('Mock Fast account address and public key must describe the same account.');
|
|
90
|
+
}
|
|
91
|
+
if (options.injected) {
|
|
92
|
+
return {
|
|
93
|
+
address: address.toUpperCase(),
|
|
94
|
+
publicKey: `0x${publicKey.toUpperCase()}`,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
address,
|
|
99
|
+
publicKey,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export function createMockTransferCertificate(options = {}) {
|
|
103
|
+
return {
|
|
104
|
+
envelope: {
|
|
105
|
+
transaction: {
|
|
106
|
+
Release20260303: {
|
|
107
|
+
sender: resolvePartyBytes(options.senderAddress, options.senderPublicKey, DEFAULT_MOCK_PUBLIC_KEY),
|
|
108
|
+
recipient: resolvePartyBytes(options.recipientAddress, options.recipientPublicKey, 'dd'.repeat(32)),
|
|
109
|
+
nonce: normalizeNonce(options.nonce, 1),
|
|
110
|
+
timestamp_nanos: normalizeTimestampNanos(options.timestampNanos),
|
|
111
|
+
claim: {
|
|
112
|
+
TokenTransfer: {
|
|
113
|
+
token_id: resolveTokenIdBytes(options.tokenId),
|
|
114
|
+
amount: normalizeAmountHex(options.amountHex),
|
|
115
|
+
user_data: options.userData ? Array.from(options.userData) : null,
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
archival: options.archival ?? false,
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
signature: [],
|
|
122
|
+
},
|
|
123
|
+
signatures: [],
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
export function createMockClaimCertificate(options = {}) {
|
|
127
|
+
return {
|
|
128
|
+
envelope: {
|
|
129
|
+
transaction: {
|
|
130
|
+
Release20260303: {
|
|
131
|
+
sender: resolvePartyBytes(options.senderAddress, options.senderPublicKey, DEFAULT_MOCK_PUBLIC_KEY),
|
|
132
|
+
recipient: resolvePartyBytes(options.recipientAddress, options.recipientPublicKey, 'dd'.repeat(32)),
|
|
133
|
+
nonce: normalizeNonce(options.nonce, 1),
|
|
134
|
+
timestamp_nanos: normalizeTimestampNanos(options.timestampNanos),
|
|
135
|
+
claim: {
|
|
136
|
+
ExternalClaim: {
|
|
137
|
+
claim: {
|
|
138
|
+
verifier_committee: options.verifierCommittee ?? [],
|
|
139
|
+
verifier_quorum: String(options.verifierQuorum ?? 0),
|
|
140
|
+
claim_data: options.claimData ?? [1, 2, 3],
|
|
141
|
+
},
|
|
142
|
+
signatures: options.signatures ?? [],
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
archival: options.archival ?? false,
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
signature: [],
|
|
149
|
+
},
|
|
150
|
+
signatures: [],
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
export function dispatchFastsetInitialized(target = getDefaultInitTarget()) {
|
|
154
|
+
return target.dispatchEvent(new Event('fastset#initialized'));
|
|
155
|
+
}
|
|
156
|
+
export function emitMockAccountChanged(wallet, account) {
|
|
157
|
+
wallet.mock.emitAccountChanged(account);
|
|
158
|
+
}
|
|
159
|
+
export function createMockInjectedFastConnector(options = {}) {
|
|
160
|
+
let accounts = (options.accounts ?? [createMockAccount({ injected: true })]).map(cloneAccount);
|
|
161
|
+
let activeNetwork = options.activeNetwork ?? 'testnet';
|
|
162
|
+
let connected = options.connected ?? false;
|
|
163
|
+
let nextNonce = options.nextNonce ?? 1;
|
|
164
|
+
const signatureHex = normalizeSignatureHex(options.signatureHex ?? DEFAULT_SIGNATURE_HEX);
|
|
165
|
+
const listeners = new Set();
|
|
166
|
+
const supportedMethods = options.supportedMethods ?? {};
|
|
167
|
+
const adapter = {
|
|
168
|
+
async connect() {
|
|
169
|
+
const result = options.connectResult ?? true;
|
|
170
|
+
if (result) {
|
|
171
|
+
connected = true;
|
|
172
|
+
}
|
|
173
|
+
return result;
|
|
174
|
+
},
|
|
175
|
+
async getAccounts() {
|
|
176
|
+
return connected
|
|
177
|
+
? accounts.map(cloneAccount)
|
|
178
|
+
: [];
|
|
179
|
+
},
|
|
180
|
+
async signMessage(params) {
|
|
181
|
+
if (options.signMessage) {
|
|
182
|
+
return await options.signMessage(params);
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
signature: `0x${signatureHex}`,
|
|
186
|
+
messageBytes: `0x${params.message.map((value) => value.toString(16).padStart(2, '0')).join('')}`,
|
|
187
|
+
};
|
|
188
|
+
},
|
|
189
|
+
mock: {
|
|
190
|
+
getAccounts() {
|
|
191
|
+
return accounts.map(cloneAccount);
|
|
192
|
+
},
|
|
193
|
+
setAccounts(nextAccounts) {
|
|
194
|
+
accounts = nextAccounts.map(cloneAccount);
|
|
195
|
+
},
|
|
196
|
+
getActiveNetwork() {
|
|
197
|
+
return activeNetwork;
|
|
198
|
+
},
|
|
199
|
+
setActiveNetwork(network) {
|
|
200
|
+
activeNetwork = network;
|
|
201
|
+
},
|
|
202
|
+
getNextNonce() {
|
|
203
|
+
return nextNonce;
|
|
204
|
+
},
|
|
205
|
+
setNextNonce(nonce) {
|
|
206
|
+
if (!Number.isSafeInteger(nonce) || nonce < 0) {
|
|
207
|
+
throw new TypeError('Mock nonce must be a non-negative safe integer.');
|
|
208
|
+
}
|
|
209
|
+
nextNonce = nonce;
|
|
210
|
+
},
|
|
211
|
+
emitAccountChanged(account) {
|
|
212
|
+
const nextAccount = cloneAccount(account);
|
|
213
|
+
accounts = [nextAccount];
|
|
214
|
+
connected = true;
|
|
215
|
+
for (const listener of listeners) {
|
|
216
|
+
listener(cloneAccount(nextAccount));
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
dispatchInitialized(target = getDefaultInitTarget()) {
|
|
220
|
+
return dispatchFastsetInitialized(target);
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
};
|
|
224
|
+
if (supportedMethods.disconnect !== false) {
|
|
225
|
+
adapter.disconnect = async () => {
|
|
226
|
+
connected = false;
|
|
227
|
+
return options.disconnectResult ?? true;
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
if (supportedMethods.isConnected !== false) {
|
|
231
|
+
adapter.isConnected = () => connected;
|
|
232
|
+
}
|
|
233
|
+
if (supportedMethods.getActiveNetwork !== false) {
|
|
234
|
+
adapter.getActiveNetwork = async () => activeNetwork;
|
|
235
|
+
}
|
|
236
|
+
if (supportedMethods.onAccountChanged !== false) {
|
|
237
|
+
adapter.onAccountChanged = (callback) => {
|
|
238
|
+
listeners.add(callback);
|
|
239
|
+
return () => {
|
|
240
|
+
listeners.delete(callback);
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
if (supportedMethods.transfer !== false) {
|
|
245
|
+
adapter.transfer = async (params) => {
|
|
246
|
+
if (options.transfer) {
|
|
247
|
+
return await options.transfer(params);
|
|
248
|
+
}
|
|
249
|
+
const certificate = createMockTransferCertificate({
|
|
250
|
+
senderAddress: params.account.address,
|
|
251
|
+
recipientAddress: params.recipient,
|
|
252
|
+
tokenId: params.tokenId ?? 'native',
|
|
253
|
+
amountHex: params.amount,
|
|
254
|
+
nonce: nextNonce,
|
|
255
|
+
});
|
|
256
|
+
nextNonce += 1;
|
|
257
|
+
return certificate;
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
if (supportedMethods.submitClaim !== false) {
|
|
261
|
+
adapter.submitClaim = async (params) => {
|
|
262
|
+
if (options.submitClaim) {
|
|
263
|
+
return await options.submitClaim(params);
|
|
264
|
+
}
|
|
265
|
+
const certificate = createMockClaimCertificate({
|
|
266
|
+
senderAddress: params.account.address,
|
|
267
|
+
recipientAddress: params.recipient,
|
|
268
|
+
claimData: [...params.claimData],
|
|
269
|
+
verifierCommittee: params.verifierCommittee ? [...params.verifierCommittee] : [],
|
|
270
|
+
verifierQuorum: params.verifierQuorum ?? 0,
|
|
271
|
+
signatures: params.signatures ? [...params.signatures] : [],
|
|
272
|
+
nonce: nextNonce,
|
|
273
|
+
});
|
|
274
|
+
nextNonce += 1;
|
|
275
|
+
return certificate;
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
return adapter;
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { FastTransactionCertificate, KnownFastToken, NetworkInfo, ProviderOptions, SendResult, SubmitResult, TokenBalance, TokenInfo } from '@fastxyz/sdk/browser';
|
|
2
|
+
export interface FastConnectorAccount {
|
|
3
|
+
address: string;
|
|
4
|
+
publicKey: string;
|
|
5
|
+
}
|
|
6
|
+
export interface FastConnectorConnectOptions {
|
|
7
|
+
permissions?: string[];
|
|
8
|
+
}
|
|
9
|
+
export interface FastConnectorReadProvider {
|
|
10
|
+
readonly network: string;
|
|
11
|
+
getBalance(address: string, token?: string): Promise<{
|
|
12
|
+
amount: string;
|
|
13
|
+
token: string;
|
|
14
|
+
}>;
|
|
15
|
+
getTokens(address: string): Promise<TokenBalance[]>;
|
|
16
|
+
getTokenInfo(token: string): Promise<TokenInfo | null>;
|
|
17
|
+
getAccountInfo?(address: string): Promise<{
|
|
18
|
+
next_nonce?: number | bigint | null;
|
|
19
|
+
} | null>;
|
|
20
|
+
getCertificateByNonce(address: string, nonce: number): Promise<FastConnectorTransactionCertificate | null>;
|
|
21
|
+
getExplorerUrl(txHash?: string): Promise<string | null>;
|
|
22
|
+
resolveKnownToken?(token: string): Promise<FastConnectorKnownToken | null>;
|
|
23
|
+
}
|
|
24
|
+
export type FastConnectorKnownToken = KnownFastToken;
|
|
25
|
+
export type FastConnectorNetworkInfo = NetworkInfo;
|
|
26
|
+
export type FastConnectorTransactionCertificate = FastTransactionCertificate;
|
|
27
|
+
export interface FastConnectorTransferParams {
|
|
28
|
+
amount: string;
|
|
29
|
+
recipient: string;
|
|
30
|
+
token?: string;
|
|
31
|
+
}
|
|
32
|
+
export type FastConnectorTransferResult = SendResult;
|
|
33
|
+
export interface FastConnectorSubmitClaimParams {
|
|
34
|
+
recipient: string;
|
|
35
|
+
claimData: number[];
|
|
36
|
+
verifierCommittee?: Array<number[]>;
|
|
37
|
+
verifierQuorum?: number;
|
|
38
|
+
signatures?: Array<[number[], number[]]>;
|
|
39
|
+
}
|
|
40
|
+
export type FastConnectorSubmitClaimResult = SubmitResult;
|
|
41
|
+
export interface FastConnectorProviderOptions extends ProviderOptions {
|
|
42
|
+
networks?: Record<string, FastConnectorNetworkInfo>;
|
|
43
|
+
tokens?: Record<string, FastConnectorKnownToken>;
|
|
44
|
+
}
|
|
45
|
+
export interface FastConnectorOptions {
|
|
46
|
+
provider?: FastConnectorReadProvider;
|
|
47
|
+
providerOptions?: FastConnectorProviderOptions;
|
|
48
|
+
}
|
|
49
|
+
export interface FastConnectorAdapter {
|
|
50
|
+
connect(options?: {
|
|
51
|
+
permissions: string[];
|
|
52
|
+
}): Promise<boolean>;
|
|
53
|
+
disconnect?(): Promise<boolean>;
|
|
54
|
+
isConnected?(): boolean;
|
|
55
|
+
getAccounts(): Promise<FastConnectorAccount[]>;
|
|
56
|
+
getActiveNetwork?(): Promise<string>;
|
|
57
|
+
onAccountChanged?(callback: (account: FastConnectorAccount) => void): () => void;
|
|
58
|
+
signMessage(params: {
|
|
59
|
+
message: number[];
|
|
60
|
+
account: FastConnectorAccount;
|
|
61
|
+
}): Promise<{
|
|
62
|
+
signature: string;
|
|
63
|
+
messageBytes: string;
|
|
64
|
+
}>;
|
|
65
|
+
transfer?(params: {
|
|
66
|
+
amount: string;
|
|
67
|
+
recipient: string;
|
|
68
|
+
account: FastConnectorAccount;
|
|
69
|
+
tokenId?: string;
|
|
70
|
+
}): Promise<unknown>;
|
|
71
|
+
submitClaim?(params: {
|
|
72
|
+
recipient: string;
|
|
73
|
+
claimData: number[];
|
|
74
|
+
account: FastConnectorAccount;
|
|
75
|
+
verifierCommittee?: Array<number[]>;
|
|
76
|
+
verifierQuorum?: number;
|
|
77
|
+
signatures?: Array<[number[], number[]]>;
|
|
78
|
+
}): Promise<unknown>;
|
|
79
|
+
}
|
|
80
|
+
declare global {
|
|
81
|
+
interface Window {
|
|
82
|
+
fastset?: FastConnectorAdapter;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# 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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fastxyz/fast-connector",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Dapp-facing connector for injected Fast wallets",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"fast",
|
|
7
|
+
"wallet",
|
|
8
|
+
"connector",
|
|
9
|
+
"browser",
|
|
10
|
+
"injected"
|
|
11
|
+
],
|
|
12
|
+
"type": "module",
|
|
13
|
+
"main": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"import": "./dist/index.js",
|
|
18
|
+
"types": "./dist/index.d.ts"
|
|
19
|
+
},
|
|
20
|
+
"./testing": {
|
|
21
|
+
"import": "./dist/testing.js",
|
|
22
|
+
"types": "./dist/testing.d.ts"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist",
|
|
27
|
+
"README.md",
|
|
28
|
+
"LICENSE"
|
|
29
|
+
],
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "npm run clean && tsc",
|
|
32
|
+
"clean": "rm -rf dist",
|
|
33
|
+
"check:package": "node ./scripts/check-package.mjs",
|
|
34
|
+
"pack:dry-run": "node ./scripts/pack-dry-run.mjs",
|
|
35
|
+
"pack:smoke": "node ./scripts/pack-smoke.mjs",
|
|
36
|
+
"release:verify-tag": "node ./scripts/verify-tag-version.mjs",
|
|
37
|
+
"prepublishOnly": "npm test",
|
|
38
|
+
"test:src": "node --import tsx --test tests/*.test.ts",
|
|
39
|
+
"test": "npm run build && npm run test:src && npm run check:package"
|
|
40
|
+
},
|
|
41
|
+
"peerDependencies": {
|
|
42
|
+
"@fastxyz/sdk": ">=0.1.8"
|
|
43
|
+
},
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": ">=20"
|
|
46
|
+
},
|
|
47
|
+
"license": "MIT",
|
|
48
|
+
"author": "Fast.xyz",
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public"
|
|
51
|
+
},
|
|
52
|
+
"repository": {
|
|
53
|
+
"type": "git",
|
|
54
|
+
"url": "git+https://github.com/fastxyz/fast-connector.git"
|
|
55
|
+
},
|
|
56
|
+
"bugs": {
|
|
57
|
+
"url": "https://github.com/fastxyz/fast-connector/issues"
|
|
58
|
+
},
|
|
59
|
+
"homepage": "https://github.com/fastxyz/fast-connector#readme",
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@fastxyz/sdk": "^0.1.8",
|
|
62
|
+
"@types/node": "^22.19.11",
|
|
63
|
+
"tsx": "^4.21.0",
|
|
64
|
+
"typescript": "^5.9.3"
|
|
65
|
+
}
|
|
66
|
+
}
|