@safe-global/api-kit 3.0.2 → 4.0.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.
@@ -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 TRANSACTION_SERVICE_URLS = {
110
- "1": "https://safe-transaction-mainnet.safe.global/api",
111
- "10": "https://safe-transaction-optimism.safe.global/api",
112
- "56": "https://safe-transaction-bsc.safe.global/api",
113
- "100": "https://safe-transaction-gnosis-chain.safe.global/api",
114
- "130": "https://safe-transaction-unichain.safe.global/api",
115
- "137": "https://safe-transaction-polygon.safe.global/api",
116
- "196": "https://safe-transaction-xlayer.safe.global/api",
117
- "324": "https://safe-transaction-zksync.safe.global/api",
118
- "480": "https://safe-transaction-worldchain.safe.global/api",
119
- "1101": "https://safe-transaction-zkevm.safe.global/api",
120
- "5000": "https://safe-transaction-mantle.safe.global/api",
121
- "8453": "https://safe-transaction-base.safe.global/api",
122
- "42161": "https://safe-transaction-arbitrum.safe.global/api",
123
- "42220": "https://safe-transaction-celo.safe.global/api",
124
- "43114": "https://safe-transaction-avalanche.safe.global/api",
125
- "59144": "https://safe-transaction-linea.safe.global/api",
126
- "81457": "https://safe-transaction-blast.safe.global/api",
127
- "84532": "https://safe-transaction-base-sepolia.safe.global/api",
128
- "534352": "https://safe-transaction-scroll.safe.global/api",
129
- "11155111": "https://safe-transaction-sepolia.safe.global/api",
130
- "1313161554": "https://safe-transaction-aurora.safe.global/api"
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
- const url = TRANSACTION_SERVICE_URLS[chainId.toString()];
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
507
+ return this.#api({
473
508
  url: `${this.#txServiceBaseUrl}/v1/modules/${address}/safes/`,
474
509
  method: "get" /* Get */
475
510
  });
@@ -486,8 +521,8 @@ var SafeApiKit = class {
486
521
  if (safeTxHash === "") {
487
522
  throw new Error("Invalid safeTxHash");
488
523
  }
489
- return sendRequest({
490
- url: `${this.#txServiceBaseUrl}/v1/multisig-transactions/${safeTxHash}/`,
524
+ return this.#api({
525
+ url: `${this.#txServiceBaseUrl}/v2/multisig-transactions/${safeTxHash}/`,
491
526
  method: "get" /* Get */
492
527
  });
493
528
  }
