@dydxprotocol/v4-client-js 1.0.29 → 1.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__native__/__ios__/v4-native-client.js +1524 -118
- package/build/examples/gov_add_new_market.js +3 -1
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bundle.d.ts +158 -158
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/cosmos/bundle.js +126 -126
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bundle.d.ts +789 -584
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/bundle.js +170 -155
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/block_rate_limit_config.d.ts +8 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/block_rate_limit_config.js +11 -3
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.d.ts +49 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.js +93 -2
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.rpc.Query.d.ts +5 -1
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/query.rpc.Query.js +10 -1
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.d.ts +81 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.js +153 -2
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.rpc.msg.d.ts +4 -1
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx.rpc.msg.js +7 -1
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/events/events.d.ts +7 -3
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/events/events.js +16 -8
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/protocol/v1/perpetual.d.ts +16 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/indexer/protocol/v1/perpetual.js +51 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual.d.ts +31 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual.js +82 -7
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rpc.query.d.ts +2 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rpc.query.js +2 -1
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rpc.tx.d.ts +1 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/rpc.tx.js +2 -1
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/subaccounts/subaccount.d.ts +2 -2
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/genesis.d.ts +13 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/genesis.js +54 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/query.d.ts +1 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/query.js +3 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/query.rpc.Query.d.ts +10 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/query.rpc.Query.js +17 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/tx.d.ts +35 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/tx.js +108 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/tx.rpc.msg.d.ts +12 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/tx.rpc.msg.js +41 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/vault.d.ts +44 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/dydxprotocol/vault/vault.js +145 -0
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/gogoproto/bundle.js +2 -2
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/google/bundle.d.ts +174 -174
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/google/bundle.js +12 -12
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/bundle.d.ts +365 -365
- package/build/node_modules/@dydxprotocol/v4-proto/src/codegen/tendermint/bundle.js +22 -22
- package/build/src/clients/composite-client.js +2 -2
- package/build/src/clients/modules/account.js +2 -2
- package/build/src/clients/modules/composer.d.ts +2 -1
- package/build/src/clients/modules/composer.js +3 -2
- package/build/src/clients/modules/get.d.ts +1 -1
- package/build/src/clients/modules/get.js +1 -1
- package/build/src/clients/modules/post.js +1 -1
- package/build/src/clients/native.d.ts +2 -0
- package/build/src/clients/native.js +35 -2
- package/build/src/clients/socket-client.d.ts +0 -3
- package/build/src/clients/socket-client.js +1 -15
- package/build/src/clients/types.d.ts +2 -0
- package/build/src/clients/types.js +1 -1
- package/examples/gov_add_new_market.ts +2 -0
- package/package.json +2 -2
- package/src/clients/composite-client.ts +1 -0
- package/src/clients/modules/account.ts +1 -1
- package/src/clients/modules/composer.ts +3 -0
- package/src/clients/modules/get.ts +1 -1
- package/src/clients/modules/post.ts +1 -1
- package/src/clients/native.ts +36 -0
- package/src/clients/socket-client.ts +0 -16
- package/src/clients/types.ts +3 -0
- package/src/codegen/helpers.ts +242 -0
- package/src/codegen/index.ts +6 -0
- package/dydxprotocol-v4-client-js-1.0.10.tgz +0 -0
|
@@ -7,7 +7,6 @@ exports.SocketClient = exports.CandlesResolution = exports.IncomingMessageTypes
|
|
|
7
7
|
const ws_1 = __importDefault(require("ws"));
|
|
8
8
|
var OutgoingMessageTypes;
|
|
9
9
|
(function (OutgoingMessageTypes) {
|
|
10
|
-
OutgoingMessageTypes["PING"] = "ping";
|
|
11
10
|
OutgoingMessageTypes["SUBSCRIBE"] = "subscribe";
|
|
12
11
|
OutgoingMessageTypes["UNSUBSCRIBE"] = "unsubscribe";
|
|
13
12
|
})(OutgoingMessageTypes || (OutgoingMessageTypes = {}));
|
|
@@ -40,7 +39,6 @@ var CandlesResolution;
|
|
|
40
39
|
})(CandlesResolution = exports.CandlesResolution || (exports.CandlesResolution = {}));
|
|
41
40
|
class SocketClient {
|
|
42
41
|
constructor(config, onOpenCallback, onCloseCallback, onMessageCallback) {
|
|
43
|
-
this.pingInterval = 30000;
|
|
44
42
|
this.lastMessageTime = Date.now();
|
|
45
43
|
this.url = config.websocketEndpoint;
|
|
46
44
|
this.onOpenCallback = onOpenCallback;
|
|
@@ -74,13 +72,11 @@ class SocketClient {
|
|
|
74
72
|
if (this.onOpenCallback) {
|
|
75
73
|
this.onOpenCallback();
|
|
76
74
|
}
|
|
77
|
-
this.restartPingInterval();
|
|
78
75
|
}
|
|
79
76
|
handleClose() {
|
|
80
77
|
if (this.onCloseCallback) {
|
|
81
78
|
this.onCloseCallback();
|
|
82
79
|
}
|
|
83
|
-
clearInterval(this.pingIntervalId);
|
|
84
80
|
}
|
|
85
81
|
handleMessage(event) {
|
|
86
82
|
if (event.data === 'PING') {
|
|
@@ -92,16 +88,6 @@ class SocketClient {
|
|
|
92
88
|
this.onMessageCallback(event);
|
|
93
89
|
}
|
|
94
90
|
}
|
|
95
|
-
this.restartPingInterval();
|
|
96
|
-
}
|
|
97
|
-
restartPingInterval() {
|
|
98
|
-
clearInterval(this.pingIntervalId);
|
|
99
|
-
this.pingIntervalId = setInterval(() => {
|
|
100
|
-
const elapsedTime = Date.now() - this.lastMessageTime;
|
|
101
|
-
if (elapsedTime > this.pingInterval) {
|
|
102
|
-
this.send('PING');
|
|
103
|
-
}
|
|
104
|
-
}, this.pingInterval);
|
|
105
91
|
}
|
|
106
92
|
/**
|
|
107
93
|
* @description Set callback when the socket is opened.
|
|
@@ -267,4 +253,4 @@ class SocketClient {
|
|
|
267
253
|
}
|
|
268
254
|
}
|
|
269
255
|
exports.SocketClient = SocketClient;
|
|
270
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnRzL3NvY2tldC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNENBQTZDO0FBSTdDLElBQUssb0JBR0o7QUFIRCxXQUFLLG9CQUFvQjtJQUN2QiwrQ0FBdUIsQ0FBQTtJQUN2QixtREFBMkIsQ0FBQTtBQUM3QixDQUFDLEVBSEksb0JBQW9CLEtBQXBCLG9CQUFvQixRQUd4QjtBQUVELElBQUssY0FNSjtBQU5ELFdBQUssY0FBYztJQUNqQixnREFBOEIsQ0FBQTtJQUM5Qiw0Q0FBMEIsQ0FBQTtJQUMxQixzQ0FBb0IsQ0FBQTtJQUNwQix3Q0FBc0IsQ0FBQTtJQUN0Qix3Q0FBc0IsQ0FBQTtBQUN4QixDQUFDLEVBTkksY0FBYyxLQUFkLGNBQWMsUUFNbEI7QUFFRCxJQUFZLG9CQU9YO0FBUEQsV0FBWSxvQkFBb0I7SUFDOUIsK0NBQXVCLENBQUE7SUFDdkIsaURBQXlCLENBQUE7SUFDekIsdUNBQWUsQ0FBQTtJQUNmLHFEQUE2QixDQUFBO0lBQzdCLGlFQUF5QyxDQUFBO0lBQ3pDLHFDQUFhLENBQUE7QUFDZixDQUFDLEVBUFcsb0JBQW9CLEdBQXBCLDRCQUFvQixLQUFwQiw0QkFBb0IsUUFPL0I7QUFFRCxJQUFZLGlCQVFYO0FBUkQsV0FBWSxpQkFBaUI7SUFDM0Isd0NBQW1CLENBQUE7SUFDbkIsMkNBQXNCLENBQUE7SUFDdEIsK0NBQTBCLENBQUE7SUFDMUIsOENBQXlCLENBQUE7SUFDekIsdUNBQWtCLENBQUE7SUFDbEIsMENBQXFCLENBQUE7SUFDckIscUNBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQVJXLGlCQUFpQixHQUFqQix5QkFBaUIsS0FBakIseUJBQWlCLFFBUTVCO0FBRUQsTUFBYSxZQUFZO0lBUXJCLFlBQ0UsTUFBcUIsRUFDckIsY0FBMEIsRUFDMUIsZUFBMEIsRUFDMUIsaUJBQStDO1FBTnpDLG9CQUFlLEdBQVcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBUTNDLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1FBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUM3QyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxZQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLOztRQUNILE1BQUEsSUFBSSxDQUFDLEVBQUUsMENBQUUsS0FBSyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBQyxJQUFZOztRQUNmLE1BQUEsSUFBSSxDQUFDLEVBQUUsMENBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUFtQjtRQUN2QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkI7YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2xDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDL0I7U0FDRjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLE1BQU0sQ0FBQyxRQUFvQjtRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxPQUFPLENBQUMsUUFBb0I7UUFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksU0FBUyxDQUFDLFFBQXVDO1FBQ25ELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxPQUFlLEVBQUUsTUFBZTtRQUN4QyxNQUFNLE9BQU8sR0FBRztZQUNkLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxTQUFTO1lBQ3BDLE9BQU87WUFDUCxHQUFHLE1BQU07U0FDVixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxPQUFlLEVBQUUsTUFBZTtRQUMxQyxNQUFNLE9BQU8sR0FBRztZQUNkLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxXQUFXO1lBQ3RDLE9BQU87WUFDUCxHQUFHLE1BQU07U0FDVixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQjtRQUNoQixNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHO1lBQ2IsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILHNCQUFzQjtRQUNwQixNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxpQkFBaUIsQ0FBQyxNQUFjO1FBQzlCLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDdEMsTUFBTSxNQUFNLEdBQUc7WUFDYixFQUFFLEVBQUUsTUFBTTtZQUNWLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUJBQXFCLENBQUMsTUFBYztRQUNsQyxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHO1lBQ2IsRUFBRSxFQUFFLE1BQU07U0FDWCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FBQyxNQUFjO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUc7WUFDYixFQUFFLEVBQUUsTUFBTTtZQUNWLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3QkFBd0IsQ0FBQyxNQUFjO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUc7WUFDYixFQUFFLEVBQUUsTUFBTTtTQUNYLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLE1BQWMsRUFBRSxVQUE2QjtRQUM5RCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHO1lBQ2IsRUFBRSxFQUFFLEdBQUcsTUFBTSxJQUFJLFVBQVUsRUFBRTtZQUM3QixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsc0JBQXNCLENBQUMsTUFBYyxFQUFFLFVBQTZCO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUc7WUFDYixFQUFFLEVBQUUsR0FBRyxNQUFNLElBQUksVUFBVSxFQUFFO1NBQzlCLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gscUJBQXFCLENBQUMsT0FBZSxFQUFFLGdCQUF3QjtRQUM3RCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDO1FBQzNDLE1BQU0sWUFBWSxHQUFHLEdBQUcsT0FBTyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDdEQsTUFBTSxNQUFNLEdBQUc7WUFDYixFQUFFLEVBQUUsWUFBWTtTQUNqQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx5QkFBeUIsQ0FBQyxPQUFlLEVBQUUsZ0JBQXdCO1FBQ2pFLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUM7UUFDM0MsTUFBTSxZQUFZLEdBQUcsR0FBRyxPQUFPLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUN0RCxNQUFNLE1BQU0sR0FBRztZQUNiLEVBQUUsRUFBRSxZQUFZO1NBQ2pCLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0o7QUFuUEQsb0NBbVBDIn0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Coin } from '@cosmjs/proto-signing';
|
|
2
2
|
import { Method } from '@cosmjs/tendermint-rpc';
|
|
3
3
|
import { Order_ConditionType, Order_Side, Order_TimeInForce } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order';
|
|
4
|
+
import { PerpetualMarketType } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual';
|
|
4
5
|
import BigNumber from 'bignumber.js';
|
|
5
6
|
import Long from 'long';
|
|
6
7
|
export declare type Integer = BigNumber;
|
|
@@ -85,6 +86,7 @@ export declare type GovAddNewMarketParams = {
|
|
|
85
86
|
exchangeConfigJson: string;
|
|
86
87
|
liquidityTier: number;
|
|
87
88
|
atomicResolution: number;
|
|
89
|
+
marketType: PerpetualMarketType;
|
|
88
90
|
quantumConversionExponent: number;
|
|
89
91
|
stepBaseQuantums: Long;
|
|
90
92
|
subticksPerTick: number;
|
|
@@ -23,4 +23,4 @@ var OrderFlags;
|
|
|
23
23
|
OrderFlags[OrderFlags["CONDITIONAL"] = 32] = "CONDITIONAL";
|
|
24
24
|
})(OrderFlags = exports.OrderFlags || (exports.OrderFlags = {}));
|
|
25
25
|
__exportStar(require("./modules/proto-includes"), exports);
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50cy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQTZCQSxzRUFBc0U7QUFDdEUsSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ3BCLHVEQUFjLENBQUE7SUFDZCxzREFBYyxDQUFBO0lBQ2QsMERBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQUpXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBSXJCO0FBMEdELDJEQUF5QyJ9
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PerpetualMarketType } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual';
|
|
1
2
|
import Long from 'long';
|
|
2
3
|
|
|
3
4
|
import { GovAddNewMarketParams, LocalWallet, ProposalStatus } from '../src';
|
|
@@ -30,6 +31,7 @@ const MOCK_DATA: GovAddNewMarketParams = {
|
|
|
30
31
|
// x/perpetuals
|
|
31
32
|
liquidityTier: 2,
|
|
32
33
|
atomicResolution: -1,
|
|
34
|
+
marketType: PerpetualMarketType.PERPETUAL_MARKET_TYPE_CROSS,
|
|
33
35
|
|
|
34
36
|
// x/clob
|
|
35
37
|
quantumConversionExponent: -9,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dydxprotocol/v4-client-js",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.30",
|
|
4
4
|
"description": "General client library for the new dYdX system (v4 decentralized)",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@cosmjs/stargate": "^0.32.1",
|
|
38
38
|
"@cosmjs/tendermint-rpc": "^0.32.1",
|
|
39
39
|
"@cosmjs/utils": "^0.32.1",
|
|
40
|
-
"@dydxprotocol/v4-proto": "
|
|
40
|
+
"@dydxprotocol/v4-proto": "5.0.0-dev.0",
|
|
41
41
|
"@osmonauts/lcd": "^0.6.0",
|
|
42
42
|
"@scure/bip32": "^1.1.5",
|
|
43
43
|
"@scure/bip39": "^1.1.1",
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
MsgUpdateClobPair,
|
|
11
11
|
} from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/tx';
|
|
12
12
|
import { MsgDelayMessage } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/delaymsg/tx';
|
|
13
|
+
import { PerpetualMarketType } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual';
|
|
13
14
|
import { MsgCreatePerpetual } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/tx';
|
|
14
15
|
import { MsgCreateOracleMarket } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/prices/tx';
|
|
15
16
|
import { MsgSend } from 'cosmjs-types/cosmos/bank/v1beta1/tx';
|
|
@@ -342,6 +343,7 @@ export class Composer {
|
|
|
342
343
|
ticker: string,
|
|
343
344
|
atomicResolution: number,
|
|
344
345
|
liquidityTier: number,
|
|
346
|
+
marketType: PerpetualMarketType,
|
|
345
347
|
): EncodeObject {
|
|
346
348
|
const msg: MsgCreatePerpetual = {
|
|
347
349
|
// uses x/gov module account since creating the perpetual is a governance action.
|
|
@@ -353,6 +355,7 @@ export class Composer {
|
|
|
353
355
|
atomicResolution,
|
|
354
356
|
defaultFundingPpm: 0, // default funding should be 0 to start.
|
|
355
357
|
liquidityTier,
|
|
358
|
+
marketType,
|
|
356
359
|
},
|
|
357
360
|
};
|
|
358
361
|
|
|
@@ -504,7 +504,7 @@ export class Get {
|
|
|
504
504
|
return GovV1Module.QueryProposalsResponse.decode(data);
|
|
505
505
|
}
|
|
506
506
|
|
|
507
|
-
async
|
|
507
|
+
async getWithdrawalAndTransferGatingStatus(
|
|
508
508
|
): Promise<SubaccountsModule.QueryGetWithdrawalAndTransfersBlockedInfoResponse> {
|
|
509
509
|
const requestData = Uint8Array.from(
|
|
510
510
|
SubaccountsModule.QueryGetWithdrawalAndTransfersBlockedInfoRequest
|
package/src/clients/native.ts
CHANGED
|
@@ -1184,3 +1184,39 @@ export async function cctpWithdraw(squidPayload: string): Promise<String> {
|
|
|
1184
1184
|
return wrappedError(error);
|
|
1185
1185
|
}
|
|
1186
1186
|
}
|
|
1187
|
+
|
|
1188
|
+
export async function getWithdrawalCapacityByDenom(
|
|
1189
|
+
payload: string,
|
|
1190
|
+
): Promise<string> {
|
|
1191
|
+
try {
|
|
1192
|
+
const client = globalThis.client;
|
|
1193
|
+
if (client === undefined) {
|
|
1194
|
+
throw new UserError('client is not connected. Call connectClient() first');
|
|
1195
|
+
}
|
|
1196
|
+
const json = JSON.parse(payload);
|
|
1197
|
+
const denom = json.denom;
|
|
1198
|
+
if (denom === undefined) {
|
|
1199
|
+
throw new UserError('denom is not set');
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
const response = await client.validatorClient.get.getWithdrawalCapacityByDenom(denom);
|
|
1203
|
+
return encodeJson(response);
|
|
1204
|
+
} catch (error) {
|
|
1205
|
+
return wrappedError(error);
|
|
1206
|
+
}
|
|
1207
|
+
}
|
|
1208
|
+
|
|
1209
|
+
export async function getWithdrawalAndTransferGatingStatus(
|
|
1210
|
+
): Promise<string> {
|
|
1211
|
+
try {
|
|
1212
|
+
const client = globalThis.client;
|
|
1213
|
+
if (client === undefined) {
|
|
1214
|
+
throw new UserError('client is not connected. Call connectClient() first');
|
|
1215
|
+
}
|
|
1216
|
+
|
|
1217
|
+
const response = await client.validatorClient.get.getWithdrawalAndTransferGatingStatus();
|
|
1218
|
+
return encodeJson(response);
|
|
1219
|
+
} catch (error) {
|
|
1220
|
+
return wrappedError(error);
|
|
1221
|
+
}
|
|
1222
|
+
}
|
|
@@ -3,7 +3,6 @@ import WebSocket, { MessageEvent } from 'ws';
|
|
|
3
3
|
import { IndexerConfig } from './constants';
|
|
4
4
|
|
|
5
5
|
enum OutgoingMessageTypes {
|
|
6
|
-
PING = 'ping',
|
|
7
6
|
SUBSCRIBE = 'subscribe',
|
|
8
7
|
UNSUBSCRIBE = 'unsubscribe',
|
|
9
8
|
}
|
|
@@ -41,9 +40,7 @@ export class SocketClient {
|
|
|
41
40
|
private onOpenCallback?: () => void;
|
|
42
41
|
private onCloseCallback?: () => void;
|
|
43
42
|
private onMessageCallback?: (event: MessageEvent) => void;
|
|
44
|
-
private pingInterval: number = 30_000;
|
|
45
43
|
private lastMessageTime: number = Date.now();
|
|
46
|
-
private pingIntervalId?: NodeJS.Timeout;
|
|
47
44
|
|
|
48
45
|
constructor(
|
|
49
46
|
config: IndexerConfig,
|
|
@@ -85,14 +82,12 @@ export class SocketClient {
|
|
|
85
82
|
if (this.onOpenCallback) {
|
|
86
83
|
this.onOpenCallback();
|
|
87
84
|
}
|
|
88
|
-
this.restartPingInterval();
|
|
89
85
|
}
|
|
90
86
|
|
|
91
87
|
private handleClose(): void {
|
|
92
88
|
if (this.onCloseCallback) {
|
|
93
89
|
this.onCloseCallback();
|
|
94
90
|
}
|
|
95
|
-
clearInterval(this.pingIntervalId);
|
|
96
91
|
}
|
|
97
92
|
|
|
98
93
|
private handleMessage(event: MessageEvent): void {
|
|
@@ -104,17 +99,6 @@ export class SocketClient {
|
|
|
104
99
|
this.onMessageCallback(event);
|
|
105
100
|
}
|
|
106
101
|
}
|
|
107
|
-
this.restartPingInterval();
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
private restartPingInterval(): void {
|
|
111
|
-
clearInterval(this.pingIntervalId);
|
|
112
|
-
this.pingIntervalId = setInterval(() => {
|
|
113
|
-
const elapsedTime = Date.now() - this.lastMessageTime;
|
|
114
|
-
if (elapsedTime > this.pingInterval) {
|
|
115
|
-
this.send('PING');
|
|
116
|
-
}
|
|
117
|
-
}, this.pingInterval);
|
|
118
102
|
}
|
|
119
103
|
|
|
120
104
|
/**
|
package/src/clients/types.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Coin } from '@cosmjs/proto-signing';
|
|
2
2
|
import { Method } from '@cosmjs/tendermint-rpc';
|
|
3
3
|
import { Order_ConditionType, Order_Side, Order_TimeInForce } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/clob/order';
|
|
4
|
+
import { PerpetualMarketType } from '@dydxprotocol/v4-proto/src/codegen/dydxprotocol/perpetuals/perpetual';
|
|
4
5
|
import BigNumber from 'bignumber.js';
|
|
5
6
|
import Long from 'long';
|
|
6
7
|
|
|
@@ -111,6 +112,7 @@ export type SquidIBCPayload = {
|
|
|
111
112
|
};
|
|
112
113
|
|
|
113
114
|
// ------------ x/gov: Add New Market ------------ //
|
|
115
|
+
|
|
114
116
|
export type GovAddNewMarketParams = {
|
|
115
117
|
// common
|
|
116
118
|
id: number;
|
|
@@ -125,6 +127,7 @@ export type GovAddNewMarketParams = {
|
|
|
125
127
|
// x/perpetuals
|
|
126
128
|
liquidityTier: number;
|
|
127
129
|
atomicResolution: number;
|
|
130
|
+
marketType: PerpetualMarketType;
|
|
128
131
|
|
|
129
132
|
// x/clob
|
|
130
133
|
quantumConversionExponent: number;
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file and any referenced files were automatically generated by @osmonauts/telescope@0.80.0
|
|
3
|
+
* DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain
|
|
4
|
+
* and run the transpile command or yarn proto command to regenerate this bundle.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import * as _m0 from "protobufjs/minimal";
|
|
8
|
+
import Long from 'long';
|
|
9
|
+
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
if (_m0.util.Long !== Long) {
|
|
12
|
+
_m0.util.Long = (Long as any);
|
|
13
|
+
|
|
14
|
+
_m0.configure();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { Long };
|
|
18
|
+
|
|
19
|
+
declare var self: any | undefined;
|
|
20
|
+
declare var window: any | undefined;
|
|
21
|
+
declare var global: any | undefined;
|
|
22
|
+
var globalThis: any = (() => {
|
|
23
|
+
if (typeof globalThis !== 'undefined') return globalThis;
|
|
24
|
+
if (typeof self !== 'undefined') return self;
|
|
25
|
+
if (typeof window !== 'undefined') return window;
|
|
26
|
+
if (typeof global !== 'undefined') return global;
|
|
27
|
+
throw 'Unable to locate global object';
|
|
28
|
+
})();
|
|
29
|
+
|
|
30
|
+
const atob: (b64: string) => string =
|
|
31
|
+
globalThis.atob || ((b64) => globalThis.Buffer.from(b64, 'base64').toString('binary'));
|
|
32
|
+
|
|
33
|
+
export function bytesFromBase64(b64: string): Uint8Array {
|
|
34
|
+
const bin = atob(b64);
|
|
35
|
+
const arr = new Uint8Array(bin.length);
|
|
36
|
+
for (let i = 0; i < bin.length; ++i) {
|
|
37
|
+
arr[i] = bin.charCodeAt(i);
|
|
38
|
+
}
|
|
39
|
+
return arr;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const btoa: (bin: string) => string =
|
|
43
|
+
globalThis.btoa || ((bin) => globalThis.Buffer.from(bin, 'binary').toString('base64'));
|
|
44
|
+
|
|
45
|
+
export function base64FromBytes(arr: Uint8Array): string {
|
|
46
|
+
const bin: string[] = [];
|
|
47
|
+
arr.forEach((byte) => {
|
|
48
|
+
bin.push(String.fromCharCode(byte));
|
|
49
|
+
});
|
|
50
|
+
return btoa(bin.join(''));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface AminoHeight {
|
|
54
|
+
readonly revision_number?: string;
|
|
55
|
+
readonly revision_height?: string;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export function omitDefault<T extends string | number | Long>(input: T): T | undefined {
|
|
59
|
+
if (typeof input === "string") {
|
|
60
|
+
return input === "" ? undefined : input;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (typeof input === "number") {
|
|
64
|
+
return input === 0 ? undefined : input;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (Long.isLong(input)) {
|
|
68
|
+
return input.isZero() ? undefined : input;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
throw new Error(`Got unsupported type ${typeof input}`);
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
interface Duration {
|
|
75
|
+
/**
|
|
76
|
+
* Signed seconds of the span of time. Must be from -315,576,000,000
|
|
77
|
+
* to +315,576,000,000 inclusive. Note: these bounds are computed from:
|
|
78
|
+
* 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
|
|
79
|
+
*/
|
|
80
|
+
seconds: Long;
|
|
81
|
+
/**
|
|
82
|
+
* Signed fractions of a second at nanosecond resolution of the span
|
|
83
|
+
* of time. Durations less than one second are represented with a 0
|
|
84
|
+
* `seconds` field and a positive or negative `nanos` field. For durations
|
|
85
|
+
* of one second or more, a non-zero value for the `nanos` field must be
|
|
86
|
+
* of the same sign as the `seconds` field. Must be from -999,999,999
|
|
87
|
+
* to +999,999,999 inclusive.
|
|
88
|
+
*/
|
|
89
|
+
|
|
90
|
+
nanos: number;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export function toDuration(duration: string): Duration {
|
|
94
|
+
return {
|
|
95
|
+
seconds: Long.fromNumber(Math.floor(parseInt(duration) / 1000000000)),
|
|
96
|
+
nanos: parseInt(duration) % 1000000000
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export function fromDuration(duration: Duration): string {
|
|
101
|
+
return (parseInt(duration.seconds.toString()) * 1000000000 + duration.nanos).toString();
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export function isSet(value: any): boolean {
|
|
105
|
+
return value !== null && value !== undefined;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export function isObject(value: any): boolean {
|
|
109
|
+
return typeof value === 'object' && value !== null;
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export interface PageRequest {
|
|
113
|
+
key: Uint8Array;
|
|
114
|
+
offset: Long;
|
|
115
|
+
limit: Long;
|
|
116
|
+
countTotal: boolean;
|
|
117
|
+
reverse: boolean;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
export interface PageRequestParams {
|
|
121
|
+
"pagination.key"?: string;
|
|
122
|
+
"pagination.offset"?: string;
|
|
123
|
+
"pagination.limit"?: string;
|
|
124
|
+
"pagination.count_total"?: boolean;
|
|
125
|
+
"pagination.reverse"?: boolean;
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
export interface Params {
|
|
129
|
+
params: PageRequestParams;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
export const setPaginationParams = (options: Params, pagination?: PageRequest) => {
|
|
133
|
+
|
|
134
|
+
if (!pagination) {
|
|
135
|
+
return options;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
if (typeof pagination?.countTotal !== "undefined") {
|
|
139
|
+
options.params['pagination.count_total'] = pagination.countTotal;
|
|
140
|
+
}
|
|
141
|
+
if (typeof pagination?.key !== "undefined") {
|
|
142
|
+
// String to Uint8Array
|
|
143
|
+
// let uint8arr = new Uint8Array(Buffer.from(data,'base64'));
|
|
144
|
+
|
|
145
|
+
// Uint8Array to String
|
|
146
|
+
options.params['pagination.key'] = Buffer.from(pagination.key).toString('base64');
|
|
147
|
+
}
|
|
148
|
+
if (typeof pagination?.limit !== "undefined") {
|
|
149
|
+
options.params["pagination.limit"] = pagination.limit.toString()
|
|
150
|
+
}
|
|
151
|
+
if (typeof pagination?.offset !== "undefined") {
|
|
152
|
+
options.params["pagination.offset"] = pagination.offset.toString()
|
|
153
|
+
}
|
|
154
|
+
if (typeof pagination?.reverse !== "undefined") {
|
|
155
|
+
options.params['pagination.reverse'] = pagination.reverse;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return options;
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
|
|
162
|
+
|
|
163
|
+
export type DeepPartial<T> = T extends Builtin
|
|
164
|
+
? T
|
|
165
|
+
: T extends Long
|
|
166
|
+
? string | number | Long
|
|
167
|
+
: T extends Array<infer U>
|
|
168
|
+
? Array<DeepPartial<U>>
|
|
169
|
+
: T extends ReadonlyArray<infer U>
|
|
170
|
+
? ReadonlyArray<DeepPartial<U>>
|
|
171
|
+
: T extends {}
|
|
172
|
+
? { [K in keyof T]?: DeepPartial<T[K]> }
|
|
173
|
+
: Partial<T>;
|
|
174
|
+
|
|
175
|
+
type KeysOfUnion<T> = T extends T ? keyof T : never;
|
|
176
|
+
export type Exact<P, I extends P> = P extends Builtin
|
|
177
|
+
? P
|
|
178
|
+
: P & { [K in keyof P]: Exact<P[K], I[K]> } & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;
|
|
179
|
+
|
|
180
|
+
export interface Rpc {
|
|
181
|
+
request(service: string, method: string, data: Uint8Array): Promise<Uint8Array>;
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
interface Timestamp {
|
|
185
|
+
/**
|
|
186
|
+
* Represents seconds of UTC time since Unix epoch
|
|
187
|
+
* 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
|
|
188
|
+
* 9999-12-31T23:59:59Z inclusive.
|
|
189
|
+
*/
|
|
190
|
+
seconds: Long;
|
|
191
|
+
/**
|
|
192
|
+
* Non-negative fractions of a second at nanosecond resolution. Negative
|
|
193
|
+
* second values with fractions must still have non-negative nanos values
|
|
194
|
+
* that count forward in time. Must be from 0 to 999,999,999
|
|
195
|
+
* inclusive.
|
|
196
|
+
*/
|
|
197
|
+
|
|
198
|
+
nanos: number;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export function toTimestamp(date: Date): Timestamp {
|
|
202
|
+
const seconds = numberToLong(date.getTime() / 1_000);
|
|
203
|
+
const nanos = date.getTime() % 1000 * 1000000;
|
|
204
|
+
return {
|
|
205
|
+
seconds,
|
|
206
|
+
nanos
|
|
207
|
+
};
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
export function fromTimestamp(t: Timestamp): Date {
|
|
211
|
+
let millis = t.seconds.toNumber() * 1000;
|
|
212
|
+
millis += t.nanos / 1000000;
|
|
213
|
+
return new Date(millis);
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
const fromJSON = (object: any): Timestamp => {
|
|
217
|
+
return {
|
|
218
|
+
seconds: isSet(object.seconds) ? Long.fromString(object.seconds) : Long.ZERO,
|
|
219
|
+
nanos: isSet(object.nanos) ? Number(object.nanos) : 0
|
|
220
|
+
};
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
const timestampFromJSON = (object: any): Timestamp => {
|
|
224
|
+
return {
|
|
225
|
+
seconds: isSet(object.seconds) ? Long.fromValue(object.seconds) : Long.ZERO,
|
|
226
|
+
nanos: isSet(object.nanos) ? Number(object.nanos) : 0,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
export function fromJsonTimestamp(o: any): Timestamp {
|
|
231
|
+
if (o instanceof Date) {
|
|
232
|
+
return toTimestamp(o);
|
|
233
|
+
} else if (typeof o === "string") {
|
|
234
|
+
return toTimestamp(new Date(o));
|
|
235
|
+
} else {
|
|
236
|
+
return timestampFromJSON(o);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
function numberToLong(number: number) {
|
|
241
|
+
return Long.fromNumber(number);
|
|
242
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file and any referenced files were automatically generated by @osmonauts/telescope@0.80.0
|
|
3
|
+
* DO NOT MODIFY BY HAND. Instead, download the latest proto files for your chain
|
|
4
|
+
* and run the transpile command or yarn proto command to regenerate this bundle.
|
|
5
|
+
*/
|
|
6
|
+
|
|
Binary file
|