@scallop-io/sui-scallop-sdk 0.44.2 → 0.44.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 (58) hide show
  1. package/dist/builders/borrowIncentiveBuilder.d.ts +12 -0
  2. package/dist/constants/common.d.ts +3 -1
  3. package/dist/constants/enum.d.ts +3 -2
  4. package/dist/index.js +753 -211
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +714 -175
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/models/scallopClient.d.ts +33 -2
  9. package/dist/models/scallopQuery.d.ts +31 -10
  10. package/dist/models/scallopUtils.d.ts +11 -4
  11. package/dist/queries/borrowIncentiveQuery.d.ts +24 -0
  12. package/dist/queries/coreQuery.d.ts +8 -0
  13. package/dist/queries/index.d.ts +1 -0
  14. package/dist/queries/spoolQuery.d.ts +13 -5
  15. package/dist/types/address.d.ts +8 -0
  16. package/dist/types/builder/borrowIncentive.d.ts +31 -0
  17. package/dist/types/builder/index.d.ts +3 -1
  18. package/dist/types/constant/common.d.ts +5 -3
  19. package/dist/types/constant/enum.d.ts +6 -3
  20. package/dist/types/query/borrowIncentive.d.ts +118 -0
  21. package/dist/types/query/core.d.ts +1 -0
  22. package/dist/types/query/index.d.ts +1 -0
  23. package/dist/types/query/spool.d.ts +12 -13
  24. package/dist/utils/builder.d.ts +8 -0
  25. package/dist/utils/index.d.ts +1 -1
  26. package/dist/utils/query.d.ts +33 -10
  27. package/dist/utils/util.d.ts +13 -0
  28. package/package.json +1 -1
  29. package/src/builders/borrowIncentiveBuilder.ts +257 -0
  30. package/src/builders/coreBuilder.ts +1 -14
  31. package/src/builders/index.ts +9 -2
  32. package/src/builders/spoolBuilder.ts +3 -16
  33. package/src/constants/common.ts +4 -1
  34. package/src/constants/enum.ts +8 -2
  35. package/src/models/scallopAddress.ts +8 -0
  36. package/src/models/scallopClient.ts +104 -2
  37. package/src/models/scallopQuery.ts +48 -14
  38. package/src/models/scallopUtils.ts +21 -5
  39. package/src/queries/borrowIncentiveQuery.ts +166 -0
  40. package/src/queries/coreQuery.ts +57 -15
  41. package/src/queries/index.ts +1 -0
  42. package/src/queries/spoolQuery.ts +78 -62
  43. package/src/types/address.ts +8 -0
  44. package/src/types/builder/borrowIncentive.ts +67 -0
  45. package/src/types/builder/index.ts +5 -1
  46. package/src/types/builder/spool.ts +0 -1
  47. package/src/types/constant/common.ts +10 -3
  48. package/src/types/constant/enum.ts +9 -3
  49. package/src/types/query/borrowIncentive.ts +150 -0
  50. package/src/types/query/core.ts +1 -1
  51. package/src/types/query/index.ts +1 -0
  52. package/src/types/query/spool.ts +28 -18
  53. package/src/utils/builder.ts +15 -0
  54. package/src/utils/index.ts +1 -1
  55. package/src/utils/query.ts +277 -70
  56. package/src/utils/util.ts +36 -2
  57. package/dist/utils/oracle.d.ts +0 -14
  58. package/src/utils/oracle.ts +0 -36
@@ -4,7 +4,9 @@ import {
4
4
  SUPPORT_ORACLES,
5
5
  SUPPORT_PACKAGES,
6
6
  SUPPORT_SPOOLS,
7
- SUPPORT_REWARD_POOLS,
7
+ SUPPORT_SPOOLS_REWARDS,
8
+ SUPPORT_BORROW_INCENTIVE_POOLS,
9
+ SUPPORT_BORROW_INCENTIVE_REWARDS,
8
10
  } from '../../constants';
9
11
 
10
12
  type ParseMarketCoins<T extends string> = `s${T}`;
@@ -17,7 +19,8 @@ export type SupportCoins =
17
19
  export type SupportAssetCoins =
18
20
  | SupportPoolCoins
19
21
  | SupportCollateralCoins
20
- | SupportRewardCoins;
22
+ | SupportStakeRewardCoins
23
+ | SupportBorrowIncentiveRewardCoins;
21
24
  export type SupportPoolCoins = (typeof SUPPORT_POOLS)[number];
