@magmaprotocol/magma-clmm-sdk 0.5.7 → 0.5.9
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.d.ts +41 -1
- package/dist/index.js +287 -17
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +285 -17
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -35,6 +35,8 @@ declare const ClmmIntegrateUtilsModule = "utils";
|
|
|
35
35
|
declare const VotingEscrow = "voting_escrow";
|
|
36
36
|
declare const Voter = "voter";
|
|
37
37
|
declare const RewardDistributor = "reward_distributor";
|
|
38
|
+
declare const Gauge = "gauge";
|
|
39
|
+
declare const Minter = "minter";
|
|
38
40
|
/**
|
|
39
41
|
* The address for CoinInfo module.
|
|
40
42
|
*/
|
|
@@ -1318,6 +1320,7 @@ type MagmaConfigs = {
|
|
|
1318
1320
|
voting_escrow_id: SuiObjectIdType;
|
|
1319
1321
|
magma_token: SuiAddressType;
|
|
1320
1322
|
reward_distributor_id: SuiObjectIdType;
|
|
1323
|
+
distribution_cfg: SuiObjectIdType;
|
|
1321
1324
|
minter_id: SuiObjectIdType;
|
|
1322
1325
|
};
|
|
1323
1326
|
/**
|
|
@@ -3027,6 +3030,10 @@ type ALockSummary = {
|
|
|
3027
3030
|
reward_distributor_claimable: string;
|
|
3028
3031
|
voting_power: string;
|
|
3029
3032
|
};
|
|
3033
|
+
type AddBribeReward = {
|
|
3034
|
+
amount: string;
|
|
3035
|
+
coinType: string;
|
|
3036
|
+
};
|
|
3030
3037
|
declare class LockModule implements IModule {
|
|
3031
3038
|
protected _sdk: MagmaClmmSDK;
|
|
3032
3039
|
constructor(sdk: MagmaClmmSDK);
|
|
@@ -3043,8 +3050,10 @@ declare class LockModule implements IModule {
|
|
|
3043
3050
|
claimVotingRewardsPoolsPayload(params: ClaimFeesPoolsParams): Promise<Transaction>;
|
|
3044
3051
|
claimAndLockRebasesPayload(params: ClaimAndLockParams): Promise<Transaction>;
|
|
3045
3052
|
pokePayload(params: PokeParams): Promise<Transaction>;
|
|
3053
|
+
addBribeReward(params: AddBribeReward): Promise<Transaction>;
|
|
3046
3054
|
claimVotingBribe(locks: string[], incentive_tokens: string[]): Promise<Transaction>;
|
|
3047
3055
|
locksOfUser(user: string): Promise<LocksInfo>;
|
|
3056
|
+
aLockInfo(lockId: string): Promise<LockInfo>;
|
|
3048
3057
|
aLockSummary(lock_id: string): Promise<ALockSummary>;
|
|
3049
3058
|
allLockSummary(): Promise<AllLockSummary>;
|
|
3050
3059
|
poolWeights(pools: string[]): Promise<PoolWeight[]>;
|
|
@@ -3279,6 +3288,35 @@ declare class RpcModule extends SuiClient {
|
|
|
3279
3288
|
sendSimulationTransaction(tx: Transaction, simulationAccount: string, useDevInspect?: boolean): Promise<DevInspectResults | undefined>;
|
|
3280
3289
|
}
|
|
3281
3290
|
|
|
3291
|
+
type DepositPosition = {
|
|
3292
|
+
poolId: string;
|
|
3293
|
+
positionId: string;
|
|
3294
|
+
coinTypeA: string;
|
|
3295
|
+
coinTypeB: string;
|
|
3296
|
+
};
|
|
3297
|
+
type WithdrawPosition = {
|
|
3298
|
+
poolId: string;
|
|
3299
|
+
positionId: string;
|
|
3300
|
+
coinTypeA: string;
|
|
3301
|
+
coinTypeB: string;
|
|
3302
|
+
};
|
|
3303
|
+
type EpochEmission = {
|
|
3304
|
+
emission: number | string;
|
|
3305
|
+
rebase: number | string;
|
|
3306
|
+
};
|
|
3307
|
+
declare class GaugeModule implements IModule {
|
|
3308
|
+
protected _sdk: MagmaClmmSDK;
|
|
3309
|
+
constructor(sdk: MagmaClmmSDK);
|
|
3310
|
+
get sdk(): MagmaClmmSDK;
|
|
3311
|
+
depositPosition(params: DepositPosition): Promise<Transaction>;
|
|
3312
|
+
withdrawPosition(params: WithdrawPosition): Promise<Transaction>;
|
|
3313
|
+
getUserStakedPositionInfo(userAddr: string): Promise<any[]>;
|
|
3314
|
+
getUserStakedPositionInfoOfPool(userAddr: string, pool: string, gauger: string, poolCoinA: string, poolCoinB: string): Promise<any[]>;
|
|
3315
|
+
getPoolGaguers(): Promise<Map<string, string>>;
|
|
3316
|
+
getPoolCoins(pools: string[]): Promise<Map<string, string[]>>;
|
|
3317
|
+
getEmissions(): Promise<EpochEmission>;
|
|
3318
|
+
}
|
|
3319
|
+
|
|
3282
3320
|
/**
|
|
3283
3321
|
* Represents options and configurations for an SDK.
|
|
3284
3322
|
*/
|
|
@@ -3363,6 +3401,7 @@ declare class MagmaClmmSDK {
|
|
|
3363
3401
|
* Provide interact with a lock interface.
|
|
3364
3402
|
*/
|
|
3365
3403
|
protected _lock: LockModule;
|
|
3404
|
+
protected _gauge: GaugeModule;
|
|
3366
3405
|
/**
|
|
3367
3406
|
* Provide interact with a position rewarder interface.
|
|
3368
3407
|
*/
|
|
@@ -3409,6 +3448,7 @@ declare class MagmaClmmSDK {
|
|
|
3409
3448
|
*/
|
|
3410
3449
|
get Swap(): SwapModule;
|
|
3411
3450
|
get Lock(): LockModule;
|
|
3451
|
+
get Gauge(): GaugeModule;
|
|
3412
3452
|
/**
|
|
3413
3453
|
* Getter for the fullClient property.
|
|
3414
3454
|
* @returns {RpcModule} The fullClient property value.
|
|
@@ -4002,4 +4042,4 @@ interface InitMagmaSDKOptions {
|
|
|
4002
4042
|
*/
|
|
4003
4043
|
declare function initMagmaSDK(options: InitMagmaSDKOptions): MagmaClmmSDK;
|
|
4004
4044
|
|
|
4005
|
-
export { AMM_SWAP_MODULE, AddLiquidityCommonParams, AddLiquidityFixTokenParams, AddLiquidityParams, AddLiquidityWithProtectionParams, AddressAndDirection, AdjustResult, AggregatorResult, AmountSpecified, BasePath, BigNumber, Bits, BuildCoinResult, CLOCK_ADDRESS, CachedContent, CalculateRatesParams, CalculateRatesResult, ClaimAndLockParams, ClaimFeesParams, ClaimFeesPoolsParams, ClmmConfig, ClmmExpectSwapModule, ClmmFetcherModule, ClmmIntegratePoolModule, ClmmIntegratePoolV2Module, ClmmIntegratePoolV3Module, ClmmIntegrateRouterModule, ClmmIntegrateRouterWithPartnerModule, ClmmIntegrateUtilsModule, ClmmPartnerModule, ClmmPoolConfig, ClmmPoolUtil, ClmmPositionStatus, ClmmpoolData, ClosePositionParams, CoinAmounts, CoinAsset, CoinAssist, CoinConfig, CoinInfoAddress, CoinNode, CoinPairType, CoinProvider, CoinStoreAddress, CollectFeeParams, CollectFeesQuote, CollectFeesQuoteParam, CollectRewarderParams, ConfigModule, CreateLockParams, CreatePartnerEvent, CreatePoolAddLiquidityParams, CreatePoolParams, DEFAULT_GAS_BUDGET_FOR_MERGE, DEFAULT_GAS_BUDGET_FOR_SPLIT, DEFAULT_GAS_BUDGET_FOR_STAKE, DEFAULT_GAS_BUDGET_FOR_TRANSFER, DEFAULT_GAS_BUDGET_FOR_TRANSFER_SUI, DEFAULT_NFT_TRANSFER_GAS_FEE, DataPage, DeepbookClobV2Moudle, DeepbookCustodianV2Moudle, DeepbookEndpointsV2Moudle, DeepbookPool, DeepbookUtils, FEE_RATE_DENOMINATOR, FaucetCoin, FetchParams, GAS_SYMBOL, GAS_TYPE_ARG, GAS_TYPE_ARG_LONG, IncreaseLockAmountParams, IncreaseUnlockTimeParams, LaunchpadPoolConfig, LiquidityInput, LockModule, LockPermanentParams, MAX_SQRT_PRICE, MAX_TICK_INDEX, MIN_SQRT_PRICE, MIN_TICK_INDEX, MagmaClmmSDK, MagmaConfigs, MathUtil, MergeLockParams, NFT, ONE, OnePath, OpenPositionAddLiquidityWithProtectionParams, OpenPositionParams, Order, POOL_STRUCT, Package, PageQuery, PaginationArgs, PathLink, PathProvider, Percentage, PokeParams, Pool, PoolImmutables, PoolInfo, PoolModule, Position, PositionModule, PositionReward, PositionStatus, PositionUtil, PreRouterSwapParams, PreSwapLpChangeParams, PreSwapParams, PreSwapResult, PreSwapWithMultiPoolParams, PriceResult, RemoveLiquidityParams, RewardDistributor, Rewarder, RewarderAmountOwed, RouterModule, RouterModuleV2, RpcModule, SUI_SYSTEM_STATE_OBJECT_ID, SdkOptions, SplitPath, SplitSwap, SplitSwapResult, SplitUnit, SuiAddressType, SuiBasicTypes, SuiInputTypes, SuiObjectDataWithContent, SuiObjectIdType, SuiResource, SuiStructTag, SuiTxArg, SwapDirection, SwapModule, SwapParams, SwapResult, SwapStepResult, SwapUtils, SwapWithRouterParams, TICK_ARRAY_SIZE, TWO, Tick, TickData, TickMath, TickUtil, TokenConfig, TokenConfigEvent, TokenInfo, TokenModule, TransPreSwapWithMultiPoolParams, TransactionUtil, TransferLockParams, TxBlock, U128, U128_MAX, U64_MAX, VoteParams, Voter, VotingEscrow, ZERO, addHexPrefix, adjustForCoinSlippage, adjustForSlippage, asIntN, asUintN, bufferToHex, buildClmmPositionName, buildNFT, buildPool, buildPosition, buildPositionReward, buildTickData, buildTickDataByEvent, cacheTime24h, cacheTime5min, checkAddress, checkInvalidSuiAddress, clmmMainnet, clmmTestnet, collectFeesQuote, composeType, computeSwap, computeSwapStep, createSplitAmountArray, createSplitArray, createTestTransferTxPayloadParams, d, decimalsMultiplier, MagmaClmmSDK as default, estPoolAPR, estPosAPRResult, estPositionAPRWithDeltaMethod, estPositionAPRWithMultiMethod, estimateLiquidityForCoinA, estimateLiquidityForCoinB, extractAddressFromType, extractStructTagFromType, findAdjustCoin, fixCoinType, fixSuiObjectId, fromDecimalsAmount, getAmountFixedDelta, getAmountUnfixedDelta, getCoinAFromLiquidity, getCoinBFromLiquidity, getDefaultSuiInputType, getDeltaA, getDeltaB, getDeltaDownFromOutput, getDeltaUpFromInput, getFutureTime, getLiquidityFromCoinA, getLiquidityFromCoinB, getLowerSqrtPriceFromCoinA, getLowerSqrtPriceFromCoinB, getMoveObject, getMoveObjectType, getMovePackageContent, getNearestTickByTick, getNextSqrtPriceAUp, getNextSqrtPriceBDown, getNextSqrtPriceFromInput, getNextSqrtPriceFromOutput, getObjectDeletedResponse, getObjectDisplay, getObjectFields, getObjectId, getObjectNotExistsResponse, getObjectOwner, getObjectPreviousTransactionDigest, getObjectReference, getObjectType, getObjectVersion, getPackagerConfigs, getRewardInTickRange, getSuiObjectData, getTickDataFromUrlData, getUpperSqrtPriceFromCoinA, getUpperSqrtPriceFromCoinB, hasPublicTransfer, hexToNumber, hexToString, initMagmaSDK, initMainnetSDK, initTestnetSDK, isSortedSymbols, isSuiObjectResponse, newBits, normalizeCoinType, patchFixSuiObjectId, printTransaction, removeHexPrefix, secretKeyToEd25519Keypair, secretKeyToSecp256k1Keypair, shortAddress, shortString, tickScore, toBuffer, toCoinAmount, toDecimalsAmount, transClmmpoolDataWithoutTicks, utf8to16 };
|
|
4045
|
+
export { AMM_SWAP_MODULE, AddBribeReward, AddLiquidityCommonParams, AddLiquidityFixTokenParams, AddLiquidityParams, AddLiquidityWithProtectionParams, AddressAndDirection, AdjustResult, AggregatorResult, AmountSpecified, BasePath, BigNumber, Bits, BuildCoinResult, CLOCK_ADDRESS, CachedContent, CalculateRatesParams, CalculateRatesResult, ClaimAndLockParams, ClaimFeesParams, ClaimFeesPoolsParams, ClmmConfig, ClmmExpectSwapModule, ClmmFetcherModule, ClmmIntegratePoolModule, ClmmIntegratePoolV2Module, ClmmIntegratePoolV3Module, ClmmIntegrateRouterModule, ClmmIntegrateRouterWithPartnerModule, ClmmIntegrateUtilsModule, ClmmPartnerModule, ClmmPoolConfig, ClmmPoolUtil, ClmmPositionStatus, ClmmpoolData, ClosePositionParams, CoinAmounts, CoinAsset, CoinAssist, CoinConfig, CoinInfoAddress, CoinNode, CoinPairType, CoinProvider, CoinStoreAddress, CollectFeeParams, CollectFeesQuote, CollectFeesQuoteParam, CollectRewarderParams, ConfigModule, CreateLockParams, CreatePartnerEvent, CreatePoolAddLiquidityParams, CreatePoolParams, DEFAULT_GAS_BUDGET_FOR_MERGE, DEFAULT_GAS_BUDGET_FOR_SPLIT, DEFAULT_GAS_BUDGET_FOR_STAKE, DEFAULT_GAS_BUDGET_FOR_TRANSFER, DEFAULT_GAS_BUDGET_FOR_TRANSFER_SUI, DEFAULT_NFT_TRANSFER_GAS_FEE, DataPage, DeepbookClobV2Moudle, DeepbookCustodianV2Moudle, DeepbookEndpointsV2Moudle, DeepbookPool, DeepbookUtils, FEE_RATE_DENOMINATOR, FaucetCoin, FetchParams, GAS_SYMBOL, GAS_TYPE_ARG, GAS_TYPE_ARG_LONG, Gauge, IncreaseLockAmountParams, IncreaseUnlockTimeParams, LaunchpadPoolConfig, LiquidityInput, LockModule, LockPermanentParams, MAX_SQRT_PRICE, MAX_TICK_INDEX, MIN_SQRT_PRICE, MIN_TICK_INDEX, MagmaClmmSDK, MagmaConfigs, MathUtil, MergeLockParams, Minter, NFT, ONE, OnePath, OpenPositionAddLiquidityWithProtectionParams, OpenPositionParams, Order, POOL_STRUCT, Package, PageQuery, PaginationArgs, PathLink, PathProvider, Percentage, PokeParams, Pool, PoolImmutables, PoolInfo, PoolModule, Position, PositionModule, PositionReward, PositionStatus, PositionUtil, PreRouterSwapParams, PreSwapLpChangeParams, PreSwapParams, PreSwapResult, PreSwapWithMultiPoolParams, PriceResult, RemoveLiquidityParams, RewardDistributor, Rewarder, RewarderAmountOwed, RouterModule, RouterModuleV2, RpcModule, SUI_SYSTEM_STATE_OBJECT_ID, SdkOptions, SplitPath, SplitSwap, SplitSwapResult, SplitUnit, SuiAddressType, SuiBasicTypes, SuiInputTypes, SuiObjectDataWithContent, SuiObjectIdType, SuiResource, SuiStructTag, SuiTxArg, SwapDirection, SwapModule, SwapParams, SwapResult, SwapStepResult, SwapUtils, SwapWithRouterParams, TICK_ARRAY_SIZE, TWO, Tick, TickData, TickMath, TickUtil, TokenConfig, TokenConfigEvent, TokenInfo, TokenModule, TransPreSwapWithMultiPoolParams, TransactionUtil, TransferLockParams, TxBlock, U128, U128_MAX, U64_MAX, VoteParams, Voter, VotingEscrow, ZERO, addHexPrefix, adjustForCoinSlippage, adjustForSlippage, asIntN, asUintN, bufferToHex, buildClmmPositionName, buildNFT, buildPool, buildPosition, buildPositionReward, buildTickData, buildTickDataByEvent, cacheTime24h, cacheTime5min, checkAddress, checkInvalidSuiAddress, clmmMainnet, clmmTestnet, collectFeesQuote, composeType, computeSwap, computeSwapStep, createSplitAmountArray, createSplitArray, createTestTransferTxPayloadParams, d, decimalsMultiplier, MagmaClmmSDK as default, estPoolAPR, estPosAPRResult, estPositionAPRWithDeltaMethod, estPositionAPRWithMultiMethod, estimateLiquidityForCoinA, estimateLiquidityForCoinB, extractAddressFromType, extractStructTagFromType, findAdjustCoin, fixCoinType, fixSuiObjectId, fromDecimalsAmount, getAmountFixedDelta, getAmountUnfixedDelta, getCoinAFromLiquidity, getCoinBFromLiquidity, getDefaultSuiInputType, getDeltaA, getDeltaB, getDeltaDownFromOutput, getDeltaUpFromInput, getFutureTime, getLiquidityFromCoinA, getLiquidityFromCoinB, getLowerSqrtPriceFromCoinA, getLowerSqrtPriceFromCoinB, getMoveObject, getMoveObjectType, getMovePackageContent, getNearestTickByTick, getNextSqrtPriceAUp, getNextSqrtPriceBDown, getNextSqrtPriceFromInput, getNextSqrtPriceFromOutput, getObjectDeletedResponse, getObjectDisplay, getObjectFields, getObjectId, getObjectNotExistsResponse, getObjectOwner, getObjectPreviousTransactionDigest, getObjectReference, getObjectType, getObjectVersion, getPackagerConfigs, getRewardInTickRange, getSuiObjectData, getTickDataFromUrlData, getUpperSqrtPriceFromCoinA, getUpperSqrtPriceFromCoinB, hasPublicTransfer, hexToNumber, hexToString, initMagmaSDK, initMainnetSDK, initTestnetSDK, isSortedSymbols, isSuiObjectResponse, newBits, normalizeCoinType, patchFixSuiObjectId, printTransaction, removeHexPrefix, secretKeyToEd25519Keypair, secretKeyToSecp256k1Keypair, shortAddress, shortString, tickScore, toBuffer, toCoinAmount, toDecimalsAmount, transClmmpoolDataWithoutTicks, utf8to16 };
|
package/dist/index.js
CHANGED
|
@@ -68,6 +68,7 @@ __export(src_exports, {
|
|
|
68
68
|
GAS_SYMBOL: () => GAS_SYMBOL,
|
|
69
69
|
GAS_TYPE_ARG: () => GAS_TYPE_ARG,
|
|
70
70
|
GAS_TYPE_ARG_LONG: () => GAS_TYPE_ARG_LONG,
|
|
71
|
+
Gauge: () => Gauge,
|
|
71
72
|
LockModule: () => LockModule,
|
|
72
73
|
MAX_SQRT_PRICE: () => MAX_SQRT_PRICE,
|
|
73
74
|
MAX_TICK_INDEX: () => MAX_TICK_INDEX,
|
|
@@ -75,6 +76,7 @@ __export(src_exports, {
|
|
|
75
76
|
MIN_TICK_INDEX: () => MIN_TICK_INDEX,
|
|
76
77
|
MagmaClmmSDK: () => MagmaClmmSDK,
|
|
77
78
|
MathUtil: () => MathUtil,
|
|
79
|
+
Minter: () => Minter,
|
|
78
80
|
ONE: () => ONE,
|
|
79
81
|
POOL_STRUCT: () => POOL_STRUCT,
|
|
80
82
|
Percentage: () => Percentage,
|
|
@@ -504,6 +506,8 @@ var ClmmIntegrateUtilsModule = "utils";
|
|
|
504
506
|
var VotingEscrow = "voting_escrow";
|
|
505
507
|
var Voter = "voter";
|
|
506
508
|
var RewardDistributor = "reward_distributor";
|
|
509
|
+
var Gauge = "gauge";
|
|
510
|
+
var Minter = "minter";
|
|
507
511
|
var CoinInfoAddress = "0x1::coin::CoinInfo";
|
|
508
512
|
var CoinStoreAddress = "0x1::coin::CoinStore";
|
|
509
513
|
var DeepbookCustodianV2Moudle = "custodian_v2";
|
|
@@ -3217,9 +3221,8 @@ var _TransactionUtil = class {
|
|
|
3217
3221
|
static buildVoteTransaction(sdk, params) {
|
|
3218
3222
|
const tx = new import_transactions.Transaction();
|
|
3219
3223
|
tx.setSender(sdk.senderAddress);
|
|
3220
|
-
tx.setGasBudget(1e8);
|
|
3221
3224
|
const { integrate } = sdk.sdkOptions;
|
|
3222
|
-
const { voting_escrow_id, magma_token, voter_id } = getPackagerConfigs(sdk.sdkOptions.magma_config);
|
|
3225
|
+
const { distribution_cfg, voting_escrow_id, magma_token, voter_id } = getPackagerConfigs(sdk.sdkOptions.magma_config);
|
|
3223
3226
|
const typeArguments = [magma_token];
|
|
3224
3227
|
const functionName = "vote";
|
|
3225
3228
|
const pools = tx.pure.vector("id", params.pools);
|
|
@@ -3227,7 +3230,15 @@ var _TransactionUtil = class {
|
|
|
3227
3230
|
elements: params.weights.map((weight) => tx.pure.u64(weight)),
|
|
3228
3231
|
type: "u64"
|
|
3229
3232
|
});
|
|
3230
|
-
const args = [
|
|
3233
|
+
const args = [
|
|
3234
|
+
tx.object(distribution_cfg),
|
|
3235
|
+
tx.object(voter_id),
|
|
3236
|
+
tx.object(voting_escrow_id),
|
|
3237
|
+
tx.object(params.lockId),
|
|
3238
|
+
pools,
|
|
3239
|
+
weights,
|
|
3240
|
+
tx.object(CLOCK_ADDRESS)
|
|
3241
|
+
];
|
|
3231
3242
|
tx.moveCall({
|
|
3232
3243
|
target: `${integrate.published_at}::${Voter}::${functionName}`,
|
|
3233
3244
|
typeArguments,
|
|
@@ -3289,10 +3300,16 @@ var _TransactionUtil = class {
|
|
|
3289
3300
|
const tx = new import_transactions.Transaction();
|
|
3290
3301
|
tx.setSender(sdk.senderAddress);
|
|
3291
3302
|
const { integrate } = sdk.sdkOptions;
|
|
3292
|
-
const { voting_escrow_id, magma_token, voter_id } = getPackagerConfigs(sdk.sdkOptions.magma_config);
|
|
3303
|
+
const { distribution_cfg, voting_escrow_id, magma_token, voter_id } = getPackagerConfigs(sdk.sdkOptions.magma_config);
|
|
3293
3304
|
const typeArguments = [magma_token];
|
|
3294
3305
|
const functionName = "poke";
|
|
3295
|
-
const args = [
|
|
3306
|
+
const args = [
|
|
3307
|
+
tx.object(distribution_cfg),
|
|
3308
|
+
tx.object(voter_id),
|
|
3309
|
+
tx.object(voting_escrow_id),
|
|
3310
|
+
tx.object(params.lockId),
|
|
3311
|
+
tx.object(CLOCK_ADDRESS)
|
|
3312
|
+
];
|
|
3296
3313
|
tx.moveCall({
|
|
3297
3314
|
target: `${integrate.published_at}::${Voter}::${functionName}`,
|
|
3298
3315
|
typeArguments,
|
|
@@ -7434,6 +7451,25 @@ var LockModule = class {
|
|
|
7434
7451
|
}
|
|
7435
7452
|
return TransactionUtil.buildPoke(this.sdk, params);
|
|
7436
7453
|
}
|
|
7454
|
+
async addBribeReward(params) {
|
|
7455
|
+
if (this._sdk.senderAddress.length === 0) {
|
|
7456
|
+
throw Error("this config sdk senderAddress is empty");
|
|
7457
|
+
}
|
|
7458
|
+
const tx = new import_transactions9.Transaction();
|
|
7459
|
+
tx.setSender(this.sdk.senderAddress);
|
|
7460
|
+
const { integrate } = this.sdk.sdkOptions;
|
|
7461
|
+
const { magma_token, voter_id } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
7462
|
+
const typeArguments = [magma_token, params.coinType];
|
|
7463
|
+
const allCoinAsset = await this._sdk.getOwnerCoinAssets(this._sdk.senderAddress);
|
|
7464
|
+
const coinInput = TransactionUtil.buildCoinForAmount(tx, allCoinAsset, BigInt(params.amount), params.coinType, false, true);
|
|
7465
|
+
const args = [tx.object(voter_id), coinInput.targetCoin, tx.object(CLOCK_ADDRESS)];
|
|
7466
|
+
tx.moveCall({
|
|
7467
|
+
target: `${integrate.published_at}::${Voter}::add_bribe_reward`,
|
|
7468
|
+
typeArguments,
|
|
7469
|
+
arguments: args
|
|
7470
|
+
});
|
|
7471
|
+
return tx;
|
|
7472
|
+
}
|
|
7437
7473
|
async claimVotingBribe(locks, incentive_tokens) {
|
|
7438
7474
|
if (this._sdk.senderAddress.length === 0) {
|
|
7439
7475
|
throw Error("this config sdk senderAddress is empty");
|
|
@@ -7491,6 +7527,62 @@ var LockModule = class {
|
|
|
7491
7527
|
}
|
|
7492
7528
|
return locksInfo;
|
|
7493
7529
|
}
|
|
7530
|
+
async aLockInfo(lockId) {
|
|
7531
|
+
const aLockSummary = await this.aLockSummary(lockId);
|
|
7532
|
+
const lockObj = await this._sdk.fullClient.getObject({
|
|
7533
|
+
id: lockId,
|
|
7534
|
+
options: {
|
|
7535
|
+
showContent: true,
|
|
7536
|
+
showDisplay: true,
|
|
7537
|
+
showOwner: true,
|
|
7538
|
+
showPreviousTransaction: true,
|
|
7539
|
+
showStorageRebate: true,
|
|
7540
|
+
showType: true
|
|
7541
|
+
}
|
|
7542
|
+
});
|
|
7543
|
+
const { magma_token } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
7544
|
+
const poolIncentiveTokens = await this.getVotingBribeRewardTokens(lockId);
|
|
7545
|
+
const incentiveTokens = [];
|
|
7546
|
+
poolIncentiveTokens.forEach((value, key) => {
|
|
7547
|
+
incentiveTokens.push(...value);
|
|
7548
|
+
});
|
|
7549
|
+
const poolIncentiveRewards = await this.getPoolIncentiveRewrads(incentiveTokens, lockId);
|
|
7550
|
+
const votingRewards = /* @__PURE__ */ new Map();
|
|
7551
|
+
poolIncentiveRewards.forEach((value, coin) => {
|
|
7552
|
+
value.forEach((amount, pool) => {
|
|
7553
|
+
if (!votingRewards.has(pool)) {
|
|
7554
|
+
votingRewards.set(pool, []);
|
|
7555
|
+
}
|
|
7556
|
+
votingRewards.get(pool)?.push({
|
|
7557
|
+
kind: "incentiveCoin" /* Incentive */,
|
|
7558
|
+
token_addr: coin,
|
|
7559
|
+
amount: amount.toString()
|
|
7560
|
+
});
|
|
7561
|
+
});
|
|
7562
|
+
});
|
|
7563
|
+
if (lockObj.error != null || lockObj.data?.content?.dataType !== "moveObject") {
|
|
7564
|
+
throw new ClmmpoolsError(
|
|
7565
|
+
`getPool error code: ${lockObj.error?.code ?? "unknown error"}, please check config and object id`,
|
|
7566
|
+
"InvalidLockObject" /* InvalidLockObject */
|
|
7567
|
+
);
|
|
7568
|
+
}
|
|
7569
|
+
const fields = getObjectFields(lockObj);
|
|
7570
|
+
const lockInfo = {
|
|
7571
|
+
lock_id: lockId,
|
|
7572
|
+
amount: fields.amount,
|
|
7573
|
+
start: fields.start,
|
|
7574
|
+
end: fields.end,
|
|
7575
|
+
permanent: fields.permanent,
|
|
7576
|
+
rebase_amount: {
|
|
7577
|
+
kind: "rebaseCoin" /* RebaseCoin */,
|
|
7578
|
+
token_addr: magma_token,
|
|
7579
|
+
amount: aLockSummary.reward_distributor_claimable
|
|
7580
|
+
},
|
|
7581
|
+
voting_power: aLockSummary.voting_power,
|
|
7582
|
+
voting_rewards: votingRewards
|
|
7583
|
+
};
|
|
7584
|
+
return lockInfo;
|
|
7585
|
+
}
|
|
7494
7586
|
async aLockSummary(lock_id) {
|
|
7495
7587
|
const tx = new import_transactions9.Transaction();
|
|
7496
7588
|
const { integrate, simulationAccount } = this.sdk.sdkOptions;
|
|
@@ -7622,14 +7714,14 @@ var LockModule = class {
|
|
|
7622
7714
|
const { magma_token, voter_id } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
7623
7715
|
const typeArguments = [magma_token];
|
|
7624
7716
|
const args = [tx.object(voter_id), tx.object(lock_id)];
|
|
7717
|
+
if (!checkInvalidSuiAddress(simulationAccount.address)) {
|
|
7718
|
+
throw Error("this config simulationAccount is not set right");
|
|
7719
|
+
}
|
|
7625
7720
|
tx.moveCall({
|
|
7626
7721
|
target: `${integrate.published_at}::${Voter}::get_voting_fee_reward_tokens`,
|
|
7627
7722
|
arguments: args,
|
|
7628
7723
|
typeArguments
|
|
7629
7724
|
});
|
|
7630
|
-
if (!checkInvalidSuiAddress(simulationAccount.address)) {
|
|
7631
|
-
throw Error("this config simulationAccount is not set right");
|
|
7632
|
-
}
|
|
7633
7725
|
const simulateRes = await this.sdk.fullClient.devInspectTransactionBlock({
|
|
7634
7726
|
transactionBlock: tx,
|
|
7635
7727
|
sender: simulationAccount.address
|
|
@@ -8841,6 +8933,7 @@ var ConfigModule = class {
|
|
|
8841
8933
|
voter_id: "",
|
|
8842
8934
|
minter_id: "",
|
|
8843
8935
|
reward_distributor_id: "",
|
|
8936
|
+
distribution_cfg: "",
|
|
8844
8937
|
magma_token: "",
|
|
8845
8938
|
voting_escrow_id: ""
|
|
8846
8939
|
};
|
|
@@ -9113,6 +9206,174 @@ var RpcModule = class extends import_client.SuiClient {
|
|
|
9113
9206
|
}
|
|
9114
9207
|
};
|
|
9115
9208
|
|
|
9209
|
+
// src/modules/gauge.ts
|
|
9210
|
+
var import_transactions11 = require("@mysten/sui/transactions");
|
|
9211
|
+
var GaugeModule = class {
|
|
9212
|
+
_sdk;
|
|
9213
|
+
constructor(sdk) {
|
|
9214
|
+
this._sdk = sdk;
|
|
9215
|
+
}
|
|
9216
|
+
get sdk() {
|
|
9217
|
+
return this._sdk;
|
|
9218
|
+
}
|
|
9219
|
+
async depositPosition(params) {
|
|
9220
|
+
const tx = new import_transactions11.Transaction();
|
|
9221
|
+
tx.setSender(this.sdk.senderAddress);
|
|
9222
|
+
const poolGauge = await this.getPoolGaguers();
|
|
9223
|
+
const gauge = poolGauge.get(params.poolId);
|
|
9224
|
+
if (gauge === void 0) {
|
|
9225
|
+
throw Error(`Fetch gauge of pool ${params.poolId} failed`);
|
|
9226
|
+
}
|
|
9227
|
+
const { distribution_cfg, magma_token } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
9228
|
+
const { clmm_pool, integrate } = this.sdk.sdkOptions;
|
|
9229
|
+
const clmmConfig = getPackagerConfigs(clmm_pool);
|
|
9230
|
+
const typeArguments = [params.coinTypeA, params.coinTypeB, magma_token];
|
|
9231
|
+
const args = [
|
|
9232
|
+
tx.object(clmmConfig.global_config_id),
|
|
9233
|
+
tx.object(distribution_cfg),
|
|
9234
|
+
tx.object(gauge),
|
|
9235
|
+
tx.object(params.poolId),
|
|
9236
|
+
tx.object(params.positionId),
|
|
9237
|
+
tx.object(CLOCK_ADDRESS)
|
|
9238
|
+
];
|
|
9239
|
+
tx.moveCall({
|
|
9240
|
+
target: `${integrate.published_at}::${Gauge}::deposit_position`,
|
|
9241
|
+
typeArguments,
|
|
9242
|
+
arguments: args
|
|
9243
|
+
});
|
|
9244
|
+
return tx;
|
|
9245
|
+
}
|
|
9246
|
+
async withdrawPosition(params) {
|
|
9247
|
+
const tx = new import_transactions11.Transaction();
|
|
9248
|
+
tx.setSender(this.sdk.senderAddress);
|
|
9249
|
+
const poolGauge = await this.sdk.Gauge.getPoolGaguers();
|
|
9250
|
+
const gauge = poolGauge.get(params.poolId);
|
|
9251
|
+
if (gauge === void 0) {
|
|
9252
|
+
throw Error(`Fetch gauge of pool ${params.poolId} failed`);
|
|
9253
|
+
}
|
|
9254
|
+
const { magma_token } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
9255
|
+
const { integrate } = this.sdk.sdkOptions;
|
|
9256
|
+
const typeArguments = [params.coinTypeA, params.coinTypeB, magma_token];
|
|
9257
|
+
const args = [tx.object(gauge), tx.object(params.poolId), tx.object(params.positionId), tx.object(CLOCK_ADDRESS)];
|
|
9258
|
+
tx.moveCall({
|
|
9259
|
+
target: `${integrate.published_at}::${Gauge}::withdraw_position`,
|
|
9260
|
+
typeArguments,
|
|
9261
|
+
arguments: args
|
|
9262
|
+
});
|
|
9263
|
+
return tx;
|
|
9264
|
+
}
|
|
9265
|
+
async getUserStakedPositionInfo(userAddr) {
|
|
9266
|
+
const poolGauger = await this.getPoolGaguers();
|
|
9267
|
+
const poolCoins = await this.getPoolCoins([...poolGauger.keys()]);
|
|
9268
|
+
const res = [];
|
|
9269
|
+
for (const [pool, gauger] of poolGauger) {
|
|
9270
|
+
const coins = poolCoins.get(pool);
|
|
9271
|
+
if (coins === void 0) {
|
|
9272
|
+
console.log(`Failed to get coins of pool: ${pool}`);
|
|
9273
|
+
continue;
|
|
9274
|
+
}
|
|
9275
|
+
const stakedPositionOfPool = await this.getUserStakedPositionInfoOfPool(userAddr, pool, gauger, coins[0], coins[1]);
|
|
9276
|
+
res.push(...stakedPositionOfPool);
|
|
9277
|
+
}
|
|
9278
|
+
return res;
|
|
9279
|
+
}
|
|
9280
|
+
async getUserStakedPositionInfoOfPool(userAddr, pool, gauger, poolCoinA, poolCoinB) {
|
|
9281
|
+
const tx = new import_transactions11.Transaction();
|
|
9282
|
+
const { integrate, simulationAccount } = this.sdk.sdkOptions;
|
|
9283
|
+
const { magma_token, voter_id } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
9284
|
+
const typeArguments = [magma_token, poolCoinA, poolCoinB];
|
|
9285
|
+
const args = [tx.object(voter_id), tx.object(gauger), tx.object(pool), tx.pure.address(userAddr), tx.object(CLOCK_ADDRESS)];
|
|
9286
|
+
tx.moveCall({
|
|
9287
|
+
target: `${integrate.published_at}::${Gauge}::user_staked_position_infos`,
|
|
9288
|
+
arguments: args,
|
|
9289
|
+
typeArguments
|
|
9290
|
+
});
|
|
9291
|
+
const simulateRes = await this.sdk.fullClient.devInspectTransactionBlock({
|
|
9292
|
+
transactionBlock: tx,
|
|
9293
|
+
sender: simulationAccount.address
|
|
9294
|
+
});
|
|
9295
|
+
if (simulateRes.error != null) {
|
|
9296
|
+
throw new Error(`all_lock_summary error code: ${simulateRes.error ?? "unknown error"}`);
|
|
9297
|
+
}
|
|
9298
|
+
const res = [];
|
|
9299
|
+
simulateRes.events?.forEach((item) => {
|
|
9300
|
+
res.push(item.parsedJson);
|
|
9301
|
+
});
|
|
9302
|
+
return res;
|
|
9303
|
+
}
|
|
9304
|
+
async getPoolGaguers() {
|
|
9305
|
+
const tx = new import_transactions11.Transaction();
|
|
9306
|
+
const { integrate, simulationAccount } = this.sdk.sdkOptions;
|
|
9307
|
+
const { magma_token, voter_id } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
9308
|
+
const typeArguments = [magma_token];
|
|
9309
|
+
const args = [tx.object(voter_id)];
|
|
9310
|
+
tx.moveCall({
|
|
9311
|
+
target: `${integrate.published_at}::${Voter}::pools_gauges`,
|
|
9312
|
+
arguments: args,
|
|
9313
|
+
typeArguments
|
|
9314
|
+
});
|
|
9315
|
+
const simulateRes = await this.sdk.fullClient.devInspectTransactionBlock({
|
|
9316
|
+
transactionBlock: tx,
|
|
9317
|
+
sender: simulationAccount.address
|
|
9318
|
+
});
|
|
9319
|
+
if (simulateRes.error != null) {
|
|
9320
|
+
throw new Error(`all_lock_summary error code: ${simulateRes.error ?? "unknown error"}`);
|
|
9321
|
+
}
|
|
9322
|
+
const poolGauger = /* @__PURE__ */ new Map();
|
|
9323
|
+
simulateRes.events?.forEach((item) => {
|
|
9324
|
+
const { gauges } = item.parsedJson;
|
|
9325
|
+
console.log("parsedJson", item.parsedJson);
|
|
9326
|
+
item.parsedJson.pools.map((pool, index) => {
|
|
9327
|
+
poolGauger.set(pool, gauges[index]);
|
|
9328
|
+
});
|
|
9329
|
+
});
|
|
9330
|
+
return poolGauger;
|
|
9331
|
+
}
|
|
9332
|
+
async getPoolCoins(pools) {
|
|
9333
|
+
const res = await this._sdk.fullClient.multiGetObjects({ ids: pools, options: { showContent: true } });
|
|
9334
|
+
const poolCoins = /* @__PURE__ */ new Map();
|
|
9335
|
+
res.forEach((item) => {
|
|
9336
|
+
if (item.error != null || item.data?.content?.dataType !== "moveObject") {
|
|
9337
|
+
throw new Error(`Failed to get poolCoins with err: ${item.error}`);
|
|
9338
|
+
}
|
|
9339
|
+
const type = getObjectType(item);
|
|
9340
|
+
const poolTypeFields = extractStructTagFromType(type);
|
|
9341
|
+
poolCoins.set(poolTypeFields.address, poolTypeFields.type_arguments);
|
|
9342
|
+
});
|
|
9343
|
+
return poolCoins;
|
|
9344
|
+
}
|
|
9345
|
+
async getEmissions() {
|
|
9346
|
+
const tx = new import_transactions11.Transaction();
|
|
9347
|
+
const { integrate, simulationAccount } = this.sdk.sdkOptions;
|
|
9348
|
+
const { magma_token, minter_id, voting_escrow_id } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
9349
|
+
const typeArguments = [magma_token];
|
|
9350
|
+
const args = [tx.object(minter_id), tx.object(voting_escrow_id)];
|
|
9351
|
+
tx.moveCall({
|
|
9352
|
+
target: `${integrate.published_at}::${Minter}::emissions`,
|
|
9353
|
+
arguments: args,
|
|
9354
|
+
typeArguments
|
|
9355
|
+
});
|
|
9356
|
+
const simulateRes = await this.sdk.fullClient.devInspectTransactionBlock({
|
|
9357
|
+
transactionBlock: tx,
|
|
9358
|
+
sender: simulationAccount.address
|
|
9359
|
+
});
|
|
9360
|
+
if (simulateRes.error != null) {
|
|
9361
|
+
throw new Error(`all_lock_summary error code: ${simulateRes.error ?? "unknown error"}`);
|
|
9362
|
+
}
|
|
9363
|
+
let res = {
|
|
9364
|
+
emission: 0,
|
|
9365
|
+
rebase: 0
|
|
9366
|
+
};
|
|
9367
|
+
simulateRes.events?.forEach((item) => {
|
|
9368
|
+
res = {
|
|
9369
|
+
emission: item.parsedJson.emission,
|
|
9370
|
+
rebase: item.parsedJson.rebase
|
|
9371
|
+
};
|
|
9372
|
+
});
|
|
9373
|
+
return res;
|
|
9374
|
+
}
|
|
9375
|
+
};
|
|
9376
|
+
|
|
9116
9377
|
// src/sdk.ts
|
|
9117
9378
|
var MagmaClmmSDK = class {
|
|
9118
9379
|
_cache = {};
|
|
@@ -9136,6 +9397,7 @@ var MagmaClmmSDK = class {
|
|
|
9136
9397
|
* Provide interact with a lock interface.
|
|
9137
9398
|
*/
|
|
9138
9399
|
_lock;
|
|
9400
|
+
_gauge;
|
|
9139
9401
|
/**
|
|
9140
9402
|
* Provide interact with a position rewarder interface.
|
|
9141
9403
|
*/
|
|
@@ -9172,6 +9434,7 @@ var MagmaClmmSDK = class {
|
|
|
9172
9434
|
});
|
|
9173
9435
|
this._swap = new SwapModule(this);
|
|
9174
9436
|
this._lock = new LockModule(this);
|
|
9437
|
+
this._gauge = new GaugeModule(this);
|
|
9175
9438
|
this._pool = new PoolModule(this);
|
|
9176
9439
|
this._position = new PositionModule(this);
|
|
9177
9440
|
this._rewarder = new RewarderModule(this);
|
|
@@ -9206,6 +9469,9 @@ var MagmaClmmSDK = class {
|
|
|
9206
9469
|
get Lock() {
|
|
9207
9470
|
return this._lock;
|
|
9208
9471
|
}
|
|
9472
|
+
get Gauge() {
|
|
9473
|
+
return this._gauge;
|
|
9474
|
+
}
|
|
9209
9475
|
/**
|
|
9210
9476
|
* Getter for the fullClient property.
|
|
9211
9477
|
* @returns {RpcModule} The fullClient property value.
|
|
@@ -9392,11 +9658,12 @@ var SDKConfig = {
|
|
|
9392
9658
|
launchpad_pools_handle: "0x5e194a8efcf653830daf85a85b52e3ae8f65dc39481d54b2382acda25068375c",
|
|
9393
9659
|
clmm_pools_handle: "0x37f60eb2d9d227949b95da8fea810db3c32d1e1fa8ed87434fc51664f87d83cb",
|
|
9394
9660
|
global_config_id: "0x4f32c00706e7bdbce532acdcfc0afd91b14defd5ffc9e2723a0ce7ed84f5d380",
|
|
9395
|
-
voter_id: "
|
|
9396
|
-
voting_escrow_id: "
|
|
9397
|
-
reward_distributor_id: "
|
|
9398
|
-
|
|
9399
|
-
|
|
9661
|
+
voter_id: "0xe8e0c266602404caa463f85bee4ccf6000c8c2566204a3949400a06857295ceb",
|
|
9662
|
+
voting_escrow_id: "0x143aab8c7c13c58a94d99ae281b4226f1877abc21bc01b9d75b58a7217fc3b2c",
|
|
9663
|
+
reward_distributor_id: "0x93bf24d3db08f93a02ba90abc7095f8d8086e5a1f72bac8bd866df21defe83ab",
|
|
9664
|
+
distribution_cfg: "0x94e23846c975e2faf89a61bfc2b10ad64decab9069eb1f9fc39752b010868c74",
|
|
9665
|
+
magma_token: "0x3abcdefce1a0ec1252237b69efc6dc3881325d543fceaad2e2f360a02d2f5bd9::magma_token::MAGMA_TOKEN",
|
|
9666
|
+
minter_id: "0x92877b638c3febf8576d0d7caebf9a2c43753b2e441669fb434e709458ece345"
|
|
9400
9667
|
}
|
|
9401
9668
|
};
|
|
9402
9669
|
var clmmMainnet = {
|
|
@@ -9415,12 +9682,12 @@ var clmmMainnet = {
|
|
|
9415
9682
|
config: SDKConfig.clmmConfig
|
|
9416
9683
|
},
|
|
9417
9684
|
distribution: {
|
|
9418
|
-
package_id: "
|
|
9419
|
-
published_at: "
|
|
9685
|
+
package_id: "0x3abcdefce1a0ec1252237b69efc6dc3881325d543fceaad2e2f360a02d2f5bd9",
|
|
9686
|
+
published_at: "0x3abcdefce1a0ec1252237b69efc6dc3881325d543fceaad2e2f360a02d2f5bd9"
|
|
9420
9687
|
},
|
|
9421
9688
|
integrate: {
|
|
9422
|
-
package_id: "
|
|
9423
|
-
published_at: "
|
|
9689
|
+
package_id: "0x6e3ae31a16362c563c0fef5293348d262646882a10c307f20f6be8577960f1ef",
|
|
9690
|
+
published_at: "0xba2255e57f407e1e171f0bacd54d9e743bb12e3e9bb9d51a41a362749b9e51c2"
|
|
9424
9691
|
},
|
|
9425
9692
|
deepbook: {
|
|
9426
9693
|
package_id: "0x000000000000000000000000000000000000000000000000000000000000dee9",
|
|
@@ -9464,6 +9731,7 @@ var SDKConfig2 = {
|
|
|
9464
9731
|
voter_id: "0x59571991a5c7041c4376d980061af5c7a6d8345006d6b5167bd1f00fc17b8ddb",
|
|
9465
9732
|
voting_escrow_id: "0x9081c8044719135da4ff2d52907fcd40c19e2a40750cbba4c1d6a59610ae1446",
|
|
9466
9733
|
reward_distributor_id: "0xdf213d8e0ca49c8f4a508e7d3b3a6983c4aafd639f7c99479fc75fb4451d752e",
|
|
9734
|
+
distribution_cfg: "0x94e23846c975e2faf89a61bfc2b10ad64decab9069eb1f9fc39752b010868c74",
|
|
9467
9735
|
magma_token: "0x45ac2371c33ca0df8dc784d62c8ce5126d42edd8c56820396524dff2ae0619b1::magma_token::MAGMA_TOKEN",
|
|
9468
9736
|
minter_id: "0x89435d6b2a510ba50ca23303f10e91ec058f138a88f69a43fe03cd22edb214c5"
|
|
9469
9737
|
}
|
|
@@ -9559,6 +9827,7 @@ var src_default = MagmaClmmSDK;
|
|
|
9559
9827
|
GAS_SYMBOL,
|
|
9560
9828
|
GAS_TYPE_ARG,
|
|
9561
9829
|
GAS_TYPE_ARG_LONG,
|
|
9830
|
+
Gauge,
|
|
9562
9831
|
LockModule,
|
|
9563
9832
|
MAX_SQRT_PRICE,
|
|
9564
9833
|
MAX_TICK_INDEX,
|
|
@@ -9566,6 +9835,7 @@ var src_default = MagmaClmmSDK;
|
|
|
9566
9835
|
MIN_TICK_INDEX,
|
|
9567
9836
|
MagmaClmmSDK,
|
|
9568
9837
|
MathUtil,
|
|
9838
|
+
Minter,
|
|
9569
9839
|
ONE,
|
|
9570
9840
|
POOL_STRUCT,
|
|
9571
9841
|
Percentage,
|