@bolt-liquidity-hq/sui-client 0.1.0-beta.21 → 0.1.0-beta.23
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/index.cjs +108 -74
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +23 -24
- package/dist/index.d.ts +23 -24
- package/dist/index.js +108 -76
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -36,7 +36,6 @@ __export(index_exports, {
|
|
|
36
36
|
AssetPairStruct: () => AssetPairStruct,
|
|
37
37
|
AssetPairsResponseStruct: () => AssetPairsResponseStruct,
|
|
38
38
|
BaseLiquidityInfoStruct: () => BaseLiquidityInfoStruct,
|
|
39
|
-
BaseLiquidityResponseStruct: () => BaseLiquidityResponseStruct,
|
|
40
39
|
BcsAddressType: () => BcsAddressType,
|
|
41
40
|
BoltSuiClient: () => BoltSuiClient,
|
|
42
41
|
MarketResponseStruct: () => MarketResponseStruct,
|
|
@@ -79,7 +78,7 @@ var MainnetContracts = {
|
|
|
79
78
|
oracle: "0xfa3975b98f3d0e3df18ed88ae6e69db31836b3f4212df02fae144b1e5a89ca8e",
|
|
80
79
|
router: " "
|
|
81
80
|
};
|
|
82
|
-
var MainnetPackageId = "
|
|
81
|
+
var MainnetPackageId = "0xbffcccd9d24e319c729e724a0a0e6d0a403b24a03f643da4bbdb0fe6c925f82b";
|
|
83
82
|
var MainnetPoolGlobalConfigId = "0x7bcd5035a991f42fa84c5a42216b5638cb3f1a8c4f065063093b0a3d5f165d63";
|
|
84
83
|
var MainnetNativeTokenDenom = SUI_TOKEN_DENOM;
|
|
85
84
|
var MainnetAssets = {
|
|
@@ -944,14 +943,6 @@ var MarketsResponsePaginatedStruct = import_bcs6.bcs.struct("MarketsResponsePagi
|
|
|
944
943
|
markets: import_bcs6.bcs.vector(MarketStruct),
|
|
945
944
|
...PaginationStruct
|
|
946
945
|
});
|
|
947
|
-
var BaseLiquidityInfoStruct = import_bcs6.bcs.struct("BaseLiquidityInfo", {
|
|
948
|
-
denom: import_bcs6.bcs.string(),
|
|
949
|
-
amount: import_bcs6.bcs.u64()
|
|
950
|
-
});
|
|
951
|
-
var BaseLiquidityResponseStruct = import_bcs6.bcs.struct("BaseLiquidityResponse", {
|
|
952
|
-
base_assets: import_bcs6.bcs.vector(BaseLiquidityInfoStruct),
|
|
953
|
-
...PaginationStruct
|
|
954
|
-
});
|
|
955
946
|
var SwapSimulationResultStruct = import_bcs6.bcs.struct("SwapSimulationResult", {
|
|
956
947
|
base_out: import_bcs6.bcs.u64(),
|
|
957
948
|
quote_out: import_bcs6.bcs.u64(),
|
|
@@ -967,8 +958,11 @@ var SwapSimulationResultStruct = import_bcs6.bcs.struct("SwapSimulationResult",
|
|
|
967
958
|
// src/types/pool.ts
|
|
968
959
|
var import_bcs8 = require("@mysten/bcs");
|
|
969
960
|
var PoolInfoStruct = import_bcs8.bcs.struct("PoolInfo", {
|
|
961
|
+
id: import_bcs8.bcs.string(),
|
|
970
962
|
base_liquidity: import_bcs8.bcs.u64(),
|
|
963
|
+
net_base_added: import_bcs8.bcs.u64(),
|
|
971
964
|
total_lp_shares: import_bcs8.bcs.u64(),
|
|
965
|
+
protocol_base_fees: import_bcs8.bcs.u64(),
|
|
972
966
|
admin: BcsAddressType,
|
|
973
967
|
is_paused: import_bcs8.bcs.bool()
|
|
974
968
|
});
|
|
@@ -984,6 +978,10 @@ var ProtocolFeesInfoStruct = import_bcs8.bcs.struct("ProtocolFeesInfo", {
|
|
|
984
978
|
swap_fee_pct: import_bcs8.bcs.u64(),
|
|
985
979
|
lp_withdrawal_fee_pct: import_bcs8.bcs.u64()
|
|
986
980
|
});
|
|
981
|
+
var BaseLiquidityInfoStruct = import_bcs8.bcs.struct("BaseLiquidityInfo", {
|
|
982
|
+
base_reserve: import_bcs8.bcs.u64(),
|
|
983
|
+
total_lp_shares: import_bcs8.bcs.u64()
|
|
984
|
+
});
|
|
987
985
|
|
|
988
986
|
// src/lib/oracle/get-asset-pairs.ts
|
|
989
987
|
var getAssetPairs = async (client) => {
|
|
@@ -1118,24 +1116,97 @@ var estimateSwapExactInGasFees = async (client, swapParams, signer, gasAdjustmen
|
|
|
1118
1116
|
);
|
|
1119
1117
|
};
|
|
1120
1118
|
|
|
1121
|
-
// src/lib/
|
|
1119
|
+
// src/lib/settlement/get-pool-base-liquidity.ts
|
|
1122
1120
|
var import_core8 = require("@bolt-liquidity-hq/core");
|
|
1123
|
-
|
|
1124
|
-
|
|
1121
|
+
|
|
1122
|
+
// src/lib/settlement/parsers.ts
|
|
1123
|
+
var import_bignumber4 = require("bignumber.js");
|
|
1124
|
+
var parsePoolConfigStructOutput = (routerClient, poolConfig, priceOracleContract) => {
|
|
1125
|
+
return {
|
|
1126
|
+
priceOracleContract,
|
|
1127
|
+
protocolFeeRecipient: "0x",
|
|
1128
|
+
// TODO: get real fee recipient
|
|
1129
|
+
protocolFee: (0, import_bignumber4.BigNumber)(poolConfig.swap_fee_pct).div(BASIS_POINTS).toFixed(),
|
|
1130
|
+
lpFee: (0, import_bignumber4.BigNumber)(poolConfig.lp_fee_pct).div(BASIS_POINTS).toFixed(),
|
|
1131
|
+
allowanceMode: "allow",
|
|
1132
|
+
// Should come from pool config
|
|
1133
|
+
lps: routerClient.getPools().map((item) => item.poolAddress),
|
|
1134
|
+
minBaseOut: (0, import_bignumber4.BigNumber)(poolConfig.min_base_out).toFixed()
|
|
1135
|
+
};
|
|
1136
|
+
};
|
|
1137
|
+
var parseBaseLiquidityInfoStructOutput = (baseLiquidityInfo, baseDenom) => {
|
|
1138
|
+
return {
|
|
1139
|
+
baseLiquidity: {
|
|
1140
|
+
denom: baseDenom,
|
|
1141
|
+
amount: (0, import_bignumber4.BigNumber)(baseLiquidityInfo.base_reserve).toFixed()
|
|
1142
|
+
},
|
|
1143
|
+
totalShares: (0, import_bignumber4.BigNumber)(baseLiquidityInfo.total_lp_shares).toFixed()
|
|
1144
|
+
};
|
|
1125
1145
|
};
|
|
1126
1146
|
|
|
1127
|
-
// src/lib/
|
|
1147
|
+
// src/lib/settlement/get-pool-base-liquidity.ts
|
|
1148
|
+
var getPoolBaseLiquidity = async (client, contractAddress) => {
|
|
1149
|
+
const GET_BASE_LIQUIDITY_INFO_FUNCTION = "get_base_liquidity_info";
|
|
1150
|
+
const pool = client.routerClient.pools.find((item) => item.poolAddress === contractAddress);
|
|
1151
|
+
if (!pool) {
|
|
1152
|
+
throw new import_core8.NotFoundError(`Pool with the address ${contractAddress}`);
|
|
1153
|
+
}
|
|
1154
|
+
const baseLiquidityInfo = await queryDevInspect(
|
|
1155
|
+
client.suiClient,
|
|
1156
|
+
[client.packageId, POOL_MODULE, GET_BASE_LIQUIDITY_INFO_FUNCTION],
|
|
1157
|
+
[contractAddress],
|
|
1158
|
+
[pool.baseDenom]
|
|
1159
|
+
);
|
|
1160
|
+
const output = parseDevInspectResult(baseLiquidityInfo, BaseLiquidityInfoStruct);
|
|
1161
|
+
return parseBaseLiquidityInfoStructOutput(output, pool.baseDenom);
|
|
1162
|
+
};
|
|
1163
|
+
|
|
1164
|
+
// src/lib/settlement/get-pool-config.ts
|
|
1128
1165
|
var import_core9 = require("@bolt-liquidity-hq/core");
|
|
1166
|
+
var getPoolConfig = async (client, contractAddress) => {
|
|
1167
|
+
const GET_POOL_CONFIG_FUNCTION = "get_pool_config";
|
|
1168
|
+
const pool = client.routerClient.pools.find((item) => item.poolAddress === contractAddress);
|
|
1169
|
+
if (!pool) {
|
|
1170
|
+
throw new import_core9.NotFoundError(`Pool with the address ${contractAddress}`);
|
|
1171
|
+
}
|
|
1172
|
+
const poolConfig = await queryDevInspect(
|
|
1173
|
+
client.suiClient,
|
|
1174
|
+
[client.packageId, POOL_MODULE, GET_POOL_CONFIG_FUNCTION],
|
|
1175
|
+
[contractAddress],
|
|
1176
|
+
[pool.baseDenom]
|
|
1177
|
+
);
|
|
1178
|
+
const output = parseDevInspectResult(poolConfig, PoolConfigStruct);
|
|
1179
|
+
return parsePoolConfigStructOutput(client.routerClient, output, client.contracts.oracle);
|
|
1180
|
+
};
|
|
1181
|
+
|
|
1182
|
+
// src/lib/settlement/get-pool-config-by-denom.ts
|
|
1183
|
+
var getPoolConfigByDenom = async (client, baseDenom, quoteDenom) => {
|
|
1184
|
+
const pool = await getPoolByDenom(client, baseDenom, quoteDenom);
|
|
1185
|
+
return await getPoolConfig(client, pool.poolAddress);
|
|
1186
|
+
};
|
|
1187
|
+
|
|
1188
|
+
// src/lib/router/get-all-base-liquidity.ts
|
|
1189
|
+
var getAllBaseLiquidity = async (client) => {
|
|
1190
|
+
const result = {};
|
|
1191
|
+
for (const pool of client.routerClient.pools) {
|
|
1192
|
+
const baseLiquidity = await getPoolBaseLiquidity(client, pool.poolAddress);
|
|
1193
|
+
result[pool.poolAddress] = baseLiquidity;
|
|
1194
|
+
}
|
|
1195
|
+
return result;
|
|
1196
|
+
};
|
|
1197
|
+
|
|
1198
|
+
// src/lib/router/get-all-quotes-for-user.ts
|
|
1199
|
+
var import_core10 = require("@bolt-liquidity-hq/core");
|
|
1129
1200
|
var getAllQuotesForUser = async (_client, _lpAddress) => {
|
|
1130
|
-
throw new
|
|
1201
|
+
throw new import_core10.NotImplementedError("getRouterConfig on Sui Client");
|
|
1131
1202
|
};
|
|
1132
1203
|
|
|
1133
1204
|
// src/lib/router/get-pool-by-denom.ts
|
|
1134
|
-
var
|
|
1205
|
+
var import_core11 = require("@bolt-liquidity-hq/core");
|
|
1135
1206
|
var getPoolByDenom = async (client, baseDenom, quoteDenom) => {
|
|
1136
1207
|
const result = await client.routerClient.getPool(quoteDenom, baseDenom);
|
|
1137
1208
|
if (!result) {
|
|
1138
|
-
throw new
|
|
1209
|
+
throw new import_core11.NotFoundError("Pool", `Didn't find a pool to swap ${quoteDenom} for ${baseDenom}`);
|
|
1139
1210
|
}
|
|
1140
1211
|
return result;
|
|
1141
1212
|
};
|
|
@@ -1146,14 +1217,14 @@ var getPools = async (client) => {
|
|
|
1146
1217
|
};
|
|
1147
1218
|
|
|
1148
1219
|
// src/lib/router/get-router-config.ts
|
|
1149
|
-
var
|
|
1220
|
+
var import_core12 = require("@bolt-liquidity-hq/core");
|
|
1150
1221
|
var getRouterConfig = async (_client) => {
|
|
1151
|
-
throw new
|
|
1222
|
+
throw new import_core12.NotImplementedError("getRouterConfig on Sui Client");
|
|
1152
1223
|
};
|
|
1153
1224
|
|
|
1154
1225
|
// src/lib/router/parsers.ts
|
|
1155
|
-
var
|
|
1156
|
-
var
|
|
1226
|
+
var import_core13 = require("@bolt-liquidity-hq/core");
|
|
1227
|
+
var import_bignumber5 = require("bignumber.js");
|
|
1157
1228
|
var parseSwapSimulationResultStructOutput = (output, poolAddress, assetOut) => {
|
|
1158
1229
|
return {
|
|
1159
1230
|
poolAddress,
|
|
@@ -1161,7 +1232,7 @@ var parseSwapSimulationResultStructOutput = (output, poolAddress, assetOut) => {
|
|
|
1161
1232
|
assetOut,
|
|
1162
1233
|
protocolFee: output.protocol_fee,
|
|
1163
1234
|
lpFee: output.lp_fee,
|
|
1164
|
-
dynamicFeePercentage: (0,
|
|
1235
|
+
dynamicFeePercentage: (0, import_bignumber5.BigNumber)(output.dynamic_fee_pct).div(BASIS_POINTS).toFixed(),
|
|
1165
1236
|
totalFees: output.swap_fee
|
|
1166
1237
|
};
|
|
1167
1238
|
};
|
|
@@ -1201,13 +1272,13 @@ var RouterClient = class {
|
|
|
1201
1272
|
};
|
|
1202
1273
|
|
|
1203
1274
|
// src/lib/router/simulate-swap.ts
|
|
1204
|
-
var
|
|
1275
|
+
var import_core14 = require("@bolt-liquidity-hq/core");
|
|
1205
1276
|
var import_bcs10 = require("@mysten/bcs");
|
|
1206
1277
|
var import_utils10 = require("@mysten/sui/utils");
|
|
1207
1278
|
var simulateSwap = async (client, { assetIn, amountIn, assetOut }) => {
|
|
1208
|
-
const pool =
|
|
1279
|
+
const pool = client.routerClient.getPool(assetIn, assetOut);
|
|
1209
1280
|
if (!pool) {
|
|
1210
|
-
throw new
|
|
1281
|
+
throw new import_core14.NotFoundError("Pool", `Didn't find a pool to swap ${assetIn} for ${assetOut}`);
|
|
1211
1282
|
}
|
|
1212
1283
|
const FUNCTION_NAME = pool.isInverse ? "simulate_sell_swap" : "simulate_buy_swap";
|
|
1213
1284
|
const response = await queryDevInspect(
|
|
@@ -1240,48 +1311,6 @@ var swapExactIn = async (client, swapParams, signer) => {
|
|
|
1240
1311
|
};
|
|
1241
1312
|
};
|
|
1242
1313
|
|
|
1243
|
-
// src/lib/settlement/get-pool-info.ts
|
|
1244
|
-
var import_core14 = require("@bolt-liquidity-hq/core");
|
|
1245
|
-
|
|
1246
|
-
// src/lib/settlement/parsers.ts
|
|
1247
|
-
var import_bignumber5 = require("bignumber.js");
|
|
1248
|
-
var parsePoolConfigStructOutput = (routerClient, poolConfig, priceOracleContract) => {
|
|
1249
|
-
return {
|
|
1250
|
-
priceOracleContract,
|
|
1251
|
-
protocolFeeRecipient: "0x",
|
|
1252
|
-
// TODO: get real fee recipient
|
|
1253
|
-
protocolFee: (0, import_bignumber5.BigNumber)(poolConfig.swap_fee_pct).div(BASIS_POINTS).toFixed(),
|
|
1254
|
-
lpFee: (0, import_bignumber5.BigNumber)(poolConfig.lp_fee_pct).div(BASIS_POINTS).toFixed(),
|
|
1255
|
-
allowanceMode: "allow",
|
|
1256
|
-
// Should come from pool config
|
|
1257
|
-
lps: routerClient.getPools().map((item) => item.poolAddress),
|
|
1258
|
-
minBaseOut: (0, import_bignumber5.BigNumber)(poolConfig.min_base_out).toFixed()
|
|
1259
|
-
};
|
|
1260
|
-
};
|
|
1261
|
-
|
|
1262
|
-
// src/lib/settlement/get-pool-info.ts
|
|
1263
|
-
var getPoolInfo = async (client, contractAddress) => {
|
|
1264
|
-
const GET_POOL_CONFIG_FUNCTION = "get_pool_config";
|
|
1265
|
-
const pool = client.routerClient.pools.find((item) => item.poolAddress === contractAddress);
|
|
1266
|
-
if (!pool) {
|
|
1267
|
-
throw new import_core14.NotFoundError(`Pool with the address ${contractAddress}`);
|
|
1268
|
-
}
|
|
1269
|
-
const poolConfig = await queryDevInspect(
|
|
1270
|
-
client.suiClient,
|
|
1271
|
-
[client.packageId, POOL_MODULE, GET_POOL_CONFIG_FUNCTION],
|
|
1272
|
-
[contractAddress],
|
|
1273
|
-
[pool.baseDenom]
|
|
1274
|
-
);
|
|
1275
|
-
const output = parseDevInspectResult(poolConfig, PoolConfigStruct);
|
|
1276
|
-
return parsePoolConfigStructOutput(client.routerClient, output, client.contracts.oracle);
|
|
1277
|
-
};
|
|
1278
|
-
|
|
1279
|
-
// src/lib/settlement/get-pool-info-by-denom.ts
|
|
1280
|
-
var getPoolInfoByDenom = async (client, baseDenom, quoteDenom) => {
|
|
1281
|
-
const pool = await getPoolByDenom(client, baseDenom, quoteDenom);
|
|
1282
|
-
return await getPoolInfo(client, pool.poolAddress);
|
|
1283
|
-
};
|
|
1284
|
-
|
|
1285
1314
|
// src/lib/client.ts
|
|
1286
1315
|
var BoltSuiClient = class extends import_core15.BaseClient {
|
|
1287
1316
|
/**
|
|
@@ -1518,12 +1547,7 @@ var BoltSuiClient = class extends import_core15.BaseClient {
|
|
|
1518
1547
|
/** @inheritdoc */
|
|
1519
1548
|
async getPoolConfig(poolContractAddress) {
|
|
1520
1549
|
await this.loadConfigFromUrl();
|
|
1521
|
-
return await
|
|
1522
|
-
}
|
|
1523
|
-
/** @inheritdoc */
|
|
1524
|
-
async getAssets() {
|
|
1525
|
-
await this.loadConfigFromUrl();
|
|
1526
|
-
return await getAssets(this);
|
|
1550
|
+
return await getPoolConfig(this, poolContractAddress);
|
|
1527
1551
|
}
|
|
1528
1552
|
/**
|
|
1529
1553
|
* @inheritdoc
|
|
@@ -1537,7 +1561,17 @@ var BoltSuiClient = class extends import_core15.BaseClient {
|
|
|
1537
1561
|
*/
|
|
1538
1562
|
async getPoolConfigByDenom(baseDenom, quoteDenom) {
|
|
1539
1563
|
await this.loadConfigFromUrl();
|
|
1540
|
-
return await
|
|
1564
|
+
return await getPoolConfigByDenom(this, baseDenom, quoteDenom);
|
|
1565
|
+
}
|
|
1566
|
+
/** @inheritdoc */
|
|
1567
|
+
async getPoolBaseLiquidity(poolContractAddress) {
|
|
1568
|
+
await this.loadConfigFromUrl();
|
|
1569
|
+
return await getPoolBaseLiquidity(this, poolContractAddress);
|
|
1570
|
+
}
|
|
1571
|
+
/** @inheritdoc */
|
|
1572
|
+
async getAssets() {
|
|
1573
|
+
await this.loadConfigFromUrl();
|
|
1574
|
+
return await getAssets(this);
|
|
1541
1575
|
}
|
|
1542
1576
|
/**
|
|
1543
1577
|
* @inheritdoc
|