@ocap/resolver 1.29.4 → 1.29.6

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/esm/index.d.mts CHANGED
@@ -1,32 +1,36 @@
1
- import { IAddressArgs, IAssetState, IChainConfig, IChunkIterator, IDataObject, IDelegateState, IEvidenceState, IFilter, IGetAccountStateArgs, IGetAccountTokensArgs, IGetStateParams, IIndexDB, IListChunksParams, IPaginatedResult, IPipelineLogger, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverParams, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverValidatorsInfo, IRollupBlock, IStateDB, ITokenCache, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenState, TIndexedTokenState, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TTokenDistribution, TVerifyAccountRiskResult } from "./types.mjs";
1
+ import { IAddressArgs, IAssetState, IChainConfig, IChunkIterator, IDataObject, IDelegateState, IEvidenceState, IFilter, IGetAccountStateArgs, IGetAccountTokensArgs, IGetStateParams, IIndexDB as IIndexDB$1, IListChunksParams, IPaginatedResult, IPipelineLogger as IPipelineLogger$1, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext as IResolverContext$1, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverParams, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverValidatorsInfo, IRollupBlock, IStateDB as IStateDB$1, ITokenCache, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenState, TIndexedTokenState as TIndexedTokenState$1, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TTokenDistribution, TVerifyAccountRiskResult } from "./types.mjs";
2
2
  import { MigrationChainManager } from "./migration-chain.mjs";
3
3
  import { TokenDistributionManager } from "./token-distribution.mjs";
4
4
  import { createExecutor } from "@ocap/tx-protocols";
5
5
  import Queue from "queue";
6
+ import { ILedger } from "@ocap/types";
6
7
 
7
8
  //#region src/index.d.ts
8
9
  declare const formatData: (data: IDataObject | null | undefined) => IDataObject | null | undefined;
9
10
  declare const formatDelegationOps: (state: IDelegateState) => any;
