@xyo-network/chain-services 1.16.26 → 1.17.1
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/AccountBalance/accountBalanceServiceFromArchivist.d.ts +1 -1
- package/dist/neutral/AccountBalance/accountBalanceServiceFromArchivist.d.ts.map +1 -1
- package/dist/neutral/AccountBalance/index.d.ts +0 -1
- package/dist/neutral/AccountBalance/index.d.ts.map +1 -1
- package/dist/neutral/BaseService.d.ts +0 -3
- package/dist/neutral/BaseService.d.ts.map +1 -1
- package/dist/neutral/BlockReward/EvmBlockRewardViewer.d.ts +17 -0
- package/dist/neutral/BlockReward/EvmBlockRewardViewer.d.ts.map +1 -0
- package/dist/neutral/BlockReward/index.d.ts +1 -3
- package/dist/neutral/BlockReward/index.d.ts.map +1 -1
- package/dist/neutral/ChainBlockNumberIteration/ChainBlockNumberIterationService.d.ts +23 -11
- package/dist/neutral/ChainBlockNumberIteration/ChainBlockNumberIterationService.d.ts.map +1 -1
- package/dist/neutral/ChainService/Evm/Evm.d.ts +6 -5
- package/dist/neutral/ChainService/Evm/Evm.d.ts.map +1 -1
- package/dist/neutral/ChainService/Memory/Memory.d.ts +6 -4
- package/dist/neutral/ChainService/Memory/Memory.d.ts.map +1 -1
- package/dist/neutral/ChainValidator/XyoValidator.d.ts +4 -18
- package/dist/neutral/ChainValidator/XyoValidator.d.ts.map +1 -1
- package/dist/neutral/Election/BaseElectionService.d.ts +3 -3
- package/dist/neutral/Election/BaseElectionService.d.ts.map +1 -1
- package/dist/neutral/PendingTransactions/BasePendingTransactions.d.ts +9 -9
- package/dist/neutral/PendingTransactions/BasePendingTransactions.d.ts.map +1 -1
- package/dist/neutral/StakeIntent/XyoStakeIntentService.d.ts +7 -6
- package/dist/neutral/StakeIntent/XyoStakeIntentService.d.ts.map +1 -1
- package/dist/neutral/Time/BaseTimeSyncService.d.ts +3 -6
- package/dist/neutral/Time/BaseTimeSyncService.d.ts.map +1 -1
- package/dist/neutral/blockViewerFromChainIteratorAndArchivist.d.ts.map +1 -1
- package/dist/neutral/implementation/accountBalance.d.ts +7 -0
- package/dist/neutral/implementation/accountBalance.d.ts.map +1 -0
- package/dist/neutral/implementation/blockViewer.d.ts +7 -0
- package/dist/neutral/implementation/blockViewer.d.ts.map +1 -0
- package/dist/neutral/implementation/chain/evm.d.ts +7 -0
- package/dist/neutral/implementation/chain/evm.d.ts.map +1 -0
- package/dist/neutral/implementation/chain/index.d.ts +7 -0
- package/dist/neutral/implementation/chain/index.d.ts.map +1 -0
- package/dist/neutral/implementation/evm/index.d.ts +2 -0
- package/dist/neutral/implementation/evm/index.d.ts.map +1 -0
- package/dist/neutral/implementation/evm/initChainId.d.ts +4 -0
- package/dist/neutral/implementation/evm/initChainId.d.ts.map +1 -0
- package/dist/neutral/implementation/evm/initEvmProvider.d.ts +11 -0
- package/dist/neutral/implementation/evm/initEvmProvider.d.ts.map +1 -0
- package/dist/neutral/implementation/evm/initInfuraProvider.d.ts +6 -0
- package/dist/neutral/implementation/evm/initInfuraProvider.d.ts.map +1 -0
- package/dist/neutral/implementation/evm/initJsonRpcProvider.d.ts +6 -0
- package/dist/neutral/implementation/evm/initJsonRpcProvider.d.ts.map +1 -0
- package/dist/neutral/implementation/head/createBootstrapHead.d.ts +5 -0
- package/dist/neutral/implementation/head/createBootstrapHead.d.ts.map +1 -0
- package/dist/neutral/implementation/head/createForkedHead/config/getBridgeDestinationDetails.d.ts +8 -0
- package/dist/neutral/implementation/head/createForkedHead/config/getBridgeDestinationDetails.d.ts.map +1 -0
- package/dist/neutral/implementation/head/createForkedHead/config/getBridgeSourceDetails.d.ts +9 -0
- package/dist/neutral/implementation/head/createForkedHead/config/getBridgeSourceDetails.d.ts.map +1 -0
- package/dist/neutral/implementation/head/createForkedHead/config/getForkDetails.d.ts +4 -0
- package/dist/neutral/implementation/head/createForkedHead/config/getForkDetails.d.ts.map +1 -0
- package/dist/neutral/implementation/head/createForkedHead/config/index.d.ts +4 -0
- package/dist/neutral/implementation/head/createForkedHead/config/index.d.ts.map +1 -0
- package/dist/neutral/implementation/head/createForkedHead/createForkedHead.d.ts +5 -0
- package/dist/neutral/implementation/head/createForkedHead/createForkedHead.d.ts.map +1 -0
- package/dist/neutral/implementation/head/createForkedHead/getBridgeDestinationObservation.d.ts +11 -0
- package/dist/neutral/implementation/head/createForkedHead/getBridgeDestinationObservation.d.ts.map +1 -0
- package/dist/neutral/implementation/head/createForkedHead/getBridgeIntent.d.ts +11 -0
- package/dist/neutral/implementation/head/createForkedHead/getBridgeIntent.d.ts.map +1 -0
- package/dist/neutral/implementation/head/createForkedHead/getBridgeSourceObservation.d.ts +11 -0
- package/dist/neutral/implementation/head/createForkedHead/getBridgeSourceObservation.d.ts.map +1 -0
- package/dist/neutral/implementation/head/createForkedHead/getFirstBlockForNewChain.d.ts +13 -0
- package/dist/neutral/implementation/head/createForkedHead/getFirstBlockForNewChain.d.ts.map +1 -0
- package/dist/neutral/implementation/head/createForkedHead/index.d.ts +2 -0
- package/dist/neutral/implementation/head/createForkedHead/index.d.ts.map +1 -0
- package/dist/neutral/implementation/head/getForkFromBlock.d.ts +12 -0
- package/dist/neutral/implementation/head/getForkFromBlock.d.ts.map +1 -0
- package/dist/neutral/implementation/head/head.d.ts +11 -0
- package/dist/neutral/implementation/head/head.d.ts.map +1 -0
- package/dist/neutral/implementation/head/index.d.ts +2 -0
- package/dist/neutral/implementation/head/index.d.ts.map +1 -0
- package/dist/neutral/implementation/head/submitNewChain.d.ts +10 -0
- package/dist/neutral/implementation/head/submitNewChain.d.ts.map +1 -0
- package/dist/neutral/implementation/index.d.ts +13 -0
- package/dist/neutral/implementation/index.d.ts.map +1 -0
- package/dist/neutral/implementation/mempoolRunner.d.ts +7 -0
- package/dist/neutral/implementation/mempoolRunner.d.ts.map +1 -0
- package/dist/neutral/implementation/mempoolViewer.d.ts +7 -0
- package/dist/neutral/implementation/mempoolViewer.d.ts.map +1 -0
- package/dist/neutral/implementation/pendingTransactions.d.ts +9 -0
- package/dist/neutral/implementation/pendingTransactions.d.ts.map +1 -0
- package/dist/neutral/implementation/producer.d.ts +5 -0
- package/dist/neutral/implementation/producer.d.ts.map +1 -0
- package/dist/neutral/implementation/reward.d.ts +14 -0
- package/dist/neutral/implementation/reward.d.ts.map +1 -0
- package/dist/neutral/implementation/time.d.ts +6 -0
- package/dist/neutral/implementation/time.d.ts.map +1 -0
- package/dist/neutral/implementation/validator.d.ts +5 -0
- package/dist/neutral/implementation/validator.d.ts.map +1 -0
- package/dist/neutral/index.d.ts +2 -2
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +1623 -1150
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/simple/block/index.d.ts +2 -0
- package/dist/neutral/simple/block/index.d.ts.map +1 -0
- package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts +117 -0
- package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -0
- package/dist/neutral/simple/block/runner/generateTransactionFeeTransfers.d.ts.map +1 -0
- package/dist/neutral/simple/block/runner/index.d.ts +2 -0
- package/dist/neutral/simple/block/runner/index.d.ts.map +1 -0
- package/dist/neutral/simple/block/runner/spec/SimpleBlockRewardViewer.d.ts +2 -0
- package/dist/neutral/simple/block/runner/spec/SimpleBlockRewardViewer.d.ts.map +1 -0
- package/dist/neutral/simple/index.d.ts +2 -0
- package/dist/neutral/simple/index.d.ts.map +1 -0
- package/package.json +30 -27
- package/src/AccountBalance/accountBalanceServiceFromArchivist.ts +38 -10
- package/src/AccountBalance/index.ts +0 -1
- package/src/BaseService.ts +0 -13
- package/src/BlockReward/EvmBlockRewardViewer.ts +50 -0
- package/src/BlockReward/index.ts +1 -3
- package/src/ChainBlockNumberIteration/ChainBlockNumberIterationService.ts +74 -6
- package/src/ChainService/Evm/Evm.ts +39 -36
- package/src/ChainService/Memory/Memory.ts +14 -7
- package/src/ChainValidator/XyoValidator.ts +29 -34
- package/src/Election/BaseElectionService.ts +5 -4
- package/src/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.ts +18 -18
- package/src/PendingTransactions/BasePendingTransactions.ts +15 -9
- package/src/Schemas/BaseSchemasService.ts +1 -1
- package/src/StakeIntent/XyoStakeIntentService.ts +24 -18
- package/src/StepStake/BaseStepStakeService.ts +2 -2
- package/src/Time/BaseTimeSyncService.ts +6 -16
- package/src/blockViewerFromChainIteratorAndArchivist.ts +20 -1
- package/src/implementation/accountBalance.ts +29 -0
- package/src/implementation/blockViewer.ts +29 -0
- package/src/implementation/chain/evm.ts +39 -0
- package/src/implementation/chain/index.ts +46 -0
- package/src/implementation/evm/index.ts +1 -0
- package/src/implementation/evm/initChainId.ts +20 -0
- package/src/implementation/evm/initEvmProvider.ts +24 -0
- package/src/implementation/evm/initInfuraProvider.ts +26 -0
- package/src/implementation/evm/initJsonRpcProvider.ts +20 -0
- package/src/implementation/head/createBootstrapHead.ts +31 -0
- package/src/implementation/head/createForkedHead/config/getBridgeDestinationDetails.ts +27 -0
- package/src/implementation/head/createForkedHead/config/getBridgeSourceDetails.ts +19 -0
- package/src/implementation/head/createForkedHead/config/getForkDetails.ts +10 -0
- package/src/implementation/head/createForkedHead/config/index.ts +3 -0
- package/src/implementation/head/createForkedHead/createForkedHead.ts +29 -0
- package/src/implementation/head/createForkedHead/getBridgeDestinationObservation.ts +42 -0
- package/src/implementation/head/createForkedHead/getBridgeIntent.ts +51 -0
- package/src/implementation/head/createForkedHead/getBridgeSourceObservation.ts +46 -0
- package/src/implementation/head/createForkedHead/getFirstBlockForNewChain.ts +41 -0
- package/src/implementation/head/createForkedHead/index.ts +1 -0
- package/src/implementation/head/getForkFromBlock.ts +43 -0
- package/src/implementation/head/head.ts +49 -0
- package/src/implementation/head/index.ts +1 -0
- package/src/implementation/head/submitNewChain.ts +27 -0
- package/src/implementation/index.ts +12 -0
- package/src/implementation/mempoolRunner.ts +29 -0
- package/src/implementation/mempoolViewer.ts +29 -0
- package/src/implementation/pendingTransactions.ts +36 -0
- package/src/implementation/producer.ts +16 -0
- package/src/implementation/reward.ts +53 -0
- package/src/implementation/time.ts +26 -0
- package/src/implementation/validator.ts +15 -0
- package/src/index.ts +2 -2
- package/src/simple/block/index.ts +1 -0
- package/src/{BlockProducer/BaseBlockProducerService.ts → simple/block/runner/SimpleBlockRunner.ts} +111 -74
- package/src/simple/block/runner/index.ts +1 -0
- package/src/simple/block/runner/spec/SimpleBlockRewardViewer.ts +413 -0
- package/src/simple/index.ts +1 -0
- package/dist/neutral/AccountBalance/BaseAccountBalanceService.d.ts +0 -36
- package/dist/neutral/AccountBalance/BaseAccountBalanceService.d.ts.map +0 -1
- package/dist/neutral/AccountTransfers/BaseAccountTransfersService.d.ts +0 -13
- package/dist/neutral/AccountTransfers/BaseAccountTransfersService.d.ts.map +0 -1
- package/dist/neutral/AccountTransfers/index.d.ts +0 -2
- package/dist/neutral/AccountTransfers/index.d.ts.map +0 -1
- package/dist/neutral/BlockProducer/BaseBlockProducerService.d.ts +0 -85
- package/dist/neutral/BlockProducer/BaseBlockProducerService.d.ts.map +0 -1
- package/dist/neutral/BlockProducer/generateTransactionFeeTransfers.d.ts.map +0 -1
- package/dist/neutral/BlockProducer/index.d.ts +0 -2
- package/dist/neutral/BlockProducer/index.d.ts.map +0 -1
- package/dist/neutral/BlockReward/BaseBlockRewardService.d.ts +0 -10
- package/dist/neutral/BlockReward/BaseBlockRewardService.d.ts.map +0 -1
- package/dist/neutral/BlockReward/EvmBlockRewardService.d.ts +0 -18
- package/dist/neutral/BlockReward/EvmBlockRewardService.d.ts.map +0 -1
- package/dist/neutral/BlockReward/MemoryBlockRewardService.d.ts +0 -23
- package/dist/neutral/BlockReward/MemoryBlockRewardService.d.ts.map +0 -1
- package/src/AccountBalance/BaseAccountBalanceService.ts +0 -100
- package/src/AccountTransfers/BaseAccountTransfersService.ts +0 -36
- package/src/AccountTransfers/index.ts +0 -1
- package/src/BlockProducer/index.ts +0 -1
- package/src/BlockReward/BaseBlockRewardService.ts +0 -17
- package/src/BlockReward/EvmBlockRewardService.ts +0 -49
- package/src/BlockReward/MemoryBlockRewardService.ts +0 -72
- /package/dist/neutral/{BlockProducer → simple/block/runner}/generateTransactionFeeTransfers.d.ts +0 -0
- /package/src/{BlockProducer → simple/block/runner}/generateTransactionFeeTransfers.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryBlockRewardService.d.ts","sourceRoot":"","sources":["../../../src/BlockReward/MemoryBlockRewardService.ts"],"names":[],"mappings":"AAAA,OAAO,EACgB,UAAU,EAChC,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAElE,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAElG,MAAM,WAAW,8BAA+B,SAAQ,4BAA4B;IAClF,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,qBACa,wBAAwB,CAAC,OAAO,SAAS,8BAA8B,GAAG,8BAA8B,CACnH,SAAQ,sBAAsB,CAAC,OAAO,CAAE,YAAW,kBAAkB;IACrE,SAAS,CAAC,QAAQ,CAAC,qBAAqB,kMAA4B;IAEpE,IAAI,aAAa,WAEhB;IAED,IAAI,aAAa,WAEhB;IAED,IAAI,iBAAiB,WAEpB;IAED,IAAI,qBAAqB,WAExB;IAED,IAAI,mBAAmB,WAEtB;IAED,IAAI,QAAQ,WAEX;WAEqB,aAAa,CAAC,CAAC,SAAS,wBAAwB,CAAC,QAAQ,CAAC,EAC9E,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GACpB,OAAO,CAAC,CAAC,CAAC;IAYJ,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;CAWpE"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Address, assertEx, creatable, Hash,
|
|
3
|
-
} from '@xylabs/sdk-js'
|
|
4
|
-
import { spanRootAsync } from '@xylabs/telemetry'
|
|
5
|
-
import { ReadArchivist } from '@xyo-network/archivist-model'
|
|
6
|
-
import { AttoXL1, XL1BlockRange } from '@xyo-network/xl1-protocol'
|
|
7
|
-
import {
|
|
8
|
-
AccountBalanceHistoryItem,
|
|
9
|
-
AccountBalanceViewer,
|
|
10
|
-
balancesSummary,
|
|
11
|
-
BalanceStepSummaryContext,
|
|
12
|
-
BlockViewer,
|
|
13
|
-
EventingChainBlockNumberIteratorService,
|
|
14
|
-
SimpleAccountBalanceViewer,
|
|
15
|
-
TransfersStepSummaryContext,
|
|
16
|
-
} from '@xyo-network/xl1-protocol-sdk'
|
|
17
|
-
import z from 'zod'
|
|
18
|
-
|
|
19
|
-
import { BaseService } from '../BaseService.ts'
|
|
20
|
-
import { BaseServiceParams } from '../model/index.ts'
|
|
21
|
-
|
|
22
|
-
export const BaseAccountBalanceServiceParamsZod = z.object({
|
|
23
|
-
blockViewer: z.object().loose(),
|
|
24
|
-
chainArchivist: z.object().loose(),
|
|
25
|
-
chainIterator: z.object().loose(),
|
|
26
|
-
context: z.object().loose(),
|
|
27
|
-
transferContext: z.object().loose(),
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
export interface BaseAccountBalanceServiceParams extends BaseServiceParams {
|
|
31
|
-
blockViewer: BlockViewer
|
|
32
|
-
chainArchivist: ReadArchivist
|
|
33
|
-
chainIterator: EventingChainBlockNumberIteratorService
|
|
34
|
-
context: BalanceStepSummaryContext
|
|
35
|
-
transferContext: TransfersStepSummaryContext
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
@creatable()
|
|
39
|
-
export class BaseAccountBalanceService extends BaseService<BaseAccountBalanceServiceParams> implements AccountBalanceViewer {
|
|
40
|
-
protected accountBalanceViewer!: AccountBalanceViewer
|
|
41
|
-
|
|
42
|
-
protected get blockViewer() {
|
|
43
|
-
return assertEx(this.params.blockViewer, () => 'BlockViewer has not been initialized yet')
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
static override async paramsHandler(params?: Partial<BaseAccountBalanceServiceParams> | undefined): Promise<BaseAccountBalanceServiceParams> {
|
|
47
|
-
// TODO: Use a real zod and move the zod check to the AbstractCreatable class
|
|
48
|
-
BaseAccountBalanceServiceParamsZod.parse(params)
|
|
49
|
-
assertEx(params?.context?.head, () => 'BalanceStepSummaryContext is required in BaseAccountBalanceServiceParams')
|
|
50
|
-
return { ...(await super.paramsHandler(params)), ...params } as BaseAccountBalanceServiceParams
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
async accountBalance(address: Address, headOrRange?: XL1BlockRange | Hash): Promise<AttoXL1> {
|
|
54
|
-
const balances = await this.accountsBalances([address], headOrRange)
|
|
55
|
-
return balances[address] ?? AttoXL1(0n)
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
async accountBalanceHistory(address: Address): Promise<AccountBalanceHistoryItem[]>
|
|
59
|
-
async accountBalanceHistory(address: Address, head: Hash): Promise<AccountBalanceHistoryItem[]>
|
|
60
|
-
async accountBalanceHistory(address: Address, range: XL1BlockRange): Promise<AccountBalanceHistoryItem[]>
|
|
61
|
-
accountBalanceHistory(_address: Address, _headOrRange?: Hash | XL1BlockRange): Promise<AccountBalanceHistoryItem[]> {
|
|
62
|
-
throw new Error('Method not implemented.')
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
async accountsBalances(address: Address[], _headOrRange?: Hash | XL1BlockRange): Promise<Partial<Record<Address, AttoXL1>>> {
|
|
66
|
-
return await spanRootAsync('balances', async () => {
|
|
67
|
-
const context = {
|
|
68
|
-
head: this.params.context.head,
|
|
69
|
-
stepSemaphores: this.params.context.stepSemaphores,
|
|
70
|
-
store: this.params.context.store,
|
|
71
|
-
chainId: this.params.context.chainId,
|
|
72
|
-
summaryMap: this.params.context.summaryMap,
|
|
73
|
-
} satisfies BalanceStepSummaryContext
|
|
74
|
-
const summary = await balancesSummary(
|
|
75
|
-
context,
|
|
76
|
-
)
|
|
77
|
-
const result: Record<Address, AttoXL1> = {}
|
|
78
|
-
for (const addr of address) {
|
|
79
|
-
const summaryBalance = summary[addr] ?? 0n
|
|
80
|
-
result[addr] = AttoXL1(summaryBalance < 0n ? 0n : summaryBalance)
|
|
81
|
-
}
|
|
82
|
-
return result
|
|
83
|
-
})
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
async accountsBalancesHistory(addresses: Address[]): Promise<Partial<Record<Address, AccountBalanceHistoryItem[]>>>
|
|
87
|
-
async accountsBalancesHistory(addresses: Address[], head: Hash): Promise<Partial<Record<Address, AccountBalanceHistoryItem[]>>>
|
|
88
|
-
async accountsBalancesHistory(addresses: Address[], range: XL1BlockRange): Promise<Partial<Record<Address, AccountBalanceHistoryItem[]>>>
|
|
89
|
-
accountsBalancesHistory(_addresses: Address[], _headOrRange?: Hash | XL1BlockRange): Promise<Partial<Record<Address, AccountBalanceHistoryItem[]>>> {
|
|
90
|
-
throw new Error('Method not implemented.')
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
override async createHandler() {
|
|
94
|
-
this.accountBalanceViewer = await SimpleAccountBalanceViewer.create({
|
|
95
|
-
context: this.params.context,
|
|
96
|
-
transferContext: this.params.transferContext,
|
|
97
|
-
blockViewer: this.blockViewer,
|
|
98
|
-
})
|
|
99
|
-
}
|
|
100
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Address, creatable, Hash,
|
|
3
|
-
} from '@xylabs/sdk-js'
|
|
4
|
-
import { spanRootAsync } from '@xylabs/telemetry'
|
|
5
|
-
import { AttoXL1 } from '@xyo-network/xl1-protocol'
|
|
6
|
-
import {
|
|
7
|
-
AccountTransfersService,
|
|
8
|
-
TransfersStepSummaryContext,
|
|
9
|
-
transfersSummary,
|
|
10
|
-
} from '@xyo-network/xl1-protocol-sdk'
|
|
11
|
-
|
|
12
|
-
import { BaseService } from '../BaseService.ts'
|
|
13
|
-
import { BaseServiceParams } from '../model/index.ts'
|
|
14
|
-
|
|
15
|
-
export interface BaseAccountTransferServiceParams extends BaseServiceParams {
|
|
16
|
-
context: TransfersStepSummaryContext
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
@creatable()
|
|
20
|
-
export class BaseAccountTransfersService extends BaseService<BaseAccountTransferServiceParams> implements AccountTransfersService {
|
|
21
|
-
async transfer(head: Hash, address: Address): Promise<AttoXL1> {
|
|
22
|
-
return (await this.transfers(head, [address]))[address] ?? AttoXL1(0n)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
async transfers(head: Hash, addresses: Address[]): Promise<Partial<Record<Address, AttoXL1>>> {
|
|
26
|
-
return await spanRootAsync('transfers', async () => {
|
|
27
|
-
const summary = await transfersSummary(this.params.context)
|
|
28
|
-
const result: Record<Address, AttoXL1> = {}
|
|
29
|
-
for (const addr of addresses) {
|
|
30
|
-
const summaryBalance = summary[addr] ?? 0n
|
|
31
|
-
result[addr] = AttoXL1(summaryBalance)
|
|
32
|
-
}
|
|
33
|
-
return result
|
|
34
|
-
})
|
|
35
|
-
}
|
|
36
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './BaseAccountTransfersService.ts'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './BaseBlockProducerService.ts'
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
creatable, EmptyObject, Promisable,
|
|
3
|
-
} from '@xylabs/sdk-js'
|
|
4
|
-
import { BlockRewardService } from '@xyo-network/xl1-protocol-sdk'
|
|
5
|
-
|
|
6
|
-
import { BaseService } from '../BaseService.ts'
|
|
7
|
-
import { BaseServiceParams } from '../model/index.ts'
|
|
8
|
-
|
|
9
|
-
export interface BaseBlockRewardServiceParams<TConfig extends EmptyObject = EmptyObject> extends BaseServiceParams<TConfig> {}
|
|
10
|
-
|
|
11
|
-
@creatable()
|
|
12
|
-
export class BaseBlockRewardService<TParams extends BaseBlockRewardServiceParams = BaseBlockRewardServiceParams>
|
|
13
|
-
extends BaseService<TParams> implements BlockRewardService {
|
|
14
|
-
getRewardForBlock(_blockNumber: bigint): Promisable<bigint> {
|
|
15
|
-
throw new Error('getRewardForBlock method must be implemented in derived classes')
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
assertEx, creatable, toEthAddress,
|
|
3
|
-
} from '@xylabs/sdk-js'
|
|
4
|
-
import { AccountInstance } from '@xyo-network/account-model'
|
|
5
|
-
import { XyoChainRewards__factory as XyoChainRewardsFactory } from '@xyo-network/typechain'
|
|
6
|
-
import {
|
|
7
|
-
BlockRewardService, ChainService, Config,
|
|
8
|
-
} from '@xyo-network/xl1-protocol-sdk'
|
|
9
|
-
import { Provider } from 'ethers/providers'
|
|
10
|
-
|
|
11
|
-
import { BaseBlockRewardService, BaseBlockRewardServiceParams } from './BaseBlockRewardService.ts'
|
|
12
|
-
|
|
13
|
-
export interface EvmBlockRewardServiceParams extends BaseBlockRewardServiceParams<Pick<Config, 'evm'>> {
|
|
14
|
-
account: AccountInstance
|
|
15
|
-
chainService?: ChainService
|
|
16
|
-
provider?: Provider
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
@creatable()
|
|
20
|
-
export class EvmBlockRewardService extends BaseBlockRewardService<EvmBlockRewardServiceParams> implements BlockRewardService {
|
|
21
|
-
protected _contractAddress: string | undefined
|
|
22
|
-
|
|
23
|
-
protected get chainService() {
|
|
24
|
-
return assertEx(this.params.chainService, () => 'chainService is required')
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
protected get contractAddress() {
|
|
28
|
-
return assertEx(this._contractAddress, () => 'contractAddress is required')
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
protected get provider() {
|
|
32
|
-
return assertEx(this.params.provider, () => 'provider is required')
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
override async createHandler() {
|
|
36
|
-
await super.createHandler()
|
|
37
|
-
try {
|
|
38
|
-
this._contractAddress = await this.chainService.rewardsContract()
|
|
39
|
-
} catch (ex) {
|
|
40
|
-
const error = ex as Error
|
|
41
|
-
throw new Error(`Failed to get rewards contract address: ${error.message}`)
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
override async getRewardForBlock(blockNumber: bigint): Promise<bigint> {
|
|
46
|
-
const contract = XyoChainRewardsFactory.connect(toEthAddress(this.contractAddress), this.provider)
|
|
47
|
-
return await contract.calcBlockReward(blockNumber)
|
|
48
|
-
}
|
|
49
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
assertEx, creatable, Promisable, toFixedPoint,
|
|
3
|
-
} from '@xylabs/sdk-js'
|
|
4
|
-
import { rewardFromBlockNumber } from '@xyo-network/chain-protocol'
|
|
5
|
-
import { BlockRewardService } from '@xyo-network/xl1-protocol-sdk'
|
|
6
|
-
|
|
7
|
-
import { BaseBlockRewardService, BaseBlockRewardServiceParams } from './BaseBlockRewardService.ts'
|
|
8
|
-
|
|
9
|
-
export interface MemoryBlockRewardServiceParams extends BaseBlockRewardServiceParams {
|
|
10
|
-
creatorReward?: bigint
|
|
11
|
-
initialStepReward?: bigint
|
|
12
|
-
minRewardPerBlock?: bigint
|
|
13
|
-
stepFactorDenominator?: bigint
|
|
14
|
-
stepFactorNumerator?: bigint
|
|
15
|
-
stepSize?: bigint
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
@creatable()
|
|
19
|
-
export class MemoryBlockRewardService<TParams extends MemoryBlockRewardServiceParams = MemoryBlockRewardServiceParams>
|
|
20
|
-
extends BaseBlockRewardService<TParams> implements BlockRewardService {
|
|
21
|
-
protected readonly rewardFromBlockNumber = rewardFromBlockNumber(18)
|
|
22
|
-
|
|
23
|
-
get creatorReward() {
|
|
24
|
-
return assertEx(this.params.creatorReward, () => 'creatorReward is required')
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
get initialReward() {
|
|
28
|
-
return assertEx(this.params.initialStepReward, () => 'initialStepReward is required')
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
get minRewardPerBlock() {
|
|
32
|
-
return assertEx(this.params.minRewardPerBlock, () => 'minRewardPerBlock is required')
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
get stepFactorDenominator() {
|
|
36
|
-
return assertEx(this.params.stepFactorDenominator, () => 'stepFactorDenominator is required')
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
get stepFactorNumerator() {
|
|
40
|
-
return assertEx(this.params.stepFactorNumerator, () => 'stepFactorNumerator is required')
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
get stepSize() {
|
|
44
|
-
return assertEx(this.params.stepSize, () => 'stepSize is required')
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
static override async paramsHandler<T extends MemoryBlockRewardService['params']>(
|
|
48
|
-
inParams?: Partial<T>,
|
|
49
|
-
): Promise<T> {
|
|
50
|
-
return {
|
|
51
|
-
...await super.paramsHandler(inParams),
|
|
52
|
-
creatorReward: inParams?.creatorReward ?? toFixedPoint(20_000_000_000n),
|
|
53
|
-
initialStepReward: inParams?.initialStepReward ?? toFixedPoint(3000n),
|
|
54
|
-
minRewardPerBlock: inParams?.minRewardPerBlock ?? toFixedPoint(30n),
|
|
55
|
-
stepFactorDenominator: inParams?.stepFactorDenominator ?? 100n,
|
|
56
|
-
stepFactorNumerator: inParams?.stepFactorNumerator ?? 90n,
|
|
57
|
-
stepSize: inParams?.stepSize ?? 1_000_000n,
|
|
58
|
-
} as T
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
override getRewardForBlock(blockNumber: bigint): Promisable<bigint> {
|
|
62
|
-
return this.rewardFromBlockNumber(
|
|
63
|
-
blockNumber,
|
|
64
|
-
this.initialReward,
|
|
65
|
-
this.stepSize,
|
|
66
|
-
this.stepFactorNumerator,
|
|
67
|
-
this.stepFactorDenominator,
|
|
68
|
-
this.minRewardPerBlock,
|
|
69
|
-
this.creatorReward,
|
|
70
|
-
)
|
|
71
|
-
}
|
|
72
|
-
}
|
/package/dist/neutral/{BlockProducer → simple/block/runner}/generateTransactionFeeTransfers.d.ts
RENAMED
|
File without changes
|
|
File without changes
|