airgap-coin-lib
Version:
The airgap-coin-lib is a protocol agnostic library to prepare, sign and broadcast cryptocurrency transactions.
53 lines • 2.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable: max-classes-per-file
var SubstrateNetwork_1 = require("../../../SubstrateNetwork");
var SCALEDecoder_1 = require("../scale/SCALEDecoder");
var SubstrateAccountData = /** @class */ (function () {
function SubstrateAccountData(free, reserved, miscFrozen, feeFrozen) {
this.free = free;
this.reserved = reserved;
this.miscFrozen = miscFrozen;
this.feeFrozen = feeFrozen;
}
SubstrateAccountData.decode = function (network, raw) {
var decoder = new SCALEDecoder_1.SCALEDecoder(network, raw);
var free = decoder.decodeNextInt(128);
var reserved = decoder.decodeNextInt(128);
var miscFrozen = decoder.decodeNextInt(128);
var feeFrozen = decoder.decodeNextInt(128);
return {
bytesDecoded: free.bytesDecoded + reserved.bytesDecoded + miscFrozen.bytesDecoded + feeFrozen.bytesDecoded,
decoded: new SubstrateAccountData(free.decoded, reserved.decoded, miscFrozen.decoded, feeFrozen.decoded)
};
};
return SubstrateAccountData;
}());
var SubstrateAccountInfo = /** @class */ (function () {
function SubstrateAccountInfo(nonce, refcount, data) {
this.nonce = nonce;
this.refcount = refcount;
this.data = data;
}
SubstrateAccountInfo.decode = function (network, runtimeVersion, raw) {
var decoder = new SCALEDecoder_1.SCALEDecoder(network, raw);
var nonce = decoder.decodeNextInt(32);
var refcount = decoder.decodeNextInt(this.migrateRefcountLength(network, runtimeVersion));
var data = decoder.decodeNextObject(SubstrateAccountData.decode);
return new SubstrateAccountInfo(nonce.decoded, refcount.decoded, data.decoded);
};
SubstrateAccountInfo.migrateRefcountLength = function (network, runtimeVersion) {
if (runtimeVersion === undefined) {
return 32;
}
if (network === SubstrateNetwork_1.SubstrateNetwork.KUSAMA && runtimeVersion >= 2025 || network === SubstrateNetwork_1.SubstrateNetwork.POLKADOT && runtimeVersion >= 25) {
return 32;
}
else {
return 8;
}
};
return SubstrateAccountInfo;
}());
exports.SubstrateAccountInfo = SubstrateAccountInfo;
//# sourceMappingURL=SubstrateAccountInfo.js.map