@knine-sdk/helpers
Version:
Helpers for Knine projects. Part of Knine JS SDK
51 lines (44 loc) • 2.18 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var invariant = require('tiny-invariant');
var constants = require('@knine-sdk/constants');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var invariant__default = /*#__PURE__*/_interopDefaultLegacy(invariant);
exports.ETHERSCAN_ENTITIES = void 0;
(function (ETHERSCAN_ENTITIES) {
ETHERSCAN_ENTITIES["Tx"] = "tx";
ETHERSCAN_ENTITIES["Token"] = "token";
ETHERSCAN_ENTITIES["Address"] = "address";
})(exports.ETHERSCAN_ENTITIES || (exports.ETHERSCAN_ENTITIES = {}));
const ETHERSCAN_PREFIX_BY_NETWORK = {
[constants.CHAINS.Mainnet]: 'etherscan.io',
[constants.CHAINS.Sepolia]: 'sepolia.etherscan.io',
[constants.CHAINS.Puppynet]: 'puppyscan.shib.io',
[constants.CHAINS.Shibarium]: 'shibariumscan.io',
};
const getEtherscanPrefix = (chainId) => {
const prefix = ETHERSCAN_PREFIX_BY_NETWORK[chainId];
invariant__default["default"](prefix != null, 'Chain is not supported');
return prefix;
};
const getEtherscanLink = (chainId, hash, entity) => {
const prefix = getEtherscanPrefix(chainId);
invariant__default["default"](hash && typeof hash === 'string', 'Hash should be a string');
invariant__default["default"](entity && typeof entity === 'string', 'Entity should be a string');
return `https://${prefix}/${entity}/${hash}`;
};
const getEtherscanTxLink = (chainId, hash) => {
return getEtherscanLink(chainId, hash, exports.ETHERSCAN_ENTITIES.Tx);
};
const getEtherscanTokenLink = (chainId, hash) => {
return getEtherscanLink(chainId, hash, exports.ETHERSCAN_ENTITIES.Token);
};
const getEtherscanAddressLink = (chainId, hash) => {
return getEtherscanLink(chainId, hash, exports.ETHERSCAN_ENTITIES.Address);
};
exports.ETHERSCAN_PREFIX_BY_NETWORK = ETHERSCAN_PREFIX_BY_NETWORK;
exports.getEtherscanAddressLink = getEtherscanAddressLink;
exports.getEtherscanLink = getEtherscanLink;
exports.getEtherscanPrefix = getEtherscanPrefix;
exports.getEtherscanTokenLink = getEtherscanTokenLink;
exports.getEtherscanTxLink = getEtherscanTxLink;