UNPKG

bitgo

Version:
79 lines 13.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.nockSendTxRequest = nockSendTxRequest; exports.nockSendSignatureShare = nockSendSignatureShare; exports.nockSendSignatureShareWithResponse = nockSendSignatureShareWithResponse; exports.nockDeleteSignatureShare = nockDeleteSignatureShare; exports.nockCreateTxRequest = nockCreateTxRequest; exports.nockGetTxRequest = nockGetTxRequest; exports.nockExchangeCommitments = nockExchangeCommitments; exports.getRoute = getRoute; const sdk_core_1 = require("@bitgo/sdk-core"); const nock = require("nock"); const _ = require("lodash"); async function nockSendTxRequest(params) { return nock('https://bitgo.fakeurl') .post(`/api/v2/${params.coin}/wallet/${params.walletId}/tx/send`, { txRequestId: params.txRequestId }) .reply(200); } async function nockSendSignatureShare(params, status = 200) { params.requestType = params.requestType || sdk_core_1.RequestType.tx; params.apiMode = params.apiMode || 'lite'; const transactions = getRoute(params.tssType, params.requestType, params.apiMode); return nock('https://bitgo.fakeurl') .persist(true) .post(`/api/v2/wallet/${params.walletId}/txrequests/${params.txRequestId + transactions}/signatureshares`) .reply(status, status === 200 ? params.signatureShare : { error: 'some error' }); } async function nockSendSignatureShareWithResponse(params, status = 200) { const transactions = getRoute(params.tssType); return nock('https://bitgo.fakeurl') .post(`/api/v2/wallet/${params.walletId}/txrequests/${params.txRequestId + transactions}/signatureshares`) .reply(status, status === 200 ? params.response : { error: 'some error' }); } async function nockDeleteSignatureShare(params, status = 200) { const transactions = getRoute(params.tssType); return nock('https://bitgo.fakeurl') .delete(`/api/v2/wallet/${params.walletId}/txrequests/${params.txRequestId + transactions}/signatureshares`) .reply(status, status === 200 ? [params.signatureShare] : { error: 'some error' }); } async function nockCreateTxRequest(params) { return nock('https://bitgo.fakeurl') .post(`/api/v2/wallet/${params.walletId}/txrequests`, (body) => { return _.isEqual(body, params.requestBody); }) .reply(200, params.response); } async function nockGetTxRequest(params) { return nock('https://bitgo.fakeurl') .persist(true) .get(`/api/v2/wallet/${params.walletId}/txrequests?txRequestIds=${params.txRequestId}&latest=true`) .reply(200, params.response); } async function nockExchangeCommitments(params) { const { apiMode = 'lite' } = params; let addendum = ''; if (apiMode === 'full') { addendum = '/transactions/0'; } return nock('https://bitgo.fakeurl') .persist(true) .post(`/api/v2/wallet/${params.walletId}/txrequests/${params.txRequestId}${addendum}/commit`) .reply(200, params.response); } function getRoute(tssType = 'eddsa', requestType = sdk_core_1.RequestType.tx, apiMode = 'lite') { switch (requestType) { case sdk_core_1.RequestType.tx: if (tssType === 'ecdsa' || apiMode === 'full') { return '/transactions/0'; } break; case sdk_core_1.RequestType.message: if (tssType === 'ecdsa' || apiMode === 'full') { return '/messages/0'; } break; } return ''; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGVzdC92Mi91bml0L2ludGVybmFsL3Rzc1V0aWxzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLDhDQVFDO0FBRUQsd0RBbUJDO0FBRUQsZ0ZBY0M7QUFFRCw0REFRQztBQUVELGtEQVVDO0FBRUQsNENBVUM7QUFFRCwwREFnQkM7QUFFRCw0QkFrQkM7QUF6SEQsOENBQWdHO0FBQ2hHLDZCQUE4QjtBQUM5Qiw0QkFBNEI7QUFFckIsS0FBSyxVQUFVLGlCQUFpQixDQUFDLE1BSXZDO0lBQ0MsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7U0FDakMsSUFBSSxDQUFDLFdBQVcsTUFBTSxDQUFDLElBQUksV0FBVyxNQUFNLENBQUMsUUFBUSxVQUFVLEVBQUUsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3JHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoQixDQUFDO0FBRU0sS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxNQVFDLEVBQ0QsTUFBTSxHQUFHLEdBQUc7SUFFWixNQUFNLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksc0JBQVcsQ0FBQyxFQUFFLENBQUM7SUFDMUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQztJQUMxQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztTQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDO1NBQ2IsSUFBSSxDQUFDLGtCQUFrQixNQUFNLENBQUMsUUFBUSxlQUFlLE1BQU0sQ0FBQyxXQUFXLEdBQUcsWUFBWSxrQkFBa0IsQ0FBQztT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RUFDekMsVUFBMkIsTUFBTTtJQUVqQyxRQUFRLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssc0JBQVcsQ0FBQyxFQUFFO1lBQ2pCLElBQUksT0FBTyxLQUFLLE9BQU8sSUFBSSxPQUFPLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQzlDLE9BQU8saUJBQWlCLENBQUM7WUFDM0IsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLHNCQUFXLENBQUMsT0FBTztZQUN0QixJQUFJLE9BQU8sS0FBSyxPQUFPLElBQUksT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUM5QyxPQUFPLGFBQWEsQ0FBQztZQUN2QixDQUFDO1lBQ0QsTUFBTTtJQUNWLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeGNoYW5nZUNvbW1pdG1lbnRSZXNwb25zZSwgUmVxdWVzdFR5cGUsIFNpZ25hdHVyZVNoYXJlUmVjb3JkIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCBub2NrID0gcmVxdWlyZSgnbm9jaycpO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbm9ja1NlbmRUeFJlcXVlc3QocGFyYW1zOiB7XG4gIGNvaW46IHN0cmluZztcbiAgd2FsbGV0SWQ6IHN0cmluZztcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZztcbn0pOiBQcm9taXNlPG5vY2suU2NvcGU+IHtcbiAgcmV0dXJuIG5vY2soJ2h0dHBzOi8vYml0Z28uZmFrZXVybCcpXG4gICAgLnBvc3QoYC9hcGkvdjIvJHtwYXJhbXMuY29pbn0vd2FsbGV0LyR7cGFyYW1zLndhbGxldElkfS90eC9zZW5kYCwgeyB0eFJlcXVlc3RJZDogcGFyYW1zLnR4UmVxdWVzdElkIH0pXG4gICAgLnJlcGx5KDIwMCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBub2NrU2VuZFNpZ25hdHVyZVNoYXJlKFxuICBwYXJhbXM6IHtcbiAgICB3YWxsZXRJZDogc3RyaW5nO1xuICAgIHR4UmVxdWVzdElkOiBzdHJpbmc7XG4gICAgc2lnbmF0dXJlU2hhcmU6IHVua25vd247XG4gICAgc2lnbmVyU2hhcmU/OiBzdHJpbmc7XG4gICAgdHNzVHlwZT86ICdlZGRzYScgfCAnZWNkc2EnO1xuICAgIHJlcXVlc3RUeXBlPzogUmVxdWVzdFR5cGU7XG4gICAgYXBpTW9kZT86ICdsaXRlJyB8ICdmdWxsJztcbiAgfSxcbiAgc3RhdHVzID0gMjAwXG4pOiBQcm9taXNlPG5vY2suU2NvcGU+IHtcbiAgcGFyYW1zLnJlcXVlc3RUeXBlID0gcGFyYW1zLnJlcXVlc3RUeXBlIHx8IFJlcXVlc3RUeXBlLnR4O1xuICBwYXJhbXMuYXBpTW9kZSA9IHBhcmFtcy5hcGlNb2RlIHx8ICdsaXRlJztcbiAgY29uc3QgdHJhbnNhY3Rpb25zID0gZ2V0Um91dGUocGFyYW1zLnRzc1R5cGUsIHBhcmFtcy5yZXF1ZXN0VHlwZSwgcGFyYW1zLmFwaU1vZGUpO1xuICByZXR1cm4gbm9jaygnaHR0cHM6Ly9iaXRnby5mYWtldXJsJylcbiAgICAucGVyc2lzdCh0cnVlKVxuICAgIC5wb3N0KGAvYXBpL3YyL3dhbGxldC8ke3BhcmFtcy53YWxsZXRJZH0vdHhyZXF1ZXN0cy8ke3BhcmFtcy50eFJlcXVlc3RJZCArIHRyYW5zYWN0aW9uc30vc2lnbmF0dXJlc2hhcmVzYClcbiAgICAucmVwbHkoc3RhdHVzLCBzdGF0dXMgPT09IDIwMCA/IChwYXJhbXMuc2lnbmF0dXJlU2hhcmUgYXMgbm9jay5Cb2R5KSA6ICh7IGVycm9yOiAnc29tZSBlcnJvcicgfSBhcyBub2NrLkJvZHkpKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5vY2tTZW5kU2lnbmF0dXJlU2hhcmVXaXRoUmVzcG9uc2UoXG4gIHBhcmFtczoge1xuICAgIHdhbGxldElkOiBzdHJpbmc7XG4gICAgdHhSZXF1ZXN0SWQ6IHN0cmluZztcbiAgICBzaWduYXR1cmVTaGFyZTogdW5rbm93bjtcbiAgICByZXNwb25zZTogdW5rbm93bjtcbiAgICB0c3NUeXBlPzogJ2VkZHNhJyB8ICdlY2RzYSc7XG4gIH0sXG4gIHN0YXR1cyA9IDIwMFxuKTogUHJvbWlzZTxub2NrLlNjb3BlPiB7XG4gIGNvbnN0IHRyYW5zYWN0aW9ucyA9IGdldFJvdXRlKHBhcmFtcy50c3NUeXBlKTtcbiAgcmV0dXJuIG5vY2soJ2h0dHBzOi8vYml0Z28uZmFrZXVybCcpXG4gICAgLnBvc3QoYC9hcGkvdjIvd2FsbGV0LyR7cGFyYW1zLndhbGxldElkfS90eHJlcXVlc3RzLyR7cGFyYW1zLnR4UmVxdWVzdElkICsgdHJhbnNhY3Rpb25zfS9zaWduYXR1cmVzaGFyZXNgKVxuICAgIC5yZXBseShzdGF0dXMsIHN0YXR1cyA9PT0gMjAwID8gKHBhcmFtcy5yZXNwb25zZSBhcyBCb2R5KSA6ICh7IGVycm9yOiAnc29tZSBlcnJvcicgfSBhcyBub2NrLkJvZHkpKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5vY2tEZWxldGVTaWduYXR1cmVTaGFyZShcbiAgcGFyYW1zOiB7IHdhbGxldElkOiBzdHJpbmc7IHR4UmVxdWVzdElkOiBzdHJpbmc7IHNpZ25hdHVyZVNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZDsgdHNzVHlwZT86ICdlZGRzYScgfCAnZWNkc2EnIH0sXG4gIHN0YXR1cyA9IDIwMFxuKTogUHJvbWlzZTxub2NrLlNjb3BlPiB7XG4gIGNvbnN0IHRyYW5zYWN0aW9ucyA9IGdldFJvdXRlKHBhcmFtcy50c3NUeXBlKTtcbiAgcmV0dXJuIG5vY2soJ2h0dHBzOi8vYml0Z28uZmFrZXVybCcpXG4gICAgLmRlbGV0ZShgL2FwaS92Mi93YWxsZXQvJHtwYXJhbXMud2FsbGV0SWR9L3R4cmVxdWVzdHMvJHtwYXJhbXMudHhSZXF1ZXN0SWQgKyB0cmFuc2FjdGlvbnN9L3NpZ25hdHVyZXNoYXJlc2ApXG4gICAgLnJlcGx5KHN0YXR1cywgc3RhdHVzID09PSAyMDAgPyBbcGFyYW1zLnNpZ25hdHVyZVNoYXJlXSA6IHsgZXJyb3I6ICdzb21lIGVycm9yJyB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5vY2tDcmVhdGVUeFJlcXVlc3QocGFyYW1zOiB7XG4gIHdhbGxldElkOiBzdHJpbmc7XG4gIHJlcXVlc3RCb2R5OiB1bmtub3duO1xuICByZXNwb25zZTogdW5rbm93bjtcbn0pOiBQcm9taXNlPG5vY2suU2NvcGU+IHtcbiAgcmV0dXJuIG5vY2soJ2h0dHBzOi8vYml0Z28uZmFrZXVybCcpXG4gICAgLnBvc3QoYC9hcGkvdjIvd2FsbGV0LyR7cGFyYW1zLndhbGxldElkfS90eHJlcXVlc3RzYCwgKGJvZHkpID0+IHtcbiAgICAgIHJldHVybiBfLmlzRXF1YWwoYm9keSwgcGFyYW1zLnJlcXVlc3RCb2R5KTtcbiAgICB9KVxuICAgIC5yZXBseSgyMDAsIHBhcmFtcy5yZXNwb25zZSBhcyBub2NrLkJvZHkpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbm9ja0dldFR4UmVxdWVzdChwYXJhbXM6IHtcbiAgd2FsbGV0SWQ6IHN0cmluZztcbiAgdHhSZXF1ZXN0SWQ6IHN0cmluZztcbiAgcmVzcG9uc2U6IHVua25vd247XG4gIG5vdFBlcnNpc3Q/OiBib29sZWFuO1xufSk6IFByb21pc2U8bm9jay5TY29wZT4ge1xuICByZXR1cm4gbm9jaygnaHR0cHM6Ly9iaXRnby5mYWtldXJsJylcbiAgICAucGVyc2lzdCh0cnVlKVxuICAgIC5nZXQoYC9hcGkvdjIvd2FsbGV0LyR7cGFyYW1zLndhbGxldElkfS90eHJlcXVlc3RzP3R4UmVxdWVzdElkcz0ke3BhcmFtcy50eFJlcXVlc3RJZH0mbGF0ZXN0PXRydWVgKVxuICAgIC5yZXBseSgyMDAsIHBhcmFtcy5yZXNwb25zZSBhcyBub2NrLkJvZHkpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbm9ja0V4Y2hhbmdlQ29tbWl0bWVudHMocGFyYW1zOiB7XG4gIHdhbGxldElkOiBzdHJpbmc7XG4gIHR4UmVxdWVzdElkOiBzdHJpbmc7XG4gIHJlc3BvbnNlOiBFeGNoYW5nZUNvbW1pdG1lbnRSZXNwb25zZTtcbiAgYXBpTW9kZT86ICdsaXRlJyB8ICdmdWxsJztcbiAgbm90UGVyc2lzdD86IGJvb2xlYW47XG59KTogUHJvbWlzZTxub2NrLlNjb3BlPiB7XG4gIGNvbnN0IHsgYXBpTW9kZSA9ICdsaXRlJyB9ID0gcGFyYW1zO1xuICBsZXQgYWRkZW5kdW0gPSAnJztcbiAgaWYgKGFwaU1vZGUgPT09ICdmdWxsJykge1xuICAgIGFkZGVuZHVtID0gJy90cmFuc2FjdGlvbnMvMCc7XG4gIH1cbiAgcmV0dXJuIG5vY2soJ2h0dHBzOi8vYml0Z28uZmFrZXVybCcpXG4gICAgLnBlcnNpc3QodHJ1ZSlcbiAgICAucG9zdChgL2FwaS92Mi93YWxsZXQvJHtwYXJhbXMud2FsbGV0SWR9L3R4cmVxdWVzdHMvJHtwYXJhbXMudHhSZXF1ZXN0SWR9JHthZGRlbmR1bX0vY29tbWl0YClcbiAgICAucmVwbHkoMjAwLCBwYXJhbXMucmVzcG9uc2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um91dGUoXG4gIHRzc1R5cGU6ICdlZGRzYScgfCAnZWNkc2EnID0gJ2VkZHNhJyxcbiAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlID0gUmVxdWVzdFR5cGUudHgsXG4gIGFwaU1vZGU6ICdmdWxsJyB8ICdsaXRlJyA9ICdsaXRlJ1xuKTogc3RyaW5nIHtcbiAgc3dpdGNoIChyZXF1ZXN0VHlwZSkge1xuICAgIGNhc2UgUmVxdWVzdFR5cGUudHg6XG4gICAgICBpZiAodHNzVHlwZSA9PT0gJ2VjZHNhJyB8fCBhcGlNb2RlID09PSAnZnVsbCcpIHtcbiAgICAgICAgcmV0dXJuICcvdHJhbnNhY3Rpb25zLzAnO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBSZXF1ZXN0VHlwZS5tZXNzYWdlOlxuICAgICAgaWYgKHRzc1R5cGUgPT09ICdlY2RzYScgfHwgYXBpTW9kZSA9PT0gJ2Z1bGwnKSB7XG4gICAgICAgIHJldHVybiAnL21lc3NhZ2VzLzAnO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuIl19