@xyo-network/xl1-protocol-sdk 1.16.9 → 1.16.10

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 (76) hide show
  1. package/dist/neutral/block/primitives/frames/calculateFramesFromRange.d.ts.map +1 -1
  2. package/dist/neutral/block/primitives/transfers/transfersSummary.d.ts.map +1 -1
  3. package/dist/neutral/config/Config.d.ts +3 -15
  4. package/dist/neutral/config/Config.d.ts.map +1 -1
  5. package/dist/neutral/config/Producer.d.ts +1 -5
  6. package/dist/neutral/config/Producer.d.ts.map +1 -1
  7. package/dist/neutral/config/Validation.d.ts +2 -10
  8. package/dist/neutral/config/Validation.d.ts.map +1 -1
  9. package/dist/neutral/index.mjs +278 -48
  10. package/dist/neutral/index.mjs.map +1 -1
  11. package/dist/neutral/model/ChainContext/ChainStakeContext.d.ts +4 -5
  12. package/dist/neutral/model/ChainContext/ChainStakeContext.d.ts.map +1 -1
  13. package/dist/neutral/model/index.d.ts +0 -2
  14. package/dist/neutral/model/index.d.ts.map +1 -1
  15. package/dist/neutral/payloads/netBalancesForPayloads.d.ts +2 -4
  16. package/dist/neutral/payloads/netBalancesForPayloads.d.ts.map +1 -1
  17. package/dist/neutral/primitives/summary/balances/balancesSummary.d.ts.map +1 -1
  18. package/dist/neutral/primitives/summary/transfers/transfersSummary.d.ts.map +1 -1
  19. package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts +17 -0
  20. package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts.map +1 -0
  21. package/dist/neutral/simple/accountBalance/index.d.ts +2 -0
  22. package/dist/neutral/simple/accountBalance/index.d.ts.map +1 -0
  23. package/dist/neutral/simple/gateway/SimpleXyoGatewayRunner.d.ts.map +1 -1
  24. package/dist/neutral/simple/index.d.ts +2 -0
  25. package/dist/neutral/simple/index.d.ts.map +1 -1
  26. package/dist/neutral/simple/timesync/SimpleTimeSyncViewer.d.ts +15 -0
  27. package/dist/neutral/simple/timesync/SimpleTimeSyncViewer.d.ts.map +1 -0
  28. package/dist/neutral/simple/timesync/index.d.ts +2 -0
  29. package/dist/neutral/simple/timesync/index.d.ts.map +1 -0
  30. package/dist/neutral/viewers/AccountBalance.d.ts +4 -8
  31. package/dist/neutral/viewers/AccountBalance.d.ts.map +1 -1
  32. package/dist/neutral/viewers/Block.d.ts +5 -3
  33. package/dist/neutral/viewers/Block.d.ts.map +1 -1
  34. package/dist/neutral/viewers/Stake.d.ts +21 -1
  35. package/dist/neutral/viewers/Stake.d.ts.map +1 -1
  36. package/dist/neutral/{model → viewers}/StakeEvents.d.ts +1 -1
  37. package/dist/neutral/viewers/StakeEvents.d.ts.map +1 -0
  38. package/dist/neutral/viewers/TimeSync.d.ts +1 -2
  39. package/dist/neutral/viewers/TimeSync.d.ts.map +1 -1
  40. package/dist/neutral/viewers/index.d.ts +1 -0
  41. package/dist/neutral/viewers/index.d.ts.map +1 -1
  42. package/package.json +17 -16
  43. package/src/block/primitives/blockFromBlockNumber.ts +1 -1
  44. package/src/block/primitives/frames/calculateFramesFromRange.ts +3 -2
  45. package/src/block/primitives/transfers/transfersSummary.ts +4 -1
  46. package/src/model/ChainContext/ChainStakeContext.ts +6 -5
  47. package/src/model/index.ts +0 -2
  48. package/src/primitives/step/stepBlockRange.ts +1 -1
  49. package/src/primitives/step/stepTransferIndex.ts +1 -1
  50. package/src/primitives/summary/balances/balancesSummary.ts +4 -1
  51. package/src/primitives/summary/transfers/transfersSummary.ts +4 -1
  52. package/src/simple/accountBalance/SimpleAccountBalanceViewer.ts +124 -0
  53. package/src/simple/accountBalance/index.ts +1 -0
  54. package/src/simple/gateway/SimpleXyoGatewayRunner.ts +1 -2
  55. package/src/simple/index.ts +2 -0
  56. package/src/simple/timesync/SimpleTimeSyncViewer.ts +94 -0
  57. package/src/simple/timesync/index.ts +1 -0
  58. package/src/viewers/AccountBalance.ts +4 -8
  59. package/src/viewers/Block.ts +5 -3
  60. package/src/viewers/Stake.ts +24 -2
  61. package/src/{model → viewers}/StakeEvents.ts +1 -1
  62. package/src/viewers/TimeSync.ts +1 -2
  63. package/src/viewers/index.ts +1 -0
  64. package/dist/neutral/model/ChainStake/ChainStakeRead.d.ts +0 -17
  65. package/dist/neutral/model/ChainStake/ChainStakeRead.d.ts.map +0 -1
  66. package/dist/neutral/model/ChainStake/ChainStakeStatic.d.ts +0 -7
  67. package/dist/neutral/model/ChainStake/ChainStakeStatic.d.ts.map +0 -1
  68. package/dist/neutral/model/ChainStake/ChainStakeWrite.d.ts +0 -6
  69. package/dist/neutral/model/ChainStake/ChainStakeWrite.d.ts.map +0 -1
  70. package/dist/neutral/model/ChainStake/index.d.ts +0 -4
  71. package/dist/neutral/model/ChainStake/index.d.ts.map +0 -1
  72. package/dist/neutral/model/StakeEvents.d.ts.map +0 -1
  73. package/src/model/ChainStake/ChainStakeRead.ts +0 -18
  74. package/src/model/ChainStake/ChainStakeStatic.ts +0 -7
  75. package/src/model/ChainStake/ChainStakeWrite.ts +0 -5
  76. package/src/model/ChainStake/index.ts +0 -3