@@ -502,7 +537,7 @@ var SafeApiKit = class {
502
537
  if (safeTxHash === "") {
503
538
  throw new Error("Invalid safeTxHash");
504
539
  }
505
- return sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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,8 +666,8 @@ var SafeApiKit = class {
631
666
  if (safeTxHash === "") {
632
667
  throw new Error("Invalid safeTxHash");
633
668
  }
634
- return sendRequest({
635
- url: `${this.#txServiceBaseUrl}/v1/safes/${safe}/multisig-transactions/`,
669
+ return this.#api({
670
+ url: `${this.#txServiceBaseUrl}/v2/safes/${safe}/multisig-transactions/`,
636
671
  method: "post" /* Post */,
637
672
  body: {
638
673
  ...safeTransactionData,
@@ -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 sendRequest({
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 sendRequest({
719
+ return this.#api({
685
720
  url: url.toString(),
686
721
  method: "get" /* Get */
687
722
  });
@@ -700,9 +735,9 @@ var SafeApiKit = class {
700
735
  throw new Error("Invalid Safe address");
701
736
  }
702
737
  const { address } = this.#getEip3770Address(safeAddress);
703
- const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/multisig-transactions/`);
738
+ const url = new URL(`${this.#txServiceBaseUrl}/v2/safes/${address}/multisig-transactions/`);
704
739
  this.#addUrlQueryParams(url, options);
705
- return sendRequest({
740
+ return this.#api({
706
741
  url: url.toString(),
707
742
  method: "get" /* Get */
708
743
  });
@@ -725,7 +760,7 @@ var SafeApiKit = class {
725
760
  const { address } = this.#getEip3770Address(safeAddress);
726
761
  const nonce = currentNonce ? currentNonce : (await this.getSafeInfo(address)).nonce;
727
762
  const url = new URL(
728
- `${this.#txServiceBaseUrl}/v1/safes/${address}/multisig-transactions/?executed=false&nonce__gte=${nonce}`
763
+ `${this.#txServiceBaseUrl}/v2/safes/${address}/multisig-transactions/?executed=false&nonce__gte=${nonce}`
729
764
  );
730
765
  if (hasConfirmations) {
731
766
  url.searchParams.set("has_confirmations", hasConfirmations.toString());
@@ -739,7 +774,7 @@ var SafeApiKit = class {
739
774
  if (offset != null) {
740
775
  url.searchParams.set("offset", offset.toString());
741
776
  }
742
- return sendRequest({
777
+ return this.#api({
743
778
  url: url.toString(),
744
779
  method: "get" /* Get */
745
780
  });
@@ -759,9 +794,9 @@ var SafeApiKit = class {
759
794
  throw new Error("Invalid Safe address");
760
795
  }
761
796
  const { address } = this.#getEip3770Address(safeAddress);
762
- const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/all-transactions/`);
797
+ const url = new URL(`${this.#txServiceBaseUrl}/v2/safes/${address}/all-transactions/`);
763
798
  this.#addUrlQueryParams(url, options);
764
- return sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
1022
+ return this.#api({
988
1023
  url: `${this.#txServiceBaseUrl}/v1/safe-operations/${safeOperationHash}/confirmations/`,
989
1024
  method: "post" /* Post */,
990
1025
  body: { signature }
@@ -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 TRANSACTION_SERVICE_URLS = {
74
- "1": "https://safe-transaction-mainnet.safe.global/api",
75
- "10": "https://safe-transaction-optimism.safe.global/api",
76
- "56": "https://safe-transaction-bsc.safe.global/api",
77
- "100": "https://safe-transaction-gnosis-chain.safe.global/api",
78
- "130": "https://safe-transaction-unichain.safe.global/api",
79
- "137": "https://safe-transaction-polygon.safe.global/api",
80
- "196": "https://safe-transaction-xlayer.safe.global/api",
81
- "324": "https://safe-transaction-zksync.safe.global/api",
82
- "480": "https://safe-transaction-worldchain.safe.global/api",
83
- "1101": "https://safe-transaction-zkevm.safe.global/api",
84
- "5000": "https://safe-transaction-mantle.safe.global/api",
85
- "8453": "https://safe-transaction-base.safe.global/api",
86
- "42161": "https://safe-transaction-arbitrum.safe.global/api",
87
- "42220": "https://safe-transaction-celo.safe.global/api",
88
- "43114": "https://safe-transaction-avalanche.safe.global/api",
89
- "59144": "https://safe-transaction-linea.safe.global/api",
90
- "81457": "https://safe-transaction-blast.safe.global/api",
91
- "84532": "https://safe-transaction-base-sepolia.safe.global/api",
92
- "534352": "https://safe-transaction-scroll.safe.global/api",
93
- "11155111": "https://safe-transaction-sepolia.safe.global/api",
94
- "1313161554": "https://safe-transaction-aurora.safe.global/api"
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
- const url = TRANSACTION_SERVICE_URLS[chainId.toString()];
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
471
+ return this.#api({
437
472
  url: `${this.#txServiceBaseUrl}/v1/modules/${address}/safes/`,
438
473
  method: "get" /* Get */
439
474
  });
@@ -450,8 +485,8 @@ var SafeApiKit = class {
450
485
  if (safeTxHash === "") {
451
486
  throw new Error("Invalid safeTxHash");
452
487
  }
453
- return sendRequest({
454
- url: `${this.#txServiceBaseUrl}/v1/multisig-transactions/${safeTxHash}/`,
488
+ return this.#api({
489
+ url: `${this.#txServiceBaseUrl}/v2/multisig-transactions/${safeTxHash}/`,
455
490
  method: "get" /* Get */
456
491
  });
457
492
  }
@@ -466,7 +501,7 @@ var SafeApiKit = class {
466
501
  if (safeTxHash === "") {
467
502
  throw new Error("Invalid safeTxHash");
468
503
  }
469
- return sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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,8 +630,8 @@ var SafeApiKit = class {
595
630
  if (safeTxHash === "") {
596
631
  throw new Error("Invalid safeTxHash");
597
632
  }
598
- return sendRequest({
599
- url: `${this.#txServiceBaseUrl}/v1/safes/${safe}/multisig-transactions/`,
633
+ return this.#api({
634
+ url: `${this.#txServiceBaseUrl}/v2/safes/${safe}/multisig-transactions/`,
600
635
  method: "post" /* Post */,
601
636
  body: {
602
637
  ...safeTransactionData,
@@ -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 sendRequest({
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 sendRequest({
683
+ return this.#api({
649
684
  url: url.toString(),
650
685
  method: "get" /* Get */
651
686
  });
@@ -664,9 +699,9 @@ var SafeApiKit = class {
664
699
  throw new Error("Invalid Safe address");
665
700
  }
666
701
  const { address } = this.#getEip3770Address(safeAddress);
667
- const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/multisig-transactions/`);
702
+ const url = new URL(`${this.#txServiceBaseUrl}/v2/safes/${address}/multisig-transactions/`);
668
703
  this.#addUrlQueryParams(url, options);
669
- return sendRequest({
704
+ return this.#api({
670
705
  url: url.toString(),
671
706
  method: "get" /* Get */
672
707
  });
@@ -689,7 +724,7 @@ var SafeApiKit = class {
689
724
  const { address } = this.#getEip3770Address(safeAddress);
690
725
  const nonce = currentNonce ? currentNonce : (await this.getSafeInfo(address)).nonce;
691
726
  const url = new URL(
692
- `${this.#txServiceBaseUrl}/v1/safes/${address}/multisig-transactions/?executed=false&nonce__gte=${nonce}`
727
+ `${this.#txServiceBaseUrl}/v2/safes/${address}/multisig-transactions/?executed=false&nonce__gte=${nonce}`
693
728
  );
694
729
  if (hasConfirmations) {
695
730
  url.searchParams.set("has_confirmations", hasConfirmations.toString());
@@ -703,7 +738,7 @@ var SafeApiKit = class {
703
738
  if (offset != null) {
704
739
  url.searchParams.set("offset", offset.toString());
705
740
  }
706
- return sendRequest({
741
+ return this.#api({
707
742
  url: url.toString(),
708
743
  method: "get" /* Get */
709
744
  });
@@ -723,9 +758,9 @@ var SafeApiKit = class {
723
758
  throw new Error("Invalid Safe address");
724
759
  }
725
760
  const { address } = this.#getEip3770Address(safeAddress);
726
- const url = new URL(`${this.#txServiceBaseUrl}/v1/safes/${address}/all-transactions/`);
761
+ const url = new URL(`${this.#txServiceBaseUrl}/v2/safes/${address}/all-transactions/`);
727
762
  this.#addUrlQueryParams(url, options);
728
- return sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
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 sendRequest({
986
+ return this.#api({
952
987
  url: `${this.#txServiceBaseUrl}/v1/safe-operations/${safeOperationHash}/confirmations/`,
953
988
  method: "post" /* Post */,
954
989
  body: { signature }
@@ -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":"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"}
1
+ {"version":3,"file":"SafeApiKit.d.ts","sourceRoot":"","sources":["../../src/SafeApiKit.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,9 @@
1
- export declare const TRANSACTION_SERVICE_URLS: Record<string, string>;
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":"AAAA,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAsB3D,CAAA"}
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,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,CAAC,EAAE,GAAG,CAAA;CACX;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAgDnF"}
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.0.2",
3
+ "version": "4.0.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,7 +46,7 @@
46
46
  ],
47
47
  "homepage": "https://github.com/safe-global/safe-core-sdk#readme",
48
48
  "devDependencies": {
49
- "@safe-global/relay-kit": "^4.0.4",
49
+ "@safe-global/relay-kit": "^4.0.5",
50
50
  "@safe-global/testing-kit": "^0.2.1",
51
51
  "@types/chai": "^4.3.20",
52
52
  "@types/chai-as-promised": "^7.1.8",
@@ -65,8 +65,8 @@
65
65
  "tsconfig-paths": "^4.2.0"
66
66
  },
67
67
  "dependencies": {
68
- "@safe-global/protocol-kit": "^6.0.5",
69
- "@safe-global/types-kit": "^2.0.1",
68
+ "@safe-global/protocol-kit": "^6.1.0",
69
+ "@safe-global/types-kit": "^3.0.0",
70
70
  "node-fetch": "^2.7.0",
71
71
  "viem": "^2.21.8"
72
72
  }