@kubectl/caminojs
Version:
Camino Platform JS Library
116 lines • 14.2 kB
JavaScript
"use strict";
/**
* @packageDocumentation
* @module Utils-Networks
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const bn_js_1 = __importDefault(require("bn.js"));
const constants_1 = require("./constants");
const TestNetwork = {
hrp: constants_1.TestHRP,
X: {
blockchainID: constants_1.TestXBlockchainID,
alias: constants_1.XChainAlias,
vm: constants_1.XChainVMName,
avaxAssetID: constants_1.TestAvaxAssetID,
avaxAssetAlias: "AVAX",
txFee: constants_1.MILLIAVAX,
creationTxFee: constants_1.CENTIAVAX,
mintTxFee: constants_1.MILLIAVAX
},
P: {
blockchainID: constants_1.DefaultPlatformChainID,
alias: constants_1.PChainAlias,
vm: constants_1.PChainVMName,
txFee: constants_1.MILLIAVAX,
creationTxFee: constants_1.CENTIAVAX,
createSubnetTx: constants_1.ONEAVAX,
createChainTx: constants_1.ONEAVAX,
minConsumption: 0.1,
maxConsumption: 0.12,
maxStakingDuration: new bn_js_1.default(31536000),
maxSupply: new bn_js_1.default(720000000).mul(constants_1.ONEAVAX),
minStake: constants_1.ONEAVAX,
minStakeDuration: 24 * 60 * 60,
maxStakeDuration: 365 * 24 * 60 * 60,
minDelegationStake: constants_1.ONEAVAX,
minDelegationFee: new bn_js_1.default(2)
},
C: {
blockchainID: constants_1.TestCBlockchainID,
alias: constants_1.CChainAlias,
vm: constants_1.CChainVMName,
txBytesGas: 1,
costPerSignature: 1000,
txFee: constants_1.MILLIAVAX,
gasPrice: constants_1.GWEI.mul(new bn_js_1.default(225)),
minGasPrice: constants_1.GWEI.mul(new bn_js_1.default(25)),
maxGasPrice: constants_1.GWEI.mul(new bn_js_1.default(1000)),
chainID: 43112
}
};
// Does not support p:getConfiguration
const AvaxMainNetwork = {
hrp: "avax",
X: {
blockchainID: "2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM",
alias: constants_1.XChainAlias,
vm: constants_1.XChainVMName,
avaxAssetID: "FvwEAhmxKfeiG8SnEvq42hc6whRyY3EFYAvebMqDNDGCgxN5Z",
avaxAssetAlias: "AVAX",
txFee: constants_1.MILLIAVAX,
creationTxFee: constants_1.CENTIAVAX,
mintTxFee: constants_1.MILLIAVAX
},
P: {
blockchainID: constants_1.DefaultPlatformChainID,
alias: constants_1.PChainAlias,
vm: constants_1.PChainVMName,
txFee: constants_1.MILLIAVAX,
creationTxFee: constants_1.CENTIAVAX,
createSubnetTx: constants_1.ONEAVAX,
createChainTx: constants_1.ONEAVAX,
minConsumption: 0.1,
maxConsumption: 0.12,
maxStakingDuration: new bn_js_1.default(31536000),
maxSupply: new bn_js_1.default(720000000).mul(constants_1.ONEAVAX),
minStake: constants_1.ONEAVAX.mul(new bn_js_1.default(2000)),
minStakeDuration: 2 * 7 * 24 * 60 * 60,
maxStakeDuration: 365 * 24 * 60 * 60,
minDelegationStake: constants_1.ONEAVAX.mul(new bn_js_1.default(25)),
minDelegationFee: new bn_js_1.default(2)
},
C: {
blockchainID: "2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5",
alias: constants_1.CChainAlias,
vm: constants_1.CChainVMName,
txBytesGas: 1,
costPerSignature: 1000,
txFee: constants_1.MILLIAVAX,
gasPrice: constants_1.GWEI.mul(new bn_js_1.default(225)),
minGasPrice: constants_1.GWEI.mul(new bn_js_1.default(25)),
maxGasPrice: constants_1.GWEI.mul(new bn_js_1.default(1000)),
chainID: 43114
}
};
/**
* A class for storing predefined / fetched networks
*/
class Networks {
constructor() {
this.registry = new Map();
this.registerNetwork(constants_1.DefaultNetworkID, AvaxMainNetwork);
this.registerNetwork(constants_1.TestNetworkID, TestNetwork);
}
registerNetwork(networkID, network) {
this.registry[networkID.toString()] = network;
}
getNetwork(networkID) {
return this.registry[networkID.toString()];
}
}
exports.default = new Networks();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvbmV0d29ya3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7Ozs7QUFFSCxrREFBc0I7QUFDdEIsMkNBa0JvQjtBQXNEcEIsTUFBTSxXQUFXLEdBQVk7SUFDM0IsR0FBRyxFQUFFLG1CQUFPO0lBQ1osQ0FBQyxFQUFFO1FBQ0QsWUFBWSxFQUFFLDZCQUFpQjtRQUMvQixLQUFLLEVBQUUsdUJBQVc7UUFDbEIsRUFBRSxFQUFFLHdCQUFZO1FBQ2hCLFdBQVcsRUFBRSwyQkFBZTtRQUM1QixjQUFjLEVBQUUsTUFBTTtRQUN0QixLQUFLLEVBQUUscUJBQVM7UUFDaEIsYUFBYSxFQUFFLHFCQUFTO1FBQ3hCLFNBQVMsRUFBRSxxQkFBUztLQUNyQjtJQUNELENBQUMsRUFBRTtRQUNELFlBQVksRUFBRSxrQ0FBc0I7UUFDcEMsS0FBSyxFQUFFLHVCQUFXO1FBQ2xCLEVBQUUsRUFBRSx3QkFBWTtRQUNoQixLQUFLLEVBQUUscUJBQVM7UUFDaEIsYUFBYSxFQUFFLHFCQUFTO1FBQ3hCLGNBQWMsRUFBRSxtQkFBTztRQUN2QixhQUFhLEVBQUUsbUJBQU87UUFDdEIsY0FBYyxFQUFFLEdBQUc7UUFDbkIsY0FBYyxFQUFFLElBQUk7UUFDcEIsa0JBQWtCLEVBQUUsSUFBSSxlQUFFLENBQUMsUUFBUSxDQUFDO1FBQ3BDLFNBQVMsRUFBRSxJQUFJLGVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsbUJBQU8sQ0FBQztRQUN6QyxRQUFRLEVBQUUsbUJBQU87UUFDakIsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO1FBQzlCLGdCQUFnQixFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7UUFDcEMsa0JBQWtCLEVBQUUsbUJBQU87UUFDM0IsZ0JBQWdCLEVBQUUsSUFBSSxlQUFFLENBQUMsQ0FB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QUFhLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUFpQixFQUFFLE9BQWdCO1FBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFBO0lBQy9DLENBQUM7SUFFRCxVQUFVLENBQUMsU0FBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQzVDLENBQUM7Q0FDRjtBQUVELGtCQUFlLElBQUksUUFBUSxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICogQG1vZHVsZSBVdGlscy1OZXR3b3Jrc1xuICovXG5cbmltcG9ydCBCTiBmcm9tIFwiYm4uanNcIlxuaW1wb3J0IHtcbiAgQ0NoYWluQWxpYXMsXG4gIENDaGFpblZNTmFtZSxcbiAgQ0VOVElBVkFYLFxuICBEZWZhdWx0TmV0d29ya0lELFxuICBHV0VJLFxuICBNSUxMSUFWQVgsXG4gIE9ORUFWQVgsXG4gIFBDaGFpbkFsaWFzLFxuICBQQ2hhaW5WTU5hbWUsXG4gIFhDaGFpbkFsaWFzLFxuICBYQ2hhaW5WTU5hbWUsXG4gIERlZmF1bHRQbGF0Zm9ybUNoYWluSUQsXG4gIFRlc3RBdmF4QXNzZXRJRCxcbiAgVGVzdENCbG9ja2NoYWluSUQsXG4gIFRlc3RIUlAsXG4gIFRlc3ROZXR3b3JrSUQsXG4gIFRlc3RYQmxvY2tjaGFpbklEXG59IGZyb20gXCIuL2NvbnN0YW50c1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgQyB7XG4gIGJsb2NrY2hhaW5JRDogc3RyaW5nXG4gIGFsaWFzOiBzdHJpbmdcbiAgdm06IHN0cmluZ1xuICBmZWU/OiBCTlxuICBnYXNQcmljZTogQk4gfCBudW1iZXJcbiAgY2hhaW5JRD86IG51bWJlclxuICBtaW5HYXNQcmljZT86IEJOXG4gIG1heEdhc1ByaWNlPzogQk5cbiAgdHhCeXRlc0dhcz86IG51bWJlclxuICBjb3N0UGVyU2lnbmF0dXJlPzogbnVtYmVyXG4gIHR4RmVlPzogQk5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBYIHtcbiAgYmxvY2tjaGFpbklEOiBzdHJpbmdcbiAgYWxpYXM6IHN0cmluZ1xuICB2bTogc3RyaW5nXG4gIGNyZWF0aW9uVHhGZWU6IEJOIHwgbnVtYmVyXG4gIGF2YXhBc3NldElEOiBzdHJpbmdcbiAgYXZheEFzc2V0QWxpYXM6IHN0cmluZ1xuICB0eEZlZT86IEJOIHwgbnVtYmVyXG4gIGZlZT86IEJOXG4gIG1pbnRUeEZlZT86IEJOIHwgbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUCB7XG4gIGJsb2NrY2hhaW5JRDogc3RyaW5nXG4gIGFsaWFzOiBzdHJpbmdcbiAgdm06IHN0cmluZ1xuICBjcmVhdGlvblR4RmVlOiBCTiB8IG51bWJlclxuICBjcmVhdGVTdWJuZXRUeDogQk4gfCBudW1iZXJcbiAgY3JlYXRlQ2hhaW5UeDogQk4gfCBudW1iZXJcbiAgbWluQ29uc3VtcHRpb246IG51bWJlclxuICBtYXhDb25zdW1wdGlvbjogbnVtYmVyXG4gIG1heFN0YWtpbmdEdXJhdGlvbjogQk5cbiAgbWF4U3VwcGx5OiBCTlxuICBtaW5TdGFrZTogQk5cbiAgbWluU3Rha2VEdXJhdGlvbjogbnVtYmVyXG4gIG1heFN0YWtlRHVyYXRpb246IG51bWJlclxuICBtaW5EZWxlZ2F0aW9uU3Rha2U6IEJOXG4gIG1pbkRlbGVnYXRpb25GZWU6IEJOXG4gIHR4RmVlPzogQk4gfCBudW1iZXJcbiAgZmVlPzogQk5cbn1cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29yayB7XG4gIGhycDogc3RyaW5nXG4gIEM6IENcbiAgWDogWFxuICBQOiBQXG59XG5cbmNvbnN0IFRlc3ROZXR3b3JrOiBOZXR3b3JrID0ge1xuICBocnA6IFRlc3RIUlAsXG4gIFg6IHtcbiAgICBibG9ja2NoYWluSUQ6IFRlc3RYQmxvY2tjaGFpbklELFxuICAgIGFsaWFzOiBYQ2hhaW5BbGlhcyxcbiAgICB2bTogWENoYWluVk1OYW1lLFxuICAgIGF2YXhBc3NldElEOiBUZXN0QXZheEFzc2V0SUQsXG4gICAgYXZheEFzc2V0QWxpYXM6IFwiQVZBWFwiLFxuICAgIHR4RmVlOiBNSUxMSUFWQVgsXG4gICAgY3JlYXRpb25UeEZlZTogQ0VOVElBVkFYLFxuICAgIG1pbnRUeEZlZTogTUlMTElBVkFYXG4gIH0sXG4gIFA6IHtcbiAgICBibG9ja2NoYWluSUQ6IERlZmF1bHRQbGF0Zm9ybUNoYWluSUQsXG4gICAgYWxpYXM6IFBDaGFpbkFsaWFzLFxuICAgIHZtOiBQQ2hhaW5WTU5hbWUsXG4gICAgdHhGZWU6IE1JTExJQVZBWCxcbiAgICBjcmVhdGlvblR4RmVlOiBDRU5USUFWQVgsXG4gICAgY3JlYXRlU3VibmV0VHg6IE9ORUFWQVgsXG4gICAgY3JlYXRlQ2hhaW5UeDogT05FQVZBWCxcbiAgICBtaW5Db25zdW1wdGlvbjogMC4xLFxuICAgIG1heENvbnN1bXB0aW9uOiAwLjEyLFxuICAgIG1heFN0YWtpbmdEdXJhdGlvbjogbmV3IEJOKDMxNTM2MDAwKSxcbiAgICBtYXhTdXBwbHk6IG5ldyBCTig3MjAwMDAwMDApLm11bChPTkVBVkFYKSxcbiAgICBtaW5TdGFrZTogT05FQVZBWCxcbiAgICBtaW5TdGFrZUR1cmF0aW9uOiAyNCAqIDYwICogNjAsIC8vb25lIGRheVxuICAgIG1heFN0YWtlRHVyYXRpb246IDM2NSAqIDI0ICogNjAgKiA2MCwgLy8gb25lIHllYXJcbiAgICBtaW5EZWxlZ2F0aW9uU3Rha2U6IE9ORUFWQVgsXG4gICAgbWluRGVsZWdhdGlvbkZlZTogbmV3IEJOKDIpXG4gIH0sXG4gIEM6IHtcbiAgICBibG9ja2NoYWluSUQ6IFRlc3RDQmxvY2tjaGFpbklELFxuICAgIGFsaWFzOiBDQ2hhaW5BbGlhcyxcbiAgICB2bTogQ0NoYWluVk1OYW1lLFxuICAgIHR4Qnl0ZXNHYXM6IDEsXG4gICAgY29zdFBlclNpZ25hdHVyZTogMTAwMCxcbiAgICB0eEZlZTogTUlMTElBVkFYLFxuICAgIGdhc1ByaWNlOiBHV0VJLm11bChuZXcgQk4oMjI1KSksXG4gICAgbWluR2FzUHJpY2U6IEdXRUkubXVsKG5ldyBCTigyNSkpLFxuICAgIG1heEdhc1ByaWNlOiBHV0VJLm11bChuZXcgQk4oMTAwMCkpLFxuICAgIGNoYWluSUQ6IDQzMTEyXG4gIH1cbn1cblxuLy8gRG9lcyBub3Qgc3VwcG9ydCBwOmdldENvbmZpZ3VyYXRpb25cbmNvbnN0IEF2YXhNYWluTmV0d29yazogTmV0d29yayA9IHtcbiAgaHJwOiBcImF2YXhcIixcbiAgWDoge1xuICAgIGJsb2NrY2hhaW5JRDogXCIyb1lNQk5WNGVOSHlxazJmampWNW5WUUxEYnRtTkp6cTVzM3FzM0xvNmZ0bkM2RkJ5TVwiLFxuICAgIGFsaWFzOiBYQ2hhaW5BbGlhcyxcbiAgICB2bTogWENoYWluVk1OYW1lLFxuICAgIGF2YXhBc3NldElEOiBcIkZ2d0VBaG14S2ZlaUc4U25FdnE0MmhjNndoUnlZM0VGWUF2ZWJNcUROREdDZ3hONVpcIixcbiAgICBhdmF4QXNzZXRBbGlhczogXCJBVkFYXCIsXG4gICAgdHhGZWU6IE1JTExJQVZBWCxcbiAgICBjcmVhdGlvblR4RmVlOiBDRU5USUFWQVgsXG4gICAgbWludFR4RmVlOiBNSUxMSUFWQVhcbiAgfSxcbiAgUDoge1xuICAgIGJsb2NrY2hhaW5JRDogRGVmYXVsdFBsYXRmb3JtQ2hhaW5JRCxcbiAgICBhbGlhczogUENoYWluQWxpYXMsXG4gICAgdm06IFBDaGFpblZNTmFtZSxcbiAgICB0eEZlZTogTUlMTElBVkFYLFxuICAgIGNyZWF0aW9uVHhGZWU6IENFTlRJQVZBWCxcbiAgICBjcmVhdGVTdWJuZXRUeDogT05FQVZBWCxcbiAgICBjcmVhdGVDaGFpblR4OiBPTkVBVkFYLFxuICAgIG1pbkNvbnN1bXB0aW9uOiAwLjEsXG4gICAgbWF4Q29uc3VtcHRpb246IDAuMTIsXG4gICAgbWF4U3Rha2luZ0R1cmF0aW9uOiBuZXcgQk4oMzE1MzYwMDApLFxuICAgIG1heFN1cHBseTogbmV3IEJOKDcyMDAwMDAwMCkubXVsKE9ORUFWQVgpLFxuICAgIG1pblN0YWtlOiBPTkVBVkFYLm11bChuZXcgQk4oMjAwMCkpLFxuICAgIG1pblN0YWtlRHVyYXRpb246IDIgKiA3ICogMjQgKiA2MCAqIDYwLCAvL29uZSBkYXlcbiAgICBtYXhTdGFrZUR1cmF0aW9uOiAzNjUgKiAyNCAqIDYwICogNjAsIC8vIG9uZSB5ZWFyXG4gICAgbWluRGVsZWdhdGlvblN0YWtlOiBPTkVBVkFYLm11bChuZXcgQk4oMjUpKSxcbiAgICBtaW5EZWxlZ2F0aW9uRmVlOiBuZXcgQk4oMilcbiAgfSxcbiAgQzoge1xuICAgIGJsb2NrY2hhaW5JRDogXCIycTllNHI2TXUzVTY4blUxZllqZ2JSNkp2d3JSeDM2Q29ocEFYNVVReHNlNTV4MVE1XCIsXG4gICAgYWxpYXM6IENDaGFpbkFsaWFzLFxuICAgIHZtOiBDQ2hhaW5WTU5hbWUsXG4gICAgdHhCeXRlc0dhczogMSxcbiAgICBjb3N0UGVyU2lnbmF0dXJlOiAxMDAwLFxuICAgIHR4RmVlOiBNSUxMSUFWQVgsXG4gICAgZ2FzUHJpY2U6IEdXRUkubXVsKG5ldyBCTigyMjUpKSxcbiAgICBtaW5HYXNQcmljZTogR1dFSS5tdWwobmV3IEJOKDI1KSksXG4gICAgbWF4R2FzUHJpY2U6IEdXRUkubXVsKG5ldyBCTigxMDAwKSksXG4gICAgY2hhaW5JRDogNDMxMTRcbiAgfVxufVxuXG4vKipcbiAqIEEgY2xhc3MgZm9yIHN0b3JpbmcgcHJlZGVmaW5lZCAvIGZldGNoZWQgbmV0d29ya3NcbiAqL1xuY2xhc3MgTmV0d29ya3Mge1xuICByZWdpc3RyeTogTWFwPHN0cmluZywgTmV0d29yaz4gPSBuZXcgTWFwKClcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnJlZ2lzdGVyTmV0d29yayhEZWZhdWx0TmV0d29ya0lELCBBdmF4TWFpbk5ldHdvcmspXG4gICAgdGhpcy5yZWdpc3Rlck5ldHdvcmsoVGVzdE5ldHdvcmtJRCwgVGVzdE5ldHdvcmspXG4gIH1cblxuICByZWdpc3Rlck5ldHdvcmsobmV0d29ya0lEOiBudW1iZXIsIG5ldHdvcms6IE5ldHdvcmspOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdHJ5W25ldHdvcmtJRC50b1N0cmluZygpXSA9IG5ldHdvcmtcbiAgfVxuXG4gIGdldE5ldHdvcmsobmV0d29ya0lEOiBudW1iZXIpOiBOZXR3b3JrIHtcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RyeVtuZXR3b3JrSUQudG9TdHJpbmcoKV1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgTmV0d29ya3MoKVxuIl19