22
25
  export type SupportCollateralCoins = (typeof SUPPORT_COLLATERALS)[number];
23
26
  export type SupportMarketCoins =
@@ -28,7 +31,11 @@ export type SupportStakeCoins = Extract<
28
31
  SupportPoolCoins,
29
32
  ParseCoins<SupportStakeMarketCoins>
30
33
  >;
31
- export type SupportRewardCoins = (typeof SUPPORT_REWARD_POOLS)[number];
34
+ export type SupportStakeRewardCoins = (typeof SUPPORT_SPOOLS_REWARDS)[number];
35
+ export type SupportBorrowIncentiveCoins =
36
+ (typeof SUPPORT_BORROW_INCENTIVE_POOLS)[number];
37
+ export type SupportBorrowIncentiveRewardCoins =
38
+ (typeof SUPPORT_BORROW_INCENTIVE_REWARDS)[number];
32
39
 
33
40
  export type SupportOracleType = (typeof SUPPORT_ORACLES)[number];
34
41
 
@@ -3,7 +3,9 @@ import {
3
3
  SupportAssetCoins,
4
4
  SupportMarketCoins,
5
5
  SupportStakeMarketCoins,
6
- SupportRewardCoins,
6
+ SupportStakeRewardCoins,
7
+ SupportBorrowIncentiveCoins,
8
+ SupportBorrowIncentiveRewardCoins,
7
9
  } from './common';
8
10
 
