@celo/contractkit
Version:
Celo's ContractKit to interact with Celo network
49 lines • 2.56 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.FeeCurrencyDirectoryWrapper = void 0;
const AbstractFeeCurrencyWrapper_1 = require("./AbstractFeeCurrencyWrapper");
const BaseWrapper_1 = require("./BaseWrapper");
/**
* FeeCurrencyDirectory contract listing available currencies usable to pay fees
*/
class FeeCurrencyDirectoryWrapper extends AbstractFeeCurrencyWrapper_1.AbstractFeeCurrencyWrapper {
constructor() {
super(...arguments);
this.getCurrencies = (0, BaseWrapper_1.proxyCall)(this.contract.methods.getCurrencies, undefined, (addresses) => [...new Set(addresses)].sort());
this.getExchangeRate = (0, BaseWrapper_1.proxyCall)(this.contract.methods.getExchangeRate, undefined, (res) => ({
numerator: (0, BaseWrapper_1.valueToBigNumber)(res.numerator),
denominator: (0, BaseWrapper_1.valueToBigNumber)(res.denominator),
}));
this.getCurrencyConfig = (0, BaseWrapper_1.proxyCall)(this.contract.methods.getCurrencyConfig, undefined, (res) => ({
oracle: res.oracle,
intrinsicGas: (0, BaseWrapper_1.valueToBigNumber)(res.intrinsicGas),
}));
}
getAddresses() {
return this.getCurrencies();
}
/**
* Returns current configuration parameters.
*/
getConfig() {
return __awaiter(this, void 0, void 0, function* () {
const addresses = yield this.getAddresses();
const config = { intrinsicGasForAlternativeFeeCurrency: {} };
for (const address of addresses) {
config.intrinsicGasForAlternativeFeeCurrency[address] = (yield this.getCurrencyConfig(address)).intrinsicGas;
}
return config;
});
}
}
exports.FeeCurrencyDirectoryWrapper = FeeCurrencyDirectoryWrapper;
//# sourceMappingURL=FeeCurrencyDirectoryWrapper.js.map
;