UNPKG

@bayswap/sdk

Version:

SDK for BaySwap smart contract

69 lines 2.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isCoinOrderSorted = exports.buildPoolName = exports.getTypeFromSupply = exports.sortCoin = exports.unwrapCoinType = exports.wrapCoinType = exports.getSymbolFromFullType = exports.getSymbolFromType = exports.getCoinTypeFromFullType = void 0; const SUPPLY_TYPE_ARG_REGEX = /^0x2::balance::Supply<(.+)>$/; const getCoinTypeFromFullType = (fullType) => { return fullType.substring(fullType.lastIndexOf('<') + 1, fullType.lastIndexOf('>')); }; exports.getCoinTypeFromFullType = getCoinTypeFromFullType; const getSymbolFromType = (type) => { const temp = type.split('::'); if (temp.length > 2) { return temp[2]; } return ''; }; exports.getSymbolFromType = getSymbolFromType; const getSymbolFromFullType = (fullType) => { const coinType = (0, exports.getCoinTypeFromFullType)(fullType); return (0, exports.getSymbolFromType)(coinType); }; exports.getSymbolFromFullType = getSymbolFromFullType; // 0x2::sui::Sui => 0x2::coin::Coin<0x2::sui::Sui> const wrapCoinType = (type) => { return '0x2::coin::Coin<' + type + '>'; }; exports.wrapCoinType = wrapCoinType; // 0x2::coin::Coin<0x2::sui::Sui> => 0x2::sui::Sui const unwrapCoinType = (fullType) => { return fullType.substring(fullType.lastIndexOf('<') + 1, fullType.lastIndexOf('>')); }; exports.unwrapCoinType = unwrapCoinType; const sortCoin = (coinX, coinY) => { if (coinY < coinX) { return [coinY, coinX]; } return [coinX, coinY]; }; exports.sortCoin = sortCoin; const getTypeFromSupply = (supply) => { if (supply.length == 0) { return ''; } const [, res] = supply.match(SUPPLY_TYPE_ARG_REGEX) ?? []; return res; }; exports.getTypeFromSupply = getTypeFromSupply; const buildPoolName = (coin1, coin2) => { return `${(0, exports.getSymbolFromType)(coin1)}-${(0, exports.getSymbolFromType)(coin2)}`; }; exports.buildPoolName = buildPoolName; const isCoinOrderSorted = (coin1, coin2) => { if (coin1.length < coin2.length) { return true; } else if (coin1.length > coin2.length) { return false; } for (let i = 0; i < coin1.length; i++) { const chr1 = coin1.charAt(i); const chr2 = coin2.charAt(i); if (chr1 == chr2) { continue; } return chr1 < chr2; } return true; }; exports.isCoinOrderSorted = isCoinOrderSorted; //# sourceMappingURL=coin.js.map