@defisaver/automation-sdk 1.2.2 → 1.2.3
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/automation/private/StrategiesAutomation.d.ts +6 -3
- package/esm/automation/private/StrategiesAutomation.js +21 -8
- package/esm/services/ethereumService.d.ts +1 -1
- package/esm/services/ethereumService.js +9 -2
- package/esm/types/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/automation/private/StrategiesAutomation.ts +27 -10
- package/src/services/ethereumService.ts +18 -5
- package/src/types/index.ts +1 -0
- package/umd/index.js +39 -12
|
@@ -6,16 +6,19 @@ import Automation from './Automation';
|
|
|
6
6
|
import type { ChainId } from '../../types/enums';
|
|
7
7
|
interface IStrategiesAutomation extends Interfaces.Automation {
|
|
8
8
|
chainId: ChainId;
|
|
9
|
+
providerFork: Web3;
|
|
9
10
|
}
|
|
10
11
|
export default class StrategiesAutomation extends Automation {
|
|
11
12
|
protected chainId: ChainId;
|
|
12
13
|
protected web3: Web3;
|
|
14
|
+
protected web3Fork: Web3;
|
|
13
15
|
protected subStorageContract: Contract.WithMeta<SubStorage>;
|
|
16
|
+
protected subStorageContractFork: Contract.WithMeta<SubStorage> | null;
|
|
14
17
|
constructor(args: IStrategiesAutomation);
|
|
15
|
-
protected getEventFromSubStorage(event: string, options?: PastEventOptions): Promise<
|
|
18
|
+
protected getEventFromSubStorage(event: string, options?: PastEventOptions): Promise<any[]>;
|
|
16
19
|
protected getStrategiesSubs(subIds: number[]): Promise<StrategyModel.StoredSubDataStructOutputStruct[]>;
|
|
17
|
-
protected getSubscriptionEventsFromSubStorage(options?: PastEventOptions): Promise<
|
|
18
|
-
protected getUpdateDataEventsFromSubStorage(options?: PastEventOptions): Promise<
|
|
20
|
+
protected getSubscriptionEventsFromSubStorage(options?: PastEventOptions): Promise<any[]>;
|
|
21
|
+
protected getUpdateDataEventsFromSubStorage(options?: PastEventOptions): Promise<any[]>;
|
|
19
22
|
protected getParsedSubscriptions(parseData: ParseData): Position.Automated | null;
|
|
20
23
|
protected _getSubscriptions(addresses?: EthereumAddress[], options?: SubscriptionOptions): Promise<(Position.Automated | null)[]>;
|
|
21
24
|
getSubscriptions(options?: SubscriptionOptions): Promise<(Position.Automated | null)[]>;
|
|
@@ -17,24 +17,37 @@ export default class StrategiesAutomation extends Automation {
|
|
|
17
17
|
constructor(args) {
|
|
18
18
|
super();
|
|
19
19
|
this.web3 = args.provider;
|
|
20
|
+
this.web3Fork = args.providerFork;
|
|
20
21
|
this.chainId = args.chainId;
|
|
21
22
|
this.subStorageContract = makeSubStorageContract(this.web3, this.chainId);
|
|
23
|
+
this.subStorageContractFork = this.web3Fork ? makeSubStorageContract(this.web3Fork, this.chainId) : null;
|
|
22
24
|
this.assert();
|
|
23
25
|
}
|
|
24
26
|
getEventFromSubStorage(event, options) {
|
|
25
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
return getEventsFromContract(this.subStorageContract, event, options);
|
|
28
|
+
return getEventsFromContract(this.subStorageContract, this.subStorageContractFork, event, options);
|
|
27
29
|
});
|
|
28
30
|
}
|
|
29
31
|
getStrategiesSubs(subIds) {
|
|
30
32
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
let options;
|
|
34
|
+
let web3;
|
|
35
|
+
if (this.web3Fork && this.subStorageContractFork) {
|
|
36
|
+
options = {
|
|
37
|
+
target: this.subStorageContractFork.address,
|
|
38
|
+
abiItem: getAbiItem(this.subStorageContractFork.abi, 'strategiesSubs'),
|
|
39
|
+
};
|
|
40
|
+
web3 = this.web3Fork;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
options = {
|
|
44
|
+
target: this.subStorageContract.address,
|
|
45
|
+
abiItem: getAbiItem(this.subStorageContract.abi, 'strategiesSubs'),
|
|
46
|
+
};
|
|
47
|
+
web3 = this.web3;
|
|
48
|
+
}
|
|
49
|
+
const multicallCalls = subIds.map((subId) => (Object.assign(Object.assign({}, options), { params: [subId] })));
|
|
50
|
+
return multicall(web3, this.chainId, multicallCalls);
|
|
38
51
|
});
|
|
39
52
|
}
|
|
40
53
|
getSubscriptionEventsFromSubStorage(options) {
|
|
@@ -4,4 +4,4 @@ import type { BlockNumber, Multicall, Contract } from '../types';
|
|
|
4
4
|
import type { BaseContract } from '../types/contracts/generated/types';
|
|
5
5
|
import type { ChainId } from '../types/enums';
|
|
6
6
|
export declare function multicall(web3: Web3, chainId: ChainId, calls: Multicall.Calls[], block?: BlockNumber): Promise<Multicall.Payload>;
|
|
7
|
-
export declare function getEventsFromContract<T extends BaseContract>(contractWithMeta: Contract.WithMeta<T>, event: string, options?: PastEventOptions): Promise<
|
|
7
|
+
export declare function getEventsFromContract<T extends BaseContract>(contractWithMeta: Contract.WithMeta<T>, contractWithMetaFork: Contract.WithMeta<T> | null, event: string, options?: PastEventOptions): Promise<any[]>;
|
|
@@ -29,6 +29,13 @@ export function multicall(web3, chainId, calls, block = 'latest') {
|
|
|
29
29
|
return formattedResult;
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
|
-
export function getEventsFromContract(contractWithMeta, event, options) {
|
|
33
|
-
return
|
|
32
|
+
export function getEventsFromContract(contractWithMeta, contractWithMetaFork, event, options) {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
const events = yield contractWithMeta.contract.getPastEvents(event, Object.assign({}, addToObjectIf(isDefined(options), Object.assign(Object.assign({}, options), { fromBlock: contractWithMeta.createdBlock }))));
|
|
35
|
+
let eventsFork = [];
|
|
36
|
+
if (contractWithMetaFork) {
|
|
37
|
+
eventsFork = yield contractWithMetaFork.contract.getPastEvents(event, Object.assign({}, addToObjectIf(isDefined(options), Object.assign(Object.assign({}, options), { toBlock: 'latest' }))));
|
|
38
|
+
}
|
|
39
|
+
return [...events, ...eventsFork];
|
|
40
|
+
});
|
|
34
41
|
}
|
package/esm/types/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -19,6 +19,7 @@ import type { ChainId } from '../../types/enums';
|
|
|
19
19
|
|
|
20
20
|
interface IStrategiesAutomation extends Interfaces.Automation {
|
|
21
21
|
chainId: ChainId,
|
|
22
|
+
providerFork: Web3,
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
export default class StrategiesAutomation extends Automation {
|
|
@@ -26,33 +27,48 @@ export default class StrategiesAutomation extends Automation {
|
|
|
26
27
|
|
|
27
28
|
protected web3: Web3;
|
|
28
29
|
|
|
30
|
+
protected web3Fork: Web3;
|
|
31
|
+
|
|
29
32
|
protected subStorageContract: Contract.WithMeta<SubStorage>;
|
|
30
33
|
|
|
34
|
+
protected subStorageContractFork: Contract.WithMeta<SubStorage> | null;
|
|
35
|
+
|
|
31
36
|
constructor(args: IStrategiesAutomation) {
|
|
32
37
|
super();
|
|
33
38
|
|
|
34
39
|
this.web3 = args.provider;
|
|
40
|
+
this.web3Fork = args.providerFork;
|
|
35
41
|
this.chainId = args.chainId;
|
|
36
42
|
this.subStorageContract = makeSubStorageContract(this.web3, this.chainId);
|
|
43
|
+
this.subStorageContractFork = this.web3Fork ? makeSubStorageContract(this.web3Fork, this.chainId) : null;
|
|
37
44
|
|
|
38
45
|
this.assert();
|
|
39
46
|
}
|
|
40
47
|
|
|
41
48
|
protected async getEventFromSubStorage(event: string, options?: PastEventOptions) {
|
|
42
|
-
return getEventsFromContract<SubStorage>(this.subStorageContract, event, options);
|
|
49
|
+
return getEventsFromContract<SubStorage>(this.subStorageContract, this.subStorageContractFork, event, options);
|
|
43
50
|
}
|
|
44
51
|
|
|
45
52
|
protected async getStrategiesSubs(subIds: number[]): Promise<StrategyModel.StoredSubDataStructOutputStruct[]> {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
let options : any;
|
|
54
|
+
let web3: Web3;
|
|
55
|
+
|
|
56
|
+
if (this.web3Fork && this.subStorageContractFork) {
|
|
57
|
+
options = {
|
|
58
|
+
target: this.subStorageContractFork.address,
|
|
59
|
+
abiItem: getAbiItem(this.subStorageContractFork.abi, 'strategiesSubs'),
|
|
60
|
+
};
|
|
61
|
+
web3 = this.web3Fork;
|
|
62
|
+
} else {
|
|
63
|
+
options = {
|
|
64
|
+
target: this.subStorageContract.address,
|
|
65
|
+
abiItem: getAbiItem(this.subStorageContract.abi, 'strategiesSubs'),
|
|
66
|
+
};
|
|
67
|
+
web3 = this.web3;
|
|
68
|
+
}
|
|
54
69
|
|
|
55
|
-
|
|
70
|
+
const multicallCalls = subIds.map((subId) => ({ ...options, params: [subId] }));
|
|
71
|
+
return multicall(web3, this.chainId, multicallCalls);
|
|
56
72
|
}
|
|
57
73
|
|
|
58
74
|
protected async getSubscriptionEventsFromSubStorage(options?: PastEventOptions) {
|
|
@@ -75,6 +91,7 @@ export default class StrategiesAutomation extends Automation {
|
|
|
75
91
|
...addToObjectIf(isDefined(addresses), { filter: { proxy: addresses } }),
|
|
76
92
|
};
|
|
77
93
|
|
|
94
|
+
|
|
78
95
|
const subscriptionEvents = (await this.getSubscriptionEventsFromSubStorage(_options)) as PlaceholderType; // TODO PlaceholderType
|
|
79
96
|
|
|
80
97
|
let subscriptions: (Position.Automated | null)[] = [];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type Web3 from 'web3';
|
|
2
2
|
import type { PastEventOptions } from 'web3-eth-contract';
|
|
3
3
|
import type {
|
|
4
|
-
BlockNumber, Multicall, Contract,
|
|
4
|
+
BlockNumber, Multicall, Contract, PlaceholderType,
|
|
5
5
|
} from '../types';
|
|
6
6
|
|
|
7
7
|
import { makeUniMulticallContract } from './contractService';
|
|
@@ -41,15 +41,28 @@ export async function multicall(
|
|
|
41
41
|
return formattedResult;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
export function getEventsFromContract<T extends BaseContract>(
|
|
44
|
+
export async function getEventsFromContract<T extends BaseContract>(
|
|
45
45
|
contractWithMeta: Contract.WithMeta<T>,
|
|
46
|
+
contractWithMetaFork: Contract.WithMeta<T> | null,
|
|
46
47
|
event: string, options?: PastEventOptions,
|
|
47
48
|
) {
|
|
48
|
-
|
|
49
|
+
const events = await contractWithMeta.contract.getPastEvents(
|
|
49
50
|
event,
|
|
50
51
|
{
|
|
51
|
-
fromBlock: contractWithMeta.createdBlock,
|
|
52
|
-
...addToObjectIf(isDefined(options), options),
|
|
52
|
+
...addToObjectIf(isDefined(options), { ...options, fromBlock: contractWithMeta.createdBlock }),
|
|
53
53
|
},
|
|
54
54
|
);
|
|
55
|
+
|
|
56
|
+
let eventsFork : PlaceholderType = [];
|
|
57
|
+
|
|
58
|
+
if (contractWithMetaFork) {
|
|
59
|
+
eventsFork = await contractWithMetaFork.contract.getPastEvents(
|
|
60
|
+
event,
|
|
61
|
+
{
|
|
62
|
+
...addToObjectIf(isDefined(options), { ...options, toBlock: 'latest' }),
|
|
63
|
+
},
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return [...events, ...eventsFork];
|
|
55
68
|
}
|
package/src/types/index.ts
CHANGED
package/umd/index.js
CHANGED
|
@@ -1017,10 +1017,23 @@ function _multicall() {
|
|
|
1017
1017
|
});
|
|
1018
1018
|
return _multicall.apply(this, arguments);
|
|
1019
1019
|
}
|
|
1020
|
-
function getEventsFromContract(
|
|
1021
|
-
return
|
|
1022
|
-
|
|
1023
|
-
|
|
1020
|
+
function getEventsFromContract(_x4, _x5, _x6, _x7) {
|
|
1021
|
+
return _getEventsFromContract.apply(this, arguments);
|
|
1022
|
+
}
|
|
1023
|
+
function _getEventsFromContract() {
|
|
1024
|
+
_getEventsFromContract = _asyncToGenerator(function* (contractWithMeta, contractWithMetaFork, event, options) {
|
|
1025
|
+
var events = yield contractWithMeta.contract.getPastEvents(event, _objectSpread({}, (0,_utils__WEBPACK_IMPORTED_MODULE_1__.addToObjectIf)((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isDefined)(options), _objectSpread(_objectSpread({}, options), {}, {
|
|
1026
|
+
fromBlock: contractWithMeta.createdBlock
|
|
1027
|
+
}))));
|
|
1028
|
+
var eventsFork = [];
|
|
1029
|
+
if (contractWithMetaFork) {
|
|
1030
|
+
eventsFork = yield contractWithMetaFork.contract.getPastEvents(event, _objectSpread({}, (0,_utils__WEBPACK_IMPORTED_MODULE_1__.addToObjectIf)((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isDefined)(options), _objectSpread(_objectSpread({}, options), {}, {
|
|
1031
|
+
toBlock: 'latest'
|
|
1032
|
+
}))));
|
|
1033
|
+
}
|
|
1034
|
+
return [...events, ...eventsFork];
|
|
1035
|
+
});
|
|
1036
|
+
return _getEventsFromContract.apply(this, arguments);
|
|
1024
1037
|
}
|
|
1025
1038
|
|
|
1026
1039
|
/***/ }),
|
|
@@ -1191,30 +1204,44 @@ class StrategiesAutomation extends _Automation__WEBPACK_IMPORTED_MODULE_4__["def
|
|
|
1191
1204
|
super();
|
|
1192
1205
|
_defineProperty(this, "chainId", void 0);
|
|
1193
1206
|
_defineProperty(this, "web3", void 0);
|
|
1207
|
+
_defineProperty(this, "web3Fork", void 0);
|
|
1194
1208
|
_defineProperty(this, "subStorageContract", void 0);
|
|
1209
|
+
_defineProperty(this, "subStorageContractFork", void 0);
|
|
1195
1210
|
this.web3 = args.provider;
|
|
1211
|
+
this.web3Fork = args.providerFork;
|
|
1196
1212
|
this.chainId = args.chainId;
|
|
1197
1213
|
this.subStorageContract = (0,_services_contractService__WEBPACK_IMPORTED_MODULE_2__.makeSubStorageContract)(this.web3, this.chainId);
|
|
1214
|
+
this.subStorageContractFork = this.web3Fork ? (0,_services_contractService__WEBPACK_IMPORTED_MODULE_2__.makeSubStorageContract)(this.web3Fork, this.chainId) : null;
|
|
1198
1215
|
this.assert();
|
|
1199
1216
|
}
|
|
1200
1217
|
getEventFromSubStorage(event, options) {
|
|
1201
1218
|
var _this = this;
|
|
1202
1219
|
return _asyncToGenerator(function* () {
|
|
1203
|
-
return (0,_services_ethereumService__WEBPACK_IMPORTED_MODULE_3__.getEventsFromContract)(_this.subStorageContract, event, options);
|
|
1220
|
+
return (0,_services_ethereumService__WEBPACK_IMPORTED_MODULE_3__.getEventsFromContract)(_this.subStorageContract, _this.subStorageContractFork, event, options);
|
|
1204
1221
|
})();
|
|
1205
1222
|
}
|
|
1206
1223
|
getStrategiesSubs(subIds) {
|
|
1207
1224
|
var _this2 = this;
|
|
1208
1225
|
return _asyncToGenerator(function* () {
|
|
1209
|
-
var
|
|
1210
|
-
var
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1226
|
+
var options;
|
|
1227
|
+
var web3;
|
|
1228
|
+
if (_this2.web3Fork && _this2.subStorageContractFork) {
|
|
1229
|
+
options = {
|
|
1230
|
+
target: _this2.subStorageContractFork.address,
|
|
1231
|
+
abiItem: (0,_services_contractService__WEBPACK_IMPORTED_MODULE_2__.getAbiItem)(_this2.subStorageContractFork.abi, 'strategiesSubs')
|
|
1232
|
+
};
|
|
1233
|
+
web3 = _this2.web3Fork;
|
|
1234
|
+
} else {
|
|
1235
|
+
options = {
|
|
1236
|
+
target: _this2.subStorageContract.address,
|
|
1237
|
+
abiItem: (0,_services_contractService__WEBPACK_IMPORTED_MODULE_2__.getAbiItem)(_this2.subStorageContract.abi, 'strategiesSubs')
|
|
1238
|
+
};
|
|
1239
|
+
web3 = _this2.web3;
|
|
1240
|
+
}
|
|
1241
|
+
var multicallCalls = subIds.map(subId => _objectSpread(_objectSpread({}, options), {}, {
|
|
1215
1242
|
params: [subId]
|
|
1216
1243
|
}));
|
|
1217
|
-
return (0,_services_ethereumService__WEBPACK_IMPORTED_MODULE_3__.multicall)(
|
|
1244
|
+
return (0,_services_ethereumService__WEBPACK_IMPORTED_MODULE_3__.multicall)(web3, _this2.chainId, multicallCalls);
|
|
1218
1245
|
})();
|
|
1219
1246
|
}
|
|
1220
1247
|
getSubscriptionEventsFromSubStorage(options) {
|