@kynesyslabs/demosdk 1.9.2 → 1.9.4
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/README.md +6 -0
- package/build/encryption/Cryptography.js +2 -40
- package/build/encryption/Cryptography.js.map +1 -1
- package/build/l2ps/L2PS.d.ts +2 -1
- package/build/l2ps/L2PS.js +10 -2
- package/build/l2ps/L2PS.js.map +1 -1
- package/build/types/blockchain/WalletTypes.d.ts +1 -1
- package/build/utils/dataManipulation.js +2 -9
- package/build/utils/dataManipulation.js.map +1 -1
- package/build/wallet/Wallet.js +14 -5
- package/build/wallet/Wallet.js.map +1 -1
- package/build/websdk/DemosTransactions.js +27 -7
- package/build/websdk/DemosTransactions.js.map +1 -1
- package/build/websdk/DemosWebAuth.js +1 -13
- package/build/websdk/DemosWebAuth.js.map +1 -1
- package/build/websdk/GCRGeneration.d.ts +36 -0
- package/build/websdk/GCRGeneration.js +143 -0
- package/build/websdk/GCRGeneration.js.map +1 -0
- package/build/websdk/index.d.ts +1 -0
- package/build/websdk/index.js +4 -1
- package/build/websdk/index.js.map +1 -1
- package/build/websdk/utils/forge_converter.js +6 -17
- package/build/websdk/utils/forge_converter.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -58,7 +58,6 @@ class Cryptography {
|
|
|
58
58
|
static new() {
|
|
59
59
|
const seed = node_forge_1.default.random.getBytesSync(32);
|
|
60
60
|
const keys = node_forge_1.default.pki.ed25519.generateKeyPair({ seed });
|
|
61
|
-
console.log("Generated new keypair");
|
|
62
61
|
return keys;
|
|
63
62
|
}
|
|
64
63
|
// INFO Method to generate a new key pair from a seed
|
|
@@ -78,7 +77,6 @@ class Cryptography {
|
|
|
78
77
|
}
|
|
79
78
|
// TODO Eliminate the old legacy compatibility
|
|
80
79
|
static async save(keypair, path, mode = "hex") {
|
|
81
|
-
console.log(keypair.privateKey);
|
|
82
80
|
if (mode === "hex") {
|
|
83
81
|
let hexPrivKey = Cryptography.saveToHex(keypair.privateKey);
|
|
84
82
|
await fs_1.promises.writeFile(path, hexPrivKey);
|
|
@@ -88,11 +86,8 @@ class Cryptography {
|
|
|
88
86
|
}
|
|
89
87
|
}
|
|
90
88
|
static saveToHex(forgeBuffer) {
|
|
91
|
-
console.log("[forge to string encoded]");
|
|
92
89
|
//console.log(forgeBuffer) // REVIEW if it is like this
|
|
93
90
|
let stringBuffer = forgeBuffer.toString("hex");
|
|
94
|
-
console.log("DECODED INTO:");
|
|
95
|
-
console.log("0x" + stringBuffer);
|
|
96
91
|
return "0x" + stringBuffer;
|
|
97
92
|
}
|
|
98
93
|
// SECTION Encrypted save and load
|
|
@@ -149,24 +144,15 @@ class Cryptography {
|
|
|
149
144
|
let keypair = { publicKey: null, privateKey: null };
|
|
150
145
|
content = content.slice(2);
|
|
151
146
|
let finalArray = new Uint8Array(64);
|
|
152
|
-
console.log("[string to forge encoded]");
|
|
153
|
-
console.log(content);
|
|
154
147
|
for (let i = 0; i < content.length; i += 2) {
|
|
155
148
|
const hexValue = content.substr(i, 2);
|
|
156
149
|
const decimalValue = parseInt(hexValue, 16);
|
|
157
150
|
finalArray[i / 2] = decimalValue;
|
|
158
151
|
}
|
|
159
|
-
console.log("ENCODED INTO:");
|
|
160
|
-
//console.log(finalArray)
|
|
161
|
-
// Condensing
|
|
162
|
-
console.log("That means:");
|
|
163
152
|
keypair.privateKey = Buffer.from(finalArray);
|
|
164
|
-
console.log(keypair.privateKey);
|
|
165
|
-
console.log("And the public key is:");
|
|
166
153
|
keypair.publicKey = node_forge_1.default.pki.ed25519.publicKeyFromPrivateKey({
|
|
167
154
|
privateKey: keypair.privateKey,
|
|
168
155
|
});
|
|
169
|
-
console.log(keypair.publicKey);
|
|
170
156
|
return keypair;
|
|
171
157
|
}
|
|
172
158
|
static loadFromBufferString(content) {
|
|
@@ -180,7 +166,6 @@ class Cryptography {
|
|
|
180
166
|
static sign(message, privateKey) {
|
|
181
167
|
// REVIEW Test HexToForge support
|
|
182
168
|
if (privateKey.type == "string") {
|
|
183
|
-
console.log("[HexToForge] Deriving a buffer from privateKey...");
|
|
184
169
|
privateKey = (0, dataManipulation_1.HexToForge)(privateKey);
|
|
185
170
|
}
|
|
186
171
|
return node_forge_1.default.pki.ed25519.sign({
|
|
@@ -192,28 +177,18 @@ class Cryptography {
|
|
|
192
177
|
static verify(signed, signature, publicKey) {
|
|
193
178
|
// REVIEW Test HexToForge support
|
|
194
179
|
if (signature.type == "string") {
|
|
195
|
-
console.log("[HexToForge] Deriving a buffer from signature...");
|
|
196
180
|
signature = (0, dataManipulation_1.HexToForge)(signature);
|
|
197
181
|
}
|
|
198
182
|
if (publicKey.type == "string") {
|
|
199
|
-
console.log("[HexToForge] Deriving a buffer from publicKey...");
|
|
200
183
|
publicKey = (0, dataManipulation_1.HexToForge)(publicKey);
|
|
201
184
|
}
|
|
202
185
|
// Also, we have to sanitize buffers so that they are forge compatible
|
|
203
186
|
if (signature.type == "Buffer") {
|
|
204
|
-
console.log("[*] Normalizing signature...");
|
|
205
|
-
console.log(typeof signature);
|
|
206
187
|
signature = Buffer.from(signature); // REVIEW Does not work in bun
|
|
207
188
|
}
|
|
208
189
|
if (publicKey.type == "Buffer") {
|
|
209
|
-
console.log("[*] Normalizing publicKey...");
|
|
210
190
|
publicKey = Buffer.from(publicKey); // REVIEW Does not work in bun
|
|
211
191
|
}
|
|
212
|
-
console.log("[*] Verifying the signature of: " + signed + "\n");
|
|
213
|
-
console.log("[*] Using the signature: ");
|
|
214
|
-
console.log(signature);
|
|
215
|
-
console.log("[*] And the public key: ");
|
|
216
|
-
console.log(publicKey);
|
|
217
192
|
return node_forge_1.default.pki.ed25519.verify({
|
|
218
193
|
message: signed,
|
|
219
194
|
encoding: "utf8",
|
|
@@ -239,28 +214,18 @@ Cryptography.ed25519 = {
|
|
|
239
214
|
verify: (signed, signature, publicKey) => {
|
|
240
215
|
// REVIEW Test HexToForge support
|
|
241
216
|
if (signature.type == "string") {
|
|
242
|
-
console.log("[HexToForge] Deriving a buffer from signature...");
|
|
243
217
|
signature = (0, dataManipulation_1.HexToForge)(signature);
|
|
244
218
|
}
|
|
245
219
|
if (publicKey.type == "string") {
|
|
246
|
-
console.log("[HexToForge] Deriving a buffer from publicKey...");
|
|
247
220
|
publicKey = (0, dataManipulation_1.HexToForge)(publicKey);
|
|
248
221
|
}
|
|
249
222
|
// Also, we have to sanitize buffers so that they are forge compatible
|
|
250
223
|
if (signature.type == "Buffer") {
|
|
251
|
-
console.log("[*] Normalizing signature...");
|
|
252
|
-
console.log(typeof signature);
|
|
253
224
|
signature = Buffer.from(signature); // REVIEW Does not work in bun
|
|
254
225
|
}
|
|
255
226
|
if (publicKey.type == "Buffer") {
|
|
256
|
-
console.log("[*] Normalizing publicKey...");
|
|
257
227
|
publicKey = Buffer.from(publicKey); // REVIEW Does not work in bun
|
|
258
228
|
}
|
|
259
|
-
console.log("[*] Verifying the signature of: " + signed + "\n");
|
|
260
|
-
console.log("[*] Using the signature: ");
|
|
261
|
-
console.log(signature);
|
|
262
|
-
console.log("[*] And the public key: ");
|
|
263
|
-
console.log(publicKey);
|
|
264
229
|
return node_forge_1.default.pki.ed25519.verify({
|
|
265
230
|
message: signed,
|
|
266
231
|
encoding: "utf8",
|
|
@@ -274,7 +239,6 @@ Cryptography.rsa = {
|
|
|
274
239
|
encrypt: (message, publicKey) => {
|
|
275
240
|
// NOTE Supporting "fake buffers" from web browsers
|
|
276
241
|
if (publicKey.type == "Buffer") {
|
|
277
|
-
console.log("[ENCRYPTION] Normalizing publicKey...");
|
|
278
242
|
publicKey = Buffer.from(publicKey);
|
|
279
243
|
}
|
|
280
244
|
// Converting the message and decrypting it
|
|
@@ -287,18 +251,16 @@ Cryptography.rsa = {
|
|
|
287
251
|
// NOTE Supporting "fake buffers" from web browsers
|
|
288
252
|
try {
|
|
289
253
|
if (privateKey.type == "Buffer") {
|
|
290
|
-
console.log("[DECRYPTION] Normalizing privateKey...\n");
|
|
291
254
|
privateKey = Buffer.from(privateKey);
|
|
292
255
|
}
|
|
293
256
|
}
|
|
294
257
|
catch (e) {
|
|
295
|
-
console.
|
|
296
|
-
console.
|
|
258
|
+
console.error("[DECRYPTION] Looks like there is nothing to normalize here, let's proceed\n");
|
|
259
|
+
console.error(e);
|
|
297
260
|
}
|
|
298
261
|
// Converting back the message and decrypting it
|
|
299
262
|
// NOTE If no private key is provided, we try to use our one
|
|
300
263
|
if (!privateKey) {
|
|
301
|
-
console.log("[DECRYPTION] No private key provided!\n");
|
|
302
264
|
return [false, "No private key found"];
|
|
303
265
|
}
|
|
304
266
|
let debased = node_forge_1.default.util.decode64(message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cryptography.js","sourceRoot":"","sources":["../../../src/encryption/Cryptography.ts"],"names":[],"mappings":";AAAA;;;;;;;;;EASE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,+CAAgC;AAChC,2BAAmC;AACnC,4DAA8B;AAE9B,oDAAqC;AACrC,+DAAqD;AACrD,uCAAmC;AAEnC,MAAM,SAAS,GAAG,aAAa,CAAA;AAE/B,MAAa,YAAY;IACrB,MAAM,CAAC,GAAG;QACN,MAAM,IAAI,GAAG,oBAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAC1C,MAAM,IAAI,GAAG,oBAAK,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"Cryptography.js","sourceRoot":"","sources":["../../../src/encryption/Cryptography.ts"],"names":[],"mappings":"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"}
|
package/build/l2ps/L2PS.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as forge from "node-forge";
|
|
|
2
2
|
import { EncryptedTransaction } from "../types/blockchain/encryptedTransaction";
|
|
3
3
|
import { Transaction } from "../types";
|
|
4
4
|
import { Message, MessageMap } from "./L2PSMessagingSystem";
|
|
5
|
+
import { IKeyPair } from "../websdk/types/KeyPair";
|
|
5
6
|
export interface SubnetPayload {
|
|
6
7
|
type: "subnet";
|
|
7
8
|
uid: string;
|
|
@@ -29,5 +30,5 @@ export default class L2PS {
|
|
|
29
30
|
export declare class l2psCalls {
|
|
30
31
|
static retrieve(eTxHash: string, L2PSId: string): Promise<EncryptedTransaction>;
|
|
31
32
|
static retrieveAll(L2PSId: string, blockNumber: number): Promise<EncryptedTransaction[]>;
|
|
32
|
-
static prepare(tx: Transaction, subnet: L2PS): Promise<
|
|
33
|
+
static prepare(tx: Transaction, subnet: L2PS, keypair: IKeyPair): Promise<Transaction>;
|
|
33
34
|
}
|
package/build/l2ps/L2PS.js
CHANGED
|
@@ -158,15 +158,23 @@ class l2psCalls {
|
|
|
158
158
|
'retrieveAll');
|
|
159
159
|
}
|
|
160
160
|
// Takes a Transaction and give back a SubnetPayload ready to be sent in a subnet Transaction
|
|
161
|
-
static async prepare(tx, subnet) {
|
|
161
|
+
static async prepare(tx, subnet, keypair) {
|
|
162
162
|
let eTxHash = await subnet.registerTx(tx);
|
|
163
163
|
let eTx = await subnet.getEncryptedTransaction(eTxHash);
|
|
164
|
+
// Creating the payload
|
|
164
165
|
let payload = {
|
|
165
166
|
type: "subnet",
|
|
166
167
|
uid: (0, dataManipulation_1.ForgeToHex)(subnet.uid), // REVIEW Is this the correct way to convert the public key to string?
|
|
167
168
|
data: eTx,
|
|
168
169
|
};
|
|
169
|
-
|
|
170
|
+
// Creating the subnet transaction
|
|
171
|
+
let subnetTx = websdk_1.DemosTransactions.empty();
|
|
172
|
+
// ? From and To are the same in Subnet transactions (or should we use the subnet's uid somehow?)
|
|
173
|
+
subnetTx.content.from = keypair.publicKey;
|
|
174
|
+
subnetTx.content.to = subnetTx.content.from;
|
|
175
|
+
subnetTx.content.type = "subnet";
|
|
176
|
+
subnetTx.content.data = ["subnet", payload];
|
|
177
|
+
return subnetTx;
|
|
170
178
|
}
|
|
171
179
|
}
|
|
172
180
|
exports.l2psCalls = l2psCalls;
|
package/build/l2ps/L2PS.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"L2PS.js","sourceRoot":"","sources":["../../../src/l2ps/L2PS.ts"],"names":[],"mappings":";AAAA,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEtC,kDAAmC;AAInC,6CAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"L2PS.js","sourceRoot":"","sources":["../../../src/l2ps/L2PS.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,20 +6,16 @@ exports.ForgeToHex = ForgeToHex;
|
|
|
6
6
|
exports.HexToForge = HexToForge;
|
|
7
7
|
exports.copyCreate = copyCreate;
|
|
8
8
|
async function ObjectToHex(obj) {
|
|
9
|
-
return Buffer.from(JSON.stringify(obj)).toString(
|
|
9
|
+
return Buffer.from(JSON.stringify(obj)).toString("hex");
|
|
10
10
|
}
|
|
11
11
|
async function HexToObject(hex) {
|
|
12
|
-
return JSON.parse(Buffer.from(hex,
|
|
12
|
+
return JSON.parse(Buffer.from(hex, "hex").toString("utf8"));
|
|
13
13
|
}
|
|
14
14
|
/* REVIEW Could we possibly ditch the below functions? */
|
|
15
15
|
// INFO forgeBuffer comes in as the raw result of forge methods
|
|
16
16
|
function ForgeToHex(forgeBuffer) {
|
|
17
|
-
console.log("[forge to string encoded]");
|
|
18
|
-
//console.log(forgeBuffer)
|
|
19
17
|
let rebuffer = Buffer.from(forgeBuffer);
|
|
20
18
|
forgeBuffer = rebuffer.toString("hex");
|
|
21
|
-
console.log("DECODED INTO:");
|
|
22
|
-
console.log("0x" + forgeBuffer);
|
|
23
19
|
return "0x" + forgeBuffer;
|
|
24
20
|
}
|
|
25
21
|
// INFO finalArray must come out as an acceptable input for forge methods
|
|
@@ -27,15 +23,12 @@ function ForgeToHex(forgeBuffer) {
|
|
|
27
23
|
function HexToForge(forgeString) {
|
|
28
24
|
forgeString = forgeString.slice(2);
|
|
29
25
|
let finalArray = new Uint8Array(64);
|
|
30
|
-
console.log("[string to forge encoded]");
|
|
31
26
|
//console.log(forgeString)
|
|
32
27
|
for (let i = 0; i < forgeString.length; i += 2) {
|
|
33
28
|
const hexValue = forgeString.substr(i, 2);
|
|
34
29
|
const decimalValue = parseInt(hexValue, 16);
|
|
35
30
|
finalArray[i / 2] = decimalValue;
|
|
36
31
|
}
|
|
37
|
-
console.log("ENCODED INTO:");
|
|
38
|
-
//console.log(finalArray)
|
|
39
32
|
return finalArray;
|
|
40
33
|
}
|
|
41
34
|
function copyCreate(obj) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataManipulation.js","sourceRoot":"","sources":["../../../src/utils/dataManipulation.ts"],"names":[],"mappings":";;AAAA,kCAEC;AAED,kCAEC;AAKD,
|
|
1
|
+
{"version":3,"file":"dataManipulation.js","sourceRoot":"","sources":["../../../src/utils/dataManipulation.ts"],"names":[],"mappings":";;AAAA,kCAEC;AAED,kCAEC;AAKD,gCAIC;AAID,gCAUC;AAED,gCAEC;AAjCM,KAAK,UAAU,WAAW,CAAC,GAAQ;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC3D,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,GAAW;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED,yDAAyD;AAEzD,+DAA+D;AAC/D,SAAgB,UAAU,CAAC,WAAgB;IACvC,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACvC,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACtC,OAAO,IAAI,GAAG,WAAW,CAAA;AAC7B,CAAC;AAED,yEAAyE;AACzE,kEAAkE;AAClE,SAAgB,UAAU,CAAC,WAAmB;IAC1C,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClC,IAAI,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IACnC,0BAA0B;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACzC,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC3C,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAA;IACpC,CAAC;IACD,OAAO,UAAU,CAAA;AACrB,CAAC;AAED,SAAgB,UAAU,CAAC,GAAQ;IAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;AAC1C,CAAC"}
|
package/build/wallet/Wallet.js
CHANGED
|
@@ -87,13 +87,20 @@ class Wallet {
|
|
|
87
87
|
async transfer(to, amount, keypair) {
|
|
88
88
|
let tx = websdk_1.DemosTransactions.empty();
|
|
89
89
|
// Putting the right data in the transaction
|
|
90
|
-
tx.content.from =
|
|
91
|
-
tx.content.to = to
|
|
92
|
-
tx.content.
|
|
90
|
+
tx.content.from = keypair.publicKey.toString("hex");
|
|
91
|
+
// tx.content.to = to
|
|
92
|
+
tx.content.type = "native";
|
|
93
|
+
tx.content.data = [
|
|
94
|
+
"native",
|
|
95
|
+
{
|
|
96
|
+
nativeOperation: "send",
|
|
97
|
+
args: [to, amount],
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
// tx.content.amount = amount
|
|
93
101
|
tx = await websdk_1.DemosTransactions.sign(tx, keypair);
|
|
94
102
|
// Sending the transaction and getting the validity data
|
|
95
|
-
|
|
96
|
-
return validity;
|
|
103
|
+
return await websdk_1.DemosTransactions.confirm(tx);
|
|
97
104
|
}
|
|
98
105
|
// TODO Implement other methods too
|
|
99
106
|
// NOTE This is a quick wrapper to avoid having to write the same code over and over again
|
|
@@ -106,5 +113,7 @@ class Wallet {
|
|
|
106
113
|
return await passkeyGenerator.generate();
|
|
107
114
|
}
|
|
108
115
|
}
|
|
116
|
+
// A wallet class is a singleton class, so we need to make sure that only one instance per id is created.
|
|
117
|
+
Wallet.instances = {};
|
|
109
118
|
exports.default = Wallet;
|
|
110
119
|
//# sourceMappingURL=Wallet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wallet.js","sourceRoot":"","sources":["../../../src/wallet/Wallet.ts"],"names":[],"mappings":";AAAA,6FAA6F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE7F,4DAAwD;AAGxD,iDAAkC;AAClC,qCAA4C;AAE5C,kDAAsD;AAGtD,MAAqB,MAAM;IAgBvB;QACI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;IACnB,CAAC;IAED,wEAAwE;IACjE,MAAM,CAAC,WAAW,CAAC,IAAY;QAClC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,EAAE,CAAA;QACzC,CAAC;QACD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,4BAA4B;IAC5B,KAAK,CAAC,MAAM;QACR,IAAI,CAAC,OAAO,GAAG,2BAAY,CAAC,GAAG,EAAE,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG;YACf,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1D,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC3D,CAAA;IACL,CAAC;IAED,mCAAmC;IAEnC,KAAK,CAAC,WAAW,CAAC,UAAmB;QACjC,IAAI,CAAC,OAAO,GAAG,MAAM,2BAAY,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACzD,IAAI,CAAC,WAAW,GAAG;YACf,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1D,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC3D,CAAA;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,2BAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACtD,IAAI,CAAC,WAAW,GAAG;YACf,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1D,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC3D,CAAA;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB;QACvB,MAAM,2BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACnD,CAAC;IAED,uBAAuB;IAEvB,KAAK,CAAC,UAAU;QACZ,IAAI,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QACxE,0CAA0C;QAC1C,6BAA6B;IACjC,CAAC;IAED,0BAA0B;IAC1B,0FAA0F;IAE1F,KAAK,CAAC,QAAQ,CAAC,EAAW,EAAE,MAAc,EAAE,OAAiB;QACzD,IAAI,EAAE,GAAG,0BAAiB,CAAC,KAAK,EAAE,CAAA;QAClC,4CAA4C;QAC5C,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"Wallet.js","sourceRoot":"","sources":["../../../src/wallet/Wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,7 @@ const demos_1 = require("./demos");
|
|
|
42
42
|
const sha256_1 = require("./utils/sha256");
|
|
43
43
|
const skeletons = __importStar(require("./utils/skeletons"));
|
|
44
44
|
const required_1 = require("./utils/required");
|
|
45
|
+
const GCRGeneration_1 = require("./GCRGeneration");
|
|
45
46
|
exports.DemosTransactions = {
|
|
46
47
|
// REVIEW All this part
|
|
47
48
|
// NOTE A courtesy to get a skeleton of transactions
|
|
@@ -52,6 +53,8 @@ exports.DemosTransactions = {
|
|
|
52
53
|
prepare: async function (data = null) {
|
|
53
54
|
// sourcery skip: inline-immediately-returned-variable
|
|
54
55
|
const thisTx = structuredClone(skeletons.transaction);
|
|
56
|
+
// TODO Generate the GCREdit in the client (will be compared on the node)
|
|
57
|
+
thisTx.content.gcr_edits = await GCRGeneration_1.GCRGeneration.generate(thisTx);
|
|
55
58
|
// if (!data.timestamp) data.timestamp = Date.now()
|
|
56
59
|
// Assigning the transaction data to our object
|
|
57
60
|
if (data)
|
|
@@ -90,22 +93,39 @@ exports.DemosTransactions = {
|
|
|
90
93
|
signature: signatureData,
|
|
91
94
|
publicKey: keypair.publicKey,
|
|
92
95
|
});
|
|
93
|
-
|
|
96
|
+
if (!verified) {
|
|
97
|
+
throw new Error("Signature verification failed");
|
|
98
|
+
}
|
|
94
99
|
return raw_tx; // Return the hashed and signed transaction
|
|
95
100
|
},
|
|
96
101
|
// NOTE Sending a transaction after signing it
|
|
97
102
|
confirm: async function (transaction) {
|
|
98
|
-
|
|
103
|
+
let response = await demos_1.demos.call("execute", "", transaction, "confirmTx");
|
|
104
|
+
// If the tx is not valid, we notify the user
|
|
105
|
+
if (!response.response.data.valid) {
|
|
106
|
+
throw new Error("[Confirm] Transaction is not valid: " + response.response.data.message);
|
|
107
|
+
}
|
|
108
|
+
return response;
|
|
99
109
|
},
|
|
100
110
|
broadcast: async function (validationData, keypair) {
|
|
111
|
+
// If the tx is not valid, we don't broadcast it
|
|
112
|
+
if (!validationData.response.data.valid) {
|
|
113
|
+
throw new Error("[Broadcast] Transaction is not valid: " + validationData.response.data.message);
|
|
114
|
+
}
|
|
101
115
|
// REVIEW Resign the Transaction hash as it has been recalculated in the node
|
|
102
|
-
|
|
103
|
-
let
|
|
104
|
-
let signedTx = await exports.DemosTransactions.sign(tx, keypair);
|
|
116
|
+
//let tx = validationData.response.data.transaction
|
|
117
|
+
//let signedTx = await DemosTransactions.sign(tx, keypair)
|
|
105
118
|
// Add the signature to the validityData
|
|
106
|
-
|
|
119
|
+
// ! Problem: we are tampering the ValidityData, so the tx will fail miserably (see validateTransaction.ts -> signValidityData)
|
|
120
|
+
// See prepare(data) for a possible solution
|
|
121
|
+
//validationData.response.data.transaction = signedTx
|
|
107
122
|
let response = await demos_1.demos.call("execute", "", validationData, "broadcastTx");
|
|
108
|
-
|
|
123
|
+
try {
|
|
124
|
+
return JSON.parse(response);
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
return response;
|
|
128
|
+
}
|
|
109
129
|
},
|
|
110
130
|
// NOTE Subnet transactions methods are imported and exposed in demos.ts from the l2ps.ts file.
|
|
111
131
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DemosTransactions.js","sourceRoot":"","sources":["../../../src/websdk/DemosTransactions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA8B;AAE9B,mCAA+B;AAC/B,2CAAuC;AACvC,6DAA8C;AAK9C,+CAAwD;
|
|
1
|
+
{"version":3,"file":"DemosTransactions.js","sourceRoot":"","sources":["../../../src/websdk/DemosTransactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,8 +73,6 @@ class DemosWebAuth {
|
|
|
73
73
|
if (!seed) {
|
|
74
74
|
seed = node_forge_1.default.random.getBytesSync(32);
|
|
75
75
|
}
|
|
76
|
-
console.log("[CREATE WALLET] Creating wallet...");
|
|
77
|
-
console.log("[CREATE WALLET] Seed: " + seed);
|
|
78
76
|
let result = [true, {}];
|
|
79
77
|
try {
|
|
80
78
|
this.keypair = {
|
|
@@ -82,17 +80,13 @@ class DemosWebAuth {
|
|
|
82
80
|
publicKey: null,
|
|
83
81
|
};
|
|
84
82
|
this.keypair = node_forge_1.default.pki.ed25519.generateKeyPair({ seed });
|
|
85
|
-
console.log(this.keypair);
|
|
86
83
|
this.loggedIn = true;
|
|
87
|
-
console.log("[CREATE WALLET] Keypair created!");
|
|
88
84
|
// Stringify the keypair
|
|
89
|
-
console.log("[CREATE WALLET] Stringifying keypair...");
|
|
90
85
|
this.stringified_keypair = {
|
|
91
86
|
privateKey: forge_converter.forgeToString(this.keypair.privateKey),
|
|
92
87
|
publicKey: forge_converter.forgeToString(this.keypair.publicKey),
|
|
93
88
|
};
|
|
94
89
|
result = [true, this.stringified_keypair];
|
|
95
|
-
console.log(this.stringified_keypair);
|
|
96
90
|
}
|
|
97
91
|
catch (e) {
|
|
98
92
|
// @ts-expect-error
|
|
@@ -111,7 +105,6 @@ class DemosWebAuth {
|
|
|
111
105
|
// NOTE We just have to accept valid private keys and derive the public key from them
|
|
112
106
|
async login(privKey) {
|
|
113
107
|
if (typeof privKey === "string") {
|
|
114
|
-
console.log("[LOGIN] Converting private key from string...");
|
|
115
108
|
// REVIEW: Should we do this?
|
|
116
109
|
if (!privKey.startsWith("0x")) {
|
|
117
110
|
privKey = "0x" + privKey;
|
|
@@ -120,10 +113,7 @@ class DemosWebAuth {
|
|
|
120
113
|
if (!privKey) {
|
|
121
114
|
return [false, "Cannot convert private key from that string!"];
|
|
122
115
|
}
|
|
123
|
-
console.log(privKey);
|
|
124
|
-
console.log("[LOGIN] Private key converted!");
|
|
125
116
|
}
|
|
126
|
-
console.log("[LOGIN WALLET] Logging in...");
|
|
127
117
|
if (!(0, required_1.required)(privKey, false)) {
|
|
128
118
|
return [false, "You need to provide a private key!"];
|
|
129
119
|
}
|
|
@@ -137,7 +127,6 @@ class DemosWebAuth {
|
|
|
137
127
|
};
|
|
138
128
|
// Logging in avoiding crashes on wrong private keys
|
|
139
129
|
try {
|
|
140
|
-
console.log("[LOGIN WALLET] Deriving public key from private key...");
|
|
141
130
|
this.keypair.publicKey = node_forge_1.default.pki.ed25519.publicKeyFromPrivateKey({
|
|
142
131
|
privateKey: privKey,
|
|
143
132
|
});
|
|
@@ -149,7 +138,7 @@ class DemosWebAuth {
|
|
|
149
138
|
return [true, "Successfully logged in!"];
|
|
150
139
|
}
|
|
151
140
|
catch (e) {
|
|
152
|
-
console.
|
|
141
|
+
console.error(e);
|
|
153
142
|
return [false, "[LOGIN ERROR] Cannot derive publicKey!"];
|
|
154
143
|
}
|
|
155
144
|
}
|
|
@@ -172,7 +161,6 @@ class DemosWebAuth {
|
|
|
172
161
|
}
|
|
173
162
|
// If needed, we derive the keys from the strings
|
|
174
163
|
if (!this.keypair) {
|
|
175
|
-
console.log("[SIGN WALLET] Deriving buffer keys from strings...");
|
|
176
164
|
this.keypair = {
|
|
177
165
|
privateKey: forge_converter.stringToForge(this.stringified_keypair?.privateKey),
|
|
178
166
|
publicKey: forge_converter.stringToForge(this.stringified_keypair?.publicKey),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DemosWebAuth.js","sourceRoot":"","sources":["../../../src/websdk/DemosWebAuth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAmC;AACnC,aAAa;AACb,4DAA8B;AAC9B,+CAA2C;AAC3C,yEAA0D;AAC1D,+BAA2B;AAE3B,4DAAwD;AAExD,+DAA+D;AAE/D,6EAA6E;AAC7E,kHAAkH;AAClH,MAAa,YAAY;IAMrB;QAJA,aAAQ,GAAG,KAAK,CAAA;QAChB,YAAO,GAAoB,IAAI,CAAA;QAC/B,wBAAmB,GAA+B,IAAI,CAAA;QAGlD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;IACnC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,WAAW;QACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,EAAE,CAAA;QACvC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE;QAClB,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,IAAI,GAAG,oBAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACxC,CAAC;QACD,
|
|
1
|
+
{"version":3,"file":"DemosWebAuth.js","sourceRoot":"","sources":["../../../src/websdk/DemosWebAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { GCREdit } from "../types/blockchain/GCREdit";
|
|
2
|
+
import { Transaction } from "../types/blockchain/Transaction";
|
|
3
|
+
/**
|
|
4
|
+
* This class is responsible for generating the GCREdit for a transaction and is used
|
|
5
|
+
* both in the client and the node.
|
|
6
|
+
* Note that the node will be responsible for checking if the gas can be paid.
|
|
7
|
+
*/
|
|
8
|
+
export declare class GCRGeneration {
|
|
9
|
+
static generate(tx: Transaction, isRollback?: boolean): Promise<GCREdit[]>;
|
|
10
|
+
static createGasEdit(account: string, txHash: string, isRollback?: boolean): Promise<GCREdit>;
|
|
11
|
+
/**
|
|
12
|
+
* Creates an assignment edit for web2 requests and crosschain operations
|
|
13
|
+
* @param content Transaction content containing type and sender information
|
|
14
|
+
* @param txHash Transaction hash for verification
|
|
15
|
+
* @param isRollback Whether the operation is a rollback
|
|
16
|
+
* @returns GCREdit object for assignment operations
|
|
17
|
+
*/
|
|
18
|
+
private static createAssignEdit;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a nonce increment edit for the given account
|
|
21
|
+
* @param account The account address to increment nonce for
|
|
22
|
+
* @param txHash Transaction hash for verification
|
|
23
|
+
* @param isRollback Whether the operation is a rollback
|
|
24
|
+
* @returns GCREdit object for nonce increment
|
|
25
|
+
*/
|
|
26
|
+
private static createNonceEdit;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* This class is responsible for handling native operations when generating the GCREdit
|
|
30
|
+
* for a transaction.
|
|
31
|
+
* While it could be implemented in the GCRGeneration class, it is separated to
|
|
32
|
+
* make the GCRGeneration class cleaner and to allow for more flexibility in the future.
|
|
33
|
+
*/
|
|
34
|
+
export declare class HandleNativeOperations {
|
|
35
|
+
static handle(tx: Transaction, isRollback?: boolean): Promise<GCREdit[]>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HandleNativeOperations = exports.GCRGeneration = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* This class is responsible for generating the GCREdit for a transaction and is used
|
|
6
|
+
* both in the client and the node.
|
|
7
|
+
* Note that the node will be responsible for checking if the gas can be paid.
|
|
8
|
+
*/
|
|
9
|
+
class GCRGeneration {
|
|
10
|
+
static async generate(tx, isRollback = false) {
|
|
11
|
+
const gcrEdits = [];
|
|
12
|
+
const { content } = tx;
|
|
13
|
+
// Handle main transaction edits
|
|
14
|
+
switch (content.type) {
|
|
15
|
+
case "demoswork":
|
|
16
|
+
// TODO Implement this
|
|
17
|
+
break;
|
|
18
|
+
case "native":
|
|
19
|
+
var nativeEdits = await HandleNativeOperations.handle(tx, isRollback);
|
|
20
|
+
gcrEdits.push(...nativeEdits);
|
|
21
|
+
break;
|
|
22
|
+
case "web2Request":
|
|
23
|
+
case "crosschainOperation":
|
|
24
|
+
gcrEdits.push(this.createAssignEdit(content, tx.hash));
|
|
25
|
+
break;
|
|
26
|
+
case "genesis":
|
|
27
|
+
// TODO Implement this
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
// SECTION Operations valid for all tx types
|
|
31
|
+
// Add gas operation edit with check for availability of gas amount in the sender's balance
|
|
32
|
+
try {
|
|
33
|
+
let gasEdit = await this.createGasEdit(content.from, tx.hash);
|
|
34
|
+
gcrEdits.push(gasEdit);
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
console.log("[generate] Error creating gas edit: " + e);
|
|
38
|
+
throw new Error("Error creating gas edit: " + e);
|
|
39
|
+
}
|
|
40
|
+
// Add nonce increment edit
|
|
41
|
+
gcrEdits.push(this.createNonceEdit(content.from, tx.hash));
|
|
42
|
+
return gcrEdits;
|
|
43
|
+
}
|
|
44
|
+
static async createGasEdit(account, txHash, isRollback = false) {
|
|
45
|
+
var gasAmount = 1; // TODO Implement gas calculation to reach 1 cent per tx
|
|
46
|
+
// Checking if the gas can be paid is done in the node
|
|
47
|
+
return {
|
|
48
|
+
type: "balance",
|
|
49
|
+
account,
|
|
50
|
+
operation: isRollback ? "add" : "remove",
|
|
51
|
+
amount: gasAmount,
|
|
52
|
+
txhash: txHash,
|
|
53
|
+
isRollback,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates an assignment edit for web2 requests and crosschain operations
|
|
58
|
+
* @param content Transaction content containing type and sender information
|
|
59
|
+
* @param txHash Transaction hash for verification
|
|
60
|
+
* @param isRollback Whether the operation is a rollback
|
|
61
|
+
* @returns GCREdit object for assignment operations
|
|
62
|
+
*/
|
|
63
|
+
static createAssignEdit(content, txHash, isRollback = false) {
|
|
64
|
+
return {
|
|
65
|
+
type: "assign",
|
|
66
|
+
account: content.from,
|
|
67
|
+
context: content.type === "web2Request" ? "web2" : "xm",
|
|
68
|
+
txhash: txHash,
|
|
69
|
+
isRollback,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Creates a nonce increment edit for the given account
|
|
74
|
+
* @param account The account address to increment nonce for
|
|
75
|
+
* @param txHash Transaction hash for verification
|
|
76
|
+
* @param isRollback Whether the operation is a rollback
|
|
77
|
+
* @returns GCREdit object for nonce increment
|
|
78
|
+
*/
|
|
79
|
+
static createNonceEdit(account, txHash, isRollback = false) {
|
|
80
|
+
return {
|
|
81
|
+
type: "nonce",
|
|
82
|
+
operation: "add",
|
|
83
|
+
account,
|
|
84
|
+
amount: 1,
|
|
85
|
+
txhash: txHash,
|
|
86
|
+
isRollback,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.GCRGeneration = GCRGeneration;
|
|
91
|
+
/**
|
|
92
|
+
* This class is responsible for handling native operations when generating the GCREdit
|
|
93
|
+
* for a transaction.
|
|
94
|
+
* While it could be implemented in the GCRGeneration class, it is separated to
|
|
95
|
+
* make the GCRGeneration class cleaner and to allow for more flexibility in the future.
|
|
96
|
+
*/
|
|
97
|
+
class HandleNativeOperations {
|
|
98
|
+
static async handle(tx, isRollback = false) {
|
|
99
|
+
// TODO Implement this
|
|
100
|
+
let edits = [];
|
|
101
|
+
console.log("handleNativeOperations: ", tx.content.type);
|
|
102
|
+
let nativePayloadData = tx.content.data; // ? Is this typization correct and safe?
|
|
103
|
+
let nativePayload = nativePayloadData[1];
|
|
104
|
+
console.log("nativePayload: ", nativePayload);
|
|
105
|
+
console.log("nativeOperation: ", nativePayload.nativeOperation);
|
|
106
|
+
// Switching on the native operation type
|
|
107
|
+
switch (nativePayload.nativeOperation) {
|
|
108
|
+
// Balance operations for the send native method
|
|
109
|
+
case "send":
|
|
110
|
+
var [to, amount] = nativePayload.args;
|
|
111
|
+
// First, remove the amount from the sender's balance
|
|
112
|
+
console.log("to: ", to);
|
|
113
|
+
console.log("amount: ", amount);
|
|
114
|
+
var subtractEdit = {
|
|
115
|
+
type: "balance",
|
|
116
|
+
operation: "remove",
|
|
117
|
+
isRollback: isRollback,
|
|
118
|
+
account: tx.content.from, // ? Check and enforce string type as tx.content.from
|
|
119
|
+
txhash: tx.hash,
|
|
120
|
+
amount: amount,
|
|
121
|
+
};
|
|
122
|
+
edits.push(subtractEdit);
|
|
123
|
+
// Then, add the amount to the receiver's balance
|
|
124
|
+
var addEdit = {
|
|
125
|
+
type: "balance",
|
|
126
|
+
operation: "add",
|
|
127
|
+
isRollback: isRollback,
|
|
128
|
+
account: to,
|
|
129
|
+
txhash: tx.hash,
|
|
130
|
+
amount: amount,
|
|
131
|
+
};
|
|
132
|
+
edits.push(addEdit);
|
|
133
|
+
break;
|
|
134
|
+
default:
|
|
135
|
+
console.log("Unknown native operation: ", nativePayload.nativeOperation); // TODO Better error handling
|
|
136
|
+
// throw new Error("Unknown native operation: " + nativePayload.nativeOperation)
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
return edits;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
exports.HandleNativeOperations = HandleNativeOperations;
|
|
143
|
+
//# sourceMappingURL=GCRGeneration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GCRGeneration.js","sourceRoot":"","sources":["../../../src/websdk/GCRGeneration.ts"],"names":[],"mappings":"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"}
|
package/build/websdk/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { RSA } from "./rsa";
|
|
|
4
4
|
export { DemosWebAuth } from "./DemosWebAuth";
|
|
5
5
|
export { prepareWeb2Payload } from "./Web2Transactions";
|
|
6
6
|
export { XMTransactions, prepareXMPayload, prepareXMScript, } from "./XMTransactions";
|
|
7
|
+
export { GCRGeneration, HandleNativeOperations } from "./GCRGeneration";
|
|
7
8
|
export { sha256 } from "./utils/sha256";
|
|
8
9
|
export { bufferize } from "./utils/bufferizer";
|
|
9
10
|
export { required, _required } from "./utils/required";
|
package/build/websdk/index.js
CHANGED
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.skeletons = exports.stringToForge = exports.forgeToString = exports._required = exports.required = exports.bufferize = exports.sha256 = exports.prepareXMScript = exports.prepareXMPayload = exports.XMTransactions = exports.prepareWeb2Payload = exports.DemosWebAuth = exports.RSA = exports.DemosTransactions = exports.demos = void 0;
|
|
36
|
+
exports.skeletons = exports.stringToForge = exports.forgeToString = exports._required = exports.required = exports.bufferize = exports.sha256 = exports.HandleNativeOperations = exports.GCRGeneration = exports.prepareXMScript = exports.prepareXMPayload = exports.XMTransactions = exports.prepareWeb2Payload = exports.DemosWebAuth = exports.RSA = exports.DemosTransactions = exports.demos = void 0;
|
|
37
37
|
// @ts-nocheck
|
|
38
38
|
var demos_1 = require("./demos");
|
|
39
39
|
Object.defineProperty(exports, "demos", { enumerable: true, get: function () { return demos_1.demos; } });
|
|
@@ -49,6 +49,9 @@ var XMTransactions_1 = require("./XMTransactions");
|
|
|
49
49
|
Object.defineProperty(exports, "XMTransactions", { enumerable: true, get: function () { return XMTransactions_1.XMTransactions; } });
|
|
50
50
|
Object.defineProperty(exports, "prepareXMPayload", { enumerable: true, get: function () { return XMTransactions_1.prepareXMPayload; } });
|
|
51
51
|
Object.defineProperty(exports, "prepareXMScript", { enumerable: true, get: function () { return XMTransactions_1.prepareXMScript; } });
|
|
52
|
+
var GCRGeneration_1 = require("./GCRGeneration");
|
|
53
|
+
Object.defineProperty(exports, "GCRGeneration", { enumerable: true, get: function () { return GCRGeneration_1.GCRGeneration; } });
|
|
54
|
+
Object.defineProperty(exports, "HandleNativeOperations", { enumerable: true, get: function () { return GCRGeneration_1.HandleNativeOperations; } });
|
|
52
55
|
// Utils
|
|
53
56
|
var sha256_1 = require("./utils/sha256");
|
|
54
57
|
Object.defineProperty(exports, "sha256", { enumerable: true, get: function () { return sha256_1.sha256; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/websdk/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/websdk/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,cAAc;AACd,iCAA+B;AAAtB,8FAAA,KAAK,OAAA;AACd,yDAAuD;AAA9C,sHAAA,iBAAiB,OAAA;AAE1B,6BAA2B;AAAlB,0FAAA,GAAG,OAAA;AACZ,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AAErB,uDAAuD;AAA9C,sHAAA,kBAAkB,OAAA;AAC3B,mDAIyB;AAHrB,gHAAA,cAAc,OAAA;AACd,kHAAA,gBAAgB,OAAA;AAChB,iHAAA,eAAe,OAAA;AAGnB,iDAAuE;AAA9D,8GAAA,aAAa,OAAA;AAAE,uHAAA,sBAAsB,OAAA;AAC9C,QAAQ;AACR,yCAAuC;AAA9B,gGAAA,MAAM,OAAA;AACf,iDAA8C;AAArC,uGAAA,SAAS,OAAA;AAClB,6CAAsD;AAA7C,oGAAA,QAAQ,OAAA;AAAE,qGAAA,SAAS,OAAA;AAC5B,2DAAsE;AAA7D,gHAAA,aAAa,OAAA;AAAE,gHAAA,aAAa,OAAA;AACrC,+DAA8C"}
|
|
@@ -18,23 +18,19 @@ function stringToForge(string, isHex = true) {
|
|
|
18
18
|
}
|
|
19
19
|
// NOTE It does output just a stringified version of the buffer
|
|
20
20
|
function forgeToRawString(forgeBuffer) {
|
|
21
|
-
|
|
21
|
+
// REVIEW Buffer or Uint8Array or BinaryBuffer
|
|
22
22
|
// This should be a Uint8Array-like object or a Buffer or a BinaryBuffer
|
|
23
23
|
const derived = JSON.stringify(forgeBuffer); // FIXME Error handling!
|
|
24
|
-
console.log(derived);
|
|
25
24
|
return derived; // String
|
|
26
25
|
}
|
|
27
26
|
// NOTE Remove if vestigial
|
|
28
27
|
function rawStringToForge(forgeString) {
|
|
29
28
|
// NOTE This works only if the string can be reduced to a proper hex private key
|
|
30
|
-
let hexified = buffer_1.Buffer.from(forgeString).toString(
|
|
29
|
+
let hexified = buffer_1.Buffer.from(forgeString).toString("hex");
|
|
31
30
|
if (hexified.length != 128) {
|
|
32
|
-
console.log('[string to forge] Invalid private key!');
|
|
33
31
|
return false;
|
|
34
32
|
}
|
|
35
|
-
console.log('[string to forge]');
|
|
36
33
|
const derived = HexToForge(hexified);
|
|
37
|
-
console.log(derived);
|
|
38
34
|
return derived;
|
|
39
35
|
}
|
|
40
36
|
// NOTE The following methods must be revertible with each other:
|
|
@@ -42,31 +38,24 @@ function rawStringToForge(forgeString) {
|
|
|
42
38
|
// - HexToForge
|
|
43
39
|
// INFO forgeBuffer comes in as the raw result of forge methods (so is most likely a BinaryBuffer)
|
|
44
40
|
function ForgeToHex(forgeBuffer) {
|
|
45
|
-
|
|
46
|
-
console.log('[forge to string encoded]');
|
|
47
|
-
console.log(forgeBuffer);
|
|
41
|
+
// BinaryBuffer
|
|
48
42
|
// Transforming into a supported Buffer and then to hex string for portability
|
|
49
43
|
const rebuffer = buffer_1.Buffer.from(forgeBuffer);
|
|
50
|
-
forgeBuffer = rebuffer.toString(
|
|
51
|
-
|
|
52
|
-
console.log('0x' + forgeBuffer);
|
|
53
|
-
return '0x' + forgeBuffer; // String
|
|
44
|
+
forgeBuffer = rebuffer.toString("hex");
|
|
45
|
+
return "0x" + forgeBuffer; // String
|
|
54
46
|
}
|
|
55
47
|
// INFO finalArray must come out as an acceptable input for forge methods
|
|
56
48
|
function HexToForge(forgeString) {
|
|
49
|
+
// String
|
|
57
50
|
forgeString = forgeString.slice(2);
|
|
58
51
|
// Preparing the Uint8Array to be used to revert the hex string
|
|
59
52
|
const finalArray = new Uint8Array(64);
|
|
60
|
-
console.log('[string to forge encoded]');
|
|
61
|
-
console.log(forgeString);
|
|
62
53
|
// Parsing the hex string into a Uint8Array by splitting it into 2-char chunks and parsing them into decimal values
|
|
63
54
|
for (let i = 0; i < forgeString.length; i += 2) {
|
|
64
55
|
const hexValue = forgeString.substr(i, 2);
|
|
65
56
|
const decimalValue = parseInt(hexValue, 16);
|
|
66
57
|
finalArray[i / 2] = decimalValue;
|
|
67
58
|
}
|
|
68
|
-
console.log('ENCODED INTO:');
|
|
69
|
-
console.log(finalArray);
|
|
70
59
|
return finalArray; // Uint8Array
|
|
71
60
|
}
|
|
72
61
|
//# sourceMappingURL=forge_converter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forge_converter.js","sourceRoot":"","sources":["../../../../src/websdk/utils/forge_converter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"forge_converter.js","sourceRoot":"","sources":["../../../../src/websdk/utils/forge_converter.ts"],"names":[],"mappings":";;AA4DS,sCAAa;AAAE,sCAAa;AA5DrC,oCAAgC;AAEhC,SAAS,aAAa,CAAC,WAAgB,EAAE,KAAK,GAAG,IAAI;IACjD,IAAI,KAAK;QAAE,OAAO,UAAU,CAAC,WAAW,CAAC,CAAA;;QACpC,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAA;AAC7C,CAAC;AAED,gFAAgF;AAChF,SAAS,aAAa,CAAC,MAAW,EAAE,KAAK,GAAG,IAAI;IAC5C,IAAI,KAAK;QAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAA,CAAC,aAAa;;QAC7C,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA,CAAC,yCAAyC;AAClF,CAAC;AAED,+DAA+D;AAC/D,SAAS,gBAAgB,CAAC,WAAgB;IACtC,8CAA8C;IAC9C,wEAAwE;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA,CAAC,wBAAwB;IACpE,OAAO,OAAO,CAAA,CAAC,SAAS;AAC5B,CAAC;AAED,2BAA2B;AAC3B,SAAS,gBAAgB,CAAC,WAAkB;IACxC,gFAAgF;IAChF,IAAI,QAAQ,GAAG,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvD,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QACzB,OAAO,KAAK,CAAA;IAChB,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IACpC,OAAO,OAAO,CAAA;AAClB,CAAC;AAED,iEAAiE;AACjE,eAAe;AACf,eAAe;AAEf,kGAAkG;AAClG,SAAS,UAAU,CAAC,WAAgB;IAChC,eAAe;IACf,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACzC,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACtC,OAAO,IAAI,GAAG,WAAW,CAAA,CAAC,SAAS;AACvC,CAAC;AAED,yEAAyE;AACzE,SAAS,UAAU,CAAC,WAAmB;IACnC,SAAS;IACT,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAClC,+DAA+D;IAC/D,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IACrC,mHAAmH;IACnH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACzC,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC3C,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAA;IACpC,CAAC;IACD,OAAO,UAAU,CAAA,CAAC,aAAa;AACnC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kynesyslabs/demosdk",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.4",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"types": "build/index.d.ts",
|
|
6
6
|
"author": "Kynesys Labs",
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
"test:multichain": "rm -rf build && jest --testMatch '**/tests/**/{coin,evm}*.ts' --testPathIgnorePatterns **/tests/**/chainProvider* **/tests/utils/* **/tests/**/template* --verbose",
|
|
31
31
|
"test:tx": "rm -rf build && jest --testMatch '**/tests/multichain**/fulltx*.ts' --testPathIgnorePatterns **/tests/**/chainProvider* **/tests/utils/* **/tests/**/template* --verbose",
|
|
32
32
|
"test:demoswork": "rm -rf build && jest --testMatch '**/tests/**/demoswork*.ts' --testPathIgnorePatterns **/tests/**/chainProvider* **/tests/utils/* **/tests/**/template* --verbose",
|
|
33
|
-
"setup:pre-push": "cp .github/hooks/pre-push .git/hooks/pre-push && chmod +x .git/hooks/pre-push && echo \"Pre-push hook installed\""
|
|
33
|
+
"setup:pre-push": "cp .github/hooks/pre-push .git/hooks/pre-push && chmod +x .git/hooks/pre-push && echo \"Pre-push hook installed\"",
|
|
34
|
+
"test:native": "rm -rf build && jest --testMatch '**/tests/native*.ts' --testPathIgnorePatterns **/tests/**/chainProvider* **/tests/utils/* **/tests/**/template* --verbose"
|
|
34
35
|
},
|
|
35
36
|
"dependencies": {
|
|
36
37
|
"@cosmjs/proto-signing": "^0.32.3",
|