dequanto 0.1.80 → 0.1.84

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 (79) hide show
  1. package/lib/cjs/blocks/BlockDateResolver.js +59 -23
  2. package/lib/cjs/blocks/BlockDateResolver.js.map +1 -1
  3. package/lib/cjs/contracts/deploy/Deployments.js +2 -1
  4. package/lib/cjs/contracts/deploy/Deployments.js.map +1 -1
  5. package/lib/cjs/contracts/deploy/proxy/ProxyDeployment.js +1 -1
  6. package/lib/cjs/contracts/deploy/proxy/ProxyDeployment.js.map +1 -1
  7. package/lib/cjs/erc4337/Erc4337Factory.js +0 -1
  8. package/lib/cjs/erc4337/Erc4337Factory.js.map +1 -1
  9. package/lib/cjs/indexer/EventsIndexer.js +14 -2
  10. package/lib/cjs/indexer/EventsIndexer.js.map +1 -1
  11. package/lib/cjs/prebuilt-factories/TimelockControllerFactory.js +251 -0
  12. package/lib/cjs/prebuilt-factories/TimelockControllerFactory.js.map +1 -0
  13. package/lib/cjs/services/TimelockService/TimelockService.js +52 -2
  14. package/lib/cjs/services/TimelockService/TimelockService.js.map +1 -1
  15. package/lib/cjs/txs/TxWriter.js +1 -1
  16. package/lib/cjs/txs/TxWriter.js.map +1 -1
  17. package/lib/cjs/txs/agents/TimelockAgent.js +90 -0
  18. package/lib/cjs/txs/agents/TimelockAgent.js.map +1 -0
  19. package/lib/cjs/txs/agents/TxWriterAccountAgents.js +2 -0
  20. package/lib/cjs/txs/agents/TxWriterAccountAgents.js.map +1 -1
  21. package/lib/cjs/utils/$account.js +17 -1
  22. package/lib/cjs/utils/$account.js.map +1 -1
  23. package/lib/cjs/utils/$bigint.js +19 -2
  24. package/lib/cjs/utils/$bigint.js.map +1 -1
  25. package/lib/cjs/utils/$date.js +11 -0
  26. package/lib/cjs/utils/$date.js.map +1 -1
  27. package/lib/esm/blocks/BlockDateResolver.js.map +1 -1
  28. package/lib/esm/blocks/BlockDateResolver.mjs +59 -23
  29. package/lib/esm/contracts/deploy/Deployments.js.map +1 -1
  30. package/lib/esm/contracts/deploy/Deployments.mjs +2 -1
  31. package/lib/esm/contracts/deploy/proxy/ProxyDeployment.js.map +1 -1
  32. package/lib/esm/contracts/deploy/proxy/ProxyDeployment.mjs +1 -1
  33. package/lib/esm/erc4337/Erc4337Factory.js.map +1 -1
  34. package/lib/esm/erc4337/Erc4337Factory.mjs +0 -1
  35. package/lib/esm/indexer/EventsIndexer.js.map +1 -1
  36. package/lib/esm/indexer/EventsIndexer.mjs +14 -2
  37. package/lib/esm/prebuilt-factories/TimelockControllerFactory.js.map +1 -0
  38. package/lib/esm/prebuilt-factories/TimelockControllerFactory.mjs +244 -0
  39. package/lib/esm/services/TimelockService/TimelockService.js.map +1 -1
  40. package/lib/esm/services/TimelockService/TimelockService.mjs +52 -2
  41. package/lib/esm/txs/TxWriter.js.map +1 -1
  42. package/lib/esm/txs/TxWriter.mjs +1 -1
  43. package/lib/esm/txs/agents/TimelockAgent.js.map +1 -0
  44. package/lib/esm/txs/agents/TimelockAgent.mjs +85 -0
  45. package/lib/esm/txs/agents/TxWriterAccountAgents.js.map +1 -1
  46. package/lib/esm/txs/agents/TxWriterAccountAgents.mjs +2 -0
  47. package/lib/esm/utils/$account.js.map +1 -1
  48. package/lib/esm/utils/$account.mjs +17 -1
  49. package/lib/esm/utils/$bigint.js.map +1 -1
  50. package/lib/esm/utils/$bigint.mjs +19 -2
  51. package/lib/esm/utils/$date.js.map +1 -1
  52. package/lib/esm/utils/$date.mjs +11 -0
  53. package/lib/types/blocks/BlockDateResolver.d.ts +7 -5
  54. package/lib/types/contracts/deploy/Deployments.d.ts +3 -0
  55. package/lib/types/contracts/deploy/proxy/ProxyDeployment.d.ts +1 -0
  56. package/lib/types/models/TAccount.d.ts +7 -1
  57. package/lib/types/prebuilt-factories/TimelockControllerFactory.d.ts +188 -0
  58. package/lib/types/services/TimelockService/TimelockService.d.ts +18 -3
  59. package/lib/types/txs/TxWriter.d.ts +20 -13
  60. package/lib/types/txs/agents/TimelockAgent.d.ts +26 -0
  61. package/lib/types/txs/agents/TxWriterAccountAgents.d.ts +2 -2
  62. package/lib/types/utils/$account.d.ts +2 -1
  63. package/lib/types/utils/$bigint.d.ts +2 -1
  64. package/lib/types/utils/$date.d.ts +1 -0
  65. package/package.json +1 -1
  66. package/src/blocks/BlockDateResolver.ts +61 -28
  67. package/src/contracts/deploy/Deployments.ts +5 -1
  68. package/src/contracts/deploy/proxy/ProxyDeployment.ts +2 -1
  69. package/src/erc4337/Erc4337Factory.ts +0 -2
  70. package/src/indexer/EventsIndexer.ts +18 -3
  71. package/src/models/TAccount.ts +11 -1
  72. package/src/prebuilt-factories/TimelockControllerFactory.ts +582 -0
  73. package/src/services/TimelockService/TimelockService.ts +83 -7
  74. package/src/txs/TxWriter.ts +29 -17
  75. package/src/txs/agents/TimelockAgent.ts +116 -0
  76. package/src/txs/agents/TxWriterAccountAgents.ts +4 -2
  77. package/src/utils/$account.ts +18 -2
  78. package/src/utils/$bigint.ts +19 -2
  79. package/src/utils/$date.ts +11 -1
