zo-sdk 0.0.3

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 (65) hide show
  1. package/.gitattributes +4 -0
  2. package/.prettierrc.js +5 -0
  3. package/LICENSE +21 -0
  4. package/README.md +1 -0
  5. package/babel.config.js +11 -0
  6. package/dist/api.cjs +466 -0
  7. package/dist/api.d.cts +26 -0
  8. package/dist/api.d.cts.map +1 -0
  9. package/dist/api.d.mts +26 -0
  10. package/dist/api.d.mts.map +1 -0
  11. package/dist/api.mjs +462 -0
  12. package/dist/consts/deployments-mainnet.json +28 -0
  13. package/dist/consts/deployments-testnet.json +93 -0
  14. package/dist/consts/index.cjs +101 -0
  15. package/dist/consts/index.d.cts +66 -0
  16. package/dist/consts/index.d.cts.map +1 -0
  17. package/dist/consts/index.d.mts +66 -0
  18. package/dist/consts/index.d.mts.map +1 -0
  19. package/dist/consts/index.mjs +94 -0
  20. package/dist/consts/price_id_to_object_id.mainnet.json +1 -0
  21. package/dist/consts/price_id_to_object_id.testnet.json +17 -0
  22. package/dist/consts/staking/deployments-mainnet.json +12 -0
  23. package/dist/consts/staking/deployments-testnet.json +11 -0
  24. package/dist/data.cjs +844 -0
  25. package/dist/data.d.cts +221 -0
  26. package/dist/data.d.cts.map +1 -0
  27. package/dist/data.d.mts +221 -0
  28. package/dist/data.d.mts.map +1 -0
  29. package/dist/data.mjs +840 -0
  30. package/dist/index.cjs +21 -0
  31. package/dist/index.d.cts +6 -0
  32. package/dist/index.d.cts.map +1 -0
  33. package/dist/index.d.mts +6 -0
  34. package/dist/index.d.mts.map +1 -0
  35. package/dist/index.mjs +5 -0
  36. package/dist/oracle.cjs +178 -0
  37. package/dist/oracle.d.cts +24 -0
  38. package/dist/oracle.d.cts.map +1 -0
  39. package/dist/oracle.d.mts +24 -0
  40. package/dist/oracle.d.mts.map +1 -0
  41. package/dist/oracle.mjs +173 -0
  42. package/dist/utils.cjs +144 -0
  43. package/dist/utils.d.cts +46 -0
  44. package/dist/utils.d.cts.map +1 -0
  45. package/dist/utils.d.mts +46 -0
  46. package/dist/utils.d.mts.map +1 -0
  47. package/dist/utils.mjs +129 -0
  48. package/jest.config.js +7 -0
  49. package/package.json +29 -0
  50. package/src/api.ts +544 -0
  51. package/src/consts/deployments-mainnet.json +28 -0
  52. package/src/consts/deployments-testnet.json +93 -0
  53. package/src/consts/index.ts +162 -0
  54. package/src/consts/price_id_to_object_id.mainnet.json +1 -0
  55. package/src/consts/price_id_to_object_id.testnet.json +17 -0
  56. package/src/consts/staking/deployments-mainnet.json +12 -0
  57. package/src/consts/staking/deployments-testnet.json +11 -0
  58. package/src/data.ts +1059 -0
  59. package/src/index.ts +5 -0
  60. package/src/oracle.ts +161 -0
  61. package/src/utils.ts +184 -0
  62. package/tests/api.test.ts +219 -0
  63. package/tests/data.test.ts +156 -0
  64. package/tests/oracle.test.ts +33 -0
  65. package/tsconfig.json +25 -0
