@gainsnetwork/sdk 0.0.21 → 0.0.23-rc2

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 (71) hide show
  1. package/README.md +11 -11
  2. package/lib/constants.d.ts +137 -137
  3. package/lib/constants.js +144 -144
  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/generated/GFarmTradingStorageV5.d.ts +1911 -1911
  10. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -2
  11. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -533
  12. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -2
  13. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +911 -911
  14. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +2 -2
  15. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +660 -660
  16. package/lib/contracts/types/generated/GNSPairsStorageV6.js +2 -2
  17. package/lib/contracts/types/generated/GTokenOpenPnlFeed.d.ts +557 -557
  18. package/lib/contracts/types/generated/GTokenOpenPnlFeed.js +2 -2
  19. package/lib/contracts/types/generated/common.d.ts +22 -22
  20. package/lib/contracts/types/generated/common.js +2 -2
  21. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -83
  22. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -2691
  23. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -100
  24. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -1003
  25. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +98 -98
  26. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +1485 -1485
  27. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +117 -117
  28. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +1265 -1265
  29. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.d.ts +59 -59
  30. package/lib/contracts/types/generated/factories/GTokenOpenPnlFeed__factory.js +765 -765
  31. package/lib/contracts/types/generated/factories/index.d.ts +5 -5
  32. package/lib/contracts/types/generated/factories/index.js +16 -16
  33. package/lib/contracts/types/generated/index.d.ts +11 -11
  34. package/lib/contracts/types/generated/index.js +37 -37
  35. package/lib/contracts/types/index.d.ts +16 -16
  36. package/lib/contracts/types/index.js +2 -2
  37. package/lib/contracts/utils/index.d.ts +3 -3
  38. package/lib/contracts/utils/index.js +19 -19
  39. package/lib/contracts/utils/openLimitOrders.d.ts +8 -8
  40. package/lib/contracts/utils/openLimitOrders.js +77 -77
  41. package/lib/contracts/utils/openTrades.d.ts +9 -9
  42. package/lib/contracts/utils/openTrades.js +169 -169
  43. package/lib/contracts/utils/pairs.d.ts +6 -6
  44. package/lib/contracts/utils/pairs.js +102 -102
  45. package/lib/index.d.ts +5 -4
  46. package/lib/index.js +21 -20
  47. package/lib/markets/commodities.d.ts +1 -1
  48. package/lib/markets/commodities.js +31 -31
  49. package/lib/markets/crypto.d.ts +1 -1
  50. package/lib/markets/crypto.js +6 -6
  51. package/lib/markets/forex.d.ts +2 -2
  52. package/lib/markets/forex.js +38 -38
  53. package/lib/markets/index.d.ts +5 -5
  54. package/lib/markets/index.js +21 -21
  55. package/lib/markets/indices.d.ts +1 -1
  56. package/lib/markets/indices.js +6 -6
  57. package/lib/markets/stocks.d.ts +3 -3
  58. package/lib/markets/stocks.js +54 -54
  59. package/lib/trade/fees.d.ts +15 -15
  60. package/lib/trade/fees.js +45 -45
  61. package/lib/trade/index.d.ts +2 -2
  62. package/lib/trade/index.js +18 -18
  63. package/lib/trade/pnl.d.ts +7 -7
  64. package/lib/trade/pnl.js +43 -43
  65. package/lib/trade/types.d.ts +157 -157
  66. package/lib/trade/types.js +8 -8
  67. package/lib/utils/index.d.ts +1 -0
  68. package/lib/utils/index.js +17 -0
  69. package/lib/utils/packing.d.ts +2 -0
  70. package/lib/utils/packing.js +20 -0
  71. package/package.json +104 -104
