@typus/typus-sdk 1.7.11 → 1.7.13
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/dist/src/typus-dov-single-v2/authority-entry.d.ts +59 -0
- package/dist/src/typus-dov-single-v2/authority-entry.js +77 -0
- package/dist/src/typus-dov-single-v2/otc-entry.d.ts +1 -1
- package/dist/src/typus-dov-single-v2/otc-entry.js +15 -20
- package/dist/src/typus-hedge/index.d.ts +2 -0
- package/dist/src/typus-hedge/index.js +22 -0
- package/dist/src/typus-hedge/user-entry.d.ts +74 -0
- package/dist/src/typus-hedge/user-entry.js +155 -0
- package/dist/src/typus-hedge/view-function.d.ts +75 -0
- package/dist/src/typus-hedge/view-function.js +269 -0
- package/dist/src/utils/api/price.js +2 -3
- package/dist/src/utils/sponsoredTx.d.ts +8 -0
- package/dist/src/utils/sponsoredTx.js +72 -0
- package/dist/src/utils/tools.d.ts +3 -1
- package/dist/src/utils/tools.js +62 -2
- package/package.json +2 -1
|
@@ -51,3 +51,62 @@ export declare function getUpdateConfigTx(config: TypusConfig, tx: Transaction,
|
|
|
51
51
|
depositIncentiveBpDivisorDecimal?: string;
|
|
52
52
|
};
|
|
53
53
|
}[]): Promise<Transaction>;
|
|
54
|
+
/**
|
|
55
|
+
public entry fun deposit_collateral_navi<TOKEN>(
|
|
56
|
+
registry: &mut Registry,
|
|
57
|
+
index: u64,
|
|
58
|
+
storage: &mut lending_core::storage::Storage,
|
|
59
|
+
pool: &mut lending_core::pool::Pool<TOKEN>,
|
|
60
|
+
asset: u8,
|
|
61
|
+
incentive_v2: &mut lending_core::incentive_v2::Incentive,
|
|
62
|
+
incentive_v3: &mut lending_core::incentive_v3::Incentive,
|
|
63
|
+
coin: Coin<TOKEN>,
|
|
64
|
+
clock: &Clock,
|
|
65
|
+
ctx: &mut TxContext,
|
|
66
|
+
) {
|
|
67
|
+
*/
|
|
68
|
+
export declare function depositCollateralNavi(config: TypusConfig, tx: Transaction, input: {
|
|
69
|
+
typeArguments: string[];
|
|
70
|
+
index: string;
|
|
71
|
+
raiseCoins: string[];
|
|
72
|
+
raiseAmount: string;
|
|
73
|
+
naviStorage: string;
|
|
74
|
+
naviPool: string;
|
|
75
|
+
naviAsset: number;
|
|
76
|
+
naviIncentiveV2: string;
|
|
77
|
+
naviIncentiveV3: string;
|
|
78
|
+
}): void;
|
|
79
|
+
/**
|
|
80
|
+
public entry fun withdraw_collateral_navi<TOKEN>(
|
|
81
|
+
registry: &mut Registry,
|
|
82
|
+
index: u64,
|
|
83
|
+
oracle_config: &mut OracleConfig,
|
|
84
|
+
price_oracle: &mut PriceOracle,
|
|
85
|
+
supra_oracle_holder: &SupraOracle::SupraSValueFeed::OracleHolder,
|
|
86
|
+
pyth_price_info: &pyth::price_info::PriceInfoObject,
|
|
87
|
+
feed_address: address,
|
|
88
|
+
storage: &mut lending_core::storage::Storage,
|
|
89
|
+
pool: &mut lending_core::pool::Pool<TOKEN>,
|
|
90
|
+
asset: u8,
|
|
91
|
+
incentive_v2: &mut lending_core::incentive_v2::Incentive,
|
|
92
|
+
incentive_v3: &mut lending_core::incentive_v3::Incentive,
|
|
93
|
+
amount: Option<u64>,
|
|
94
|
+
clock: &Clock,
|
|
95
|
+
ctx: &mut TxContext,
|
|
96
|
+
) {
|
|
97
|
+
*/
|
|
98
|
+
export declare function withdrawCollateralNavi(config: TypusConfig, tx: Transaction, input: {
|
|
99
|
+
typeArguments: string[];
|
|
100
|
+
index: string;
|
|
101
|
+
naviOracleConfig: string;
|
|
102
|
+
naviPriceOracle: string;
|
|
103
|
+
naviSupraOracleHolder: string;
|
|
104
|
+
naviPythPriceInfo: string;
|
|
105
|
+
naviFeedAddress: string;
|
|
106
|
+
naviStorage: string;
|
|
107
|
+
naviPool: string;
|
|
108
|
+
naviAsset: number;
|
|
109
|
+
naviIncentiveV2: string;
|
|
110
|
+
naviIncentiveV3: string;
|
|
111
|
+
amount: string | undefined;
|
|
112
|
+
}): void;
|
|
@@ -37,6 +37,10 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.getUpdateConfigTx = getUpdateConfigTx;
|
|
40
|
+
exports.depositCollateralNavi = depositCollateralNavi;
|
|
41
|
+
exports.withdrawCollateralNavi = withdrawCollateralNavi;
|
|
42
|
+
var constants_1 = require("../../src/constants");
|
|
43
|
+
var utils_1 = require("../../src/utils");
|
|
40
44
|
/**
|
|
41
45
|
public(friend) entry fun update_config(
|
|
42
46
|
registry: &mut Registry,
|
|
@@ -100,3 +104,76 @@ function getUpdateConfigTx(config, tx, requests) {
|
|
|
100
104
|
});
|
|
101
105
|
});
|
|
102
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
public entry fun deposit_collateral_navi<TOKEN>(
|
|
109
|
+
registry: &mut Registry,
|
|
110
|
+
index: u64,
|
|
111
|
+
storage: &mut lending_core::storage::Storage,
|
|
112
|
+
pool: &mut lending_core::pool::Pool<TOKEN>,
|
|
113
|
+
asset: u8,
|
|
114
|
+
incentive_v2: &mut lending_core::incentive_v2::Incentive,
|
|
115
|
+
incentive_v3: &mut lending_core::incentive_v3::Incentive,
|
|
116
|
+
coin: Coin<TOKEN>,
|
|
117
|
+
clock: &Clock,
|
|
118
|
+
ctx: &mut TxContext,
|
|
119
|
+
) {
|
|
120
|
+
*/
|
|
121
|
+
function depositCollateralNavi(config, tx, input) {
|
|
122
|
+
var coin = (0, utils_1.splitCoins)(tx, input.typeArguments[0], input.raiseCoins, input.raiseAmount);
|
|
123
|
+
tx.moveCall({
|
|
124
|
+
target: "".concat(config.package.dovSingle, "::tds_authorized_entry::deposit_collateral_navi"),
|
|
125
|
+
typeArguments: input.typeArguments,
|
|
126
|
+
arguments: [
|
|
127
|
+
tx.object(config.registry.dov.dovSingle),
|
|
128
|
+
tx.pure.u64(input.index),
|
|
129
|
+
tx.object(input.naviStorage),
|
|
130
|
+
tx.object(input.naviPool),
|
|
131
|
+
tx.pure.u8(input.naviAsset),
|
|
132
|
+
tx.object(input.naviIncentiveV2),
|
|
133
|
+
tx.object(input.naviIncentiveV3),
|
|
134
|
+
tx.object(coin),
|
|
135
|
+
tx.object(constants_1.CLOCK),
|
|
136
|
+
],
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
public entry fun withdraw_collateral_navi<TOKEN>(
|
|
141
|
+
registry: &mut Registry,
|
|
142
|
+
index: u64,
|
|
143
|
+
oracle_config: &mut OracleConfig,
|
|
144
|
+
price_oracle: &mut PriceOracle,
|
|
145
|
+
supra_oracle_holder: &SupraOracle::SupraSValueFeed::OracleHolder,
|
|
146
|
+
pyth_price_info: &pyth::price_info::PriceInfoObject,
|
|
147
|
+
feed_address: address,
|
|
148
|
+
storage: &mut lending_core::storage::Storage,
|
|
149
|
+
pool: &mut lending_core::pool::Pool<TOKEN>,
|
|
150
|
+
asset: u8,
|
|
151
|
+
incentive_v2: &mut lending_core::incentive_v2::Incentive,
|
|
152
|
+
incentive_v3: &mut lending_core::incentive_v3::Incentive,
|
|
153
|
+
amount: Option<u64>,
|
|
154
|
+
clock: &Clock,
|
|
155
|
+
ctx: &mut TxContext,
|
|
156
|
+
) {
|
|
157
|
+
*/
|
|
158
|
+
function withdrawCollateralNavi(config, tx, input) {
|
|
159
|
+
tx.moveCall({
|
|
160
|
+
target: "".concat(config.package.dovSingle, "::tds_authorized_entry::withdraw_collateral_navi"),
|
|
161
|
+
typeArguments: input.typeArguments,
|
|
162
|
+
arguments: [
|
|
163
|
+
tx.object(config.registry.dov.dovSingle),
|
|
164
|
+
tx.pure.u64(input.index),
|
|
165
|
+
tx.object(input.naviOracleConfig),
|
|
166
|
+
tx.object(input.naviPriceOracle),
|
|
167
|
+
tx.object(input.naviSupraOracleHolder),
|
|
168
|
+
tx.object(input.naviPythPriceInfo),
|
|
169
|
+
tx.pure.address(input.naviFeedAddress),
|
|
170
|
+
tx.object(input.naviStorage),
|
|
171
|
+
tx.object(input.naviPool),
|
|
172
|
+
tx.pure.u8(input.naviAsset),
|
|
173
|
+
tx.object(input.naviIncentiveV2),
|
|
174
|
+
tx.object(input.naviIncentiveV3),
|
|
175
|
+
tx.pure.option("u64", input.amount),
|
|
176
|
+
tx.object(constants_1.CLOCK),
|
|
177
|
+
],
|
|
178
|
+
});
|
|
179
|
+
}
|
|
@@ -60,24 +60,19 @@ var constants_2 = require("../../src/constants");
|
|
|
60
60
|
) {
|
|
61
61
|
*/
|
|
62
62
|
function addOtcConfig(config, tx, input) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
tx.pure.u64(input.expiration_ts_ms),
|
|
77
|
-
],
|
|
78
|
-
});
|
|
79
|
-
return [2 /*return*/];
|
|
80
|
-
});
|
|
63
|
+
tx.moveCall({
|
|
64
|
+
target: "".concat(config.package.dovSingle, "::tds_otc_entry::add_otc_config"),
|
|
65
|
+
typeArguments: [],
|
|
66
|
+
arguments: [
|
|
67
|
+
tx.object(config.registry.dov.dovSingle),
|
|
68
|
+
tx.pure.address(input.user),
|
|
69
|
+
tx.pure.u64(input.index),
|
|
70
|
+
tx.pure.u64(input.round),
|
|
71
|
+
tx.pure.u64(input.size),
|
|
72
|
+
tx.pure.u64(input.price),
|
|
73
|
+
tx.pure.u64(input.fee_bp),
|
|
74
|
+
tx.pure.u64(input.expiration_ts_ms),
|
|
75
|
+
],
|
|
81
76
|
});
|
|
82
77
|
}
|
|
83
78
|
/**
|
|
@@ -113,10 +108,10 @@ function otc(config, tx, input) {
|
|
|
113
108
|
return __awaiter(this, void 0, void 0, function () {
|
|
114
109
|
var coin, balance;
|
|
115
110
|
return __generator(this, function (_a) {
|
|
116
|
-
coin = (0, utils_1.splitCoins)(tx, input.typeArguments[
|
|
111
|
+
coin = (0, utils_1.splitCoins)(tx, input.typeArguments[1], input.coins, input.amount);
|
|
117
112
|
balance = tx.moveCall({
|
|
118
113
|
target: "0x2::coin::into_balance",
|
|
119
|
-
typeArguments: [input.typeArguments[
|
|
114
|
+
typeArguments: [input.typeArguments[1]],
|
|
120
115
|
arguments: [tx.object(coin)],
|
|
121
116
|
});
|
|
122
117
|
tx.moveCall({
|
|
@@ -0,0 +1,22 @@
|
|
|
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("./user-entry"), exports);
|
|
18
|
+
__exportStar(require("./view-function"), exports);
|
|
19
|
+
// export * from "./authority-entry";
|
|
20
|
+
// export * from "./function";
|
|
21
|
+
// export * from "./history";
|
|
22
|
+
// export * from "./token-user-entry";
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Transaction, TransactionObjectArgument } from "@mysten/sui/transactions";
|
|
2
|
+
import { TypusConfig } from "../../src/utils";
|
|
3
|
+
/**
|
|
4
|
+
public fun raise_fund<MAIN_TOKEN, HEDGE_TOKEN>(
|
|
5
|
+
typus_version: &TypusVersion,
|
|
6
|
+
typus_leaderboard_registry: &mut TypusLeaderboardRegistry,
|
|
7
|
+
typus_user_registry: &mut TypusUserRegistry,
|
|
8
|
+
version: &Version,
|
|
9
|
+
registry: &mut Registry,
|
|
10
|
+
index: u64,
|
|
11
|
+
account: Option<address>,
|
|
12
|
+
raise_main_balance: Balance<MAIN_TOKEN>,
|
|
13
|
+
raise_hedge_balance: Balance<HEDGE_TOKEN>,
|
|
14
|
+
raise_from_deactivating: u64,
|
|
15
|
+
raise_from_inactive: u64,
|
|
16
|
+
clock: &Clock,
|
|
17
|
+
ctx: &mut TxContext,
|
|
18
|
+
) {
|
|
19
|
+
*/
|
|
20
|
+
export declare function raiseFund(config: TypusConfig, tx: Transaction, input: {
|
|
21
|
+
typeArguments: string[];
|
|
22
|
+
index: string;
|
|
23
|
+
raiseMainCoins: string[];
|
|
24
|
+
raiseMainAmount: string;
|
|
25
|
+
raiseHedgeCoins: string[];
|
|
26
|
+
raiseHedgeAmount: string;
|
|
27
|
+
raiseFromDeactivating: boolean;
|
|
28
|
+
raiseFromInactive: boolean;
|
|
29
|
+
}): void;
|
|
30
|
+
/**
|
|
31
|
+
public fun reduce_fund<MAIN_TOKEN, HEDGE_TOKEN>(
|
|
32
|
+
typus_version: &TypusVersion,
|
|
33
|
+
typus_leaderboard_registry: &mut TypusLeaderboardRegistry,
|
|
34
|
+
typus_user_registry: &mut TypusUserRegistry,
|
|
35
|
+
version: &mut Version,
|
|
36
|
+
registry: &mut Registry,
|
|
37
|
+
index: u64,
|
|
38
|
+
account: Option<address>,
|
|
39
|
+
reduce_from_warmup: u64,
|
|
40
|
+
reduce_from_active: u64,
|
|
41
|
+
reduce_from_inactive: bool,
|
|
42
|
+
fee: Balance<SUI>,
|
|
43
|
+
clock: &Clock,
|
|
44
|
+
ctx: &mut TxContext,
|
|
45
|
+
): (Balance<MAIN_TOKEN>, Balance<HEDGE_TOKEN>) {
|
|
46
|
+
*/
|
|
47
|
+
export declare function reduceFund(config: TypusConfig, tx: Transaction, input: {
|
|
48
|
+
typeArguments: string[];
|
|
49
|
+
index: string;
|
|
50
|
+
reduceFromWarmup: string;
|
|
51
|
+
reduceFromActive: string;
|
|
52
|
+
reduceFromInactive: boolean;
|
|
53
|
+
feeAmount: string;
|
|
54
|
+
user: string;
|
|
55
|
+
}): void;
|
|
56
|
+
/**
|
|
57
|
+
public fun snapshot(
|
|
58
|
+
typus_version: &TypusVersion,
|
|
59
|
+
typus_leaderboard_registry: &mut TypusLeaderboardRegistry,
|
|
60
|
+
typus_user_registry: &mut TypusUserRegistry,
|
|
61
|
+
version: &mut Version,
|
|
62
|
+
registry: &mut Registry,
|
|
63
|
+
index: u64,
|
|
64
|
+
account: Option<address>,
|
|
65
|
+
clock: &Clock,
|
|
66
|
+
ctx: &mut TxContext,
|
|
67
|
+
) {
|
|
68
|
+
*/
|
|
69
|
+
export declare function snapshot(config: TypusConfig, tx: Transaction, input: {
|
|
70
|
+
typeArguments: string[];
|
|
71
|
+
index: string;
|
|
72
|
+
receipts: string[] | TransactionObjectArgument[];
|
|
73
|
+
user: string;
|
|
74
|
+
}): void;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
3
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
|
+
if (!m) return o;
|
|
5
|
+
var i = m.call(o), r, ar = [], e;
|
|
6
|
+
try {
|
|
7
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
8
|
+
}
|
|
9
|
+
catch (error) { e = { error: error }; }
|
|
10
|
+
finally {
|
|
11
|
+
try {
|
|
12
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
13
|
+
}
|
|
14
|
+
finally { if (e) throw e.error; }
|
|
15
|
+
}
|
|
16
|
+
return ar;
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.raiseFund = raiseFund;
|
|
20
|
+
exports.reduceFund = reduceFund;
|
|
21
|
+
exports.snapshot = snapshot;
|
|
22
|
+
var utils_1 = require("@mysten/sui/dist/cjs/utils");
|
|
23
|
+
var constants_1 = require("../../src/constants");
|
|
24
|
+
var utils_2 = require("../../src/utils");
|
|
25
|
+
/**
|
|
26
|
+
public fun raise_fund<MAIN_TOKEN, HEDGE_TOKEN>(
|
|
27
|
+
typus_version: &TypusVersion,
|
|
28
|
+
typus_leaderboard_registry: &mut TypusLeaderboardRegistry,
|
|
29
|
+
typus_user_registry: &mut TypusUserRegistry,
|
|
30
|
+
version: &Version,
|
|
31
|
+
registry: &mut Registry,
|
|
32
|
+
index: u64,
|
|
33
|
+
account: Option<address>,
|
|
34
|
+
raise_main_balance: Balance<MAIN_TOKEN>,
|
|
35
|
+
raise_hedge_balance: Balance<HEDGE_TOKEN>,
|
|
36
|
+
raise_from_deactivating: u64,
|
|
37
|
+
raise_from_inactive: u64,
|
|
38
|
+
clock: &Clock,
|
|
39
|
+
ctx: &mut TxContext,
|
|
40
|
+
) {
|
|
41
|
+
*/
|
|
42
|
+
function raiseFund(config, tx, input) {
|
|
43
|
+
var mainCoin = (0, utils_2.splitCoins)(tx, input.typeArguments[0], input.raiseMainCoins, input.raiseMainAmount);
|
|
44
|
+
var hedgeCoin = (0, utils_2.splitCoins)(tx, input.typeArguments[1], input.raiseHedgeCoins, input.raiseHedgeAmount);
|
|
45
|
+
var mainBalance = tx.moveCall({
|
|
46
|
+
target: "0x2::coin::into_balance",
|
|
47
|
+
typeArguments: [input.typeArguments[0]],
|
|
48
|
+
arguments: [tx.object(mainCoin)],
|
|
49
|
+
});
|
|
50
|
+
var hedgeBalance = tx.moveCall({
|
|
51
|
+
target: "0x2::coin::into_balance",
|
|
52
|
+
typeArguments: [input.typeArguments[1]],
|
|
53
|
+
arguments: [tx.object(hedgeCoin)],
|
|
54
|
+
});
|
|
55
|
+
tx.moveCall({
|
|
56
|
+
target: "".concat(config.package.hedge.hedge, "::typus_hedge::raise_fund"),
|
|
57
|
+
typeArguments: input.typeArguments,
|
|
58
|
+
arguments: [
|
|
59
|
+
tx.object(config.version.typus),
|
|
60
|
+
tx.object(config.registry.typus.leaderboard),
|
|
61
|
+
tx.object(config.registry.typus.user),
|
|
62
|
+
tx.object(config.version.hedge.hedge),
|
|
63
|
+
tx.object(config.registry.hedge),
|
|
64
|
+
tx.pure.u64(input.index),
|
|
65
|
+
tx.pure.option("address", null),
|
|
66
|
+
tx.object(mainBalance),
|
|
67
|
+
tx.object(hedgeBalance),
|
|
68
|
+
tx.pure.bool(input.raiseFromDeactivating),
|
|
69
|
+
tx.pure.bool(input.raiseFromInactive),
|
|
70
|
+
tx.object(constants_1.CLOCK),
|
|
71
|
+
],
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
public fun reduce_fund<MAIN_TOKEN, HEDGE_TOKEN>(
|
|
76
|
+
typus_version: &TypusVersion,
|
|
77
|
+
typus_leaderboard_registry: &mut TypusLeaderboardRegistry,
|
|
78
|
+
typus_user_registry: &mut TypusUserRegistry,
|
|
79
|
+
version: &mut Version,
|
|
80
|
+
registry: &mut Registry,
|
|
81
|
+
index: u64,
|
|
82
|
+
account: Option<address>,
|
|
83
|
+
reduce_from_warmup: u64,
|
|
84
|
+
reduce_from_active: u64,
|
|
85
|
+
reduce_from_inactive: bool,
|
|
86
|
+
fee: Balance<SUI>,
|
|
87
|
+
clock: &Clock,
|
|
88
|
+
ctx: &mut TxContext,
|
|
89
|
+
): (Balance<MAIN_TOKEN>, Balance<HEDGE_TOKEN>) {
|
|
90
|
+
*/
|
|
91
|
+
function reduceFund(config, tx, input) {
|
|
92
|
+
var _a = __read(tx.splitCoins(tx.gas, [tx.pure.u64(input.feeAmount)]), 1), feeCoin = _a[0];
|
|
93
|
+
var feeBalance = tx.moveCall({
|
|
94
|
+
target: "0x2::coin::into_balance",
|
|
95
|
+
typeArguments: [utils_1.SUI_TYPE_ARG],
|
|
96
|
+
arguments: [tx.object(feeCoin)],
|
|
97
|
+
});
|
|
98
|
+
var result = tx.moveCall({
|
|
99
|
+
target: "".concat(config.package.hedge.hedge, "::typus_hedge::reduce_fund"),
|
|
100
|
+
typeArguments: input.typeArguments,
|
|
101
|
+
arguments: [
|
|
102
|
+
tx.object(config.version.typus),
|
|
103
|
+
tx.object(config.registry.typus.leaderboard),
|
|
104
|
+
tx.object(config.registry.typus.user),
|
|
105
|
+
tx.object(config.version.hedge.hedge),
|
|
106
|
+
tx.object(config.registry.hedge),
|
|
107
|
+
tx.pure.u64(input.index),
|
|
108
|
+
tx.pure.option("address", null),
|
|
109
|
+
tx.pure.u64(input.reduceFromWarmup),
|
|
110
|
+
tx.pure.u64(input.reduceFromActive),
|
|
111
|
+
tx.pure.bool(input.reduceFromInactive),
|
|
112
|
+
tx.object(feeBalance),
|
|
113
|
+
tx.object(constants_1.CLOCK),
|
|
114
|
+
],
|
|
115
|
+
});
|
|
116
|
+
tx.moveCall({
|
|
117
|
+
target: "".concat(config.package.framework, "::utils::transfer_balance"),
|
|
118
|
+
typeArguments: [input.typeArguments[0]],
|
|
119
|
+
arguments: [tx.object(result[0]), tx.pure.address(input.user)],
|
|
120
|
+
});
|
|
121
|
+
tx.moveCall({
|
|
122
|
+
target: "".concat(config.package.framework, "::utils::transfer_balance"),
|
|
123
|
+
typeArguments: [input.typeArguments[1]],
|
|
124
|
+
arguments: [tx.object(result[1]), tx.pure.address(input.user)],
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
public fun snapshot(
|
|
129
|
+
typus_version: &TypusVersion,
|
|
130
|
+
typus_leaderboard_registry: &mut TypusLeaderboardRegistry,
|
|
131
|
+
typus_user_registry: &mut TypusUserRegistry,
|
|
132
|
+
version: &mut Version,
|
|
133
|
+
registry: &mut Registry,
|
|
134
|
+
index: u64,
|
|
135
|
+
account: Option<address>,
|
|
136
|
+
clock: &Clock,
|
|
137
|
+
ctx: &mut TxContext,
|
|
138
|
+
) {
|
|
139
|
+
*/
|
|
140
|
+
function snapshot(config, tx, input) {
|
|
141
|
+
tx.moveCall({
|
|
142
|
+
target: "".concat(config.package.hedge.hedge, "::typus_hedge::snapshot"),
|
|
143
|
+
typeArguments: input.typeArguments,
|
|
144
|
+
arguments: [
|
|
145
|
+
tx.object(config.version.typus),
|
|
146
|
+
tx.object(config.registry.typus.leaderboard),
|
|
147
|
+
tx.object(config.registry.typus.user),
|
|
148
|
+
tx.object(config.version.hedge.hedge),
|
|
149
|
+
tx.object(config.registry.hedge),
|
|
150
|
+
tx.pure.u64(input.index),
|
|
151
|
+
tx.pure.option("address", null),
|
|
152
|
+
tx.object(constants_1.CLOCK),
|
|
153
|
+
],
|
|
154
|
+
});
|
|
155
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { TypusConfig } from "../../src/utils";
|
|
2
|
+
import { TypusBidReceipt } from "../../src/auto-bid/view-function";
|
|
3
|
+
export interface Vault {
|
|
4
|
+
id: string;
|
|
5
|
+
depositToken: string;
|
|
6
|
+
rewardToken: string[];
|
|
7
|
+
info: Info;
|
|
8
|
+
config: Config;
|
|
9
|
+
share: BigVector;
|
|
10
|
+
shareSupply: ShareSupply;
|
|
11
|
+
u64Padding: string[];
|
|
12
|
+
bcsPadding: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface Info {
|
|
15
|
+
index: string;
|
|
16
|
+
round: string;
|
|
17
|
+
portfolio_vault_index: string;
|
|
18
|
+
refresh_ts_ms: string;
|
|
19
|
+
status: string;
|
|
20
|
+
lending_enabled: string;
|
|
21
|
+
price_mbp: string;
|
|
22
|
+
mbp_incentivised: string;
|
|
23
|
+
fixed_incentivised: string;
|
|
24
|
+
token_decimal: string;
|
|
25
|
+
lending_apr_mbp: string;
|
|
26
|
+
creation_ts_ms: string;
|
|
27
|
+
dov_vault_index_add_one_up: string;
|
|
28
|
+
}
|
|
29
|
+
export interface Config {
|
|
30
|
+
capacity: string;
|
|
31
|
+
lot_size: string;
|
|
32
|
+
min_size: string;
|
|
33
|
+
fee_bp: string;
|
|
34
|
+
utilization_rate_bp: string;
|
|
35
|
+
exp_per_hour_bp: string;
|
|
36
|
+
incentive_mbp: string;
|
|
37
|
+
incentive_fixed: string;
|
|
38
|
+
point_per_hour_bp: string;
|
|
39
|
+
exercise_fee_bp: string;
|
|
40
|
+
exit_fee_bp: string;
|
|
41
|
+
exit_fee_amount: string;
|
|
42
|
+
}
|
|
43
|
+
export interface ShareSupply {
|
|
44
|
+
active_share: string;
|
|
45
|
+
deactivating_share: string;
|
|
46
|
+
inactive_share: string;
|
|
47
|
+
warmup_share: string;
|
|
48
|
+
snapshot_share: string;
|
|
49
|
+
reward_share: string[];
|
|
50
|
+
}
|
|
51
|
+
export interface BigVector {
|
|
52
|
+
id: string;
|
|
53
|
+
element_type: string;
|
|
54
|
+
slice_idx: string;
|
|
55
|
+
slice_size: number;
|
|
56
|
+
length: string;
|
|
57
|
+
}
|
|
58
|
+
export declare function getBigVectorData(config: TypusConfig, bigVector: BigVector): Promise<any[]>;
|
|
59
|
+
export declare function getVaultData(config: TypusConfig, input: {
|
|
60
|
+
indexes: string[];
|
|
61
|
+
}): Promise<{
|
|
62
|
+
[key: string]: [Vault, TypusBidReceipt | null];
|
|
63
|
+
}>;
|
|
64
|
+
export interface Share {
|
|
65
|
+
user: string;
|
|
66
|
+
share: ShareSupply;
|
|
67
|
+
u64Padding: string[];
|
|
68
|
+
bcsPadding: string[];
|
|
69
|
+
}
|
|
70
|
+
export declare function getShareData(config: TypusConfig, input: {
|
|
71
|
+
user: string;
|
|
72
|
+
indexes: string[];
|
|
73
|
+
}): Promise<{
|
|
74
|
+
[key: string]: Share[];
|
|
75
|
+
}>;
|
|
@@ -0,0 +1,269 @@
|
|
|
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 __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getBigVectorData = getBigVectorData;
|
|
40
|
+
exports.getVaultData = getVaultData;
|
|
41
|
+
exports.getShareData = getShareData;
|
|
42
|
+
var transactions_1 = require("@mysten/sui/transactions");
|
|
43
|
+
var client_1 = require("@mysten/sui/client");
|
|
44
|
+
var bcs_1 = require("@mysten/bcs");
|
|
45
|
+
var utils_1 = require("../../src/utils");
|
|
46
|
+
var constants_1 = require("../../src/constants");
|
|
47
|
+
function getBigVectorData(config, bigVector) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
49
|
+
var provider, results, i, df, result;
|
|
50
|
+
var _a;
|
|
51
|
+
return __generator(this, function (_b) {
|
|
52
|
+
switch (_b.label) {
|
|
53
|
+
case 0:
|
|
54
|
+
provider = new client_1.SuiClient({ url: config.rpcEndpoint });
|
|
55
|
+
results = [];
|
|
56
|
+
i = 0;
|
|
57
|
+
_b.label = 1;
|
|
58
|
+
case 1:
|
|
59
|
+
if (!(i <= Number(bigVector.slice_idx))) return [3 /*break*/, 4];
|
|
60
|
+
return [4 /*yield*/, provider.getDynamicFieldObject({
|
|
61
|
+
parentId: bigVector.id,
|
|
62
|
+
name: {
|
|
63
|
+
type: "u64",
|
|
64
|
+
value: "".concat(i),
|
|
65
|
+
},
|
|
66
|
+
})];
|
|
67
|
+
case 2:
|
|
68
|
+
df = _b.sent();
|
|
69
|
+
result = (_a = df.data) === null || _a === void 0 ? void 0 : _a.content.fields.value.fields.vector.map(function (x) { return x.fields; });
|
|
70
|
+
results = results.concat(result);
|
|
71
|
+
_b.label = 3;
|
|
72
|
+
case 3:
|
|
73
|
+
i++;
|
|
74
|
+
return [3 /*break*/, 1];
|
|
75
|
+
case 4: return [2 /*return*/, results];
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function getVaultData(config, input) {
|
|
81
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
82
|
+
var provider, transaction, results, bytes, reader, result;
|
|
83
|
+
return __generator(this, function (_a) {
|
|
84
|
+
switch (_a.label) {
|
|
85
|
+
case 0:
|
|
86
|
+
provider = new client_1.SuiClient({ url: config.rpcEndpoint });
|
|
87
|
+
transaction = new transactions_1.Transaction();
|
|
88
|
+
transaction.moveCall({
|
|
89
|
+
target: "".concat(config.package.safu, "::view_function::get_vault_data_bcs"),
|
|
90
|
+
typeArguments: ["".concat(config.package.framework, "::vault::TypusBidReceipt")],
|
|
91
|
+
arguments: [transaction.object(config.registry.safu.safu), transaction.pure.vector("u64", input.indexes)],
|
|
92
|
+
});
|
|
93
|
+
return [4 /*yield*/, provider.devInspectTransactionBlock({ transactionBlock: transaction, sender: constants_1.SENDER })];
|
|
94
|
+
case 1:
|
|
95
|
+
results = (_a.sent()).results;
|
|
96
|
+
bytes = results[results.length - 1].returnValues[0][0];
|
|
97
|
+
reader = new bcs_1.BcsReader(new Uint8Array(bytes));
|
|
98
|
+
result = {};
|
|
99
|
+
reader.readVec(function (reader) {
|
|
100
|
+
reader.readULEB();
|
|
101
|
+
var id = (0, utils_1.AddressFromBytes)(reader.readBytes(32));
|
|
102
|
+
var depositToken = String.fromCharCode.apply(null, Array.from(reader.readBytes(reader.readULEB())));
|
|
103
|
+
var rewardToken = reader.readVec(function (reader) {
|
|
104
|
+
return String.fromCharCode.apply(null, Array.from(reader.readBytes(reader.readULEB())));
|
|
105
|
+
});
|
|
106
|
+
var infoArray = reader.readVec(function (reader) {
|
|
107
|
+
return reader.read64();
|
|
108
|
+
});
|
|
109
|
+
var configArray = reader.readVec(function (reader) {
|
|
110
|
+
return reader.read64();
|
|
111
|
+
});
|
|
112
|
+
var info = {
|
|
113
|
+
index: infoArray[0],
|
|
114
|
+
round: infoArray[1],
|
|
115
|
+
portfolio_vault_index: infoArray[2],
|
|
116
|
+
refresh_ts_ms: infoArray[3],
|
|
117
|
+
status: infoArray[4],
|
|
118
|
+
lending_enabled: infoArray[5],
|
|
119
|
+
price_mbp: infoArray[6],
|
|
120
|
+
mbp_incentivised: infoArray[7],
|
|
121
|
+
fixed_incentivised: infoArray[8],
|
|
122
|
+
token_decimal: infoArray[9],
|
|
123
|
+
lending_apr_mbp: infoArray[10],
|
|
124
|
+
creation_ts_ms: infoArray[11],
|
|
125
|
+
dov_vault_index_add_one_up: infoArray[12],
|
|
126
|
+
};
|
|
127
|
+
var config = {
|
|
128
|
+
capacity: configArray[0],
|
|
129
|
+
lot_size: configArray[1],
|
|
130
|
+
min_size: configArray[2],
|
|
131
|
+
fee_bp: configArray[3],
|
|
132
|
+
utilization_rate_bp: configArray[4],
|
|
133
|
+
exp_per_hour_bp: configArray[5],
|
|
134
|
+
incentive_mbp: configArray[6],
|
|
135
|
+
incentive_fixed: configArray[7],
|
|
136
|
+
point_per_hour_bp: configArray[8],
|
|
137
|
+
exercise_fee_bp: configArray[9],
|
|
138
|
+
exit_fee_bp: configArray[10],
|
|
139
|
+
exit_fee_amount: configArray[11],
|
|
140
|
+
};
|
|
141
|
+
// skip BigVector
|
|
142
|
+
var bigVector = {
|
|
143
|
+
id: (0, utils_1.AddressFromBytes)(reader.readBytes(32)),
|
|
144
|
+
element_type: String.fromCharCode.apply(null, Array.from(reader.readBytes(reader.readULEB()))), // element_type
|
|
145
|
+
slice_idx: reader.read64(), // slice_idx
|
|
146
|
+
slice_size: reader.read32(), // slice_size
|
|
147
|
+
length: reader.read64(), // length
|
|
148
|
+
};
|
|
149
|
+
var shareSupplyArray = reader.readVec(function (reader) {
|
|
150
|
+
return reader.read64();
|
|
151
|
+
});
|
|
152
|
+
var shareSupply = {
|
|
153
|
+
active_share: shareSupplyArray[0],
|
|
154
|
+
deactivating_share: shareSupplyArray[1],
|
|
155
|
+
inactive_share: shareSupplyArray[2],
|
|
156
|
+
warmup_share: shareSupplyArray[3],
|
|
157
|
+
snapshot_share: shareSupplyArray[4],
|
|
158
|
+
reward_share: shareSupplyArray.slice(5),
|
|
159
|
+
};
|
|
160
|
+
var u64Padding = reader.readVec(function (reader) {
|
|
161
|
+
return reader.read64();
|
|
162
|
+
});
|
|
163
|
+
var bcsPadding = reader.readVec(function (reader) {
|
|
164
|
+
return reader.read8();
|
|
165
|
+
});
|
|
166
|
+
var has_bid_receipt = reader.read8() > 0;
|
|
167
|
+
if (has_bid_receipt) {
|
|
168
|
+
result[info.index] = [
|
|
169
|
+
{
|
|
170
|
+
id: id,
|
|
171
|
+
depositToken: depositToken,
|
|
172
|
+
rewardToken: rewardToken,
|
|
173
|
+
info: info,
|
|
174
|
+
config: config,
|
|
175
|
+
share: bigVector,
|
|
176
|
+
shareSupply: shareSupply,
|
|
177
|
+
u64Padding: u64Padding,
|
|
178
|
+
bcsPadding: bcsPadding,
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
id: (0, utils_1.AddressFromBytes)(reader.readBytes(32)),
|
|
182
|
+
vid: (0, utils_1.AddressFromBytes)(reader.readBytes(32)),
|
|
183
|
+
index: reader.read64(),
|
|
184
|
+
metadata: String.fromCharCode.apply(null, Array.from(reader.readBytes(reader.readULEB()))),
|
|
185
|
+
u64_padding: reader.readVec(function (reader) {
|
|
186
|
+
return reader.read64();
|
|
187
|
+
}),
|
|
188
|
+
},
|
|
189
|
+
];
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
result[info.index] = [
|
|
193
|
+
{
|
|
194
|
+
id: id,
|
|
195
|
+
depositToken: depositToken,
|
|
196
|
+
rewardToken: rewardToken,
|
|
197
|
+
info: info,
|
|
198
|
+
config: config,
|
|
199
|
+
share: bigVector,
|
|
200
|
+
shareSupply: shareSupply,
|
|
201
|
+
u64Padding: u64Padding,
|
|
202
|
+
bcsPadding: bcsPadding,
|
|
203
|
+
},
|
|
204
|
+
null,
|
|
205
|
+
];
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
return [2 /*return*/, result];
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
function getShareData(config, input) {
|
|
214
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
215
|
+
var provider, transaction, results, bytes, reader, result;
|
|
216
|
+
return __generator(this, function (_a) {
|
|
217
|
+
switch (_a.label) {
|
|
218
|
+
case 0:
|
|
219
|
+
provider = new client_1.SuiClient({ url: config.rpcEndpoint });
|
|
220
|
+
transaction = new transactions_1.Transaction();
|
|
221
|
+
transaction.moveCall({
|
|
222
|
+
target: "".concat(config.package.safu, "::view_function::get_share_data_bcs"),
|
|
223
|
+
typeArguments: [],
|
|
224
|
+
arguments: [
|
|
225
|
+
transaction.object(config.registry.safu.safu),
|
|
226
|
+
transaction.pure.address(input.user),
|
|
227
|
+
transaction.pure.vector("u64", input.indexes),
|
|
228
|
+
],
|
|
229
|
+
});
|
|
230
|
+
return [4 /*yield*/, provider.devInspectTransactionBlock({ transactionBlock: transaction, sender: constants_1.SENDER })];
|
|
231
|
+
case 1:
|
|
232
|
+
results = (_a.sent()).results;
|
|
233
|
+
bytes = results[results.length - 1].returnValues[0][0];
|
|
234
|
+
reader = new bcs_1.BcsReader(new Uint8Array(bytes));
|
|
235
|
+
result = {};
|
|
236
|
+
reader.readVec(function (reader, i) {
|
|
237
|
+
reader.read8();
|
|
238
|
+
var share = reader.readVec(function (reader) {
|
|
239
|
+
var user = (0, utils_1.AddressFromBytes)(reader.readBytes(32));
|
|
240
|
+
var shareSupplyArray = reader.readVec(function (reader) {
|
|
241
|
+
return reader.read64();
|
|
242
|
+
});
|
|
243
|
+
var shareSupply = {
|
|
244
|
+
active_share: shareSupplyArray[0],
|
|
245
|
+
deactivating_share: shareSupplyArray[1],
|
|
246
|
+
inactive_share: shareSupplyArray[2],
|
|
247
|
+
warmup_share: shareSupplyArray[3],
|
|
248
|
+
snapshot_share: shareSupplyArray[4],
|
|
249
|
+
reward_share: shareSupplyArray.slice(5),
|
|
250
|
+
};
|
|
251
|
+
return {
|
|
252
|
+
user: user,
|
|
253
|
+
share: shareSupply,
|
|
254
|
+
u64Padding: reader.readVec(function (reader) {
|
|
255
|
+
return reader.read64();
|
|
256
|
+
}),
|
|
257
|
+
bcsPadding: reader.readVec(function (reader) {
|
|
258
|
+
return reader.read8();
|
|
259
|
+
}),
|
|
260
|
+
};
|
|
261
|
+
});
|
|
262
|
+
var index = input.indexes.pop();
|
|
263
|
+
result[index] = share;
|
|
264
|
+
});
|
|
265
|
+
return [2 /*return*/, result];
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
});
|
|
269
|
+
}
|
|
@@ -150,7 +150,6 @@ function getPythLatestPrice() {
|
|
|
150
150
|
var price = p.price.price / Math.pow(10, -p.price.expo);
|
|
151
151
|
map.set(token, price);
|
|
152
152
|
});
|
|
153
|
-
console.log(map);
|
|
154
153
|
return [2 /*return*/, map];
|
|
155
154
|
case 3: return [2 /*return*/];
|
|
156
155
|
}
|
|
@@ -288,8 +287,8 @@ var pythId = {
|
|
|
288
287
|
"04cfeb7b143eb9c48e9b074125c1a3447b85f59c31164dc20c1beaa6f21f2b6b": "BLUE",
|
|
289
288
|
"5fc11ffe4975b624be495be038da30e30bee2004d8ae6282b5364577ef4ca92c": "BLUB",
|
|
290
289
|
"765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2": "XAU",
|
|
291
|
-
|
|
290
|
+
eba0732395fae9dec4bae12e52760b35fc1c5671e2da8b449c9af4efe5d54341: "WAL",
|
|
292
291
|
"4279e31cc369bbcc2faf022b382b080e32a8e689ff20fbc530d2a603eb6cd98b": "HYPE",
|
|
293
|
-
|
|
292
|
+
ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8: "XRP",
|
|
294
293
|
};
|
|
295
294
|
// getPythLatestPrice();
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Transaction } from "@mysten/sui/transactions";
|
|
2
|
+
import { SuiClient } from "@mysten/sui/client";
|
|
3
|
+
export declare function getSponsoredTx(provider: SuiClient, sender: string, tx: Transaction): Promise<sponsoredResponse>;
|
|
4
|
+
interface sponsoredResponse {
|
|
5
|
+
txBytes: string;
|
|
6
|
+
sponsorSig: string;
|
|
7
|
+
}
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
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 __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getSponsoredTx = getSponsoredTx;
|
|
40
|
+
var sui_1 = require("@shinami/clients/sui");
|
|
41
|
+
function getSponsoredTx(provider, sender, tx) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
+
var gaslessTx, body, apiUrl, headers, response, sponsoredResponse;
|
|
44
|
+
return __generator(this, function (_a) {
|
|
45
|
+
switch (_a.label) {
|
|
46
|
+
case 0: return [4 /*yield*/, (0, sui_1.buildGaslessTransaction)(tx, {
|
|
47
|
+
sui: provider,
|
|
48
|
+
sender: sender,
|
|
49
|
+
})];
|
|
50
|
+
case 1:
|
|
51
|
+
gaslessTx = _a.sent();
|
|
52
|
+
body = JSON.stringify(gaslessTx);
|
|
53
|
+
apiUrl = "https://sponsored-gas-752051381467.asia-southeast1.run.app";
|
|
54
|
+
headers = {
|
|
55
|
+
"Content-Type": "application/json",
|
|
56
|
+
};
|
|
57
|
+
return [4 /*yield*/, fetch(apiUrl, {
|
|
58
|
+
method: "POST",
|
|
59
|
+
headers: headers,
|
|
60
|
+
body: body,
|
|
61
|
+
})];
|
|
62
|
+
case 2:
|
|
63
|
+
response = _a.sent();
|
|
64
|
+
return [4 /*yield*/, response.json()];
|
|
65
|
+
case 3:
|
|
66
|
+
sponsoredResponse = (_a.sent());
|
|
67
|
+
// console.log(sponsoredResponse);
|
|
68
|
+
return [2 /*return*/, sponsoredResponse];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import BigNumber from "bignumber.js";
|
|
2
1
|
import { Transaction } from "@mysten/sui/transactions";
|
|
2
|
+
import BigNumber from "bignumber.js";
|
|
3
3
|
export declare const sleep: (ms: number) => Promise<unknown>;
|
|
4
4
|
export declare const prettify_big_number: (value: any, decimal: any) => string;
|
|
5
5
|
export declare function U64FromBytes(x: any): bigint;
|
|
@@ -11,3 +11,5 @@ export declare function splitCoins(tx: Transaction, token: string, coins: string
|
|
|
11
11
|
$kind: "NestedResult";
|
|
12
12
|
NestedResult: [number, number];
|
|
13
13
|
};
|
|
14
|
+
export declare function promptYesNo(question: string): Promise<boolean>;
|
|
15
|
+
export declare function getNumberStringWithDecimal(input: string, decimal: number): string;
|
package/dist/src/utils/tools.js
CHANGED
|
@@ -1,4 +1,37 @@
|
|
|
1
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __read = (this && this.__read) || function (o, n) {
|
|
3
36
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
4
37
|
if (!m) return o;
|
|
@@ -23,9 +56,12 @@ exports.countFloating = exports.checkNumber = exports.insertAt = exports.prettif
|
|
|
23
56
|
exports.U64FromBytes = U64FromBytes;
|
|
24
57
|
exports.AddressFromBytes = AddressFromBytes;
|
|
25
58
|
exports.splitCoins = splitCoins;
|
|
26
|
-
|
|
27
|
-
|
|
59
|
+
exports.promptYesNo = promptYesNo;
|
|
60
|
+
exports.getNumberStringWithDecimal = getNumberStringWithDecimal;
|
|
28
61
|
var utils_1 = require("@mysten/sui/utils");
|
|
62
|
+
var constants_1 = require("../../src/constants");
|
|
63
|
+
var readline = __importStar(require("readline"));
|
|
64
|
+
var bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
29
65
|
var sleep = function (ms) { return new Promise(function (resolve) { return setTimeout(resolve, ms); }); };
|
|
30
66
|
exports.sleep = sleep;
|
|
31
67
|
var prettify_big_number = function (value, decimal) {
|
|
@@ -92,3 +128,27 @@ function splitCoins(tx, token, coins, amount) {
|
|
|
92
128
|
}
|
|
93
129
|
return coin;
|
|
94
130
|
}
|
|
131
|
+
function promptYesNo(question) {
|
|
132
|
+
var rl = readline.createInterface({
|
|
133
|
+
input: process.stdin,
|
|
134
|
+
output: process.stdout,
|
|
135
|
+
});
|
|
136
|
+
return new Promise(function (resolve) {
|
|
137
|
+
rl.question("".concat(question, " [y/N] "), function (answer) {
|
|
138
|
+
var normalizedAnswer = answer.toLowerCase();
|
|
139
|
+
if (normalizedAnswer === "y" || normalizedAnswer === "yes") {
|
|
140
|
+
resolve(true);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
resolve(false);
|
|
144
|
+
}
|
|
145
|
+
rl.close();
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
function getNumberStringWithDecimal(input, decimal) {
|
|
150
|
+
input = input.padStart(decimal, "0");
|
|
151
|
+
var integer = input.slice(0, input.length - decimal).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
152
|
+
var float = input.slice(input.length - decimal, input.length);
|
|
153
|
+
return "".concat(integer == "" ? "0" : integer, ".").concat(float);
|
|
154
|
+
}
|
package/package.json
CHANGED
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
"name": "@typus/typus-sdk",
|
|
3
3
|
"author": "Typus",
|
|
4
4
|
"description": "typus sdk",
|
|
5
|
-
"version": "1.7.
|
|
5
|
+
"version": "1.7.13",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@mysten/bcs": "1.6.1",
|
|
8
8
|
"@mysten/kiosk": "0.12.6",
|
|
9
9
|
"@mysten/sui": "1.30.0",
|
|
10
10
|
"@pythnetwork/pyth-sui-js": "^2.1.0",
|
|
11
|
+
"@shinami/clients": "^0.9.6",
|
|
11
12
|
"@typemove/sui": "^1.6.1",
|
|
12
13
|
"@types/node": "^20.5.7",
|
|
13
14
|
"bignumber.js": "^9.1.2",
|