@j0nnyboi/amman
Version:
A modern mandatory toolbelt to help test solana SDK libraries and apps on a locally running validator.
49 lines • 2.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ammanRelayRoutes = exports.AmmanRelayRoutes = exports.RELAY_METHODS = exports.RELAY_REST_PATH_LEN = exports.RELAY_REST_PATH = void 0;
const amman_client_1 = require("@j0nnyboi/amman-client");
const ts_essentials_1 = require("ts-essentials");
exports.RELAY_REST_PATH = 'relay';
exports.RELAY_REST_PATH_LEN = exports.RELAY_REST_PATH.length;
exports.RELAY_METHODS = ['POST', 'GET'];
class AmmanRelayRoutes {
constructor(rootUrl = amman_client_1.AMMAN_RELAY_URI) {
this.rootUrl = rootUrl;
}
urlAndMethodForRequest(request) {
const method = this.methodForRequest(request);
return {
method,
url: `${this.rootUrl}/${exports.RELAY_REST_PATH}/${request}`,
};
}
methodForRequest(request) {
switch (request) {
case amman_client_1.MSG_GET_KNOWN_ADDRESS_LABELS:
case amman_client_1.MSG_REQUEST_ACCOUNT_STATES:
case amman_client_1.MSG_REQUEST_AMMAN_VERSION:
case amman_client_1.MSG_REQUEST_VALIDATOR_PID:
return 'GET';
case amman_client_1.MSG_UPDATE_ADDRESS_LABELS:
case amman_client_1.MSG_REQUEST_ACCOUNT_STATES:
case amman_client_1.MSG_REQUEST_ACCOUNT_SAVE:
case amman_client_1.MSG_REQUEST_SNAPSHOT_SAVE:
case amman_client_1.MSG_REQUEST_ACCOUNT_SAVE:
case amman_client_1.MSG_REQUEST_STORE_KEYPAIR:
case amman_client_1.MSG_REQUEST_LOAD_KEYPAIR:
case amman_client_1.MSG_REQUEST_SET_ACCOUNT:
case amman_client_1.MSG_REQUEST_LOAD_SNAPSHOT:
case amman_client_1.MSG_REQUEST_RESTART_VALIDATOR:
case amman_client_1.MSG_REQUEST_KILL_AMMAN:
return 'POST';
default:
throw new ts_essentials_1.UnreachableCaseError(request);
}
}
}
exports.AmmanRelayRoutes = AmmanRelayRoutes;
function ammanRelayRoutes(rootUrl) {
return new AmmanRelayRoutes(rootUrl);
}
exports.ammanRelayRoutes = ammanRelayRoutes;
//# sourceMappingURL=routes.js.map