@safe-global/api-kit 3.0.0 → 4.0.0-alpha.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/dist/cjs/index.cjs +95 -60
- package/dist/esm/index.mjs +95 -60
- package/dist/src/SafeApiKit.d.ts +8 -1
- package/dist/src/SafeApiKit.d.ts.map +1 -1
- package/dist/src/utils/config.d.ts +8 -1
- package/dist/src/utils/config.d.ts.map +1 -1
- package/dist/src/utils/httpRequests.d.ts +2 -3
- package/dist/src/utils/httpRequests.d.ts.map +1 -1
- package/package.json +5 -5
package/dist/cjs/index.cjs
CHANGED
|
@@ -35,14 +35,18 @@ __export(index_exports, {
|
|
|
35
35
|
module.exports = __toCommonJS(index_exports);
|
|
36
36
|
|
|
37
37
|
// src/utils/httpRequests.ts
|
|
38
|
-
async function sendRequest({ url, method, body }) {
|
|
38
|
+
async function sendRequest({ url, method, body }, apiKey) {
|
|
39
39
|
const fetch = await (typeof window === "undefined" ? import("node-fetch").then((m) => m.default) : Promise.resolve(window.fetch));
|
|
40
|
+
const headers = {
|
|
41
|
+
Accept: "application/json",
|
|
42
|
+
"Content-Type": "application/json"
|
|
43
|
+
};
|
|
44
|
+
if (apiKey) {
|
|
45
|
+
headers["Authorization"] = `Bearer ${apiKey}`;
|
|
46
|
+
}
|
|
40
47
|
const response = await fetch(url, {
|
|
41
48
|
method,
|
|
42
|
-
headers
|
|
43
|
-
Accept: "application/json",
|
|
44
|
-
"Content-Type": "application/json"
|
|
45
|
-
},
|
|
49
|
+
headers,
|
|
46
50
|
body: JSON.stringify(body)
|
|
47
51
|
});
|
|
48
52
|
let jsonResponse;
|
|
@@ -106,28 +110,44 @@ async function signDelegate(walletClient, delegateAddress, chainId) {
|
|
|
106
110
|
var import_protocol_kit = require("@safe-global/protocol-kit");
|
|
107
111
|
|
|
108
112
|
// src/utils/config.ts
|
|
109
|
-
var
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
113
|
+
var TRANSACTION_SERVICE_URL = "https://api.safe.global/tx-service";
|
|
114
|
+
var networks = [
|
|
115
|
+
{ chainId: 1n, shortName: "eth" },
|
|
116
|
+
{ chainId: 10n, shortName: "oeth" },
|
|
117
|
+
{ chainId: 56n, shortName: "bnb" },
|
|
118
|
+
{ chainId: 100n, shortName: "gno" },
|
|
119
|
+
{ chainId: 130n, shortName: "unichain" },
|
|
120
|
+
{ chainId: 137n, shortName: "pol" },
|
|
121
|
+
{ chainId: 146n, shortName: "sonic" },
|
|
122
|
+
{ chainId: 196n, shortName: "okb" },
|
|
123
|
+
{ chainId: 232n, shortName: "lens" },
|
|
124
|
+
{ chainId: 324n, shortName: "zksync" },
|
|
125
|
+
{ chainId: 480n, shortName: "wc" },
|
|
126
|
+
{ chainId: 1101n, shortName: "zkevm" },
|
|
127
|
+
{ chainId: 5000n, shortName: "mantle" },
|
|
128
|
+
{ chainId: 8453n, shortName: "base" },
|
|
129
|
+
{ chainId: 10200n, shortName: "chi" },
|
|
130
|
+
{ chainId: 42161n, shortName: "arb1" },
|
|
131
|
+
{ chainId: 43111n, shortName: "hemi" },
|
|
132
|
+
{ chainId: 57073n, shortName: "ink" },
|
|
133
|
+
{ chainId: 80094n, shortName: "berachain" },
|
|
134
|
+
{ chainId: 59144n, shortName: "linea" },
|
|
135
|
+
{ chainId: 42220n, shortName: "celo" },
|
|
136
|
+
{ chainId: 43114n, shortName: "avax" },
|
|
137
|
+
{ chainId: 84532n, shortName: "basesep" },
|
|
138
|
+
{ chainId: 534352n, shortName: "scr" },
|
|
139
|
+
{ chainId: 11155111n, shortName: "sep" },
|
|
140
|
+
{ chainId: 1313161554n, shortName: "aurora" }
|
|
141
|
+
];
|
|
142
|
+
var getNetworkShortName = (chainId) => {
|
|
143
|
+
const network = networks.find((n) => n.chainId === chainId);
|
|
144
|
+
if (!network) {
|
|
145
|
+
throw new Error(`Network with chainId ${chainId} not found`);
|
|
146
|
+
}
|
|
147
|
+
return network.shortName;
|
|
148
|
+
};
|
|
149
|
+
var getTransactionServiceUrl = (chainId) => {
|
|
150
|
+
return `${TRANSACTION_SERVICE_URL}/${getNetworkShortName(chainId)}/api`;
|
|
131
151
|
};
|
|
132
152
|
|
|
133
153
|
// src/utils/constants.ts
|
|
@@ -163,13 +183,24 @@ var QUERY_PARAMS_MAP = {
|
|
|
163
183
|
// src/SafeApiKit.ts
|
|
164
184
|
var SafeApiKit = class {
|
|
165
185
|
#chainId;
|
|
186
|
+
#apiKey;
|
|
166
187
|
#txServiceBaseUrl;
|
|
167
|
-
constructor({ chainId, txServiceUrl }) {
|
|
188
|
+
constructor({ chainId, txServiceUrl, apiKey }) {
|
|
168
189
|
this.#chainId = chainId;
|
|
169
190
|
if (txServiceUrl) {
|
|
191
|
+
if ((txServiceUrl.includes("api.safe.global") || txServiceUrl.includes("api.5afe.dev")) && !apiKey) {
|
|
192
|
+
throw new Error(
|
|
193
|
+
"apiKey is mandatory when using api.safe.global or api.5afe.dev domains. Please obtain your API key at https://developer.safe.global."
|
|
194
|
+
);
|
|
195
|
+
}
|
|
170
196
|
this.#txServiceBaseUrl = txServiceUrl;
|
|
171
197
|
} else {
|
|
172
|
-
|
|
198
|
+
if (!apiKey) {
|
|
199
|
+
throw new Error(
|
|
200
|
+
"apiKey is mandatory when txServiceUrl is not defined. Please obtain your API key at https://developer.safe.global."
|
|
201
|
+
);
|
|
202
|
+
}
|
|
203
|
+
const url = getTransactionServiceUrl(chainId);
|
|
173
204
|
if (!url) {
|
|
174
205
|
throw new TypeError(
|
|
175
206
|
`There is no transaction service available for chainId ${chainId}. Please set the txServiceUrl property to use a custom transaction service.`
|
|
@@ -177,6 +208,7 @@ var SafeApiKit = class {
|
|
|
177
208
|
}
|
|
178
209
|
this.#txServiceBaseUrl = url;
|
|
179
210
|
}
|
|
211
|
+
this.#apiKey = apiKey;
|
|
180
212
|
}
|
|
181
213
|
#isValidAddress(address) {
|
|
182
214
|
try {
|
|
@@ -207,13 +239,16 @@ var SafeApiKit = class {
|
|
|
207
239
|
}
|
|
208
240
|
});
|
|
209
241
|
}
|
|
242
|
+
async #api(request) {
|
|
243
|
+
return sendRequest(request, this.#apiKey);
|
|
244
|
+
}
|
|
210
245
|
/**
|
|
211
246
|
* Returns the information and configuration of the service.
|
|
212
247
|
*
|
|
213
248
|
* @returns The information and configuration of the service
|
|
214
249
|
*/
|
|
215
250
|
async getServiceInfo() {
|
|
216
|
-
return
|
|
251
|
+
return this.#api({
|
|
217
252
|
url: `${this.#txServiceBaseUrl}/v1/about`,
|
|
218
253
|
method: "get" /* Get */
|
|
219
254
|
});
|
|
@@ -224,7 +259,7 @@ var SafeApiKit = class {
|
|
|
224
259
|
* @returns The list of Safe singletons
|
|
225
260
|
*/
|
|
226
261
|
async getServiceSingletonsInfo() {
|
|
227
|
-
return
|
|
262
|
+
return this.#api({
|
|
228
263
|
url: `${this.#txServiceBaseUrl}/v1/about/singletons`,
|
|
229
264
|
method: "get" /* Get */
|
|
230
265
|
});
|
|
@@ -247,7 +282,7 @@ var SafeApiKit = class {
|
|
|
247
282
|
if (to) {
|
|
248
283
|
dataDecoderRequest.to = to;
|
|
249
284
|
}
|
|
250
|
-
return
|
|
285
|
+
return this.#api({
|
|
251
286
|
url: `${this.#txServiceBaseUrl}/v1/data-decoder/`,
|
|
252
287
|
method: "post" /* Post */,
|
|
253
288
|
body: dataDecoderRequest
|
|
@@ -290,7 +325,7 @@ var SafeApiKit = class {
|
|
|
290
325
|
if (offset != null) {
|
|
291
326
|
url.searchParams.set("offset", offset.toString());
|
|
292
327
|
}
|
|
293
|
-
return
|
|
328
|
+
return this.#api({
|
|
294
329
|
url: url.toString(),
|
|
295
330
|
method: "get" /* Get */
|
|
296
331
|
});
|
|
@@ -334,7 +369,7 @@ var SafeApiKit = class {
|
|
|
334
369
|
label,
|
|
335
370
|
signature
|
|
336
371
|
};
|
|
337
|
-
return
|
|
372
|
+
return this.#api({
|
|
338
373
|
url: `${this.#txServiceBaseUrl}/v2/delegates/`,
|
|
339
374
|
method: "post" /* Post */,
|
|
340
375
|
body
|
|
@@ -365,7 +400,7 @@ var SafeApiKit = class {
|
|
|
365
400
|
const { address: delegate } = this.#getEip3770Address(delegateAddress);
|
|
366
401
|
const { address: delegator } = this.#getEip3770Address(delegatorAddress);
|
|
367
402
|
const signature = await signDelegate(signer, delegate, this.#chainId);
|
|
368
|
-
return
|
|
403
|
+
return this.#api({
|
|
369
404
|
url: `${this.#txServiceBaseUrl}/v2/delegates/${delegate}`,
|
|
370
405
|
method: "delete" /* Delete */,
|
|
371
406
|
body: {
|
|
@@ -383,7 +418,7 @@ var SafeApiKit = class {
|
|
|
383
418
|
if (!messageHash) {
|
|
384
419
|
throw new Error("Invalid messageHash");
|
|
385
420
|
}
|
|
386
|
-
return
|
|
421
|
+
return this.#api({
|
|
387
422
|
url: `${this.#txServiceBaseUrl}/v1/messages/${messageHash}/`,
|
|
388
423
|
method: "get" /* Get */
|
|
389
424
|
});
|
|
@@ -400,7 +435,7 @@ var SafeApiKit = class {
|
|
|
400
435
|
}
|
|
401
436
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${safeAddress}/messages/`);
|
|
402
437
|
this.#addUrlQueryParams(url, options);
|
|
403
|
-
return
|
|
438
|
+
return this.#api({
|
|
404
439
|
url: url.toString(),
|
|
405
440
|
method: "get" /* Get */
|
|
406
441
|
});
|
|
@@ -415,7 +450,7 @@ var SafeApiKit = class {
|
|
|
415
450
|
if (!this.#isValidAddress(safeAddress)) {
|
|
416
451
|
throw new Error("Invalid safeAddress");
|
|
417
452
|
}
|
|
418
|
-
return
|
|
453
|
+
return this.#api({
|
|
419
454
|
url: `${this.#txServiceBaseUrl}/v1/safes/${safeAddress}/messages/`,
|
|
420
455
|
method: "post" /* Post */,
|
|
421
456
|
body: addMessageOptions
|
|
@@ -430,7 +465,7 @@ var SafeApiKit = class {
|
|
|
430
465
|
if (!messageHash || !signature) {
|
|
431
466
|
throw new Error("Invalid messageHash or signature");
|
|
432
467
|
}
|
|
433
|
-
return
|
|
468
|
+
return this.#api({
|
|
434
469
|
url: `${this.#txServiceBaseUrl}/v1/messages/${messageHash}/signatures/`,
|
|
435
470
|
method: "post" /* Post */,
|
|
436
471
|
body: {
|
|
@@ -451,7 +486,7 @@ var SafeApiKit = class {
|
|
|
451
486
|
throw new Error("Invalid owner address");
|
|
452
487
|
}
|
|
453
488
|
const { address } = this.#getEip3770Address(ownerAddress);
|
|
454
|
-
return
|
|
489
|
+
return this.#api({
|
|
455
490
|
url: `${this.#txServiceBaseUrl}/v1/owners/${address}/safes/`,
|
|
456
491
|
method: "get" /* Get */
|
|
457
492
|
});
|
|
@@ -469,7 +504,7 @@ var SafeApiKit = class {
|
|
|
469
504
|
throw new Error("Invalid module address");
|
|
470
505
|
}
|
|
471
506
|
const { address } = this.#getEip3770Address(moduleAddress);
|
|
472
|
-
return
|
|
507
|
+
return this.#api({
|
|
473
508
|
url: `${this.#txServiceBaseUrl}/v1/modules/${address}/safes/`,
|
|
474
509
|
method: "get" /* Get */
|
|
475
510
|
});
|
|
@@ -486,7 +521,7 @@ var SafeApiKit = class {
|
|
|
486
521
|
if (safeTxHash === "") {
|
|
487
522
|
throw new Error("Invalid safeTxHash");
|
|
488
523
|
}
|
|
489
|
-
return
|
|
524
|
+
return this.#api({
|
|
490
525
|
url: `${this.#txServiceBaseUrl}/v1/multisig-transactions/${safeTxHash}/`,
|
|
491
526
|
method: "get" /* Get */
|
|
492
527
|
});
|
|
@@ -502,7 +537,7 @@ var SafeApiKit = class {
|
|
|
502
537
|
if (safeTxHash === "") {
|
|
503
538
|
throw new Error("Invalid safeTxHash");
|
|
504
539
|
}
|
|
505
|
-
return
|
|
540
|
+
return this.#api({
|
|
506
541
|
url: `${this.#txServiceBaseUrl}/v1/multisig-transactions/${safeTxHash}/confirmations/`,
|
|
507
542
|
method: "get" /* Get */
|
|
508
543
|
});
|
|
@@ -525,7 +560,7 @@ var SafeApiKit = class {
|
|
|
525
560
|
if (signature === "") {
|
|
526
561
|
throw new Error("Invalid signature");
|
|
527
562
|
}
|
|
528
|
-
return
|
|
563
|
+
return this.#api({
|
|
529
564
|
url: `${this.#txServiceBaseUrl}/v1/multisig-transactions/${safeTxHash}/confirmations/`,
|
|
530
565
|
method: "post" /* Post */,
|
|
531
566
|
body: {
|
|
@@ -546,7 +581,7 @@ var SafeApiKit = class {
|
|
|
546
581
|
throw new Error("Invalid Safe address");
|
|
547
582
|
}
|
|
548
583
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
549
|
-
return
|
|
584
|
+
return this.#api({
|
|
550
585
|
url: `${this.#txServiceBaseUrl}/v1/safes/${address}/`,
|
|
551
586
|
method: "get" /* Get */
|
|
552
587
|
}).then((response) => {
|
|
@@ -572,7 +607,7 @@ var SafeApiKit = class {
|
|
|
572
607
|
throw new Error("Invalid Safe address");
|
|
573
608
|
}
|
|
574
609
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
575
|
-
return
|
|
610
|
+
return this.#api({
|
|
576
611
|
url: `${this.#txServiceBaseUrl}/v1/safes/${address}/creation/`,
|
|
577
612
|
method: "get" /* Get */
|
|
578
613
|
}).then((response) => {
|
|
@@ -599,7 +634,7 @@ var SafeApiKit = class {
|
|
|
599
634
|
throw new Error("Invalid Safe address");
|
|
600
635
|
}
|
|
601
636
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
602
|
-
return
|
|
637
|
+
return this.#api({
|
|
603
638
|
url: `${this.#txServiceBaseUrl}/v1/safes/${address}/multisig-transactions/estimations/`,
|
|
604
639
|
method: "post" /* Post */,
|
|
605
640
|
body: safeTransaction
|
|
@@ -631,7 +666,7 @@ var SafeApiKit = class {
|
|
|
631
666
|
if (safeTxHash === "") {
|
|
632
667
|
throw new Error("Invalid safeTxHash");
|
|
633
668
|
}
|
|
634
|
-
return
|
|
669
|
+
return this.#api({
|
|
635
670
|
url: `${this.#txServiceBaseUrl}/v1/safes/${safe}/multisig-transactions/`,
|
|
636
671
|
method: "post" /* Post */,
|
|
637
672
|
body: {
|
|
@@ -659,7 +694,7 @@ var SafeApiKit = class {
|
|
|
659
694
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
660
695
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/incoming-transfers/`);
|
|
661
696
|
this.#addUrlQueryParams(url, options);
|
|
662
|
-
return
|
|
697
|
+
return this.#api({
|
|
663
698
|
url: url.toString(),
|
|
664
699
|
method: "get" /* Get */
|
|
665
700
|
});
|
|
@@ -681,7 +716,7 @@ var SafeApiKit = class {
|
|
|
681
716
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
682
717
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/module-transactions/`);
|
|
683
718
|
this.#addUrlQueryParams(url, options);
|
|
684
|
-
return
|
|
719
|
+
return this.#api({
|
|
685
720
|
url: url.toString(),
|
|
686
721
|
method: "get" /* Get */
|
|
687
722
|
});
|
|
@@ -702,7 +737,7 @@ var SafeApiKit = class {
|
|
|
702
737
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
703
738
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/multisig-transactions/`);
|
|
704
739
|
this.#addUrlQueryParams(url, options);
|
|
705
|
-
return
|
|
740
|
+
return this.#api({
|
|
706
741
|
url: url.toString(),
|
|
707
742
|
method: "get" /* Get */
|
|
708
743
|
});
|
|
@@ -739,7 +774,7 @@ var SafeApiKit = class {
|
|
|
739
774
|
if (offset != null) {
|
|
740
775
|
url.searchParams.set("offset", offset.toString());
|
|
741
776
|
}
|
|
742
|
-
return
|
|
777
|
+
return this.#api({
|
|
743
778
|
url: url.toString(),
|
|
744
779
|
method: "get" /* Get */
|
|
745
780
|
});
|
|
@@ -761,7 +796,7 @@ var SafeApiKit = class {
|
|
|
761
796
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
762
797
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/all-transactions/`);
|
|
763
798
|
this.#addUrlQueryParams(url, options);
|
|
764
|
-
return
|
|
799
|
+
return this.#api({
|
|
765
800
|
url: url.toString(),
|
|
766
801
|
method: "get" /* Get */
|
|
767
802
|
});
|
|
@@ -800,7 +835,7 @@ var SafeApiKit = class {
|
|
|
800
835
|
async getTokenList(options) {
|
|
801
836
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/tokens/`);
|
|
802
837
|
this.#addUrlQueryParams(url, options);
|
|
803
|
-
return
|
|
838
|
+
return this.#api({
|
|
804
839
|
url: url.toString(),
|
|
805
840
|
method: "get" /* Get */
|
|
806
841
|
});
|
|
@@ -818,7 +853,7 @@ var SafeApiKit = class {
|
|
|
818
853
|
throw new Error("Invalid token address");
|
|
819
854
|
}
|
|
820
855
|
const { address } = this.#getEip3770Address(tokenAddress);
|
|
821
|
-
return
|
|
856
|
+
return this.#api({
|
|
822
857
|
url: `${this.#txServiceBaseUrl}/v1/tokens/${address}/`,
|
|
823
858
|
method: "get" /* Get */
|
|
824
859
|
});
|
|
@@ -838,7 +873,7 @@ var SafeApiKit = class {
|
|
|
838
873
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
839
874
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/safe-operations/`);
|
|
840
875
|
this.#addUrlQueryParams(url, options);
|
|
841
|
-
return
|
|
876
|
+
return this.#api({
|
|
842
877
|
url: url.toString(),
|
|
843
878
|
method: "get" /* Get */
|
|
844
879
|
});
|
|
@@ -868,7 +903,7 @@ var SafeApiKit = class {
|
|
|
868
903
|
if (!safeOperationHash) {
|
|
869
904
|
throw new Error("SafeOperation hash must not be empty");
|
|
870
905
|
}
|
|
871
|
-
return
|
|
906
|
+
return this.#api({
|
|
872
907
|
url: `${this.#txServiceBaseUrl}/v1/safe-operations/${safeOperationHash}/`,
|
|
873
908
|
method: "get" /* Get */
|
|
874
909
|
});
|
|
@@ -918,7 +953,7 @@ var SafeApiKit = class {
|
|
|
918
953
|
}
|
|
919
954
|
const getISOString = (date) => !date ? null : new Date(date * 1e3).toISOString();
|
|
920
955
|
const userOperationV06 = userOperation;
|
|
921
|
-
return
|
|
956
|
+
return this.#api({
|
|
922
957
|
url: `${this.#txServiceBaseUrl}/v1/safes/${safeAddress}/safe-operations/`,
|
|
923
958
|
method: "post" /* Post */,
|
|
924
959
|
body: {
|
|
@@ -961,7 +996,7 @@ var SafeApiKit = class {
|
|
|
961
996
|
if (offset != null) {
|
|
962
997
|
url.searchParams.set("offset", offset.toString());
|
|
963
998
|
}
|
|
964
|
-
return
|
|
999
|
+
return this.#api({
|
|
965
1000
|
url: url.toString(),
|
|
966
1001
|
method: "get" /* Get */
|
|
967
1002
|
});
|
|
@@ -984,7 +1019,7 @@ var SafeApiKit = class {
|
|
|
984
1019
|
if (!signature) {
|
|
985
1020
|
throw new Error("Invalid signature");
|
|
986
1021
|
}
|
|
987
|
-
return
|
|
1022
|
+
return this.#api({
|
|
988
1023
|
url: `${this.#txServiceBaseUrl}/v1/safe-operations/${safeOperationHash}/confirmations/`,
|
|
989
1024
|
method: "post" /* Post */,
|
|
990
1025
|
body: { signature }
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
// src/utils/httpRequests.ts
|
|
2
|
-
async function sendRequest({ url, method, body }) {
|
|
2
|
+
async function sendRequest({ url, method, body }, apiKey) {
|
|
3
3
|
const fetch = await (typeof window === "undefined" ? import("node-fetch").then((m) => m.default) : Promise.resolve(window.fetch));
|
|
4
|
+
const headers = {
|
|
5
|
+
Accept: "application/json",
|
|
6
|
+
"Content-Type": "application/json"
|
|
7
|
+
};
|
|
8
|
+
if (apiKey) {
|
|
9
|
+
headers["Authorization"] = `Bearer ${apiKey}`;
|
|
10
|
+
}
|
|
4
11
|
const response = await fetch(url, {
|
|
5
12
|
method,
|
|
6
|
-
headers
|
|
7
|
-
Accept: "application/json",
|
|
8
|
-
"Content-Type": "application/json"
|
|
9
|
-
},
|
|
13
|
+
headers,
|
|
10
14
|
body: JSON.stringify(body)
|
|
11
15
|
});
|
|
12
16
|
let jsonResponse;
|
|
@@ -70,28 +74,44 @@ async function signDelegate(walletClient, delegateAddress, chainId) {
|
|
|
70
74
|
import { validateEip3770Address, validateEthereumAddress } from "@safe-global/protocol-kit";
|
|
71
75
|
|
|
72
76
|
// src/utils/config.ts
|
|
73
|
-
var
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
77
|
+
var TRANSACTION_SERVICE_URL = "https://api.safe.global/tx-service";
|
|
78
|
+
var networks = [
|
|
79
|
+
{ chainId: 1n, shortName: "eth" },
|
|
80
|
+
{ chainId: 10n, shortName: "oeth" },
|
|
81
|
+
{ chainId: 56n, shortName: "bnb" },
|
|
82
|
+
{ chainId: 100n, shortName: "gno" },
|
|
83
|
+
{ chainId: 130n, shortName: "unichain" },
|
|
84
|
+
{ chainId: 137n, shortName: "pol" },
|
|
85
|
+
{ chainId: 146n, shortName: "sonic" },
|
|
86
|
+
{ chainId: 196n, shortName: "okb" },
|
|
87
|
+
{ chainId: 232n, shortName: "lens" },
|
|
88
|
+
{ chainId: 324n, shortName: "zksync" },
|
|
89
|
+
{ chainId: 480n, shortName: "wc" },
|
|
90
|
+
{ chainId: 1101n, shortName: "zkevm" },
|
|
91
|
+
{ chainId: 5000n, shortName: "mantle" },
|
|
92
|
+
{ chainId: 8453n, shortName: "base" },
|
|
93
|
+
{ chainId: 10200n, shortName: "chi" },
|
|
94
|
+
{ chainId: 42161n, shortName: "arb1" },
|
|
95
|
+
{ chainId: 43111n, shortName: "hemi" },
|
|
96
|
+
{ chainId: 57073n, shortName: "ink" },
|
|
97
|
+
{ chainId: 80094n, shortName: "berachain" },
|
|
98
|
+
{ chainId: 59144n, shortName: "linea" },
|
|
99
|
+
{ chainId: 42220n, shortName: "celo" },
|
|
100
|
+
{ chainId: 43114n, shortName: "avax" },
|
|
101
|
+
{ chainId: 84532n, shortName: "basesep" },
|
|
102
|
+
{ chainId: 534352n, shortName: "scr" },
|
|
103
|
+
{ chainId: 11155111n, shortName: "sep" },
|
|
104
|
+
{ chainId: 1313161554n, shortName: "aurora" }
|
|
105
|
+
];
|
|
106
|
+
var getNetworkShortName = (chainId) => {
|
|
107
|
+
const network = networks.find((n) => n.chainId === chainId);
|
|
108
|
+
if (!network) {
|
|
109
|
+
throw new Error(`Network with chainId ${chainId} not found`);
|
|
110
|
+
}
|
|
111
|
+
return network.shortName;
|
|
112
|
+
};
|
|
113
|
+
var getTransactionServiceUrl = (chainId) => {
|
|
114
|
+
return `${TRANSACTION_SERVICE_URL}/${getNetworkShortName(chainId)}/api`;
|
|
95
115
|
};
|
|
96
116
|
|
|
97
117
|
// src/utils/constants.ts
|
|
@@ -127,13 +147,24 @@ var QUERY_PARAMS_MAP = {
|
|
|
127
147
|
// src/SafeApiKit.ts
|
|
128
148
|
var SafeApiKit = class {
|
|
129
149
|
#chainId;
|
|
150
|
+
#apiKey;
|
|
130
151
|
#txServiceBaseUrl;
|
|
131
|
-
constructor({ chainId, txServiceUrl }) {
|
|
152
|
+
constructor({ chainId, txServiceUrl, apiKey }) {
|
|
132
153
|
this.#chainId = chainId;
|
|
133
154
|
if (txServiceUrl) {
|
|
155
|
+
if ((txServiceUrl.includes("api.safe.global") || txServiceUrl.includes("api.5afe.dev")) && !apiKey) {
|
|
156
|
+
throw new Error(
|
|
157
|
+
"apiKey is mandatory when using api.safe.global or api.5afe.dev domains. Please obtain your API key at https://developer.safe.global."
|
|
158
|
+
);
|
|
159
|
+
}
|
|
134
160
|
this.#txServiceBaseUrl = txServiceUrl;
|
|
135
161
|
} else {
|
|
136
|
-
|
|
162
|
+
if (!apiKey) {
|
|
163
|
+
throw new Error(
|
|
164
|
+
"apiKey is mandatory when txServiceUrl is not defined. Please obtain your API key at https://developer.safe.global."
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
const url = getTransactionServiceUrl(chainId);
|
|
137
168
|
if (!url) {
|
|
138
169
|
throw new TypeError(
|
|
139
170
|
`There is no transaction service available for chainId ${chainId}. Please set the txServiceUrl property to use a custom transaction service.`
|
|
@@ -141,6 +172,7 @@ var SafeApiKit = class {
|
|
|
141
172
|
}
|
|
142
173
|
this.#txServiceBaseUrl = url;
|
|
143
174
|
}
|
|
175
|
+
this.#apiKey = apiKey;
|
|
144
176
|
}
|
|
145
177
|
#isValidAddress(address) {
|
|
146
178
|
try {
|
|
@@ -171,13 +203,16 @@ var SafeApiKit = class {
|
|
|
171
203
|
}
|
|
172
204
|
});
|
|
173
205
|
}
|
|
206
|
+
async #api(request) {
|
|
207
|
+
return sendRequest(request, this.#apiKey);
|
|
208
|
+
}
|
|
174
209
|
/**
|
|
175
210
|
* Returns the information and configuration of the service.
|
|
176
211
|
*
|
|
177
212
|
* @returns The information and configuration of the service
|
|
178
213
|
*/
|
|
179
214
|
async getServiceInfo() {
|
|
180
|
-
return
|
|
215
|
+
return this.#api({
|
|
181
216
|
url: `${this.#txServiceBaseUrl}/v1/about`,
|
|
182
217
|
method: "get" /* Get */
|
|
183
218
|
});
|
|
@@ -188,7 +223,7 @@ var SafeApiKit = class {
|
|
|
188
223
|
* @returns The list of Safe singletons
|
|
189
224
|
*/
|
|
190
225
|
async getServiceSingletonsInfo() {
|
|
191
|
-
return
|
|
226
|
+
return this.#api({
|
|
192
227
|
url: `${this.#txServiceBaseUrl}/v1/about/singletons`,
|
|
193
228
|
method: "get" /* Get */
|
|
194
229
|
});
|
|
@@ -211,7 +246,7 @@ var SafeApiKit = class {
|
|
|
211
246
|
if (to) {
|
|
212
247
|
dataDecoderRequest.to = to;
|
|
213
248
|
}
|
|
214
|
-
return
|
|
249
|
+
return this.#api({
|
|
215
250
|
url: `${this.#txServiceBaseUrl}/v1/data-decoder/`,
|
|
216
251
|
method: "post" /* Post */,
|
|
217
252
|
body: dataDecoderRequest
|
|
@@ -254,7 +289,7 @@ var SafeApiKit = class {
|
|
|
254
289
|
if (offset != null) {
|
|
255
290
|
url.searchParams.set("offset", offset.toString());
|
|
256
291
|
}
|
|
257
|
-
return
|
|
292
|
+
return this.#api({
|
|
258
293
|
url: url.toString(),
|
|
259
294
|
method: "get" /* Get */
|
|
260
295
|
});
|
|
@@ -298,7 +333,7 @@ var SafeApiKit = class {
|
|
|
298
333
|
label,
|
|
299
334
|
signature
|
|
300
335
|
};
|
|
301
|
-
return
|
|
336
|
+
return this.#api({
|
|
302
337
|
url: `${this.#txServiceBaseUrl}/v2/delegates/`,
|
|
303
338
|
method: "post" /* Post */,
|
|
304
339
|
body
|
|
@@ -329,7 +364,7 @@ var SafeApiKit = class {
|
|
|
329
364
|
const { address: delegate } = this.#getEip3770Address(delegateAddress);
|
|
330
365
|
const { address: delegator } = this.#getEip3770Address(delegatorAddress);
|
|
331
366
|
const signature = await signDelegate(signer, delegate, this.#chainId);
|
|
332
|
-
return
|
|
367
|
+
return this.#api({
|
|
333
368
|
url: `${this.#txServiceBaseUrl}/v2/delegates/${delegate}`,
|
|
334
369
|
method: "delete" /* Delete */,
|
|
335
370
|
body: {
|
|
@@ -347,7 +382,7 @@ var SafeApiKit = class {
|
|
|
347
382
|
if (!messageHash) {
|
|
348
383
|
throw new Error("Invalid messageHash");
|
|
349
384
|
}
|
|
350
|
-
return
|
|
385
|
+
return this.#api({
|
|
351
386
|
url: `${this.#txServiceBaseUrl}/v1/messages/${messageHash}/`,
|
|
352
387
|
method: "get" /* Get */
|
|
353
388
|
});
|
|
@@ -364,7 +399,7 @@ var SafeApiKit = class {
|
|
|
364
399
|
}
|
|
365
400
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${safeAddress}/messages/`);
|
|
366
401
|
this.#addUrlQueryParams(url, options);
|
|
367
|
-
return
|
|
402
|
+
return this.#api({
|
|
368
403
|
url: url.toString(),
|
|
369
404
|
method: "get" /* Get */
|
|
370
405
|
});
|
|
@@ -379,7 +414,7 @@ var SafeApiKit = class {
|
|
|
379
414
|
if (!this.#isValidAddress(safeAddress)) {
|
|
380
415
|
throw new Error("Invalid safeAddress");
|
|
381
416
|
}
|
|
382
|
-
return
|
|
417
|
+
return this.#api({
|
|
383
418
|
url: `${this.#txServiceBaseUrl}/v1/safes/${safeAddress}/messages/`,
|
|
384
419
|
method: "post" /* Post */,
|
|
385
420
|
body: addMessageOptions
|
|
@@ -394,7 +429,7 @@ var SafeApiKit = class {
|
|
|
394
429
|
if (!messageHash || !signature) {
|
|
395
430
|
throw new Error("Invalid messageHash or signature");
|
|
396
431
|
}
|
|
397
|
-
return
|
|
432
|
+
return this.#api({
|
|
398
433
|
url: `${this.#txServiceBaseUrl}/v1/messages/${messageHash}/signatures/`,
|
|
399
434
|
method: "post" /* Post */,
|
|
400
435
|
body: {
|
|
@@ -415,7 +450,7 @@ var SafeApiKit = class {
|
|
|
415
450
|
throw new Error("Invalid owner address");
|
|
416
451
|
}
|
|
417
452
|
const { address } = this.#getEip3770Address(ownerAddress);
|
|
418
|
-
return
|
|
453
|
+
return this.#api({
|
|
419
454
|
url: `${this.#txServiceBaseUrl}/v1/owners/${address}/safes/`,
|
|
420
455
|
method: "get" /* Get */
|
|
421
456
|
});
|
|
@@ -433,7 +468,7 @@ var SafeApiKit = class {
|
|
|
433
468
|
throw new Error("Invalid module address");
|
|
434
469
|
}
|
|
435
470
|
const { address } = this.#getEip3770Address(moduleAddress);
|
|
436
|
-
return
|
|
471
|
+
return this.#api({
|
|
437
472
|
url: `${this.#txServiceBaseUrl}/v1/modules/${address}/safes/`,
|
|
438
473
|
method: "get" /* Get */
|
|
439
474
|
});
|
|
@@ -450,7 +485,7 @@ var SafeApiKit = class {
|
|
|
450
485
|
if (safeTxHash === "") {
|
|
451
486
|
throw new Error("Invalid safeTxHash");
|
|
452
487
|
}
|
|
453
|
-
return
|
|
488
|
+
return this.#api({
|
|
454
489
|
url: `${this.#txServiceBaseUrl}/v1/multisig-transactions/${safeTxHash}/`,
|
|
455
490
|
method: "get" /* Get */
|
|
456
491
|
});
|
|
@@ -466,7 +501,7 @@ var SafeApiKit = class {
|
|
|
466
501
|
if (safeTxHash === "") {
|
|
467
502
|
throw new Error("Invalid safeTxHash");
|
|
468
503
|
}
|
|
469
|
-
return
|
|
504
|
+
return this.#api({
|
|
470
505
|
url: `${this.#txServiceBaseUrl}/v1/multisig-transactions/${safeTxHash}/confirmations/`,
|
|
471
506
|
method: "get" /* Get */
|
|
472
507
|
});
|
|
@@ -489,7 +524,7 @@ var SafeApiKit = class {
|
|
|
489
524
|
if (signature === "") {
|
|
490
525
|
throw new Error("Invalid signature");
|
|
491
526
|
}
|
|
492
|
-
return
|
|
527
|
+
return this.#api({
|
|
493
528
|
url: `${this.#txServiceBaseUrl}/v1/multisig-transactions/${safeTxHash}/confirmations/`,
|
|
494
529
|
method: "post" /* Post */,
|
|
495
530
|
body: {
|
|
@@ -510,7 +545,7 @@ var SafeApiKit = class {
|
|
|
510
545
|
throw new Error("Invalid Safe address");
|
|
511
546
|
}
|
|
512
547
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
513
|
-
return
|
|
548
|
+
return this.#api({
|
|
514
549
|
url: `${this.#txServiceBaseUrl}/v1/safes/${address}/`,
|
|
515
550
|
method: "get" /* Get */
|
|
516
551
|
}).then((response) => {
|
|
@@ -536,7 +571,7 @@ var SafeApiKit = class {
|
|
|
536
571
|
throw new Error("Invalid Safe address");
|
|
537
572
|
}
|
|
538
573
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
539
|
-
return
|
|
574
|
+
return this.#api({
|
|
540
575
|
url: `${this.#txServiceBaseUrl}/v1/safes/${address}/creation/`,
|
|
541
576
|
method: "get" /* Get */
|
|
542
577
|
}).then((response) => {
|
|
@@ -563,7 +598,7 @@ var SafeApiKit = class {
|
|
|
563
598
|
throw new Error("Invalid Safe address");
|
|
564
599
|
}
|
|
565
600
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
566
|
-
return
|
|
601
|
+
return this.#api({
|
|
567
602
|
url: `${this.#txServiceBaseUrl}/v1/safes/${address}/multisig-transactions/estimations/`,
|
|
568
603
|
method: "post" /* Post */,
|
|
569
604
|
body: safeTransaction
|
|
@@ -595,7 +630,7 @@ var SafeApiKit = class {
|
|
|
595
630
|
if (safeTxHash === "") {
|
|
596
631
|
throw new Error("Invalid safeTxHash");
|
|
597
632
|
}
|
|
598
|
-
return
|
|
633
|
+
return this.#api({
|
|
599
634
|
url: `${this.#txServiceBaseUrl}/v1/safes/${safe}/multisig-transactions/`,
|
|
600
635
|
method: "post" /* Post */,
|
|
601
636
|
body: {
|
|
@@ -623,7 +658,7 @@ var SafeApiKit = class {
|
|
|
623
658
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
624
659
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/incoming-transfers/`);
|
|
625
660
|
this.#addUrlQueryParams(url, options);
|
|
626
|
-
return
|
|
661
|
+
return this.#api({
|
|
627
662
|
url: url.toString(),
|
|
628
663
|
method: "get" /* Get */
|
|
629
664
|
});
|
|
@@ -645,7 +680,7 @@ var SafeApiKit = class {
|
|
|
645
680
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
646
681
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/module-transactions/`);
|
|
647
682
|
this.#addUrlQueryParams(url, options);
|
|
648
|
-
return
|
|
683
|
+
return this.#api({
|
|
649
684
|
url: url.toString(),
|
|
650
685
|
method: "get" /* Get */
|
|
651
686
|
});
|
|
@@ -666,7 +701,7 @@ var SafeApiKit = class {
|
|
|
666
701
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
667
702
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/multisig-transactions/`);
|
|
668
703
|
this.#addUrlQueryParams(url, options);
|
|
669
|
-
return
|
|
704
|
+
return this.#api({
|
|
670
705
|
url: url.toString(),
|
|
671
706
|
method: "get" /* Get */
|
|
672
707
|
});
|
|
@@ -703,7 +738,7 @@ var SafeApiKit = class {
|
|
|
703
738
|
if (offset != null) {
|
|
704
739
|
url.searchParams.set("offset", offset.toString());
|
|
705
740
|
}
|
|
706
|
-
return
|
|
741
|
+
return this.#api({
|
|
707
742
|
url: url.toString(),
|
|
708
743
|
method: "get" /* Get */
|
|
709
744
|
});
|
|
@@ -725,7 +760,7 @@ var SafeApiKit = class {
|
|
|
725
760
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
726
761
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/all-transactions/`);
|
|
727
762
|
this.#addUrlQueryParams(url, options);
|
|
728
|
-
return
|
|
763
|
+
return this.#api({
|
|
729
764
|
url: url.toString(),
|
|
730
765
|
method: "get" /* Get */
|
|
731
766
|
});
|
|
@@ -764,7 +799,7 @@ var SafeApiKit = class {
|
|
|
764
799
|
async getTokenList(options) {
|
|
765
800
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/tokens/`);
|
|
766
801
|
this.#addUrlQueryParams(url, options);
|
|
767
|
-
return
|
|
802
|
+
return this.#api({
|
|
768
803
|
url: url.toString(),
|
|
769
804
|
method: "get" /* Get */
|
|
770
805
|
});
|
|
@@ -782,7 +817,7 @@ var SafeApiKit = class {
|
|
|
782
817
|
throw new Error("Invalid token address");
|
|
783
818
|
}
|
|
784
819
|
const { address } = this.#getEip3770Address(tokenAddress);
|
|
785
|
-
return
|
|
820
|
+
return this.#api({
|
|
786
821
|
url: `${this.#txServiceBaseUrl}/v1/tokens/${address}/`,
|
|
787
822
|
method: "get" /* Get */
|
|
788
823
|
});
|
|
@@ -802,7 +837,7 @@ var SafeApiKit = class {
|
|
|
802
837
|
const { address } = this.#getEip3770Address(safeAddress);
|
|
803
838
|
const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/safe-operations/`);
|
|
804
839
|
this.#addUrlQueryParams(url, options);
|
|
805
|
-
return
|
|
840
|
+
return this.#api({
|
|
806
841
|
url: url.toString(),
|
|
807
842
|
method: "get" /* Get */
|
|
808
843
|
});
|
|
@@ -832,7 +867,7 @@ var SafeApiKit = class {
|
|
|
832
867
|
if (!safeOperationHash) {
|
|
833
868
|
throw new Error("SafeOperation hash must not be empty");
|
|
834
869
|
}
|
|
835
|
-
return
|
|
870
|
+
return this.#api({
|
|
836
871
|
url: `${this.#txServiceBaseUrl}/v1/safe-operations/${safeOperationHash}/`,
|
|
837
872
|
method: "get" /* Get */
|
|
838
873
|
});
|
|
@@ -882,7 +917,7 @@ var SafeApiKit = class {
|
|
|
882
917
|
}
|
|
883
918
|
const getISOString = (date) => !date ? null : new Date(date * 1e3).toISOString();
|
|
884
919
|
const userOperationV06 = userOperation;
|
|
885
|
-
return
|
|
920
|
+
return this.#api({
|
|
886
921
|
url: `${this.#txServiceBaseUrl}/v1/safes/${safeAddress}/safe-operations/`,
|
|
887
922
|
method: "post" /* Post */,
|
|
888
923
|
body: {
|
|
@@ -925,7 +960,7 @@ var SafeApiKit = class {
|
|
|
925
960
|
if (offset != null) {
|
|
926
961
|
url.searchParams.set("offset", offset.toString());
|
|
927
962
|
}
|
|
928
|
-
return
|
|
963
|
+
return this.#api({
|
|
929
964
|
url: url.toString(),
|
|
930
965
|
method: "get" /* Get */
|
|
931
966
|
});
|
|
@@ -948,7 +983,7 @@ var SafeApiKit = class {
|
|
|
948
983
|
if (!signature) {
|
|
949
984
|
throw new Error("Invalid signature");
|
|
950
985
|
}
|
|
951
|
-
return
|
|
986
|
+
return this.#api({
|
|
952
987
|
url: `${this.#txServiceBaseUrl}/v1/safe-operations/${safeOperationHash}/confirmations/`,
|
|
953
988
|
method: "post" /* Post */,
|
|
954
989
|
body: { signature }
|
package/dist/src/SafeApiKit.d.ts
CHANGED
|
@@ -5,10 +5,17 @@ export interface SafeApiKitConfig {
|
|
|
5
5
|
chainId: bigint;
|
|
6
6
|
/** txServiceUrl - Safe Transaction Service URL */
|
|
7
7
|
txServiceUrl?: string;
|
|
8
|
+
/**
|
|
9
|
+
* apiKey - The API key to access the Safe Transaction Service.
|
|
10
|
+
* - Required if txServiceUrl is undefined
|
|
11
|
+
* - Required if txServiceUrl contains "safe.global" or "5afe.dev"
|
|
12
|
+
* - Optional otherwise
|
|
13
|
+
*/
|
|
14
|
+
apiKey?: string;
|
|
8
15
|
}
|
|
9
16
|
declare class SafeApiKit {
|
|
10
17
|
#private;
|
|
11
|
-
constructor({ chainId, txServiceUrl }: SafeApiKitConfig);
|
|
18
|
+
constructor({ chainId, txServiceUrl, apiKey }: SafeApiKitConfig);
|
|
12
19
|
/**
|
|
13
20
|
* Returns the information and configuration of the service.
|
|
14
21
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SafeApiKit.d.ts","sourceRoot":"","sources":["../../src/SafeApiKit.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EACtB,uBAAuB,EACvB,8BAA8B,EAC9B,4BAA4B,EAC5B,8BAA8B,EAC9B,kCAAkC,EAClC,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,WAAW,EACX,eAAe,EACf,aAAa,EACb,0BAA0B,EAC1B,uBAAuB,EAEvB,wBAAwB,EACxB,wBAAwB,EACxB,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,iCAAiC,EACjC,+BAA+B,EAC/B,uCAAuC,EACvC,mCAAmC,EACnC,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,wDAAwD,CAAA;AAI/D,OAAO,EACL,WAAW,EAEX,oCAAoC,EACpC,+BAA+B,EAC/B,aAAa,EACb,qCAAqC,EACrC,qBAAqB,EAEtB,MAAM,wBAAwB,CAAA;AAM/B,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"SafeApiKit.d.ts","sourceRoot":"","sources":["../../src/SafeApiKit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
type NetworkShortName = {
|
|
2
|
+
shortName: string;
|
|
3
|
+
chainId: bigint;
|
|
4
|
+
};
|
|
5
|
+
export declare const networks: NetworkShortName[];
|
|
6
|
+
export declare const getNetworkShortName: (chainId: bigint) => string;
|
|
7
|
+
export declare const getTransactionServiceUrl: (chainId: bigint) => string;
|
|
8
|
+
export {};
|
|
2
9
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAEA,KAAK,gBAAgB,GAAG;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,gBAAgB,EA2BtC,CAAA;AAED,eAAO,MAAM,mBAAmB,YAAa,MAAM,KAAG,MAMrD,CAAA;AAED,eAAO,MAAM,wBAAwB,YAAa,MAAM,WAEvD,CAAA"}
|
|
@@ -3,11 +3,10 @@ export declare enum HttpMethod {
|
|
|
3
3
|
Post = "post",
|
|
4
4
|
Delete = "delete"
|
|
5
5
|
}
|
|
6
|
-
interface HttpRequest {
|
|
6
|
+
export interface HttpRequest {
|
|
7
7
|
url: string;
|
|
8
8
|
method: HttpMethod;
|
|
9
9
|
body?: any;
|
|
10
10
|
}
|
|
11
|
-
export declare function sendRequest<T>({ url, method, body }: HttpRequest): Promise<T>;
|
|
12
|
-
export {};
|
|
11
|
+
export declare function sendRequest<T>({ url, method, body }: HttpRequest, apiKey?: string): Promise<T>;
|
|
13
12
|
//# sourceMappingURL=httpRequests.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpRequests.d.ts","sourceRoot":"","sources":["../../../src/utils/httpRequests.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,
|
|
1
|
+
{"version":3,"file":"httpRequests.d.ts","sourceRoot":"","sources":["../../../src/utils/httpRequests.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,CAAC,EAAE,GAAG,CAAA;CACX;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAClC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,CAAC,CAAC,CAsDZ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@safe-global/api-kit",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0-alpha.0",
|
|
4
4
|
"description": "SDK that facilitates the interaction with the Safe Transaction Service API",
|
|
5
5
|
"types": "dist/src/index.d.ts",
|
|
6
6
|
"main": "dist/cjs/index.cjs",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
],
|
|
47
47
|
"homepage": "https://github.com/safe-global/safe-core-sdk#readme",
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@safe-global/relay-kit": "^4.0.
|
|
50
|
-
"@safe-global/testing-kit": "^0.2.
|
|
49
|
+
"@safe-global/relay-kit": "^4.0.3",
|
|
50
|
+
"@safe-global/testing-kit": "^0.2.1",
|
|
51
51
|
"@types/chai": "^4.3.20",
|
|
52
52
|
"@types/chai-as-promised": "^7.1.8",
|
|
53
53
|
"@types/mocha": "^10.0.10",
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
"tsconfig-paths": "^4.2.0"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@safe-global/protocol-kit": "^6.0.
|
|
69
|
-
"@safe-global/types-kit": "^2.0.
|
|
68
|
+
"@safe-global/protocol-kit": "^6.0.4",
|
|
69
|
+
"@safe-global/types-kit": "^2.0.1",
|
|
70
70
|
"node-fetch": "^2.7.0",
|
|
71
71
|
"viem": "^2.21.8"
|
|
72
72
|
}
|