@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.
Files changed (70) hide show
  1. package/dist/neutral/block/primitives/balances/balancesStepSummaryFromRange.d.ts +2 -2
  2. package/dist/neutral/block/primitives/balances/balancesStepSummaryFromRange.d.ts.map +1 -1
  3. package/dist/neutral/block/primitives/blockFromBlockNumber.d.ts +2 -2
  4. package/dist/neutral/block/primitives/blockFromBlockNumber.d.ts.map +1 -1
  5. package/dist/neutral/block/primitives/frames/calculateFramesFromRange.d.ts +4 -4
  6. package/dist/neutral/block/primitives/frames/calculateFramesFromRange.d.ts.map +1 -1
  7. package/dist/neutral/block/primitives/frames/deepCalculateFramesFromRange.d.ts +2 -2
  8. package/dist/neutral/block/primitives/frames/deepCalculateFramesFromRange.d.ts.map +1 -1
  9. package/dist/neutral/block/primitives/frames/index.d.ts +0 -1
  10. package/dist/neutral/block/primitives/frames/index.d.ts.map +1 -1
  11. package/dist/neutral/block/primitives/hashFromBlockNumber.d.ts +2 -1
  12. package/dist/neutral/block/primitives/hashFromBlockNumber.d.ts.map +1 -1
  13. package/dist/neutral/block/primitives/transfers/transfersStepSummaryFromRange.d.ts +2 -2
  14. package/dist/neutral/block/primitives/transfers/transfersStepSummaryFromRange.d.ts.map +1 -1
  15. package/dist/neutral/constants.d.ts +3 -0
  16. package/dist/neutral/constants.d.ts.map +1 -0
  17. package/dist/neutral/index.d.ts +2 -1
  18. package/dist/neutral/index.d.ts.map +1 -1
  19. package/dist/neutral/index.mjs +33 -160
  20. package/dist/neutral/index.mjs.map +1 -1
  21. package/dist/neutral/model/ChainContext/ChainStakeContext.d.ts +2 -0
  22. package/dist/neutral/model/ChainContext/ChainStakeContext.d.ts.map +1 -1
  23. package/dist/neutral/multipliers.d.ts +5 -0
  24. package/dist/neutral/multipliers.d.ts.map +1 -0
  25. package/dist/neutral/time/primitives/xl1BlockNumberToEthBlockNumber.d.ts +2 -1
  26. package/dist/neutral/time/primitives/xl1BlockNumberToEthBlockNumber.d.ts.map +1 -1
  27. package/package.json +4 -4
  28. package/src/block/primitives/balances/balancesStepSummaryFromRange.ts +2 -2
  29. package/src/block/primitives/balances/balancesSummary.ts +3 -3
  30. package/src/block/primitives/blockFromBlockNumber.ts +5 -2
  31. package/src/block/primitives/frames/calculateFramesFromRange.ts +10 -11
  32. package/src/block/primitives/frames/deepCalculateFramesFromRange.ts +5 -5
  33. package/src/block/primitives/frames/index.ts +0 -1
  34. package/src/block/primitives/frames/spec/calculateFramesFromRange.spec.ts +10 -7
  35. package/src/block/primitives/frames/spec/deepCalculateFramesFromRange.spec.ts +10 -10
  36. package/src/block/primitives/hashFromBlockNumber.ts +2 -1
  37. package/src/block/primitives/transfers/transfersStepSummaryFromRange.ts +3 -2
  38. package/src/block/primitives/transfers/transfersSummary.ts +3 -3
  39. package/src/constants.ts +2 -0
  40. package/src/index.ts +2 -1
  41. package/src/model/ChainContext/ChainStakeContext.ts +2 -0
  42. package/src/multipliers.ts +16 -0
  43. package/src/time/primitives/xl1BlockNumberToEthBlockNumber.ts +2 -1
  44. package/dist/neutral/block/primitives/frames/BlockNumberRange.d.ts +0 -2
  45. package/dist/neutral/block/primitives/frames/BlockNumberRange.d.ts.map +0 -1
  46. package/dist/neutral/steps/index.d.ts +0 -2
  47. package/dist/neutral/steps/index.d.ts.map +0 -1
  48. package/dist/neutral/steps/primitives/addressStakeWeight.d.ts +0 -4
  49. package/dist/neutral/steps/primitives/addressStakeWeight.d.ts.map +0 -1
  50. package/dist/neutral/steps/primitives/claimedRewards.d.ts +0 -3
  51. package/dist/neutral/steps/primitives/claimedRewards.d.ts.map +0 -1
  52. package/dist/neutral/steps/primitives/index.d.ts +0 -7
  53. package/dist/neutral/steps/primitives/index.d.ts.map +0 -1
  54. package/dist/neutral/steps/primitives/stakersAsOfBlock.d.ts +0 -4
  55. package/dist/neutral/steps/primitives/stakersAsOfBlock.d.ts.map +0 -1
  56. package/dist/neutral/steps/primitives/startingStakes.d.ts +0 -4
  57. package/dist/neutral/steps/primitives/startingStakes.d.ts.map +0 -1
  58. package/dist/neutral/steps/primitives/totalStakeWeight.d.ts +0 -4
  59. package/dist/neutral/steps/primitives/totalStakeWeight.d.ts.map +0 -1
  60. package/dist/neutral/steps/primitives/unclaimedRewards.d.ts +0 -4
  61. package/dist/neutral/steps/primitives/unclaimedRewards.d.ts.map +0 -1
  62. package/src/block/primitives/frames/BlockNumberRange.ts +0 -1
  63. package/src/steps/index.ts +0 -1
  64. package/src/steps/primitives/addressStakeWeight.ts +0 -51
  65. package/src/steps/primitives/claimedRewards.ts +0 -5
  66. package/src/steps/primitives/index.ts +0 -6
  67. package/src/steps/primitives/stakersAsOfBlock.ts +0 -18
  68. package/src/steps/primitives/startingStakes.ts +0 -30
  69. package/src/steps/primitives/totalStakeWeight.ts +0 -35
  70. 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,5 +0,0 @@
1
- import type { Address } from '@xylabs/hex'
2
-
3
- export function claimedRewards(_address: Address) {
4
- return 0n
5
- }
@@ -1,6 +0,0 @@
1
- export * from './addressStakeWeight.ts'
2
- export * from './claimedRewards.ts'
3
- export * from './stakersAsOfBlock.ts'
4
- export * from './startingStakes.ts'
5
- export * from './totalStakeWeight.ts'
6
- export * from './unclaimedRewards.ts'
@@ -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
- }
@@ -1,6 +0,0 @@
1
- import type { Address } from '@xylabs/hex'
2
- import type { Promisable } from '@xylabs/promise'
3
-
4
- export function unclaimedRewards(_address: Address): Promisable<bigint> {
5
- throw new Error('Method not implemented.')
6
- }