@kynesyslabs/demosdk 2.2.49 → 2.2.50
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/build/abstraction/Identities.d.ts +4 -3
- package/build/abstraction/Identities.js +70 -19
- package/build/abstraction/Identities.js.map +1 -1
- package/build/abstraction/index.d.ts +2 -2
- package/build/abstraction/index.js.map +1 -1
- package/build/bridge/nativeBridge.js +2 -0
- package/build/bridge/nativeBridge.js.map +1 -1
- package/build/demoswork/utils/createTestWorkScript.js +3 -1
- package/build/demoswork/utils/createTestWorkScript.js.map +1 -1
- package/build/demoswork/work.d.ts +2 -2
- package/build/demoswork/work.js +3 -3
- package/build/demoswork/work.js.map +1 -1
- package/build/demoswork/workstep.js +4 -1
- package/build/demoswork/workstep.js.map +1 -1
- package/build/encryption/Hashing.d.ts +1 -0
- package/build/encryption/Hashing.js +4 -0
- package/build/encryption/Hashing.js.map +1 -1
- package/build/encryption/PQC/enigma.d.ts +2 -2
- package/build/encryption/PQC/enigma.js +11 -5
- package/build/encryption/PQC/enigma.js.map +1 -1
- package/build/encryption/ed25119.d.ts +12 -0
- package/build/encryption/ed25119.js +23 -0
- package/build/encryption/ed25119.js.map +1 -0
- package/build/encryption/index.d.ts +1 -1
- package/build/encryption/index.js +6 -1
- package/build/encryption/index.js.map +1 -1
- package/build/encryption/unifiedCrypto.d.ts +6 -5
- package/build/encryption/unifiedCrypto.js +7 -6
- package/build/encryption/unifiedCrypto.js.map +1 -1
- package/build/instant_messaging/index.js +1 -1
- package/build/instant_messaging/index.js.map +1 -1
- package/build/l2ps/L2PS.js +1 -1
- package/build/l2ps/L2PS.js.map +1 -1
- package/build/multichain/core/btc.js +26 -19
- package/build/multichain/core/btc.js.map +1 -1
- package/build/multichain/core/ten.js +3 -0
- package/build/multichain/core/ten.js.map +1 -1
- package/build/types/abstraction/index.d.ts +46 -10
- package/build/types/blockchain/GCREdit.d.ts +20 -3
- package/build/types/blockchain/ISignature.d.ts +3 -3
- package/build/types/blockchain/Transaction.d.ts +4 -3
- package/build/types/blockchain/ValidityData.d.ts +17 -7
- package/build/types/blockchain/ValidityData.js +0 -28
- package/build/types/blockchain/ValidityData.js.map +1 -1
- package/build/types/blockchain/rawTransaction.d.ts +2 -0
- package/build/types/cryptography.d.ts +2 -0
- package/build/types/cryptography.js +3 -0
- package/build/types/cryptography.js.map +1 -0
- package/build/types/index.d.ts +2 -0
- package/build/types/web2/index.d.ts +9 -2
- package/build/types/web2/index.js.map +1 -1
- package/build/websdk/DemosTransactions.d.ts +20 -2
- package/build/websdk/DemosTransactions.js +58 -30
- package/build/websdk/DemosTransactions.js.map +1 -1
- package/build/websdk/GCRGeneration.js +46 -33
- package/build/websdk/GCRGeneration.js.map +1 -1
- package/build/websdk/Web2Calls.js +4 -4
- package/build/websdk/Web2Calls.js.map +1 -1
- package/build/websdk/XMTransactions.d.ts +2 -2
- package/build/websdk/XMTransactions.js +10 -9
- package/build/websdk/XMTransactions.js.map +1 -1
- package/build/websdk/demos.d.ts +0 -107
- package/build/websdk/demos.js +1 -313
- package/build/websdk/demos.js.map +1 -1
- package/build/websdk/demosclass.d.ts +57 -15
- package/build/websdk/demosclass.js +137 -36
- package/build/websdk/demosclass.js.map +1 -1
- package/build/websdk/examples/tryWeb2.js.map +1 -1
- package/build/websdk/utils/skeletons.js +4 -1
- package/build/websdk/utils/skeletons.js.map +1 -1
- package/package.json +12 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import forge from "node-forge";
|
|
2
2
|
import { IncomingHttpHeaders, OutgoingHttpHeaders } from "http";
|
|
3
|
+
import { SigningAlgorithm } from "../cryptography";
|
|
3
4
|
export interface IParam {
|
|
4
5
|
name: string;
|
|
5
6
|
value: any;
|
|
@@ -15,7 +16,10 @@ export interface IWeb2Request {
|
|
|
15
16
|
result: any;
|
|
16
17
|
attestations: {};
|
|
17
18
|
hash: string;
|
|
18
|
-
signature?:
|
|
19
|
+
signature?: {
|
|
20
|
+
type: SigningAlgorithm;
|
|
21
|
+
data: string;
|
|
22
|
+
};
|
|
19
23
|
}
|
|
20
24
|
export interface IWeb2Payload {
|
|
21
25
|
message: {
|
|
@@ -56,7 +60,10 @@ export interface IWeb2Attestation {
|
|
|
56
60
|
hash: string;
|
|
57
61
|
timestamp: number;
|
|
58
62
|
identity: forge.pki.PublicKey;
|
|
59
|
-
signature:
|
|
63
|
+
signature: {
|
|
64
|
+
type: SigningAlgorithm;
|
|
65
|
+
data: string;
|
|
66
|
+
};
|
|
60
67
|
valid: boolean;
|
|
61
68
|
}
|
|
62
69
|
export interface IAttestationWithResponse extends IWeb2Attestation {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/web2/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/types/web2/index.ts"],"names":[],"mappings":";;;AAoCA,IAAY,eAMX;AAND,WAAY,eAAe;IACvB,8BAAW,CAAA;IACX,gCAAa,CAAA;IACb,8BAAW,CAAA;IACX,oCAAiB,CAAA;IACjB,kCAAe,CAAA;AACnB,CAAC,EANW,eAAe,+BAAf,eAAe,QAM1B;AAED,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,oCAAiB,CAAA;IACjB,6CAA0B,CAAA;IAC1B,2CAAwB,CAAA;AAC5B,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Demos } from "./demosclass";
|
|
2
|
-
import type { Transaction } from "../types";
|
|
2
|
+
import type { SigningAlgorithm, Transaction } from "../types";
|
|
3
3
|
import { IKeyPair } from "./types/KeyPair";
|
|
4
4
|
import { RPCResponseWithValidityData } from "../types/communication/rpc";
|
|
5
5
|
export declare const DemosTransactions: {
|
|
@@ -28,11 +28,29 @@ export declare const DemosTransactions: {
|
|
|
28
28
|
/**
|
|
29
29
|
* Signs a transaction after hashing its content.
|
|
30
30
|
*
|
|
31
|
+
* @deprecated Use demos.sign(tx) instead
|
|
32
|
+
*
|
|
31
33
|
* @param raw_tx - The transaction to be signed.
|
|
32
34
|
* @param keypair - The keypair to use for signing.
|
|
33
35
|
* @returns A Promise that resolves to the signed transaction.
|
|
34
36
|
*/
|
|
35
|
-
sign: (raw_tx: Transaction, keypair: IKeyPair
|
|
37
|
+
sign: (raw_tx: Transaction, keypair: IKeyPair, options: {
|
|
38
|
+
algorithm: SigningAlgorithm;
|
|
39
|
+
}) => Promise<Transaction>;
|
|
40
|
+
/**
|
|
41
|
+
* Signs a message with a given algorithm.
|
|
42
|
+
*
|
|
43
|
+
* @param data - The message to sign.
|
|
44
|
+
* @param keypair - The keypair to use for signing.
|
|
45
|
+
* @param options.algorithm - The algorithm related to the keypair.
|
|
46
|
+
* @returns A Promise that resolves to the signed message.
|
|
47
|
+
*/
|
|
48
|
+
signWithAlgorithm: (data: string, keypair: IKeyPair, options: {
|
|
49
|
+
algorithm: SigningAlgorithm;
|
|
50
|
+
}) => Promise<{
|
|
51
|
+
type: SigningAlgorithm;
|
|
52
|
+
data: string;
|
|
53
|
+
}>;
|
|
36
54
|
/**
|
|
37
55
|
* Confirms a transaction.
|
|
38
56
|
*
|
|
@@ -32,16 +32,15 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
36
|
exports.DemosTransactions = void 0;
|
|
40
|
-
const node_forge_1 = __importDefault(require("node-forge"));
|
|
41
37
|
const sha256_1 = require("./utils/sha256");
|
|
42
38
|
const skeletons = __importStar(require("./utils/skeletons"));
|
|
43
39
|
const GCRGeneration_1 = require("./GCRGeneration");
|
|
44
40
|
const required_1 = require("./utils/required");
|
|
41
|
+
const encryption_1 = require("../encryption");
|
|
42
|
+
const unifiedCrypto_1 = require("../encryption/unifiedCrypto");
|
|
43
|
+
const enigma_1 = require("../encryption/PQC/enigma");
|
|
45
44
|
exports.DemosTransactions = {
|
|
46
45
|
// REVIEW All this part
|
|
47
46
|
// NOTE A courtesy to get a skeleton of transactions
|
|
@@ -69,11 +68,16 @@ exports.DemosTransactions = {
|
|
|
69
68
|
*/
|
|
70
69
|
async pay(to, amount, demos) {
|
|
71
70
|
(0, required_1._required)(demos.keypair, "Wallet not connected");
|
|
71
|
+
if (to.length > 66) {
|
|
72
|
+
throw new Error("Invalid Ed25519 address: " + to);
|
|
73
|
+
}
|
|
72
74
|
let tx = exports.DemosTransactions.empty();
|
|
73
|
-
const
|
|
74
|
-
const
|
|
75
|
+
const { publicKey } = await demos.crypto.getIdentity("ed25519");
|
|
76
|
+
const publicKeyHex = (0, unifiedCrypto_1.uint8ArrayToHex)(publicKey);
|
|
77
|
+
const nonce = await demos.getAddressNonce(publicKeyHex);
|
|
78
|
+
// tx.content.from_ed25519_address = publicKeyHex
|
|
75
79
|
// REVIEW Get the address nonce
|
|
76
|
-
tx.content.from = from
|
|
80
|
+
// tx.content.from = from
|
|
77
81
|
tx.content.to = to;
|
|
78
82
|
tx.content.nonce = nonce + 1;
|
|
79
83
|
tx.content.amount = amount;
|
|
@@ -101,46 +105,69 @@ exports.DemosTransactions = {
|
|
|
101
105
|
/**
|
|
102
106
|
* Signs a transaction after hashing its content.
|
|
103
107
|
*
|
|
108
|
+
* @deprecated Use demos.sign(tx) instead
|
|
109
|
+
*
|
|
104
110
|
* @param raw_tx - The transaction to be signed.
|
|
105
111
|
* @param keypair - The keypair to use for signing.
|
|
106
112
|
* @returns A Promise that resolves to the signed transaction.
|
|
107
113
|
*/
|
|
108
|
-
sign: async function (raw_tx, keypair) {
|
|
114
|
+
sign: async function (raw_tx, keypair, options) {
|
|
109
115
|
(0, required_1._required)(keypair, "Private key not provided");
|
|
116
|
+
if (!options || !options.algorithm) {
|
|
117
|
+
options = {
|
|
118
|
+
algorithm: "ed25519",
|
|
119
|
+
};
|
|
120
|
+
}
|
|
110
121
|
// REVIEW If for some reason the tx timestamp is not set, we set it to the current time
|
|
111
122
|
if (!raw_tx.content.timestamp || raw_tx.content.timestamp === 0) {
|
|
112
123
|
raw_tx.content.timestamp = Date.now();
|
|
113
124
|
}
|
|
114
125
|
// Set the public key in the transaction
|
|
115
|
-
raw_tx.content.from = keypair.publicKey;
|
|
126
|
+
raw_tx.content.from = (0, unifiedCrypto_1.uint8ArrayToHex)(keypair.publicKey);
|
|
116
127
|
// REVIEW Generate the GCREdit in the client (will be compared on the node)
|
|
117
128
|
// NOTE They are created without the tx hash, which is added in the node
|
|
118
129
|
raw_tx.content.gcr_edits = await GCRGeneration_1.GCRGeneration.generate(raw_tx);
|
|
119
130
|
// Hash the content of the transaction
|
|
120
131
|
raw_tx.hash = await (0, sha256_1.sha256)(JSON.stringify(raw_tx.content));
|
|
121
|
-
|
|
122
|
-
let signatureData = node_forge_1.default.pki.ed25519.sign({
|
|
123
|
-
message: raw_tx.hash,
|
|
124
|
-
encoding: "utf8",
|
|
125
|
-
privateKey: keypair.privateKey,
|
|
126
|
-
});
|
|
127
|
-
// Set the signature in the transaction
|
|
128
|
-
raw_tx.signature = {
|
|
129
|
-
type: "ed25519",
|
|
130
|
-
data: signatureData,
|
|
131
|
-
};
|
|
132
|
-
// Verify the signature (for debugging purposes)
|
|
133
|
-
let verified = node_forge_1.default.pki.ed25519.verify({
|
|
134
|
-
message: raw_tx.hash,
|
|
135
|
-
encoding: "utf8",
|
|
136
|
-
signature: signatureData,
|
|
137
|
-
publicKey: keypair.publicKey,
|
|
138
|
-
});
|
|
139
|
-
if (!verified) {
|
|
140
|
-
throw new Error("Signature verification failed");
|
|
141
|
-
}
|
|
132
|
+
raw_tx.signature = await exports.DemosTransactions.signWithAlgorithm(raw_tx.hash, keypair, { algorithm: options.algorithm });
|
|
142
133
|
return raw_tx; // Return the hashed and signed transaction
|
|
143
134
|
},
|
|
135
|
+
/**
|
|
136
|
+
* Signs a message with a given algorithm.
|
|
137
|
+
*
|
|
138
|
+
* @param data - The message to sign.
|
|
139
|
+
* @param keypair - The keypair to use for signing.
|
|
140
|
+
* @param options.algorithm - The algorithm related to the keypair.
|
|
141
|
+
* @returns A Promise that resolves to the signed message.
|
|
142
|
+
*/
|
|
143
|
+
signWithAlgorithm: async function (data, keypair, options) {
|
|
144
|
+
(0, required_1._required)(keypair, "Private key not provided");
|
|
145
|
+
(0, required_1._required)(options && options.algorithm, "Algorithm not provided");
|
|
146
|
+
if (options.algorithm === "ed25519") {
|
|
147
|
+
const signature = encryption_1.Cryptography.sign(data, keypair.privateKey);
|
|
148
|
+
return {
|
|
149
|
+
type: "ed25519",
|
|
150
|
+
data: (0, unifiedCrypto_1.uint8ArrayToHex)(signature),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
const enigma = new enigma_1.Enigma();
|
|
154
|
+
if (options.algorithm === "falcon") {
|
|
155
|
+
const signature = await enigma.sign_falcon(data, keypair);
|
|
156
|
+
return {
|
|
157
|
+
type: "falcon",
|
|
158
|
+
data: (0, unifiedCrypto_1.uint8ArrayToHex)(signature),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
if (options.algorithm === "ml-dsa") {
|
|
162
|
+
const buff = new TextEncoder().encode(data);
|
|
163
|
+
const signature = await enigma.sign_ml_dsa(buff, keypair);
|
|
164
|
+
return {
|
|
165
|
+
type: "ml-dsa",
|
|
166
|
+
data: (0, unifiedCrypto_1.uint8ArrayToHex)(signature),
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
throw new Error("Unsupported algorithm: " + options.algorithm);
|
|
170
|
+
},
|
|
144
171
|
// NOTE Sending a transaction after signing it
|
|
145
172
|
/**
|
|
146
173
|
* Confirms a transaction.
|
|
@@ -150,6 +177,7 @@ exports.DemosTransactions = {
|
|
|
150
177
|
*/
|
|
151
178
|
confirm: async function (transaction, demos) {
|
|
152
179
|
let response = await demos.call("execute", "", transaction, "confirmTx");
|
|
180
|
+
console.log("response:", response);
|
|
153
181
|
// If the tx is not valid, we notify the user
|
|
154
182
|
if (!response.response.data.valid) {
|
|
155
183
|
throw new Error("[Confirm] Transaction is not valid: " +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DemosTransactions.js","sourceRoot":"","sources":["../../../src/websdk/DemosTransactions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DemosTransactions.js","sourceRoot":"","sources":["../../../src/websdk/DemosTransactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,27 +12,26 @@ class GCRGeneration {
|
|
|
12
12
|
const gcrEdits = [];
|
|
13
13
|
const { content } = tx;
|
|
14
14
|
// Handle main transaction edits
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
15
|
+
switch (content.type) {
|
|
16
|
+
case "demoswork":
|
|
17
|
+
// TODO Implement this
|
|
18
|
+
break;
|
|
19
|
+
case "native":
|
|
20
|
+
var nativeEdits = await HandleNativeOperations.handle(tx, isRollback);
|
|
21
|
+
gcrEdits.push(...nativeEdits);
|
|
22
|
+
break;
|
|
23
|
+
case "web2Request":
|
|
24
|
+
case "crosschainOperation":
|
|
25
|
+
const assignEdit = this.createAssignEdit(content, tx.hash);
|
|
26
|
+
gcrEdits.push(assignEdit);
|
|
27
|
+
break;
|
|
28
|
+
case "genesis":
|
|
29
|
+
// TODO Implement this
|
|
30
|
+
break;
|
|
31
|
+
case "identity":
|
|
32
|
+
var identityEdits = await HandleIdentityOperations.handle(tx);
|
|
33
|
+
gcrEdits.push(...identityEdits);
|
|
34
|
+
break;
|
|
36
35
|
}
|
|
37
36
|
// SECTION Operations valid for all tx types
|
|
38
37
|
// Add gas operation edit with check for availability of gas amount in the sender's balance
|
|
@@ -41,7 +40,7 @@ class GCRGeneration {
|
|
|
41
40
|
if (content.type === "identity") {
|
|
42
41
|
break nonceEdits;
|
|
43
42
|
}
|
|
44
|
-
let gasEdit = await this.createGasEdit(content.
|
|
43
|
+
let gasEdit = await this.createGasEdit(content.from_ed25519_address, tx.hash);
|
|
45
44
|
gcrEdits.push(gasEdit);
|
|
46
45
|
}
|
|
47
46
|
catch (e) {
|
|
@@ -49,7 +48,12 @@ class GCRGeneration {
|
|
|
49
48
|
throw new Error("Error creating gas edit: " + e);
|
|
50
49
|
}
|
|
51
50
|
// Add nonce increment edit
|
|
52
|
-
gcrEdits.push(this.createNonceEdit(content.
|
|
51
|
+
gcrEdits.push(this.createNonceEdit(content.from_ed25519_address, tx.hash));
|
|
52
|
+
for (const edit of gcrEdits) {
|
|
53
|
+
if (!edit.account.startsWith("0x")) {
|
|
54
|
+
edit.account = "0x" + edit.account;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
53
57
|
return gcrEdits;
|
|
54
58
|
}
|
|
55
59
|
static async createGasEdit(account, txHash, isRollback = false) {
|
|
@@ -74,7 +78,7 @@ class GCRGeneration {
|
|
|
74
78
|
static createAssignEdit(content, txHash, isRollback = false) {
|
|
75
79
|
return {
|
|
76
80
|
type: "assign",
|
|
77
|
-
account: content.
|
|
81
|
+
account: content.from_ed25519_address,
|
|
78
82
|
context: content.type === "web2Request" ? "web2" : "xm",
|
|
79
83
|
txhash: txHash,
|
|
80
84
|
isRollback,
|
|
@@ -120,13 +124,11 @@ class HandleNativeOperations {
|
|
|
120
124
|
case "send":
|
|
121
125
|
var [to, amount] = nativePayload.args;
|
|
122
126
|
// First, remove the amount from the sender's balance
|
|
123
|
-
console.log("to: ", to);
|
|
124
|
-
console.log("amount: ", amount);
|
|
125
127
|
var subtractEdit = {
|
|
126
128
|
type: "balance",
|
|
127
129
|
operation: "remove",
|
|
128
130
|
isRollback: isRollback,
|
|
129
|
-
account: tx.content.
|
|
131
|
+
account: tx.content.from_ed25519_address,
|
|
130
132
|
txhash: tx.hash,
|
|
131
133
|
amount: amount,
|
|
132
134
|
};
|
|
@@ -159,7 +161,7 @@ class HandleIdentityOperations {
|
|
|
159
161
|
const identityPayload = identityPayloadData[1];
|
|
160
162
|
// INFO: Create the GCR edit skeleton
|
|
161
163
|
const edit = {
|
|
162
|
-
account: tx.content.
|
|
164
|
+
account: tx.content.from_ed25519_address,
|
|
163
165
|
type: "identity",
|
|
164
166
|
operation: identityPayload.method.endsWith("assign")
|
|
165
167
|
? "add"
|
|
@@ -174,14 +176,24 @@ class HandleIdentityOperations {
|
|
|
174
176
|
case "xm_identity_assign": {
|
|
175
177
|
// INFO: Fill in the identity data
|
|
176
178
|
const payload = identityPayload.payload.target_identity;
|
|
179
|
+
// REVIEW: Remove the signed Message from the edit data
|
|
180
|
+
// This is supposed to be the ed25519 address and should be provided by the caller
|
|
181
|
+
const data = structuredClone(payload);
|
|
177
182
|
edit.data = {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
targetAddress: payload.targetAddress,
|
|
181
|
-
isEVM: payload.isEVM,
|
|
183
|
+
...data,
|
|
184
|
+
timestamp: tx.content.timestamp
|
|
182
185
|
};
|
|
183
186
|
break;
|
|
184
187
|
}
|
|
188
|
+
case "pqc_identity_assign": {
|
|
189
|
+
edit.data = identityPayload.payload.map((payload) => {
|
|
190
|
+
return {
|
|
191
|
+
...payload,
|
|
192
|
+
timestamp: tx.content.timestamp,
|
|
193
|
+
};
|
|
194
|
+
});
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
185
197
|
case "web2_identity_assign": {
|
|
186
198
|
// INFO: Parse the web2 username from the proof url
|
|
187
199
|
const payload = identityPayload.payload;
|
|
@@ -198,7 +210,8 @@ class HandleIdentityOperations {
|
|
|
198
210
|
break;
|
|
199
211
|
}
|
|
200
212
|
case "xm_identity_remove":
|
|
201
|
-
case "web2_identity_remove":
|
|
213
|
+
case "web2_identity_remove":
|
|
214
|
+
case "pqc_identity_remove": {
|
|
202
215
|
// INFO: Passthrough the payload
|
|
203
216
|
edit.data = identityPayload.payload;
|
|
204
217
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GCRGeneration.js","sourceRoot":"","sources":["../../../src/websdk/GCRGeneration.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"GCRGeneration.js","sourceRoot":"","sources":["../../../src/websdk/GCRGeneration.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,15 +91,15 @@ exports.web2Calls = {
|
|
|
91
91
|
};
|
|
92
92
|
const web2Tx = DemosTransactions_1.DemosTransactions.empty();
|
|
93
93
|
// From and To are the same in Web2 transactions
|
|
94
|
-
web2Tx.content.from = usedKeyPair.publicKey
|
|
94
|
+
// web2Tx.content.from = usedKeyPair.publicKey as Uint8Array
|
|
95
95
|
web2Tx.content.to = web2Tx.content.from;
|
|
96
96
|
web2Tx.content.type = "web2Request";
|
|
97
97
|
web2Tx.content.data = ["web2Request", web2Payload];
|
|
98
98
|
web2Tx.content.timestamp = Date.now();
|
|
99
99
|
// Signing and broadcasting the transaction
|
|
100
|
-
const signedWeb2Tx = await
|
|
101
|
-
const validityData = await
|
|
102
|
-
await
|
|
100
|
+
const signedWeb2Tx = await demos.sign(web2Tx);
|
|
101
|
+
const validityData = await demos.confirm(signedWeb2Tx);
|
|
102
|
+
await demos.broadcast(validityData);
|
|
103
103
|
return new Web2Proxy(sessionId, demos);
|
|
104
104
|
},
|
|
105
105
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Web2Calls.js","sourceRoot":"","sources":["../../../src/websdk/Web2Calls.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;
|
|
1
|
+
{"version":3,"file":"Web2Calls.js","sourceRoot":"","sources":["../../../src/websdk/Web2Calls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Transaction, XMScript } from "../types";
|
|
2
|
-
import {
|
|
2
|
+
import { Demos } from "./demosclass";
|
|
3
3
|
declare const XMTransactions: {
|
|
4
4
|
schemas: {
|
|
5
5
|
base_operation: {
|
|
@@ -76,5 +76,5 @@ interface prepareXMScriptParams {
|
|
|
76
76
|
params?: any;
|
|
77
77
|
}
|
|
78
78
|
export declare function prepareXMScript({ chain, is_evm, subchain, signedPayloads, type, params, rpc, }: prepareXMScriptParams): XMScript;
|
|
79
|
-
declare function prepareXMPayload(xm_payload: XMScript,
|
|
79
|
+
declare function prepareXMPayload(xm_payload: XMScript, demos: Demos): Promise<Transaction>;
|
|
80
80
|
export { prepareXMPayload, XMTransactions };
|
|
@@ -7,6 +7,7 @@ exports.prepareXMScript = prepareXMScript;
|
|
|
7
7
|
exports.prepareXMPayload = prepareXMPayload;
|
|
8
8
|
const utils_1 = require("../demoswork/utils");
|
|
9
9
|
const DemosTransactions_1 = require("./DemosTransactions");
|
|
10
|
+
const unifiedCrypto_1 = require("../encryption/unifiedCrypto");
|
|
10
11
|
// INFO Using the methods below to create, manage and send chainscript-like scripts
|
|
11
12
|
const XMTransactions = {
|
|
12
13
|
schemas: {
|
|
@@ -133,17 +134,17 @@ function prepareXMScript({ chain, is_evm, subchain, signedPayloads, type, params
|
|
|
133
134
|
operations_order: [id],
|
|
134
135
|
};
|
|
135
136
|
}
|
|
136
|
-
async function prepareXMPayload(xm_payload,
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
137
|
+
async function prepareXMPayload(xm_payload, demos) {
|
|
138
|
+
const tx = DemosTransactions_1.DemosTransactions.empty();
|
|
139
|
+
const ed25519 = await demos.crypto.getIdentity("ed25519");
|
|
140
|
+
const ed25519_address = (0, unifiedCrypto_1.uint8ArrayToHex)(ed25519.publicKey);
|
|
141
|
+
tx.content.to = ed25519_address;
|
|
141
142
|
// Setting the type and data
|
|
142
|
-
|
|
143
|
-
|
|
143
|
+
tx.content.type = "crosschainOperation";
|
|
144
|
+
tx.content.data = ["crosschainOperation", xm_payload];
|
|
144
145
|
// Producing a timestamp
|
|
145
|
-
|
|
146
|
+
tx.content.timestamp = Date.now();
|
|
146
147
|
// Signing the transaction
|
|
147
|
-
return await
|
|
148
|
+
return await demos.sign(tx);
|
|
148
149
|
}
|
|
149
150
|
//# sourceMappingURL=XMTransactions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XMTransactions.js","sourceRoot":"","sources":["../../../src/websdk/XMTransactions.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,6DAA6D;;;
|
|
1
|
+
{"version":3,"file":"XMTransactions.js","sourceRoot":"","sources":["../../../src/websdk/XMTransactions.ts"],"names":[],"mappings":"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"}
|
package/build/websdk/demos.d.ts
CHANGED
|
@@ -1,111 +1,4 @@
|
|
|
1
|
-
import { Buffer } from "buffer/";
|
|
2
|
-
import * as skeletons from "./utils/skeletons";
|
|
3
|
-
import { DemosWebAuth } from "./DemosWebAuth";
|
|
4
|
-
import { Block, IPeer, RawTransaction, Transaction, XMScript } from "../types";
|
|
5
|
-
import { AddressInfo } from "../types/blockchain/address";
|
|
6
|
-
import { RPCResponseWithValidityData } from "../types/communication/rpc";
|
|
7
|
-
import { l2psCalls } from "../l2ps";
|
|
8
|
-
import { IKeyPair } from "./types/KeyPair";
|
|
9
1
|
import { Demos } from "./demosclass";
|
|
10
|
-
/**
|
|
11
|
-
* @deprecated Use the new `Demos` class
|
|
12
|
-
* @see Demos class
|
|
13
|
-
*
|
|
14
|
-
* ```ts
|
|
15
|
-
* import { Demos } from "@kynesyslabs/websdk"
|
|
16
|
-
* const demos = new Demos()
|
|
17
|
-
*
|
|
18
|
-
* await demos.connect(rpc_url)
|
|
19
|
-
* await demos.connectWallet(privateKey)
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
export declare const _demos: {
|
|
23
|
-
rpc_url: string | null;
|
|
24
|
-
connected: boolean;
|
|
25
|
-
readonly walletConnected: boolean;
|
|
26
|
-
keypair: IKeyPair;
|
|
27
|
-
connect: (rpc_url: string) => Promise<boolean>;
|
|
28
|
-
connectWallet: (privateKey: string | Buffer | Uint8Array, options?: {
|
|
29
|
-
/**
|
|
30
|
-
* Whether the private key is a seed.
|
|
31
|
-
* If true, the seed will be converted to an ed25519 keypair.
|
|
32
|
-
*/
|
|
33
|
-
isSeed?: boolean;
|
|
34
|
-
}) => Promise<string>;
|
|
35
|
-
getAddress: () => string;
|
|
36
|
-
disconnect: () => void;
|
|
37
|
-
generateMuid: () => string;
|
|
38
|
-
sign: (tx: Transaction) => Promise<Transaction>;
|
|
39
|
-
confirm: (tx: Transaction) => Promise<RPCResponseWithValidityData>;
|
|
40
|
-
broadcast: (validityData: RPCResponseWithValidityData) => Promise<any>;
|
|
41
|
-
/** NOTE Subnet / L2PS EncryptedTransaction should be handled in the same way as the other txs
|
|
42
|
-
* See l2psCalls.prepare(tx, subnet) to see how to prepare a SubnetPayload
|
|
43
|
-
*/
|
|
44
|
-
l2ps: typeof l2psCalls;
|
|
45
|
-
nodeCall: (message: any, args?: {}) => Promise<any>;
|
|
46
|
-
call: (method: any, message: any, data?: any, extra?: any, sender?: any, receiver?: any) => Promise<any>;
|
|
47
|
-
getLastBlockNumber: () => Promise<number>;
|
|
48
|
-
getLastBlockHash: () => Promise<string | null>;
|
|
49
|
-
getBlocks: (start?: number | "latest", limit?: number) => Promise<Block[]>;
|
|
50
|
-
getBlockByNumber: (blockNumber: number) => Promise<Block>;
|
|
51
|
-
getBlockByHash: (blockHash: string) => Promise<Block>;
|
|
52
|
-
getTxByHash: (txHash?: string) => Promise<Transaction>;
|
|
53
|
-
/**
|
|
54
|
-
* @deprecated
|
|
55
|
-
* Use `demos.getTransactions()` instead
|
|
56
|
-
*
|
|
57
|
-
* Gets the latest 50 transactions from the network.
|
|
58
|
-
*/
|
|
59
|
-
getAllTxs: () => Promise<RawTransaction[]>;
|
|
60
|
-
getTransactions: (start?: number | "latest", limit?: number) => Promise<RawTransaction[]>;
|
|
61
|
-
getPeerlist: () => Promise<IPeer[]>;
|
|
62
|
-
getMempool: () => Promise<Transaction[]>;
|
|
63
|
-
getPeerIdentity: () => Promise<string>;
|
|
64
|
-
getAddressInfo: (address: string) => Promise<AddressInfo | null>;
|
|
65
|
-
getAddressNonce: (address: string) => Promise<number>;
|
|
66
|
-
web2: {
|
|
67
|
-
createDahr: (demos: Demos) => Promise<import("./Web2Calls").Web2Proxy>;
|
|
68
|
-
};
|
|
69
|
-
xm: {
|
|
70
|
-
createPayload: (xm_payload: XMScript, keypair?: IKeyPair) => Promise<Transaction>;
|
|
71
|
-
};
|
|
72
|
-
tx: {
|
|
73
|
-
/**
|
|
74
|
-
* Signs a transaction after hashing its content.
|
|
75
|
-
*
|
|
76
|
-
* @param raw_tx - The transaction to be signed.
|
|
77
|
-
* @param keypair - The keypair to use for signing. If not provided, the keypair connected to the wallet will be used.
|
|
78
|
-
* @returns A Promise that resolves to the signed transaction.
|
|
79
|
-
*/
|
|
80
|
-
sign: (raw_tx: Transaction, keypair?: IKeyPair) => Promise<Transaction>;
|
|
81
|
-
empty: () => Transaction;
|
|
82
|
-
prepare: (data?: any) => Promise<Transaction>;
|
|
83
|
-
pay(to: string, amount: number, demos: Demos): Promise<Transaction>;
|
|
84
|
-
transfer(to: string, amount: number, demos: Demos): Promise<Transaction>;
|
|
85
|
-
confirm: (transaction: Transaction, demos: Demos) => Promise<RPCResponseWithValidityData>;
|
|
86
|
-
broadcast: (validationData: RPCResponseWithValidityData, demos: Demos) => Promise<any>;
|
|
87
|
-
};
|
|
88
|
-
DemosTransactions: {
|
|
89
|
-
empty: () => Transaction;
|
|
90
|
-
prepare: (data?: any) => Promise<Transaction>;
|
|
91
|
-
pay(to: string, amount: number, demos: Demos): Promise<Transaction>;
|
|
92
|
-
transfer(to: string, amount: number, demos: Demos): Promise<Transaction>;
|
|
93
|
-
sign: (raw_tx: Transaction, keypair: IKeyPair) => Promise<Transaction>;
|
|
94
|
-
confirm: (transaction: Transaction, demos: Demos) => Promise<RPCResponseWithValidityData>;
|
|
95
|
-
broadcast: (validationData: RPCResponseWithValidityData, demos: Demos) => Promise<any>;
|
|
96
|
-
};
|
|
97
|
-
transactions: {
|
|
98
|
-
empty: () => Transaction;
|
|
99
|
-
prepare: (data?: any) => Promise<Transaction>;
|
|
100
|
-
pay(to: string, amount: number, demos: Demos): Promise<Transaction>;
|
|
101
|
-
transfer(to: string, amount: number, demos: Demos): Promise<Transaction>;
|
|
102
|
-
sign: (raw_tx: Transaction, keypair: IKeyPair) => Promise<Transaction>;
|
|
103
|
-
confirm: (transaction: Transaction, demos: Demos) => Promise<RPCResponseWithValidityData>;
|
|
104
|
-
broadcast: (validationData: RPCResponseWithValidityData, demos: Demos) => Promise<any>;
|
|
105
|
-
};
|
|
106
|
-
DemosWebAuth: typeof DemosWebAuth;
|
|
107
|
-
skeletons: typeof skeletons;
|
|
108
|
-
};
|
|
109
2
|
/**
|
|
110
3
|
* A global instance of the Demos class.
|
|
111
4
|
*
|