@xyo-network/xl1-protocol-sdk 1.15.7 → 1.15.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/neutral/block/primitives/balances/balancesStepSummaryFromRange.d.ts +2 -2
- package/dist/neutral/block/primitives/balances/balancesStepSummaryFromRange.d.ts.map +1 -1
- package/dist/neutral/block/primitives/blockFromBlockNumber.d.ts +2 -2
- package/dist/neutral/block/primitives/blockFromBlockNumber.d.ts.map +1 -1
- package/dist/neutral/block/primitives/frames/calculateFramesFromRange.d.ts +4 -4
- package/dist/neutral/block/primitives/frames/calculateFramesFromRange.d.ts.map +1 -1
- package/dist/neutral/block/primitives/frames/deepCalculateFramesFromRange.d.ts +2 -2
- package/dist/neutral/block/primitives/frames/deepCalculateFramesFromRange.d.ts.map +1 -1
- package/dist/neutral/block/primitives/frames/index.d.ts +0 -1
- package/dist/neutral/block/primitives/frames/index.d.ts.map +1 -1
- package/dist/neutral/block/primitives/hashFromBlockNumber.d.ts +2 -1
- package/dist/neutral/block/primitives/hashFromBlockNumber.d.ts.map +1 -1
- package/dist/neutral/block/primitives/transfers/transfersStepSummaryFromRange.d.ts +2 -2
- package/dist/neutral/block/primitives/transfers/transfersStepSummaryFromRange.d.ts.map +1 -1
- package/dist/neutral/constants.d.ts +3 -0
- package/dist/neutral/constants.d.ts.map +1 -0
- package/dist/neutral/index.d.ts +2 -1
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +33 -160
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/model/ChainContext/ChainStakeContext.d.ts +2 -0
- package/dist/neutral/model/ChainContext/ChainStakeContext.d.ts.map +1 -1
- package/dist/neutral/multipliers.d.ts +5 -0
- package/dist/neutral/multipliers.d.ts.map +1 -0
- package/dist/neutral/time/primitives/xl1BlockNumberToEthBlockNumber.d.ts +2 -1
- package/dist/neutral/time/primitives/xl1BlockNumberToEthBlockNumber.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/block/primitives/balances/balancesStepSummaryFromRange.ts +2 -2
- package/src/block/primitives/balances/balancesSummary.ts +3 -3
- package/src/block/primitives/blockFromBlockNumber.ts +5 -2
- package/src/block/primitives/frames/calculateFramesFromRange.ts +10 -11
- package/src/block/primitives/frames/deepCalculateFramesFromRange.ts +5 -5
- package/src/block/primitives/frames/index.ts +0 -1
- package/src/block/primitives/frames/spec/calculateFramesFromRange.spec.ts +10 -7
- package/src/block/primitives/frames/spec/deepCalculateFramesFromRange.spec.ts +10 -10
- package/src/block/primitives/hashFromBlockNumber.ts +2 -1
- package/src/block/primitives/transfers/transfersStepSummaryFromRange.ts +3 -2
- package/src/block/primitives/transfers/transfersSummary.ts +3 -3
- package/src/constants.ts +2 -0
- package/src/index.ts +2 -1
- package/src/model/ChainContext/ChainStakeContext.ts +2 -0
- package/src/multipliers.ts +16 -0
- package/src/time/primitives/xl1BlockNumberToEthBlockNumber.ts +2 -1
- package/dist/neutral/block/primitives/frames/BlockNumberRange.d.ts +0 -2
- package/dist/neutral/block/primitives/frames/BlockNumberRange.d.ts.map +0 -1
- package/dist/neutral/steps/index.d.ts +0 -2
- package/dist/neutral/steps/index.d.ts.map +0 -1
- package/dist/neutral/steps/primitives/addressStakeWeight.d.ts +0 -4
- package/dist/neutral/steps/primitives/addressStakeWeight.d.ts.map +0 -1
- package/dist/neutral/steps/primitives/claimedRewards.d.ts +0 -3
- package/dist/neutral/steps/primitives/claimedRewards.d.ts.map +0 -1
- package/dist/neutral/steps/primitives/index.d.ts +0 -7
- package/dist/neutral/steps/primitives/index.d.ts.map +0 -1
- package/dist/neutral/steps/primitives/stakersAsOfBlock.d.ts +0 -4
- package/dist/neutral/steps/primitives/stakersAsOfBlock.d.ts.map +0 -1
- package/dist/neutral/steps/primitives/startingStakes.d.ts +0 -4
- package/dist/neutral/steps/primitives/startingStakes.d.ts.map +0 -1
- package/dist/neutral/steps/primitives/totalStakeWeight.d.ts +0 -4
- package/dist/neutral/steps/primitives/totalStakeWeight.d.ts.map +0 -1
- package/dist/neutral/steps/primitives/unclaimedRewards.d.ts +0 -4
- package/dist/neutral/steps/primitives/unclaimedRewards.d.ts.map +0 -1
- package/src/block/primitives/frames/BlockNumberRange.ts +0 -1
- package/src/steps/index.ts +0 -1
- package/src/steps/primitives/addressStakeWeight.ts +0 -51
- package/src/steps/primitives/claimedRewards.ts +0 -5
- package/src/steps/primitives/index.ts +0 -6
- package/src/steps/primitives/stakersAsOfBlock.ts +0 -18
- package/src/steps/primitives/startingStakes.ts +0 -30
- package/src/steps/primitives/totalStakeWeight.ts +0 -35
- package/src/steps/primitives/unclaimedRewards.ts +0 -6
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { type Address, toAddress } from '@xylabs/hex'
|
|
2
|
-
import type { AddressStakingV2 } from '@xyo-network/typechain'
|
|
3
|
-
import { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol'
|
|
4
|
-
|
|
5
|
-
export async function addressStakeWeight(
|
|
6
|
-
stakeContract: AddressStakingV2,
|
|
7
|
-
staked: Address,
|
|
8
|
-
by: Address,
|
|
9
|
-
startEthBlock: number,
|
|
10
|
-
endEthBlock: number,
|
|
11
|
-
): Promise<bigint> {
|
|
12
|
-
const stakeAddedFilter = stakeContract.filters.StakeAdded(`0x${XYO_NETWORK_STAKING_ADDRESS}`, by)
|
|
13
|
-
const stakeAddedEvents = await stakeContract.queryFilter(stakeAddedFilter, startEthBlock, endEthBlock)
|
|
14
|
-
|
|
15
|
-
const stakeRemovedFilter = stakeContract.filters.StakeRemoved(`0x${XYO_NETWORK_STAKING_ADDRESS}`, by)
|
|
16
|
-
const stakeRemovedEvents = await stakeContract.queryFilter(stakeRemovedFilter, startEthBlock, endEthBlock)
|
|
17
|
-
|
|
18
|
-
const accountStakes: Awaited<ReturnType<typeof stakeContract.getStake>> [] = []
|
|
19
|
-
const accountStakeCount = await stakeContract.getStakeCountForAddress(`0x${by}`, { blockTag: startEthBlock - 1 })
|
|
20
|
-
for (let i = 0; i < accountStakeCount; i++) {
|
|
21
|
-
try {
|
|
22
|
-
const stake = await stakeContract.getStake(`0x${by}`, i, { blockTag: startEthBlock - 1 })
|
|
23
|
-
accountStakes.push(stake)
|
|
24
|
-
} catch {
|
|
25
|
-
break
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
const ethStakedAddress = toAddress(staked, { prefix: false }).toLowerCase()
|
|
29
|
-
const networkStakes = accountStakes.filter(s => s.staked.toLowerCase() === ethStakedAddress)
|
|
30
|
-
let totalStake = 0n
|
|
31
|
-
for (const stake of networkStakes) {
|
|
32
|
-
totalStake += stake.amount
|
|
33
|
-
}
|
|
34
|
-
let totalWeight = 0n
|
|
35
|
-
let addIndex = 0
|
|
36
|
-
let removeIndex = 0
|
|
37
|
-
|
|
38
|
-
// add up all the stakes for each block
|
|
39
|
-
for (let i = startEthBlock; i <= endEthBlock; i++) {
|
|
40
|
-
while (addIndex < stakeAddedEvents.length && stakeAddedEvents[addIndex]?.blockNumber === i) {
|
|
41
|
-
totalStake += stakeAddedEvents[addIndex].args.amount
|
|
42
|
-
addIndex++
|
|
43
|
-
}
|
|
44
|
-
while (removeIndex < stakeRemovedEvents.length && stakeRemovedEvents[removeIndex]?.blockNumber === i) {
|
|
45
|
-
totalStake -= stakeRemovedEvents[removeIndex].args.amount
|
|
46
|
-
removeIndex++
|
|
47
|
-
}
|
|
48
|
-
totalWeight += totalStake
|
|
49
|
-
}
|
|
50
|
-
return totalWeight
|
|
51
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { type Address, toAddress } from '@xylabs/hex'
|
|
2
|
-
import type { AddressStakingV2 } from '@xyo-network/typechain'
|
|
3
|
-
|
|
4
|
-
import { startingStakes } from './startingStakes.ts'
|
|
5
|
-
|
|
6
|
-
// NOTE: Do not use the functions in this file yet, they still need to be tested
|
|
7
|
-
|
|
8
|
-
export async function stakersAsOfBlock(stakeContract: AddressStakingV2, staked: Address, ethBlock: number): Promise<Address[]> {
|
|
9
|
-
const stakes = await startingStakes(stakeContract, staked, ethBlock)
|
|
10
|
-
let results: Address[] = []
|
|
11
|
-
for (const [address, amount] of Object.entries(stakes)) {
|
|
12
|
-
if (amount > 0n) {
|
|
13
|
-
results.push(toAddress(address, { prefix: false }))
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return results
|
|
18
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { type Address, toAddress } from '@xylabs/hex'
|
|
2
|
-
import type { AddressStakingV2 } from '@xyo-network/typechain'
|
|
3
|
-
import { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol'
|
|
4
|
-
|
|
5
|
-
export async function startingStakes(stakeContract: AddressStakingV2, staked: Address, ethBlock: number): Promise<Record<Address, bigint>> {
|
|
6
|
-
const stakeAddedFilter = stakeContract.filters.StakeAdded(toAddress(XYO_NETWORK_STAKING_ADDRESS, { prefix: true }))
|
|
7
|
-
const stakeAddedEvents = await stakeContract.queryFilter(stakeAddedFilter, 0, ethBlock)
|
|
8
|
-
|
|
9
|
-
const stakeRemovedFilter = stakeContract.filters.StakeRemoved(`0x${XYO_NETWORK_STAKING_ADDRESS}`)
|
|
10
|
-
const stakeRemovedEvents = await stakeContract.queryFilter(stakeRemovedFilter, 0, ethBlock)
|
|
11
|
-
|
|
12
|
-
const stakes: Record<Address, bigint> = {}
|
|
13
|
-
for (const event of stakeAddedEvents) {
|
|
14
|
-
const by = toAddress(event.args.by.toLowerCase(), { prefix: false })
|
|
15
|
-
stakes[by] = (stakes[by] ?? 0n) + event.args.amount
|
|
16
|
-
}
|
|
17
|
-
for (const event of stakeRemovedEvents) {
|
|
18
|
-
const by = toAddress(event.args.by.toLowerCase(), { prefix: false })
|
|
19
|
-
stakes[by] = (stakes[by] ?? 0n) - event.args.amount
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const filteredStakes: Record<Address, bigint> = {}
|
|
23
|
-
for (const [address, amount] of Object.entries(stakes) as [Address, bigint][]) {
|
|
24
|
-
if (amount > 0n) {
|
|
25
|
-
filteredStakes[address] = amount
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return filteredStakes
|
|
30
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { type Address, toAddress } from '@xylabs/hex'
|
|
2
|
-
import type { AddressStakingV2 } from '@xyo-network/typechain'
|
|
3
|
-
import { XYO_NETWORK_STAKING_ADDRESS } from '@xyo-network/xl1-protocol'
|
|
4
|
-
|
|
5
|
-
import { startingStakes } from './startingStakes.ts'
|
|
6
|
-
|
|
7
|
-
export async function totalStakeWeight(stakeContract: AddressStakingV2, staked: Address, startEthBlock: number, endEthBlock: number): Promise<bigint> {
|
|
8
|
-
const stakeAddedFilter = stakeContract.filters.StakeAdded(`0x${XYO_NETWORK_STAKING_ADDRESS}`)
|
|
9
|
-
const stakeAddedEvents = await stakeContract.queryFilter(stakeAddedFilter, startEthBlock, endEthBlock)
|
|
10
|
-
|
|
11
|
-
const stakeRemovedFilter = stakeContract.filters.StakeRemoved(`0x${XYO_NETWORK_STAKING_ADDRESS}`)
|
|
12
|
-
const stakeRemovedEvents = await stakeContract.queryFilter(stakeRemovedFilter, startEthBlock, endEthBlock)
|
|
13
|
-
|
|
14
|
-
const stakes = await startingStakes(stakeContract, staked, startEthBlock)
|
|
15
|
-
|
|
16
|
-
let totalWeight = 0n
|
|
17
|
-
let addIndex = 0
|
|
18
|
-
let removeIndex = 0
|
|
19
|
-
|
|
20
|
-
// add up all the stakes for each block
|
|
21
|
-
for (let i = startEthBlock; i <= endEthBlock; i++) {
|
|
22
|
-
while (addIndex < stakeAddedEvents.length && stakeAddedEvents[addIndex]?.blockNumber === i) {
|
|
23
|
-
const by = toAddress(stakeAddedEvents[addIndex].args.by.toLowerCase(), { prefix: false })
|
|
24
|
-
stakes[by] = (stakes[by] ?? 0n) + stakeAddedEvents[addIndex].args.amount
|
|
25
|
-
addIndex++
|
|
26
|
-
}
|
|
27
|
-
while (removeIndex < stakeRemovedEvents.length && stakeRemovedEvents[removeIndex]?.blockNumber === i) {
|
|
28
|
-
const by = toAddress(stakeAddedEvents[addIndex].args.by.toLowerCase(), { prefix: false })
|
|
29
|
-
stakes[by] = (stakes[by] ?? 0n) - stakeRemovedEvents[addIndex].args.amount
|
|
30
|
-
removeIndex++
|
|
31
|
-
}
|
|
32
|
-
totalWeight += Object.values(stakes).reduce((a, b) => a + b, 0n)
|
|
33
|
-
}
|
|
34
|
-
return totalWeight
|
|
35
|
-
}
|