
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
@mmt-finance/ve-sdk
Advanced tools
A TypeScript SDK for interacting with the VeMMT protocol.
import { getFullnodeUrl, SuiClient } from '@mysten/sui/client';
import { Transaction } from '@mysten/sui/transactions';
import { VeMMT } from '@mmt-finance/ve-sdk';
const client = new SuiClient({
url: getFullnodeUrl('testnet'),
});
const ve = new VeMMT(client, 'testnet');
// View functions accept optional Transaction (null for new transaction)
const whitelistedIncentives = await ve.getAllWhitelistedIncentives(null);
console.log(JSON.stringify(whitelistedIncentives, null, 2));
import { getFullnodeUrl, SuiClient } from '@mysten/sui/client';
import { Transaction } from '@mysten/sui/transactions';
import { VeMMT } from '@mmt-finance/ve-sdk';
const client = new SuiClient({
url: getFullnodeUrl('testnet'),
});
const ve = new VeMMT(client, 'testnet');
const tx = new Transaction();
// Chain multiple operations on the same transaction
ve.createBond(tx, coinInput, unlockTime, recipient);
ve.addIncentive(tx, gaugeId, incentiveCoin, coinType);
// Execute the transaction
const result = await client.signAndExecuteTransaction({
signer: keypair,
transaction: tx,
});
createGauge(tx, pool, version, coinXType, coinYType)
: create a new gauge for a poolsetGaugePaused(tx, gaugeId, paused)
: pause/unpause a specific gaugesetGlobalPaused(tx, paused)
: pause/unpause the entire system globallyaddIncentiveWhitelist(tx, coinType)
: add a coin type to the incentive whitelistremoveIncentiveWhitelist(tx, coinType)
: remove a coin type from the incentive whitelistaddWhitelistVoter(tx, voter)
: add a voter to the whitelistsetGaugeAdmin(tx, adminCap, newAdmin)
: set the gauge admin addresssetGaugeOperator(tx, adminCap, newOperator)
: set the gauge operator addresssetEpochPrologueMs(tx, prologueMs)
: set the epoch prologue durationsetEpochFinaleMs(tx, finaleMs)
: set the epoch finale durationaddClmmVeCap(tx, veCap)
: add VeCapsetVersion(tx, versionCap, major, minor)
: update the protocol versioncreateBond(tx, coin, unlockAt, recipient)
: create a new normal voting escrow bondcreateMaxBond(tx, coin, recipient)
: create a new max bond voting escrowcreateBondPreview(tx, bondAmount, unlockAt)
[VIEW]: preview what a normal bond would contain without creating itcreateMaxBondPreview(tx, bondAmount)
[VIEW]: preview what a max bond would contain without creating itextend(tx, veId, unlockAt)
: extend the unlock time of a normal bondextendPreview(tx, veId, unlockAt)
[VIEW]: preview what a voting escrow would look like after extending its unlock timesetMaxBond(tx, veId)
: convert a normal bond to max bondsetMaxBondPreview(tx, veId)
[VIEW]: preview what a voting escrow would look like after converting to maximum duration bondsetNormal(tx, veId)
: convert a max bond to normal bondsetNormalPreview(tx, veId, unlockAt)
[VIEW]: preview what a voting escrow would look like after converting from max bond to normal bondunbond(tx, veId, recipient)
: unbond a voting escrow and retrieve MMT tokensclaimFeeForGauge(tx, veId, gaugeId, toEpoch, coinXType, coinYType, recipient)
: claim trading fees for a specific gaugeclaimIncentiveForGauge(tx, veId, gaugeId, toEpoch, coinType, recipient)
: claim incentive rewards for a specific gaugegetAllWhitelistedIncentives(tx)
[VIEW]: get all whitelisted incentive token types from gauge globalsisWhitelistedIncentive(tx, incentiveType)
[VIEW]: check if a specific incentive token type is whitelistedisWhitelistedVoter(tx, voter)
[VIEW]: check if a voter address is whitelistedgetGaugeGlobals(tx)
[VIEW]: get gauge globals datagetGauge(tx, gaugeId)
[VIEW]: get detailed information for a single gaugegetGauges(tx, offset, limit)
[VIEW]: get gauge details with paginationgetGaugeGlobalsRewards(tx)
[VIEW]: get global rewards data for all gaugesgetGaugeId(tx, gaugeId)
[VIEW]: get gauge ID from gauge objectgetPoolId(tx, gaugeId)
[VIEW]: get pool ID associated with the gaugegetCoinXy(tx, gaugeId)
[VIEW]: get coin X and coin Y types for the gaugegetCurrentEpochId(tx, gaugeId)
[VIEW]: get current epoch ID of the gaugegetTotalVotePower(tx, gaugeId)
[VIEW]: get total vote power of the gaugegetIncentiveTypes(tx, gaugeId)
[VIEW]: get all incentive types for the gaugegetEpochHistoryIds(tx, gaugeId)
[VIEW]: get epoch history IDs for the gaugegetPaused(tx, gaugeId)
[VIEW]: check if gauge is pausedgetBalance(tx, gaugeId, coinType)
[VIEW]: get balance of specific coin type in gaugegetIncentiveEpochStart(tx, gaugeId, coinType)
[VIEW]: get incentive epoch start for specific coin typegetCurrentFeeX(tx, gaugeId)
[VIEW]: get current fee X amountgetCurrentFeeY(tx, gaugeId)
[VIEW]: get current fee Y amountgetFeeLastClaimedMs(tx, gaugeId)
[VIEW]: get last fee claimed timestampgetCurrentIncentiveAmount(tx, gaugeId, coinType)
[VIEW]: get current incentive amount for specific coin typeaddIncentive(tx, gaugeId, coin, coinType)
: add incentive tokens to a gaugeinitializeEpochReward(tx, pool, coin, startTime, additionalSeconds, version)
: initialize epoch rewards for a poolupdateEpochReward(tx, pool, coin, additionalSeconds, version)
: update epoch rewards for a poolsyncGauge(tx, gaugeId, pool, version, coinXType, coinYType)
: synchronize a gauge with its corresponding poolchangeVotesBatch(tx, veId, votes)
: change existing votes across multiple gaugesgetUserVotes(tx, veId)
[VIEW]: get all user votes for gaugesgetId(tx, veId)
[VIEW]: get the voting escrow object IDcheckVoteClaimed(tx, veId, gaugeId, targetEpochId)
[VIEW]: verify that rewards have been claimed for a gaugegetVotingEscrow(tx, veId)
[VIEW]: get detailed voting escrow info for a single Voting EscrowgetVotingEscrows(owner, cursor, limit)
[VIEW]: get voting escrow details with cursor-based pagination (same fields as getVotingEscrow
)queryAllVotingEscrows(owner)
[QUERY]: get all voting escrow data with summarygetUserEpochData(veId, gaugeId, epochId)
[VIEW]: get claimable reward data for a specific user, gauge, and epochgetAllUserEpochData(veId)
[VIEW]: get all claimable reward data across all gauges and epochs for a useraddBalance(tx, veId, coin)
: add additional MMT balance to an existing voting escrow bondaddBalancePreview(tx, veId, amount)
[VIEW]: preview what a voting escrow would look like after adding balancemerge(tx, primaryVeId, mergedVeId)
: merge two voting escrow bonds into onemergePreview(tx, primaryVeId, mergedVeId)
[VIEW]: preview what a voting escrow would look like after merging with anothergetMaxBondEpochs(tx)
[VIEW]: get maximum number of epochs allowed for bond locksgetMaxBondMs(tx)
[VIEW]: get maximum bond duration in millisecondsgetMaxBondBonus(tx)
[VIEW]: get max-bond bonus multipliergetVotePowerForRange(tx, amount, calculateAt, unlockAt)
[VIEW]: calculate voting power for a time rangegetVotePowerForEpochId(tx, amount, epochId, unlockAt)
[VIEW]: calculate voting power starting from an epoch idgetVotePowerForMaxBond(tx, amount)
[VIEW]: calculate voting power for max bondgetEffectiveVotePower(tx, votingPower, weight)
[VIEW]: apply weight to voting powergetEffectiveAmount(tx, amount, weight)
[VIEW]: apply weight to amountgetEpochIntervalMs(tx)
[VIEW]: get epoch interval in millisecondsgetEpochPrologueMs(tx)
[VIEW]: get epoch prologue in millisecondsgetEpochFinaleMs(tx)
[VIEW]: get epoch finale in millisecondsgetEpochId(tx, timestampMs)
[VIEW]: get epoch id for a timestampisEpochStart(tx, timestampMs)
[VIEW]: check if timestamp is an epoch startgetEpochStart(tx, epochId)
[VIEW]: get epoch start timestampgetEpochEnd(tx, epochId)
[VIEW]: get epoch end timestampgetEpochMainStart(tx, epochId)
[VIEW]: get main phase start timestampgetEpochFinaleStart(tx, epochId)
[VIEW]: get finale phase start timestampconvertToEpochStart(tx, timestampMs)
[VIEW]: normalize timestamp to epoch startconvertToEpochEnd(tx, timestampMs)
[VIEW]: normalize timestamp to epoch endgetEpochIdsForRange(tx, timestampMs1, timestampMs2)
[VIEW]: get [epochId1, epochId2] for rangegetCurrentEpochInfo(tx)
[VIEW]: get current epoch informationFAQs
Unknown package
The npm package @mmt-finance/ve-sdk receives a total of 8 weekly downloads. As such, @mmt-finance/ve-sdk popularity was classified as not popular.
We found that @mmt-finance/ve-sdk demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.