envio 2.31.0-alpha.0 → 2.31.0-alpha.2
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/package.json +5 -5
- package/src/Batch.res +400 -28
- package/src/Batch.res.js +286 -24
- package/src/EventRegister.res +9 -3
- package/src/EventRegister.res.js +6 -3
- package/src/EventRegister.resi +4 -1
- package/src/FetchState.res +116 -155
- package/src/FetchState.res.js +116 -106
- package/src/Internal.res +49 -0
- package/src/InternalConfig.res +1 -1
- package/src/Persistence.res +16 -1
- package/src/Persistence.res.js +1 -1
- package/src/PgStorage.res +49 -61
- package/src/PgStorage.res.js +44 -37
- package/src/Prometheus.res +7 -1
- package/src/Prometheus.res.js +8 -1
- package/src/ReorgDetection.res +222 -235
- package/src/ReorgDetection.res.js +34 -28
- package/src/SafeCheckpointTracking.res +132 -0
- package/src/SafeCheckpointTracking.res.js +95 -0
- package/src/Utils.res +64 -21
- package/src/Utils.res.js +61 -30
- package/src/db/EntityHistory.res +172 -294
- package/src/db/EntityHistory.res.js +98 -218
- package/src/db/InternalTable.gen.ts +13 -13
- package/src/db/InternalTable.res +286 -77
- package/src/db/InternalTable.res.js +160 -79
- package/src/db/Table.res +1 -0
- package/src/db/Table.res.js +1 -1
- package/src/sources/EventRouter.res +1 -1
- package/src/sources/Source.res +1 -1
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var Table = require("./Table.res.js");
|
|
5
|
-
var Js_exn = require("rescript/lib/js/js_exn.js");
|
|
6
5
|
var Belt_Array = require("rescript/lib/js/belt_Array.js");
|
|
7
6
|
var S$RescriptSchema = require("rescript-schema/src/S.res.js");
|
|
8
7
|
|
|
@@ -11,7 +10,7 @@ var variants = [
|
|
|
11
10
|
"DELETE"
|
|
12
11
|
];
|
|
13
12
|
|
|
14
|
-
var name = "
|
|
13
|
+
var name = "ENVIO_HISTORY_CHANGE";
|
|
15
14
|
|
|
16
15
|
var schema = S$RescriptSchema.$$enum(variants);
|
|
17
16
|
|
|
@@ -21,159 +20,29 @@ var RowAction = {
|
|
|
21
20
|
schema: schema
|
|
22
21
|
};
|
|
23
22
|
|
|
24
|
-
var
|
|
25
|
-
return {
|
|
26
|
-
id: s.m(S$RescriptSchema.string)
|
|
27
|
-
};
|
|
28
|
-
});
|
|
23
|
+
var changeFieldName = "envio_change";
|
|
29
24
|
|
|
30
|
-
var
|
|
31
|
-
return {
|
|
32
|
-
chain_id: s.f("previous_entity_history_chain_id", S$RescriptSchema.$$null(S$RescriptSchema.$$int)),
|
|
33
|
-
block_timestamp: s.f("previous_entity_history_block_timestamp", S$RescriptSchema.$$null(S$RescriptSchema.$$int)),
|
|
34
|
-
block_number: s.f("previous_entity_history_block_number", S$RescriptSchema.$$null(S$RescriptSchema.$$int)),
|
|
35
|
-
log_index: s.f("previous_entity_history_log_index", S$RescriptSchema.$$null(S$RescriptSchema.$$int))
|
|
36
|
-
};
|
|
37
|
-
});
|
|
25
|
+
var checkpointIdFieldName = "checkpoint_id";
|
|
38
26
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
27
|
+
function makeSetUpdateSchema(entitySchema) {
|
|
28
|
+
return S$RescriptSchema.object(function (s) {
|
|
29
|
+
s.tag(changeFieldName, "SET");
|
|
30
|
+
return {
|
|
31
|
+
entityId: s.f("id", S$RescriptSchema.string),
|
|
32
|
+
entityUpdateAction: {
|
|
33
|
+
TAG: "Set",
|
|
34
|
+
_0: s.flatten(entitySchema)
|
|
35
|
+
},
|
|
36
|
+
checkpointId: s.f(checkpointIdFieldName, S$RescriptSchema.$$int)
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
}
|
|
47
40
|
|
|
48
|
-
function
|
|
49
|
-
|
|
50
|
-
var match = entitySchema.t;
|
|
51
|
-
if (typeof match !== "object") {
|
|
52
|
-
return Js_exn.raiseError("Failed creating nullableEntitySchema. Expected an object schema for entity");
|
|
53
|
-
}
|
|
54
|
-
if (match.TAG !== "object") {
|
|
55
|
-
return Js_exn.raiseError("Failed creating nullableEntitySchema. Expected an object schema for entity");
|
|
56
|
-
}
|
|
57
|
-
var nulldict = {};
|
|
58
|
-
Belt_Array.forEach(match.items, (function (param) {
|
|
59
|
-
var $$location = param.location;
|
|
60
|
-
var schema = param.schema;
|
|
61
|
-
var match = schema.t;
|
|
62
|
-
var nullableFieldSchema = $$location === "id" || !(typeof match !== "object" || match.TAG !== "null") ? schema : S$RescriptSchema.$$null(schema);
|
|
63
|
-
nulldict[$$location] = s.m(nullableFieldSchema);
|
|
64
|
-
}));
|
|
65
|
-
return nulldict;
|
|
66
|
-
});
|
|
67
|
-
return S$RescriptSchema.transform(S$RescriptSchema.object(function (s) {
|
|
68
|
-
return {
|
|
69
|
-
current: s.flatten(currentHistoryFieldsSchema),
|
|
70
|
-
previous: s.flatten(previousHistoryFieldsSchema),
|
|
71
|
-
entityData: s.flatten(nullableEntitySchema),
|
|
72
|
-
action: s.f("action", schema)
|
|
73
|
-
};
|
|
74
|
-
}), (function (s) {
|
|
75
|
-
return {
|
|
76
|
-
p: (function (v) {
|
|
77
|
-
var match = v.previous;
|
|
78
|
-
var chain_id = match.chain_id;
|
|
79
|
-
var tmp;
|
|
80
|
-
var exit = 0;
|
|
81
|
-
if (chain_id !== undefined) {
|
|
82
|
-
var block_timestamp = match.block_timestamp;
|
|
83
|
-
if (block_timestamp !== undefined) {
|
|
84
|
-
var block_number = match.block_number;
|
|
85
|
-
if (block_number !== undefined) {
|
|
86
|
-
var log_index = match.log_index;
|
|
87
|
-
if (log_index !== undefined) {
|
|
88
|
-
tmp = {
|
|
89
|
-
chain_id: chain_id,
|
|
90
|
-
block_timestamp: block_timestamp,
|
|
91
|
-
block_number: block_number,
|
|
92
|
-
log_index: log_index
|
|
93
|
-
};
|
|
94
|
-
} else {
|
|
95
|
-
exit = 1;
|
|
96
|
-
}
|
|
97
|
-
} else {
|
|
98
|
-
exit = 1;
|
|
99
|
-
}
|
|
100
|
-
} else {
|
|
101
|
-
exit = 1;
|
|
102
|
-
}
|
|
103
|
-
} else if (match.block_timestamp !== undefined || match.block_number !== undefined || match.log_index !== undefined) {
|
|
104
|
-
exit = 1;
|
|
105
|
-
} else {
|
|
106
|
-
tmp = undefined;
|
|
107
|
-
}
|
|
108
|
-
if (exit === 1) {
|
|
109
|
-
tmp = s.fail("Unexpected mix of null and non-null values in previous history fields", undefined);
|
|
110
|
-
}
|
|
111
|
-
var match$1 = v.action;
|
|
112
|
-
var tmp$1;
|
|
113
|
-
if (match$1 === "SET") {
|
|
114
|
-
tmp$1 = {
|
|
115
|
-
TAG: "Set",
|
|
116
|
-
_0: v.entityData
|
|
117
|
-
};
|
|
118
|
-
} else {
|
|
119
|
-
var match$2 = v.entityData;
|
|
120
|
-
tmp$1 = {
|
|
121
|
-
TAG: "Delete",
|
|
122
|
-
_0: {
|
|
123
|
-
id: match$2.id
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
return {
|
|
128
|
-
current: v.current,
|
|
129
|
-
previous: tmp,
|
|
130
|
-
entityData: tmp$1
|
|
131
|
-
};
|
|
132
|
-
}),
|
|
133
|
-
s: (function (v) {
|
|
134
|
-
var entityData = v.entityData;
|
|
135
|
-
var match;
|
|
136
|
-
match = entityData.TAG === "Delete" ? [
|
|
137
|
-
entityData._0,
|
|
138
|
-
"DELETE"
|
|
139
|
-
] : [
|
|
140
|
-
entityData._0,
|
|
141
|
-
"SET"
|
|
142
|
-
];
|
|
143
|
-
var historyFields = v.previous;
|
|
144
|
-
return {
|
|
145
|
-
current: v.current,
|
|
146
|
-
entityData: match[0],
|
|
147
|
-
action: match[1],
|
|
148
|
-
previous: historyFields !== undefined ? historyFields : ({
|
|
149
|
-
chain_id: undefined,
|
|
150
|
-
block_timestamp: undefined,
|
|
151
|
-
block_number: undefined,
|
|
152
|
-
log_index: undefined
|
|
153
|
-
})
|
|
154
|
-
};
|
|
155
|
-
})
|
|
156
|
-
};
|
|
157
|
-
}));
|
|
41
|
+
function historyTableName(entityName) {
|
|
42
|
+
return "envio_history_" + entityName;
|
|
158
43
|
}
|
|
159
44
|
|
|
160
45
|
function fromTable(table, schema) {
|
|
161
|
-
var currentChangeFieldNames = [
|
|
162
|
-
"entity_history_block_timestamp",
|
|
163
|
-
"entity_history_chain_id",
|
|
164
|
-
"entity_history_block_number",
|
|
165
|
-
"entity_history_log_index"
|
|
166
|
-
];
|
|
167
|
-
var currentHistoryFields = Belt_Array.map(currentChangeFieldNames, (function (fieldName) {
|
|
168
|
-
return Table.mkField(fieldName, "INTEGER", S$RescriptSchema.never, undefined, undefined, undefined, true, undefined, undefined);
|
|
169
|
-
}));
|
|
170
|
-
var previousChangeFieldNames = Belt_Array.map(currentChangeFieldNames, (function (fieldName) {
|
|
171
|
-
return "previous_" + fieldName;
|
|
172
|
-
}));
|
|
173
|
-
var previousHistoryFields = Belt_Array.map(previousChangeFieldNames, (function (fieldName) {
|
|
174
|
-
return Table.mkField(fieldName, "INTEGER", S$RescriptSchema.never, undefined, undefined, true, undefined, undefined, undefined);
|
|
175
|
-
}));
|
|
176
|
-
var id = "id";
|
|
177
46
|
var dataFields = Belt_Array.keepMap(table.fields, (function (field) {
|
|
178
47
|
if (field.TAG !== "Field") {
|
|
179
48
|
return ;
|
|
@@ -184,7 +53,7 @@ function fromTable(table, schema) {
|
|
|
184
53
|
return {
|
|
185
54
|
TAG: "Field",
|
|
186
55
|
_0: {
|
|
187
|
-
fieldName: id,
|
|
56
|
+
fieldName: "id",
|
|
188
57
|
fieldType: field$1.fieldType,
|
|
189
58
|
fieldSchema: field$1.fieldSchema,
|
|
190
59
|
isArray: field$1.isArray,
|
|
@@ -212,91 +81,102 @@ function fromTable(table, schema) {
|
|
|
212
81
|
};
|
|
213
82
|
}
|
|
214
83
|
}));
|
|
215
|
-
var
|
|
216
|
-
var
|
|
217
|
-
var
|
|
218
|
-
var
|
|
84
|
+
var actionField = Table.mkField(changeFieldName, name, S$RescriptSchema.never, undefined, undefined, undefined, undefined, undefined, undefined);
|
|
85
|
+
var checkpointIdField = Table.mkField(checkpointIdFieldName, "INTEGER", S$RescriptSchema.$$int, undefined, undefined, undefined, true, undefined, undefined);
|
|
86
|
+
var entityTableName = table.tableName;
|
|
87
|
+
var historyTableName = "envio_history_" + entityTableName;
|
|
88
|
+
var table$1 = Table.mkTable(historyTableName, undefined, Belt_Array.concat(dataFields, [
|
|
89
|
+
checkpointIdField,
|
|
90
|
+
actionField
|
|
91
|
+
]));
|
|
92
|
+
var setUpdateSchema = makeSetUpdateSchema(schema);
|
|
93
|
+
var allFieldNames = Belt_Array.map(table$1.fields, (function (field) {
|
|
219
94
|
return Table.getFieldName(field);
|
|
220
95
|
}));
|
|
221
|
-
var
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
currentChangeFieldNames,
|
|
235
|
-
previousChangeFieldNames,
|
|
236
|
-
dataFieldNames,
|
|
237
|
-
[actionFieldName]
|
|
238
|
-
]), (function (fieldName) {
|
|
239
|
-
return "\"" + fieldName + "\"";
|
|
96
|
+
var allFieldNamesStr = Belt_Array.map(allFieldNames, (function (name) {
|
|
97
|
+
return "\"" + name + "\"";
|
|
98
|
+
})).join(", ");
|
|
99
|
+
var selectParts = Belt_Array.map(allFieldNames, (function (fieldName) {
|
|
100
|
+
if (fieldName === "id") {
|
|
101
|
+
return "u.id";
|
|
102
|
+
} else if (fieldName === checkpointIdFieldName) {
|
|
103
|
+
return "u.checkpoint_id";
|
|
104
|
+
} else if (fieldName === changeFieldName) {
|
|
105
|
+
return "'DELETE'";
|
|
106
|
+
} else {
|
|
107
|
+
return "NULL";
|
|
108
|
+
}
|
|
240
109
|
}));
|
|
241
|
-
var
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
return
|
|
247
|
-
}))
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
return historyRowArg + "." + previousFieldName + " := 0;";
|
|
263
|
-
})).join(" ") + "\n END IF;\n END IF;\n END IF;\n\n INSERT INTO " + historyTablePath + " (" + allFieldNamesDoubleQuoted.join(", ") + ")\n VALUES (" + Belt_Array.map(allFieldNamesDoubleQuoted, (function (fieldName) {
|
|
264
|
-
return historyRowArg + "." + fieldName;
|
|
265
|
-
})).join(", ") + ");\nEND;\n$$ LANGUAGE plpgsql;";
|
|
110
|
+
var selectPartsStr = selectParts.join(", ");
|
|
111
|
+
var makeInsertDeleteUpdatesQuery = function (pgSchema) {
|
|
112
|
+
return "INSERT INTO \"" + pgSchema + "\".\"" + historyTableName + "\" (" + allFieldNamesStr + ")\nSELECT " + selectPartsStr + "\nFROM UNNEST($1::text[], $2::int[]) AS u(id, checkpoint_id)";
|
|
113
|
+
};
|
|
114
|
+
var dataFieldNames = Belt_Array.keep(Belt_Array.map(table$1.fields, (function (field) {
|
|
115
|
+
return Table.getFieldName(field);
|
|
116
|
+
})), (function (fieldName) {
|
|
117
|
+
if (fieldName !== changeFieldName) {
|
|
118
|
+
return fieldName !== checkpointIdFieldName;
|
|
119
|
+
} else {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
}));
|
|
123
|
+
var dataFieldsCommaSeparated = Belt_Array.map(dataFieldNames, (function (name) {
|
|
124
|
+
return "\"" + name + "\"";
|
|
125
|
+
})).join(", ");
|
|
126
|
+
var makeGetRollbackRemovedIdsQuery = function (pgSchema) {
|
|
127
|
+
return "SELECT DISTINCT id\nFROM \"" + pgSchema + "\".\"" + historyTableName + "\"\nWHERE \"" + checkpointIdFieldName + "\" > $1\n AND NOT EXISTS (\n SELECT 1\n FROM \"" + pgSchema + "\".\"" + historyTableName + "\" h\n WHERE h.id = \"" + historyTableName + "\".id\n AND h.\"" + checkpointIdFieldName + "\" <= $1\n )";
|
|
128
|
+
};
|
|
129
|
+
var makeGetRollbackRestoredEntitiesQuery = function (pgSchema) {
|
|
130
|
+
return "SELECT DISTINCT ON (id) " + dataFieldsCommaSeparated + "\nFROM \"" + pgSchema + "\".\"" + historyTableName + "\"\nWHERE \"" + checkpointIdFieldName + "\" <= $1\n AND EXISTS (\n SELECT 1\n FROM \"" + pgSchema + "\".\"" + historyTableName + "\" h\n WHERE h.id = \"" + historyTableName + "\".id\n AND h.\"" + checkpointIdFieldName + "\" > $1\n )\nORDER BY id, \"" + checkpointIdFieldName + "\" DESC";
|
|
266
131
|
};
|
|
267
|
-
var insertFnString = "(sql, rowArgs, shouldCopyCurrentEntity) =>\n sql\`select " + insertFnName + "(ROW(" + Belt_Array.map(allFieldNamesDoubleQuoted, (function (fieldNameDoubleQuoted) {
|
|
268
|
-
return "\${rowArgs[" + fieldNameDoubleQuoted + "]\}";
|
|
269
|
-
})).join(", ") + ", NULL), --NULL argument for SERIAL field\n \${shouldCopyCurrentEntity});\`";
|
|
270
|
-
var insertFn = eval(insertFnString);
|
|
271
|
-
var schema$1 = makeHistoryRowSchema(schema);
|
|
272
132
|
return {
|
|
273
133
|
table: table$1,
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
134
|
+
setUpdateSchema: setUpdateSchema,
|
|
135
|
+
setUpdateSchemaRows: S$RescriptSchema.array(setUpdateSchema),
|
|
136
|
+
makeInsertDeleteUpdatesQuery: makeInsertDeleteUpdatesQuery,
|
|
137
|
+
makeGetRollbackRemovedIdsQuery: makeGetRollbackRemovedIdsQuery,
|
|
138
|
+
makeGetRollbackRestoredEntitiesQuery: makeGetRollbackRestoredEntitiesQuery
|
|
278
139
|
};
|
|
279
140
|
}
|
|
280
141
|
|
|
281
142
|
function makePruneStaleEntityHistoryQuery(entityName, pgSchema) {
|
|
282
|
-
var
|
|
283
|
-
|
|
284
|
-
|
|
143
|
+
var historyTableRef = "\"" + pgSchema + "\".\"envio_history_" + entityName + "\"";
|
|
144
|
+
return "WITH anchors AS (\n SELECT t.id, MAX(t." + checkpointIdFieldName + ") AS keep_checkpoint_id\n FROM " + historyTableRef + " t WHERE t." + checkpointIdFieldName + " <= $1\n GROUP BY t.id\n)\nDELETE FROM " + historyTableRef + " d\nUSING anchors a\nWHERE d.id = a.id\n AND (\n d." + checkpointIdFieldName + " < a.keep_checkpoint_id\n OR (\n d." + checkpointIdFieldName + " = a.keep_checkpoint_id AND\n NOT EXISTS (\n SELECT 1 FROM " + historyTableRef + " ps \n WHERE ps.id = d.id AND ps." + checkpointIdFieldName + " > $1\n ) \n )\n );";
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function pruneStaleEntityHistory(sql, entityName, pgSchema, safeCheckpointId) {
|
|
148
|
+
return sql.unsafe(makePruneStaleEntityHistoryQuery(entityName, pgSchema), [safeCheckpointId], {prepare: true});
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
function makeBackfillHistoryQuery(pgSchema, entityName) {
|
|
152
|
+
return "WITH target_ids AS (\n SELECT UNNEST($1::TEXT[]) AS id\n),\nmissing_history AS (\n SELECT e.*\n FROM \"" + pgSchema + "\".\"" + entityName + "\" e\n JOIN target_ids t ON e.id = t.id\n LEFT JOIN \"" + pgSchema + "\".\"envio_history_" + entityName + "\" h ON h.id = e.id\n WHERE h.id IS NULL\n)\nINSERT INTO \"" + pgSchema + "\".\"envio_history_" + entityName + "\"\nSELECT *, 0 AS " + checkpointIdFieldName + ", '" + "SET" + "' as " + changeFieldName + "\nFROM missing_history;";
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
function backfillHistory(sql, pgSchema, entityName, ids) {
|
|
156
|
+
return sql.unsafe(makeBackfillHistoryQuery(pgSchema, entityName), [ids], {prepare: true});
|
|
285
157
|
}
|
|
286
158
|
|
|
287
|
-
function
|
|
288
|
-
return sql.unsafe(
|
|
289
|
-
|
|
290
|
-
|
|
159
|
+
function insertDeleteUpdates(sql, pgSchema, entityHistory, batchDeleteEntityIds, batchDeleteCheckpointIds) {
|
|
160
|
+
return sql.unsafe(entityHistory.makeInsertDeleteUpdatesQuery(pgSchema), [
|
|
161
|
+
batchDeleteEntityIds,
|
|
162
|
+
batchDeleteCheckpointIds
|
|
291
163
|
], {prepare: true});
|
|
292
164
|
}
|
|
293
165
|
|
|
166
|
+
function rollback(sql, pgSchema, entityName, rollbackTargetCheckpointId) {
|
|
167
|
+
return sql.unsafe("DELETE FROM \"" + pgSchema + "\".\"envio_history_" + entityName + "\" WHERE \"" + checkpointIdFieldName + "\" > $1;", [rollbackTargetCheckpointId], {prepare: true});
|
|
168
|
+
}
|
|
169
|
+
|
|
294
170
|
exports.RowAction = RowAction;
|
|
295
|
-
exports.
|
|
296
|
-
exports.
|
|
297
|
-
exports.
|
|
298
|
-
exports.
|
|
171
|
+
exports.changeFieldName = changeFieldName;
|
|
172
|
+
exports.checkpointIdFieldName = checkpointIdFieldName;
|
|
173
|
+
exports.makeSetUpdateSchema = makeSetUpdateSchema;
|
|
174
|
+
exports.historyTableName = historyTableName;
|
|
299
175
|
exports.fromTable = fromTable;
|
|
300
176
|
exports.makePruneStaleEntityHistoryQuery = makePruneStaleEntityHistoryQuery;
|
|
301
177
|
exports.pruneStaleEntityHistory = pruneStaleEntityHistory;
|
|
178
|
+
exports.makeBackfillHistoryQuery = makeBackfillHistoryQuery;
|
|
179
|
+
exports.backfillHistory = backfillHistory;
|
|
180
|
+
exports.insertDeleteUpdates = insertDeleteUpdates;
|
|
181
|
+
exports.rollback = rollback;
|
|
302
182
|
/* schema Not a pure module */
|
|
@@ -7,6 +7,19 @@ import type {Json_t as Js_Json_t} from '../../src/Js.shim';
|
|
|
7
7
|
|
|
8
8
|
import type {t as Address_t} from '../../src/Address.gen';
|
|
9
9
|
|
|
10
|
+
export type DynamicContractRegistry_t = {
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly chain_id: number;
|
|
13
|
+
readonly registering_event_block_number: number;
|
|
14
|
+
readonly registering_event_log_index: number;
|
|
15
|
+
readonly registering_event_block_timestamp: number;
|
|
16
|
+
readonly registering_event_contract_name: string;
|
|
17
|
+
readonly registering_event_name: string;
|
|
18
|
+
readonly registering_event_src_address: Address_t;
|
|
19
|
+
readonly contract_address: Address_t;
|
|
20
|
+
readonly contract_name: string
|
|
21
|
+
};
|
|
22
|
+
|
|
10
23
|
export type RawEvents_t = {
|
|
11
24
|
readonly chain_id: number;
|
|
12
25
|
readonly event_id: bigint;
|
|
@@ -21,16 +34,3 @@ export type RawEvents_t = {
|
|
|
21
34
|
readonly transaction_fields: Js_Json_t;
|
|
22
35
|
readonly params: Js_Json_t
|
|
23
36
|
};
|
|
24
|
-
|
|
25
|
-
export type DynamicContractRegistry_t = {
|
|
26
|
-
readonly id: string;
|
|
27
|
-
readonly chain_id: number;
|
|
28
|
-
readonly registering_event_block_number: number;
|
|
29
|
-
readonly registering_event_log_index: number;
|
|
30
|
-
readonly registering_event_block_timestamp: number;
|
|
31
|
-
readonly registering_event_contract_name: string;
|
|
32
|
-
readonly registering_event_name: string;
|
|
33
|
-
readonly registering_event_src_address: Address_t;
|
|
34
|
-
readonly contract_address: Address_t;
|
|
35
|
-
readonly contract_name: string
|
|
36
|
-
};
|