@cartridge/controller 0.7.3 → 0.7.5-alpha.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/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { getChecksumAddress, typedData, TypedDataRevision, hash, num, constants, shortString, WalletAccount } from 'starknet';
1
+ import { CallData, addAddressPadding, getChecksumAddress, typedData, TypedDataRevision, hash, constants, shortString, Provider, num, WalletAccount } from 'starknet';
2
2
  import { connectToChild } from '@cartridge/penpal';
3
3
  import { Permission } from '@starknet-io/types-js';
4
4
 
@@ -24,6 +24,7 @@ var ALLOWED_PROPERTIES = /* @__PURE__ */ new Set([
24
24
  "domain",
25
25
  "primaryType"
26
26
  ]);
27
+ var LOCAL_HOSTNAMES = ["localhost", "127.0.0.1", "0.0.0.0"];
27
28
  function validatePropertyName(prop) {
28
29
  if (!ALLOWED_PROPERTIES.has(prop)) {
29
30
  throw new Error(`Invalid property name: ${prop}`);
@@ -33,6 +34,15 @@ function safeObjectAccess(obj, prop) {
33
34
  validatePropertyName(prop);
34
35
  return obj[prop];
35
36
  }
37
+ function normalizeCalls(calls) {
38
+ return toArray(calls).map((call) => {
39
+ return {
40
+ entrypoint: call.entrypoint,
41
+ contractAddress: addAddressPadding(call.contractAddress),
42
+ calldata: CallData.toHex(call.calldata)
43
+ };
44
+ });
45
+ }
36
46
  function toSessionPolicies(policies) {
37
47
  return Array.isArray(policies) ? policies.reduce(
38
48
  (prev, p) => {
@@ -103,7 +113,7 @@ function toArray(val) {
103
113
  function humanizeString(str) {
104
114
  return str.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/_/g, " ").toLowerCase().replace(/^\w/, (c) => c.toUpperCase());
105
115
  }
106
- function parseChainId(url) {
116
+ async function parseChainId(url) {
107
117
  const parts = url.pathname.split("/");
108
118
  if (parts.includes("starknet")) {
109
119
  if (parts.includes("mainnet")) {
@@ -123,6 +133,12 @@ function parseChainId(url) {
123
133
  );
124
134
  }
125
135
  }
136
+ if (LOCAL_HOSTNAMES.includes(url.hostname)) {
137
+ const provider = new Provider({
138
+ nodeUrl: url.toString()
139
+ });
140
+ return await provider.getChainId();
141
+ }
126
142
  throw new Error(`Chain ${url.toString()} not supported`);
127
143
  }
128
144
 
@@ -156,23 +172,23 @@ var ControllerAccount = class extends WalletAccount {
156
172
  return new Promise(async (resolve, reject) => {
157
173
  const sessionExecute = await this.keychain.execute(
158
174
  calls,
159
- undefined,
160
- undefined,
175
+ void 0,
176
+ void 0,
161
177
  false
162
178
  );
163
179
  if (sessionExecute.code === "SUCCESS" /* SUCCESS */) {
164
180
  resolve(sessionExecute);
165
181
  return;
166
182
  }
167
- if (this.options?.propagateSessionErrors) {
183
+ if (this.options?.propagateSessionErrors && sessionExecute.code !== "USER_INTERACTION_REQUIRED" /* USER_INTERACTION_REQUIRED */) {
168
184
  reject(sessionExecute.error);
169
185
  return;
170
186
  }
171
187
  this.modal.open();
172
188
  const manualExecute = await this.keychain.execute(
173
189
  calls,
174
- undefined,
175
- undefined,
190
+ void 0,
191
+ void 0,
176
192
  true,
177
193
  sessionExecute.error
178
194
  );
@@ -396,90 +412,7 @@ var NotReadyToConnect = class _NotReadyToConnect extends Error {
396
412
 
397
413
  // package.json
398
414
  var package_default = {
399
- name: "@cartridge/controller",
400
- version: "0.7.3",
401
- description: "Cartridge Controller",
402
- module: "dist/index.js",
403
- types: "dist/index.d.ts",
404
- type: "module",
405
- scripts: {
406
- "build:deps": "tsup",
407
- build: "pnpm build:deps",
408
- format: 'prettier --write "src/**/*.ts"',
409
- "format:check": 'prettier --check "src/**/*.ts"',
410
- test: "jest",
411
- version: "pnpm pkg get version"
412
- },
413
- exports: {
414
- ".": {
415
- types: "./dist/index.d.ts",
416
- import: "./dist/index.js",
417
- require: "./dist/index.cjs"
418
- },
419
- "./session": {
420
- types: "./dist/session/index.d.ts",
421
- import: "./dist/session/index.js",
422
- require: "./dist/session/index.cjs"
423
- },
424
- "./session/node": {
425
- types: "./dist/node/index.d.ts",
426
- import: "./dist/node/index.js",
427
- require: "./dist/node/index.cjs"
428
- },
429
- "./provider": {
430
- types: "./dist/provider/index.d.ts",
431
- import: "./dist/provider/index.js"
432
- },
433
- "./types": {
434
- types: "./dist/types/index.d.ts",
435
- import: "./dist/types/index.js"
436
- }
437
- },
438
- tsup: {
439
- entry: [
440
- "src/index.ts",
441
- "src/controller.ts",
442
- "src/lookup.ts",
443
- "src/session/index.ts",
444
- "src/node/index.ts"
445
- ],
446
- format: [
447
- "esm",
448
- "cjs"
449
- ],
450
- splitting: false,
451
- sourcemap: true,
452
- clean: true,
453
- dts: true,
454
- treeshake: {
455
- preset: "recommended"
456
- },
457
- exports: "named"
458
- },
459
- peerDependencies: {
460
- starknet: "catalog:",
461
- open: "^10.1.0"
462
- },
463
- dependencies: {
464
- "@cartridge/account-wasm": "workspace:*",
465
- "@cartridge/penpal": "catalog:",
466
- "@starknet-io/types-js": "catalog:",
467
- "@telegram-apps/sdk": "^2.4.0",
468
- base64url: "catalog:",
469
- "cbor-x": "^1.5.0",
470
- "fast-deep-equal": "catalog:"
471
- },
472
- devDependencies: {
473
- "@cartridge/tsconfig": "workspace:*",
474
- "@types/jest": "^29.5.14",
475
- "@types/node": "catalog:",
476
- jest: "^29.7.0",
477
- prettier: "catalog:",
478
- "ts-jest": "^29.2.5",
479
- tsup: "catalog:",
480
- typescript: "catalog:"
481
- }
482
- };
415
+ version: "0.7.5-alpha.1"};
483
416
 
484
417
  // src/icon.ts
485
418
  var icon = "data:image/png;base64,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";
@@ -656,8 +589,6 @@ var BaseProvider = class {
656
589
  });
657
590
  }
658
591
  };
659
-
660
- // src/controller.ts
661
592
  var ControllerProvider = class extends BaseProvider {
662
593
  keychain;
663
594
  profile;
@@ -667,24 +598,8 @@ var ControllerProvider = class extends BaseProvider {
667
598
  chains;
668
599
  constructor(options) {
669
600
  super();
670
- const chains = /* @__PURE__ */ new Map();
671
- for (const chain of options.chains) {
672
- const url = new URL(chain.rpcUrl);
673
- const chainId = parseChainId(url);
674
- chains.set(chainId, chain);
675
- }
676
- if (options.policies?.messages?.length && options.policies.messages.length !== chains.size) {
677
- console.warn(
678
- "Each message policy is associated with a specific chain. The number of message policies does not match the number of chains specified - session message signing may not work on some chains."
679
- );
680
- }
681
- this.chains = chains;
682
601
  this.selectedChain = options.defaultChainId;
683
- if (!this.chains.has(this.selectedChain)) {
684
- throw new Error(
685
- `Chain ${this.selectedChain} not found in configured chains`
686
- );
687
- }
602
+ this.chains = /* @__PURE__ */ new Map();
688
603
  this.iframes = {
689
604
  keychain: new KeychainIFrame({
690
605
  ...options,
@@ -695,6 +610,7 @@ var ControllerProvider = class extends BaseProvider {
695
610
  })
696
611
  };
697
612
  this.options = options;
613
+ this.validateChains(options.chains);
698
614
  if (typeof window !== "undefined") {
699
615
  window.starknet_controller = this;
700
616
  }
@@ -790,6 +706,7 @@ var ControllerProvider = class extends BaseProvider {
790
706
  return true;
791
707
  }
792
708
  await this.keychain.switchChain(this.rpcUrl());
709
+ await this.profile?.switchChain(this.rpcUrl());
793
710
  } catch (e) {
794
711
  console.error(e);
795
712
  return false;
@@ -811,7 +728,7 @@ var ControllerProvider = class extends BaseProvider {
811
728
  await document.requestStorageAccess();
812
729
  }
813
730
  }
814
- this.account = undefined;
731
+ this.account = void 0;
815
732
  return this.keychain.disconnect();
816
733
  }
817
734
  async openProfile(tab = "inventory") {
@@ -877,7 +794,16 @@ var ControllerProvider = class extends BaseProvider {
877
794
  return this.keychain.revoke(origin);
878
795
  }
879
796
  rpcUrl() {
880
- return this.chains.get(this.selectedChain).rpcUrl;
797
+ const chain = this.chains.get(this.selectedChain);
798
+ if (!chain) {
799
+ const availableChains = Array.from(this.chains.keys()).map(
800
+ (chain2) => shortString.decodeShortString(chain2)
801
+ );
802
+ throw new Error(
803
+ `Chain not found: ${shortString.decodeShortString(this.selectedChain)}. Available chains: ${availableChains.join(", ")}`
804
+ );
805
+ }
806
+ return chain.rpcUrl;
881
807
  }
882
808
  username() {
883
809
  if (!this.keychain) {
@@ -915,7 +841,7 @@ var ControllerProvider = class extends BaseProvider {
915
841
  this.iframes.profile?.sendBackward();
916
842
  this.iframes.keychain.open();
917
843
  this.iframes.profile?.close();
918
- const res = await this.keychain.execute(calls, undefined, undefined, true);
844
+ const res = await this.keychain.execute(calls, void 0, void 0, true);
919
845
  this.iframes.profile?.open();
920
846
  this.iframes.keychain.close();
921
847
  this.iframes.profile?.sendForward();
@@ -931,6 +857,22 @@ var ControllerProvider = class extends BaseProvider {
931
857
  }
932
858
  return await this.keychain.delegateAccount();
933
859
  }
860
+ async validateChains(chains) {
861
+ for (const chain of chains) {
862
+ try {
863
+ const url = new URL(chain.rpcUrl);
864
+ const chainId = await parseChainId(url);
865
+ this.chains.set(chainId, chain);
866
+ } catch (error) {
867
+ console.error(`Failed to parse chainId for ${chain.rpcUrl}:`, error);
868
+ }
869
+ }
870
+ if (!this.chains.has(this.selectedChain)) {
871
+ console.warn(
872
+ `Selected chain ${this.selectedChain} not found in configured chains. Available chains: ${Array.from(this.chains.keys()).join(", ")}`
873
+ );
874
+ }
875
+ }
934
876
  waitForKeychain({
935
877
  timeout = 5e4,
936
878
  interval = 100
@@ -976,7 +918,7 @@ async function lookupUsernames(usernames) {
976
918
  });
977
919
  }
978
920
  return new Map(
979
- usernames.map((name) => [name, cache.get(name)]).filter((entry) => entry[1] !== undefined)
921
+ usernames.map((name) => [name, cache.get(name)]).filter((entry) => entry[1] !== void 0)
980
922
  );
981
923
  }
982
924
  async function lookupAddresses(addresses) {
@@ -991,11 +933,11 @@ async function lookupAddresses(addresses) {
991
933
  });
992
934
  }
993
935
  return new Map(
994
- addresses.map((addr) => [addr, cache.get(addr)]).filter((entry) => entry[1] !== undefined)
936
+ addresses.map((addr) => [addr, cache.get(addr)]).filter((entry) => entry[1] !== void 0)
995
937
  );
996
938
  }
997
939
 
998
- // ../../node_modules/.pnpm/@cartridge+presets@https+++codeload.github.com+cartridge-gg+presets+tar.gz+aa3a218/node_modules/@cartridge/presets/dist/index.js
940
+ // ../../node_modules/.pnpm/@cartridge+presets@https+++codeload.github.com+cartridge-gg+presets+tar.gz+6d8bea1/node_modules/@cartridge/presets/dist/index.js
999
941
  var configs = {
1000
942
  "blob-arena": {
1001
943
  origin: "blobarena.xyz",
@@ -1020,7 +962,7 @@ var configs = {
1020
962
  }
1021
963
  },
1022
964
  "dark-shuffle": {
1023
- origin: "darkshuffle.io",
965
+ origin: ["darkshuffle.io", "darkshuffle.dev"],
1024
966
  theme: {
1025
967
  colors: {
1026
968
  primary: "#F59100"
@@ -1028,6 +970,67 @@ var configs = {
1028
970
  cover: "https://static.cartridge.gg/presets/dark-shuffle/cover.png",
1029
971
  icon: "https://static.cartridge.gg/presets/dark-shuffle/icon.svg",
1030
972
  name: "Dark Shuffle"
973
+ },
974
+ policies: {
975
+ contracts: {
976
+ "0x020fc3c9efd0dde5f53642dac7f53638aeaae98ff9af5f1642546f389ce9dec5": {
977
+ name: "game_systems",
978
+ methods: [
979
+ {
980
+ entrypoint: "mint"
981
+ },
982
+ {
983
+ entrypoint: "start_game"
984
+ }
985
+ ]
986
+ },
987
+ "0x036d27fb8604302b7e4f747a73a84b7c9ae9106f3c5f65e51e934fac9f7c753f": {
988
+ name: "battle_systems",
989
+ methods: [
990
+ {
991
+ entrypoint: "battle_actions"
992
+ }
993
+ ]
994
+ },
995
+ "0x046f9c2f2f3144059f7332bd989151f782f462f4ea6e3755c2f7b3eac49be73d": {
996
+ name: "draft_systems",
997
+ methods: [
998
+ {
999
+ entrypoint: "pick_card"
1000
+ }
1001
+ ]
1002
+ },
1003
+ "0x045543452215a2b416d8c52e5a475e7e0eed2e7cbaf5a699ae5fc0599f4afae9": {
1004
+ name: "map_systems",
1005
+ methods: [
1006
+ {
1007
+ entrypoint: "generate_tree"
1008
+ },
1009
+ {
1010
+ entrypoint: "select_node"
1011
+ }
1012
+ ]
1013
+ },
1014
+ "0x0530d9693304c79b5b506aa2fa09c27681373d71b69a839378ff5fd108aa5fc6": {
1015
+ name: "tournament_component",
1016
+ methods: [
1017
+ {
1018
+ entrypoint: "enter_tournament"
1019
+ }
1020
+ ]
1021
+ }
1022
+ }
1023
+ }
1024
+ },
1025
+ dominion: {
1026
+ origin: "https://dominion.fun",
1027
+ theme: {
1028
+ colors: {
1029
+ primary: "#19cfff"
1030
+ },
1031
+ cover: "https://static.cartridge.gg/presets/dominion/cover.png",
1032
+ icon: "https://static.cartridge.gg/presets/dominion/icon.svg",
1033
+ name: "Dominion"
1031
1034
  }
1032
1035
  },
1033
1036
  "dope-wars": {
@@ -1116,6 +1119,211 @@ var configs = {
1116
1119
  },
1117
1120
  dragark: {
1118
1121
  origin: "dragark.net",
1122
+ policies: {
1123
+ contracts: {
1124
+ "0x62525c1337037a6a50a61f12045630a271758a350e57616e79a6ed14004ce74": {
1125
+ name: "Achievement Systems",
1126
+ description: "Allows you to interact with achievement features.",
1127
+ methods: [
1128
+ {
1129
+ name: "Claim Achievement Reward",
1130
+ description: "A method to claim your achievement reward.",
1131
+ entrypoint: "claim_achievement_reward"
1132
+ }
1133
+ ]
1134
+ },
1135
+ "0xa5a3284a1e3ce9887b50876acee14a1af9705659b3ad053deff80d84c5555a": {
1136
+ name: "Dragon Systems",
1137
+ description: "Allows you to interact with dragon features.",
1138
+ methods: [
1139
+ {
1140
+ name: "Activate Dragon",
1141
+ description: "A method to activate the Dragark NFT into the game.",
1142
+ entrypoint: "activate_dragon"
1143
+ },
1144
+ {
1145
+ name: "Deactivate Dragon",
1146
+ description: "A method to deactivate Dragark NFT out of the game.",
1147
+ entrypoint: "deactivate_dragon"
1148
+ },
1149
+ {
1150
+ name: "Claim Default Dragon",
1151
+ description: "A method to claim the default Dragark.",
1152
+ entrypoint: "claim_default_dragon"
1153
+ },
1154
+ {
1155
+ name: "Upgrade Dragon",
1156
+ description: "A method to upgrade the Dragark's level.",
1157
+ entrypoint: "upgrade_dragon"
1158
+ }
1159
+ ]
1160
+ },
1161
+ "0x456e9a70c1a8ce2e340592d1a885f2ac152349d785a6aef4d640d9a09f9a1bd": {
1162
+ name: "Island Systems",
1163
+ description: "Allows you to interact with island features.",
1164
+ methods: [
1165
+ {
1166
+ name: "Claim Resources",
1167
+ description: "A method to claim the island's rescources.",
1168
+ entrypoint: "claim_resources"
1169
+ },
1170
+ {
1171
+ name: "Claim Resources Islands",
1172
+ description: "A method to claim rescources on multiple islands.",
1173
+ entrypoint: "claim_resources_islands"
1174
+ }
1175
+ ]
1176
+ },
1177
+ "0x2f77a88ac64fd1473ea067ea176ae3805224a2ba5173c63c77d0f214c01ac5d": {
1178
+ name: "Journey Systems",
1179
+ description: "Allows you to interact with journey features.",
1180
+ methods: [
1181
+ {
1182
+ name: "Start Journey",
1183
+ description: "A method to start a new journey to other island.",
1184
+ entrypoint: "start_journey"
1185
+ },
1186
+ {
1187
+ name: "Finish Journey",
1188
+ description: "A method to finish a started journey.",
1189
+ entrypoint: "finish_journey"
1190
+ }
1191
+ ]
1192
+ },
1193
+ "0x1ca130b614f063a24dafad53db11cbb914fa7cff2eac23df1c32f5ff71a8ec2": {
1194
+ name: "Map Systems",
1195
+ description: "Allows you to interact with map features.",
1196
+ methods: [
1197
+ {
1198
+ name: "Join Map",
1199
+ description: "A method to join the map.",
1200
+ entrypoint: "join_map"
1201
+ },
1202
+ {
1203
+ name: "Rejoin Map",
1204
+ description: "A method to rejoin the map.",
1205
+ entrypoint: "re_join_map"
1206
+ }
1207
+ ]
1208
+ },
1209
+ "0x272741bbe4abc02c8be4b094ca642e1df573e99e06f85f649bc35dd26ae4543": {
1210
+ name: "Mission Systems",
1211
+ description: "Allows you to interact with mission features.",
1212
+ methods: [
1213
+ {
1214
+ name: "Claim Mission Reward",
1215
+ description: "A method to claim your mission reward.",
1216
+ entrypoint: "claim_mission_reward"
1217
+ }
1218
+ ]
1219
+ },
1220
+ "0x54ad7af1fc62a786c9023d9f3ef8e8abf8cf332649b784188c1b25d2cb384b2": {
1221
+ name: "Player Systems",
1222
+ description: "Allows you to interact with player features.",
1223
+ methods: [
1224
+ {
1225
+ name: "Buy Energy",
1226
+ description: "A method to buy energy used in scouting the map.",
1227
+ entrypoint: "buy_energy"
1228
+ },
1229
+ {
1230
+ name: "Claim Reward",
1231
+ description: "A method to claim your reward.",
1232
+ entrypoint: "claim_reward"
1233
+ },
1234
+ {
1235
+ name: "Upgrade Account Level",
1236
+ description: "A method to upgrade your account level.",
1237
+ entrypoint: "upgrade_account_level"
1238
+ },
1239
+ {
1240
+ name: "Upgrade Invitation Level",
1241
+ description: "A method to upgrade your invitation level.",
1242
+ entrypoint: "upgrade_invitation_level"
1243
+ },
1244
+ {
1245
+ name: "Redeem Invite Code",
1246
+ description: "A method to redeem invite code.",
1247
+ entrypoint: "redeem_invite_code"
1248
+ },
1249
+ {
1250
+ name: "Buy Resources Pack",
1251
+ description: "A method to buy resources pack.",
1252
+ entrypoint: "buy_resources_pack"
1253
+ },
1254
+ {
1255
+ name: "Activate Element NFT",
1256
+ description: "A method to activate the Element NFT into the game.",
1257
+ entrypoint: "activate_element_nft"
1258
+ },
1259
+ {
1260
+ name: "Claim Pool Share Reward",
1261
+ description: "A method to claim your Pool Share reward.",
1262
+ entrypoint: "claim_pool_share_reward"
1263
+ }
1264
+ ]
1265
+ },
1266
+ "0x68717880bd76fda6790e895e937e2c638213e7b9aa07385231bbf17dfe8a78c": {
1267
+ name: "Scout Systems",
1268
+ description: "Allows you to interact with scout features.",
1269
+ methods: [
1270
+ {
1271
+ name: "Scout",
1272
+ description: "A method to scout the map.",
1273
+ entrypoint: "scout"
1274
+ }
1275
+ ]
1276
+ },
1277
+ "0x14705481d28fab7bb37d6cb19d3392d39f838a1d5572b8c8f18e85e0c4b8918": {
1278
+ name: "Shield Systems",
1279
+ description: "Allows you to interact with shield features.",
1280
+ methods: [
1281
+ {
1282
+ name: "Activate Shield",
1283
+ description: "A method to activate a shield to protect your island.",
1284
+ entrypoint: "activate_shield"
1285
+ },
1286
+ {
1287
+ name: "Deactivate Shield",
1288
+ description: "A method to deactivate a shield from your island.",
1289
+ entrypoint: "deactivate_shield"
1290
+ },
1291
+ {
1292
+ name: "Buy Shield",
1293
+ description: "A method to buy a shield.",
1294
+ entrypoint: "buy_shield"
1295
+ }
1296
+ ]
1297
+ },
1298
+ "0x23d6a41c06e2d7b60437ba4da3eca857cf9a0b94f3548396829365a0a299c63": {
1299
+ name: "Star Shop Systems",
1300
+ description: "Allows you to interact with star shop features.",
1301
+ methods: [
1302
+ {
1303
+ name: "Buy Item Star Shop",
1304
+ description: "A method to buy item from the Star Shop.",
1305
+ entrypoint: "buy_item_star_shop"
1306
+ }
1307
+ ]
1308
+ },
1309
+ "0x511a78a1c4b33bedc4ff7d9b37eb7481bcdff77c5c2cb6f67390d43657749d0": {
1310
+ name: "Treasure Hunt Systems",
1311
+ description: "Allows you to interact with treasure hunt features.",
1312
+ methods: [
1313
+ {
1314
+ name: "Insert Dragon Treasure Hunt",
1315
+ description: "A method to insert your Dragarks to start a new treasure hunt.",
1316
+ entrypoint: "insert_dragon_treasure_hunt"
1317
+ },
1318
+ {
1319
+ name: "End Treasure Hunt",
1320
+ description: "A method to end an existing treasure hunt and claim rewards.",
1321
+ entrypoint: "end_treasure_hunt"
1322
+ }
1323
+ ]
1324
+ }
1325
+ }
1326
+ },
1119
1327
  theme: {
1120
1328
  colors: {
1121
1329
  primary: "#71EB34"
@@ -1668,6 +1876,82 @@ var configs = {
1668
1876
  name: "Loot Survivor"
1669
1877
  }
1670
1878
  },
1879
+ nums: {
1880
+ origin: ["nums.gg", "www.nums.gg"],
1881
+ policies: {
1882
+ contracts: {
1883
+ "0x07ccfbc43c109efd466638defa52702382ace922051d35a0554b5ccd02a8f155": {
1884
+ name: "Game Actions",
1885
+ methods: [
1886
+ {
1887
+ name: "Create Game",
1888
+ entrypoint: "create_game",
1889
+ description: "Creates a new game"
1890
+ },
1891
+ {
1892
+ name: "Set Slot",
1893
+ entrypoint: "set_slot",
1894
+ description: "Sets one slot for the game"
1895
+ }
1896
+ ]
1897
+ },
1898
+ "0x00ea44dd8e971d3af9f99568577bf14b0a80a7f7763fa6281840ab68a8a53ba9": {
1899
+ name: "Claim Actions",
1900
+ methods: [
1901
+ {
1902
+ name: "Claim Appchain Reward",
1903
+ entrypoint: "claim_reward",
1904
+ description: "Claims token rewards on Appchain"
1905
+ }
1906
+ ]
1907
+ },
1908
+ "0x03ee42961dc151d740df95c44b929abe85cf66e8444e0279252dd99b055c64b0": {
1909
+ name: "Rewards Claim",
1910
+ methods: [
1911
+ {
1912
+ name: "Consume Reward on Starknet",
1913
+ entrypoint: "consume_claim_reward",
1914
+ description: "Consumes a claim reward message on Starknet"
1915
+ }
1916
+ ]
1917
+ },
1918
+ "0x7ed472bdde3b19a5cf2334ad0f368426272f477938270b1b04259f159bdc0e2": {
1919
+ name: "VRF Provider",
1920
+ methods: [
1921
+ {
1922
+ name: "Request Random",
1923
+ entrypoint: "request_random",
1924
+ description: "Requests a random number from the VRF contract"
1925
+ }
1926
+ ]
1927
+ },
1928
+ "0x4d776373427434a22f7d60d0f7fe0e336fd830edf4294acec33d9f2e1275327": {
1929
+ name: "Social",
1930
+ description: "Social contract to manage your social activities",
1931
+ methods: [
1932
+ {
1933
+ name: "pin",
1934
+ entrypoint: "pin",
1935
+ description: "Pin an achievement."
1936
+ },
1937
+ {
1938
+ name: "unpin",
1939
+ entrypoint: "unpin",
1940
+ description: "Unpin an achievement."
1941
+ }
1942
+ ]
1943
+ }
1944
+ }
1945
+ },
1946
+ theme: {
1947
+ colors: {
1948
+ primary: "#9E84E9"
1949
+ },
1950
+ cover: "https://static.cartridge.gg/presets/nums/cover.png",
1951
+ icon: "https://static.cartridge.gg/presets/nums/icon.png",
1952
+ name: "Nums"
1953
+ }
1954
+ },
1671
1955
  paved: {
1672
1956
  origin: "paved.gg",
1673
1957
  theme: {
@@ -1680,14 +1964,174 @@ var configs = {
1680
1964
  }
1681
1965
  },
1682
1966
  pistols: {
1683
- origin: "pistols.underware.gg",
1967
+ origin: [
1968
+ "pistols.underware.gg",
1969
+ "pistols.stage.underware.gg",
1970
+ "play.pistols.gg"
1971
+ ],
1684
1972
  theme: {
1685
1973
  colors: {
1686
1974
  primary: "#EF9758"
1687
1975
  },
1688
1976
  cover: "https://static.cartridge.gg/presets/pistols/cover.png",
1689
1977
  icon: "https://static.cartridge.gg/presets/pistols/icon.png",
1690
- name: "Pistols at Ten Blocks"
1978
+ name: "Pistols at Dawn"
1979
+ },
1980
+ policies: {
1981
+ contracts: {
1982
+ "0x01445d46f1ba32c4f91eb61e161ffcb7ce70598649ad72e5405eaee5a2afba71": {
1983
+ name: "Game",
1984
+ description: "Game loop contract",
1985
+ methods: [
1986
+ {
1987
+ entrypoint: "commit_moves"
1988
+ },
1989
+ {
1990
+ entrypoint: "reveal_moves"
1991
+ },
1992
+ {
1993
+ entrypoint: "collect"
1994
+ }
1995
+ ]
1996
+ },
1997
+ "0x042b5966ef49614c78ca1577f617634ff3dbfee1cb811f1386cd9518b2cedd9e": {
1998
+ name: "Tutorial",
1999
+ description: "Tutorial game contract",
2000
+ methods: [
2001
+ {
2002
+ entrypoint: "create_tutorial"
2003
+ },
2004
+ {
2005
+ entrypoint: "commit_moves"
2006
+ },
2007
+ {
2008
+ entrypoint: "reveal_moves"
2009
+ }
2010
+ ]
2011
+ },
2012
+ "0x05f3df8d2895ab76f21f13114ee33292356a009900ed32e2ab5f280ac932546a": {
2013
+ name: "Pack token",
2014
+ description: "Packs ERC721 contract",
2015
+ methods: [
2016
+ {
2017
+ entrypoint: "claim_welcome_pack"
2018
+ },
2019
+ {
2020
+ entrypoint: "purchase"
2021
+ },
2022
+ {
2023
+ entrypoint: "open"
2024
+ }
2025
+ ]
2026
+ },
2027
+ "0x06afa7f3d4ddce0426572b0c2a91df17399997e2f44cc3586535ae9639939e67": {
2028
+ name: "Duel token",
2029
+ description: "Duel ERC721 contract",
2030
+ methods: [
2031
+ {
2032
+ entrypoint: "create_duel"
2033
+ },
2034
+ {
2035
+ entrypoint: "reply_duel"
2036
+ },
2037
+ {
2038
+ entrypoint: "transfer_to_winner"
2039
+ }
2040
+ ]
2041
+ }
2042
+ },
2043
+ messages: [
2044
+ {
2045
+ types: {
2046
+ StarknetDomain: [
2047
+ {
2048
+ name: "name",
2049
+ type: "shortstring"
2050
+ },
2051
+ {
2052
+ name: "version",
2053
+ type: "shortstring"
2054
+ },
2055
+ {
2056
+ name: "chainId",
2057
+ type: "shortstring"
2058
+ },
2059
+ {
2060
+ name: "revision",
2061
+ type: "shortstring"
2062
+ }
2063
+ ],
2064
+ "pistols-PlayerOnline": [
2065
+ {
2066
+ name: "identity",
2067
+ type: "ContractAddress"
2068
+ },
2069
+ {
2070
+ name: "timestamp",
2071
+ type: "felt"
2072
+ }
2073
+ ]
2074
+ },
2075
+ primaryType: "pistols-PlayerOnline",
2076
+ domain: {
2077
+ name: "Underware_gg",
2078
+ version: "1.0.0",
2079
+ chainId: "SN_MAIN",
2080
+ revision: "1"
2081
+ },
2082
+ name: "PlayerOnline",
2083
+ description: "Notify the server that a player is online"
2084
+ },
2085
+ {
2086
+ types: {
2087
+ StarknetDomain: [
2088
+ {
2089
+ name: "name",
2090
+ type: "shortstring"
2091
+ },
2092
+ {
2093
+ name: "version",
2094
+ type: "shortstring"
2095
+ },
2096
+ {
2097
+ name: "chainId",
2098
+ type: "shortstring"
2099
+ },
2100
+ {
2101
+ name: "revision",
2102
+ type: "shortstring"
2103
+ }
2104
+ ],
2105
+ "pistols-PlayerBookmark": [
2106
+ {
2107
+ name: "identity",
2108
+ type: "ContractAddress"
2109
+ },
2110
+ {
2111
+ name: "target_address",
2112
+ type: "ContractAddress"
2113
+ },
2114
+ {
2115
+ name: "target_id",
2116
+ type: "u128"
2117
+ },
2118
+ {
2119
+ name: "enabled",
2120
+ type: "bool"
2121
+ }
2122
+ ]
2123
+ },
2124
+ primaryType: "pistols-PlayerBookmark",
2125
+ domain: {
2126
+ name: "Underware_gg",
2127
+ version: "1.0.0",
2128
+ chainId: "SN_MAIN",
2129
+ revision: "1"
2130
+ },
2131
+ name: "PlayerBookmark",
2132
+ description: "Notify the server that a player follows another player or token"
2133
+ }
2134
+ ]
1691
2135
  }
1692
2136
  },
1693
2137
  pixelaw: {
@@ -2181,6 +2625,6 @@ var controllerConfigs = configs;
2181
2625
  var erc20Metadata = metadata;
2182
2626
  var defaultTheme = configs["cartridge"].theme;
2183
2627
 
2184
- export { NotReadyToConnect, ResponseCodes, controllerConfigs, ControllerProvider as default, defaultTheme, erc20Metadata, lookupAddresses, lookupUsernames, toArray, toSessionPolicies, toWasmPolicies };
2628
+ export { NotReadyToConnect, ResponseCodes, controllerConfigs, ControllerProvider as default, defaultTheme, erc20Metadata, humanizeString, lookupAddresses, lookupUsernames, normalizeCalls, parseChainId, toArray, toSessionPolicies, toWasmPolicies };
2185
2629
  //# sourceMappingURL=index.js.map
2186
2630
  //# sourceMappingURL=index.js.map