butterjs-sdk
Version:
Butter Network SDK
396 lines (395 loc) • 15.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.IS_EVM = exports.IS_NEAR = exports.IS_MAP = exports.MAP_NETWORK_NAME_TO_ID = exports.ID_TO_NETWORK_NAME = exports.NativeCurrencyName = exports.ChainName = exports.SUPPORTED_CHAIN_LIST_MAINNET = exports.SUPPORTED_CHAIN_LIST_TESTNET = exports.ID_TO_CHAIN_ID = exports.ID_TO_NEAR_NETWORK = exports.NEAR_TEST_CHAIN = exports.ETH_PRIV_CHAIN = exports.ETH_GOERLI_CHAIN = exports.POLYGON_TEST_CHAIN = exports.BSC_TEST_CHAIN = exports.MAP_TEST_CHAIN = exports.NEAR_MAINNET_CHAIN = exports.POLYGON_MAINNET_CHAIN = exports.BSC_MAINNET_CHAIN = exports.MAP_MAINNET_CHAIN = exports.ID_TO_DEFAULT_RPC_URL = exports.ID_TO_CHAIN_OBJ = exports.ChainId = void 0;
const Chain_1 = require("../entities/Chain");
/** Chain Id for supported Chain */
var ChainId;
(function (ChainId) {
ChainId["MAP_MAINNET"] = "22776";
ChainId["BSC_MAINNET"] = "56";
ChainId["POLYGON_MAINNET"] = "137";
ChainId["NEAR_MAINNET"] = "5566818579631833088";
ChainId["MAP_TEST"] = "212";
ChainId["ETH_PRIV"] = "34434";
ChainId["ETH_GOERLI"] = "5";
ChainId["BSC_TEST"] = "97";
ChainId["POLYGON_TEST"] = "80001";
ChainId["NEAR_TESTNET"] = "5566818579631833089";
})(ChainId = exports.ChainId || (exports.ChainId = {}));
/** ID to Chain Object */
const ID_TO_CHAIN_OBJ = (id) => {
switch (id) {
// mainnet
case ChainId.MAP_MAINNET:
return exports.MAP_MAINNET_CHAIN;
case ChainId.BSC_MAINNET:
return exports.BSC_MAINNET_CHAIN;
case ChainId.POLYGON_MAINNET:
return exports.POLYGON_MAINNET_CHAIN;
case ChainId.NEAR_MAINNET:
return exports.NEAR_MAINNET_CHAIN;
// testnet
case ChainId.MAP_TEST:
return exports.MAP_TEST_CHAIN;
case ChainId.ETH_GOERLI:
return exports.ETH_GOERLI_CHAIN;
case ChainId.BSC_TEST:
return exports.BSC_TEST_CHAIN;
case ChainId.POLYGON_TEST:
return exports.POLYGON_TEST_CHAIN;
case ChainId.ETH_PRIV:
return exports.ETH_PRIV_CHAIN;
case ChainId.NEAR_TESTNET:
return exports.NEAR_TEST_CHAIN;
default:
throw new Error(`ID_TO_CHAIN_OBJ: unknown chain id: ${id}`);
}
};
exports.ID_TO_CHAIN_OBJ = ID_TO_CHAIN_OBJ;
/** ID to JSON RPC URL */
const ID_TO_DEFAULT_RPC_URL = (id) => {
switch (id) {
// mainnet
case ChainId.MAP_MAINNET:
return exports.MAP_MAINNET_CHAIN.rpc;
case ChainId.BSC_MAINNET:
return exports.BSC_MAINNET_CHAIN.rpc;
case ChainId.POLYGON_MAINNET:
return exports.POLYGON_MAINNET_CHAIN.rpc;
case ChainId.NEAR_MAINNET:
return exports.NEAR_MAINNET_CHAIN.rpc;
// testnet
case ChainId.MAP_TEST:
return exports.MAP_TEST_CHAIN.rpc;
case ChainId.ETH_GOERLI:
return exports.ETH_GOERLI_CHAIN.rpc;
case ChainId.BSC_TEST:
return exports.BSC_TEST_CHAIN.rpc;
case ChainId.POLYGON_TEST:
return exports.POLYGON_TEST_CHAIN.rpc;
case ChainId.ETH_PRIV:
return exports.ETH_PRIV_CHAIN.rpc;
case ChainId.NEAR_TESTNET:
return exports.NEAR_TEST_CHAIN.rpc;
default:
throw new Error(`ID_TO_DEFAULT_RPC_URL: unknown chain id: ${id}`);
}
};
exports.ID_TO_DEFAULT_RPC_URL = ID_TO_DEFAULT_RPC_URL;
exports.MAP_MAINNET_CHAIN = new Chain_1.Chain(ChainId.MAP_MAINNET, 'MAPO Mainnet', 'https://poc3-rpc.maplabs.io/', 'https://makalu.mapscan.io/', 'https://files.maplabs.io/bridge/map.png', 'MAPO');
exports.BSC_MAINNET_CHAIN = new Chain_1.Chain(ChainId.BSC_MAINNET, 'BNB Chain Mainnet', 'https://bsc-dataseed1.defibit.io/', 'https://bscscan.com/', 'https://uploads-ssl.webflow.com/62f34c32e8660c273054c17c/62fb88db22514137f2029167_bnb%20logo.png', 'BNB');
exports.POLYGON_MAINNET_CHAIN = new Chain_1.Chain(ChainId.POLYGON_MAINNET, 'Polygon Mainnet', 'https://polygon-rpc.com/', 'https://polygonscan.com/', 'https://cryptologos.cc/logos/polygon-matic-logo.png', 'MATIC');
exports.NEAR_MAINNET_CHAIN = new Chain_1.Chain(ChainId.NEAR_MAINNET, 'Near Mainnet', 'https://rpc.mainnet.near.org', 'https://explorer.near.org/', 'https://cryptologos.cc/logos/near-protocol-near-logo.png', 'NEAR');
exports.MAP_TEST_CHAIN = new Chain_1.Chain(ChainId.MAP_TEST, 'MAPO Testnet', 'https://testnet-rpc.maplabs.io', 'http://18.139.224.21:9001/', 'https://files.maplabs.io/bridge/map.png', 'MAPO');
exports.BSC_TEST_CHAIN = new Chain_1.Chain(ChainId.BSC_TEST, 'BNB Chain Testnet', 'https://rpc.ankr.com/bsc_testnet_chapel/9a12629301614050e76136dcaf9627f5ef215f86fb1185d908f9d232b8530ef7', 'https://testnet.bscscan.com/', 'https://uploads-ssl.webflow.com/62f34c32e8660c273054c17c/62fb88db22514137f2029167_bnb%20logo.png', 'BNB');
exports.POLYGON_TEST_CHAIN = new Chain_1.Chain(ChainId.POLYGON_TEST, 'Polygon Testnet', 'https://rpc-mumbai.maticvigil.com/', 'https://mumbai.polygonscan.com/', 'https://cryptologos.cc/logos/polygon-matic-logo.png', 'MATIC');
exports.ETH_GOERLI_CHAIN = new Chain_1.Chain(ChainId.ETH_GOERLI, 'Ethereum Goerli', 'https://goerli.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', 'https://goerli.etherscan.io/', 'https://d33wubrfki0l68.cloudfront.net/3b8b93913fd51cacac56256a98ec42612c9c262a/b1261/static/a183661dd70e0e5c70689a0ec95ef0ba/13c43/eth-diamond-purple.png', 'ETH');
exports.ETH_PRIV_CHAIN = new Chain_1.Chain(ChainId.ETH_PRIV, 'Ethereum Private', 'http://18.138.248.113:8545', '', 'https://files.maplabs.io/bridge/eth.png', 'ETH');
exports.NEAR_TEST_CHAIN = new Chain_1.Chain(ChainId.NEAR_TESTNET, 'Near Testnet', 'https://rpc.testnet.near.org', 'https://explorer.testnet.near.org/', 'https://cryptologos.cc/logos/near-protocol-near-logo.png', 'NEAR');
// TODO: return chain info
const ID_TO_NEAR_NETWORK = (id) => {
switch (id) {
case ChainId.NEAR_TESTNET:
return 'testnet';
default:
throw new Error(`ID_TO_NEAR_NETWORK: unknown chain id when querying near network: ${id}`);
}
};
exports.ID_TO_NEAR_NETWORK = ID_TO_NEAR_NETWORK;
const ID_TO_CHAIN_ID = (id) => {
switch (id) {
case ChainId.MAP_MAINNET:
return ChainId.MAP_MAINNET;
case ChainId.BSC_MAINNET:
return ChainId.BSC_MAINNET;
case ChainId.POLYGON_MAINNET:
return ChainId.POLYGON_MAINNET;
case ChainId.NEAR_MAINNET:
return ChainId.NEAR_MAINNET;
case ChainId.MAP_TEST:
return ChainId.MAP_TEST;
case ChainId.ETH_GOERLI:
return ChainId.ETH_GOERLI;
case ChainId.BSC_TEST:
return ChainId.BSC_TEST;
case ChainId.ETH_PRIV:
return ChainId.ETH_PRIV;
case ChainId.NEAR_TESTNET:
return ChainId.NEAR_TESTNET;
case ChainId.POLYGON_TEST:
return ChainId.POLYGON_TEST;
default:
throw new Error(`ID_TO_CHAIN_ID: unknown chain id: ${id}`);
}
};
exports.ID_TO_CHAIN_ID = ID_TO_CHAIN_ID;
exports.SUPPORTED_CHAIN_LIST_TESTNET = [
exports.MAP_TEST_CHAIN,
exports.NEAR_TEST_CHAIN,
exports.BSC_TEST_CHAIN,
exports.ETH_GOERLI_CHAIN,
exports.POLYGON_TEST_CHAIN,
];
exports.SUPPORTED_CHAIN_LIST_MAINNET = [
exports.NEAR_MAINNET_CHAIN,
exports.BSC_MAINNET_CHAIN,
exports.NEAR_MAINNET_CHAIN,
exports.POLYGON_MAINNET_CHAIN,
];
var ChainName;
(function (ChainName) {
ChainName["MAP_MAINNET"] = "map-mainnet";
ChainName["BSC_MAINNET"] = "bsc-mainnet";
ChainName["POLYGON_MAINNET"] = "polygon-mainnet";
ChainName["NEAR_MAINNET"] = "near-mainnet";
ChainName["MAP_TEST"] = "map-testnet";
ChainName["ETH_PRIV"] = "eth-priv";
ChainName["NEAR_TESTNET"] = "near-testnet";
ChainName["BSC_TEST"] = "bsc-testnet";
ChainName["MATIC_TEST"] = "matic-mumbai";
ChainName["ETH_GOERLI"] = "ethereum-goerli";
})(ChainName = exports.ChainName || (exports.ChainName = {}));
var NativeCurrencyName;
(function (NativeCurrencyName) {
// Strings match input for CLI
NativeCurrencyName["ETHER"] = "ETH";
NativeCurrencyName["MATIC"] = "MATIC";
NativeCurrencyName["BSC"] = "BNB";
NativeCurrencyName["MAP"] = "MAP";
NativeCurrencyName["NEAR"] = "NEAR";
})(NativeCurrencyName = exports.NativeCurrencyName || (exports.NativeCurrencyName = {}));
// export const NATIVE_CURRENCY: { [chainId: number]: NativeCurrencyName } = {
// [ChainId.MAINNET]: NativeCurrencyName.ETHER,
// // [ChainId.ROPSTEN]: NativeCurrencyName.ETHER,
// // [ChainId.RINKEBY]: NativeCurrencyName.ETHER,
// // [ChainId.GÖRLI]: NativeCurrencyName.ETHER,
// // [ChainId.KOVAN]: NativeCurrencyName.ETHER,
// // [ChainId.OPTIMISM]: NativeCurrencyName.ETHER,
// // [ChainId.OPTIMISTIC_KOVAN]: NativeCurrencyName.ETHER,
// // [ChainId.ARBITRUM_ONE]: NativeCurrencyName.ETHER,
// // [ChainId.ARBITRUM_RINKEBY]: NativeCurrencyName.ETHER,
// // [ChainId.POLYGON]: NativeCurrencyName.MATIC,
// // [ChainId.POLYGON_MUMBAI]: NativeCurrencyName.MATIC,
// [ChainId.BSC]: NativeCurrencyName.BSC,
// [ChainId.MAP]: NativeCurrencyName.MAP,
// [ChainId.MAP_TEST]: NativeCurrencyName.MAP,
// };
const ID_TO_NETWORK_NAME = (id) => {
switch (id) {
case ChainId.MAP_MAINNET:
return ChainName.MAP_MAINNET;
case ChainId.BSC_MAINNET:
return ChainName.BSC_MAINNET;
case ChainId.POLYGON_MAINNET:
return ChainName.POLYGON_MAINNET;
case ChainId.NEAR_MAINNET:
return ChainName.NEAR_MAINNET;
case ChainId.MAP_TEST:
return ChainName.MAP_TEST;
case ChainId.ETH_GOERLI:
return ChainName.ETH_GOERLI;
case ChainId.ETH_PRIV:
return ChainName.ETH_PRIV;
case ChainId.BSC_TEST:
return ChainName.BSC_TEST;
case ChainId.POLYGON_TEST:
return ChainName.MATIC_TEST;
case ChainId.NEAR_TESTNET:
return ChainName.NEAR_TESTNET;
default:
throw new Error(`ID_TO_NETWORK_NAME: unknown chain id: ${id}`);
}
};
exports.ID_TO_NETWORK_NAME = ID_TO_NETWORK_NAME;
const MAP_NETWORK_NAME_TO_ID = (network) => {
switch (network) {
case ChainName.MAP_MAINNET:
return ChainId.MAP_MAINNET;
case ChainName.MAP_TEST:
return ChainId.MAP_TEST;
default:
throw new Error(`MAP_NETWORK_NAME_TO_ID: Unsupported network name: ${network}`);
}
};
exports.MAP_NETWORK_NAME_TO_ID = MAP_NETWORK_NAME_TO_ID;
// export const WRAPPED_NATIVE_CURRENCY: { [chainId in ChainId]: Token } = {
// [ChainId.MAINNET]: new Token(
// 1,
// '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
// 18,
// 'WETH',
// 'Wrapped EVMNativCoin'
// ),
// // [ChainId.ROPSTEN]: new Token(
// // 3,
// // '0xc778417E063141139Fce010982780140Aa0cD5Ab',
// // 18,
// // 'WETH',
// // 'Wrapped EVMNativCoin'
// // ),
// // [ChainId.RINKEBY]: new Token(
// // 4,
// // '0xc778417E063141139Fce010982780140Aa0cD5Ab',
// // 18,
// // 'WETH',
// // 'Wrapped EVMNativCoin'
// // ),
// // [ChainId.GÖRLI]: new Token(
// // 5,
// // '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6',
// // 18,
// // 'WETH',
// // 'Wrapped EVMNativCoin'
// // ),
// // [ChainId.KOVAN]: new Token(
// // 42,
// // '0xd0A1E359811322d97991E03f863a0C30C2cF029C',
// // 18,
// // 'WETH',
// // 'Wrapped EVMNativCoin'
// // ),
// // [ChainId.OPTIMISM]: new Token(
// // ChainId.OPTIMISM,
// // '0x4200000000000000000000000000000000000006',
// // 18,
// // 'WETH',
// // 'Wrapped EVMNativCoin'
// // ),
// // [ChainId.OPTIMISTIC_KOVAN]: new Token(
// // ChainId.OPTIMISTIC_KOVAN,
// // '0x4200000000000000000000000000000000000006',
// // 18,
// // 'WETH',
// // 'Wrapped EVMNativCoin'
// // ),
// // [ChainId.ARBITRUM_ONE]: new Token(
// // ChainId.ARBITRUM_ONE,
// // '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
// // 18,
// // 'WETH',
// // 'Wrapped EVMNativCoin'
// // ),
// // [ChainId.ARBITRUM_RINKEBY]: new Token(
// // ChainId.ARBITRUM_RINKEBY,
// // '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681',
// // 18,
// // 'WETH',
// // 'Wrapped EVMNativCoin'
// // ),
// // [ChainId.POLYGON]: new Token(
// // ChainId.POLYGON,
// // '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',
// // 18,
// // 'WMATIC',
// // 'Wrapped MATIC'
// // ),
// // [ChainId.POLYGON_MUMBAI]: new Token(
// // ChainId.POLYGON_MUMBAI,
// // '0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889',
// // 18,
// // 'WMATIC',
// // 'Wrapped MATIC'
// // ),
// [ChainId.BSC]: new Token(
// ChainId.BSC,
// '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',
// 18,
// 'WBNB',
// 'Wrapped BNB'
// ),
// [ChainId.MAP]: new Token(
// ChainId.MAP,
// '0x13CB04d4a5Dfb6398Fc5AB005a6c84337256eE23',
// 18,
// 'WMAP',
// 'Wrapped MAP'
// ),
// [ChainId.MAP_TEST]: new Token(
// ChainId.MAP,
// '0x13CB04d4a5Dfb6398Fc5AB005a6c84337256eE23',
// 18,
// 'WMAP',
// 'Wrapped MAP'
// ),
// [ChainId.ETH_PRIV]: new Token(
// ChainId.ETH_PRIV,
// '0xfe745307D9C8A6F9a72F608E87821f3F55090A35',
// 18,
// 'WETH',
// 'Wrapped ETH'
// ),
// [ChainId.NEAR_TESTNET]: new Token(
// ChainId.NEAR_TESTNET,
// 'wrap.testnet',
// 22,
// 'WNEAR',
// 'Wrapped NEAR'
// ),
// };
const IS_MAP = (id) => {
switch (id) {
case ChainId.MAP_MAINNET:
case ChainId.MAP_TEST:
return true;
default:
return false;
}
};
exports.IS_MAP = IS_MAP;
const IS_NEAR = (id) => {
switch (id) {
case '1':
case '3':
case '4':
case '5':
case '42':
case '10':
case '69':
case '42161':
case '421611':
case '137':
case ChainId.MAP_TEST:
case ChainId.ETH_GOERLI:
case ChainId.ETH_PRIV:
case ChainId.BSC_TEST:
case ChainId.POLYGON_TEST:
case ChainId.MAP_MAINNET:
case ChainId.BSC_MAINNET:
case ChainId.POLYGON_MAINNET:
return false;
case ChainId.NEAR_TESTNET:
case ChainId.NEAR_MAINNET:
return true;
default:
throw new Error(`IS_NEAR: Unsupported chain id: ${id}`);
}
};
exports.IS_NEAR = IS_NEAR;
const IS_EVM = (id) => {
switch (id) {
case '1':
case '3':
case '4':
case '5':
case '42':
case '10':
case '69':
case '42161':
case '421611':
case ChainId.POLYGON_MAINNET:
case ChainId.BSC_MAINNET:
case ChainId.MAP_MAINNET:
case ChainId.BSC_TEST:
case ChainId.POLYGON_TEST:
case ChainId.MAP_TEST:
case ChainId.ETH_GOERLI:
case ChainId.ETH_PRIV:
return true;
case ChainId.NEAR_TESTNET:
case ChainId.NEAR_MAINNET:
return false;
default:
throw new Error(`IS_EVM: unknown chain id: ${id}`);
}
};
exports.IS_EVM = IS_EVM;