@@ -0,0 +1,156 @@
1
+ import consola from 'consola'
2
+ import { describe, it } from 'vitest'
3
+
4
+ import { DataAPI } from '../src/data'
5
+
6
+ describe('Data', () => {
7
+ it('should return market info', async () => {
8
+ const api = new DataAPI('testnet')
9
+ const marketInfo = await api.getMarketInfo()
10
+ consola.log('Market Info:\n', JSON.stringify(marketInfo, null, 2))
11
+ }, 30000)
12
+
13
+ it('should return vault info', async () => {
14
+ const api = new DataAPI('mainnet')
15
+ const coin = 'sui'
16
+ const vaultInfo = await api.getVaultInfo(coin)
17
+ consola.log(`Vault Info for ${coin}:\n`, JSON.stringify(vaultInfo, null, 2))
18
+ }, 30000)
19
+
20
+ it('should return symbol info', async () => {
21
+ const api = new DataAPI('mainnet')
22
+ const symbolInfo = await api.getSymbolInfo('btc', false)
23
+ consola.log('Symbol Info for BTC:\n', JSON.stringify(symbolInfo, null, 2))
24
+ }, 30000)
25
+
26
+ it('should return market valuation', async () => {
27
+ const api = new DataAPI('mainnet')
28
+ const value = await api.valuateMarket()
29
+ consola.log('Market Valuation:\n', value)
30
+ }, 30000)
31
+
32
+ it('should return position', async () => {
33
+ const api = new DataAPI('mainnet')
34
+ const owner = '0x2ccaa4a34c46e1bf6c22a52732ddbb589caefb9c5c0c0f3da485348a5441deb0'
35
+ const positionCapInfoList = await api.getPositionCapInfoList(owner)
36
+ const positionInfoList = await api.getPositionInfoList(positionCapInfoList, owner)
37
+ consola.log('Position Info for Owner:\n', JSON.stringify(positionInfoList, null, 2))
38
+ }, 300000)
39
+
40
+ it('should return position config', async () => {
41
+ const api = new DataAPI('mainnet')
42
+ const positionConfig = await api.getPositionConfig('btc', false)
43
+ consola.log('Position Config:\n', JSON.stringify(positionConfig, null, 2))
44
+ }, 30000)
45
+
46
+ it('should return funding rate', async () => {
47
+ const api = new DataAPI('mainnet')
48
+ const fundingRate = await api.fundingFeeRate('btc', true)
49
+ consola.log('Funding Rate:\n', `${fundingRate * 100}%`)
50
+ }, 30000)
51
+
52
+ it('should return rebase rate', async () => {
53
+ const api = new DataAPI('mainnet')
54
+ const rebaseRate = await api.rebaseFeeRate('sui', true, 1000000e9)
55
+ consola.log('Rebase Rate:\n', rebaseRate)
56
+ }, 30000)
57
+
58
+ it('should return reserving rate', async () => {
59
+ const api = new DataAPI('mainnet')
60
+ const reservingRate = await api.reservingFeeRate('sui', 1000)
61
+ consola.log('Reserving Rate:\n', reservingRate)
62
+ }, 30000)
63
+
64
+ it('should return order', async () => {
65
+ const api = new DataAPI('mainnet')
66
+ const sender = '0x2ccaa4a34c46e1bf6c22a52732ddbb589caefb9c5c0c0f3da485348a5441deb0'
67
+ const orderCapInfoList = await api.getOrderCapInfoList(sender)
68
+ consola.log(orderCapInfoList)
69
+ const orderInfoList = await api.getOrderInfoList(orderCapInfoList, sender)
70
+ consola.log('Order Info:\n', orderInfoList)
71
+ }, 30000)
72
+
73
+ it('should return histories', async () => {
74
+ const api = new DataAPI('testnet')
75
+ const sender = '0x2ccaa4a34c46e1bf6c22a52732ddbb589caefb9c5c0c0f3da485348a5441deb0'
76
+ const histories = await api.getHistories(sender)
77
+ consola.log('Histories:\n', histories)
78
+ }, 30000)
79
+
80
+ it('should return proxied histories', async () => {
81
+ const api = new DataAPI('mainnet')
82
+ const sender = '0x2ccaa4a34c46e1bf6c22a52732ddbb589caefb9c5c0c0f3da485348a5441deb0'
83
+ const histories = await api.getProxiedHistories(sender)
84
+ consola.log('Histories:\n', histories)
85
+ }, 30000)
86
+
87
+ it('should return staked', async () => {
88
+ const api = new DataAPI('testnet')
89
+ const sender = '0xacbf7088b178c7fd70018956f06aee879a3463b794d381bdd85fb84c4f42d703'
90
+ const staked = await api.getStaked(sender)
91
+ consola.log('Staked:\n', staked)
92
+ }, 30000)
93
+
94
+ it('should return stake pool', async () => {
95
+ const api = new DataAPI('mainnet')
96
+ const pool = await api.getStakePool()
97
+ consola.log('Stake Pool:\n', pool)
98
+ }, 30000)
99
+
100
+ it('should return rebase fee model', async () => {
101
+ const api = new DataAPI('mainnet')
102
+ const rebaseFeeModel = await api.getRebaseFeeModel()
103
+ consola.log('Rebase Fee Model:\n', rebaseFeeModel)
104
+ }, 30000)
105
+
106
+ it('should return referral data', async () => {
107
+ const api = new DataAPI('mainnet')
108
+ const referralData = await api.getReferralData('0xacbf7088b178c7fd70018956f06aee879a3463b794d381bdd85fb84c4f42d702')
109
+ consola.log('Referral Data:\n', JSON.stringify(referralData, null, 2))
110
+ }, 30000)
111
+
112
+ it('should return has referral', async () => {
113
+ const api = new DataAPI('mainnet')
114
+ const hasReferral = await api.hasReferral('0xacbf7088b178c7fd70018956f06aee879a3463b794d381bdd85fb84c4f42d703')
115
+ consola.log('Has Referral:\n', hasReferral)
116
+ }, 30000)
117
+
118
+ it('should return getReferreeFromReferrer', async () => {
119
+ const api = new DataAPI('mainnet')
120
+ const referree = await api.getReferreeFromReferrer('0x2ccaa4a34c46e1bf6c22a52732ddbb589caefb9c5c0c0f3da485348a5441deb0')
121
+ consola.log('Referree:\n', referree)
122
+ }, 30000)
123
+
124
+ it('should return getReferreeDetail', async () => {
125
+ const api = new DataAPI('mainnet')
126
+ const referreeDetail = await api.getReferreeDetail('0xe18eae59db6c3abca469c4daefcc481f5e588b27b4d1bd2864518867149cadbe')
127
+ consola.log('Referree Detail:\n', referreeDetail)
128
+ }, 30000)
129
+
130
+ it('should return getReferrerDetail', async () => {
131
+ const api = new DataAPI('mainnet')
132
+ const referrerDetail = await api.getReferrerDetail('0x2ccaa4a34c46e1bf6c22a52732ddbb589caefb9c5c0c0f3da485348a5441deb0')
133
+ consola.log('Referrer Detail:\n', referrerDetail)
134
+ }, 30000)
135
+
136
+ it('should return getReferralTxs', async () => {
137
+ const api = new DataAPI('mainnet')
138
+ const referralTxs = await api.getReferralTxs('0x2ccaa4a34c46e1bf6c22a52732ddbb589caefb9c5c0c0f3da485348a5441deb0')
139
+ consola.log('Referral Txs:\n', referralTxs)
140
+ }, 30000)
141
+ })
142
+ // describe("Temptest", () => {
143
+ // it("should return a number", async () => {
144
+ // const provider = getProvider('devnet')
145
+ // const res = await provider.getDynamicFieldObject('0x725f2dd252eb7b6867f5261b213a7889eb60bce8', '0x185a799088b28ef7a2e815f1a8b94d74ee11fa40::market::SymbolName<0x2::sui::SUI, 0x2::sui::SUI> {long: true}')
146
+ // consola.log(JSON.stringify(res))
147
+ // }, 30000);
148
+ // })
149
+
150
+ // describe("Temptest", () => {
151
+ // it("should return a number", async () => {
152
+ // const provider = getProvider('devnet')
153
+ // const res = await provider.getObjectsOwnedByAddress('0x8f85fd077e2b42af0559e187eb7cbc137c72bcf2')
154
+ // consola.log(res)
155
+ // }, 30000);
156
+ // })
@@ -0,0 +1,33 @@
1
+ import consola from 'consola'
2
+ import { describe, it } from 'vitest'
3
+
4
+ import { OracleAPI } from '../src/oracle'
5
+
6
+ describe('OracleAPI', () => {
7
+ it('should return priceinfo', async () => {
8
+ const api = new OracleAPI('mainnet')
9
+ const vaas = await api.getOraclePrice('sui')
10
+ const vaas1 = await api.getOraclePrice('sui')
11
+ const vaas2 = await api.getOraclePrice('sui')
12
+ consola.log(vaas, vaas1, vaas2)
13
+ }, 30000)
14
+
15
+ it('should return multi priceinfo', async () => {
16
+ const api = new OracleAPI('mainnet')
17
+ const vaas = await api.getOraclePrices(['sui'])
18
+ consola.log(vaas)
19
+ }, 30000)
20
+
21
+ it('should sub priceinfo', async () => {
22
+ const api = new OracleAPI('mainnet')
23
+ const { consts } = api
24
+ await api.subOraclePrices(Object.keys(consts.pythFeeder.feeder), (price) => {
25
+ consola.log(price)
26
+ })
27
+ await new Promise<void>((resolve) => {
28
+ setTimeout(() => {
29
+ resolve()
30
+ }, 15000)
31
+ })
32
+ }, 30000)
33
+ })
package/tsconfig.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "useDefineForClassFields": true,
5
+ "module": "ESNext",
6
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
7
+ "skipLibCheck": true,
8
+
9
+ /* Bundler mode */
10
+ "moduleResolution": "Bundler",
11
+ "isolatedModules": true,
12
+ "moduleDetection": "force",
13
+ "noEmit": true,
14
+ "resolveJsonModule": true,
15
+ "allowSyntheticDefaultImports": true,
16
+
17
+ /* Linting */
18
+ "strict": true,
19
+ "noUnusedLocals": true,
20
+ "noUnusedParameters": true,
21
+ "noFallthroughCasesInSwitch": true,
22
+ "noUncheckedSideEffectImports": true
23
+ },
24
+ "include": ["src/**/*.ts"]
25
+ }