@@ -0,0 +1,124 @@
1
+ import { assertEx } from '@xylabs/assert'
2
+ import { exists } from '@xylabs/exists'
3
+ import type { Address, Hash } from '@xylabs/hex'
4
+ import { spanRootAsync } from '@xylabs/telemetry'
5
+ import { isDefined } from '@xylabs/typeof'
6
+ import type { Signed } from '@xyo-network/boundwitness-model'
7
+ import type { WithStorageMeta } from '@xyo-network/payload-model'
8
+ import type {
9
+ BlockBoundWitness, Transfer, XL1BlockNumber, XL1BlockRange,
10
+ } from '@xyo-network/xl1-protocol'
11
+ import {
12
+ asRange, asXL1BlockNumber, asXL1BlockRange, AttoXL1,
13
+ StepSizes,
14
+ TransferSchema,
15
+ } from '@xyo-network/xl1-protocol'
16
+
17
+ import { deepCalculateFramesFromRange, transfersStepSummaryFromRange } from '../../block/index.ts'
18
+ import type { BalanceStepSummaryContext, TransfersStepSummaryContext } from '../../model/index.ts'
19
+ import type { TransfersStepSummary } from '../../payloads/index.ts'
20
+ import { balancesSummary } from '../../primitives/index.ts'
21
+ import type {
22
+ AccountBalanceHistoryItem, AccountBalanceViewer, BlockViewer,
23
+ } from '../../viewers/index.ts'
24
+
25
+ export class SimpleAccountBalanceViewer implements AccountBalanceViewer {
26
+ protected readonly blockViewer: BlockViewer
27
+ protected readonly context: BalanceStepSummaryContext
28
+ protected readonly transferContext: TransfersStepSummaryContext
29
+
30
+ constructor(context: BalanceStepSummaryContext, transferContext: TransfersStepSummaryContext, blockViewer: BlockViewer) {
31
+ this.context = context
32
+ this.transferContext = transferContext
33
+ this.blockViewer = blockViewer
34
+ }
35
+
36
+ async accountBalance(address: Address, headOrRange?: XL1BlockRange | Hash): Promise<AttoXL1> {
37
+ const balances = await this.accountBalances([address], headOrRange)
38
+ return balances[address] ?? AttoXL1(0n)
39
+ }
40
+
41
+ async accountBalanceHistory(address: Address, headOrRange?: XL1BlockRange | Hash): Promise<AccountBalanceHistoryItem[]> {
42
+ const range = asRange(headOrRange)
43
+ const startingRange = asXL1BlockRange(range ?? [0, await this.blockViewer.currentBlockNumber()], true)
44
+ const blockNumbers = await this.distillTransferHistory(address, startingRange)
45
+ const blocks = (await Promise.all(blockNumbers.map(async bn => await this.blockViewer.blockByNumber(bn)))).filter(exists)
46
+ const result: AccountBalanceHistoryItem[] = []
47
+ for (const block of blocks) {
48
+ const transferIndexes = block[0].payload_schemas.map((schema, index) => schema === TransferSchema ? index : undefined).filter(exists)
49
+ const transfers = transferIndexes.map((index) => {
50
+ const hash = block[0].payload_hashes[index]
51
+ return assertEx(
52
+ block[1].find(p => p._hash === hash) as WithStorageMeta<Transfer>,
53
+ () => `Error: Could not find Transfer with hash ${hash} in block ${block[0]._hash}`,
54
+ )
55
+ }).filter(exists).filter(t => ((t.from === address) || (isDefined(t.transfers[address]))))
56
+ if (transfers.length === 0) {
57
+ continue
58
+ }
59
+ const pairs: [WithStorageMeta<Signed<BlockBoundWitness>>, WithStorageMeta<Transfer>][] = (transfers.map((transfer) => {
60
+ return [block[0], transfer]
61
+ }))
62
+ result.push(...pairs.map(([block, transfer]) => [block,
63
+ null,
64
+ transfer] satisfies AccountBalanceHistoryItem))
65
+ }
66
+ return result
67
+ }
68
+
69
+ async accountBalances(address: Address[], _headOrRange?: XL1BlockRange | Hash): Promise<Partial<Record<Address, AttoXL1>>> {
70
+ return await spanRootAsync('balances', async () => {
71
+ const summary = await balancesSummary(
72
+ this.context,
73
+ )
74
+ const result: Record<Address, AttoXL1> = {}
75
+ for (const addr of address) {
76
+ const summaryBalance = summary[addr] ?? 0n
77
+ result[addr] = AttoXL1(summaryBalance < 0n ? 0n : summaryBalance)
78
+ }
79
+ return result
80
+ })
81
+ }
82
+
83
+ accountBalancesHistories(_addresses: Address[], _rangeOrHash?: XL1BlockRange | Hash): Promise<Partial<Record<Address, AccountBalanceHistoryItem[]>>> {
84
+ throw new Error('Method not implemented.')
85
+ }
86
+
87
+ private async distillTransferHistory(address: Address, range: XL1BlockRange, max: number = 50): Promise<XL1BlockNumber[]> {
88
+ if ((range[1] - range[0]) <= StepSizes[0] || max <= 1) {
89
+ return Array.from({ length: range[1] - range[0] + 1 }, (_, i) => range[1] - i).slice(0, max).map(n => asXL1BlockNumber(n, true))
90
+ }
91
+ const frames = deepCalculateFramesFromRange(asXL1BlockRange(range, true))
92
+ const transferSummaryPairs = await Promise.all(frames.map(
93
+ async (frame) => {
94
+ return [frame, await transfersStepSummaryFromRange(this.transferContext, frame)]
95
+ },
96
+ )) as [XL1BlockRange, WithStorageMeta<TransfersStepSummary>][]
97
+
98
+ const filteredTransferSummaryPairs = transferSummaryPairs.filter(([_, summary]) => Object.keys(summary.transfers).includes(address))
99
+
100
+ // sort it latest to earliest
101
+ const sortedTransferSummaryPairs = filteredTransferSummaryPairs.toSorted((a, b) => {
102
+ return b[0][1] - a[0][1]
103
+ })
104
+
105
+ const resultBlockNumbers: Set<XL1BlockNumber> = new Set()
106
+ for (const [frame] of sortedTransferSummaryPairs) {
107
+ if ((frame[1] - frame[0] + 1) > StepSizes[0]) {
108
+ const values = await this.distillTransferHistory(address, asXL1BlockRange([frame[0], frame[1] - 1], true), max - resultBlockNumbers.size)
109
+ for (const value of values) {
110
+ resultBlockNumbers.add(value)
111
+ }
112
+ resultBlockNumbers.add(frame[1])
113
+ } else {
114
+ for (let i = frame[0]; i <= frame[1]; i++) {
115
+ resultBlockNumbers.add(i)
116
+ }
117
+ }
118
+ if (resultBlockNumbers.size >= max) {
119
+ break
120
+ }
121
+ }
122
+ return [...resultBlockNumbers].toSorted((a, b) => b - a).slice(0, max)
123
+ }
124
+ }
@@ -0,0 +1 @@
1
+ export * from './SimpleAccountBalanceViewer.ts'
@@ -81,8 +81,7 @@ export class SimpleXyoGatewayRunner implements XyoGatewayRunner {
81
81
  const signedTx = await signer.signTransaction(tx)
82
82
  await this.addPayloadsToDataLakes(signedTx[1])
83
83
  return [await runner.broadcastTransaction(
84
- [await PayloadBuilder.addStorageMeta(signedTx[0]),
85
- await PayloadBuilder.addStorageMeta(signedTx[1])],
84
+ [signedTx[0], signedTx[1]],
86
85
  ), signedTx]
87
86
  }
