@peeramid-labs/sdk 3.7.4 → 3.9.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.
Files changed (91) hide show
  1. package/cli/cli/commands/blockchain/index.js +9 -0
  2. package/cli/cli/commands/blockchain/index.js.map +1 -0
  3. package/cli/cli/commands/blockchain/mine.js +45 -0
  4. package/cli/cli/commands/blockchain/mine.js.map +1 -0
  5. package/cli/cli/commands/distributions/add.js +55 -31
  6. package/cli/cli/commands/distributions/add.js.map +1 -1
  7. package/cli/cli/commands/fellowship/create.js +96 -60
  8. package/cli/cli/commands/fellowship/create.js.map +1 -1
  9. package/cli/cli/commands/fellowship/game/cancel.js +45 -0
  10. package/cli/cli/commands/fellowship/game/cancel.js.map +1 -0
  11. package/cli/cli/commands/fellowship/game/create.js +91 -0
  12. package/cli/cli/commands/fellowship/game/create.js.map +1 -0
  13. package/cli/cli/commands/fellowship/{endTurn.js → game/end-turn.js} +8 -7
  14. package/cli/cli/commands/fellowship/game/end-turn.js.map +1 -0
  15. package/cli/cli/commands/fellowship/game/index.js +31 -0
  16. package/cli/cli/commands/fellowship/game/index.js.map +1 -0
  17. package/cli/cli/commands/fellowship/game/join.js +131 -0
  18. package/cli/cli/commands/fellowship/game/join.js.map +1 -0
  19. package/cli/cli/commands/fellowship/{games.js → game/list.js} +5 -5
  20. package/cli/cli/commands/fellowship/game/list.js.map +1 -0
  21. package/cli/cli/commands/fellowship/game/propose.js +178 -0
  22. package/cli/cli/commands/fellowship/game/propose.js.map +1 -0
  23. package/cli/cli/commands/fellowship/game/start.js +117 -0
  24. package/cli/cli/commands/fellowship/game/start.js.map +1 -0
  25. package/cli/cli/commands/fellowship/game/vote.js +114 -0
  26. package/cli/cli/commands/fellowship/game/vote.js.map +1 -0
  27. package/cli/cli/commands/fellowship/index.js +3 -5
  28. package/cli/cli/commands/fellowship/index.js.map +1 -1
  29. package/cli/cli/commands/getPk.js +48 -0
  30. package/cli/cli/commands/getPk.js.map +1 -0
  31. package/cli/cli/commands/playbook.js +92 -0
  32. package/cli/cli/commands/playbook.js.map +1 -0
  33. package/cli/cli/getPk.js +62 -0
  34. package/cli/cli/getPk.js.map +1 -0
  35. package/cli/cli/helpers.js +64 -0
  36. package/cli/cli/helpers.js.map +1 -0
  37. package/cli/cli/index.js +6 -0
  38. package/cli/cli/index.js.map +1 -1
  39. package/cli/cli/utils.js +64 -0
  40. package/cli/cli/utils.js.map +1 -0
  41. package/cli/rankify/GameMaster.js +199 -209
  42. package/cli/rankify/GameMaster.js.map +1 -1
  43. package/cli/rankify/InstanceBase.js +65 -40
  44. package/cli/rankify/InstanceBase.js.map +1 -1
  45. package/cli/rankify/MAODistributor.js +1 -1
  46. package/cli/rankify/MAODistributor.js.map +1 -1
  47. package/cli/rankify/Player.js +355 -0
  48. package/cli/rankify/Player.js.map +1 -0
  49. package/cli/utils/blockchain.js +62 -0
  50. package/cli/utils/blockchain.js.map +1 -0
  51. package/docs/classes/GameMaster.md +23 -63
  52. package/docs/classes/InstanceBase.md +22 -29
  53. package/docs/classes/InstancePlayer.md +26 -33
  54. package/docs/docs/classes/GameMaster.md +23 -63
  55. package/docs/docs/classes/InstanceBase.md +22 -29
  56. package/docs/docs/classes/InstancePlayer.md +26 -33
  57. package/docs/docs/index.md +1 -1
  58. package/docs/index.md +1 -1
  59. package/lib.commonjs/rankify/GameMaster.d.ts +26 -33
  60. package/lib.commonjs/rankify/GameMaster.d.ts.map +1 -1
  61. package/lib.commonjs/rankify/GameMaster.js +199 -209
  62. package/lib.commonjs/rankify/GameMaster.js.map +1 -1
  63. package/lib.commonjs/rankify/InstanceBase.d.ts +65 -51
  64. package/lib.commonjs/rankify/InstanceBase.d.ts.map +1 -1
  65. package/lib.commonjs/rankify/InstanceBase.js +65 -40
  66. package/lib.commonjs/rankify/InstanceBase.js.map +1 -1
  67. package/lib.commonjs/rankify/MAODistributor.d.ts.map +1 -1
  68. package/lib.commonjs/rankify/MAODistributor.js +1 -1
  69. package/lib.commonjs/rankify/MAODistributor.js.map +1 -1
  70. package/lib.commonjs/utils/blockchain.d.ts +32 -0
  71. package/lib.commonjs/utils/blockchain.d.ts.map +1 -0
  72. package/lib.commonjs/utils/blockchain.js +62 -0
  73. package/lib.commonjs/utils/blockchain.js.map +1 -0
  74. package/lib.esm/rankify/GameMaster.d.ts +26 -33
  75. package/lib.esm/rankify/GameMaster.d.ts.map +1 -1
  76. package/lib.esm/rankify/GameMaster.js +199 -209
  77. package/lib.esm/rankify/GameMaster.js.map +1 -1
  78. package/lib.esm/rankify/InstanceBase.d.ts +65 -51
  79. package/lib.esm/rankify/InstanceBase.d.ts.map +1 -1
  80. package/lib.esm/rankify/InstanceBase.js +65 -40
  81. package/lib.esm/rankify/InstanceBase.js.map +1 -1
  82. package/lib.esm/rankify/MAODistributor.d.ts.map +1 -1
  83. package/lib.esm/rankify/MAODistributor.js +1 -1
  84. package/lib.esm/rankify/MAODistributor.js.map +1 -1
  85. package/lib.esm/utils/blockchain.d.ts +32 -0
  86. package/lib.esm/utils/blockchain.d.ts.map +1 -0
  87. package/lib.esm/utils/blockchain.js +58 -0
  88. package/lib.esm/utils/blockchain.js.map +1 -0
  89. package/package.json +1 -1
  90. package/cli/cli/commands/fellowship/endTurn.js.map +0 -1
  91. package/cli/cli/commands/fellowship/games.js.map +0 -1
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.blockchainCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const mine_1 = require("./mine");
6
+ exports.blockchainCommand = new commander_1.Command("blockchain")
7
+ .description("Blockchain utility commands")
8
+ .addCommand(mine_1.mine);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/commands/blockchain/index.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,iCAA8B;AAEjB,QAAA,iBAAiB,GAAG,IAAI,mBAAO,CAAC,YAAY,CAAC;KACvD,WAAW,CAAC,6BAA6B,CAAC;KAC1C,UAAU,CAAC,WAAI,CAAC,CAAC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.mine = void 0;
7
+ const commander_1 = require("commander");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const ora_1 = __importDefault(require("ora"));
10
+ const client_1 = require("../../client");
11
+ const blockchain_1 = require("../../../utils/blockchain");
12
+ exports.mine = new commander_1.Command("mine")
13
+ .description("Increase next block timestamp and mine a new block")
14
+ .option("-r, --rpc <url>", "RPC endpoint URL. If not provided, RPC_URL environment variable will be used")
15
+ .option("-k, --key <privateKey>", "Private key for signing transactions. If not provided, PRIVATE_KEY environment variable will be used")
16
+ .option("-t, --time-increase <seconds>", "Number of seconds to increase the timestamp by", "1")
17
+ .action(async (options) => {
18
+ const spinner = (0, ora_1.default)("Initializing clients...").start();
19
+ try {
20
+ const publicClient = await (0, client_1.createPublic)(options.rpc);
21
+ // We create the wallet client for authentication but don't use it directly
22
+ await (0, client_1.createWallet)(options.rpc, options.key);
23
+ const chainId = Number(await publicClient.getChainId());
24
+ const currentBlock = await publicClient.getBlock({ blockTag: "latest" });
25
+ console.log(`Current block: ${currentBlock.number}, timestamp: ${currentBlock.timestamp}`);
26
+ // Check if we're on a local development chain
27
+ if (!blockchain_1.BlockchainUtils.isLocalChain(chainId)) {
28
+ spinner.fail("This command can only be used on local development chains (Anvil, Hardhat, or Ganache)");
29
+ process.exit(1);
30
+ }
31
+ // Parse time increase option
32
+ const timeIncrease = parseInt(options.timeIncrease);
33
+ // Use the utility function to increase time and mine
34
+ const result = await blockchain_1.BlockchainUtils.increaseTimeAndMine(publicClient, timeIncrease, spinner);
35
+ spinner.succeed(`Successfully mined a new block`);
36
+ console.log(chalk_1.default.green(`New block: ${result.newBlock.number}, timestamp: ${result.newBlock.timestamp}`));
37
+ console.log(chalk_1.default.green(`Timestamp increased by: ${result.actualIncrease} seconds`));
38
+ }
39
+ catch (error) {
40
+ spinner.fail("Failed to mine block");
41
+ console.error(chalk_1.default.red(`Error: ${error instanceof Error ? error.message + "\n" + error.stack : String(error)}`));
42
+ process.exit(1);
43
+ }
44
+ });
45
+ //# sourceMappingURL=mine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mine.js","sourceRoot":"","sources":["../../../../../src/cli/commands/blockchain/mine.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,yCAA0D;AAC1D,0DAA4D;AAE/C,QAAA,IAAI,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;KACpC,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,iBAAiB,EAAE,8EAA8E,CAAC;KACzG,MAAM,CACL,wBAAwB,EACxB,sGAAsG,CACvG;KACA,MAAM,CAAC,+BAA+B,EAAE,gDAAgD,EAAE,GAAG,CAAC;KAC9F,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAErD,2EAA2E;QAC3E,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QAExD,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,kBAAkB,YAAY,CAAC,MAAM,gBAAgB,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;QAE3F,8CAA8C;QAC9C,IAAI,CAAC,4BAAe,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;YACvG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,6BAA6B;QAC7B,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAEpD,qDAAqD;QACrD,MAAM,MAAM,GAAG,MAAM,4BAAe,CAAC,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAE9F,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC1G,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2BAA2B,MAAM,CAAC,cAAc,UAAU,CAAC,CAAC,CAAC;IAEvF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAClH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -11,6 +11,12 @@ const MAODistributor_1 = require("../../../rankify/MAODistributor");
11
11
  const client_1 = require("../../client");
