@injectivelabs/exchange-api
Version:
Injective Exchange API client with generated gRPC bindings.
150 lines (137 loc) • 4.21 kB
JavaScript
// package: injective_auction_rpc
// file: injective_auction_rpc.proto
var injective_auction_rpc_pb = require("./injective_auction_rpc_pb");
var grpc = require("@improbable-eng/grpc-web").grpc;
var InjectiveAuctionRPC = (function () {
function InjectiveAuctionRPC() {}
InjectiveAuctionRPC.serviceName = "injective_auction_rpc.InjectiveAuctionRPC";
return InjectiveAuctionRPC;
}());
InjectiveAuctionRPC.AuctionEndpoint = {
methodName: "AuctionEndpoint",
service: InjectiveAuctionRPC,
requestStream: false,
responseStream: false,
requestType: injective_auction_rpc_pb.AuctionRequest,
responseType: injective_auction_rpc_pb.AuctionResponse
};
InjectiveAuctionRPC.Auctions = {
methodName: "Auctions",
service: InjectiveAuctionRPC,
requestStream: false,
responseStream: false,
requestType: injective_auction_rpc_pb.AuctionsRequest,
responseType: injective_auction_rpc_pb.AuctionsResponse
};
InjectiveAuctionRPC.StreamBids = {
methodName: "StreamBids",
service: InjectiveAuctionRPC,
requestStream: false,
responseStream: true,
requestType: injective_auction_rpc_pb.StreamBidsRequest,
responseType: injective_auction_rpc_pb.StreamBidsResponse
};
exports.InjectiveAuctionRPC = InjectiveAuctionRPC;
function InjectiveAuctionRPCClient(serviceHost, options) {
this.serviceHost = serviceHost;
this.options = options || {};
}
InjectiveAuctionRPCClient.prototype.auctionEndpoint = function auctionEndpoint(requestMessage, metadata, callback) {
if (arguments.length === 2) {
callback = arguments[1];
}
var client = grpc.unary(InjectiveAuctionRPC.AuctionEndpoint, {
request: requestMessage,
host: this.serviceHost,
metadata: metadata,
transport: this.options.transport,
debug: this.options.debug,
onEnd: function (response) {
if (callback) {
if (response.status !== grpc.Code.OK) {
var err = new Error(response.statusMessage);
err.code = response.status;
err.metadata = response.trailers;
callback(err, null);
} else {
callback(null, response.message);
}
}
}
});
return {
cancel: function () {
callback = null;
client.close();
}
};
};
InjectiveAuctionRPCClient.prototype.auctions = function auctions(requestMessage, metadata, callback) {
if (arguments.length === 2) {
callback = arguments[1];
}
var client = grpc.unary(InjectiveAuctionRPC.Auctions, {
request: requestMessage,
host: this.serviceHost,
metadata: metadata,
transport: this.options.transport,
debug: this.options.debug,
onEnd: function (response) {
if (callback) {
if (response.status !== grpc.Code.OK) {
var err = new Error(response.statusMessage);
err.code = response.status;
err.metadata = response.trailers;
callback(err, null);
} else {
callback(null, response.message);
}
}
}
});
return {
cancel: function () {
callback = null;
client.close();
}
};
};
InjectiveAuctionRPCClient.prototype.streamBids = function streamBids(requestMessage, metadata) {
var listeners = {
data: [],
end: [],
status: []
};
var client = grpc.invoke(InjectiveAuctionRPC.StreamBids, {
request: requestMessage,
host: this.serviceHost,
metadata: metadata,
transport: this.options.transport,
debug: this.options.debug,
onMessage: function (responseMessage) {
listeners.data.forEach(function (handler) {
handler(responseMessage);
});
},
onEnd: function (status, statusMessage, trailers) {
listeners.status.forEach(function (handler) {
handler({ code: status, details: statusMessage, metadata: trailers });
});
listeners.end.forEach(function (handler) {
handler({ code: status, details: statusMessage, metadata: trailers });
});
listeners = null;
}
});
return {
on: function (type, handler) {
listeners[type].push(handler);
return this;
},
cancel: function () {
listeners = null;
client.close();
}
};
};
exports.InjectiveAuctionRPCClient = InjectiveAuctionRPCClient;