@gainsnetwork/sdk 0.0.19 → 0.0.20-rc1

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.
Files changed (150) hide show
  1. package/README.md +11 -11
  2. package/lib/constants.d.ts +135 -135
  3. package/lib/constants.js +123 -123
  4. package/lib/contracts/addresses.d.ts +2 -2
  5. package/lib/contracts/addresses.js +15 -15
  6. package/lib/contracts/addresses.json +23 -23
  7. package/lib/contracts/index.d.ts +6 -6
  8. package/lib/contracts/index.js +32 -32
  9. package/lib/contracts/types/GFarmTradingStorageV5.d.ts +1911 -0
  10. package/lib/contracts/types/GFarmTradingStorageV5.js +2 -0
  11. package/lib/contracts/types/GNSPairInfosV6_1.d.ts +911 -0
  12. package/lib/contracts/types/GNSPairInfosV6_1.js +2 -0
  13. package/lib/contracts/types/GNSPairsStorageV6.d.ts +660 -0
  14. package/lib/contracts/types/GNSPairsStorageV6.js +2 -0
  15. package/lib/contracts/types/common.d.ts +22 -0
  16. package/lib/contracts/types/common.js +2 -0
  17. package/lib/contracts/types/factories/GFarmTradingStorageV5__factory.d.ts +83 -0
  18. package/lib/contracts/types/factories/GFarmTradingStorageV5__factory.js +2691 -0
  19. package/lib/contracts/types/factories/GNSPairInfosV6_1__factory.d.ts +98 -0
  20. package/lib/contracts/types/factories/GNSPairInfosV6_1__factory.js +1485 -0
  21. package/lib/contracts/types/factories/GNSPairsStorageV6__factory.d.ts +117 -0
  22. package/lib/contracts/types/factories/GNSPairsStorageV6__factory.js +1265 -0
  23. package/lib/contracts/types/factories/index.d.ts +3 -0
  24. package/lib/contracts/types/factories/index.js +12 -0
  25. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -1911
  26. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -2
  27. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -533
  28. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -2
  29. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +911 -911
  30. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +2 -2
  31. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +660 -660
  32. package/lib/contracts/types/generated/GNSPairsStorageV6.js +2 -2
  33. package/lib/contracts/types/generated/GTokenOpenPnlFeed.d.ts +557 -557
  34. package/lib/contracts/types/generated/GTokenOpenPnlFeed.js +2 -2
  35. package/lib/contracts/types/generated/common.d.ts +22 -22
  36. package/lib/contracts/types/generated/common.js +2 -2
  37. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -83
  38. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -2691
  39. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -100
  40. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -1003
  41. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +98 -98
  42. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +1485 -1485
  43. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +117 -117
  44. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +1265 -1265
  45. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.d.ts +59 -59
  46. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.js +765 -765
  47. package/lib/contracts/types/generated/factories/index.d.ts +5 -5
  48. package/lib/contracts/types/generated/factories/index.js +16 -16
  49. package/lib/contracts/types/generated/index.d.ts +11 -11
  50. package/lib/contracts/types/generated/index.js +37 -37
  51. package/lib/contracts/types/index.d.ts +16 -16
  52. package/lib/contracts/types/index.js +2 -2
  53. package/lib/contracts/utils/index.d.ts +3 -3
  54. package/lib/contracts/utils/index.js +19 -19
  55. package/lib/contracts/utils/openLimitOrders.d.ts +8 -8
  56. package/lib/contracts/utils/openLimitOrders.js +77 -77
  57. package/lib/contracts/utils/openTrades.d.ts +9 -9
  58. package/lib/contracts/utils/openTrades.js +169 -193
  59. package/lib/contracts/utils/openTradesOriginal.d.ts +3 -0
  60. package/lib/contracts/utils/openTradesOriginal.js +134 -0
  61. package/lib/contracts/utils/pairs.d.ts +6 -6
  62. package/lib/contracts/utils/pairs.js +102 -102
  63. package/lib/index.d.ts +5 -4
  64. package/lib/index.js +21 -20
  65. package/lib/markets/commodities.d.ts +1 -1
  66. package/lib/markets/commodities.js +31 -31
  67. package/lib/markets/crypto.d.ts +1 -1
  68. package/lib/markets/crypto.js +6 -6
  69. package/lib/markets/forex.d.ts +2 -2
  70. package/lib/markets/forex.js +38 -38
  71. package/lib/markets/index.d.ts +5 -5
  72. package/lib/markets/index.js +21 -21
  73. package/lib/markets/indices.d.ts +1 -1
  74. package/lib/markets/indices.js +6 -6
  75. package/lib/markets/stocks.d.ts +3 -3
  76. package/lib/markets/stocks.js +54 -54
  77. package/lib/prices/PricingStreamClient.d.ts +16 -0
  78. package/lib/prices/PricingStreamClient.js +101 -0
  79. package/lib/prices/index.d.ts +1 -0
  80. package/lib/prices/index.js +17 -0
  81. package/lib/src/contracts/addresses.d.ts +2 -0
  82. package/lib/src/contracts/addresses.js +15 -0
  83. package/lib/src/contracts/addresses.json +20 -0
  84. package/lib/src/contracts/index.d.ts +6 -0
  85. package/lib/src/contracts/index.js +31 -0
  86. package/lib/src/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -0
  87. package/lib/src/contracts/types/generated/GFarmTradingStorageV5.js +2 -0
  88. package/lib/src/contracts/types/generated/GNSPairInfosV6_1.d.ts +911 -0
  89. package/lib/src/contracts/types/generated/GNSPairInfosV6_1.js +2 -0
  90. package/lib/src/contracts/types/generated/GNSPairsStorageV6.d.ts +660 -0
  91. package/lib/src/contracts/types/generated/GNSPairsStorageV6.js +2 -0
  92. package/lib/src/contracts/types/generated/GTokenOpenPnlFeed.d.ts +557 -0
  93. package/lib/src/contracts/types/generated/GTokenOpenPnlFeed.js +2 -0
  94. package/lib/src/contracts/types/generated/common.d.ts +22 -0
  95. package/lib/src/contracts/types/generated/common.js +2 -0
  96. package/lib/src/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -0
  97. package/lib/src/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -0
  98. package/lib/src/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +98 -0
  99. package/lib/src/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +1485 -0
  100. package/lib/src/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +117 -0
  101. package/lib/src/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +1265 -0
  102. package/lib/src/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.d.ts +59 -0
  103. package/lib/src/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.js +765 -0
  104. package/lib/src/contracts/types/generated/factories/index.d.ts +4 -0
  105. package/lib/src/contracts/types/generated/factories/index.js +14 -0
  106. package/lib/src/contracts/types/generated/index.d.ts +9 -0
  107. package/lib/src/contracts/types/generated/index.js +35 -0
  108. package/lib/src/contracts/types/index.d.ts +13 -0
  109. package/lib/src/contracts/types/index.js +2 -0
  110. package/lib/src/contracts/utils/index.d.ts +2 -0
  111. package/lib/src/contracts/utils/index.js +18 -0
  112. package/lib/src/contracts/utils/openTrades.d.ts +3 -0
  113. package/lib/src/contracts/utils/openTrades.js +107 -0
  114. package/lib/src/contracts/utils/pairs.d.ts +6 -0
  115. package/lib/src/contracts/utils/pairs.js +102 -0
  116. package/lib/src/index.d.ts +3 -0
  117. package/lib/src/index.js +19 -0
  118. package/lib/src/markets/commodities.d.ts +1 -0
  119. package/lib/src/markets/commodities.js +31 -0
  120. package/lib/src/markets/crypto.d.ts +1 -0
  121. package/lib/src/markets/crypto.js +6 -0
  122. package/lib/src/markets/forex.d.ts +2 -0
  123. package/lib/src/markets/forex.js +38 -0
  124. package/lib/src/markets/index.d.ts +5 -0
  125. package/lib/src/markets/index.js +21 -0
  126. package/lib/src/markets/indices.d.ts +1 -0
  127. package/lib/src/markets/indices.js +6 -0
  128. package/lib/src/markets/stocks.d.ts +3 -0
  129. package/lib/src/markets/stocks.js +54 -0
  130. package/lib/src/trade/fees.d.ts +15 -0
  131. package/lib/src/trade/fees.js +45 -0
  132. package/lib/src/trade/index.d.ts +2 -0
  133. package/lib/src/trade/index.js +18 -0
  134. package/lib/src/trade/pnl.d.ts +7 -0
  135. package/lib/src/trade/pnl.js +43 -0
  136. package/lib/src/trade/types.d.ts +143 -0
  137. package/lib/src/trade/types.js +8 -0
  138. package/lib/test/index.d.ts +1 -0
  139. package/lib/test/index.js +22 -0
  140. package/lib/test.d.ts +1 -0
  141. package/lib/test.js +37 -0
  142. package/lib/trade/fees.d.ts +15 -15
  143. package/lib/trade/fees.js +45 -45
  144. package/lib/trade/index.d.ts +2 -2
  145. package/lib/trade/index.js +18 -18
  146. package/lib/trade/pnl.d.ts +7 -7
  147. package/lib/trade/pnl.js +43 -43
  148. package/lib/trade/types.d.ts +157 -157
  149. package/lib/trade/types.js +8 -8
  150. package/package.json +107 -104
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.PricingStreamClient = void 0;
16
+ /* eslint-disable @typescript-eslint/restrict-template-expressions */
17
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
18
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
19
+ const ws_1 = __importDefault(require("ws"));
20
+ class PricingStreamClient {
21
+ constructor(endpoints, onPriceMessage, reconnectTimeoutMs = 1000) {
22
+ this.endpoints = endpoints;
23
+ this._activeSocket = null;
24
+ this.fallbackIndex = 0;
25
+ this.reconnectTimeoutMs = reconnectTimeoutMs;
26
+ this._onPriceMessage = onPriceMessage;
27
+ }
28
+ connect() {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ if (this._activeSocket) {
31
+ return;
32
+ }
33
+ const latencies = yield Promise.all(this.endpoints.map(endpoint => this.measureLatency(endpoint)));
34
+ // Sort endpoints by latency
35
+ this.endpoints.sort((a, b) => {
36
+ const aLatency = latencies[this.endpoints.indexOf(a)];
37
+ const bLatency = latencies[this.endpoints.indexOf(b)];
38
+ return aLatency - bLatency;
39
+ });
40
+ this._connect(this.endpoints[0]);
41
+ });
42
+ }
43
+ _connect(endpoint) {
44
+ this._activeSocket = new ws_1.default(endpoint);
45
+ this._activeSocket.onmessage = message => {
46
+ var _a;
47
+ // Ignore return pong messages
48
+ if (message.data === "pong") {
49
+ return;
50
+ }
51
+ (_a = this._onPriceMessage) === null || _a === void 0 ? void 0 : _a.call(this, message);
52
+ };
53
+ this._activeSocket.onclose = () => {
54
+ setTimeout(() => void this.fallbackToNextEndpoint(), this.reconnectTimeoutMs);
55
+ };
56
+ this._activeSocket.onerror = error => {
57
+ var _a;
58
+ console.error(`WebSocket error: ${error.message}`);
59
+ (_a = this._activeSocket) === null || _a === void 0 ? void 0 : _a.close();
60
+ };
61
+ }
62
+ fallbackToNextEndpoint() {
63
+ this.fallbackIndex = (this.fallbackIndex + 1) % this.endpoints.length;
64
+ const fallbackEndpoint = this.endpoints[this.fallbackIndex];
65
+ this._connect(fallbackEndpoint);
66
+ }
67
+ measureLatency(endpoint) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ return new Promise(resolve => {
70
+ const startTime = Date.now();
71
+ const socket = new ws_1.default(endpoint);
72
+ socket.onopen = () => {
73
+ socket.send("ping");
74
+ };
75
+ socket.onmessage = message => {
76
+ if (message.data === "pong") {
77
+ const latency = Date.now() - startTime;
78
+ socket.close();
79
+ resolve(latency);
80
+ }
81
+ };
82
+ socket.on("error", e => {
83
+ resolve(Number.MAX_VALUE);
84
+ });
85
+ // Backstop so we don't wait forever
86
+ setTimeout(() => {
87
+ socket.close();
88
+ resolve(2000);
89
+ }, 2000);
90
+ });
91
+ });
92
+ }
93
+ get activeSocket() {
94
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
95
+ return this._activeSocket;
96
+ }
97
+ set onPriceMessage(callback) {
98
+ this._onPriceMessage = callback;
99
+ }
100
+ }
101
+ exports.PricingStreamClient = PricingStreamClient;
@@ -0,0 +1 @@
1
+ export * from "./PricingStreamClient";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./PricingStreamClient"), exports);
@@ -0,0 +1,2 @@
1
+ import { ContractAddresses } from "./types";
2
+ export declare const getContractAddressesForChain: (chainId: number) => ContractAddresses;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getContractAddressesForChain = void 0;
7
+ const addresses_json_1 = __importDefault(require("./addresses.json"));
8
+ const getContractAddressesForChain = (chainId) => {
9
+ const _addresses = addresses_json_1.default;
10
+ if (!_addresses[chainId]) {
11
+ throw new Error(`Unknown chain id (${chainId}). No known contracts have been deployed on this chain.`);
12
+ }
13
+ return _addresses[chainId];
14
+ };
15
+ exports.getContractAddressesForChain = getContractAddressesForChain;
@@ -0,0 +1,20 @@
1
+ {
2
+ "137": {
3
+ "gfarmTradingStorageV5": "0xaee4d11a16B2bc65EDD6416Fb626EB404a6D65BD",
4
+ "gnsPairsStorageV6": "0x6e5326e944F528c243B9Ca5d14fe5C9269a8c922",
5
+ "gnsPairInfosV6_1": "0xEe7442aCcC1C27f2C69423576d3b1D25b563E977",
6
+ "gTokenOpenPnlFeed": "0x8d687276543b92819F2f2B5C3faad4AD27F4440c"
7
+ },
8
+ "42161": {
9
+ "gfarmTradingStorageV5": "0xcFa6ebD475d89dB04cAd5A756fff1cb2BC5bE33c",
10
+ "gnsPairsStorageV6": "0xf67Df2a4339eC1591615d94599081Dd037960d4b",
11
+ "gnsPairInfosV6_1": "0x04a5e3cf21B0080B72fAcDca634349A56982D497",
12
+ "gTokenOpenPnlFeed": "0x990BA9Edd8a9615A23E4c452E63A80e519A4a23D"
13
+ },
14
+ "80001": {
15
+ "gfarmTradingStorageV5": "0x4d2dF485c608aa55A23d8d98dD2B4FA24Ba0f2Cf",
16
+ "gnsPairsStorageV6": "0xF7F324bc1D659f01A9a8d00C40d65568b25b4007",
17
+ "gnsPairInfosV6_1": "0xe780bBf94b0257fEDccF4EAEcBC70722E6F5F574",
18
+ "gTokenOpenPnlFeed": "0xA7C829CB2346E12DC49Fd5ea8002Abaf48E9396C"
19
+ }
20
+ }
@@ -0,0 +1,6 @@
1
+ import type { Signer } from "ethers";
2
+ import type { Provider } from "@ethersproject/providers";
3
+ import { Contracts } from "./types";
4
+ export declare const getContractsForChain: (chainId: number, signerOrProvider?: Signer | Provider) => Contracts;
5
+ export * from "./utils";
6
+ export * from "./addresses";
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.getContractsForChain = void 0;
18
+ const addresses_1 = require("./addresses");
19
+ const factories_1 = require("./types/generated/factories");
20
+ const getContractsForChain = (chainId, signerOrProvider) => {
21
+ const addresses = (0, addresses_1.getContractAddressesForChain)(chainId);
22
+ return {
23
+ gfarmTradingStorageV5: factories_1.GFarmTradingStorageV5__factory.connect(addresses.gfarmTradingStorageV5, signerOrProvider),
24
+ gnsPairInfosV6_1: factories_1.GNSPairInfosV6_1__factory.connect(addresses.gnsPairInfosV6_1, signerOrProvider),
25
+ gnsPairsStorageV6: factories_1.GNSPairsStorageV6__factory.connect(addresses.gnsPairsStorageV6, signerOrProvider),
26
+ gTokenOpenPnlFeed: factories_1.GTokenOpenPnlFeed__factory.connect(addresses.gTokenOpenPnlFeed, signerOrProvider),
27
+ };
28
+ };
29
+ exports.getContractsForChain = getContractsForChain;
30
+ __exportStar(require("./utils"), exports);
31
+ __exportStar(require("./addresses"), exports);