@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.
- package/cli/cli/commands/blockchain/index.js +9 -0
- package/cli/cli/commands/blockchain/index.js.map +1 -0
- package/cli/cli/commands/blockchain/mine.js +45 -0
- package/cli/cli/commands/blockchain/mine.js.map +1 -0
- package/cli/cli/commands/distributions/add.js +55 -31
- package/cli/cli/commands/distributions/add.js.map +1 -1
- package/cli/cli/commands/fellowship/create.js +96 -60
- package/cli/cli/commands/fellowship/create.js.map +1 -1
- package/cli/cli/commands/fellowship/game/cancel.js +45 -0
- package/cli/cli/commands/fellowship/game/cancel.js.map +1 -0
- package/cli/cli/commands/fellowship/game/create.js +91 -0
- package/cli/cli/commands/fellowship/game/create.js.map +1 -0
- package/cli/cli/commands/fellowship/{endTurn.js → game/end-turn.js} +8 -7
- package/cli/cli/commands/fellowship/game/end-turn.js.map +1 -0
- package/cli/cli/commands/fellowship/game/index.js +31 -0
- package/cli/cli/commands/fellowship/game/index.js.map +1 -0
- package/cli/cli/commands/fellowship/game/join.js +131 -0
- package/cli/cli/commands/fellowship/game/join.js.map +1 -0
- package/cli/cli/commands/fellowship/{games.js → game/list.js} +5 -5
- package/cli/cli/commands/fellowship/game/list.js.map +1 -0
- package/cli/cli/commands/fellowship/game/propose.js +178 -0
- package/cli/cli/commands/fellowship/game/propose.js.map +1 -0
- package/cli/cli/commands/fellowship/game/start.js +117 -0
- package/cli/cli/commands/fellowship/game/start.js.map +1 -0
- package/cli/cli/commands/fellowship/game/vote.js +114 -0
- package/cli/cli/commands/fellowship/game/vote.js.map +1 -0
- package/cli/cli/commands/fellowship/index.js +3 -5
- package/cli/cli/commands/fellowship/index.js.map +1 -1
- package/cli/cli/commands/getPk.js +48 -0
- package/cli/cli/commands/getPk.js.map +1 -0
- package/cli/cli/commands/playbook.js +92 -0
- package/cli/cli/commands/playbook.js.map +1 -0
- package/cli/cli/getPk.js +62 -0
- package/cli/cli/getPk.js.map +1 -0
- package/cli/cli/helpers.js +64 -0
- package/cli/cli/helpers.js.map +1 -0
- package/cli/cli/index.js +6 -0
- package/cli/cli/index.js.map +1 -1
- package/cli/cli/utils.js +64 -0
- package/cli/cli/utils.js.map +1 -0
- package/cli/rankify/GameMaster.js +199 -209
- package/cli/rankify/GameMaster.js.map +1 -1
- package/cli/rankify/InstanceBase.js +65 -40
- package/cli/rankify/InstanceBase.js.map +1 -1
- package/cli/rankify/MAODistributor.js +1 -1
- package/cli/rankify/MAODistributor.js.map +1 -1
- package/cli/rankify/Player.js +355 -0
- package/cli/rankify/Player.js.map +1 -0
- package/cli/utils/blockchain.js +62 -0
- package/cli/utils/blockchain.js.map +1 -0
- package/docs/classes/GameMaster.md +23 -63
- package/docs/classes/InstanceBase.md +22 -29
- package/docs/classes/InstancePlayer.md +26 -33
- package/docs/docs/classes/GameMaster.md +23 -63
- package/docs/docs/classes/InstanceBase.md +22 -29
- package/docs/docs/classes/InstancePlayer.md +26 -33
- package/docs/docs/index.md +1 -1
- package/docs/index.md +1 -1
- package/lib.commonjs/rankify/GameMaster.d.ts +26 -33
- package/lib.commonjs/rankify/GameMaster.d.ts.map +1 -1
- package/lib.commonjs/rankify/GameMaster.js +199 -209
- package/lib.commonjs/rankify/GameMaster.js.map +1 -1
- package/lib.commonjs/rankify/InstanceBase.d.ts +65 -51
- package/lib.commonjs/rankify/InstanceBase.d.ts.map +1 -1
- package/lib.commonjs/rankify/InstanceBase.js +65 -40
- package/lib.commonjs/rankify/InstanceBase.js.map +1 -1
- package/lib.commonjs/rankify/MAODistributor.d.ts.map +1 -1
- package/lib.commonjs/rankify/MAODistributor.js +1 -1
- package/lib.commonjs/rankify/MAODistributor.js.map +1 -1
- package/lib.commonjs/utils/blockchain.d.ts +32 -0
- package/lib.commonjs/utils/blockchain.d.ts.map +1 -0
- package/lib.commonjs/utils/blockchain.js +62 -0
- package/lib.commonjs/utils/blockchain.js.map +1 -0
- package/lib.esm/rankify/GameMaster.d.ts +26 -33
- package/lib.esm/rankify/GameMaster.d.ts.map +1 -1
- package/lib.esm/rankify/GameMaster.js +199 -209
- package/lib.esm/rankify/GameMaster.js.map +1 -1
- package/lib.esm/rankify/InstanceBase.d.ts +65 -51
- package/lib.esm/rankify/InstanceBase.d.ts.map +1 -1
- package/lib.esm/rankify/InstanceBase.js +65 -40
- package/lib.esm/rankify/InstanceBase.js.map +1 -1
- package/lib.esm/rankify/MAODistributor.d.ts.map +1 -1
- package/lib.esm/rankify/MAODistributor.js +1 -1
- package/lib.esm/rankify/MAODistributor.js.map +1 -1
- package/lib.esm/utils/blockchain.d.ts +32 -0
- package/lib.esm/utils/blockchain.d.ts.map +1 -0
- package/lib.esm/utils/blockchain.js +58 -0
- package/lib.esm/utils/blockchain.js.map +1 -0
- package/package.json +1 -1
- package/cli/cli/commands/fellowship/endTurn.js.map +0 -1
- 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
|
-
//
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
71
|
+
]);
|
|
72
|
+
name = response.name;
|
|
73
|
+
}
|
|
55
74
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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
|
-
|
|
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":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,oEAAuE;AACvE,yCAA0D;AAC1D,wDAAgC;AAChC,0CAA6C;
|
|
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("-
|
|
18
|
-
.option("-
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,wDAAgC;AAChC,8CAAsB;AAEtB,oEAAuE;AACvE,yCAA0D;AAC1D,8DAA0D;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../src/cli/commands/fellowship/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"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"}
|
|
@@ -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
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
exports.endTurn = new commander_1.Command("
|
|
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
|
|
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=
|
|
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"}
|