9
11
  export type Coins = {
@@ -22,8 +24,12 @@ export type StakeMarketCoins = {
22
24
  [K in SupportStakeMarketCoins]: K;
23
25
  };
24
26
 
25
- export type RewardCoins = {
26
- [key in SupportStakeMarketCoins]: SupportRewardCoins;
27
+ export type StakeRewardCoins = {
28
+ [key in SupportStakeMarketCoins]: SupportStakeRewardCoins;
29
+ };
30
+
31
+ export type BorrowIncentiveRewardCoins = {
32
+ [key in SupportBorrowIncentiveCoins]: SupportBorrowIncentiveRewardCoins;
27
33
  };
28
34
 
29
35
  export type AssetCoinIds = {
@@ -0,0 +1,150 @@
1
+ import type { SupportBorrowIncentiveCoins } from '../constant';
2
+
3
+ export interface BorrowIncentiveAccountKey {
4
+ id: string;
5
+ onwerId: string;
6
+ }
7
+
8
+ type OptionalKeys<T> = {
9
+ [K in keyof T]?: T[K];
10
+ };
11
+
12
+ export type BorrowIncentivePools = OptionalKeys<
13
+ Record<SupportBorrowIncentiveCoins, BorrowIncentivePool>
14
+ >;
15
+
16
+ export type BorrowIncentivePool = {
17
+ coinName: SupportBorrowIncentiveCoins;
18
+ symbol: string;
19
+ coinType: string;
20
+ rewardCoinType: string;
21
+ coinDecimal: number;
22
+ rewardCoinDecimal: number;
23
+ coinPrice: number;
24
+ rewardCoinPrice: number;
25
+ } & Required<
26
+ Pick<
27
+ ParsedBorrowIncentivePoolData,
28
+ 'maxPoint' | 'distributedPoint' | 'maxStake'
29
+ >
30
+ > &
31
+ CalculatedBorrowIncentivePoolData &
32
+ BorrowIncentiveRewardPool;
33
+
34
+ export type OriginBorrowIncentivePoolData = {
35
+ created_at: string;
36
+ distributed_point: string;
37
+ distributed_point_per_period: string;
38
+ index: string;
39
+ last_update: string;
40
+ max_distributed_point: string;
41
+ max_stakes: string;
42
+ point_distribution_time: string;
43
+ pool_type: {
44
+ name: string;
45
+ };
46
+ stakes: string;
47
+ };
48
+
49
+ export type ParsedBorrowIncentivePoolData = {
50
+ poolType: string;
51
+ maxPoint: number;
52
+ distributedPoint: number;
53
+ pointPerPeriod: number;
54
+ period: number;
55
+ maxStake: number;
56
+ staked: number;
57
+ index: number;
58
+ createdAt: number;
59
+ lastUpdate: number;
60
+ };
61
+
62
+ export type CalculatedBorrowIncentivePoolData = {
63
+ stakedAmount: number;
64
+ stakedCoin: number;
65
+ stakedValue: number;
66
+ distributedPointPerSec: number;
67
+ accumulatedPoints: number;
68
+ currentPointIndex: number;
69
+ currentTotalDistributedPoint: number;
70
+ startDate: Date;
71
+ endDate: Date;
72
+ };
73
+
74
+ export type BorrowIncentiveRewardPool = Required<
75
+ Pick<
76
+ ParsedBorrowIncentiveRewardPoolData,
77
+ 'exchangeRateNumerator' | 'exchangeRateDenominator'
78
+ >
79
+ > &
80
+ CalculatedBorrowIncentiveRewardPoolData;
81
+
82
+ export type OriginBorrowIncentiveRewardPoolData = {
83
+ claimed_rewards: string;
84
+ exchange_rate_denominator: string;
85
+ exchange_rate_numerator: string;
86
+ remaining_reward: string;
87
+ reward_type: {
88
+ name: string;
89
+ };
90
+ };
91
+
92
+ export type ParsedBorrowIncentiveRewardPoolData = {
93
+ rewardType: string;
94
+ claimedRewards: number;
95
+ exchangeRateNumerator: number;
96
+ exchangeRateDenominator: number;
97
+ remainingRewards: number;
98
+ };
99
+
100
+ export type CalculatedBorrowIncentiveRewardPoolData = {
101
+ rewardApr: number;
102
+ totalRewardAmount: number;
103
+ totalRewardCoin: number;
104
+ totalRewardValue: number;
105
+ remaindRewardAmount: number;
106
+ remaindRewardCoin: number;
107
+ remaindRewardValue: number;
108
+ claimedRewardAmount: number;
109
+ claimedRewardCoin: number;
110
+ claimedRewardValue: number;
111
+ rewardPerSec: number;
112
+ };
113
+
114
+ export type BorrowIncentiveAccounts = OptionalKeys<
115
+ Record<SupportBorrowIncentiveCoins, ParsedBorrowIncentiveAccountData>
116
+ >;
117
+
118
+ export type OriginBorrowIncentiveAccountData = {
119
+ amount: string;
120
+ index: string;
121
+ points: string;
122
+ pool_type: {
123
+ name: string;
124
+ };
125
+ total_points: string;
126
+ };
127
+
128
+ export type ParsedBorrowIncentiveAccountData = {
129
+ poolType: string;
130
+ amount: number;
131
+ index: number;
132
+ points: number;
133
+ totalPoints: number;
134
+ };
135
+
136
+ /**
137
+ * The query interface for `incentive_pools_query::incentive_pools_data` inspectTxn.
138
+ */
139
+ export interface BorrowIncentivePoolsQueryInterface {
140
+ incentive_pools: OriginBorrowIncentivePoolData[];
141
+ reward_pool: OriginBorrowIncentiveRewardPoolData;
142
+ }
143
+
144
+ /**
145
+ * The query interface for `incentive_account_query::incentive_account_data` inspectTxn.
146
+ */
147
+ export interface BorrowIncentiveAccountsQueryInterface {
148
+ incentive_states: OriginBorrowIncentiveAccountData[];
149
+ total_points: string;
150
+ }
@@ -255,7 +255,7 @@ export type Market = {
255
255
  data?: MarketQueryInterface;
256
256
  };
257
257
 
258
- export type Obligation = { id: string; keyId: string };
258
+ export type Obligation = { id: string; keyId: string; locked: boolean };
259
259
 
260
260
  /**
261
261
  * The query interface for `market_query::market_data` inspectTxn.
@@ -1,3 +1,4 @@
1
1
  export type * from './core';
2
2
  export type * from './spool';
3
+ export type * from './borrowIncentive';
3
4
  export type * from './portfolio';
@@ -4,13 +4,6 @@ type OptionalKeys<T> = {
4
4
  [K in keyof T]?: T[K];
5
5
  };
6
6
 
7
- export type StakePools = OptionalKeys<
8
- Record<SupportStakeMarketCoins, StakePool>
9
- >;
10
- export type RewardPools = OptionalKeys<
11
- Record<SupportStakeMarketCoins, RewardPool>
12
- >;
13
- export type StakeAccounts = Record<SupportStakeMarketCoins, StakeAccount[]>;
14
7
  export type Spools = OptionalKeys<Record<SupportStakeMarketCoins, Spool>>;
15
8
 
16
9
  export type Spool = {
@@ -24,10 +17,13 @@ export type Spool = {
24
17
  coinPrice: number;
25
18
  marketCoinPrice: number;
26
19
  rewardCoinPrice: number;
27
- } & CalculatedStakePoolData &
28
- CalculatedRewardPoolData;
20
+ } & Required<
21
+ Pick<ParsedSpoolData, 'maxPoint' | 'distributedPoint' | 'maxStake'>
22
+ > &
23
+ CalculatedSpoolData &
24
+ SpoolRewardPool;
29
25
 
30
- export type OriginStakePoolData = {
26
+ export type OriginSpoolData = {
31
27
  stakeType: { fields: { name: string } };
32
28
  maxDistributedPoint: string;
33
29
  distributedPoint: string;
@@ -40,7 +36,7 @@ export type OriginStakePoolData = {
40
36
  lastUpdate: string;
41
37
  };
42
38
 
43
- export type ParsedStakePoolData = {
39
+ export type ParsedSpoolData = {
44
40
  stakeType: string;
45
41
  maxPoint: number;
46
42
  distributedPoint: number;
@@ -53,7 +49,7 @@ export type ParsedStakePoolData = {
53
49
  lastUpdate: number;
54
50
  };
55
51
 
56
- export type CalculatedStakePoolData = {
52
+ export type CalculatedSpoolData = {
57
53
  stakedAmount: number;
58
54
  stakedCoin: number;
59
55
  stakedValue: number;
@@ -65,7 +61,15 @@ export type CalculatedStakePoolData = {
65
61
  endDate: Date;
66
62
  };
67
63
 
68
- export type OriginRewardPoolData = {
64
+ export type SpoolRewardPool = Required<
65
+ Pick<
66
+ ParsedSpoolRewardPoolData,
67
+ 'exchangeRateNumerator' | 'exchangeRateDenominator'
68
+ >
69
+ > &
70
+ CalculatedSpoolRewardPoolData;
71
+
72
+ export type OriginSpoolRewardPoolData = {
69
73
  claimed_rewards: string;
70
74
  exchange_rate_denominator: string;
71
75
  exchange_rate_numerator: string;
@@ -73,7 +77,7 @@ export type OriginRewardPoolData = {
73
77
  spool_id: string;
74
78
  };
75
79
 
76
- export type ParsedRewardPoolData = {
80
+ export type ParsedSpoolRewardPoolData = {
77
81
  claimedRewards: number;
78
82
  exchangeRateNumerator: number;
79
83
  exchangeRateDenominator: number;
@@ -81,7 +85,7 @@ export type ParsedRewardPoolData = {
81
85
  spoolId: string;
82
86
  };
83
87
 
84
- export type CalculatedRewardPoolData = {
88
+ export type CalculatedSpoolRewardPoolData = {
85
89
  rewardApr: number;
86
90
  totalRewardAmount: number;
87
91
  totalRewardCoin: number;
@@ -93,10 +97,16 @@ export type CalculatedRewardPoolData = {
93
97
  claimedRewardCoin: number;
94
98
  claimedRewardValue: number;
95
99
  rewardPerSec: number;
96
- exchangeRateNumerator: number;
97
- exchangeRateDenominator: number;
98
100
  };
99
101
 
102
+ export type StakePools = OptionalKeys<
103
+ Record<SupportStakeMarketCoins, StakePool>
104
+ >;
105
+ export type StakeRewardPools = OptionalKeys<
106
+ Record<SupportStakeMarketCoins, StakeRewardPool>
107
+ >;
108
+ export type StakeAccounts = Record<SupportStakeMarketCoins, StakeAccount[]>;
109
+
100
110
  export interface StakeAccount {
101
111
  id: string;
102
112
  type: string;
@@ -123,7 +133,7 @@ export interface StakePool {
123
133
  lastUpdate: number;
124
134
  }
125
135
 
126
- export interface RewardPool {
136
+ export interface StakeRewardPool {
127
137
  id: string;
128
138
  type: string;
129
139
  stakePoolId: string;
@@ -0,0 +1,15 @@
1
+ import type { SuiTxBlock as SuiKitTxBlock } from '@scallop-io/sui-kit';
2
+
3
+ /**
4
+ * Check and get the sender from the transaction block.
5
+ *
6
+ * @param txBlock - TxBlock created by SuiKit.
7
+ * @return Sender of transaction.
8
+ */
9
+ export const requireSender = (txBlock: SuiKitTxBlock) => {
10
+ const sender = txBlock.blockData.sender;
11
+ if (!sender) {
12
+ throw new Error('Sender is required');
13
+ }
14
+ return sender;
15
+ };
@@ -1,3 +1,3 @@
1
- export * from './oracle';
1
+ export * from './builder';
2
2
  export * from './query';
3
3
  export * from './util';