@keplr-wallet/hooks-starknet 0.12.194 → 0.12.195-rc.1
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/build/tx/index.d.ts +1 -0
- package/build/tx/index.js +1 -0
- package/build/tx/index.js.map +1 -1
- package/build/tx/name-service-starknet-id.d.ts +37 -0
- package/build/tx/name-service-starknet-id.js +287 -0
- package/build/tx/name-service-starknet-id.js.map +1 -0
- package/build/tx/name-service.d.ts +20 -0
- package/build/tx/name-service.js +20 -0
- package/build/tx/name-service.js.map +1 -0
- package/build/tx/recipient.d.ts +16 -18
- package/build/tx/recipient.js +52 -237
- package/build/tx/recipient.js.map +1 -1
- package/build/tx/types.d.ts +15 -6
- package/package.json +14 -14
- package/src/tx/index.ts +1 -0
- package/src/tx/name-service-starknet-id.ts +326 -0
- package/src/tx/name-service.ts +39 -0
- package/src/tx/recipient.ts +77 -307
- package/src/tx/types.ts +18 -6
package/build/tx/index.d.ts
CHANGED
package/build/tx/index.js
CHANGED
@@ -26,4 +26,5 @@ __exportStar(require("./chain"), exports);
|
|
26
26
|
__exportStar(require("./gas-simulator"), exports);
|
27
27
|
__exportStar(require("./validate"), exports);
|
28
28
|
__exportStar(require("./noop-amount"), exports);
|
29
|
+
__exportStar(require("./name-service"), exports);
|
29
30
|
//# sourceMappingURL=index.js.map
|
package/build/tx/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tx/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB;AACxB,wCAAsB;AACtB,wCAAsB;AACtB,8CAA4B;AAC5B,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,kDAAgC;AAChC,6CAA2B;AAC3B,gDAA8B"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tx/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB;AACxB,wCAAsB;AACtB,wCAAsB;AACtB,8CAA4B;AAC5B,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,kDAAgC;AAChC,6CAA2B;AAC3B,gDAA8B;AAC9B,iDAA+B"}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import { ChainGetter } from "@keplr-wallet/stores";
|
2
|
+
import { FetchDebounce, NameService } from "./name-service";
|
3
|
+
import { ITxChainSetter } from "./types";
|
4
|
+
export declare class StarknetIdNameService implements NameService {
|
5
|
+
protected readonly base: ITxChainSetter;
|
6
|
+
protected readonly chainGetter: ChainGetter;
|
7
|
+
readonly type = "starknet-id";
|
8
|
+
protected _isEnabled: boolean;
|
9
|
+
protected _isFetching: boolean;
|
10
|
+
protected _value: string;
|
11
|
+
protected _result: {
|
12
|
+
address: string;
|
13
|
+
fullName: string;
|
14
|
+
domain: string;
|
15
|
+
suffix: string;
|
16
|
+
} | undefined;
|
17
|
+
protected _starknetID: {
|
18
|
+
networkName: string;
|
19
|
+
namingContractAddress: string;
|
20
|
+
} | undefined;
|
21
|
+
protected debounce: FetchDebounce;
|
22
|
+
constructor(base: ITxChainSetter, chainGetter: ChainGetter, starknetID?: string | undefined);
|
23
|
+
setStarknetID(chainId: string): void;
|
24
|
+
setIsEnabled(isEnabled: boolean): void;
|
25
|
+
get isEnabled(): boolean;
|
26
|
+
setValue(value: string): void;
|
27
|
+
get value(): string;
|
28
|
+
get result(): {
|
29
|
+
address: string;
|
30
|
+
fullName: string;
|
31
|
+
domain: string;
|
32
|
+
suffix: string;
|
33
|
+
} | undefined;
|
34
|
+
get isFetching(): boolean;
|
35
|
+
protected fetch(): Promise<void>;
|
36
|
+
protected fetchInternal(): Promise<void>;
|
37
|
+
}
|
@@ -0,0 +1,287 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7
|
+
};
|
8
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
9
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
10
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
11
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
12
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
13
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
14
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
15
|
+
});
|
16
|
+
};
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
18
|
+
exports.StarknetIdNameService = void 0;
|
19
|
+
const mobx_1 = require("mobx");
|
20
|
+
const name_service_1 = require("./name-service");
|
21
|
+
const starknet_1 = require("starknet");
|
22
|
+
const simple_fetch_1 = require("@keplr-wallet/simple-fetch");
|
23
|
+
const errors_1 = require("./errors");
|
24
|
+
class StarknetIdNameService {
|
25
|
+
constructor(base, chainGetter, starknetID = undefined) {
|
26
|
+
this.base = base;
|
27
|
+
this.chainGetter = chainGetter;
|
28
|
+
this.type = "starknet-id";
|
29
|
+
this._isEnabled = true;
|
30
|
+
this._isFetching = false;
|
31
|
+
this._value = "";
|
32
|
+
this._result = undefined;
|
33
|
+
// Deep equal check is required to avoid infinite re-render.
|
34
|
+
this._starknetID = undefined;
|
35
|
+
this.debounce = new name_service_1.FetchDebounce();
|
36
|
+
if (starknetID) {
|
37
|
+
this.setStarknetID(starknetID);
|
38
|
+
}
|
39
|
+
(0, mobx_1.makeObservable)(this);
|
40
|
+
(0, mobx_1.autorun)(() => {
|
41
|
+
noop(this.base.modularChainInfo, this._starknetID, this.isEnabled, this.value);
|
42
|
+
// 위의 값에 변경이 있으면 새로고침
|
43
|
+
this.fetch();
|
44
|
+
});
|
45
|
+
}
|
46
|
+
setStarknetID(chainId) {
|
47
|
+
const split = chainId.split(":"); // `starknet:networkName`
|
48
|
+
if (split.length < 2) {
|
49
|
+
return;
|
50
|
+
}
|
51
|
+
const networkName = split[1];
|
52
|
+
if (!networkName) {
|
53
|
+
return;
|
54
|
+
}
|
55
|
+
const namingContractAddress = networkToNamingContractAddress[networkName];
|
56
|
+
if (!namingContractAddress) {
|
57
|
+
this._starknetID = undefined;
|
58
|
+
return;
|
59
|
+
}
|
60
|
+
this._starknetID = {
|
61
|
+
networkName,
|
62
|
+
namingContractAddress,
|
63
|
+
};
|
64
|
+
}
|
65
|
+
setIsEnabled(isEnabled) {
|
66
|
+
this._isEnabled = isEnabled;
|
67
|
+
}
|
68
|
+
get isEnabled() {
|
69
|
+
if (!this._starknetID || !("starknet" in this.base.modularChainInfo)) {
|
70
|
+
return false;
|
71
|
+
}
|
72
|
+
return this._isEnabled;
|
73
|
+
}
|
74
|
+
setValue(value) {
|
75
|
+
this._value = value;
|
76
|
+
}
|
77
|
+
get value() {
|
78
|
+
let v = this._value;
|
79
|
+
if (this.isEnabled) {
|
80
|
+
const suffix = "stark";
|
81
|
+
if (v.endsWith("." + suffix)) {
|
82
|
+
v = v.slice(0, v.length - suffix.length - 1);
|
83
|
+
}
|
84
|
+
}
|
85
|
+
return v;
|
86
|
+
}
|
87
|
+
get result() {
|
88
|
+
if (!this.isEnabled) {
|
89
|
+
return undefined;
|
90
|
+
}
|
91
|
+
if (!this._result) {
|
92
|
+
return undefined;
|
93
|
+
}
|
94
|
+
if (this._result.domain !== this.value) {
|
95
|
+
return undefined;
|
96
|
+
}
|
97
|
+
return this._result;
|
98
|
+
}
|
99
|
+
get isFetching() {
|
100
|
+
return this._isFetching;
|
101
|
+
}
|
102
|
+
fetch() {
|
103
|
+
return __awaiter(this, void 0, void 0, function* () {
|
104
|
+
if (!this.isEnabled ||
|
105
|
+
this.value.trim().length === 0 ||
|
106
|
+
!this._starknetID) {
|
107
|
+
(0, mobx_1.runInAction)(() => {
|
108
|
+
this._result = undefined;
|
109
|
+
this._isFetching = false;
|
110
|
+
});
|
111
|
+
return;
|
112
|
+
}
|
113
|
+
this.debounce.run(() => this.fetchInternal());
|
114
|
+
});
|
115
|
+
}
|
116
|
+
fetchInternal() {
|
117
|
+
return __awaiter(this, void 0, void 0, function* () {
|
118
|
+
try {
|
119
|
+
const modularChainInfo = this.base.modularChainInfo;
|
120
|
+
if (!("starknet" in modularChainInfo)) {
|
121
|
+
throw new Error(`${modularChainInfo.chainId} is not starknet chain`);
|
122
|
+
}
|
123
|
+
if (!this._starknetID) {
|
124
|
+
throw new Error("Starknet id is not set");
|
125
|
+
}
|
126
|
+
(0, mobx_1.runInAction)(() => {
|
127
|
+
this._isFetching = true;
|
128
|
+
});
|
129
|
+
const prevValue = this.value;
|
130
|
+
const suffix = "stark";
|
131
|
+
const domain = this.value;
|
132
|
+
const username = domain + "." + suffix;
|
133
|
+
const res = yield (0, simple_fetch_1.simpleFetch)(modularChainInfo.starknet.rpc, "", {
|
134
|
+
method: "POST",
|
135
|
+
headers: {
|
136
|
+
"content-type": "application/json",
|
137
|
+
},
|
138
|
+
body: JSON.stringify({
|
139
|
+
jsonrpc: "2.0",
|
140
|
+
id: "1",
|
141
|
+
method: "starknet_call",
|
142
|
+
params: [
|
143
|
+
{
|
144
|
+
contract_address: this._starknetID.namingContractAddress,
|
145
|
+
calldata: starknet_1.CallData.toHex({
|
146
|
+
domain: encodeDomain(username).map((v) => v.toString(10)),
|
147
|
+
hint: [],
|
148
|
+
}),
|
149
|
+
entry_point_selector: "0x2e269d930f6d7ab92b15ce8ff9f5e63709391617e3465fff79ba6baf278ce60", // selector.getSelectorFromName("domain_to_address"),
|
150
|
+
},
|
151
|
+
"latest",
|
152
|
+
],
|
153
|
+
}),
|
154
|
+
});
|
155
|
+
if (this.value === prevValue) {
|
156
|
+
if (res.data.error && res.data.error.message) {
|
157
|
+
throw new errors_1.StarknetIDIsFetchingError(res.data.error.message);
|
158
|
+
}
|
159
|
+
const data = res.data.result;
|
160
|
+
if (!data) {
|
161
|
+
throw new errors_1.StarknetIDIsFetchingError("no address found");
|
162
|
+
}
|
163
|
+
const rawHexAddr = data[0];
|
164
|
+
if (rawHexAddr === "0x0") {
|
165
|
+
throw new errors_1.StarknetIDIsFetchingError("no address found");
|
166
|
+
}
|
167
|
+
const addr = "0x" + rawHexAddr.replace("0x", "").padStart(64, "0");
|
168
|
+
(0, mobx_1.runInAction)(() => {
|
169
|
+
this._result = {
|
170
|
+
address: addr,
|
171
|
+
fullName: username,
|
172
|
+
domain,
|
173
|
+
suffix,
|
174
|
+
};
|
175
|
+
this._isFetching = false;
|
176
|
+
});
|
177
|
+
}
|
178
|
+
}
|
179
|
+
catch (e) {
|
180
|
+
console.log(e);
|
181
|
+
(0, mobx_1.runInAction)(() => {
|
182
|
+
this._result = undefined;
|
183
|
+
this._isFetching = false;
|
184
|
+
});
|
185
|
+
}
|
186
|
+
});
|
187
|
+
}
|
188
|
+
}
|
189
|
+
__decorate([
|
190
|
+
mobx_1.observable
|
191
|
+
], StarknetIdNameService.prototype, "_isEnabled", void 0);
|
192
|
+
__decorate([
|
193
|
+
mobx_1.observable
|
194
|
+
], StarknetIdNameService.prototype, "_isFetching", void 0);
|
195
|
+
__decorate([
|
196
|
+
mobx_1.observable
|
197
|
+
], StarknetIdNameService.prototype, "_value", void 0);
|
198
|
+
__decorate([
|
199
|
+
mobx_1.observable.ref
|
200
|
+
], StarknetIdNameService.prototype, "_result", void 0);
|
201
|
+
__decorate([
|
202
|
+
mobx_1.observable.struct
|
203
|
+
], StarknetIdNameService.prototype, "_starknetID", void 0);
|
204
|
+
__decorate([
|
205
|
+
mobx_1.action
|
206
|
+
], StarknetIdNameService.prototype, "setStarknetID", null);
|
207
|
+
__decorate([
|
208
|
+
mobx_1.action
|
209
|
+
], StarknetIdNameService.prototype, "setIsEnabled", null);
|
210
|
+
__decorate([
|
211
|
+
mobx_1.action
|
212
|
+
], StarknetIdNameService.prototype, "setValue", null);
|
213
|
+
exports.StarknetIdNameService = StarknetIdNameService;
|
214
|
+
const noop = (..._args) => {
|
215
|
+
// noop
|
216
|
+
};
|
217
|
+
const networkToNamingContractAddress = {
|
218
|
+
[starknet_1.constants.NetworkName.SN_MAIN]: "0x6ac597f8116f886fa1c97a23fa4e08299975ecaf6b598873ca6792b9bbfb678",
|
219
|
+
[starknet_1.constants.NetworkName.SN_SEPOLIA]: "0x0707f09bc576bd7cfee59694846291047e965f4184fe13dac62c56759b3b6fa7",
|
220
|
+
};
|
221
|
+
const basicAlphabet = "abcdefghijklmnopqrstuvwxyz0123456789-";
|
222
|
+
const basicSizePlusOne = BigInt(basicAlphabet.length + 1);
|
223
|
+
const bigAlphabet = "这来";
|
224
|
+
const basicAlphabetSize = BigInt(basicAlphabet.length);
|
225
|
+
const bigAlphabetSize = BigInt(bigAlphabet.length);
|
226
|
+
function encodeDomain(domain) {
|
227
|
+
if (!domain)
|
228
|
+
return [BigInt(0)];
|
229
|
+
const encoded = [];
|
230
|
+
for (const subdomain of domain.replace(".stark", "").split("."))
|
231
|
+
encoded.push(encode(subdomain));
|
232
|
+
return encoded;
|
233
|
+
}
|
234
|
+
function extractStars(str) {
|
235
|
+
let k = 0;
|
236
|
+
while (str.endsWith(bigAlphabet[bigAlphabet.length - 1])) {
|
237
|
+
str = str.substring(0, str.length - 1);
|
238
|
+
k += 1;
|
239
|
+
}
|
240
|
+
return [str, k];
|
241
|
+
}
|
242
|
+
function encode(decoded) {
|
243
|
+
let encoded = BigInt(0);
|
244
|
+
let multiplier = BigInt(1);
|
245
|
+
if (!decoded) {
|
246
|
+
return encoded;
|
247
|
+
}
|
248
|
+
if (decoded.endsWith(bigAlphabet[0] + basicAlphabet[1])) {
|
249
|
+
const [str, k] = extractStars(decoded.substring(0, decoded.length - 2));
|
250
|
+
decoded = str + bigAlphabet[bigAlphabet.length - 1].repeat(2 * (k + 1));
|
251
|
+
}
|
252
|
+
else {
|
253
|
+
const [str, k] = extractStars(decoded);
|
254
|
+
if (k)
|
255
|
+
decoded =
|
256
|
+
str + bigAlphabet[bigAlphabet.length - 1].repeat(1 + 2 * (k - 1));
|
257
|
+
}
|
258
|
+
for (let i = 0; i < decoded.length; i += 1) {
|
259
|
+
const char = decoded[i];
|
260
|
+
const index = basicAlphabet.indexOf(char);
|
261
|
+
const bnIndex = BigInt(basicAlphabet.indexOf(char));
|
262
|
+
if (index !== -1) {
|
263
|
+
// add encoded + multiplier * index
|
264
|
+
if (i === decoded.length - 1 && decoded[i] === basicAlphabet[0]) {
|
265
|
+
encoded += multiplier * basicAlphabetSize;
|
266
|
+
multiplier *= basicSizePlusOne;
|
267
|
+
// add 0
|
268
|
+
multiplier *= basicSizePlusOne;
|
269
|
+
}
|
270
|
+
else {
|
271
|
+
encoded += multiplier * bnIndex;
|
272
|
+
multiplier *= basicSizePlusOne;
|
273
|
+
}
|
274
|
+
}
|
275
|
+
else if (bigAlphabet.indexOf(char) !== -1) {
|
276
|
+
// add encoded + multiplier * (basicAlphabetSize)
|
277
|
+
encoded += multiplier * basicAlphabetSize;
|
278
|
+
multiplier *= basicSizePlusOne;
|
279
|
+
// add encoded + multiplier * index
|
280
|
+
const newid = (i === decoded.length - 1 ? 1 : 0) + bigAlphabet.indexOf(char);
|
281
|
+
encoded += multiplier * BigInt(newid);
|
282
|
+
multiplier *= bigAlphabetSize;
|
283
|
+
}
|
284
|
+
}
|
285
|
+
return encoded;
|
286
|
+
}
|
287
|
+
//# sourceMappingURL=name-service-starknet-id.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"name-service-starknet-id.js","sourceRoot":"","sources":["../../src/tx/name-service-starknet-id.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
export interface NameService {
|
3
|
+
type: string;
|
4
|
+
setIsEnabled: (isEnabled: boolean) => void;
|
5
|
+
isEnabled: boolean;
|
6
|
+
result: {
|
7
|
+
address: string;
|
8
|
+
fullName: string;
|
9
|
+
domain: string;
|
10
|
+
suffix: string;
|
11
|
+
} | undefined;
|
12
|
+
isFetching: boolean;
|
13
|
+
setValue: (value: string) => void;
|
14
|
+
value: string;
|
15
|
+
}
|
16
|
+
export declare class FetchDebounce {
|
17
|
+
readonly debounceMs = 50;
|
18
|
+
protected timeout: NodeJS.Timeout | undefined;
|
19
|
+
run(fn: () => Promise<void>): void;
|
20
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.FetchDebounce = void 0;
|
4
|
+
class FetchDebounce {
|
5
|
+
constructor() {
|
6
|
+
this.debounceMs = 50;
|
7
|
+
this.timeout = undefined;
|
8
|
+
}
|
9
|
+
run(fn) {
|
10
|
+
if (this.timeout) {
|
11
|
+
clearTimeout(this.timeout);
|
12
|
+
}
|
13
|
+
this.timeout = setTimeout(() => {
|
14
|
+
this.timeout = undefined;
|
15
|
+
fn();
|
16
|
+
}, this.debounceMs);
|
17
|
+
}
|
18
|
+
}
|
19
|
+
exports.FetchDebounce = FetchDebounce;
|
20
|
+
//# sourceMappingURL=name-service.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"name-service.js","sourceRoot":"","sources":["../../src/tx/name-service.ts"],"names":[],"mappings":";;;AAwBA,MAAa,aAAa;IAA1B;QACW,eAAU,GAAG,EAAE,CAAC;QAEf,YAAO,GAA+B,SAAS,CAAC;IAW5D,CAAC;IATC,GAAG,CAAC,EAAuB;QACzB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,EAAE,EAAE,CAAC;QACP,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;CACF;AAdD,sCAcC"}
|
package/build/tx/recipient.d.ts
CHANGED
@@ -1,29 +1,27 @@
|
|
1
|
-
import { IRecipientConfig,
|
1
|
+
import { IRecipientConfig, UIProperties, IRecipientConfigWithNameServices } from "./types";
|
2
2
|
import { TxChainSetter } from "./chain";
|
3
3
|
import { ChainGetter } from "@keplr-wallet/stores";
|
4
|
-
|
5
|
-
|
6
|
-
starknetHexAddress?: string;
|
7
|
-
error?: Error;
|
8
|
-
}
|
9
|
-
export declare class RecipientConfig extends TxChainSetter implements IRecipientConfig, IRecipientConfigWithStarknetID {
|
4
|
+
import { NameService } from "./name-service";
|
5
|
+
export declare class RecipientConfig extends TxChainSetter implements IRecipientConfig, IRecipientConfigWithNameServices {
|
10
6
|
protected _value: string;
|
11
|
-
protected
|
12
|
-
|
13
|
-
namingContractAddress: string;
|
14
|
-
} | undefined;
|
15
|
-
protected _starknetIDFetchDataMap: Map<string, StarknetIDFetchData>;
|
7
|
+
protected _preferredNameService: string | undefined;
|
8
|
+
protected nameServices: NameService[];
|
16
9
|
constructor(chainGetter: ChainGetter, initialChainId: string);
|
10
|
+
get preferredNameService(): string | undefined;
|
11
|
+
setPreferredNameService(nameService: string | undefined): void;
|
12
|
+
getNameService(type: string): NameService | undefined;
|
13
|
+
getNameServices(): NameService[];
|
14
|
+
get nameServiceResult(): {
|
15
|
+
type: string;
|
16
|
+
address: string;
|
17
|
+
fullName: string;
|
18
|
+
domain: string;
|
19
|
+
suffix: string;
|
20
|
+
}[];
|
17
21
|
setStarknetID(chainId: string): void;
|
18
|
-
protected getStarknetIDFetchData(username: string): StarknetIDFetchData;
|
19
|
-
get isStarknetIDEnabled(): boolean;
|
20
|
-
get isStarknetID(): boolean;
|
21
|
-
get isStarknetIDFetching(): boolean;
|
22
|
-
get starknetExpectedDomain(): string;
|
23
22
|
get recipient(): string;
|
24
23
|
get uiProperties(): UIProperties;
|
25
24
|
get value(): string;
|
26
25
|
setValue(value: string): void;
|
27
26
|
}
|
28
27
|
export declare const useRecipientConfig: (chainGetter: ChainGetter, chainId: string) => RecipientConfig;
|
29
|
-
export {};
|