12
12
  const inquirer_1 = __importDefault(require("inquirer"));
13
13
  const utils_1 = require("../../../utils");
14
+ const getPk_1 = require("../../getPk");
15
+ // Define enum for distribution defaults
16
+ var DistributionDefaults;
17
+ (function (DistributionDefaults) {
18
+ DistributionDefaults["NAME"] = "MAO Distribution";
19
+ })(DistributionDefaults || (DistributionDefaults = {}));
14
20
  // Helper to pad string to 32 bytes, similar to ethers.utils.formatBytes32String
15
21
  function formatBytes32String(text) {
16
22
  const buffer = Buffer.from(text.slice(0, 31), "utf8");
@@ -22,11 +28,14 @@ exports.addCommand = new commander_1.Command("add")
22
28
  .description("Add a new distribution")
23
29
  .option("-r, --rpc <url>", "RPC endpoint URL. If not provided, RPC_URL environment variable will be used")
24
30
  .option("-d, --distributor <address>", "Address of the distributor")
31
+ .option("-i, --m-index <mnemonicIndex>", "Index to derive from mnemonic")
32
+ .option("-k, --key <privateKey>", "Will be used if no mnemonic index is provided. Private key with admin permissions. If not provided, PRIVATE_KEY environment variable will be used")
33
+ .option("-y, --yes", "Auto-accept default values for all prompts", false)
25
34
  .action(async (options) => {
26
35
  const spinner = (0, ora_1.default)("Initializing clients...").start();
27
36
  try {
28
37
  const publicClient = await (0, client_1.createPublic)(options.rpc);
29
- const walletClient = await (0, client_1.createWallet)(options.rpc, options.key);
38
+ const walletClient = await (0, client_1.createWallet)(options.rpc, (0, getPk_1.resolvePk)(options.mIndex ?? options.key, spinner));
30
39
  const chainId = Number(await publicClient.getChainId());
31
40
  const maoDistributor = new MAODistributor_1.MAODistributorClient(chainId, {
32
41
  address: options.distributor ?? undefined,
@@ -34,41 +43,56 @@ exports.addCommand = new commander_1.Command("add")
34
43
  walletClient,
35
44
  });
36
45
  spinner.stop();
37
- // Use provided name, env var, or default
46
+ // Default values
47
+ const defaultName = process.env.DEFAULT_DISTRIBUTION_NAME ?? DistributionDefaults.NAME;
48
+ const defaultAddress = (0, utils_1.getArtifact)(chainId, "MAODistribution").address;
49
+ // Check if auto-accept defaults is enabled
50
+ const autoAcceptDefaults = options.yes;
38
51
  let name = options.name;
52
+ let distributionAddress = options.address;
39
53
  if (!name) {
40
- const defaultName = process.env.DEFAULT_DISTRIBUTION_NAME ?? "MAO Distribution";
41
- const response = await inquirer_1.default.prompt([
42
- {
43
- type: "input",
44
- name: "name",
45
- message: "Enter distribution name:",
46
- default: defaultName,
47
- validate: (input) => {
48
- if (!input.trim())
49
- return "Name cannot be empty";
50
- return true;
54
+ if (autoAcceptDefaults) {
55
+ console.log(`Auto-accepting default distribution name: ${defaultName}`);
56
+ name = defaultName;
57
+ }
58
+ else {
59
+ const response = await inquirer_1.default.prompt([
60
+ {
61
+ type: "input",
62
+ name: "name",
63
+ message: "Enter distribution name:",
64
+ default: defaultName,
65
+ validate: (input) => {
66
+ if (!input.trim())
67
+ return "Name cannot be empty";
68
+ return true;
69
+ },
51
70
  },
52
- },
53
- ]);
54
- name = response.name;
71
+ ]);
72
+ name = response.name;
73
+ }
55
74
  }
56
- let distributionAddress = options.address;
57
- if (!options.address) {
58
- const response = await inquirer_1.default.prompt([
59
- {
60
- type: "input",
61
- name: "address",
62
- message: "Input distribution address to add to the distributor contract",
63
- default: (0, utils_1.getArtifact)(chainId, "MAODistribution").address,
64
- validate: (input) => {
65
- if (!input.trim())
66
- return "Address cannot be empty";
67
- return true;
75
+ if (!distributionAddress) {
76
+ if (autoAcceptDefaults) {
77
+ console.log(`Auto-accepting default distribution address: ${defaultAddress}`);
78
+ distributionAddress = defaultAddress;
79
+ }
80
+ else {
81
+ const response = await inquirer_1.default.prompt([
82
+ {
83
+ type: "input",
84
+ name: "address",
85
+ message: "Input distribution address to add to the distributor contract",
86
+ default: defaultAddress,
87
+ validate: (input) => {
88
+ if (!input.trim())
89
+ return "Address cannot be empty";
90
+ return true;
91
+ },
68
92
  },
69
- },
70
- ]);
71
- distributionAddress = response.address;
93
+ ]);
94
+ distributionAddress = response.address;
95
+ }
72
96
  }
73
97
  // Format name as bytes32
74
98
  const nameBytes = formatBytes32String(name);
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../../src/cli/commands/distributions/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../../src/cli/commands/distributions/add.ts"],"names":[],"mappings":"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"}
@@ -11,80 +11,116 @@ const ora_1 = __importDefault(require("ora"));
11
11
  const MAODistributor_1 = require("../../../rankify/MAODistributor");
12
12
  const client_1 = require("../../client");
13
13
  const chainMapping_1 = require("../../../utils/chainMapping");
14
+ const getPk_1 = require("../../getPk");
15
+ // Define enum for fellowship defaults
16
+ var FellowshipDefaults;
17
+ (function (FellowshipDefaults) {
18
+ FellowshipDefaults["TOKEN_NAME"] = "Fellowship Token";
19
+ FellowshipDefaults["TOKEN_SYMBOL"] = "FLSHP";
20
+ FellowshipDefaults["PRINCIPAL_COST"] = "1000000000";
21
+ FellowshipDefaults["TIME_CONSTANT"] = "604800";
22
+ FellowshipDefaults["METADATA"] = "ipfs://QmVzSvWjysUfVHzGMQ4y2EduXrVYLApZ3KHQb2gUTR4x6P";
23
+ FellowshipDefaults["RANK_TOKEN_URI"] = "ipfs://your-rank-token-uri";
24
+ })(FellowshipDefaults || (FellowshipDefaults = {}));
14
25
  exports.createFellowshipCommand = new commander_1.Command("create")
15
26
  .description("Create a new Fellowship")
16
27
  .option("-r, --rpc <url>", "RPC endpoint URL. If not provided, RPC_URL environment variable will be used")
17
- .option("-k, --key <privateKey>", "Private key for signing transactions. If not provided, PRIVATE_KEY environment variable will be used")
18
- .option("-n, --dist-name <name>", "Distributors package name")
28
+ .option("-i, --mnemonic-index <index>", "Index to derive from mnemonic")
29
+ .option("-k, --key <privateKey>", "Will be used if no mnemonic index is provided. Private key with admin permissions. If not provided, PRIVATE_KEY environment variable will be used")
30
+ .option("-n, --dist-name <n>", "Distributors package name")
31
+ .option("-y, --yes", "Auto-accept default values for all prompts", false)
19
32
  .action(async (options) => {
20
33
  const spinner = (0, ora_1.default)("Initializing clients...").start();
21
34
  try {
22
35
  const publicClient = await (0, client_1.createPublic)(options.rpc);
23
- const walletClient = await (0, client_1.createWallet)(options.rpc, options.key);
36
+ const walletClient = await (0, client_1.createWallet)(options.rpc, (0, getPk_1.resolvePk)(options.mnemonicIndex ?? options.key, spinner));
24
37
  const chainId = Number(await publicClient.getChainId());
25
38
  const maoDistributor = new MAODistributor_1.MAODistributorClient(chainId, {
26
39
  publicClient,
27
40
  walletClient,
28
41
  });
29
- spinner.text = "Please provide fellowship details...";
30
- spinner.stop();
31
- const { tokenName, tokenSymbol, principalCost, timeConstant, metadata, rankTokenUri, owner } = await inquirer_1.default.prompt([
32
- {
33
- type: "input",
34
- name: "tokenName",
35
- message: "Enter token name:",
36
- default: "Fellowship Token",
37
- },
38
- {
39
- type: "input",
40
- name: "tokenSymbol",
41
- message: "Enter token symbol:",
42
- default: "FLSHP",
43
- },
44
- {
45
- type: "input",
46
- name: "principalCost",
47
- message: "Enter principal cost (in wei):",
48
- default: "1000000000000000000", // 1 ETH
49
- validate: (input) => {
50
- try {
51
- BigInt(input);
52
- return true;
53
- }
54
- catch {
55
- return "Please enter a valid number";
56
- }
42
+ // Default values for fellowship creation
43
+ const defaultValues = {
44
+ tokenName: FellowshipDefaults.TOKEN_NAME,
45
+ tokenSymbol: FellowshipDefaults.TOKEN_SYMBOL,
46
+ principalCost: FellowshipDefaults.PRINCIPAL_COST,
47
+ timeConstant: FellowshipDefaults.TIME_CONSTANT,
48
+ metadata: FellowshipDefaults.METADATA,
49
+ rankTokenUri: FellowshipDefaults.RANK_TOKEN_URI,
50
+ owner: walletClient.account?.address,
51
+ };
52
+ // Check if auto-accept defaults is enabled
53
+ const autoAcceptDefaults = options.yes;
54
+ let fellowshipDetails;
55
+ if (autoAcceptDefaults) {
56
+ // Auto-accept all default values
57
+ console.log("Auto-accepting default values:");
58
+ console.log(defaultValues);
59
+ fellowshipDetails = defaultValues;
60
+ }
61
+ else {
62
+ // Prompt user for values
63
+ spinner.text = "Please provide fellowship details...";
64
+ spinner.stop();
65
+ fellowshipDetails = await inquirer_1.default.prompt([
66
+ {
67
+ type: "input",
68
+ name: "tokenName",
69
+ message: "Enter token name:",
70
+ default: defaultValues.tokenName,
57
71
  },
58
- },
59
- {
60
- type: "input",
61
- name: "timeConstant",
62
- message: "Enter time constant (in seconds):",
63
- default: "604800", // 1 week
64
- validate: (input) => {
65
- const num = parseInt(input);
66
- return !isNaN(num) && num > 0 ? true : "Please enter a valid number greater than 0";
72
+ {
73
+ type: "input",
74
+ name: "tokenSymbol",
75
+ message: "Enter token symbol:",
76
+ default: defaultValues.tokenSymbol,
67
77
  },
68
- },
69
- {
70
- type: "input",
71
- name: "metadata",
72
- message: "Enter metadata URI:",
73
- default: "ipfs://your-metadata-uri",
74
- },
75
- {
76
- type: "input",
77
- name: "rankTokenUri",
78
- message: "Enter rank token URI:",
79
- default: "ipfs://your-rank-token-uri",
80
- },
81
- {
82
- type: "input",
83
- name: "owner",
84
- message: "Enter owner address:",
85
- default: walletClient.account?.address,
86
- },
87
- ]);
78
+ {
79
+ type: "input",
80
+ name: "principalCost",
81
+ message: "Enter principal cost (in wei):",
82
+ default: defaultValues.principalCost,
83
+ validate: (input) => {
84
+ try {
85
+ BigInt(input);
86
+ return true;
87
+ }
88
+ catch {
89
+ return "Please enter a valid number";
90
+ }
91
+ },
92
+ },
93
+ {
94
+ type: "input",
95
+ name: "timeConstant",
96
+ message: "Enter time constant (in seconds):",
97
+ default: defaultValues.timeConstant, // 1 week
98
+ validate: (input) => {
99
+ const num = parseInt(input);
100
+ return !isNaN(num) && num > 0 ? true : "Please enter a valid number greater than 0";
101
+ },
102
+ },
103
+ {
104
+ type: "input",
105
+ name: "metadata",
106
+ message: "Enter metadata URI:",
107
+ default: defaultValues.metadata,
108
+ },
109
+ {
110
+ type: "input",
111
+ name: "rankTokenUri",
112
+ message: "Enter rank token URI:",
113
+ default: defaultValues.rankTokenUri,
114
+ },
115
+ {
116
+ type: "input",
117
+ name: "owner",
118
+ message: "Enter owner address:",
119
+ default: defaultValues.owner,
120
+ },
121
+ ]);
122
+ }
123
+ const { tokenName, tokenSymbol, principalCost, timeConstant, metadata, rankTokenUri, owner } = fellowshipDetails;
88
124
  spinner.start("Creating fellowship...");
89
125
  const args = [
90
126
  {
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../src/cli/commands/fellowship/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../src/cli/commands/fellowship/create.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,wDAAgC;AAChC,8CAAsB;AAEtB,oEAAuE;AACvE,yCAA0D;AAC1D,8DAA0D;AAC1D,uCAAwC;AAExC,sCAAsC;AACtC,IAAK,kBAOJ;AAPD,WAAK,kBAAkB;IACrB,qDAA+B,CAAA;IAC/B,4CAAsB,CAAA;IACtB,mDAA6B,CAAA;IAC7B,8CAAwB,CAAA;IACxB,wFAAkE,CAAA;IAClE,mEAA6C,CAAA;AAC/C,CAAC,EAPI,kBAAkB,KAAlB,kBAAkB,QAOtB;AAEY,QAAA,uBAAuB,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KACzD,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,iBAAiB,EAAE,8EAA8E,CAAC;KACzG,MAAM,CAAC,8BAA8B,EAAE,+BAA+B,CAAC;KACvE,MAAM,CAAC,wBAAwB,EAAE,mJAAmJ,CAAC;KACrL,MAAM,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;KAC1D,MAAM,CAAC,WAAW,EAAE,4CAA4C,EAAE,KAAK,CAAC;KACxE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,GAAG,EAAE,IAAA,iBAAS,EAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/G,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QAExD,MAAM,cAAc,GAAG,IAAI,qCAAoB,CAAC,OAAO,EAAE;YACvD,YAAY;YACZ,YAAY;SACb,CAAC,CAAC;QAEH,yCAAyC;QACzC,MAAM,aAAa,GAAG;YACpB,SAAS,EAAE,kBAAkB,CAAC,UAAU;YACxC,WAAW,EAAE,kBAAkB,CAAC,YAAY;YAC5C,aAAa,EAAE,kBAAkB,CAAC,cAAc;YAChD,YAAY,EAAE,kBAAkB,CAAC,aAAa;YAC9C,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;YACrC,YAAY,EAAE,kBAAkB,CAAC,cAAc;YAC/C,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO;SACrC,CAAC;QAEF,2CAA2C;QAC3C,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;QAEvC,IAAI,iBAAiB,CAAC;QAEtB,IAAI,kBAAkB,EAAE,CAAC;YACvB,iCAAiC;YACjC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,iBAAiB,GAAG,aAAa,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,OAAO,CAAC,IAAI,GAAG,sCAAsC,CAAC;YACtD,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,iBAAiB,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBACxC;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,mBAAmB;oBAC5B,OAAO,EAAE,aAAa,CAAC,SAAS;iBACjC;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,qBAAqB;oBAC9B,OAAO,EAAE,aAAa,CAAC,WAAW;iBACnC;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,gCAAgC;oBACzC,OAAO,EAAE,aAAa,CAAC,aAAa;oBACpC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;wBAC1B,IAAI,CAAC;4BACH,MAAM,CAAC,KAAK,CAAC,CAAC;4BACd,OAAO,IAAI,CAAC;wBACd,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,6BAA6B,CAAC;wBACvC,CAAC;oBACH,CAAC;iBACF;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,mCAAmC;oBAC5C,OAAO,EAAE,aAAa,CAAC,YAAY,EAAE,SAAS;oBAC9C,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;wBAC1B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAC5B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4CAA4C,CAAC;oBACtF,CAAC;iBACF;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,qBAAqB;oBAC9B,OAAO,EAAE,aAAa,CAAC,QAAQ;iBAChC;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,uBAAuB;oBAChC,OAAO,EAAE,aAAa,CAAC,YAAY;iBACpC;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,sBAAsB;oBAC/B,OAAO,EAAE,aAAa,CAAC,KAAK;iBAC7B;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC;QAEjH,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAExC,MAAM,IAAI,GAAG;YACX;gBACE,aAAa,EAAE;oBACb,SAAS;oBACT,WAAW;iBACZ;gBACD,eAAe,EAAE;oBACf,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC;oBACpC,qBAAqB,EAAE,MAAM,CAAC,YAAY,CAAC;oBAC3C,YAAY,EAAE,YAAY;oBAC1B,oBAAoB,EAAE,QAAQ,EAAE,uCAAuC;oBACvE,KAAK,EAAE,KAAK;iBACb;aACF;SACO,CAAC;QAEX,MAAM,KAAK,GAAU;YACnB,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,0BAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrC,cAAc,EAAE;gBACd,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,EAAE;aACb;YACD,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAQ,CAAC;iBAC5C;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,OAAQ,CAAC;iBAC5C;aACF;SACF,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAElF,OAAO,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAEpD,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,eAAe,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,aAAa,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qBAAqB,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8BAA8B,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClG,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wBAAwB,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.cancel = void 0;
7
+ const commander_1 = require("commander");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const ora_1 = __importDefault(require("ora"));
10
+ const viem_1 = require("viem");
11
+ const client_1 = require("../../../client");
12
+ const Player_1 = __importDefault(require("../../../../rankify/Player"));
13
+ exports.cancel = new commander_1.Command("cancel")
14
+ .description("Cancel a game")
15
+ .argument("<instance>", "Address of the Rankify instance")
16
+ .argument("<game>", "Index of the game")
17
+ .option("-r, --rpc <url>", "RPC endpoint URL. If not provided, RPC_URL environment variable will be used")
18
+ .option("-k, --key <privateKey>", "Private key for signing transactions. If not provided, PRIVATE_KEY environment variable will be used")
19
+ .action(async (instanceAddress, gameId, options) => {
20
+ const spinner = (0, ora_1.default)("Initializing clients...").start();
21
+ try {
22
+ const publicClient = await (0, client_1.createPublic)(options.rpc);
23
+ const walletClient = await (0, client_1.createWallet)(options.rpc, options.key);
24
+ const chainId = Number(await publicClient.getChainId());
25
+ if (!walletClient.account)
26
+ throw new Error("No account found");
27
+ const player = new Player_1.default({
28
+ publicClient,
29
+ walletClient,
30
+ chainId,
31
+ instanceAddress: (0, viem_1.getAddress)(instanceAddress),
32
+ account: walletClient.account.address,
33
+ });
34
+ spinner.start("Canceling thread...");
35
+ const receipt = await player.cancelGame(BigInt(gameId));
36
+ console.log(receipt);
37
+ spinner.stop();
38
+ }
39
+ catch (error) {
40
+ spinner.fail("Failed to cancel game");
41
+ console.error(chalk_1.default.red(`Error: ${error instanceof Error ? error.message + "\n" + error.stack : String(error)}`));
42
+ process.exit(1);
43
+ }
44
+ });
45
+ //# sourceMappingURL=cancel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/fellowship/game/cancel.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,+BAAkC;AAClC,4CAA6D;AAC7D,wEAAgD;AAEnC,QAAA,MAAM,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KACxC,WAAW,CAAC,eAAe,CAAC;KAC5B,QAAQ,CAAC,YAAY,EAAE,iCAAiC,CAAC;KACzD,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;KACvC,MAAM,CAAC,iBAAiB,EAAE,8EAA8E,CAAC;KACzG,MAAM,CACL,wBAAwB,EACxB,sGAAsG,CACvG;KACA,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IACjD,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC;YACxB,YAAY;YACZ,YAAY;YACZ,OAAO;YACP,eAAe,EAAE,IAAA,iBAAU,EAAC,eAAe,CAAC;YAC5C,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO;SACtC,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAErC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAClH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.create = void 0;
7
+ const commander_1 = require("commander");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const ora_1 = __importDefault(require("ora"));
10
+ const viem_1 = require("viem");
11
+ const client_1 = require("../../../client");
12
+ const Player_1 = __importDefault(require("../../../../rankify/Player"));
13
+ const getPk_1 = require("../../../getPk");
14
+ const utils_1 = require("../../../utils");
15
+ exports.create = new commander_1.Command("create")
16
+ .description("Create a new game in a Rankify instance")
17
+ .argument("<instance>", "Address or instanceId of the Rankify instance")
18
+ .option("-r, --rpc <url>", "RPC endpoint URL. If not provided, RPC_URL environment variable will be used")
19
+ .option("-i, --m-index <mnemonicIndex>", "Index to derive from mnemonic")
20
+ .option("-k, --key <privateKey>", "Will be used if no mnemonic index is provided. Private key with admin permissions. If not provided, PRIVATE_KEY environment variable will be used")
21
+ .option("--gm <address>", "Game master address", "0xaA63aA2D921F23f204B6Bcb43c2844Fb83c82eb9")
22
+ .option("--rank <number>", "Game rank", "1")
23
+ .option("--max-players <number>", "Maximum number of players", "9")
24
+ .option("--min-players <number>", "Minimum number of players", "5")
25
+ .option("--min-game-time <seconds>", "Minimum game time in seconds", "3600")
26
+ .option("--turns <number>", "Number of turns", "5")
27
+ .option("--time-per-turn <seconds>", "Time per turn in seconds", "1800")
28
+ .option("--vote-credits <number>", "Vote credits per player", "14")
29
+ .option("--time-to-join <seconds>", "Time to join in seconds", "1800")
30
+ .option("--metadata <string>", "Game metadata (ipfs url)", "ipfs://QmXLnWFvdbVzbHN3dqbhfnPPPtHSiKxx2B8gySLaRHhFmW")
31
+ .option("--open-now", "Open registration immediately after creation", false)
32
+ .action(async (instanceAddress, options) => {
33
+ const spinner = (0, ora_1.default)("Initializing clients...").start();
34
+ try {
35
+ const publicClient = await (0, client_1.createPublic)(options.rpc);
36
+ const walletClient = await (0, client_1.createWallet)(options.rpc, (0, getPk_1.resolvePk)(options.mIndex ?? options.key, spinner));
37
+ const chainId = Number(await publicClient.getChainId());
38
+ const resolvedInstanceAddress = await utils_1.CLIUtils.resolveInstanceAddress(instanceAddress, chainId, publicClient, spinner);
39
+ spinner.text = "Creating Rankify player client...";
40
+ const account = walletClient.account?.address;
41
+ if (!account) {
42
+ spinner.fail("No account available");
43
+ throw new Error("No account available");
44
+ }
45
+ const player = new Player_1.default({
46
+ publicClient,
47
+ walletClient,
48
+ chainId,
49
+ instanceAddress: resolvedInstanceAddress,
50
+ account,
51
+ });
52
+ spinner.text = "Creating game...";
53
+ const creationArgs = {
54
+ gameRank: BigInt(options.rank),
55
+ minPlayerCnt: BigInt(options.minPlayers),
56
+ maxPlayerCnt: BigInt(options.maxPlayers),
57
+ nTurns: BigInt(options.turns),
58
+ voteCredits: BigInt(options.voteCredits),
59
+ gameMaster: (0, viem_1.getAddress)(options.gm),
60
+ minGameTime: BigInt(options.minGameTime),
61
+ timePerTurn: BigInt(options.timePerTurn),
62
+ timeToJoin: BigInt(options.timeToJoin),
63
+ metadata: options.metadata || "{}",
64
+ };
65
+ const result = await player.createGame({
66
+ creationArgs,
67
+ openNow: options.openNow,
68
+ });
69
+ spinner.succeed("Game created successfully");
70
+ if (result.gameId) {
71
+ console.log(chalk_1.default.green(`\nGame created with ID: ${result.gameId.toString()}`));
72
+ }
73
+ else {
74
+ console.log(chalk_1.default.yellow("\nGame created, but could not retrieve game ID"));
75
+ }
76
+ console.log(chalk_1.default.dim("Transaction hash:"), result.receipt.transactionHash);
77
+ if (options.openNow && result.openingReceipt) {
78
+ console.log(chalk_1.default.green("\nGame registration opened"));
79
+ console.log(chalk_1.default.dim("Opening transaction hash:"), result.openingReceipt.transactionHash);
80
+ }
81
+ else if (options.openNow) {
82
+ console.log(chalk_1.default.yellow("\nNote: Game registration was not opened automatically"));
83
+ }
84
+ }
85
+ catch (error) {
86
+ spinner.fail("Failed to create game");
87
+ console.error(chalk_1.default.red(`Error: ${error instanceof Error ? error.message + "\n" + error.stack : String(error)}`));
88
+ process.exit(1);
89
+ }
90
+ });
91
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/fellowship/game/create.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,+BAAkC;AAClC,4CAA6D;AAC7D,wEAAuD;AACvD,0CAA2C;AAC3C,0CAA0C;AAE7B,QAAA,MAAM,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KACxC,WAAW,CAAC,yCAAyC,CAAC;KACtD,QAAQ,CAAC,YAAY,EAAE,+CAA+C,CAAC;KACvE,MAAM,CAAC,iBAAiB,EAAE,8EAA8E,CAAC;KACzG,MAAM,CAAC,+BAA+B,EAAE,+BAA+B,CAAC;KACxE,MAAM,CAAC,wBAAwB,EAAE,mJAAmJ,CAAC;KACrL,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,4CAA4C,CAAC;KAC7F,MAAM,CAAC,iBAAiB,EAAE,WAAW,EAAE,GAAG,CAAC;KAC3C,MAAM,CAAC,wBAAwB,EAAE,2BAA2B,EAAE,GAAG,CAAC;KAClE,MAAM,CAAC,wBAAwB,EAAE,2BAA2B,EAAE,GAAG,CAAC;KAClE,MAAM,CAAC,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,CAAC;KAC3E,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,GAAG,CAAC;KAClD,MAAM,CAAC,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,CAAC;KACvE,MAAM,CAAC,yBAAyB,EAAE,yBAAyB,EAAE,IAAI,CAAC;KAClE,MAAM,CAAC,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,CAAC;KACrE,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,EAAE,uDAAuD,CAAC;KAClH,MAAM,CAAC,YAAY,EAAE,8CAA8C,EAAE,KAAK,CAAC;KAC3E,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE;IACzC,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,GAAG,EAAE,IAAA,iBAAS,EAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QACxG,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QAExD,MAAM,uBAAuB,GAAG,MAAM,gBAAQ,CAAC,sBAAsB,CACnE,eAAe,EACf,OAAO,EACP,YAAY,EACZ,OAAO,CACR,CAAC;QAEF,OAAO,CAAC,IAAI,GAAG,mCAAmC,CAAC;QACnD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,gBAAa,CAAC;YAC/B,YAAY;YACZ,YAAY;YACZ,OAAO;YACP,eAAe,EAAE,uBAAuB;YACxC,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAElC,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9B,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;YACxC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;YACxC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAC7B,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YACxC,UAAU,EAAE,IAAA,iBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;YAClC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YACxC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YACxC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;YACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;SACnC,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC;YACrC,YAAY;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QAEH,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAE7C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2BAA2B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAE5E,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC7F,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wDAAwD,CAAC,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAClH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -7,12 +7,12 @@ exports.endTurn = void 0;
7
7
  const commander_1 = require("commander");
8
8
  const chalk_1 = __importDefault(require("chalk"));
9
9
  const ora_1 = __importDefault(require("ora"));
10
- const viem_1 = require("viem");
11
- const client_1 = require("../../client");
12
- const GameMaster_1 = __importDefault(require("../../../rankify/GameMaster"));
13
- exports.endTurn = new commander_1.Command("endTurn")
10
+ const client_1 = require("../../../client");
11
+ const GameMaster_1 = __importDefault(require("../../../../rankify/GameMaster"));
12
+ const utils_1 = require("../../../utils");
13
+ exports.endTurn = new commander_1.Command("end-turn")
14
14
  .description("End turn in a game")
15
- .argument("<instance>", "Address of the Rankify instance")
15
+ .argument("<instance>", "Address or instanceId of the Rankify instance")
16
16
  .argument("<game>", "Index of the game")
17
17
  .option("-r, --rpc <url>", "RPC endpoint URL. If not provided, RPC_URL environment variable will be used")
18
18
  .option("-k, --key <privateKey>", "Private key for signing transactions. If not provided, PRIVATE_KEY environment variable will be used")
@@ -28,7 +28,8 @@ exports.endTurn = new commander_1.Command("endTurn")
28
28
  chainId,
29
29
  });
30
30
  spinner.start("Ending turn...");
31
- const hash = await gameMaster.endTurn({ instanceAddress: (0, viem_1.getAddress)(instanceAddress), gameId: BigInt(gameId) });
31
+ const resolvedInstanceAddress = await utils_1.CLIUtils.resolveInstanceAddress(instanceAddress, chainId, publicClient, spinner);
32
+ const hash = await gameMaster.endTurn({ instanceAddress: resolvedInstanceAddress, gameId: BigInt(gameId) });
32
33
  const receipt = await publicClient.waitForTransactionReceipt({ hash });
33
34
  console.log(receipt);
34
35
  spinner.stop();
@@ -39,4 +40,4 @@ exports.endTurn = new commander_1.Command("endTurn")
39
40
  process.exit(1);
40
41
  }
41
42
  });
42
- //# sourceMappingURL=endTurn.js.map
43
+ //# sourceMappingURL=end-turn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"end-turn.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/fellowship/game/end-turn.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,4CAA6D;AAC7D,gFAAwD;AACxD,0CAA0C;AAE7B,QAAA,OAAO,GAAG,IAAI,mBAAO,CAAC,UAAU,CAAC;KAC3C,WAAW,CAAC,oBAAoB,CAAC;KACjC,QAAQ,CAAC,YAAY,EAAE,+CAA+C,CAAC;KACvE,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;KACvC,MAAM,CAAC,iBAAiB,EAAE,8EAA8E,CAAC;KACzG,MAAM,CACL,wBAAwB,EACxB,sGAAsG,CACvG;KACA,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IACjD,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QAExD,MAAM,UAAU,GAAG,IAAI,oBAAU,CAAC;YAChC,YAAY;YACZ,YAAY;YACZ,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAEhC,MAAM,uBAAuB,GAAG,MAAM,gBAAQ,CAAC,sBAAsB,CACnE,eAAe,EACf,OAAO,EACP,YAAY,EACZ,OAAO,CACR,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5G,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAClH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}