@@ -1,157 +1,157 @@
1
- import { GFarmTradingStorageV5 } from "@/contracts/types/generated";
2
- import { BigNumber } from "ethers";
3
- export type PairIndexes = {
4
- [key: string]: number;
5
- };
6
- export type TradeContainer = {
7
- trade: Trade;
8
- tradeInfo: TradeInfo;
9
- initialAccFees: TradeInitialAccFees;
10
- };
11
- export type Trade = {
12
- buy: boolean;
13
- index: number;
14
- initialPosToken: number;
15
- leverage: number;
16
- openPrice: number;
17
- pairIndex: number;
18
- sl: number;
19
- tp: number;
20
- trader: string;
21
- };
22
- export type TradeInfo = {
23
- openInterestDai: number;
24
- slLastUpdated: number;
25
- tokenPriceDai: number;
26
- tpLastUpdated: number;
27
- };
28
- export type TradeInitialAccFees = {
29
- rollover: number;
30
- funding: number;
31
- openedAfterUpdate: boolean;
32
- };
33
- export type TradingGroup = {
34
- maxCollateralP: number;
35
- maxLeverage: number;
36
- minLeverage: number;
37
- name: string;
38
- };
39
- export type LimitOrder = {
40
- block: number;
41
- buy: boolean;
42
- index: number;
43
- leverage: number;
44
- maxPrice: number;
45
- minPrice: number;
46
- pairIndex: number;
47
- positionSize: number;
48
- sl: number;
49
- spreadReductionP: number;
50
- tp: number;
51
- trader: string;
52
- type: number;
53
- };
54
- export type LimitOrderRaw = GFarmTradingStorageV5.OpenLimitOrderStructOutput & {
55
- type: number;
56
- };
57
- export type Fee = {
58
- closeFeeP: number;
59
- minLevPosDai: number;
60
- nftLimitOrderFeeP: number;
61
- openFeeP: number;
62
- referralFeeP: number;
63
- };
64
- export type OpenInterest = {
65
- long: number;
66
- max: number;
67
- short: number;
68
- };
69
- export type OpenCollateral = {
70
- long: number;
71
- short: number;
72
- };
73
- export type PairParams = {
74
- onePercentDepthAbove: number;
75
- onePercentDepthBelow: number;
76
- rolloverFeePerBlockP: number;
77
- fundingFeePerBlockP: number;
78
- };
79
- export type PairRolloverFees = {
80
- accPerCollateral: number;
81
- lastUpdateBlock: number;
82
- };
83
- export type PairFundingFees = {
84
- accPerOiLong: number;
85
- accPerOiShort: number;
86
- lastUpdateBlock: number;
87
- };
88
- export type Pair = {
89
- name: string;
90
- from: string;
91
- to: string;
92
- feeIndex: number;
93
- groupIndex: number;
94
- pairIndex: number;
95
- spreadP: number;
96
- };
97
- export type TradeHistoryRecord = {
98
- action: string;
99
- address: string;
100
- buy: number;
101
- date: string;
102
- leverage: number;
103
- pair: string;
104
- pnl_net: number;
105
- price: number;
106
- size: number;
107
- tx: string;
108
- };
109
- export type MarketOrder = {
110
- trader: string;
111
- pairIndex: number;
112
- index: number;
113
- block: number;
114
- open: boolean;
115
- };
116
- export type ChartBar = {
117
- close: number;
118
- high: number;
119
- isBarClosed: boolean;
120
- isLastBar: boolean;
121
- low: number;
122
- open: number;
123
- time: number;
124
- };
125
- export type LeaderboardTrader = {
126
- address: string;
127
- tradesCount: number;
128
- winrate: number;
129
- pnl: number;
130
- volume: number;
131
- score: number;
132
- };
133
- export type OpenTradeParams = [
134
- address: string,
135
- pairIndex: number,
136
- x1: number,
137
- x2: number,
138
- wei: number,
139
- price: string,
140
- buy: boolean,
141
- leverage: number,
142
- takeProfit: string,
143
- stopLoss: string
144
- ];
145
- export declare enum PositionType {
146
- LONG = "LONG",
147
- SHORT = "SHORT"
148
- }
149
- export type TradeContainerRaw = {
150
- trade: GFarmTradingStorageV5.TradeStruct;
151
- tradeInfo: GFarmTradingStorageV5.TradeInfoStruct;
152
- initialAccFees: {
153
- rollover: BigNumber;
154
- funding: BigNumber;
155
- openedAfterUpdate: boolean;
156
- };
157
- };
1
+ import { GFarmTradingStorageV5 } from "@/contracts/types/generated";
2
+ import { BigNumber } from "ethers";
3
+ export type PairIndexes = {
4
+ [key: string]: number;
5
+ };
6
+ export type TradeContainer = {
7
+ trade: Trade;
8
+ tradeInfo: TradeInfo;
9
+ initialAccFees: TradeInitialAccFees;
10
+ };
11
+ export type Trade = {
12
+ buy: boolean;
13
+ index: number;
14
+ initialPosToken: number;
15
+ leverage: number;
16
+ openPrice: number;
17
+ pairIndex: number;
18
+ sl: number;
19
+ tp: number;
20
+ trader: string;
21
+ };
22
+ export type TradeInfo = {
23
+ openInterestDai: number;
24
+ slLastUpdated: number;
25
+ tokenPriceDai: number;
26
+ tpLastUpdated: number;
27
+ };
28
+ export type TradeInitialAccFees = {
29
+ rollover: number;
30
+ funding: number;
31
+ openedAfterUpdate: boolean;
32
+ };
33
+ export type TradingGroup = {
34
+ maxCollateralP: number;
35
+ maxLeverage: number;
36
+ minLeverage: number;
37
+ name: string;
38
+ };
39
+ export type LimitOrder = {
40
+ block: number;
41
+ buy: boolean;
42
+ index: number;
43
+ leverage: number;
44
+ maxPrice: number;
45
+ minPrice: number;
46
+ pairIndex: number;
47
+ positionSize: number;
48
+ sl: number;
49
+ spreadReductionP: number;
50
+ tp: number;
51
+ trader: string;
52
+ type: number;
53
+ };
54
+ export type LimitOrderRaw = GFarmTradingStorageV5.OpenLimitOrderStructOutput & {
55
+ type: number;
56
+ };
57
+ export type Fee = {
58
+ closeFeeP: number;
59
+ minLevPosDai: number;
60
+ nftLimitOrderFeeP: number;
61
+ openFeeP: number;
62
+ referralFeeP: number;
63
+ };
64
+ export type OpenInterest = {
65
+ long: number;
66
+ max: number;
67
+ short: number;
68
+ };
69
+ export type OpenCollateral = {
70
+ long: number;
71
+ short: number;
72
+ };
73
+ export type PairParams = {
74
+ onePercentDepthAbove: number;
75
+ onePercentDepthBelow: number;
76
+ rolloverFeePerBlockP: number;
77
+ fundingFeePerBlockP: number;
78
+ };
79
+ export type PairRolloverFees = {
80
+ accPerCollateral: number;
81
+ lastUpdateBlock: number;
82
+ };
83
+ export type PairFundingFees = {
84
+ accPerOiLong: number;
85
+ accPerOiShort: number;
86
+ lastUpdateBlock: number;
87
+ };
88
+ export type Pair = {
89
+ name: string;
90
+ from: string;
91
+ to: string;
92
+ feeIndex: number;
93
+ groupIndex: number;
94
+ pairIndex: number;
95
+ spreadP: number;
96
+ };
97
+ export type TradeHistoryRecord = {
98
+ action: string;
99
+ address: string;
100
+ buy: number;
101
+ date: string;
102
+ leverage: number;
103
+ pair: string;
104
+ pnl_net: number;
105
+ price: number;
106
+ size: number;
107
+ tx: string;
108
+ };
109
+ export type MarketOrder = {
110
+ trader: string;
111
+ pairIndex: number;
112
+ index: number;
113
+ block: number;
114
+ open: boolean;
115
+ };
116
+ export type ChartBar = {
117
+ close: number;
118
+ high: number;
119
+ isBarClosed: boolean;
120
+ isLastBar: boolean;
121
+ low: number;
122
+ open: number;
123
+ time: number;
124
+ };
125
+ export type LeaderboardTrader = {
126
+ address: string;
127
+ tradesCount: number;
128
+ winrate: number;
129
+ pnl: number;
130
+ volume: number;
131
+ score: number;
132
+ };
133
+ export type OpenTradeParams = [
134
+ address: string,
135
+ pairIndex: number,
136
+ x1: number,
137
+ x2: number,
138
+ wei: number,
139
+ price: string,
140
+ buy: boolean,
141
+ leverage: number,
142
+ takeProfit: string,
143
+ stopLoss: string
144
+ ];
145
+ export declare enum PositionType {
146
+ LONG = "LONG",
147
+ SHORT = "SHORT"
148
+ }
149
+ export type TradeContainerRaw = {
150
+ trade: GFarmTradingStorageV5.TradeStruct;
151
+ tradeInfo: GFarmTradingStorageV5.TradeInfoStruct;
152
+ initialAccFees: {
153
+ rollover: BigNumber;
154
+ funding: BigNumber;
155
+ openedAfterUpdate: boolean;
156
+ };
157
+ };
@@ -1,8 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PositionType = void 0;
4
- var PositionType;
5
- (function (PositionType) {
6
- PositionType["LONG"] = "LONG";
7
- PositionType["SHORT"] = "SHORT";
8
- })(PositionType = exports.PositionType || (exports.PositionType = {}));
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PositionType = void 0;
4
+ var PositionType;
5
+ (function (PositionType) {
6
+ PositionType["LONG"] = "LONG";
7
+ PositionType["SHORT"] = "SHORT";
8
+ })(PositionType = exports.PositionType || (exports.PositionType = {}));
@@ -0,0 +1 @@
1
+ export * from "./packing";
@@ -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("./packing"), exports);
@@ -0,0 +1,2 @@
1
+ export declare const pack64To256: (x: bigint, y: bigint, z: bigint, w: bigint) => bigint;
2
+ export declare const unpack256To64: (packed: bigint) => [bigint, bigint, bigint, bigint];
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unpack256To64 = exports.pack64To256 = void 0;
4
+ const pack64To256 = (x, y, z, w) => {
5
+ let packed = BigInt(0);
6
+ packed |= x;
7
+ packed |= y << BigInt(64);
8
+ packed |= z << BigInt(128);
9
+ packed |= w << BigInt(192);
10
+ return packed;
11
+ };
12
+ exports.pack64To256 = pack64To256;
13
+ const unpack256To64 = (packed) => {
14
+ const x = packed & BigInt("0xFFFFFFFFFFFFFFFF");
15
+ const y = (packed >> BigInt(64)) & BigInt("0xFFFFFFFFFFFFFFFF");
16
+ const z = (packed >> BigInt(128)) & BigInt("0xFFFFFFFFFFFFFFFF");
17
+ const w = (packed >> BigInt(192)) & BigInt("0xFFFFFFFFFFFFFFFF");
18
+ return [x, y, z, w];
19
+ };
20
+ exports.unpack256To64 = unpack256To64;
package/package.json CHANGED
@@ -1,104 +1,104 @@
1
- {
2
- "name": "@gainsnetwork/sdk",
3
- "version": "0.0.21",
4
- "description": "Gains Network SDK",
5
- "main": "./lib/index.js",
6
- "files": [
7
- "lib/**/*"
8
- ],
9
- "scripts": {
10
- "build": "tsc --project tsconfig.build.json",
11
- "clean": "rm -rf ./lib/",
12
- "cm": "cz",
13
- "lint": "eslint ./src/ --fix",
14
- "prepare": "husky install",
15
- "semantic-release": "semantic-release",
16
- "test:watch": "jest --watch",
17
- "test": "jest --coverage",
18
- "typecheck": "tsc --noEmit",
19
- "generate-types": "typechain --target=ethers-v5 --out-dir ./src/contracts/types/generated ./abi/*.json"
20
- },
21
- "repository": {
22
- "type": "git",
23
- "url": "git+git@github.com:GainsNetwork-org/sdk.git"
24
- },
25
- "engines": {
26
- "node": ">=12.0"
27
- },
28
- "devDependencies": {
29
- "@typechain/ethers-v5": "^10.1.1",
30
- "@types/jest": "^27.5.2",
31
- "@types/luxon": "^3.2.0",
32
- "@types/node": "^12.20.11",
33
- "@typescript-eslint/eslint-plugin": "^4.22.0",
34
- "@typescript-eslint/parser": "^4.22.0",
35
- "conventional-changelog-conventionalcommits": "^5.0.0",
36
- "eslint": "^7.25.0",
37
- "eslint-config-prettier": "^8.3.0",
38
- "eslint-plugin-node": "^11.1.0",
39
- "eslint-plugin-prettier": "^3.4.0",
40
- "husky": "^6.0.0",
41
- "jest": "^27.2.0",
42
- "lint-staged": "^10.5.4",
43
- "prettier": "^2.2.1",
44
- "semantic-release": "^19.0.2",
45
- "ts-jest": "^27.0.5",
46
- "ts-node": "^10.2.1",
47
- "typechain": "^8.1.1",
48
- "typescript": "^4.2.4"
49
- },
50
- "lint-staged": {
51
- "*.ts": "eslint --cache --cache-location .eslintcache --fix"
52
- },
53
- "release": {
54
- "branches": [
55
- "main"
56
- ],
57
- "plugins": [
58
- [
59
- "@semantic-release/commit-analyzer",
60
- {
61
- "preset": "conventionalcommits",
62
- "releaseRules": [
63
- {
64
- "type": "build",
65
- "scope": "deps",
66
- "release": "patch"
67
- }
68
- ]
69
- }
70
- ],
71
- [
72
- "@semantic-release/release-notes-generator",
73
- {
74
- "preset": "conventionalcommits",
75
- "presetConfig": {
76
- "types": [
77
- {
78
- "type": "feat",
79
- "section": "Features"
80
- },
81
- {
82
- "type": "fix",
83
- "section": "Bug Fixes"
84
- },
85
- {
86
- "type": "build",
87
- "section": "Dependencies and Other Build Updates",
88
- "hidden": false
89
- }
90
- ]
91
- }
92
- }
93
- ],
94
- "@semantic-release/npm",
95
- "@semantic-release/github"
96
- ]
97
- },
98
- "dependencies": {
99
- "@ethersproject/providers": "^5.7.2",
100
- "ethcall": "^4.8.13",
101
- "ethers": "^5.7.2",
102
- "luxon": "^3.2.0"
103
- }
104
- }
1
+ {
2
+ "name": "@gainsnetwork/sdk",
3
+ "version": "0.0.23-rc2",
4
+ "description": "Gains Network SDK",
5
+ "main": "./lib/index.js",
6
+ "files": [
7
+ "lib/**/*"
8
+ ],
9
+ "scripts": {
10
+ "build": "tsc --project tsconfig.build.json",
11
+ "clean": "rm -rf ./lib/",
12
+ "cm": "cz",
13
+ "lint": "eslint ./src/ --fix",
14
+ "prepare": "husky install",
15
+ "semantic-release": "semantic-release",
16
+ "test:watch": "jest --watch",
17
+ "test": "jest --coverage",
18
+ "typecheck": "tsc --noEmit",
19
+ "generate-types": "typechain --target=ethers-v5 --out-dir ./src/contracts/types/generated ./abi/*.json"
20
+ },
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+git@github.com:GainsNetwork-org/sdk.git"
24
+ },
25
+ "engines": {
26
+ "node": ">=12.0"
27
+ },
28
+ "devDependencies": {
29
+ "@typechain/ethers-v5": "^10.1.1",
30
+ "@types/jest": "^27.5.2",
31
+ "@types/luxon": "^3.2.0",
32
+ "@types/node": "^12.20.11",
33
+ "@typescript-eslint/eslint-plugin": "^4.22.0",
34
+ "@typescript-eslint/parser": "^4.22.0",
35
+ "conventional-changelog-conventionalcommits": "^5.0.0",
36
+ "eslint": "^7.25.0",
37
+ "eslint-config-prettier": "^8.3.0",
38
+ "eslint-plugin-node": "^11.1.0",
39
+ "eslint-plugin-prettier": "^3.4.0",
40
+ "husky": "^6.0.0",
41
+ "jest": "^27.2.0",
42
+ "lint-staged": "^10.5.4",
43
+ "prettier": "^2.2.1",
44
+ "semantic-release": "^19.0.2",
45
+ "ts-jest": "^27.1.5",
46
+ "ts-node": "^10.2.1",
47
+ "typechain": "^8.1.1",
48
+ "typescript": "^4.2.4"
49
+ },
50
+ "lint-staged": {
51
+ "*.ts": "eslint --cache --cache-location .eslintcache --fix"
52
+ },
53
+ "release": {
54
+ "branches": [
55
+ "main"
56
+ ],
57
+ "plugins": [
58
+ [
59
+ "@semantic-release/commit-analyzer",
60
+ {
61
+ "preset": "conventionalcommits",
62
+ "releaseRules": [
63
+ {
64
+ "type": "build",
65
+ "scope": "deps",
66
+ "release": "patch"
67
+ }
68
+ ]
69
+ }
70
+ ],
71
+ [
72
+ "@semantic-release/release-notes-generator",
73
+ {
74
+ "preset": "conventionalcommits",
75
+ "presetConfig": {
76
+ "types": [
77
+ {
78
+ "type": "feat",
79
+ "section": "Features"
80
+ },
81
+ {
82
+ "type": "fix",
83
+ "section": "Bug Fixes"
84
+ },
85
+ {
86
+ "type": "build",
87
+ "section": "Dependencies and Other Build Updates",
88
+ "hidden": false
89
+ }
90
+ ]
91
+ }
92
+ }
93
+ ],
94
+ "@semantic-release/npm",
95
+ "@semantic-release/github"
96
+ ]
97
+ },
98
+ "dependencies": {
99
+ "@ethersproject/providers": "^5.7.2",
100
+ "ethcall": "^4.8.13",
101
+ "ethers": "^5.7.2",
102
+ "luxon": "^3.2.0"
103
+ }
104
+ }