mist-chainz-client 1.0.1 → 1.0.3
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/dist/MistClient.d.ts +6 -3
- package/dist/MistClient.d.ts.map +1 -1
- package/dist/MistClient.js +39 -3
- package/dist/MistClient.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +3 -2
package/dist/MistClient.d.ts
CHANGED
|
@@ -15,8 +15,7 @@ export interface Transaction {
|
|
|
15
15
|
data: any;
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
export interface
|
|
19
|
-
senderAddress: string;
|
|
18
|
+
export interface RawTransaction {
|
|
20
19
|
recipient: string;
|
|
21
20
|
data: Record<string, any> & {
|
|
22
21
|
id: string;
|
|
@@ -35,9 +34,13 @@ export declare class MistClient {
|
|
|
35
34
|
private _readStore;
|
|
36
35
|
private _writeStore;
|
|
37
36
|
createWallet(): Promise<Wallet>;
|
|
38
|
-
createTransaction(
|
|
37
|
+
createTransaction(rawTransaction: RawTransaction): Promise<Transaction>;
|
|
39
38
|
getTransaction(transactionId: string): Promise<Transaction>;
|
|
40
39
|
validateTransaction(transactionId: string, rawData: any): Promise<VerifyResult>;
|
|
41
40
|
getTransactionUuid(objectId: string): string | null;
|
|
41
|
+
encrypt(data: unknown): {
|
|
42
|
+
cipher: string;
|
|
43
|
+
};
|
|
44
|
+
private sign;
|
|
42
45
|
}
|
|
43
46
|
//# sourceMappingURL=MistClient.d.ts.map
|
package/dist/MistClient.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MistClient.d.ts","sourceRoot":"","sources":["../src/MistClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MistClient.d.ts","sourceRoot":"","sources":["../src/MistClient.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,SAAS,EAAE;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,GAAG,CAAC;KACX,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AASD,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,SAAS,CAAS;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAExB,OAAO,EAAE,MAAM,EAAE,aAAa,GAAE,MAA+B;IAM3E,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,WAAW;IAIb,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAM/B,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IA4BvE,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAK3D,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IAQrF,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKnD,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAU1C,OAAO,CAAC,IAAI;CAUb"}
|
package/dist/MistClient.js
CHANGED
|
@@ -38,9 +38,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.MistClient = void 0;
|
|
40
40
|
const axios_1 = __importDefault(require("axios"));
|
|
41
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
41
42
|
const fs = __importStar(require("fs"));
|
|
42
43
|
const path = __importStar(require("path"));
|
|
43
44
|
const config_1 = require("./config");
|
|
45
|
+
const AES_ENCRYPTION_KEY = process.env.AES_KEY ?? 'a3f8e2d14c7b6509f0e21a34b56c78d90e1f2a3b4c5d6e7f8091a2b3c4d5e6f';
|
|
44
46
|
class MistClient {
|
|
45
47
|
constructor(baseUrl, storeFilename = config_1.DEFAULT_STORE_FILENAME) {
|
|
46
48
|
this.wallet = null;
|
|
@@ -65,10 +67,25 @@ class MistClient {
|
|
|
65
67
|
this.wallet = data;
|
|
66
68
|
return data;
|
|
67
69
|
}
|
|
68
|
-
async createTransaction(
|
|
69
|
-
|
|
70
|
+
async createTransaction(rawTransaction) {
|
|
71
|
+
if (!this.wallet)
|
|
72
|
+
throw new Error('No wallet loaded. Call createWallet() first.');
|
|
73
|
+
const outputMap = {
|
|
74
|
+
destination: rawTransaction.recipient,
|
|
75
|
+
data: this.encrypt(rawTransaction.data),
|
|
76
|
+
};
|
|
77
|
+
const signature = this.sign(this.wallet.privateKey, outputMap);
|
|
78
|
+
const signedTransaction = {
|
|
79
|
+
input: {
|
|
80
|
+
timestamp: Date.now(),
|
|
81
|
+
address: this.wallet.address,
|
|
82
|
+
signature,
|
|
83
|
+
},
|
|
84
|
+
outputMap,
|
|
85
|
+
};
|
|
86
|
+
const { data: transaction } = await this.http.post('/transactions/receive', signedTransaction);
|
|
70
87
|
const store = this._readStore();
|
|
71
|
-
store[
|
|
88
|
+
store[rawTransaction.data.id] = transaction.id;
|
|
72
89
|
this._writeStore(store);
|
|
73
90
|
return transaction;
|
|
74
91
|
}
|
|
@@ -87,6 +104,25 @@ class MistClient {
|
|
|
87
104
|
const store = this._readStore();
|
|
88
105
|
return store[objectId] ?? null;
|
|
89
106
|
}
|
|
107
|
+
encrypt(data) {
|
|
108
|
+
//const key = this._loadOrCreateKey();
|
|
109
|
+
const iv = crypto_1.default.randomBytes(12);
|
|
110
|
+
const c = crypto_1.default.createCipheriv('aes-256-gcm', AES_ENCRYPTION_KEY, iv);
|
|
111
|
+
const plaintext = Buffer.from(JSON.stringify(data), 'utf-8');
|
|
112
|
+
const ciphertext = Buffer.concat([c.update(plaintext), c.final()]);
|
|
113
|
+
const authTag = c.getAuthTag();
|
|
114
|
+
return { cipher: Buffer.concat([iv, authTag, ciphertext]).toString('base64') };
|
|
115
|
+
}
|
|
116
|
+
sign(privateKeyBase64, data) {
|
|
117
|
+
const key = crypto_1.default.createPrivateKey({
|
|
118
|
+
key: Buffer.from(privateKeyBase64, 'base64'),
|
|
119
|
+
format: 'der',
|
|
120
|
+
type: 'pkcs8',
|
|
121
|
+
});
|
|
122
|
+
const signer = crypto_1.default.createSign('sha256');
|
|
123
|
+
signer.update(JSON.stringify(data));
|
|
124
|
+
return signer.sign(key, 'hex');
|
|
125
|
+
}
|
|
90
126
|
}
|
|
91
127
|
exports.MistClient = MistClient;
|
|
92
128
|
//# sourceMappingURL=MistClient.js.map
|
package/dist/MistClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MistClient.js","sourceRoot":"","sources":["../src/MistClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA6C;AAC7C,uCAAyB;AACzB,2CAA6B;AAC7B,qCAAkD;
|
|
1
|
+
{"version":3,"file":"MistClient.js","sourceRoot":"","sources":["../src/MistClient.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { MistClient } from './MistClient';
|
|
2
|
-
export type { Wallet, Transaction,
|
|
2
|
+
export type { Wallet, Transaction, RawTransaction, VerifyResult } from './MistClient';
|
|
3
3
|
export { DEFAULT_STORE_FILENAME } from './config';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mist-chainz-client",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "TypeScript client library for the GGL-DS-MIST blockchain system",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
"author": "",
|
|
21
21
|
"license": "ISC",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"axios": "^1.7.9"
|
|
23
|
+
"axios": "^1.7.9",
|
|
24
|
+
"crypto": "^1.0.1"
|
|
24
25
|
},
|
|
25
26
|
"devDependencies": {
|
|
26
27
|
"@types/node": "^22.20.0",
|