@darwinia/types
Version:
Implementation of the Parity codec
158 lines (133 loc) • 5.24 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.typesBundleForPolkadotApps = exports.typesBundleForPolkadot = exports.typesBundle = exports.types = exports.jsonrpc = void 0;
var _spec = _interopRequireDefault(require("@darwinia/types-known/spec"));
var _definitions = _interopRequireDefault(require("../interfaces/balances/definitions"));
var _definitions2 = _interopRequireDefault(require("../interfaces/bridges/definitions"));
var _definitions3 = _interopRequireDefault(require("../interfaces/bsc/definitions"));
var _definitions4 = _interopRequireDefault(require("../interfaces/darwiniaInject/definitions"));
var _definitions5 = _interopRequireDefault(require("../interfaces/democracy/definitions"));
var _definitions6 = _interopRequireDefault(require("../interfaces/eth/definitions"));
var _definitions7 = _interopRequireDefault(require("../interfaces/evm/definitions"));
var _definitions8 = _interopRequireDefault(require("../interfaces/fee/definitions"));
var _definitions9 = _interopRequireDefault(require("../interfaces/headerMMR/definitions"));
var _definitions10 = _interopRequireDefault(require("../interfaces/proxy/definitions"));
var _definitions11 = _interopRequireDefault(require("../interfaces/relayerGame/definitions"));
var _definitions12 = _interopRequireDefault(require("../interfaces/session/definitions"));
var _definitions13 = _interopRequireDefault(require("../interfaces/staking/definitions"));
var _utils = require("./utils");
// Copyright 2017-2022 @darwinia/types authors & contributors
// SPDX-License-Identifier: Apache-2.0
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable sort-keys */
const polkadotCompatibleTypes = {
AccountData: {
free: 'Balance',
reserved: 'Balance',
freeKton: 'Balance',
reservedKton: 'Balance'
},
BalanceLock: {
id: 'LockIdentifier',
lockFor: 'LockFor',
lockReasons: 'LockReasons'
},
IndividualExposure: {
who: 'AccountId',
ringBalance: 'Compact<Balance>',
ktonBalance: 'Compact<Balance>',
power: 'Power'
},
LockReasons: {
_enum: {
Fee: null,
Misc: null,
All: null
}
},
RelayAuthoritySigner: 'EthereumAddress',
StakingLedgerT: {
stash: 'AccountId',
active: 'Compact<Balance>',
activeDepositRing: 'Compact<Balance>',
activeKton: 'Compact<Balance>',
depositItems: 'Vec<TimeDepositItem>',
ringStakingLock: 'StakingLock',
ktonStakingLock: 'StakingLock',
claimedRewards: 'Vec<EraIndex>'
}
};
const definitions = {
balances: _definitions.default,
bridges: _definitions2.default,
bsc: _definitions3.default,
darwiniaInject: _definitions4.default,
democracy: _definitions5.default,
eth: _definitions6.default,
evm: _definitions7.default,
fee: _definitions8.default,
headerMMR: _definitions9.default,
proxy: _definitions10.default,
relayerGame: _definitions11.default,
session: _definitions12.default,
staking: _definitions13.default
};
const types = { ...(0, _utils.typesFromDefinitions)(definitions)
};
exports.types = types;
const jsonrpc = (0, _utils.jsonrpcFromDefinitions)(definitions); // NOTE: The mapping is done from specName in state.getRuntimeVersion
exports.jsonrpc = jsonrpc;
function getBundleFromSpecName(specName, isPolkadotCompatible) {
return {
alias: {},
rpc: jsonrpc,
types: [..._spec.default[specName]].map(version => {
return {
minmax: version.minmax,
// eslint-disable-next-line
// @ts-ignore
types: { ...types,
...version.types,
...(isPolkadotCompatible ? polkadotCompatibleTypes : [])
}
};
})
};
}
const typesBundleForPolkadotApps = {
spec: {
Crab: getBundleFromSpecName('Crab', true),
CrabParachain: getBundleFromSpecName('CrabParachain', true),
Darwinia: getBundleFromSpecName('Darwinia', true),
Pangolin: getBundleFromSpecName('Pangolin', true),
PangolinParachain: getBundleFromSpecName('PangolinParachain', true),
Pangoro: getBundleFromSpecName('Pangoro', true)
}
}; // Compatible with the old version
exports.typesBundleForPolkadotApps = typesBundleForPolkadotApps;
const typesBundleForPolkadot = {
spec: {
crab: getBundleFromSpecName('Crab', true),
CrabParachain: getBundleFromSpecName('CrabParachain', true),
darwinia: getBundleFromSpecName('Darwinia', true),
pangolin: getBundleFromSpecName('Pangolin', true),
PangolinParachain: getBundleFromSpecName('PangolinParachain', true),
pangoro: getBundleFromSpecName('Pangoro', true)
}
};
exports.typesBundleForPolkadot = typesBundleForPolkadot;
const typesBundle = {
spec: {
Crab: getBundleFromSpecName('Crab', false),
CrabParachain: getBundleFromSpecName('CrabParachain', false),
Darwinia: getBundleFromSpecName('Darwinia', false),
Pangolin: getBundleFromSpecName('Pangolin', false),
PangolinParachain: getBundleFromSpecName('PangolinParachain', false),
Pangoro: getBundleFromSpecName('Pangoro', false)
}
};
exports.typesBundle = typesBundle;