88
87
 
@@ -1,3 +1,4 @@
1
+ export * from './accountBalance/index.ts'
1
2
  export * from './client/index.ts'
2
3
  export * from './datalake/index.ts'
3
4
  export * from './gateway/index.ts'
@@ -5,3 +6,4 @@ export * from './network/index.ts'
5
6
  export * from './permissions/index.ts'
6
7
  export * from './runner/index.ts'
7
8
  export * from './signer/index.ts'
9
+ export * from './timesync/index.ts'
@@ -0,0 +1,94 @@
1
+ import { assertEx } from '@xylabs/assert'
2
+ import type { Hash } from '@xylabs/hex'
3
+ import { asHash } from '@xylabs/hex'
4
+ import type { Promisable } from '@xylabs/promise'
5
+ import { isDefined } from '@xylabs/typeof'
6
+ import type { TimeDomain, TimePayload } from '@xyo-network/xl1-protocol'
7
+ import {
8
+ asTimePayload, asXL1BlockNumber, TimeSchema,
9
+ } from '@xyo-network/xl1-protocol'
10
+ import type { Provider } from 'ethers'
11
+
12
+ import type { BlockViewer, TimeSyncViewer } from '../../viewers/index.ts'
13
+
14
+ export class SimpleTimeSyncViewer implements TimeSyncViewer {
15
+ protected readonly blockViewer: BlockViewer
16
+ protected readonly ethProvider?: Provider
17
+
18
+ constructor(blockViewer: BlockViewer, ethProvider?: Provider) {
19
+ this.blockViewer = blockViewer
20
+ this.ethProvider = ethProvider
21
+ }
22
+
23
+ async convertTime(fromDomain: TimeDomain, toDomain: TimeDomain, from: number): Promise<number> {
24
+ switch (fromDomain) {
25
+ case 'xl1': {
26
+ const [block, payloads] = assertEx(await this.blockViewer.blockByNumber(asXL1BlockNumber(from, true)), () => 'Block not found')
27
+ const timeSchemaIndex = block.payload_schemas.indexOf(TimeSchema)
28
+ const hash = timeSchemaIndex === -1 ? undefined : block.payload_hashes[timeSchemaIndex]
29
+ const timePayload = asTimePayload(isDefined(hash) ? payloads.find(p => p._hash === hash) : undefined)
30
+ if (timePayload === undefined) return 0
31
+ switch (toDomain) {
32
+ case 'xl1': {
33
+ return timePayload.xl1 ?? 0
34
+ }
35
+ case 'epoch': {
36
+ return timePayload.epoch ?? 0
37
+ }
38
+ case 'ethereum': {
39
+ return timePayload.ethereum ?? 0
40
+ }
41
+ default: {
42
+ throw new Error(`Unsupported to toDomain: ${toDomain}`)
43
+ }
44
+ }
45
+ }
46
+ default: {
47
+ throw new Error(`Unsupported from fromDomain: ${fromDomain}`)
48
+ }
49
+ }
50
+ }
51
+
52
+ async currentTime(domain: TimeDomain): Promise<[string, number]> {
53
+ switch (domain) {
54
+ case 'xl1': {
55
+ return ['xl1', (await this.blockViewer.currentBlock())?.[0].block ?? -1]
56
+ }
57
+ case 'epoch': {
58
+ return ['epoch', Date.now()]
59
+ }
60
+ case 'ethereum': {
61
+ return ['ethereum', (await this.ethProvider?.getBlockNumber()) ?? 0]
62
+ }
63
+ default: {
64
+ throw new Error(`Unknown time domain: ${domain}`)
65
+ }
66
+ }
67
+ }
68
+
69
+ async currentTimeAndHash(domain: TimeDomain): Promise<[number, Hash | null]> {
70
+ switch (domain) {
71
+ case 'xl1': {
72
+ const [head] = await this.blockViewer.currentBlock()
73
+ return [head.block, head._hash]
74
+ }
75
+ case 'epoch': {
76
+ return [Date.now(), null]
77
+ }
78
+ case 'ethereum': {
79
+ const provider = assertEx(this.ethProvider, () => 'Ethereum provider not configured')
80
+ const blockNumber = (await provider.getBlockNumber()) ?? 0
81
+ const block = await provider.getBlock(blockNumber)
82
+ const blockHash = asHash(assertEx(block?.hash, () => 'Block hash not found'), true)
83
+ return [blockNumber, blockHash]
84
+ }
85
+ default: {
86
+ throw new Error(`Unknown time domain: ${domain}`)
87
+ }
88
+ }
89
+ }
90
+
91
+ currentTimePayload(): Promisable<TimePayload> {
92
+ throw new Error('Method not implemented.')
93
+ }
94
+ }
@@ -0,0 +1 @@
1
+ export * from './SimpleTimeSyncViewer.ts'
@@ -15,17 +15,13 @@ export type AccountBalanceHistoryItem = [
15
15
  ]
