koilib 5.4.0 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/koinos.js +15450 -2546
- package/dist/koinos.min.js +1 -1
- package/lib/Contract.d.ts +45 -1
- package/lib/Contract.js +156 -77
- package/lib/Contract.js.map +1 -1
- package/lib/Serializer.d.ts +36 -15
- package/lib/Serializer.js +82 -16
- package/lib/Serializer.js.map +1 -1
- package/lib/Transaction.js +1 -1
- package/lib/Transaction.js.map +1 -1
- package/lib/browser/Contract.d.ts +45 -1
- package/lib/browser/Contract.js +156 -77
- package/lib/browser/Contract.js.map +1 -1
- package/lib/browser/Serializer.d.ts +36 -15
- package/lib/browser/Serializer.js +82 -16
- package/lib/browser/Serializer.js.map +1 -1
- package/lib/browser/Transaction.js +1 -1
- package/lib/browser/Transaction.js.map +1 -1
- package/lib/browser/interface.d.ts +130 -14
- package/lib/interface.d.ts +130 -14
- package/package.json +3 -1
package/lib/Contract.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Signer, SignerInterface } from "./Signer";
|
|
2
2
|
import { Provider } from "./Provider";
|
|
3
3
|
import { Serializer } from "./Serializer";
|
|
4
|
-
import { TransactionJsonWait, Abi, CallContractOptions, DecodedOperationJson, OperationJson, DeployOptions, TransactionReceipt } from "./interface";
|
|
4
|
+
import { TransactionJsonWait, Abi, CallContractOptions, DecodedOperationJson, OperationJson, DeployOptions, TransactionReceipt, EventData, DecodedEventData } from "./interface";
|
|
5
5
|
/**
|
|
6
6
|
* The contract class contains the contract ID and contract entries
|
|
7
7
|
* definition needed to encode/decode operations during the
|
|
@@ -147,6 +147,18 @@ export declare class Contract {
|
|
|
147
147
|
* Get contract Id
|
|
148
148
|
*/
|
|
149
149
|
getId(): string;
|
|
150
|
+
/**
|
|
151
|
+
* Fetch the ABI from the contract meta store. The provider must
|
|
152
|
+
* have contract_meta_store microservice enabled.
|
|
153
|
+
*/
|
|
154
|
+
fetcthAbi(opts?: {
|
|
155
|
+
updateFunctions: boolean;
|
|
156
|
+
updateSerializer: boolean;
|
|
157
|
+
}): Promise<Abi | undefined>;
|
|
158
|
+
/**
|
|
159
|
+
* Create the contract functions based on the ABI
|
|
160
|
+
*/
|
|
161
|
+
updateFunctionsFromAbi(): boolean;
|
|
150
162
|
/**
|
|
151
163
|
* Function to deploy a new smart contract.
|
|
152
164
|
* The Bytecode must be defined in the constructor of the class
|
|
@@ -246,5 +258,37 @@ export declare class Contract {
|
|
|
246
258
|
* ```
|
|
247
259
|
*/
|
|
248
260
|
decodeOperation(op: OperationJson): Promise<DecodedOperationJson>;
|
|
261
|
+
/**
|
|
262
|
+
* Decode an event received in a receipt
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* ```ts
|
|
266
|
+
* const contract = new Contract({
|
|
267
|
+
* id: "19JntSm8pSNETT9aHTwAUHC5RMoaSmgZPJ",
|
|
268
|
+
* abi: utils.tokenAbi,
|
|
269
|
+
* });
|
|
270
|
+
* const event = {
|
|
271
|
+
* sequence: 1,
|
|
272
|
+
* source: "19JntSm8pSNETT9aHTwAUHC5RMoaSmgZPJ",
|
|
273
|
+
* name: "koinos.contracts.token.mint_event",
|
|
274
|
+
* data: "ChkAxjdqxuwS-B50lPQ-lqhRBA3bf2b2ooAHENrw3Ek=",
|
|
275
|
+
* impacted: ["1K55BRw87nd64a7aiRarp6DLGRzYvoJo8J"],
|
|
276
|
+
* };
|
|
277
|
+
* const eventDecoded = await contract.decodeEvent(event);
|
|
278
|
+
* console.log(eventDecoded);
|
|
279
|
+
* // {
|
|
280
|
+
* // sequence: 1,
|
|
281
|
+
* // source: "19JntSm8pSNETT9aHTwAUHC5RMoaSmgZPJ",
|
|
282
|
+
* // name: "koinos.contracts.token.mint_event",
|
|
283
|
+
* // data: "ChkAxjdqxuwS-B50lPQ-lqhRBA3bf2b2ooAHENrw3Ek=",
|
|
284
|
+
* // impacted: ["1K55BRw87nd64a7aiRarp6DLGRzYvoJo8J"],
|
|
285
|
+
* // args: {
|
|
286
|
+
* // to: "1K55BRw87nd64a7aiRarp6DLGRzYvoJo8J",
|
|
287
|
+
* // value: "154613850",
|
|
288
|
+
* // },
|
|
289
|
+
* // }
|
|
290
|
+
* ```
|
|
291
|
+
*/
|
|
292
|
+
decodeEvent(event: EventData): Promise<DecodedEventData>;
|
|
249
293
|
}
|
|
250
294
|
export default Contract;
|
package/lib/Contract.js
CHANGED
|
@@ -80,6 +80,9 @@ class Contract {
|
|
|
80
80
|
else if (c.abi && c.abi.koilib_types) {
|
|
81
81
|
this.serializer = new Serializer_1.Serializer(c.abi.koilib_types);
|
|
82
82
|
}
|
|
83
|
+
else if (c.abi && c.abi.types) {
|
|
84
|
+
this.serializer = new Serializer_1.Serializer(c.abi.types);
|
|
85
|
+
}
|
|
83
86
|
this.options = {
|
|
84
87
|
signTransaction: true,
|
|
85
88
|
sendTransaction: true,
|
|
@@ -88,83 +91,7 @@ class Contract {
|
|
|
88
91
|
...c.options,
|
|
89
92
|
};
|
|
90
93
|
this.functions = {};
|
|
91
|
-
|
|
92
|
-
Object.keys(this.abi.methods).forEach((name) => {
|
|
93
|
-
this.functions[name] = async (argu = {}, options) => {
|
|
94
|
-
if (!this.provider)
|
|
95
|
-
throw new Error("provider not found");
|
|
96
|
-
if (!this.abi || !this.abi.methods)
|
|
97
|
-
throw new Error("Methods are not defined");
|
|
98
|
-
if (!this.abi.methods[name])
|
|
99
|
-
throw new Error(`Method ${name} not defined in the ABI`);
|
|
100
|
-
const opts = {
|
|
101
|
-
...this.options,
|
|
102
|
-
...options,
|
|
103
|
-
};
|
|
104
|
-
const { read_only: readOnly, return: output, default_output: defaultOutput, preformat_argument: preformatArgument, preformat_return: preformatReturn, } = this.abi.methods[name];
|
|
105
|
-
let args;
|
|
106
|
-
if (typeof preformatArgument === "function") {
|
|
107
|
-
args = preformatArgument(argu);
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
args = argu;
|
|
111
|
-
}
|
|
112
|
-
const operation = await this.encodeOperation({ name, args });
|
|
113
|
-
if (opts.onlyOperation) {
|
|
114
|
-
return { operation };
|
|
115
|
-
}
|
|
116
|
-
if (readOnly) {
|
|
117
|
-
if (!output)
|
|
118
|
-
throw new Error(`No output defined for ${name}`);
|
|
119
|
-
// read contract
|
|
120
|
-
const { result: resultEncoded } = await this.provider.readContract(operation.call_contract);
|
|
121
|
-
let result = defaultOutput;
|
|
122
|
-
if (resultEncoded) {
|
|
123
|
-
result = await this.serializer.deserialize(resultEncoded, output);
|
|
124
|
-
}
|
|
125
|
-
if (typeof preformatReturn === "function") {
|
|
126
|
-
result = preformatReturn(result);
|
|
127
|
-
}
|
|
128
|
-
return { operation, result };
|
|
129
|
-
}
|
|
130
|
-
// write contract (sign and send)
|
|
131
|
-
if (!this.signer)
|
|
132
|
-
throw new Error("signer not found");
|
|
133
|
-
let tx = await this.signer.prepareTransaction({
|
|
134
|
-
header: {
|
|
135
|
-
...(opts.chainId && { chain_id: opts.chainId }),
|
|
136
|
-
...(opts.rcLimit && { rc_limit: opts.rcLimit }),
|
|
137
|
-
...(opts.nonce && { nonce: opts.nonce }),
|
|
138
|
-
...(opts.payer && { payer: opts.payer }),
|
|
139
|
-
...(opts.payee && { payee: opts.payee }),
|
|
140
|
-
},
|
|
141
|
-
operations: [
|
|
142
|
-
...(opts.previousOperations ? opts.previousOperations : []),
|
|
143
|
-
operation,
|
|
144
|
-
...(opts.nextOperations ? opts.nextOperations : []),
|
|
145
|
-
],
|
|
146
|
-
});
|
|
147
|
-
if (opts.sendAbis) {
|
|
148
|
-
if (!opts.abis)
|
|
149
|
-
opts.abis = {};
|
|
150
|
-
const contractId = this.getId();
|
|
151
|
-
if (!opts.abis[contractId])
|
|
152
|
-
opts.abis[contractId] = this.abi;
|
|
153
|
-
}
|
|
154
|
-
// return result if the transaction will not be broadcasted
|
|
155
|
-
if (!opts.sendTransaction) {
|
|
156
|
-
const noWait = () => {
|
|
157
|
-
throw new Error("This transaction was not broadcasted");
|
|
158
|
-
};
|
|
159
|
-
if (opts.signTransaction)
|
|
160
|
-
tx = await this.signer.signTransaction(tx, opts.sendAbis ? opts.abis : undefined);
|
|
161
|
-
return { operation, transaction: { ...tx, wait: noWait } };
|
|
162
|
-
}
|
|
163
|
-
const { transaction, receipt } = await this.signer.sendTransaction(tx, opts);
|
|
164
|
-
return { operation, transaction, receipt };
|
|
165
|
-
};
|
|
166
|
-
});
|
|
167
|
-
}
|
|
94
|
+
this.updateFunctionsFromAbi();
|
|
168
95
|
}
|
|
169
96
|
/**
|
|
170
97
|
* Get contract Id
|
|
@@ -172,6 +99,115 @@ class Contract {
|
|
|
172
99
|
getId() {
|
|
173
100
|
return (0, utils_1.encodeBase58)(this.id);
|
|
174
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Fetch the ABI from the contract meta store. The provider must
|
|
104
|
+
* have contract_meta_store microservice enabled.
|
|
105
|
+
*/
|
|
106
|
+
async fetcthAbi(opts = {
|
|
107
|
+
updateFunctions: true,
|
|
108
|
+
updateSerializer: true,
|
|
109
|
+
}) {
|
|
110
|
+
if (!this.provider)
|
|
111
|
+
throw new Error("provider not found");
|
|
112
|
+
const response = await this.provider.call("contract_meta_store.get_contract_meta", {
|
|
113
|
+
contract_id: this.getId(),
|
|
114
|
+
});
|
|
115
|
+
if (!response.meta || !response.meta.abi)
|
|
116
|
+
return undefined;
|
|
117
|
+
this.abi = JSON.parse(response.meta.abi);
|
|
118
|
+
if (opts.updateFunctions)
|
|
119
|
+
this.updateFunctionsFromAbi();
|
|
120
|
+
if (opts.updateSerializer) {
|
|
121
|
+
if (this.abi.koilib_types)
|
|
122
|
+
this.serializer = new Serializer_1.Serializer(this.abi.koilib_types);
|
|
123
|
+
else if (this.abi.types)
|
|
124
|
+
this.serializer = new Serializer_1.Serializer(this.abi.types);
|
|
125
|
+
}
|
|
126
|
+
return this.abi;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Create the contract functions based on the ABI
|
|
130
|
+
*/
|
|
131
|
+
updateFunctionsFromAbi() {
|
|
132
|
+
if (!this.abi || !this.abi.methods)
|
|
133
|
+
return false;
|
|
134
|
+
Object.keys(this.abi.methods).forEach((name) => {
|
|
135
|
+
this.functions[name] = async (argu = {}, options) => {
|
|
136
|
+
if (!this.provider)
|
|
137
|
+
throw new Error("provider not found");
|
|
138
|
+
if (!this.abi || !this.abi.methods)
|
|
139
|
+
throw new Error("Methods are not defined");
|
|
140
|
+
if (!this.abi.methods[name])
|
|
141
|
+
throw new Error(`Method ${name} not defined in the ABI`);
|
|
142
|
+
const opts = {
|
|
143
|
+
...this.options,
|
|
144
|
+
...options,
|
|
145
|
+
};
|
|
146
|
+
const { read_only: readOnly, return: output, default_output: defaultOutput, preformat_argument: preformatArgument, preformat_return: preformatReturn, } = this.abi.methods[name];
|
|
147
|
+
let args;
|
|
148
|
+
if (typeof preformatArgument === "function") {
|
|
149
|
+
args = preformatArgument(argu);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
args = argu;
|
|
153
|
+
}
|
|
154
|
+
const operation = await this.encodeOperation({ name, args });
|
|
155
|
+
if (opts.onlyOperation) {
|
|
156
|
+
return { operation };
|
|
157
|
+
}
|
|
158
|
+
if (readOnly) {
|
|
159
|
+
if (!output)
|
|
160
|
+
throw new Error(`No output defined for ${name}`);
|
|
161
|
+
// read contract
|
|
162
|
+
const { result: resultEncoded } = await this.provider.readContract(operation.call_contract);
|
|
163
|
+
let result = defaultOutput;
|
|
164
|
+
if (resultEncoded) {
|
|
165
|
+
result = await this.serializer.deserialize(resultEncoded, output);
|
|
166
|
+
}
|
|
167
|
+
if (typeof preformatReturn === "function") {
|
|
168
|
+
result = preformatReturn(result);
|
|
169
|
+
}
|
|
170
|
+
return { operation, result };
|
|
171
|
+
}
|
|
172
|
+
// write contract (sign and send)
|
|
173
|
+
if (!this.signer)
|
|
174
|
+
throw new Error("signer not found");
|
|
175
|
+
let tx = await this.signer.prepareTransaction({
|
|
176
|
+
header: {
|
|
177
|
+
...(opts.chainId && { chain_id: opts.chainId }),
|
|
178
|
+
...(opts.rcLimit && { rc_limit: opts.rcLimit }),
|
|
179
|
+
...(opts.nonce && { nonce: opts.nonce }),
|
|
180
|
+
...(opts.payer && { payer: opts.payer }),
|
|
181
|
+
...(opts.payee && { payee: opts.payee }),
|
|
182
|
+
},
|
|
183
|
+
operations: [
|
|
184
|
+
...(opts.previousOperations ? opts.previousOperations : []),
|
|
185
|
+
operation,
|
|
186
|
+
...(opts.nextOperations ? opts.nextOperations : []),
|
|
187
|
+
],
|
|
188
|
+
});
|
|
189
|
+
if (opts.sendAbis) {
|
|
190
|
+
if (!opts.abis)
|
|
191
|
+
opts.abis = {};
|
|
192
|
+
const contractId = this.getId();
|
|
193
|
+
if (!opts.abis[contractId])
|
|
194
|
+
opts.abis[contractId] = this.abi;
|
|
195
|
+
}
|
|
196
|
+
// return result if the transaction will not be broadcasted
|
|
197
|
+
if (!opts.sendTransaction) {
|
|
198
|
+
const noWait = () => {
|
|
199
|
+
throw new Error("This transaction was not broadcasted");
|
|
200
|
+
};
|
|
201
|
+
if (opts.signTransaction)
|
|
202
|
+
tx = await this.signer.signTransaction(tx, opts.sendAbis ? opts.abis : undefined);
|
|
203
|
+
return { operation, transaction: { ...tx, wait: noWait } };
|
|
204
|
+
}
|
|
205
|
+
const { transaction, receipt } = await this.signer.sendTransaction(tx, opts);
|
|
206
|
+
return { operation, transaction, receipt };
|
|
207
|
+
};
|
|
208
|
+
});
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
175
211
|
/**
|
|
176
212
|
* Function to deploy a new smart contract.
|
|
177
213
|
* The Bytecode must be defined in the constructor of the class
|
|
@@ -362,6 +398,49 @@ class Contract {
|
|
|
362
398
|
}
|
|
363
399
|
throw new Error(`Unknown method id ${op.call_contract.entry_point}`);
|
|
364
400
|
}
|
|
401
|
+
/**
|
|
402
|
+
* Decode an event received in a receipt
|
|
403
|
+
*
|
|
404
|
+
* @example
|
|
405
|
+
* ```ts
|
|
406
|
+
* const contract = new Contract({
|
|
407
|
+
* id: "19JntSm8pSNETT9aHTwAUHC5RMoaSmgZPJ",
|
|
408
|
+
* abi: utils.tokenAbi,
|
|
409
|
+
* });
|
|
410
|
+
* const event = {
|
|
411
|
+
* sequence: 1,
|
|
412
|
+
* source: "19JntSm8pSNETT9aHTwAUHC5RMoaSmgZPJ",
|
|
413
|
+
* name: "koinos.contracts.token.mint_event",
|
|
414
|
+
* data: "ChkAxjdqxuwS-B50lPQ-lqhRBA3bf2b2ooAHENrw3Ek=",
|
|
415
|
+
* impacted: ["1K55BRw87nd64a7aiRarp6DLGRzYvoJo8J"],
|
|
416
|
+
* };
|
|
417
|
+
* const eventDecoded = await contract.decodeEvent(event);
|
|
418
|
+
* console.log(eventDecoded);
|
|
419
|
+
* // {
|
|
420
|
+
* // sequence: 1,
|
|
421
|
+
* // source: "19JntSm8pSNETT9aHTwAUHC5RMoaSmgZPJ",
|
|
422
|
+
* // name: "koinos.contracts.token.mint_event",
|
|
423
|
+
* // data: "ChkAxjdqxuwS-B50lPQ-lqhRBA3bf2b2ooAHENrw3Ek=",
|
|
424
|
+
* // impacted: ["1K55BRw87nd64a7aiRarp6DLGRzYvoJo8J"],
|
|
425
|
+
* // args: {
|
|
426
|
+
* // to: "1K55BRw87nd64a7aiRarp6DLGRzYvoJo8J",
|
|
427
|
+
* // value: "154613850",
|
|
428
|
+
* // },
|
|
429
|
+
* // }
|
|
430
|
+
* ```
|
|
431
|
+
*/
|
|
432
|
+
async decodeEvent(event) {
|
|
433
|
+
if (!this.serializer)
|
|
434
|
+
throw new Error("Serializer is not defined");
|
|
435
|
+
let typeName = event.name;
|
|
436
|
+
if (this.abi && this.abi.events && this.abi.events[event.name]) {
|
|
437
|
+
typeName = this.abi.events[event.name].argument;
|
|
438
|
+
}
|
|
439
|
+
const args = typeName
|
|
440
|
+
? await this.serializer.deserialize(event.data, typeName)
|
|
441
|
+
: {};
|
|
442
|
+
return { ...event, args };
|
|
443
|
+
}
|
|
365
444
|
}
|
|
366
445
|
exports.Contract = Contract;
|
|
367
446
|
exports.default = Contract;
|
package/lib/Contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Contract.js","sourceRoot":"","sources":["../src/Contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Contract.js","sourceRoot":"","sources":["../src/Contract.ts"],"names":[],"mappings":"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"}
|
package/lib/Serializer.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Root, Type, INamespace } from "protobufjs
|
|
1
|
+
import { Root, Type, INamespace } from "protobufjs";
|
|
2
2
|
/**
|
|
3
3
|
* The serializer class serialize and deserialize data using
|
|
4
|
-
* protocol buffers.
|
|
4
|
+
* protocol buffers. It accepts the descriptor in JSON or binary format
|
|
5
5
|
*
|
|
6
|
-
* NOTE: This class uses the [protobufjs
|
|
6
|
+
* NOTE: This class uses the [protobufjs](https://www.npmjs.com/package/protobufjs)
|
|
7
7
|
* library internally, which uses reflection (use of _eval_
|
|
8
8
|
* and _new Function_) for the construction of the types.
|
|
9
9
|
* This could cause issues in environments where _eval_ is not
|
|
@@ -15,23 +15,44 @@ import { Root, Type, INamespace } from "protobufjs/light";
|
|
|
15
15
|
* @example
|
|
16
16
|
*
|
|
17
17
|
* ```ts
|
|
18
|
+
* // using descriptor JSON
|
|
18
19
|
* const descriptorJson = {
|
|
19
20
|
* nested: {
|
|
20
21
|
* awesomepackage: {
|
|
21
22
|
* nested: {
|
|
22
23
|
* AwesomeMessage: {
|
|
23
24
|
* fields: {
|
|
24
|
-
*
|
|
25
|
+
* awesome_field: {
|
|
25
26
|
* type: "string",
|
|
26
|
-
* id: 1
|
|
27
|
-
* }
|
|
28
|
-
* }
|
|
29
|
-
* }
|
|
30
|
-
* }
|
|
31
|
-
* }
|
|
32
|
-
* }
|
|
33
|
-
* }
|
|
34
|
-
* const
|
|
27
|
+
* id: 1,
|
|
28
|
+
* },
|
|
29
|
+
* },
|
|
30
|
+
* },
|
|
31
|
+
* },
|
|
32
|
+
* },
|
|
33
|
+
* },
|
|
34
|
+
* };
|
|
35
|
+
* const serializer1 = new Serializer(descriptorJson);
|
|
36
|
+
* const message1 = await serializer1.deserialize(
|
|
37
|
+
* "CgZrb2lub3M=",
|
|
38
|
+
* "AwesomeMessage"
|
|
39
|
+
* );
|
|
40
|
+
* console.log(message1);
|
|
41
|
+
* // { awesome_field: 'koinos' }
|
|
42
|
+
*
|
|
43
|
+
* // using descriptor binary
|
|
44
|
+
* const descriptorBinary =
|
|
45
|
+
* "Cl4KDWF3ZXNvbWUucHJvdG8SDmF3ZXNvbWVwYWN" +
|
|
46
|
+
* "rYWdlIjUKDkF3ZXNvbWVNZXNzYWdlEiMKDWF3ZX" +
|
|
47
|
+
* "NvbWVfZmllbGQYASABKAlSDGF3ZXNvbWVGaWVsZ" +
|
|
48
|
+
* "GIGcHJvdG8z";
|
|
49
|
+
* const serializer2 = new Serializer(descriptorBinary);
|
|
50
|
+
* const message2 = await serializer2.deserialize(
|
|
51
|
+
* "CgZrb2lub3M=",
|
|
52
|
+
* "AwesomeMessage"
|
|
53
|
+
* );
|
|
54
|
+
* console.log(message2);
|
|
55
|
+
* // { awesome_field: 'koinos' }
|
|
35
56
|
* ```
|
|
36
57
|
*/
|
|
37
58
|
export declare class Serializer {
|
|
@@ -39,7 +60,7 @@ export declare class Serializer {
|
|
|
39
60
|
* Protobuffers descriptor in JSON format.
|
|
40
61
|
* See https://www.npmjs.com/package/protobufjs#using-json-descriptors
|
|
41
62
|
*/
|
|
42
|
-
types: INamespace;
|
|
63
|
+
types: INamespace | string;
|
|
43
64
|
/**
|
|
44
65
|
* Protobuffer definitions
|
|
45
66
|
*/
|
|
@@ -60,7 +81,7 @@ export declare class Serializer {
|
|
|
60
81
|
serialize: boolean;
|
|
61
82
|
deserialize: boolean;
|
|
62
83
|
};
|
|
63
|
-
constructor(types: INamespace, opts?: {
|
|
84
|
+
constructor(types: INamespace | string, opts?: {
|
|
64
85
|
/**
|
|
65
86
|
* Default type name. Use this option when you
|
|
66
87
|
* always want to serialize/deserialize the same type
|
package/lib/Serializer.js
CHANGED
|
@@ -1,8 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.Serializer = void 0;
|
|
4
27
|
/* eslint-disable @typescript-eslint/require-await */
|
|
5
|
-
const
|
|
28
|
+
const protobufjs_1 = require("protobufjs");
|
|
29
|
+
const koinosPbToProto = __importStar(require("@roamin/koinos-pb-to-proto"));
|
|
6
30
|
const utils_1 = require("./utils");
|
|
7
31
|
const OP_BYTES_1 = "(btype)";
|
|
8
32
|
const OP_BYTES_2 = "(koinos.btype)";
|
|
@@ -25,9 +49,9 @@ const nativeTypes = [
|
|
|
25
49
|
];
|
|
26
50
|
/**
|
|
27
51
|
* The serializer class serialize and deserialize data using
|
|
28
|
-
* protocol buffers.
|
|
52
|
+
* protocol buffers. It accepts the descriptor in JSON or binary format
|
|
29
53
|
*
|
|
30
|
-
* NOTE: This class uses the [protobufjs
|
|
54
|
+
* NOTE: This class uses the [protobufjs](https://www.npmjs.com/package/protobufjs)
|
|
31
55
|
* library internally, which uses reflection (use of _eval_
|
|
32
56
|
* and _new Function_) for the construction of the types.
|
|
33
57
|
* This could cause issues in environments where _eval_ is not
|
|
@@ -39,23 +63,44 @@ const nativeTypes = [
|
|
|
39
63
|
* @example
|
|
40
64
|
*
|
|
41
65
|
* ```ts
|
|
66
|
+
* // using descriptor JSON
|
|
42
67
|
* const descriptorJson = {
|
|
43
68
|
* nested: {
|
|
44
69
|
* awesomepackage: {
|
|
45
70
|
* nested: {
|
|
46
71
|
* AwesomeMessage: {
|
|
47
72
|
* fields: {
|
|
48
|
-
*
|
|
73
|
+
* awesome_field: {
|
|
49
74
|
* type: "string",
|
|
50
|
-
* id: 1
|
|
51
|
-
* }
|
|
52
|
-
* }
|
|
53
|
-
* }
|
|
54
|
-
* }
|
|
55
|
-
* }
|
|
56
|
-
* }
|
|
57
|
-
* }
|
|
58
|
-
* const
|
|
75
|
+
* id: 1,
|
|
76
|
+
* },
|
|
77
|
+
* },
|
|
78
|
+
* },
|
|
79
|
+
* },
|
|
80
|
+
* },
|
|
81
|
+
* },
|
|
82
|
+
* };
|
|
83
|
+
* const serializer1 = new Serializer(descriptorJson);
|
|
84
|
+
* const message1 = await serializer1.deserialize(
|
|
85
|
+
* "CgZrb2lub3M=",
|
|
86
|
+
* "AwesomeMessage"
|
|
87
|
+
* );
|
|
88
|
+
* console.log(message1);
|
|
89
|
+
* // { awesome_field: 'koinos' }
|
|
90
|
+
*
|
|
91
|
+
* // using descriptor binary
|
|
92
|
+
* const descriptorBinary =
|
|
93
|
+
* "Cl4KDWF3ZXNvbWUucHJvdG8SDmF3ZXNvbWVwYWN" +
|
|
94
|
+
* "rYWdlIjUKDkF3ZXNvbWVNZXNzYWdlEiMKDWF3ZX" +
|
|
95
|
+
* "NvbWVfZmllbGQYASABKAlSDGF3ZXNvbWVGaWVsZ" +
|
|
96
|
+
* "GIGcHJvdG8z";
|
|
97
|
+
* const serializer2 = new Serializer(descriptorBinary);
|
|
98
|
+
* const message2 = await serializer2.deserialize(
|
|
99
|
+
* "CgZrb2lub3M=",
|
|
100
|
+
* "AwesomeMessage"
|
|
101
|
+
* );
|
|
102
|
+
* console.log(message2);
|
|
103
|
+
* // { awesome_field: 'koinos' }
|
|
59
104
|
* ```
|
|
60
105
|
*/
|
|
61
106
|
class Serializer {
|
|
@@ -73,7 +118,16 @@ class Serializer {
|
|
|
73
118
|
deserialize: false,
|
|
74
119
|
};
|
|
75
120
|
this.types = types;
|
|
76
|
-
|
|
121
|
+
if (typeof types === "string") {
|
|
122
|
+
const protos = koinosPbToProto.convert(types);
|
|
123
|
+
this.root = new protobufjs_1.Root();
|
|
124
|
+
for (const proto of protos) {
|
|
125
|
+
(0, protobufjs_1.parse)(proto.definition, this.root, { keepCase: true });
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
this.root = protobufjs_1.Root.fromJSON(types);
|
|
130
|
+
}
|
|
77
131
|
if (opts === null || opts === void 0 ? void 0 : opts.defaultTypeName)
|
|
78
132
|
this.defaultType = this.root.lookupType(opts.defaultTypeName);
|
|
79
133
|
if (opts && typeof opts.bytesConversion !== "undefined")
|
|
@@ -179,7 +233,13 @@ class Serializer {
|
|
|
179
233
|
* when bytesConversion param is true.
|
|
180
234
|
*/
|
|
181
235
|
async serialize(valueDecoded, typeName, opts) {
|
|
182
|
-
|
|
236
|
+
let protobufType;
|
|
237
|
+
if (this.defaultType)
|
|
238
|
+
protobufType = this.defaultType;
|
|
239
|
+
else if (!typeName)
|
|
240
|
+
throw new Error("no typeName defined");
|
|
241
|
+
else
|
|
242
|
+
protobufType = this.root.lookupType(typeName);
|
|
183
243
|
let object = {};
|
|
184
244
|
const bytesConversion = (opts === null || opts === void 0 ? void 0 : opts.bytesConversion) === undefined
|
|
185
245
|
? this.bytesConversion
|
|
@@ -206,7 +266,13 @@ class Serializer {
|
|
|
206
266
|
const valueBuffer = typeof valueEncoded === "string"
|
|
207
267
|
? (0, utils_1.decodeBase64url)(valueEncoded)
|
|
208
268
|
: valueEncoded;
|
|
209
|
-
|
|
269
|
+
let protobufType;
|
|
270
|
+
if (this.defaultType)
|
|
271
|
+
protobufType = this.defaultType;
|
|
272
|
+
else if (!typeName)
|
|
273
|
+
throw new Error("no typeName defined");
|
|
274
|
+
else
|
|
275
|
+
protobufType = this.root.lookupType(typeName);
|
|
210
276
|
const message = protobufType.decode(valueBuffer);
|
|
211
277
|
const object = protobufType.toObject(message, {
|
|
212
278
|
longs: String,
|
package/lib/Serializer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Serializer.js","sourceRoot":"","sources":["../src/Serializer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Serializer.js","sourceRoot":"","sources":["../src/Serializer.ts"],"names":[],"mappings":"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"}
|