@@ -37,6 +37,7 @@ export interface IBeacon extends ContractBase {
37
37
  interface IDeploymentCtx {
38
38
  ImplementationContract: Constructor<ContractBase>
39
39
  deployer: IAccount
40
+ owner?: IAccount
40
41
  deployments: Deployments
41
42
  implementation: {
42
43
  address: TAddress
@@ -207,7 +208,7 @@ export class ProxyDeployment {
207
208
  await this.requireCompatibleStorageLayout(proxyId, ctx);
208
209
  $logger.log(`Upgrading ProxyAdmin(${contractProxyAdmin.address}) to ${implAddress} (${v}) from ${address}`);
209
210
  let receipt = await Interfaces.call(
210
- deployer,
211
+ ctx.owner ?? deployer,
211
212
  contractProxyAdmin,
212
213
  Interfaces.TransparentProxy[v].contractProxyAdmin.upgradeAndCall,
213
214
  contractProxy.address,
@@ -27,8 +27,6 @@ export class Erc4337Factory {
27
27
 
28
28
  $require.notNull(provider, `No 4337 provider information found for ${name} and platform "${platform}"`);
29
29
 
30
- console.log(`CreateService`, provider.contracts.entryPoint);
31
-
32
30
  return new Erc4337Service(client, explorer, {
33
31
  addresses: {
34
32
  entryPoint: provider.contracts.entryPoint,
@@ -106,7 +106,9 @@ export class EventsIndexer <TContract extends ContractBase> {
106
106
  > (
107
107
  event: TLogName | TLogName[] | '*',
108
108
  options?: {
109
+ // includes block
109
110
  fromBlock?: number
111
+ // includes block
110
112
  toBlock?: number
111
113
  blockRangeLimits?: WClient['blockRangeLimits']
112
114
  params?: Partial<TContract['Types']['Events'][TLogName]['outputParams']>
@@ -183,6 +185,10 @@ export class EventsIndexer <TContract extends ContractBase> {
183
185
  fromBlock?: number
184
186
  filterKey?: string
185
187
  }): Promise<TRange[]> {
188
+ let fromBlock = opts?.fromBlock ?? initialBlockNumber;
189
+ if (fromBlock != null) {
190
+ $require.lte(fromBlock, toBlock, `Invalid block range order`);
191
+ }
186
192
  let logsMetaArr = await this.storeMeta.fetch();
187
193
  let eventsBlock = alot(logsMetaArr)
188
194
  .filter(x => x.filterKey == opts?.filterKey)
@@ -198,15 +204,24 @@ export class EventsIndexer <TContract extends ContractBase> {
198
204
  if (hasInitialBlock === false) {
199
205
  let blockNr = opts?.fromBlock ?? await this.getInitialBlockNumber();
200
206
  logsMeta.filter(x => x.lastBlock == null).forEach(x => x.lastBlock = blockNr);
201
- };
207
+ }
202
208
 
203
209
  let ranges = [] as TRange[];
204
- let blockNumbers = [ ...logsMeta.map(x => x.lastBlock), toBlock ];
205
- let blockNumberSteps = alot(blockNumbers).distinct().sortBy(x => x).toArray();
210
+ let blockNumbers = [ ...logsMeta.map(x => x.lastBlock), toBlock ].filter(x => x <= toBlock);
206
211
 
212
+ let blockNumberSteps = alot(blockNumbers).distinct().sortBy(x => x).toArray();
213
+ if (blockNumberSteps.length === 1) {
214
+ let [ block ] = blockNumberSteps;
215
+ ranges.push({
216
+ fromBlock: block,
217
+ toBlock: block,
218
+ events: events
219
+ });
220
+ }
207
221
  for (let i = 0; i < blockNumberSteps.length - 1; i++) {
208
222
  let from = blockNumberSteps[i];
209
223
  if (i > 0) {
224
+ // The range includes both blocks: [x, y], but we want (x, y], so we make [x + 1, y]
210
225
  from += 1;
211
226
  }
212
227
  let to = blockNumberSteps[i + 1];
@@ -4,7 +4,7 @@ import { TEth } from './TEth';
4
4
  import { TPlatform } from './TPlatform';
5
5
 
6
6
  export interface IAccount {
7
- type?: 'eoa' | 'safe' | 'erc4337'
7
+ type?: 'eoa' | 'safe' | 'erc4337' | 'timelock'
8
8
  name?: string
9
9
  platform?: TPlatform
10
10
 
@@ -58,4 +58,14 @@ export interface Erc4337Account extends IAccount {
58
58
  operator: EoAccount
59
59
  }
60
60
 
61
+ export interface TimelockAccount extends IAccount {
62
+ type: 'timelock'
63
+ provider?: 'default' | string
64
+
65
+ // Erc4337 account must include platform information
66
+ platform: TPlatform
67
+
68
+ operator: EoAccount
69
+ }
70
+
61
71
  export type TAccount = string | IAccount | EoAccount | SafeAccount | Erc4337Account;