16
16
 
17
17
  export interface AccountBalancesViewerMethods {
18
- accountBalances(address: Address[], head?: Hash): Promisable<Partial<Record<Address, AttoXL1>>>
19
- accountBalances(address: Address[], range?: XL1BlockRange): Promisable<Partial<Record<Address, AttoXL1>>>
20
- accountBalancesHistories(address: Address[], head?: Hash): Promisable<Partial<Record<Address, AccountBalanceHistoryItem[]>>>
21
- accountBalancesHistories(address: Address[], range?: XL1BlockRange): Promisable<Partial<Record<Address, AccountBalanceHistoryItem[]>>>
18
+ accountBalances(address: Address[], headOrRange?: Hash | XL1BlockRange): Promisable<Partial<Record<Address, AttoXL1>>>
19
+ accountBalancesHistories(address: Address[], headOrRange?: Hash | XL1BlockRange): Promisable<Partial<Record<Address, AccountBalanceHistoryItem[]>>>
22
20
  }
23
21
 
24
22
  export interface AccountBalanceViewerMethods {
25
- accountBalance(address: Address, head?: Hash): Promisable<AttoXL1>
26
- accountBalance(address: Address, range?: XL1BlockRange): Promisable<AttoXL1>
27
- accountBalanceHistory(address: Address, head?: Hash): Promisable<AccountBalanceHistoryItem[]>
28
- accountBalanceHistory(address: Address, range?: XL1BlockRange): Promisable<AccountBalanceHistoryItem[]>
23
+ accountBalance(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AttoXL1>
24
+ accountBalanceHistory(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AccountBalanceHistoryItem[]>
29
25
  }
30
26
 
31
27
  export interface AccountBalanceViewer extends AccountBalanceViewerMethods {}
@@ -1,13 +1,15 @@
1
1
  import type { Hash } from '@xylabs/hex'
2
2
  import type { Promisable } from '@xylabs/promise'
3
- import type { HydratedBlock } from '@xyo-network/xl1-protocol'
3
+ import type { HydratedBlock, XL1BlockNumber } from '@xyo-network/xl1-protocol'
4
4
 
5
5
  export interface BlockViewierMethods {
6
6
  blockByHash(hash: Hash): Promisable<HydratedBlock | null>
7
- blockByNumber(blockNumber: number): Promisable<HydratedBlock | null>
7
+ blockByNumber(block: XL1BlockNumber): Promisable<HydratedBlock | null>
8
8
  blocksByHash(hash: Hash, limit?: number): Promisable<HydratedBlock[]>
9
9
 
10
10
  currentBlock(): Promisable<HydratedBlock>
11
11
  currentBlockHash(): Promisable<Hash>
12
- currentBlockNumber(): Promisable<number>
12
+ currentBlockNumber(): Promisable<XL1BlockNumber>
13
13
  }
14
+
15
+ export interface BlockViewer extends BlockViewierMethods {}
@@ -2,12 +2,34 @@ import type { Address } from '@xylabs/hex'
2
2
  import type { Promisable } from '@xylabs/promise'
3
3
 
4
4
  import type { Position } from '../model/index.ts'
5
+ import type { StakeEventsViewer } from './StakeEvents.ts'
6
+
7
+ export interface StakeViewerProperties {
8
+ minWithdrawalBlocks: number
9
+ rewardsContract: Address
10
+ stakingTokenAddress: Address
11
+ }
5
12
 
6
13
  export interface StakeViewerMethods {
7
14
  stakeById(id: number): Promisable<Position>
8
15
  stakeByStaker(staker: Address, slot: number): Promisable<Position>
9
- /* @deprecated use stakesByStaker */
10
- stakedByStaker(staker: Address): Promisable<Address[]>
11
16
  stakesByStaked(staked: Address): Promisable<Position[]>
12
17
  stakesByStaker(staker: Address): Promisable<Position[]>
13
18
  }
19
+
20
+ export interface StakeViewer extends StakeViewerMethods, StakeViewerProperties {
21
+ active(time?: number): Promisable<bigint>
22
+ activeByAddressStaked(address: string, time?: number): Promisable<bigint>
23
+ activeByStaker(address: string, time?: number): Promisable<bigint>
24
+ pending(time?: number): Promisable<bigint>
25
+ pendingByStaker(staker: string, time?: number): Promisable<bigint>
26
+ withdrawn(time?: number): Promisable<bigint>
27
+ withdrawnByStaker(staker: string, time?: number): Promisable<bigint>
28
+ }
29
+
30
+ export interface StakeRunner extends StakeViewer {
31
+ events: StakeEventsViewer
32
+ addStake(staked: string, amount: bigint): Promise<boolean>
33
+ removeStake(slot: bigint): Promise<boolean>
34
+ withdrawStake(slot: bigint): Promise<boolean>
35
+ }
@@ -33,7 +33,7 @@ export interface StakeEvent<TName extends StakeEventName = StakeEventName> exten
33
33
  args: StakeEventArgs
34
34
  }
35
35
 
36
- export interface StakeEventsRead {
36
+ export interface StakeEventsViewer {
37
37
  positionCount(range: [number, number | 'latest']): Promisable<number>
38
38
  stakeEvents<TName extends StakeEventName>(range: [number, number | 'latest'], filter?: StakeEventFilter<TName>): Promisable<StakeEvent<TName>[]>
39
39
  }
@@ -1,4 +1,3 @@
1
- import type { Hash } from '@xylabs/hex'
2
1
  import type { Promisable } from '@xylabs/promise'
3
2
  import type { TimeDomain, TimePayload } from '@xyo-network/xl1-protocol'
4
3
 
@@ -10,7 +9,7 @@ export interface TimeSyncViewerMethods {
10
9
  currentTime(domain: TimeDomain): Promisable<[string, number]>
11
10
 
12
11
  /** Get the current time for a given domain */
13
- currentTimeAndHash(domain: TimeDomain): Promisable<[number, Hash | null]>
12
+ currentTimeAndHash(domain: TimeDomain): Promisable<[number, string | null]>
14
13
 
15
14
  /** Create a TimePayload with the current time from all configured domains */
16
15
  currentTimePayload(): Promisable<TimePayload>
@@ -5,6 +5,7 @@ export * from './ChainContract.ts'
5
5
  export * from './Fork.ts'
6
6
  export * from './NetworkStakeStepReward.ts'
7
7
  export * from './Stake.ts'
8
+ export * from './StakeEvents.ts'
8
9
  export * from './StakeTotals.ts'
9
10
  export * from './StepStake.ts'
10
11
  export * from './TimeSync.ts'
@@ -1,17 +0,0 @@
1
- import type { Address } from '@xylabs/hex';
2
- import type { Promisable } from '@xylabs/promise';
3
- import type { Position } from '../Position.ts';
4
- export interface ChainStakeRead {
5
- active(time?: number): Promisable<bigint>;
6
- activeByAddressStaked(address: string, time?: number): Promisable<bigint>;
7
- activeByStaker(address: string, time?: number): Promisable<bigint>;
8
- pending(time?: number): Promisable<bigint>;
9
- pendingByStaker(staker: string, time?: number): Promisable<bigint>;
10
- stakeById(id: number, time?: number): Promisable<Position>;
11
- stakeByStaker(staker: Address, slot: number, time?: number): Promisable<Position>;
12
- stakesByStaked(staked: Address, range?: [number, number | undefined]): Promisable<Position[]>;
13
- stakesByStaker(staker: Address, range?: [number, number | undefined]): Promisable<Position[]>;
14
- withdrawn(time?: number): Promisable<bigint>;
15
- withdrawnByStaker(staker: string, time?: number): Promisable<bigint>;
16
- }
17
- //# sourceMappingURL=ChainStakeRead.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChainStakeRead.d.ts","sourceRoot":"","sources":["../../../../src/model/ChainStake/ChainStakeRead.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IACzC,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IACzE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAClE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAC1C,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAClE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC1D,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IACjF,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7F,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7F,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IAC5C,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;CACrE"}
@@ -1,7 +0,0 @@
1
- import type { Address } from '@xylabs/hex';
2
- export interface ChainStakeStatic {
3
- minWithdrawalBlocks: number;
4
- rewardsContract: Address;
5
- stakingTokenAddress: Address;
6
- }
7
- //# sourceMappingURL=ChainStakeStatic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChainStakeStatic.d.ts","sourceRoot":"","sources":["../../../../src/model/ChainStake/ChainStakeStatic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,eAAe,EAAE,OAAO,CAAA;IACxB,mBAAmB,EAAE,OAAO,CAAA;CAC7B"}
@@ -1,6 +0,0 @@
1
- export interface ChainStakeWrite {
2
- addStake(staked: string, amount: bigint): Promise<boolean>;
3
- removeStake(slot: bigint): Promise<boolean>;
4
- withdrawStake(slot: bigint): Promise<boolean>;
5
- }
6
- //# sourceMappingURL=ChainStakeWrite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChainStakeWrite.d.ts","sourceRoot":"","sources":["../../../../src/model/ChainStake/ChainStakeWrite.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC9C"}
@@ -1,4 +0,0 @@
1
- export * from './ChainStakeRead.ts';
2
- export * from './ChainStakeStatic.ts';
3
- export * from './ChainStakeWrite.ts';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/ChainStake/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StakeEvents.d.ts","sourceRoot":"","sources":["../../../src/model/StakeEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,eAAO,MAAM,eAAe,2DAA4D,CAAA;AACxF,MAAM,MAAM,cAAc,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;AAE3D,MAAM,WAAW,aAAa,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,SAAS,UAAU,GAAG,EAAE;IACzF,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,WAAW,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM;IACxD,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAA;AAE5F,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,WAAW,CAAC,KAAK,CAAC;IACzG,IAAI,CAAC,EAAE,oBAAoB,CAAA;CAC5B;AAED,MAAM,WAAW,UAAU,CAAC,KAAK,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,aAAa,CAAC,KAAK,CAAC;IACrG,IAAI,EAAE,cAAc,CAAA;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;IACrE,WAAW,CAAC,KAAK,SAAS,cAAc,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;CACjJ"}
@@ -1,18 +0,0 @@
1
- import type { Address } from '@xylabs/hex'
2
- import type { Promisable } from '@xylabs/promise'
3
-
4
- import type { Position } from '../Position.ts'
5
-
6
- export interface ChainStakeRead {
7
- active(time?: number): Promisable<bigint>
8
- activeByAddressStaked(address: string, time?: number): Promisable<bigint>
9
- activeByStaker(address: string, time?: number): Promisable<bigint>
10
- pending(time?: number): Promisable<bigint>
11
- pendingByStaker(staker: string, time?: number): Promisable<bigint>
12
- stakeById(id: number, time?: number): Promisable<Position>
13
- stakeByStaker(staker: Address, slot: number, time?: number): Promisable<Position>
14
- stakesByStaked(staked: Address, range?: [number, number | undefined]): Promisable<Position[]>
15
- stakesByStaker(staker: Address, range?: [number, number | undefined]): Promisable<Position[]>
16
- withdrawn(time?: number): Promisable<bigint>
17
- withdrawnByStaker(staker: string, time?: number): Promisable<bigint>
18
- }
@@ -1,7 +0,0 @@
1
- import type { Address } from '@xylabs/hex'
2
-
3
- export interface ChainStakeStatic {
4
- minWithdrawalBlocks: number
5
- rewardsContract: Address
6
- stakingTokenAddress: Address
7
- }
@@ -1,5 +0,0 @@
1
- export interface ChainStakeWrite {
2
- addStake(staked: string, amount: bigint): Promise<boolean>
3
- removeStake(slot: bigint): Promise<boolean>
4
- withdrawStake(slot: bigint): Promise<boolean>
5
- }
@@ -1,3 +0,0 @@
1
- export * from './ChainStakeRead.ts'
2
- export * from './ChainStakeStatic.ts'
3
- export * from './ChainStakeWrite.ts'