10
11
  declare class OCAPResolver implements IResolver {
11
- statedb: IStateDB;
12
- indexdb: IIndexDB;
12
+ statedb: IStateDB$1;
13
+ indexdb: IIndexDB$1;
14
+ ledger: ILedger;
13
15
  filter?: IFilter;
14
16
  config: IChainConfig;
15
17
  chainAddr: string;
16
- tokenItx: TIndexedTokenState | null;
18
+ tokenItx: TIndexedTokenState$1 | null;
17
19
  consensus: string;
18
20
  queue: Queue;
19
21
  tokenCache: ITokenCache;
20
22
  tokenDistribution: TokenDistributionManager;
21
23
  executor: ReturnType<typeof createExecutor>;
22
- logger: IPipelineLogger;
24
+ logger: IPipelineLogger$1;
23
25
  migrationChain?: MigrationChainManager;
24
- formatTx: (tx: IResolverTransaction | null, ctx?: IResolverContext) => Promise<IResolverTransaction | null>;
26
+ formatTx: (tx: IResolverTransaction | null, ctx?: IResolverContext$1) => Promise<IResolverTransaction | null>;
27
+ private initializationPromise;
25
28
  /**
26
29
  * Creates an instance of OCAPResolver.
27
30
  * @param params Parameters to bootstrap the resolver
28
31
  * @param params.statedb @ocap/statedb adapter
29
32
  * @param params.indexdb @ocap/indexdb adapter
33
+ * @param params.ledger @arcblock/ledger-core ledger instance
30
34
  * @param params.config @ocap/config object
31
35
  * @param params.filter bloom filter to do anti-replay check
32
36
  * @param params.validateTokenConfig should we validate token supply and token-holder balance, should be disabled when starting an existing chain
@@ -34,6 +38,7 @@ declare class OCAPResolver implements IResolver {
34
38
  constructor({
35
39
  statedb,
36
40
  indexdb,
41
+ ledger,
37
42
  config,
38
43
  filter,
39
44
  validateTokenConfig,
@@ -45,10 +50,10 @@ declare class OCAPResolver implements IResolver {
45
50
  }: {
46
51
  tx: string;
47
52
  extra?: Record<string, unknown>;
48
- }, ctx?: IResolverContext): Promise<string>;
53
+ }, ctx?: IResolverContext$1): Promise<string>;
49
54
  getTx({
50
55
  hash
51
- }: TRequestGetTx, ctx?: IResolverContext): Promise<IResolverTransaction | null>;
56
+ }: TRequestGetTx, ctx?: IResolverContext$1): Promise<IResolverTransaction | null>;
52
57
  getBlock(): null;
53
58
  getBlocks(): never[];
54
59
  getUnconfirmedTxs(): never[];
@@ -63,54 +68,54 @@ declare class OCAPResolver implements IResolver {
63
68
  expandContext
64
69
  }: IGetAccountStateArgs & {
65
70
  traceMigration?: boolean;
66
- }, ctx?: IResolverContext): Promise<IResolverAccountState | null>;
71
+ }, ctx?: IResolverContext$1): Promise<IResolverAccountState | null>;
67
72
  getStakeState({
68
73
  address
69
- }: IAddressArgs, ctx?: IResolverContext): Promise<IResolverStakeState | null>;
74
+ }: IAddressArgs, ctx?: IResolverContext$1): Promise<IResolverStakeState | null>;
70
75
  getRollupState({
71
76
  address
72
- }: IAddressArgs, ctx?: IResolverContext): Promise<IResolverRollupState | null>;
77
+ }: IAddressArgs, ctx?: IResolverContext$1): Promise<IResolverRollupState | null>;
73
78
  getRollupBlock({
74
79
  hash,
75
80
  height,
76
81
  rollupAddress
77
- }: Partial<TRequestGetRollupBlock>, ctx?: IResolverContext): Promise<IRollupBlock | null>;
82
+ }: Partial<TRequestGetRollupBlock>, ctx?: IResolverContext$1): Promise<IRollupBlock | null>;
78
83
  getAssetState({
79
84
  address
80
- }: IAddressArgs, ctx?: IResolverContext): Promise<IAssetState | null>;
85
+ }: IAddressArgs, ctx?: IResolverContext$1): Promise<IAssetState | null>;
81
86
  getEvidenceState({
82
87
  hash
83
- }: TRequestGetEvidenceState, ctx?: IResolverContext): Promise<IEvidenceState | null>;
88
+ }: TRequestGetEvidenceState, ctx?: IResolverContext$1): Promise<IEvidenceState | null>;
84
89
  getFactoryState({
85
90
  address
86
- }: IAddressArgs, ctx?: IResolverContext): Promise<IResolverFactoryState | null>;
91
+ }: IAddressArgs, ctx?: IResolverContext$1): Promise<IResolverFactoryState | null>;
87
92
  getTokenState({
88
93
  address
89
- }: IAddressArgs, ctx?: IResolverContext): Promise<ITokenState | null>;
90
- getTokenFactoryState(args: IAddressArgs, ctx?: IResolverContext): Promise<ITokenFactoryState | null>;
94
+ }: IAddressArgs, ctx?: IResolverContext$1): Promise<ITokenState | null>;
95
+ getTokenFactoryState(args: IAddressArgs, ctx?: IResolverContext$1): Promise<ITokenFactoryState | null>;
91
96
  getDelegateState({
92
97
  address
93
- }: IAddressArgs, ctx?: IResolverContext): Promise<IDelegateState | null>;
98
+ }: IAddressArgs, ctx?: IResolverContext$1): Promise<IDelegateState | null>;
94
99
  getAccountTokens({
95
100
  address,
96
101
  token
97
- }: IGetAccountTokensArgs, ctx?: IResolverContext): Promise<ITokenInfo[]>;
102
+ }: IGetAccountTokensArgs, ctx?: IResolverContext$1): Promise<ITokenInfo[]>;
98
103
  getForgeState(): Promise<Record<string, unknown>>;
99
104
  getForgeStats(): Promise<IResolverForgeStats>;
100
- listTransactions(args?: Partial<TRequestListTransactions>, ctx?: IResolverContext): Promise<IResolverListTransactionsResult>;
101
- listAssets(args?: Partial<TRequestListAssets>, ctx?: IResolverContext): Promise<IResolverListAssetsResult>;
102
- listAssetTransactions(args?: Partial<TRequestListAssetTransactions>, ctx?: IResolverContext): Promise<IResolverListTransactionsResult>;
103
- listFactories(args?: Partial<TRequestListFactories>, ctx?: IResolverContext): Promise<IResolverListFactoriesResult>;
105
+ listTransactions(args?: Partial<TRequestListTransactions>, ctx?: IResolverContext$1): Promise<IResolverListTransactionsResult>;
106
+ listAssets(args?: Partial<TRequestListAssets>, ctx?: IResolverContext$1): Promise<IResolverListAssetsResult>;
107
+ listAssetTransactions(args?: Partial<TRequestListAssetTransactions>, ctx?: IResolverContext$1): Promise<IResolverListTransactionsResult>;
108
+ listFactories(args?: Partial<TRequestListFactories>, ctx?: IResolverContext$1): Promise<IResolverListFactoriesResult>;
104
109
  listTopAccounts(args?: Partial<TRequestListTopAccounts>): Promise<IResolverListAccountsResult>;
105
- listTokens(args?: Partial<TRequestListTokens>, ctx?: IResolverContext): Promise<IResolverListTokensResult>;
106
- listTokenFactories(args?: Partial<TRequestListTokenFactories>, ctx?: IResolverContext): Promise<IResolverListTokenFactoriesResult>;
107
- listStakes(args?: Partial<TRequestListStakes>, ctx?: IResolverContext): Promise<IResolverListStakesResult>;
108
- listRollups(args?: Partial<TRequestListRollups>, ctx?: IResolverContext): Promise<IResolverListRollupsResult>;
109
- listRollupBlocks(args?: Partial<TRequestListRollupBlocks>, ctx?: IResolverContext): Promise<IResolverListRollupBlocksResult>;
110
- listRollupValidators(args?: Partial<TRequestListRollupValidators>, ctx?: IResolverContext): Promise<IResolverListRollupValidatorsResult>;
111
- listDelegations(args?: Partial<TRequestListDelegations>, ctx?: IResolverContext): Promise<IResolverListDelegationsResult>;
112
- verifyAccountRisk(args?: Partial<TRequestVerifyAccountRisk>, ctx?: IResolverContext): Promise<TVerifyAccountRiskResult | null> | null;
113
- listTokenFlows(args?: Partial<TRequestListTokenFlows>, ctx?: IResolverContext): Promise<ITokenFlowsResult> | never[];
110
+ listTokens(args?: Partial<TRequestListTokens>, ctx?: IResolverContext$1): Promise<IResolverListTokensResult>;
111
+ listTokenFactories(args?: Partial<TRequestListTokenFactories>, ctx?: IResolverContext$1): Promise<IResolverListTokenFactoriesResult>;
112
+ listStakes(args?: Partial<TRequestListStakes>, ctx?: IResolverContext$1): Promise<IResolverListStakesResult>;
113
+ listRollups(args?: Partial<TRequestListRollups>, ctx?: IResolverContext$1): Promise<IResolverListRollupsResult>;
114
+ listRollupBlocks(args?: Partial<TRequestListRollupBlocks>, ctx?: IResolverContext$1): Promise<IResolverListRollupBlocksResult>;
115
+ listRollupValidators(args?: Partial<TRequestListRollupValidators>, ctx?: IResolverContext$1): Promise<IResolverListRollupValidatorsResult>;
116
+ listDelegations(args?: Partial<TRequestListDelegations>, ctx?: IResolverContext$1): Promise<IResolverListDelegationsResult>;
117
+ verifyAccountRisk(args?: Partial<TRequestVerifyAccountRisk>, ctx?: IResolverContext$1): Promise<TVerifyAccountRiskResult | null> | null;
118
+ listTokenFlows(args?: Partial<TRequestListTokenFlows>, ctx?: IResolverContext$1): Promise<ITokenFlowsResult> | never[];
114
119
  search(args: Partial<TRequestSearch>): Promise<{
115
120
  results: Array<{
116
121
  type: string;
@@ -122,6 +127,7 @@ declare class OCAPResolver implements IResolver {
122
127
  max: string;
123
128
  };
124
129
  };
130
+ shutdown(): Promise<void>;
125
131
  listBlocks(): {
126
132
  blocks: never[];
127
133
  };
@@ -140,8 +146,8 @@ declare class OCAPResolver implements IResolver {
140
146
  expandContext,
141
147
  ctx
142
148
  }: IGetStateParams): Promise<T | null>;
143
- _doPaginatedSearch<TArgs extends Record<string, unknown>>(fn: string, args: TArgs, listKey: string, dataKey?: string | string[] | null, ctx?: IResolverContext): Promise<Record<string, unknown>>;
144
- _formatTx(tx: IResolverTransaction | null, ctx?: IResolverContext): Promise<IResolverTransaction | null>;
149
+ _doPaginatedSearch<TArgs extends Record<string, unknown>>(fn: string, args: TArgs, listKey: string, dataKey?: string | string[] | null, ctx?: IResolverContext$1): Promise<Record<string, unknown>>;
150
+ _formatTx(tx: IResolverTransaction | null, ctx?: IResolverContext$1): Promise<IResolverTransaction | null>;
145
151
  _getAllResults<T>(dataKey: string, fn: (paging: IResolverPaging) => Promise<any>, limit?: number): Promise<T[]>;
146
152
  formatTokenArray(tokens: ITokenInfo[]): Promise<ITokenInfo[]>;
147
153
  formatTokenMap(tokens: Record<string, string>): Promise<ITokenInfo[]>;
package/esm/index.mjs CHANGED
@@ -242,16 +242,19 @@ var OCAPResolver = class {
242
242
  * @param params Parameters to bootstrap the resolver
243
243
  * @param params.statedb @ocap/statedb adapter
244
244
  * @param params.indexdb @ocap/indexdb adapter
245
+ * @param params.ledger @arcblock/ledger-core ledger instance
245
246
  * @param params.config @ocap/config object
246
247
  * @param params.filter bloom filter to do anti-replay check
247
248
  * @param params.validateTokenConfig should we validate token supply and token-holder balance, should be disabled when starting an existing chain
248
249
  */
249
- constructor({ statedb, indexdb, config, filter, validateTokenConfig = true, logger }) {
250
+ constructor({ statedb, indexdb, ledger, config, filter, validateTokenConfig = true, logger }) {
250
251
  if (!statedb) throw new Error("OCAP Resolver requires a valid statedb implementation to work");
251
252
  if (!indexdb) throw new Error("OCAP Resolver requires a valid indexdb implementation to work");
253
+ if (!ledger) throw new Error("OCAP Resolver requires a valid ledger implementation to work");
252
254
  this.logger = logger || console;
253
255
  this.statedb = statedb;
254
256
  this.indexdb = indexdb;
257
+ this.ledger = ledger;
255
258
  this.filter = filter;
256
259
  this.config = Object.freeze(Config.validate(config));
257
260
  this.chainAddr = md5(config.chainId);
@@ -277,7 +280,7 @@ var OCAPResolver = class {
277
280
  this.formatTx = this._formatTx.bind(this);
278
281
  if (validateTokenConfig) this.validateTokenConfig();
279
282
  this.connectIndexDB();
280
- this.initializeStateDB().catch((err) => {
283
+ this.initializationPromise = this.initializeStateDB().catch((err) => {
281
284
  this.logger.error("Failed to initialize statedb:", err.message);
282
285
  process.exit(1);
283
286
  });
@@ -293,6 +296,7 @@ var OCAPResolver = class {
293
296
  txBase64,
294
297
  statedb: this.statedb,
295
298
  indexdb: this.indexdb,
299
+ ledger: this.ledger,
296
300
  config: this.config,
297
301
  filter: this.filter,
298
302
  logger: this.logger,
@@ -304,6 +308,7 @@ var OCAPResolver = class {
304
308
  return new Promise((resolve, reject) => {
305
309
  const task = async () => {
306
310
  try {
311
+ await this.initializationPromise;
307
312
  resolve((await this.executor.execute(context)).txHash);
308
313
  } catch (err) {
309
314
  reject(err);
@@ -776,6 +781,14 @@ var OCAPResolver = class {
776
781
  totalGas = totalGas.add(new BN(txGas.price).mul(new BN(txGas.updateState)).mul(new BN(estimate.update)));
777
782
  return { estimate: { max: totalGas.toString(10) } };
778
783
  }
784
+ async shutdown() {
785
+ if (this.queue) {
786
+ this.queue.autostart = false;
787
+ if (this.queue.length > 0) await new Promise((resolve) => {
788
+ this.queue.on("end", resolve);
789
+ });
790
+ }
791
+ }
779
792
  listBlocks() {
780
793
  return { blocks: [] };
781
794
  }
@@ -825,7 +838,7 @@ var OCAPResolver = class {
825
838
  }, { commitMessage: "initialize chain" });
826
839
  if (this.tokenItx) {
827
840
  await this.runAsLambda(async (txn) => {
828
- const existToken = await this.statedb.token.get(this.tokenItx.address);
841
+ const existToken = await this.statedb.token.get(this.tokenItx.address, { txn });
829
842
  if (!existToken) {
830
843
  const state = tokenState.create(this.tokenItx, context);
831
844
  const result = await tokenDB.create(this.tokenItx.address, state, { txn });
@@ -1108,6 +1121,7 @@ var OCAPResolver = class {
1108
1121
  const tasks = Object.keys(tokens).map((address) => this.tokenCache.get(address));
1109
1122
  const tokenStates = await Promise.all(tasks);
1110
1123
  return Object.keys(tokens).map((address) => ({
1124
+ address,
1111
1125
  value: tokens[address],
1112
1126
  ...extractTokenMeta(address, tokenStates)
1113
1127
  }));
package/esm/types.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { Address, BN, DirectionMap, Hash, IAccountState, IAddressArgs, IAny, IAssetFactoryState, IAssetState, IBalanceTable, IChainConfig, IChainConfig as IChainConfig$1, IChainState, IDelegateState, IEvidenceState, IExecutedContext, IForeignToken, IGetAccountStateArgs, IGetAccountTokensArgs, IIndexDB, IIndexDB as IIndexDB$1, IIndexTable, IIndexTable as IIndexTable$1, IListAccountsResult, IListAssetsResult, IListDelegationsResult, IListFactoriesResult, IListRollupBlocksResult, IListRollupValidatorsResult, IListRollupsResult, IListStakesResult, IListTokenFactoriesResult, IListTokensResult, IListTransactionsResult, IOperationContext, IPipelineLogger, IPipelineLogger as IPipelineLogger$1, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext, IResolverContext as IResolverContext$1, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverPaging as IResolverPaging$1, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverTxItxJson, IResolverValidatorsInfo, IRollupBlock, IRollupState, IRollupValidator, IStakeState, IStateContext, IStateDB, IStateDB as IStateDB$1, IStateTable, IStateTable as IStateTable$1, ITokenConfig, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenInfo as ITokenInfo$1, ITokenMetadata, ITokenState, ITransactionConfig, ITxGasConfig, ITxStakeConfig, ITxState, IVaultsConfig, IndexTableTypeMap, Promisable, TAccountFilter, TAccountToken, TAddressFilter, TAssetFilter, TDelegationFilter, TFactoryFilter, TIndexedAccountState, TIndexedAssetState, TIndexedDelegationState, TIndexedFactoryState, TIndexedRollupBlock, TIndexedRollupState, TIndexedRollupValidator, TIndexedStakeState, TIndexedTokenFactoryState, TIndexedTokenState, TIndexedTokenState as TIndexedTokenState$1, TIndexedTransaction, TPage, TPageInfo, TPageOrder, TRangeFilter, TReceiptChange, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TRollupFilter, TSearchResult, TStakeFilter, TTimeFilter, TTokenDistribution, TTokenFactoryFilter, TTokenFilter, TTokenMeta, TTransactionReceipt, TTxFilter, TTypeFilter, TValidatorFilter, TValidityFilter, TVerifyAccountRiskResult, TokenBalanceMap, ValidityMap } from "@ocap/types";
1
+ import { Address, BN, DirectionMap, Hash, IAccountState, IAddressArgs, IAny, IAssetFactoryState, IAssetState, IBalanceTable, IChainConfig, IChainConfig as IChainConfig$1, IChainState, IDelegateState, IEvidenceState, IExecutedContext, IForeignToken, IGetAccountStateArgs, IGetAccountTokensArgs, IIndexDB, IIndexDB as IIndexDB$1, IIndexTable, IIndexTable as IIndexTable$1, ILedger, IListAccountsResult, IListAssetsResult, IListDelegationsResult, IListFactoriesResult, IListRollupBlocksResult, IListRollupValidatorsResult, IListRollupsResult, IListStakesResult, IListTokenFactoriesResult, IListTokensResult, IListTransactionsResult, IOperationContext, IPipelineLogger, IPipelineLogger as IPipelineLogger$1, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext, IResolverContext as IResolverContext$1, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverPaging as IResolverPaging$1, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverTxItxJson, IResolverValidatorsInfo, IRollupBlock, IRollupState, IRollupValidator, IStakeState, IStateContext, IStateDB, IStateDB as IStateDB$1, IStateTable, IStateTable as IStateTable$1, ITokenConfig, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenInfo as ITokenInfo$1, ITokenMetadata, ITokenState, ITransactionConfig, ITxGasConfig, ITxStakeConfig, ITxState, IVaultsConfig, IndexTableTypeMap, Promisable, TAccountFilter, TAccountToken, TAddressFilter, TAssetFilter, TDelegationFilter, TFactoryFilter, TIndexedAccountState, TIndexedAssetState, TIndexedDelegationState, TIndexedFactoryState, TIndexedRollupBlock, TIndexedRollupState, TIndexedRollupValidator, TIndexedStakeState, TIndexedTokenFactoryState, TIndexedTokenState, TIndexedTokenState as TIndexedTokenState$1, TIndexedTransaction, TPage, TPageInfo, TPageOrder, TRangeFilter, TReceiptChange, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TRollupFilter, TSearchResult, TStakeFilter, TTimeFilter, TTokenDistribution, TTokenFactoryFilter, TTokenFilter, TTokenMeta, TTransactionReceipt, TTxFilter, TTypeFilter, TValidatorFilter, TValidityFilter, TVerifyAccountRiskResult, TokenBalanceMap, ValidityMap } from "@ocap/types";
2
2
 
3
3
  //#region src/types.d.ts
4
4
 
@@ -81,6 +81,7 @@ interface ITrustedAccountConfig {
81
81
  interface IResolverParams {
82
82
  statedb: IStateDB$1;
83
83
  indexdb: IIndexDB$1;
84
+ ledger: ILedger;
84
85
  config: IChainConfig$1;
85
86
  filter?: IFilter;
86
87
  validateTokenConfig?: boolean;
package/lib/index.cjs CHANGED
@@ -256,16 +256,19 @@ var OCAPResolver = class {
256
256
  * @param params Parameters to bootstrap the resolver
257
257
  * @param params.statedb @ocap/statedb adapter
258
258
  * @param params.indexdb @ocap/indexdb adapter
259
+ * @param params.ledger @arcblock/ledger-core ledger instance
259
260
  * @param params.config @ocap/config object
260
261
  * @param params.filter bloom filter to do anti-replay check
261
262
  * @param params.validateTokenConfig should we validate token supply and token-holder balance, should be disabled when starting an existing chain
262
263
  */
263
- constructor({ statedb, indexdb, config, filter, validateTokenConfig = true, logger }) {
264
+ constructor({ statedb, indexdb, ledger, config, filter, validateTokenConfig = true, logger }) {
264
265
  if (!statedb) throw new Error("OCAP Resolver requires a valid statedb implementation to work");
265
266
  if (!indexdb) throw new Error("OCAP Resolver requires a valid indexdb implementation to work");
267
+ if (!ledger) throw new Error("OCAP Resolver requires a valid ledger implementation to work");
266
268
  this.logger = logger || console;
267
269
  this.statedb = statedb;
268
270
  this.indexdb = indexdb;
271
+ this.ledger = ledger;
269
272
  this.filter = filter;
270
273
  this.config = Object.freeze(_ocap_config.validate(config));
271
274
  this.chainAddr = (0, _ocap_util_lib_md5.md5)(config.chainId);
@@ -291,7 +294,7 @@ var OCAPResolver = class {
291
294
  this.formatTx = this._formatTx.bind(this);
292
295
  if (validateTokenConfig) this.validateTokenConfig();
293
296
  this.connectIndexDB();
294
- this.initializeStateDB().catch((err) => {
297
+ this.initializationPromise = this.initializeStateDB().catch((err) => {
295
298
  this.logger.error("Failed to initialize statedb:", err.message);
296
299
  process.exit(1);
297
300
  });
@@ -307,6 +310,7 @@ var OCAPResolver = class {
307
310
  txBase64,
308
311
  statedb: this.statedb,
309
312
  indexdb: this.indexdb,
313
+ ledger: this.ledger,
310
314
  config: this.config,
311
315
  filter: this.filter,
312
316
  logger: this.logger,
@@ -318,6 +322,7 @@ var OCAPResolver = class {
318
322
  return new Promise((resolve, reject) => {
319
323
  const task = async () => {
320
324
  try {
325
+ await this.initializationPromise;
321
326
  resolve((await this.executor.execute(context)).txHash);
322
327
  } catch (err) {
323
328
  reject(err);
@@ -790,6 +795,14 @@ var OCAPResolver = class {
790
795
  totalGas = totalGas.add(new _ocap_util.BN(txGas.price).mul(new _ocap_util.BN(txGas.updateState)).mul(new _ocap_util.BN(estimate.update)));
791
796
  return { estimate: { max: totalGas.toString(10) } };
792
797
  }
798
+ async shutdown() {
799
+ if (this.queue) {
800
+ this.queue.autostart = false;
801
+ if (this.queue.length > 0) await new Promise((resolve) => {
802
+ this.queue.on("end", resolve);
803
+ });
804
+ }
805
+ }
793
806
  listBlocks() {
794
807
  return { blocks: [] };
795
808
  }
@@ -839,7 +852,7 @@ var OCAPResolver = class {
839
852
  }, { commitMessage: "initialize chain" });
840
853
  if (this.tokenItx) {
841
854
  await this.runAsLambda(async (txn) => {
842
- const existToken = await this.statedb.token.get(this.tokenItx.address);
855
+ const existToken = await this.statedb.token.get(this.tokenItx.address, { txn });
843
856
  if (!existToken) {
844
857
  const state = tokenState.create(this.tokenItx, context);
845
858
  const result = await tokenDB.create(this.tokenItx.address, state, { txn });
@@ -1122,6 +1135,7 @@ var OCAPResolver = class {
1122
1135
  const tasks = Object.keys(tokens).map((address) => this.tokenCache.get(address));
1123
1136
  const tokenStates = await Promise.all(tasks);
1124
1137
  return Object.keys(tokens).map((address) => ({
1138
+ address,
1125
1139
  value: tokens[address],
1126
1140
  ...extractTokenMeta(address, tokenStates)
1127
1141
  }));
package/lib/index.d.cts CHANGED
@@ -1,6 +1,7 @@
1
- import { IAddressArgs, IAssetState, IChainConfig, IChunkIterator, IDataObject, IDelegateState, IEvidenceState, IFilter, IGetAccountStateArgs, IGetAccountTokensArgs, IGetStateParams, IIndexDB, IListChunksParams, IPaginatedResult, IPipelineLogger, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverParams, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverValidatorsInfo, IRollupBlock, IStateDB, ITokenCache, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenState, TIndexedTokenState, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TTokenDistribution, TVerifyAccountRiskResult } from "./types.cjs";
1
+ import { IAddressArgs, IAssetState, IChainConfig, IChunkIterator, IDataObject, IDelegateState, IEvidenceState, IFilter, IGetAccountStateArgs, IGetAccountTokensArgs, IGetStateParams, IIndexDB as IIndexDB$1, IListChunksParams, IPaginatedResult, IPipelineLogger as IPipelineLogger$1, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext as IResolverContext$1, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverParams, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverValidatorsInfo, IRollupBlock, IStateDB as IStateDB$1, ITokenCache, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenState, TIndexedTokenState as TIndexedTokenState$1, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TTokenDistribution, TVerifyAccountRiskResult } from "./types.cjs";
2
2
  import { MigrationChainManager } from "./migration-chain.cjs";
3
3
  import { TokenDistributionManager } from "./token-distribution.cjs";
4
+ import { ILedger } from "@ocap/types";
4
5
  import { createExecutor } from "@ocap/tx-protocols";
5
6
  import Queue from "queue";
6
7
 
@@ -8,25 +9,28 @@ import Queue from "queue";
8
9
  declare const formatData: (data: IDataObject | null | undefined) => IDataObject | null | undefined;
9
10
  declare const formatDelegationOps: (state: IDelegateState) => any;
10
11
  declare class OCAPResolver implements IResolver {
11
- statedb: IStateDB;
12
- indexdb: IIndexDB;
12
+ statedb: IStateDB$1;
13
+ indexdb: IIndexDB$1;
14
+ ledger: ILedger;
13
15
  filter?: IFilter;
14
16
  config: IChainConfig;
15
17
  chainAddr: string;
16
- tokenItx: TIndexedTokenState | null;
18
+ tokenItx: TIndexedTokenState$1 | null;
17
19
  consensus: string;
18
20
  queue: Queue;
19
21
  tokenCache: ITokenCache;
20
22
  tokenDistribution: TokenDistributionManager;
21
23
  executor: ReturnType<typeof createExecutor>;
22
- logger: IPipelineLogger;
24
+ logger: IPipelineLogger$1;
23
25
  migrationChain?: MigrationChainManager;
24
- formatTx: (tx: IResolverTransaction | null, ctx?: IResolverContext) => Promise<IResolverTransaction | null>;
26
+ formatTx: (tx: IResolverTransaction | null, ctx?: IResolverContext$1) => Promise<IResolverTransaction | null>;
27
+ private initializationPromise;
25
28
  /**
26
29
  * Creates an instance of OCAPResolver.
27
30
  * @param params Parameters to bootstrap the resolver
28
31
  * @param params.statedb @ocap/statedb adapter
29
32
  * @param params.indexdb @ocap/indexdb adapter
33
+ * @param params.ledger @arcblock/ledger-core ledger instance
30
34
  * @param params.config @ocap/config object
31
35
  * @param params.filter bloom filter to do anti-replay check
32
36
  * @param params.validateTokenConfig should we validate token supply and token-holder balance, should be disabled when starting an existing chain
@@ -34,6 +38,7 @@ declare class OCAPResolver implements IResolver {
34
38
  constructor({
35
39
  statedb,
36
40
  indexdb,
41
+ ledger,
37
42
  config,
38
43
  filter,
39
44
  validateTokenConfig,
@@ -45,10 +50,10 @@ declare class OCAPResolver implements IResolver {
45
50
  }: {
46
51
  tx: string;
47
52
  extra?: Record<string, unknown>;
48
- }, ctx?: IResolverContext): Promise<string>;
53
+ }, ctx?: IResolverContext$1): Promise<string>;
49
54
  getTx({
50
55
  hash
51
- }: TRequestGetTx, ctx?: IResolverContext): Promise<IResolverTransaction | null>;
56
+ }: TRequestGetTx, ctx?: IResolverContext$1): Promise<IResolverTransaction | null>;
52
57
  getBlock(): null;
53
58
  getBlocks(): never[];
54
59
  getUnconfirmedTxs(): never[];
@@ -63,54 +68,54 @@ declare class OCAPResolver implements IResolver {
63
68
  expandContext
64
69
  }: IGetAccountStateArgs & {
65
70
  traceMigration?: boolean;
66
- }, ctx?: IResolverContext): Promise<IResolverAccountState | null>;
71
+ }, ctx?: IResolverContext$1): Promise<IResolverAccountState | null>;
67
72
  getStakeState({
68
73
  address
69
- }: IAddressArgs, ctx?: IResolverContext): Promise<IResolverStakeState | null>;
74
+ }: IAddressArgs, ctx?: IResolverContext$1): Promise<IResolverStakeState | null>;
70
75
  getRollupState({
71
76
  address
72
- }: IAddressArgs, ctx?: IResolverContext): Promise<IResolverRollupState | null>;
77
+ }: IAddressArgs, ctx?: IResolverContext$1): Promise<IResolverRollupState | null>;
73
78
  getRollupBlock({
74
79
  hash,
75
80
  height,
76
81
  rollupAddress
77
- }: Partial<TRequestGetRollupBlock>, ctx?: IResolverContext): Promise<IRollupBlock | null>;
82
+ }: Partial<TRequestGetRollupBlock>, ctx?: IResolverContext$1): Promise<IRollupBlock | null>;
78
83
  getAssetState({
79
84
  address
80
- }: IAddressArgs, ctx?: IResolverContext): Promise<IAssetState | null>;
85
+ }: IAddressArgs, ctx?: IResolverContext$1): Promise<IAssetState | null>;
81
86
  getEvidenceState({
82
87
  hash
83
- }: TRequestGetEvidenceState, ctx?: IResolverContext): Promise<IEvidenceState | null>;
88
+ }: TRequestGetEvidenceState, ctx?: IResolverContext$1): Promise<IEvidenceState | null>;
84
89
  getFactoryState({
85
90
  address
86
- }: IAddressArgs, ctx?: IResolverContext): Promise<IResolverFactoryState | null>;
91
+ }: IAddressArgs, ctx?: IResolverContext$1): Promise<IResolverFactoryState | null>;
87
92
  getTokenState({
88
93
  address
89
- }: IAddressArgs, ctx?: IResolverContext): Promise<ITokenState | null>;
90
- getTokenFactoryState(args: IAddressArgs, ctx?: IResolverContext): Promise<ITokenFactoryState | null>;
94
+ }: IAddressArgs, ctx?: IResolverContext$1): Promise<ITokenState | null>;
95
+ getTokenFactoryState(args: IAddressArgs, ctx?: IResolverContext$1): Promise<ITokenFactoryState | null>;
91
96
  getDelegateState({
92
97
  address
93
- }: IAddressArgs, ctx?: IResolverContext): Promise<IDelegateState | null>;
98
+ }: IAddressArgs, ctx?: IResolverContext$1): Promise<IDelegateState | null>;
94
99
  getAccountTokens({
95
100
  address,
96
101
  token
97
- }: IGetAccountTokensArgs, ctx?: IResolverContext): Promise<ITokenInfo[]>;
102
+ }: IGetAccountTokensArgs, ctx?: IResolverContext$1): Promise<ITokenInfo[]>;
98
103
  getForgeState(): Promise<Record<string, unknown>>;
99
104
  getForgeStats(): Promise<IResolverForgeStats>;
100
- listTransactions(args?: Partial<TRequestListTransactions>, ctx?: IResolverContext): Promise<IResolverListTransactionsResult>;
101
- listAssets(args?: Partial<TRequestListAssets>, ctx?: IResolverContext): Promise<IResolverListAssetsResult>;
102
- listAssetTransactions(args?: Partial<TRequestListAssetTransactions>, ctx?: IResolverContext): Promise<IResolverListTransactionsResult>;
103
- listFactories(args?: Partial<TRequestListFactories>, ctx?: IResolverContext): Promise<IResolverListFactoriesResult>;
105
+ listTransactions(args?: Partial<TRequestListTransactions>, ctx?: IResolverContext$1): Promise<IResolverListTransactionsResult>;
106
+ listAssets(args?: Partial<TRequestListAssets>, ctx?: IResolverContext$1): Promise<IResolverListAssetsResult>;
107
+ listAssetTransactions(args?: Partial<TRequestListAssetTransactions>, ctx?: IResolverContext$1): Promise<IResolverListTransactionsResult>;
108
+ listFactories(args?: Partial<TRequestListFactories>, ctx?: IResolverContext$1): Promise<IResolverListFactoriesResult>;
104
109
  listTopAccounts(args?: Partial<TRequestListTopAccounts>): Promise<IResolverListAccountsResult>;
105
- listTokens(args?: Partial<TRequestListTokens>, ctx?: IResolverContext): Promise<IResolverListTokensResult>;
106
- listTokenFactories(args?: Partial<TRequestListTokenFactories>, ctx?: IResolverContext): Promise<IResolverListTokenFactoriesResult>;
107
- listStakes(args?: Partial<TRequestListStakes>, ctx?: IResolverContext): Promise<IResolverListStakesResult>;
108
- listRollups(args?: Partial<TRequestListRollups>, ctx?: IResolverContext): Promise<IResolverListRollupsResult>;
109
- listRollupBlocks(args?: Partial<TRequestListRollupBlocks>, ctx?: IResolverContext): Promise<IResolverListRollupBlocksResult>;
110
- listRollupValidators(args?: Partial<TRequestListRollupValidators>, ctx?: IResolverContext): Promise<IResolverListRollupValidatorsResult>;
111
- listDelegations(args?: Partial<TRequestListDelegations>, ctx?: IResolverContext): Promise<IResolverListDelegationsResult>;
112
- verifyAccountRisk(args?: Partial<TRequestVerifyAccountRisk>, ctx?: IResolverContext): Promise<TVerifyAccountRiskResult | null> | null;
113
- listTokenFlows(args?: Partial<TRequestListTokenFlows>, ctx?: IResolverContext): Promise<ITokenFlowsResult> | never[];
110
+ listTokens(args?: Partial<TRequestListTokens>, ctx?: IResolverContext$1): Promise<IResolverListTokensResult>;
111
+ listTokenFactories(args?: Partial<TRequestListTokenFactories>, ctx?: IResolverContext$1): Promise<IResolverListTokenFactoriesResult>;
112
+ listStakes(args?: Partial<TRequestListStakes>, ctx?: IResolverContext$1): Promise<IResolverListStakesResult>;
113
+ listRollups(args?: Partial<TRequestListRollups>, ctx?: IResolverContext$1): Promise<IResolverListRollupsResult>;
114
+ listRollupBlocks(args?: Partial<TRequestListRollupBlocks>, ctx?: IResolverContext$1): Promise<IResolverListRollupBlocksResult>;
115
+ listRollupValidators(args?: Partial<TRequestListRollupValidators>, ctx?: IResolverContext$1): Promise<IResolverListRollupValidatorsResult>;
116
+ listDelegations(args?: Partial<TRequestListDelegations>, ctx?: IResolverContext$1): Promise<IResolverListDelegationsResult>;
117
+ verifyAccountRisk(args?: Partial<TRequestVerifyAccountRisk>, ctx?: IResolverContext$1): Promise<TVerifyAccountRiskResult | null> | null;
118
+ listTokenFlows(args?: Partial<TRequestListTokenFlows>, ctx?: IResolverContext$1): Promise<ITokenFlowsResult> | never[];
114
119
  search(args: Partial<TRequestSearch>): Promise<{
115
120
  results: Array<{
116
121
  type: string;
@@ -122,6 +127,7 @@ declare class OCAPResolver implements IResolver {
122
127
  max: string;
123
128
  };
124
129
  };
130
+ shutdown(): Promise<void>;
125
131
  listBlocks(): {
126
132
  blocks: never[];
127
133
  };
@@ -140,8 +146,8 @@ declare class OCAPResolver implements IResolver {
140
146
  expandContext,
141
147
  ctx
142
148
  }: IGetStateParams): Promise<T | null>;
143
- _doPaginatedSearch<TArgs extends Record<string, unknown>>(fn: string, args: TArgs, listKey: string, dataKey?: string | string[] | null, ctx?: IResolverContext): Promise<Record<string, unknown>>;
144
- _formatTx(tx: IResolverTransaction | null, ctx?: IResolverContext): Promise<IResolverTransaction | null>;
149
+ _doPaginatedSearch<TArgs extends Record<string, unknown>>(fn: string, args: TArgs, listKey: string, dataKey?: string | string[] | null, ctx?: IResolverContext$1): Promise<Record<string, unknown>>;
150
+ _formatTx(tx: IResolverTransaction | null, ctx?: IResolverContext$1): Promise<IResolverTransaction | null>;
145
151
  _getAllResults<T>(dataKey: string, fn: (paging: IResolverPaging) => Promise<any>, limit?: number): Promise<T[]>;
146
152
  formatTokenArray(tokens: ITokenInfo[]): Promise<ITokenInfo[]>;
147
153
  formatTokenMap(tokens: Record<string, string>): Promise<ITokenInfo[]>;
package/lib/types.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { Address, BN, DirectionMap, Hash, IAccountState, IAddressArgs, IAny, IAssetFactoryState, IAssetState, IBalanceTable, IChainConfig, IChainConfig as IChainConfig$1, IChainState, IDelegateState, IEvidenceState, IExecutedContext, IForeignToken, IGetAccountStateArgs, IGetAccountTokensArgs, IIndexDB, IIndexDB as IIndexDB$1, IIndexTable, IIndexTable as IIndexTable$1, IListAccountsResult, IListAssetsResult, IListDelegationsResult, IListFactoriesResult, IListRollupBlocksResult, IListRollupValidatorsResult, IListRollupsResult, IListStakesResult, IListTokenFactoriesResult, IListTokensResult, IListTransactionsResult, IOperationContext, IPipelineLogger, IPipelineLogger as IPipelineLogger$1, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext, IResolverContext as IResolverContext$1, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverPaging as IResolverPaging$1, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverTxItxJson, IResolverValidatorsInfo, IRollupBlock, IRollupState, IRollupValidator, IStakeState, IStateContext, IStateDB, IStateDB as IStateDB$1, IStateTable, IStateTable as IStateTable$1, ITokenConfig, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenInfo as ITokenInfo$1, ITokenMetadata, ITokenState, ITransactionConfig, ITxGasConfig, ITxStakeConfig, ITxState, IVaultsConfig, IndexTableTypeMap, Promisable, TAccountFilter, TAccountToken, TAddressFilter, TAssetFilter, TDelegationFilter, TFactoryFilter, TIndexedAccountState, TIndexedAssetState, TIndexedDelegationState, TIndexedFactoryState, TIndexedRollupBlock, TIndexedRollupState, TIndexedRollupValidator, TIndexedStakeState, TIndexedTokenFactoryState, TIndexedTokenState, TIndexedTokenState as TIndexedTokenState$1, TIndexedTransaction, TPage, TPageInfo, TPageOrder, TRangeFilter, TReceiptChange, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TRollupFilter, TSearchResult, TStakeFilter, TTimeFilter, TTokenDistribution, TTokenFactoryFilter, TTokenFilter, TTokenMeta, TTransactionReceipt, TTxFilter, TTypeFilter, TValidatorFilter, TValidityFilter, TVerifyAccountRiskResult, TokenBalanceMap, ValidityMap } from "@ocap/types";
1
+ import { Address, BN, DirectionMap, Hash, IAccountState, IAddressArgs, IAny, IAssetFactoryState, IAssetState, IBalanceTable, IChainConfig, IChainConfig as IChainConfig$1, IChainState, IDelegateState, IEvidenceState, IExecutedContext, IForeignToken, IGetAccountStateArgs, IGetAccountTokensArgs, IIndexDB, IIndexDB as IIndexDB$1, IIndexTable, IIndexTable as IIndexTable$1, ILedger, IListAccountsResult, IListAssetsResult, IListDelegationsResult, IListFactoriesResult, IListRollupBlocksResult, IListRollupValidatorsResult, IListRollupsResult, IListStakesResult, IListTokenFactoriesResult, IListTokensResult, IListTransactionsResult, IOperationContext, IPipelineLogger, IPipelineLogger as IPipelineLogger$1, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext, IResolverContext as IResolverContext$1, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverPaging as IResolverPaging$1, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverTxItxJson, IResolverValidatorsInfo, IRollupBlock, IRollupState, IRollupValidator, IStakeState, IStateContext, IStateDB, IStateDB as IStateDB$1, IStateTable, IStateTable as IStateTable$1, ITokenConfig, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenInfo as ITokenInfo$1, ITokenMetadata, ITokenState, ITransactionConfig, ITxGasConfig, ITxStakeConfig, ITxState, IVaultsConfig, IndexTableTypeMap, Promisable, TAccountFilter, TAccountToken, TAddressFilter, TAssetFilter, TDelegationFilter, TFactoryFilter, TIndexedAccountState, TIndexedAssetState, TIndexedDelegationState, TIndexedFactoryState, TIndexedRollupBlock, TIndexedRollupState, TIndexedRollupValidator, TIndexedStakeState, TIndexedTokenFactoryState, TIndexedTokenState, TIndexedTokenState as TIndexedTokenState$1, TIndexedTransaction, TPage, TPageInfo, TPageOrder, TRangeFilter, TReceiptChange, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TRollupFilter, TSearchResult, TStakeFilter, TTimeFilter, TTokenDistribution, TTokenFactoryFilter, TTokenFilter, TTokenMeta, TTransactionReceipt, TTxFilter, TTypeFilter, TValidatorFilter, TValidityFilter, TVerifyAccountRiskResult, TokenBalanceMap, ValidityMap } from "@ocap/types";
2
2
 
3
3
  //#region src/types.d.ts
4
4
 
@@ -81,6 +81,7 @@ interface ITrustedAccountConfig {
81
81
  interface IResolverParams {
82
82
  statedb: IStateDB$1;
83
83
  indexdb: IIndexDB$1;
84
+ ledger: ILedger;
84
85
  config: IChainConfig$1;
85
86
  filter?: IFilter;
86
87
  validateTokenConfig?: boolean;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.29.4",
6
+ "version": "1.29.6",
7
7
  "description": "GraphQL resolver built upon ocap statedb and GQL layer",
8
8
  "type": "module",
9
9
  "main": "./lib/index.cjs",
@@ -36,35 +36,36 @@
36
36
  "lint": "biome check",
37
37
  "lint:fix": "biome check --write",
38
38
  "test": "bun test",
39
- "coverage": "npm run test -- --coverage"
39
+ "coverage": "npm run test -- --coverage",
40
+ "clean": "rm -rf lib esm"
40
41
  },
41
42
  "keywords": [],
42
43
  "author": "wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)",
43
44
  "license": "MIT",
44
45
  "devDependencies": {
45
- "@arcblock/jwt": "1.29.4",
46
- "@ocap/indexdb-memory": "1.29.4",
47
- "@ocap/statedb-memory": "1.29.4",
46
+ "@arcblock/jwt": "1.29.6",
47
+ "@ocap/indexdb-memory": "1.29.6",
48
+ "@ocap/statedb-memory": "1.29.6",
48
49
  "@types/express": "^4.17.23",
49
50
  "@types/lodash": "^4.17.16",
50
51
  "@types/node": "^20.10.0",
51
52
  "tsdown": "^0.18.4"
52
53
  },
53
54
  "dependencies": {
54
- "@arcblock/did": "1.29.4",
55
- "@arcblock/did-ext": "1.29.4",
56
- "@arcblock/did-util": "1.29.4",
55
+ "@arcblock/did": "1.29.6",
56
+ "@arcblock/did-ext": "1.29.6",
57
+ "@arcblock/did-util": "1.29.6",
57
58
  "@arcblock/nft-display": "^3.2.3",
58
- "@arcblock/validator": "1.29.4",
59
- "@ocap/config": "1.29.4",
60
- "@ocap/indexdb": "1.29.4",
61
- "@ocap/mcrypto": "1.29.4",
62
- "@ocap/message": "1.29.4",
63
- "@ocap/state": "1.29.4",
64
- "@ocap/tx-protocols": "1.29.4",
65
- "@ocap/types": "1.29.4",
66
- "@ocap/util": "1.29.4",
67
- "@ocap/wallet": "1.29.4",
59
+ "@arcblock/validator": "1.29.6",
60
+ "@ocap/config": "1.29.6",
61
+ "@ocap/indexdb": "1.29.6",
62
+ "@ocap/mcrypto": "1.29.6",
63
+ "@ocap/message": "1.29.6",
64
+ "@ocap/state": "1.29.6",
65
+ "@ocap/tx-protocols": "1.29.6",
66
+ "@ocap/types": "1.29.6",
67
+ "@ocap/util": "1.29.6",
68
+ "@ocap/wallet": "1.29.6",
68
69
  "debug": "^4.4.3",
69
70
  "express": "^4.22.1",
70
71
  "lodash": "^4.17.23",