@caminojs-nikos/caminojs
Version:
Camino Platform JS Library
92 lines • 9.92 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SubnetAuth = void 0;
/**
* @packageDocumentation
* @module API-PlatformVM-SubnetAuth
*/
const buffer_1 = require("buffer/");
const bintools_1 = __importDefault(require("../../utils/bintools"));
const utils_1 = require("../../utils");
const _1 = require(".");
/**
* @ignore
*/
const bintools = bintools_1.default.getInstance();
class SubnetAuth extends utils_1.Serializable {
constructor() {
super(...arguments);
this._typeName = "SubnetAuth";
this._typeID = _1.PlatformVMConstants.SUBNETAUTH;
this.addressIndices = [];
this.numAddressIndices = buffer_1.Buffer.alloc(4);
}
serialize(encoding = "hex") {
let fields = super.serialize(encoding);
return Object.assign({}, fields);
}
deserialize(fields, encoding = "hex") {
super.deserialize(fields, encoding);
}
/**
* Add an address index for Subnet Auth signing
*
* @param index the Buffer of the address index to add
*/
addAddressIndex(index) {
this.addressIndices.push(index);
this.numAddressIndices.writeUIntBE(this.addressIndices.length, 0, 4);
}
/**
* Returns the number of address indices as a number
*/
getNumAddressIndices() {
return this.numAddressIndices.readUIntBE(0, 4);
}
/**
* Returns an array of AddressIndices as Buffers
*/
getAddressIndices() {
return this.addressIndices;
}
/**
* Set an array of AddressIndices as Buffers
*/
setAddressIndices(addressIndices) {
this.addressIndices = addressIndices;
this.numAddressIndices.writeUIntBE(this.addressIndices.length, 0, 4);
}
fromBuffer(bytes, offset = 0) {
// increase offset for type id
offset += 4;
this.numAddressIndices = bintools.copyFrom(bytes, offset, offset + 4);
offset += 4;
this.addressIndices = [];
for (let i = 0; i < this.getNumAddressIndices(); i++) {
this.addressIndices.push(bintools.copyFrom(bytes, offset, offset + 4));
offset += 4;
}
return offset;
}
/**
* Returns a {@link https://github.com/feross/buffer|Buffer} representation of the [[SubnetAuth]].
*/
toBuffer() {
const typeIDBuf = buffer_1.Buffer.alloc(4);
typeIDBuf.writeUIntBE(this._typeID, 0, 4);
const numAddressIndices = buffer_1.Buffer.alloc(4);
numAddressIndices.writeIntBE(this.addressIndices.length, 0, 4);
const barr = [typeIDBuf, numAddressIndices];
let bsize = typeIDBuf.length + numAddressIndices.length;
this.addressIndices.forEach((addressIndex) => {
bsize += 4;
barr.push(addressIndex);
});
return buffer_1.Buffer.concat(barr, bsize);
}
}
exports.SubnetAuth = SubnetAuth;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibmV0YXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGlzL3BsYXRmb3Jtdm0vc3VibmV0YXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7O0dBR0c7QUFDSCxvQ0FBZ0M7QUFDaEMsb0VBQTJDO0FBQzNDLHVDQUE4RDtBQUM5RCx3QkFBdUM7QUFFdkM7O0dBRUc7QUFDSCxNQUFNLFFBQVEsR0FBYSxrQkFBUSxDQUFDLFdBQVcsRUFBRSxDQUFBO0FBRWpELE1BQWEsVUFBVyxTQUFRLG9CQUFZO0lBQTVDOztRQUNZLGNBQVMsR0FBRyxZQUFZLENBQUE7UUFDeEIsWUFBTyxHQUFHLHNCQUFtQixDQUFDLFVBQVUsQ0FBQTtRQTRDeEMsbUJBQWMsR0FBYSxFQUFFLENBQUE7UUFDN0Isc0JBQWlCLEdBQVcsZUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQStCdkQsQ0FBQztJQTFFQyxTQUFTLENBQUMsV0FBK0IsS0FBSztRQUM1QyxJQUFJLE1BQU0sR0FBVyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzlDLHlCQUNLLE1BQU0sRUFDVjtJQUNILENBQUM7SUFDRCxXQUFXLENBQUMsTUFBYyxFQUFFLFdBQStCLEtBQUs7UUFDOUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUN0RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUE7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCLENBQUMsY0FBd0I7UUFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUE7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDdEUsQ0FBQztJQUtELFVBQVUsQ0FBQyxLQUFhLEVBQUUsU0FBaUIsQ0FBQztRQUMxQyw4QkFBOEI7UUFDOUIsTUFBTSxJQUFJLENBQUMsQ0FBQTtRQUNYLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ3JFLE1BQU0sSUFBSSxDQUFDLENBQUE7UUFDWCxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQTtRQUN4QixLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3RFLE1BQU0sSUFBSSxDQUFDLENBQUE7U0FDWjtRQUNELE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE1BQU0sU0FBUyxHQUFXLGVBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDekMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN6QyxNQUFNLGlCQUFpQixHQUFXLGVBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakQsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM5RCxNQUFNLElBQUksR0FBYSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO1FBQ3JELElBQUksS0FBSyxHQUFXLFNBQVMsQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFBO1FBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBb0IsRUFBUSxFQUFFO1lBQ3pELEtBQUssSUFBSSxDQUFDLENBQUE7WUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ3pCLENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxlQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0NBQ0Y7QUE5RUQsZ0NBOEVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgQVBJLVBsYXRmb3JtVk0tU3VibmV0QXV0aFxuICovXG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tIFwiYnVmZmVyL1wiXG5pbXBvcnQgQmluVG9vbHMgZnJvbSBcIi4uLy4uL3V0aWxzL2JpbnRvb2xzXCJcbmltcG9ydCB7IFNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZEVuY29kaW5nIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCJcbmltcG9ydCB7IFBsYXRmb3JtVk1Db25zdGFudHMgfSBmcm9tIFwiLlwiXG5cbi8qKlxuICogQGlnbm9yZVxuICovXG5jb25zdCBiaW50b29sczogQmluVG9vbHMgPSBCaW5Ub29scy5nZXRJbnN0YW5jZSgpXG5cbmV4cG9ydCBjbGFzcyBTdWJuZXRBdXRoIGV4dGVuZHMgU2VyaWFsaXphYmxlIHtcbiAgcHJvdGVjdGVkIF90eXBlTmFtZSA9IFwiU3VibmV0QXV0aFwiXG4gIHByb3RlY3RlZCBfdHlwZUlEID0gUGxhdGZvcm1WTUNvbnN0YW50cy5TVUJORVRBVVRIXG5cbiAgc2VyaWFsaXplKGVuY29kaW5nOiBTZXJpYWxpemVkRW5jb2RpbmcgPSBcImhleFwiKTogb2JqZWN0IHtcbiAgICBsZXQgZmllbGRzOiBvYmplY3QgPSBzdXBlci5zZXJpYWxpemUoZW5jb2RpbmcpXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmZpZWxkc1xuICAgIH1cbiAgfVxuICBkZXNlcmlhbGl6ZShmaWVsZHM6IG9iamVjdCwgZW5jb2Rpbmc6IFNlcmlhbGl6ZWRFbmNvZGluZyA9IFwiaGV4XCIpIHtcbiAgICBzdXBlci5kZXNlcmlhbGl6ZShmaWVsZHMsIGVuY29kaW5nKVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBhZGRyZXNzIGluZGV4IGZvciBTdWJuZXQgQXV0aCBzaWduaW5nXG4gICAqXG4gICAqIEBwYXJhbSBpbmRleCB0aGUgQnVmZmVyIG9mIHRoZSBhZGRyZXNzIGluZGV4IHRvIGFkZFxuICAgKi9cbiAgYWRkQWRkcmVzc0luZGV4KGluZGV4OiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLmFkZHJlc3NJbmRpY2VzLnB1c2goaW5kZXgpXG4gICAgdGhpcy5udW1BZGRyZXNzSW5kaWNlcy53cml0ZVVJbnRCRSh0aGlzLmFkZHJlc3NJbmRpY2VzLmxlbmd0aCwgMCwgNClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYWRkcmVzcyBpbmRpY2VzIGFzIGEgbnVtYmVyXG4gICAqL1xuICBnZXROdW1BZGRyZXNzSW5kaWNlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm51bUFkZHJlc3NJbmRpY2VzLnJlYWRVSW50QkUoMCwgNClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIEFkZHJlc3NJbmRpY2VzIGFzIEJ1ZmZlcnNcbiAgICovXG4gIGdldEFkZHJlc3NJbmRpY2VzKCk6IEJ1ZmZlcltdIHtcbiAgICByZXR1cm4gdGhpcy5hZGRyZXNzSW5kaWNlc1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhbiBhcnJheSBvZiBBZGRyZXNzSW5kaWNlcyBhcyBCdWZmZXJzXG4gICAqL1xuICBzZXRBZGRyZXNzSW5kaWNlcyhhZGRyZXNzSW5kaWNlczogQnVmZmVyW10pIHtcbiAgICB0aGlzLmFkZHJlc3NJbmRpY2VzID0gYWRkcmVzc0luZGljZXNcbiAgICB0aGlzLm51bUFkZHJlc3NJbmRpY2VzLndyaXRlVUludEJFKHRoaXMuYWRkcmVzc0luZGljZXMubGVuZ3RoLCAwLCA0KVxuICB9XG5cbiAgcHJvdGVjdGVkIGFkZHJlc3NJbmRpY2VzOiBCdWZmZXJbXSA9IFtdXG4gIHByb3RlY3RlZCBudW1BZGRyZXNzSW5kaWNlczogQnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpXG5cbiAgZnJvbUJ1ZmZlcihieXRlczogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciA9IDApOiBudW1iZXIge1xuICAgIC8vIGluY3JlYXNlIG9mZnNldCBmb3IgdHlwZSBpZFxuICAgIG9mZnNldCArPSA0XG4gICAgdGhpcy5udW1BZGRyZXNzSW5kaWNlcyA9IGJpbnRvb2xzLmNvcHlGcm9tKGJ5dGVzLCBvZmZzZXQsIG9mZnNldCArIDQpXG4gICAgb2Zmc2V0ICs9IDRcbiAgICB0aGlzLmFkZHJlc3NJbmRpY2VzID0gW11cbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5nZXROdW1BZGRyZXNzSW5kaWNlcygpOyBpKyspIHtcbiAgICAgIHRoaXMuYWRkcmVzc0luZGljZXMucHVzaChiaW50b29scy5jb3B5RnJvbShieXRlcywgb2Zmc2V0LCBvZmZzZXQgKyA0KSlcbiAgICAgIG9mZnNldCArPSA0XG4gICAgfVxuICAgIHJldHVybiBvZmZzZXRcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyfEJ1ZmZlcn0gcmVwcmVzZW50YXRpb24gb2YgdGhlIFtbU3VibmV0QXV0aF1dLlxuICAgKi9cbiAgdG9CdWZmZXIoKTogQnVmZmVyIHtcbiAgICBjb25zdCB0eXBlSURCdWY6IEJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg0KVxuICAgIHR5cGVJREJ1Zi53cml0ZVVJbnRCRSh0aGlzLl90eXBlSUQsIDAsIDQpXG4gICAgY29uc3QgbnVtQWRkcmVzc0luZGljZXM6IEJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg0KVxuICAgIG51bUFkZHJlc3NJbmRpY2VzLndyaXRlSW50QkUodGhpcy5hZGRyZXNzSW5kaWNlcy5sZW5ndGgsIDAsIDQpXG4gICAgY29uc3QgYmFycjogQnVmZmVyW10gPSBbdHlwZUlEQnVmLCBudW1BZGRyZXNzSW5kaWNlc11cbiAgICBsZXQgYnNpemU6IG51bWJlciA9IHR5cGVJREJ1Zi5sZW5ndGggKyBudW1BZGRyZXNzSW5kaWNlcy5sZW5ndGhcbiAgICB0aGlzLmFkZHJlc3NJbmRpY2VzLmZvckVhY2goKGFkZHJlc3NJbmRleDogQnVmZmVyKTogdm9pZCA9PiB7XG4gICAgICBic2l6ZSArPSA0XG4gICAgICBiYXJyLnB1c2goYWRkcmVzc0luZGV4KVxuICAgIH0pXG4gICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoYmFyciwgYnNpemUpXG4gIH1cbn1cbiJdfQ==