@dydxfoundation/governance
Version:
dYdX governance smart contracts
30 lines (29 loc) • 1.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getGovernanceTokens = exports.filterZeroTokenBalances = void 0;
const config_1 = require("../config");
const types_1 = require("../types");
const parsings_1 = require("./parsings");
async function filterZeroTokenBalances(user, erc20Service, tokens) {
const balances = await Promise.all(tokens.map(async (token) => {
const tokenBalance = (0, parsings_1.parseNumberToEthersBigNumber)(await erc20Service.balanceOf(token, user), config_1.DYDX_TOKEN_DECIMALS);
return { tokenBalance, token };
}));
return balances
.filter((balance) => !balance.tokenBalance.isZero())
.map((balance) => balance.token);
}
exports.filterZeroTokenBalances = filterZeroTokenBalances;
function getGovernanceTokens(network, hardhatTokenAddresses, hardhatSafetyModuleAddresses) {
if (network === types_1.Network.hardhat) {
return {
TOKEN: hardhatTokenAddresses.TOKEN_ADDRESS,
STAKED_TOKEN: hardhatSafetyModuleAddresses.SAFETY_MODULE_ADDRESS,
};
}
return {
TOKEN: config_1.dydxTokenAddresses[network].TOKEN_ADDRESS,
STAKED_TOKEN: config_1.stakingAddresses[network].SAFETY_MODULE_ADDRESS,
};
}
exports.getGovernanceTokens = getGovernanceTokens;