@magmaprotocol/magma-clmm-sdk 0.5.33 → 0.5.34
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 +22 -1
- package/dist/index.js +356 -7
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +356 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -1
package/dist/index.d.ts
CHANGED
|
@@ -3026,6 +3026,8 @@ declare class SwapModule implements IModule {
|
|
|
3026
3026
|
}>;
|
|
3027
3027
|
}
|
|
3028
3028
|
|
|
3029
|
+
type LockID = string;
|
|
3030
|
+
type PoolID = string;
|
|
3029
3031
|
type LocksInfo = {
|
|
3030
3032
|
owner: string;
|
|
3031
3033
|
lockInfo: LockInfo[];
|
|
@@ -3100,15 +3102,33 @@ declare class LockModule implements IModule {
|
|
|
3100
3102
|
claimVotingBribe(locks: string[], incentive_tokens: string[]): Promise<Transaction>;
|
|
3101
3103
|
claimVotingFeeAndBribeForPool(lockId: string, poolId: string, feeTokens: string[], incentiveTokens: string[]): Promise<Transaction>;
|
|
3102
3104
|
fastLocksOfUser(user: string): Promise<LocksInfo>;
|
|
3105
|
+
locksOfUserV2(user: string): Promise<LocksInfo>;
|
|
3103
3106
|
locksOfUser(user: string): Promise<LocksInfo>;
|
|
3104
3107
|
aLockInfo(lockId: string): Promise<LockInfo>;
|
|
3105
3108
|
aLockSummary(lock_id: string): Promise<ALockSummary>;
|
|
3109
|
+
getAllLockSummary(lock_ids: string[]): Promise<Map<LockID, ALockSummary>>;
|
|
3110
|
+
_aLockSummary(lock_id: string, tx?: Transaction): Promise<Transaction>;
|
|
3111
|
+
_parseLockSummary(tx: Transaction): Promise<Map<LockID, ALockSummary>>;
|
|
3106
3112
|
allLockSummary(): Promise<AllLockSummary>;
|
|
3107
3113
|
poolWeights(pools: string[]): Promise<PoolWeight[]>;
|
|
3114
|
+
getAllVotingFeeRewardTokens(lock_ids: string[]): Promise<Map<LockID, string[]>>;
|
|
3115
|
+
_getVotingFeeRewardTokens(lock_id: string, tx?: Transaction): Promise<Transaction>;
|
|
3116
|
+
_parseVotingFeeRewardTokens(tx: Transaction): Promise<Map<LockID, string[]>>;
|
|
3108
3117
|
getVotingFeeRewardTokens(lock_id: string): Promise<Map<string, string[]>>;
|
|
3118
|
+
getAllBribeRewardTokensOfLock(lock_ids: string[]): Promise<Map<LockID, string[]>>;
|
|
3119
|
+
_getVotingBribeRewardTokens(lock_id: string, tx?: Transaction): Promise<Transaction>;
|
|
3120
|
+
_parseVotingBribeRewardTokens(tx: Transaction): Promise<Map<LockID, string[]>>;
|
|
3109
3121
|
getVotingBribeRewardTokens(lock_id: string): Promise<Map<string, string[]>>;
|
|
3110
|
-
|
|
3122
|
+
getAllFeeRewards(fee_tokens: Map<LockID, string[]>): Promise<Map<LockID, Map<PoolID, Coin[]>>>;
|
|
3123
|
+
_getFeeRewards(lock_id: string, fee_tokens: string[], tx: Transaction): Transaction;
|
|
3124
|
+
_getFeeRewardsInner(lock_id: LockID, token_a: string, token_b: string, tx?: Transaction): Transaction;
|
|
3125
|
+
_parseFeeRewards(tx: Transaction): Promise<Map<LockID, Map<PoolID, Coin[]>>>;
|
|
3126
|
+
getPoolFeeRewards(lock_id: LockID, tokens: string[]): Promise<Map<string, Map<string, string>>>;
|
|
3111
3127
|
_getPoolFeeRewards(lock_id: string, token_a: string, token_b: string, poolFeeRewardTokens: Map<string, Map<string, string>>): Promise<Map<string, Map<string, string>>>;
|
|
3128
|
+
getAllIncentiveRewards(lock_incentive_tokens: Map<LockID, string[]>): Promise<Map<LockID, Map<PoolID, Coin[]>>>;
|
|
3129
|
+
_getIncentiveRewards(lock_id: string, incentive_tokens: string[], tx?: Transaction): Transaction;
|
|
3130
|
+
_getIncentiveRewardsInner(locksId: string, incentive_tokens: string[], tx?: Transaction): Transaction;
|
|
3131
|
+
_parseIncentiveRewards(tx: Transaction): Promise<Map<LockID, Map<PoolID, Coin[]>>>;
|
|
3112
3132
|
getPoolIncentiveRewards(lock_id: string, incentive_tokens: string[]): Promise<Map<string, Map<string, string>>>;
|
|
3113
3133
|
_getPoolIncentiveRewards(locksId: string, incentive_tokens: string[], poolBribeRewardTokens: Map<string, Map<string, string>>): Promise<Map<string, Map<string, string>>>;
|
|
3114
3134
|
getPoolBribeRewardTokens(pool_id: string): Promise<Map<string, string[]>>;
|
|
@@ -3352,6 +3372,7 @@ declare class GaugeModule implements IModule {
|
|
|
3352
3372
|
getPoolCoins(pools: string[]): Promise<Map<string, string[]>>;
|
|
3353
3373
|
getEmissions(): Promise<EpochEmission>;
|
|
3354
3374
|
getRewardByPosition(params: GetRewardByPosition): Promise<Transaction>;
|
|
3375
|
+
getAllRewardByPositions(paramsList: GetRewardByPosition[]): Promise<Transaction>;
|
|
3355
3376
|
getEpochRewardByPool(pool: string, incentive_tokens: string[]): Promise<Map<string, string>>;
|
|
3356
3377
|
}
|
|
3357
3378
|
|
package/dist/index.js
CHANGED
|
@@ -7594,6 +7594,57 @@ var LockModule = class {
|
|
|
7594
7594
|
}
|
|
7595
7595
|
return locksInfo;
|
|
7596
7596
|
}
|
|
7597
|
+
async locksOfUserV2(user) {
|
|
7598
|
+
const locksInfo = { owner: user, lockInfo: [] };
|
|
7599
|
+
const { distribution } = this._sdk.sdkOptions;
|
|
7600
|
+
const { magma_token } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
7601
|
+
const ownerRes = await this._sdk.fullClient.getOwnedObjectsByPage(user, {
|
|
7602
|
+
options: { showType: true, showContent: true, showDisplay: true, showOwner: true },
|
|
7603
|
+
filter: {
|
|
7604
|
+
MatchAll: [{ Package: distribution.package_id }, { StructType: `${distribution.package_id}::voting_escrow::Lock` }]
|
|
7605
|
+
}
|
|
7606
|
+
});
|
|
7607
|
+
const ids = ownerRes.data.map((item) => item.data.content.id.id);
|
|
7608
|
+
const lockSummary = await this.getAllLockSummary(ids);
|
|
7609
|
+
const lockIncentiveTokens = await this.getAllBribeRewardTokensOfLock(ids);
|
|
7610
|
+
const lockFeeTokens = await this.getAllVotingFeeRewardTokens(ids);
|
|
7611
|
+
const poolIncentiveRewards = await this.getAllIncentiveRewards(lockIncentiveTokens);
|
|
7612
|
+
const poolFeeRewards = await this.getAllFeeRewards(lockFeeTokens);
|
|
7613
|
+
for (const item of ownerRes.data) {
|
|
7614
|
+
const { fields } = item.data.content;
|
|
7615
|
+
const lock_id = fields.id.id;
|
|
7616
|
+
const votingRewards = /* @__PURE__ */ new Map();
|
|
7617
|
+
poolIncentiveRewards.get(lock_id)?.forEach((value, pool) => {
|
|
7618
|
+
if (!votingRewards.has(pool)) {
|
|
7619
|
+
votingRewards.set(pool, []);
|
|
7620
|
+
}
|
|
7621
|
+
votingRewards.get(pool)?.push(...value);
|
|
7622
|
+
});
|
|
7623
|
+
poolFeeRewards.get(lock_id)?.forEach((value, pool) => {
|
|
7624
|
+
if (!votingRewards.has(pool)) {
|
|
7625
|
+
votingRewards.set(pool, []);
|
|
7626
|
+
}
|
|
7627
|
+
votingRewards.get(pool)?.push(...value);
|
|
7628
|
+
});
|
|
7629
|
+
const lockInfo = {
|
|
7630
|
+
lock_id,
|
|
7631
|
+
amount: fields.amount,
|
|
7632
|
+
start: fields.start,
|
|
7633
|
+
end: fields.end,
|
|
7634
|
+
permanent: fields.permanent,
|
|
7635
|
+
rebase_amount: {
|
|
7636
|
+
kind: "rebaseCoin" /* RebaseCoin */,
|
|
7637
|
+
token_addr: magma_token,
|
|
7638
|
+
amount: lockSummary.get(lock_id)?.reward_distributor_claimable || "0"
|
|
7639
|
+
},
|
|
7640
|
+
voting_power: lockSummary.get(lock_id)?.voting_power || "0",
|
|
7641
|
+
// pool => incentive/fee => amount
|
|
7642
|
+
voting_rewards: votingRewards
|
|
7643
|
+
};
|
|
7644
|
+
locksInfo.lockInfo.push(lockInfo);
|
|
7645
|
+
}
|
|
7646
|
+
return locksInfo;
|
|
7647
|
+
}
|
|
7597
7648
|
async locksOfUser(user) {
|
|
7598
7649
|
const locksInfo = { owner: user, lockInfo: [] };
|
|
7599
7650
|
const { distribution } = this._sdk.sdkOptions;
|
|
@@ -7786,6 +7837,57 @@ var LockModule = class {
|
|
|
7786
7837
|
});
|
|
7787
7838
|
return res;
|
|
7788
7839
|
}
|
|
7840
|
+
// Return: lock_id => ALockSummary
|
|
7841
|
+
async getAllLockSummary(lock_ids) {
|
|
7842
|
+
let tx = new import_transactions9.Transaction();
|
|
7843
|
+
for (const lock_id of lock_ids) {
|
|
7844
|
+
tx = await this._aLockSummary(lock_id, tx);
|
|
7845
|
+
}
|
|
7846
|
+
return this._parseLockSummary(tx);
|
|
7847
|
+
}
|
|
7848
|
+
async _aLockSummary(lock_id, tx) {
|
|
7849
|
+
tx = tx || new import_transactions9.Transaction();
|
|
7850
|
+
const { integrate, simulationAccount } = this.sdk.sdkOptions;
|
|
7851
|
+
const { voting_escrow_id, magma_token, voter_id, reward_distributor_id } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
7852
|
+
const typeArguments = [magma_token];
|
|
7853
|
+
if (!checkInvalidSuiAddress(simulationAccount.address)) {
|
|
7854
|
+
throw Error("this config simulationAccount is not set right");
|
|
7855
|
+
}
|
|
7856
|
+
const args = [
|
|
7857
|
+
tx.object(voter_id),
|
|
7858
|
+
tx.object(voting_escrow_id),
|
|
7859
|
+
tx.object(reward_distributor_id),
|
|
7860
|
+
tx.object(lock_id),
|
|
7861
|
+
tx.object(CLOCK_ADDRESS)
|
|
7862
|
+
];
|
|
7863
|
+
tx.moveCall({
|
|
7864
|
+
target: `${integrate.published_at}::${VotingEscrow}::lock_summary`,
|
|
7865
|
+
arguments: args,
|
|
7866
|
+
typeArguments
|
|
7867
|
+
});
|
|
7868
|
+
return tx;
|
|
7869
|
+
}
|
|
7870
|
+
async _parseLockSummary(tx) {
|
|
7871
|
+
const { simulationAccount } = this.sdk.sdkOptions;
|
|
7872
|
+
const simulateRes = await this.sdk.fullClient.devInspectTransactionBlock({
|
|
7873
|
+
transactionBlock: tx,
|
|
7874
|
+
sender: simulationAccount.address
|
|
7875
|
+
});
|
|
7876
|
+
if (simulateRes.error != null) {
|
|
7877
|
+
throw new Error(`lock_summary error code: ${simulateRes.error ?? "unknown error"}`);
|
|
7878
|
+
}
|
|
7879
|
+
const res = /* @__PURE__ */ new Map();
|
|
7880
|
+
simulateRes.events?.forEach((item) => {
|
|
7881
|
+
if (extractStructTagFromType(item.type).name === `LockSummary`) {
|
|
7882
|
+
res.set(item.parsedJson.lock_id, {
|
|
7883
|
+
fee_incentive_total: item.parsedJson.fee_incentive_total,
|
|
7884
|
+
reward_distributor_claimable: item.parsedJson.reward_distributor_claimable,
|
|
7885
|
+
voting_power: item.parsedJson.voting_power
|
|
7886
|
+
});
|
|
7887
|
+
}
|
|
7888
|
+
});
|
|
7889
|
+
return res;
|
|
7890
|
+
}
|
|
7789
7891
|
async allLockSummary() {
|
|
7790
7892
|
const tx = new import_transactions9.Transaction();
|
|
7791
7893
|
const { integrate, simulationAccount } = this.sdk.sdkOptions;
|
|
@@ -7866,6 +7968,54 @@ var LockModule = class {
|
|
|
7866
7968
|
});
|
|
7867
7969
|
return poolWeights;
|
|
7868
7970
|
}
|
|
7971
|
+
async getAllVotingFeeRewardTokens(lock_ids) {
|
|
7972
|
+
let tx = new import_transactions9.Transaction();
|
|
7973
|
+
for (const lock_id of lock_ids) {
|
|
7974
|
+
tx = await this._getVotingFeeRewardTokens(lock_id, tx);
|
|
7975
|
+
}
|
|
7976
|
+
return this._parseVotingFeeRewardTokens(tx);
|
|
7977
|
+
}
|
|
7978
|
+
async _getVotingFeeRewardTokens(lock_id, tx) {
|
|
7979
|
+
tx = tx || new import_transactions9.Transaction();
|
|
7980
|
+
const { integrate, simulationAccount } = this.sdk.sdkOptions;
|
|
7981
|
+
const { magma_token, voter_id } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
7982
|
+
const typeArguments = [magma_token];
|
|
7983
|
+
const args = [tx.object(voter_id), tx.object(lock_id)];
|
|
7984
|
+
if (!checkInvalidSuiAddress(simulationAccount.address)) {
|
|
7985
|
+
throw Error("this config simulationAccount is not set right");
|
|
7986
|
+
}
|
|
7987
|
+
tx.moveCall({
|
|
7988
|
+
target: `${integrate.published_at}::${Voter}::get_voting_fee_reward_tokens`,
|
|
7989
|
+
arguments: args,
|
|
7990
|
+
typeArguments
|
|
7991
|
+
});
|
|
7992
|
+
return tx;
|
|
7993
|
+
}
|
|
7994
|
+
async _parseVotingFeeRewardTokens(tx) {
|
|
7995
|
+
const { simulationAccount } = this.sdk.sdkOptions;
|
|
7996
|
+
const simulateRes = await this.sdk.fullClient.devInspectTransactionBlock({
|
|
7997
|
+
transactionBlock: tx,
|
|
7998
|
+
sender: simulationAccount.address
|
|
7999
|
+
});
|
|
8000
|
+
if (simulateRes.error != null) {
|
|
8001
|
+
throw new Error(`all_lock_summary error code: ${simulateRes.error ?? "unknown error"}`);
|
|
8002
|
+
}
|
|
8003
|
+
const poolFeeRewardTokens = /* @__PURE__ */ new Map();
|
|
8004
|
+
simulateRes.events?.forEach((event) => {
|
|
8005
|
+
if (extractStructTagFromType(event.type).name === `EventFeeRewardTokens`) {
|
|
8006
|
+
const { lock_id } = event.parsedJson;
|
|
8007
|
+
if (!poolFeeRewardTokens.has(lock_id)) {
|
|
8008
|
+
poolFeeRewardTokens.set(lock_id, []);
|
|
8009
|
+
}
|
|
8010
|
+
event.parsedJson.list.contents.forEach((poolTokens) => {
|
|
8011
|
+
poolTokens.value.forEach((token) => {
|
|
8012
|
+
poolFeeRewardTokens.get(lock_id)?.push(token.name);
|
|
8013
|
+
});
|
|
8014
|
+
});
|
|
8015
|
+
}
|
|
8016
|
+
});
|
|
8017
|
+
return poolFeeRewardTokens;
|
|
8018
|
+
}
|
|
7869
8019
|
async getVotingFeeRewardTokens(lock_id) {
|
|
7870
8020
|
const tx = new import_transactions9.Transaction();
|
|
7871
8021
|
const { integrate, simulationAccount } = this.sdk.sdkOptions;
|
|
@@ -7889,7 +8039,7 @@ var LockModule = class {
|
|
|
7889
8039
|
}
|
|
7890
8040
|
const poolRewardTokens = /* @__PURE__ */ new Map();
|
|
7891
8041
|
simulateRes.events?.forEach((item) => {
|
|
7892
|
-
if (extractStructTagFromType(item.type).name === `
|
|
8042
|
+
if (extractStructTagFromType(item.type).name === `EventFeeRewardTokens`) {
|
|
7893
8043
|
item.parsedJson.list.contents.forEach((poolTokens) => {
|
|
7894
8044
|
if (!poolRewardTokens.has(poolTokens.key)) {
|
|
7895
8045
|
poolRewardTokens.set(poolTokens.key, []);
|
|
@@ -7902,20 +8052,70 @@ var LockModule = class {
|
|
|
7902
8052
|
});
|
|
7903
8053
|
return poolRewardTokens;
|
|
7904
8054
|
}
|
|
7905
|
-
|
|
7906
|
-
|
|
8055
|
+
// tokens
|
|
8056
|
+
async getAllBribeRewardTokensOfLock(lock_ids) {
|
|
8057
|
+
let tx = new import_transactions9.Transaction();
|
|
8058
|
+
for (const lock_id of lock_ids) {
|
|
8059
|
+
tx = await this._getVotingBribeRewardTokens(lock_id, tx);
|
|
8060
|
+
}
|
|
8061
|
+
return this._parseVotingBribeRewardTokens(tx);
|
|
8062
|
+
}
|
|
8063
|
+
async _getVotingBribeRewardTokens(lock_id, tx) {
|
|
8064
|
+
tx = tx || new import_transactions9.Transaction();
|
|
7907
8065
|
const { integrate, simulationAccount } = this.sdk.sdkOptions;
|
|
7908
8066
|
const { magma_token, voter_id } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
7909
8067
|
const typeArguments = [magma_token];
|
|
8068
|
+
if (!checkInvalidSuiAddress(simulationAccount.address)) {
|
|
8069
|
+
throw Error("this config simulationAccount is not set right");
|
|
8070
|
+
}
|
|
7910
8071
|
const args = [tx.object(voter_id), tx.object(lock_id)];
|
|
7911
8072
|
tx.moveCall({
|
|
7912
8073
|
target: `${integrate.published_at}::${Voter}::get_voting_bribe_reward_tokens`,
|
|
7913
8074
|
arguments: args,
|
|
7914
8075
|
typeArguments
|
|
7915
8076
|
});
|
|
8077
|
+
return tx;
|
|
8078
|
+
}
|
|
8079
|
+
async _parseVotingBribeRewardTokens(tx) {
|
|
8080
|
+
const { simulationAccount } = this.sdk.sdkOptions;
|
|
8081
|
+
const simulateRes = await this.sdk.fullClient.devInspectTransactionBlock({
|
|
8082
|
+
transactionBlock: tx,
|
|
8083
|
+
sender: simulationAccount.address
|
|
8084
|
+
});
|
|
8085
|
+
if (simulateRes.error != null) {
|
|
8086
|
+
throw new Error(`all_lock_summary error code: ${simulateRes.error ?? "unknown error"}`);
|
|
8087
|
+
}
|
|
8088
|
+
const poolBirbeRewardTokens = /* @__PURE__ */ new Map();
|
|
8089
|
+
simulateRes.events?.forEach((event) => {
|
|
8090
|
+
if (extractStructTagFromType(event.type).name === `EventBribeRewardTokens`) {
|
|
8091
|
+
const { lock_id } = event.parsedJson;
|
|
8092
|
+
if (!poolBirbeRewardTokens.has(lock_id)) {
|
|
8093
|
+
poolBirbeRewardTokens.set(lock_id, []);
|
|
8094
|
+
}
|
|
8095
|
+
event.parsedJson.list.contents.forEach((poolTokens) => {
|
|
8096
|
+
poolTokens.value.forEach((token) => {
|
|
8097
|
+
poolBirbeRewardTokens.get(lock_id)?.push(token.name);
|
|
8098
|
+
});
|
|
8099
|
+
});
|
|
8100
|
+
}
|
|
8101
|
+
});
|
|
8102
|
+
return poolBirbeRewardTokens;
|
|
8103
|
+
}
|
|
8104
|
+
// Return PoolId => tokens
|
|
8105
|
+
async getVotingBribeRewardTokens(lock_id) {
|
|
8106
|
+
const tx = new import_transactions9.Transaction();
|
|
8107
|
+
const { integrate, simulationAccount } = this.sdk.sdkOptions;
|
|
8108
|
+
const { magma_token, voter_id } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
8109
|
+
const typeArguments = [magma_token];
|
|
7916
8110
|
if (!checkInvalidSuiAddress(simulationAccount.address)) {
|
|
7917
8111
|
throw Error("this config simulationAccount is not set right");
|
|
7918
8112
|
}
|
|
8113
|
+
const args = [tx.object(voter_id), tx.object(lock_id)];
|
|
8114
|
+
tx.moveCall({
|
|
8115
|
+
target: `${integrate.published_at}::${Voter}::get_voting_bribe_reward_tokens`,
|
|
8116
|
+
arguments: args,
|
|
8117
|
+
typeArguments
|
|
8118
|
+
});
|
|
7919
8119
|
const simulateRes = await this.sdk.fullClient.devInspectTransactionBlock({
|
|
7920
8120
|
transactionBlock: tx,
|
|
7921
8121
|
sender: simulationAccount.address
|
|
@@ -7925,7 +8125,7 @@ var LockModule = class {
|
|
|
7925
8125
|
}
|
|
7926
8126
|
const poolBirbeRewardTokens = /* @__PURE__ */ new Map();
|
|
7927
8127
|
simulateRes.events?.forEach((item) => {
|
|
7928
|
-
if (extractStructTagFromType(item.type).name === `
|
|
8128
|
+
if (extractStructTagFromType(item.type).name === `EventBribeRewardTokens`) {
|
|
7929
8129
|
item.parsedJson.list.contents.forEach((poolTokens) => {
|
|
7930
8130
|
if (!poolBirbeRewardTokens.has(poolTokens.key)) {
|
|
7931
8131
|
poolBirbeRewardTokens.set(poolTokens.key, []);
|
|
@@ -7938,6 +8138,68 @@ var LockModule = class {
|
|
|
7938
8138
|
});
|
|
7939
8139
|
return poolBirbeRewardTokens;
|
|
7940
8140
|
}
|
|
8141
|
+
async getAllFeeRewards(fee_tokens) {
|
|
8142
|
+
let tx = new import_transactions9.Transaction();
|
|
8143
|
+
fee_tokens.forEach((tokens, lock_id) => {
|
|
8144
|
+
tx = this._getFeeRewards(lock_id, tokens, tx);
|
|
8145
|
+
});
|
|
8146
|
+
return await this._parseFeeRewards(tx);
|
|
8147
|
+
}
|
|
8148
|
+
_getFeeRewards(lock_id, fee_tokens, tx) {
|
|
8149
|
+
if (fee_tokens.length % 2 !== 0) {
|
|
8150
|
+
fee_tokens.push(fee_tokens[0]);
|
|
8151
|
+
}
|
|
8152
|
+
for (let i = 0; i + 1 < fee_tokens.length; i += 2) {
|
|
8153
|
+
tx = this._getFeeRewardsInner(lock_id, fee_tokens[i], fee_tokens[i + 1], tx);
|
|
8154
|
+
}
|
|
8155
|
+
return tx;
|
|
8156
|
+
}
|
|
8157
|
+
_getFeeRewardsInner(lock_id, token_a, token_b, tx) {
|
|
8158
|
+
tx = tx || new import_transactions9.Transaction();
|
|
8159
|
+
const { integrate } = this.sdk.sdkOptions;
|
|
8160
|
+
const { magma_token, voter_id } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
8161
|
+
const typeArguments = [magma_token, token_a, token_b];
|
|
8162
|
+
const args = [tx.object(voter_id), tx.object(lock_id), tx.object(CLOCK_ADDRESS)];
|
|
8163
|
+
const targetFunc = `${integrate.published_at}::${Voter}::claimable_voting_fee_rewards`;
|
|
8164
|
+
tx.moveCall({
|
|
8165
|
+
target: targetFunc,
|
|
8166
|
+
arguments: args,
|
|
8167
|
+
typeArguments
|
|
8168
|
+
});
|
|
8169
|
+
return tx;
|
|
8170
|
+
}
|
|
8171
|
+
async _parseFeeRewards(tx) {
|
|
8172
|
+
const { simulationAccount } = this.sdk.sdkOptions;
|
|
8173
|
+
const simulateRes = await this.sdk.fullClient.devInspectTransactionBlock({
|
|
8174
|
+
transactionBlock: tx,
|
|
8175
|
+
sender: simulationAccount.address
|
|
8176
|
+
});
|
|
8177
|
+
if (simulateRes.error != null) {
|
|
8178
|
+
throw new Error(`getPoolIncentiveRewards error code: ${simulateRes.error ?? "unknown error"}`);
|
|
8179
|
+
}
|
|
8180
|
+
const poolFeeRewardTokens = /* @__PURE__ */ new Map();
|
|
8181
|
+
simulateRes.events?.forEach((event) => {
|
|
8182
|
+
if (extractStructTagFromType(event.type).name === `ClaimableVotingFee`) {
|
|
8183
|
+
const { lock_id } = event.parsedJson;
|
|
8184
|
+
if (!poolFeeRewardTokens.has(lock_id)) {
|
|
8185
|
+
poolFeeRewardTokens.set(lock_id, /* @__PURE__ */ new Map());
|
|
8186
|
+
}
|
|
8187
|
+
event.parsedJson.list.contents.forEach((rewardTokens) => {
|
|
8188
|
+
rewardTokens.value.contents.forEach((token) => {
|
|
8189
|
+
if (!poolFeeRewardTokens.get(lock_id)?.has(rewardTokens.key.name)) {
|
|
8190
|
+
poolFeeRewardTokens.get(lock_id)?.set(rewardTokens.key.name, []);
|
|
8191
|
+
}
|
|
8192
|
+
poolFeeRewardTokens.get(lock_id)?.get(rewardTokens.key.name)?.push({
|
|
8193
|
+
kind: "incentiveCoin" /* Incentive */,
|
|
8194
|
+
token_addr: token.key,
|
|
8195
|
+
amount: token.value
|
|
8196
|
+
});
|
|
8197
|
+
});
|
|
8198
|
+
});
|
|
8199
|
+
}
|
|
8200
|
+
});
|
|
8201
|
+
return poolFeeRewardTokens;
|
|
8202
|
+
}
|
|
7941
8203
|
async getPoolFeeRewards(lock_id, tokens) {
|
|
7942
8204
|
const poolFeeRewardTokens = /* @__PURE__ */ new Map();
|
|
7943
8205
|
if (tokens.length === 0) {
|
|
@@ -7988,6 +8250,78 @@ var LockModule = class {
|
|
|
7988
8250
|
});
|
|
7989
8251
|
return poolFeeRewardTokens;
|
|
7990
8252
|
}
|
|
8253
|
+
// params: lock_id => incentive_tokens
|
|
8254
|
+
// lock_id => Pool => rewardTokens
|
|
8255
|
+
async getAllIncentiveRewards(lock_incentive_tokens) {
|
|
8256
|
+
let tx = new import_transactions9.Transaction();
|
|
8257
|
+
lock_incentive_tokens.forEach((tokens, lock_id) => {
|
|
8258
|
+
tx = this._getIncentiveRewards(lock_id, tokens, tx);
|
|
8259
|
+
});
|
|
8260
|
+
return await this._parseIncentiveRewards(tx);
|
|
8261
|
+
}
|
|
8262
|
+
_getIncentiveRewards(lock_id, incentive_tokens, tx) {
|
|
8263
|
+
let i = 0;
|
|
8264
|
+
for (; i + 3 < incentive_tokens.length; i += 3) {
|
|
8265
|
+
this._getIncentiveRewardsInner(lock_id, incentive_tokens.slice(i, i + 3), tx);
|
|
8266
|
+
}
|
|
8267
|
+
return this._getIncentiveRewardsInner(lock_id, incentive_tokens.slice(i), tx);
|
|
8268
|
+
}
|
|
8269
|
+
_getIncentiveRewardsInner(locksId, incentive_tokens, tx) {
|
|
8270
|
+
tx = tx || new import_transactions9.Transaction();
|
|
8271
|
+
if (incentive_tokens.length > 3) {
|
|
8272
|
+
throw Error("Too many tokens");
|
|
8273
|
+
}
|
|
8274
|
+
const { integrate, simulationAccount } = this.sdk.sdkOptions;
|
|
8275
|
+
const { magma_token, voter_id } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
8276
|
+
const typeArguments = [magma_token, ...incentive_tokens];
|
|
8277
|
+
const args = [tx.object(voter_id), tx.object(locksId), tx.object(CLOCK_ADDRESS)];
|
|
8278
|
+
let targetFunc = `${integrate.published_at}::${Voter}::claimable_voting_bribes_${incentive_tokens.length}`;
|
|
8279
|
+
if (incentive_tokens.length === 1) {
|
|
8280
|
+
targetFunc = `${integrate.published_at}::${Voter}::claimable_voting_bribes`;
|
|
8281
|
+
}
|
|
8282
|
+
if (!checkInvalidSuiAddress(simulationAccount.address)) {
|
|
8283
|
+
throw Error("this config simulationAccount is not set right");
|
|
8284
|
+
}
|
|
8285
|
+
tx.moveCall({
|
|
8286
|
+
target: targetFunc,
|
|
8287
|
+
arguments: args,
|
|
8288
|
+
typeArguments
|
|
8289
|
+
});
|
|
8290
|
+
return tx;
|
|
8291
|
+
}
|
|
8292
|
+
async _parseIncentiveRewards(tx) {
|
|
8293
|
+
const { simulationAccount } = this.sdk.sdkOptions;
|
|
8294
|
+
const simulateRes = await this.sdk.fullClient.devInspectTransactionBlock({
|
|
8295
|
+
transactionBlock: tx,
|
|
8296
|
+
sender: simulationAccount.address
|
|
8297
|
+
});
|
|
8298
|
+
if (simulateRes.error != null) {
|
|
8299
|
+
throw new Error(`getPoolIncentiveRewards error code: ${simulateRes.error ?? "unknown error"}`);
|
|
8300
|
+
}
|
|
8301
|
+
const poolBribeRewardTokens = /* @__PURE__ */ new Map();
|
|
8302
|
+
simulateRes.events?.forEach((event) => {
|
|
8303
|
+
if (extractStructTagFromType(event.type).name === `ClaimableVotingBribes`) {
|
|
8304
|
+
const { lock_id } = event.parsedJson;
|
|
8305
|
+
if (!poolBribeRewardTokens.has(lock_id)) {
|
|
8306
|
+
poolBribeRewardTokens.set(lock_id, /* @__PURE__ */ new Map());
|
|
8307
|
+
}
|
|
8308
|
+
event.parsedJson.list.contents.forEach((rewardTokens) => {
|
|
8309
|
+
rewardTokens.value.contents.forEach((token) => {
|
|
8310
|
+
if (!poolBribeRewardTokens.get(lock_id)?.has(rewardTokens.key.name)) {
|
|
8311
|
+
poolBribeRewardTokens.get(lock_id)?.set(rewardTokens.key.name, []);
|
|
8312
|
+
}
|
|
8313
|
+
poolBribeRewardTokens.get(lock_id)?.get(rewardTokens.key.name)?.push({
|
|
8314
|
+
kind: "incentiveCoin" /* Incentive */,
|
|
8315
|
+
token_addr: token.key,
|
|
8316
|
+
amount: token.value
|
|
8317
|
+
});
|
|
8318
|
+
});
|
|
8319
|
+
});
|
|
8320
|
+
}
|
|
8321
|
+
});
|
|
8322
|
+
return poolBribeRewardTokens;
|
|
8323
|
+
}
|
|
8324
|
+
// coin => pool => amount
|
|
7991
8325
|
async getPoolIncentiveRewards(lock_id, incentive_tokens) {
|
|
7992
8326
|
const poolBribeRewardTokens = /* @__PURE__ */ new Map();
|
|
7993
8327
|
if (incentive_tokens.length === 0) {
|
|
@@ -8014,14 +8348,14 @@ var LockModule = class {
|
|
|
8014
8348
|
if (incentive_tokens.length === 1) {
|
|
8015
8349
|
targetFunc = `${integrate.published_at}::${Voter}::claimable_voting_bribes`;
|
|
8016
8350
|
}
|
|
8351
|
+
if (!checkInvalidSuiAddress(simulationAccount.address)) {
|
|
8352
|
+
throw Error("this config simulationAccount is not set right");
|
|
8353
|
+
}
|
|
8017
8354
|
tx.moveCall({
|
|
8018
8355
|
target: targetFunc,
|
|
8019
8356
|
arguments: args,
|
|
8020
8357
|
typeArguments
|
|
8021
8358
|
});
|
|
8022
|
-
if (!checkInvalidSuiAddress(simulationAccount.address)) {
|
|
8023
|
-
throw Error("this config simulationAccount is not set right");
|
|
8024
|
-
}
|
|
8025
8359
|
const simulateRes = await this.sdk.fullClient.devInspectTransactionBlock({
|
|
8026
8360
|
transactionBlock: tx,
|
|
8027
8361
|
sender: simulationAccount.address
|
|
@@ -9668,6 +10002,21 @@ var GaugeModule = class {
|
|
|
9668
10002
|
});
|
|
9669
10003
|
return tx;
|
|
9670
10004
|
}
|
|
10005
|
+
async getAllRewardByPositions(paramsList) {
|
|
10006
|
+
const tx = new import_transactions11.Transaction();
|
|
10007
|
+
const { integrate } = this.sdk.sdkOptions;
|
|
10008
|
+
const { magma_token } = getPackagerConfigs(this.sdk.sdkOptions.magma_config);
|
|
10009
|
+
paramsList.forEach((params) => {
|
|
10010
|
+
const typeArguments = [params.coinTypeA, params.coinTypeB, magma_token];
|
|
10011
|
+
const args = [tx.object(params.gaugeId), tx.object(params.poolId), tx.object(params.positionId), tx.object(CLOCK_ADDRESS)];
|
|
10012
|
+
tx.moveCall({
|
|
10013
|
+
target: `${integrate.published_at}::${Gauge}::get_reward_by_position`,
|
|
10014
|
+
arguments: args,
|
|
10015
|
+
typeArguments
|
|
10016
|
+
});
|
|
10017
|
+
});
|
|
10018
|
+
return tx;
|
|
10019
|
+
}
|
|
9671
10020
|
async getEpochRewardByPool(pool, incentive_tokens) {
|
|
9672
10021
|
const tx = new import_transactions11.Transaction();
|
|
9673
10022
|
const { integrate, simulationAccount } = this.sdk.sdkOptions;
|