oken-waas
Version:
Oken Wallet as a Service SDK
53 lines • 2.01 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const axios_1 = __importDefault(require("axios"));
const ethers_1 = require("ethers");
const networks_1 = require("../config/networks");
const errorHandler_1 = __importDefault(require("./errorHandler"));
const lodash_1 = require("lodash");
const { fromAxios } = errorHandler_1.default;
const api = axios_1.default.create({});
exports.default = (endpoint, signer, alchemyConfig) => {
api.defaults.baseURL = endpoint;
let provider = alchemyConfig && new ethers_1.AlchemyProvider(networks_1.alchemyNetworkMap[alchemyConfig.network], alchemyConfig.alchemyKey);
return {
alchemyEnabled: !!provider,
post: async (route, payload = {}) => {
try {
const { data } = await api.post(route, signer.signMsg(payload), {
headers: {
authorization: `Bearer ${signer.signJWT()}`
}
});
return data;
}
catch (error) {
fromAxios(error);
}
},
get: async (route, payload) => {
try {
const { data } = await api.get(route, {
params: payload,
headers: {
authorization: `Bearer ${signer.signJWT()}`
}
});
return data;
}
catch (error) {
fromAxios(error);
}
},
call: async (address, abi, method, params) => {
if (!provider)
throw new Error('Missing alchemy key');
const instance = new ethers_1.Contract(address.trim(), abi, provider);
return instance[method](...(0, lodash_1.values)(params));
}
};
};
//# sourceMappingURL=api.js.map