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.
- package/lib/cjs/blocks/BlockDateResolver.js +59 -23
- package/lib/cjs/blocks/BlockDateResolver.js.map +1 -1
- package/lib/cjs/contracts/deploy/Deployments.js +2 -1
- package/lib/cjs/contracts/deploy/Deployments.js.map +1 -1
- package/lib/cjs/contracts/deploy/proxy/ProxyDeployment.js +1 -1
- package/lib/cjs/contracts/deploy/proxy/ProxyDeployment.js.map +1 -1
- package/lib/cjs/erc4337/Erc4337Factory.js +0 -1
- package/lib/cjs/erc4337/Erc4337Factory.js.map +1 -1
- package/lib/cjs/indexer/EventsIndexer.js +14 -2
- package/lib/cjs/indexer/EventsIndexer.js.map +1 -1
- package/lib/cjs/prebuilt-factories/TimelockControllerFactory.js +251 -0
- package/lib/cjs/prebuilt-factories/TimelockControllerFactory.js.map +1 -0
- package/lib/cjs/services/TimelockService/TimelockService.js +52 -2
- package/lib/cjs/services/TimelockService/TimelockService.js.map +1 -1
- package/lib/cjs/txs/TxWriter.js +1 -1
- package/lib/cjs/txs/TxWriter.js.map +1 -1
- package/lib/cjs/txs/agents/TimelockAgent.js +90 -0
- package/lib/cjs/txs/agents/TimelockAgent.js.map +1 -0
- package/lib/cjs/txs/agents/TxWriterAccountAgents.js +2 -0
- package/lib/cjs/txs/agents/TxWriterAccountAgents.js.map +1 -1
- package/lib/cjs/utils/$account.js +17 -1
- package/lib/cjs/utils/$account.js.map +1 -1
- package/lib/cjs/utils/$bigint.js +19 -2
- package/lib/cjs/utils/$bigint.js.map +1 -1
- package/lib/cjs/utils/$date.js +11 -0
- package/lib/cjs/utils/$date.js.map +1 -1
- package/lib/esm/blocks/BlockDateResolver.js.map +1 -1
- package/lib/esm/blocks/BlockDateResolver.mjs +59 -23
- package/lib/esm/contracts/deploy/Deployments.js.map +1 -1
- package/lib/esm/contracts/deploy/Deployments.mjs +2 -1
- package/lib/esm/contracts/deploy/proxy/ProxyDeployment.js.map +1 -1
- package/lib/esm/contracts/deploy/proxy/ProxyDeployment.mjs +1 -1
- package/lib/esm/erc4337/Erc4337Factory.js.map +1 -1
- package/lib/esm/erc4337/Erc4337Factory.mjs +0 -1
- package/lib/esm/indexer/EventsIndexer.js.map +1 -1
- package/lib/esm/indexer/EventsIndexer.mjs +14 -2
- package/lib/esm/prebuilt-factories/TimelockControllerFactory.js.map +1 -0
- package/lib/esm/prebuilt-factories/TimelockControllerFactory.mjs +244 -0
- package/lib/esm/services/TimelockService/TimelockService.js.map +1 -1
- package/lib/esm/services/TimelockService/TimelockService.mjs +52 -2
- package/lib/esm/txs/TxWriter.js.map +1 -1
- package/lib/esm/txs/TxWriter.mjs +1 -1
- package/lib/esm/txs/agents/TimelockAgent.js.map +1 -0
- package/lib/esm/txs/agents/TimelockAgent.mjs +85 -0
- package/lib/esm/txs/agents/TxWriterAccountAgents.js.map +1 -1
- package/lib/esm/txs/agents/TxWriterAccountAgents.mjs +2 -0
- package/lib/esm/utils/$account.js.map +1 -1
- package/lib/esm/utils/$account.mjs +17 -1
- package/lib/esm/utils/$bigint.js.map +1 -1
- package/lib/esm/utils/$bigint.mjs +19 -2
- package/lib/esm/utils/$date.js.map +1 -1
- package/lib/esm/utils/$date.mjs +11 -0
- package/lib/types/blocks/BlockDateResolver.d.ts +7 -5
- package/lib/types/contracts/deploy/Deployments.d.ts +3 -0
- package/lib/types/contracts/deploy/proxy/ProxyDeployment.d.ts +1 -0
- package/lib/types/models/TAccount.d.ts +7 -1
- package/lib/types/prebuilt-factories/TimelockControllerFactory.d.ts +188 -0
- package/lib/types/services/TimelockService/TimelockService.d.ts +18 -3
- package/lib/types/txs/TxWriter.d.ts +20 -13
- package/lib/types/txs/agents/TimelockAgent.d.ts +26 -0
- package/lib/types/txs/agents/TxWriterAccountAgents.d.ts +2 -2
- package/lib/types/utils/$account.d.ts +2 -1
- package/lib/types/utils/$bigint.d.ts +2 -1
- package/lib/types/utils/$date.d.ts +1 -0
- package/package.json +1 -1
- package/src/blocks/BlockDateResolver.ts +61 -28
- package/src/contracts/deploy/Deployments.ts +5 -1
- package/src/contracts/deploy/proxy/ProxyDeployment.ts +2 -1
- package/src/erc4337/Erc4337Factory.ts +0 -2
- package/src/indexer/EventsIndexer.ts +18 -3
- package/src/models/TAccount.ts +11 -1
- package/src/prebuilt-factories/TimelockControllerFactory.ts +582 -0
- package/src/services/TimelockService/TimelockService.ts +83 -7
- package/src/txs/TxWriter.ts +29 -17
- package/src/txs/agents/TimelockAgent.ts +116 -0
- package/src/txs/agents/TxWriterAccountAgents.ts +4 -2
- package/src/utils/$account.ts +18 -2
- package/src/utils/$bigint.ts +19 -2
- 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];
|
package/src/models/TAccount.ts
CHANGED
|
@@ -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;
|