@typus/typus-sdk 1.2.5 → 1.2.7
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.
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"testnet": {
|
|
3
|
+
"0": [
|
|
4
|
+
93, 132, 146, 197, 57, 202, 76, 226, 113, 152, 138, 226, 107, 104, 160, 161, 76, 148, 232, 122, 45, 151, 104, 149, 96, 50, 66,
|
|
5
|
+
12, 153, 151, 173, 26
|
|
6
|
+
],
|
|
7
|
+
"1": [
|
|
8
|
+
9, 192, 158, 189, 157, 42, 3, 15, 174, 56, 107, 243, 2, 186, 181, 127, 168, 208, 174, 73, 95, 155, 102, 39, 31, 29, 70, 157, 66,
|
|
9
|
+
126, 157, 9
|
|
10
|
+
],
|
|
11
|
+
"2": [
|
|
12
|
+
26, 70, 126, 242, 209, 221, 124, 49, 182, 47, 139, 38, 110, 110, 123, 174, 162, 143, 227, 230, 73, 115, 21, 100, 254, 121, 20,
|
|
13
|
+
23, 148, 230, 29, 59
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"mainnet": {
|
|
17
|
+
"0": [
|
|
18
|
+
10, 47, 42, 168, 27, 251, 153, 127, 134, 85, 136, 209, 37, 228, 74, 46, 104, 58, 1, 149, 30, 190, 84, 96, 234, 105, 189, 195,
|
|
19
|
+
229, 31, 206, 77
|
|
20
|
+
],
|
|
21
|
+
"1": [
|
|
22
|
+
16, 130, 107, 16, 145, 19, 201, 184, 83, 11, 126, 138, 151, 199, 58, 126, 115, 143, 135, 238, 251, 9, 42, 15, 19, 115, 48, 36,
|
|
23
|
+
30, 242, 186, 182
|
|
24
|
+
],
|
|
25
|
+
"2": [
|
|
26
|
+
15, 140, 142, 72, 98, 166, 126, 59, 253, 238, 222, 186, 158, 182, 245, 3, 196, 134, 177, 150, 129, 185, 47, 20, 45, 148, 107,
|
|
27
|
+
133, 167, 216, 42, 246
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { SuiClient } from "@mysten/sui.js/client";
|
|
2
2
|
import { Tails } from "../typus-nft/fetch";
|
|
3
3
|
export declare function getUserStake(provider: SuiClient, nft_table: string, user: string): Promise<Tails | null>;
|
|
4
|
+
export declare function getDailyAttendExp(provider: SuiClient, dailyAttendExp: string): Promise<any>;
|
|
@@ -36,7 +36,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.getUserStake = void 0;
|
|
39
|
+
exports.getDailyAttendExp = exports.getUserStake = void 0;
|
|
40
40
|
var fetch_1 = require("../typus-nft/fetch");
|
|
41
41
|
function getUserStake(provider, nft_table, user) {
|
|
42
42
|
var _a;
|
|
@@ -64,3 +64,22 @@ function getUserStake(provider, nft_table, user) {
|
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
66
|
exports.getUserStake = getUserStake;
|
|
67
|
+
function getDailyAttendExp(provider, dailyAttendExp) {
|
|
68
|
+
var _a, _b;
|
|
69
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
70
|
+
var object, result;
|
|
71
|
+
return __generator(this, function (_c) {
|
|
72
|
+
switch (_c.label) {
|
|
73
|
+
case 0: return [4 /*yield*/, provider.getObject({
|
|
74
|
+
id: dailyAttendExp,
|
|
75
|
+
options: { showContent: true },
|
|
76
|
+
})];
|
|
77
|
+
case 1:
|
|
78
|
+
object = _c.sent();
|
|
79
|
+
result = (_b = (_a = object.data) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.fields.value;
|
|
80
|
+
return [2 /*return*/, result];
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
exports.getDailyAttendExp = getDailyAttendExp;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface DrawResult {
|
|
2
|
+
answer_1: string;
|
|
3
|
+
result_1: string;
|
|
4
|
+
answer_2: string;
|
|
5
|
+
result_2: string;
|
|
6
|
+
exp: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function simulateGame(network: "mainnet" | "testnet", packageId: string, registry: string, index: string, amount: string, guess_1: string, larger_than_1: boolean, guess_2: string, larger_than_2: boolean, vrf_input_1: Uint8Array, vrf_input_2: Uint8Array, sender?: string): Promise<DrawResult>;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.simulateGame = void 0;
|
|
43
|
+
var transactions_1 = require("@mysten/sui.js/transactions");
|
|
44
|
+
var client_1 = require("@mysten/sui.js/client");
|
|
45
|
+
var ed25519_1 = require("@mysten/sui.js/keypairs/ed25519");
|
|
46
|
+
var bcs_1 = require("@mysten/bcs");
|
|
47
|
+
var drawKeys_json_1 = __importDefault(require("../../drawKeys.json"));
|
|
48
|
+
var bls_signatures_1 = __importDefault(require("bls-signatures"));
|
|
49
|
+
var signer = ed25519_1.Ed25519Keypair.deriveKeypair(String(process.env.MNEMONIC));
|
|
50
|
+
var SENDER = signer.toSuiAddress();
|
|
51
|
+
function simulateGame(network, packageId, registry, index, amount, guess_1, larger_than_1, guess_2, larger_than_2, vrf_input_1, vrf_input_2, sender) {
|
|
52
|
+
if (sender === void 0) { sender = SENDER; }
|
|
53
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
54
|
+
var provider, transactionBlock, target, BLS, PRIVATE_KEY, draw_private_key, bls_signature_1, bls_signature_2, transactionBlockArguments, results, bytes, reader, answer_1, result_1, answer_2, result_2, exp, result;
|
|
55
|
+
return __generator(this, function (_a) {
|
|
56
|
+
switch (_a.label) {
|
|
57
|
+
case 0:
|
|
58
|
+
provider = new client_1.SuiClient({ url: (0, client_1.getFullnodeUrl)(network) });
|
|
59
|
+
transactionBlock = new transactions_1.TransactionBlock();
|
|
60
|
+
target = "".concat(packageId, "::tails_exp::simulate_game");
|
|
61
|
+
return [4 /*yield*/, (0, bls_signatures_1.default)()];
|
|
62
|
+
case 1:
|
|
63
|
+
BLS = _a.sent();
|
|
64
|
+
PRIVATE_KEY = Uint8Array.from(drawKeys_json_1.default[network][index]);
|
|
65
|
+
draw_private_key = BLS.PrivateKey.from_bytes(PRIVATE_KEY, true);
|
|
66
|
+
bls_signature_1 = BLS.BasicSchemeMPL.sign(draw_private_key, vrf_input_1).serialize();
|
|
67
|
+
bls_signature_2 = BLS.BasicSchemeMPL.sign(draw_private_key, vrf_input_2).serialize();
|
|
68
|
+
transactionBlockArguments = [
|
|
69
|
+
transactionBlock.object(registry),
|
|
70
|
+
transactionBlock.pure(index),
|
|
71
|
+
transactionBlock.pure(amount),
|
|
72
|
+
transactionBlock.pure(guess_1),
|
|
73
|
+
transactionBlock.pure(larger_than_1),
|
|
74
|
+
transactionBlock.pure(guess_2),
|
|
75
|
+
transactionBlock.pure(larger_than_2),
|
|
76
|
+
transactionBlock.pure(uint8ArrayToBCSStringArray(vrf_input_1)),
|
|
77
|
+
transactionBlock.pure(uint8ArrayToBCSStringArray(vrf_input_2)),
|
|
78
|
+
transactionBlock.pure(uint8ArrayToBCSStringArray(bls_signature_1)),
|
|
79
|
+
transactionBlock.pure(uint8ArrayToBCSStringArray(bls_signature_2)),
|
|
80
|
+
];
|
|
81
|
+
transactionBlock.moveCall({
|
|
82
|
+
target: target,
|
|
83
|
+
typeArguments: [],
|
|
84
|
+
arguments: transactionBlockArguments,
|
|
85
|
+
});
|
|
86
|
+
return [4 /*yield*/, provider.devInspectTransactionBlock({ transactionBlock: transactionBlock, sender: sender })];
|
|
87
|
+
case 2:
|
|
88
|
+
results = (_a.sent()).results;
|
|
89
|
+
bytes = results[results.length - 1].returnValues[0][0];
|
|
90
|
+
reader = new bcs_1.BcsReader(new Uint8Array(bytes));
|
|
91
|
+
// vector[
|
|
92
|
+
// answer_1,
|
|
93
|
+
// result_1,
|
|
94
|
+
// answer_2,
|
|
95
|
+
// result_2,
|
|
96
|
+
// exp
|
|
97
|
+
// ]
|
|
98
|
+
// skip vector length byte first
|
|
99
|
+
reader.read8();
|
|
100
|
+
answer_1 = reader.read64();
|
|
101
|
+
result_1 = reader.read64();
|
|
102
|
+
answer_2 = reader.read64();
|
|
103
|
+
result_2 = reader.read64();
|
|
104
|
+
exp = reader.read64();
|
|
105
|
+
result = {
|
|
106
|
+
answer_1: answer_1,
|
|
107
|
+
result_1: result_1,
|
|
108
|
+
answer_2: answer_2,
|
|
109
|
+
result_2: result_2,
|
|
110
|
+
exp: exp,
|
|
111
|
+
};
|
|
112
|
+
return [2 /*return*/, result];
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
exports.simulateGame = simulateGame;
|
|
118
|
+
function uint8ArrayToBCSStringArray(uint8Array) {
|
|
119
|
+
var result = [];
|
|
120
|
+
for (var i = 0; i < uint8Array.length; i++) {
|
|
121
|
+
// Assume each byte is a UTF-8 character
|
|
122
|
+
var character = String.fromCharCode(uint8Array[i]);
|
|
123
|
+
// Convert character to its BCS representation (you need to implement this part)
|
|
124
|
+
var bcsRepresentation = encodeToBCS(character);
|
|
125
|
+
// Add BCS representation to the result array
|
|
126
|
+
result.push(bcsRepresentation);
|
|
127
|
+
}
|
|
128
|
+
return result;
|
|
129
|
+
}
|
|
130
|
+
// Function to encode a character to its BCS representation
|
|
131
|
+
function encodeToBCS(character) {
|
|
132
|
+
// You need to implement this part based on BCS encoding rules
|
|
133
|
+
// This is a placeholder; the actual implementation depends on BCS specifications
|
|
134
|
+
return character.charCodeAt(0).toString();
|
|
135
|
+
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@typus/typus-sdk",
|
|
3
3
|
"author": "Typus",
|
|
4
4
|
"description": "typus sdk",
|
|
5
|
-
"version": "1.2.
|
|
5
|
+
"version": "1.2.7",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@mysten/bcs": "^0.7.3",
|
|
8
8
|
"@mysten/kiosk": "0.7.12",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"@types/node": "^20.5.7",
|
|
11
11
|
"aftermath-ts-sdk": "^1.1.14",
|
|
12
12
|
"bignumber.js": "^9.1.1",
|
|
13
|
+
"bls-signatures": "^2.0.2",
|
|
13
14
|
"bs58": "^5.0.0",
|
|
14
15
|
"builtin-modules": "^3.3.0",
|
|
15
16
|
"chai": "^4.3.7",
|