@twin.org/verifiable-storage-connector-iota 0.0.1 → 0.0.2-next.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/dist/cjs/index.cjs
CHANGED
|
@@ -81,11 +81,28 @@ class VerifiableStorageConnectorIotaDataTypes {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
var
|
|
85
|
-
"verifiable-storage": {
|
|
84
|
+
var testnet = {
|
|
86
85
|
packageId: "0x794a5c35713037ae2cc83fcd4b4974ec4029e382b0562386a78c0f1c87b2f6d4",
|
|
87
|
-
"package": "oRzrCwYAAAALAQAMAgwYAyRDBGcGBW1iB88BsgIIgQRgBuEEFAr1BCYMmwWsAw3HCAwAHgIOAhQCGQIaARgAAQwAAAADAAACAwACBQQABAQCAAUDBwAAFwABAAAcAgEAAAsDAQAAEAQFAAAHBgEAAQwPAQEDAgoMAQACEwsMAAIbDQkAAxYPAQEIBA0ICgAEFQgJAAUREgoABQ4JEAUTBAgFCgUNBwgEAAUHCAAIBQoFAQcIBAIIAAcIBAIGCgUFAQEDBwoFBgoFDQQKBQMFCAABBggEAQUBAwEHCAQBCAMBBggDAQgBAQkAAQgAAwoFAwUBBggFAQgCAgMDBAUFAwMOU3RvcmFnZUNyZWF0ZWQLU3RvcmFnZUl0ZW0OU3RvcmFnZVVwZGF0ZWQGU3RyaW5nCVR4Q29udGV4dANVSUQJYWxsb3dsaXN0DWFwcGVuZF91bmlxdWUHY3JlYXRvcgRkYXRhBmRlbGV0ZQtkZWxldGVfZGF0YQRlbWl0BWVwb2NoBWV2ZW50AmlkCWlzX2lubGlzdAZsZW5ndGgSbWF4X2FsbG93bGlzdF9zaXplA25ldwZvYmplY3QGc2VuZGVyDHNoYXJlX29iamVjdApzdG9yZV9kYXRhBnN0cmluZwh0cmFuc2Zlcgp0eF9jb250ZXh0DnVpZF90b19hZGRyZXNzC3VwZGF0ZV9kYXRhB3VwZGF0ZXISdmVyaWZpYWJsZV9zdG9yYWdlB3ZlcnNpb24AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDCJEBAAAAAAAAAwjpAwAAAAAAAAACBw8IAwkIBQ0DHwIIBQYKBRINAQIDDwUNAwgFAgIDDwUNAx0FAAEEAAclCgMuEQsMBgoDLhEKDAVACQAAAAAAAAAADAQNBAoGRAkNBA4BCgIRBAsDEQcLAAoFMQEKBgsECwISAAwHDgcQABEICwULBhIBOAALBzgBAgEBBAARPQoELhELDAcKABABCgcRAwQKBRALAAELBAEHACcLBC4RCgwGDgERDAYAAAAAAAAAACQEHQsBCgAPAhUKBgoADwMVQAkAAAAAAAAAAAwFDQUKABAEFEQJCwMgBDENBQ4CCgAQBRQRBAsFCgAPARULABAAEQgLBgsHEgI4AgICAQQAARULAS4RCw4AEAQUIQQJBQsHACcLABMAAQEBAQEBEQYCAwAAABQeCgBBCQwDBgAAAAAAAAAADAIKAgoDIwQaBQoKAAoCQgkUCgEhBBULAAEIAgsCBgEAAAAAAAAAFgwCBQULAAEJAgQAAAAVMgoBQQkMBgYAAAAAAAAAAAwFCgUKBiMELQUKCgEKBUIJFAwECgAKBAwDLgsDEQMgBCgKAC5BCQoCNCMEHwUlCwEBCwABBwEnCgALBEQJCwUGAQAAAAAAAAAWDAUFBQsBAQsAAQIAAAAFAAEAAgAEAAYA"
|
|
88
|
-
|
|
86
|
+
"package": "oRzrCwYAAAALAQAMAgwYAyRDBGcGBW1iB88BsgIIgQRgBuEEFAr1BCYMmwWsAw3HCAwAHgIOAhQCGQIaARgAAQwAAAADAAACAwACBQQABAQCAAUDBwAAFwABAAAcAgEAAAsDAQAAEAQFAAAHBgEAAQwPAQEDAgoMAQACEwsMAAIbDQkAAxYPAQEIBA0ICgAEFQgJAAUREgoABQ4JEAUTBAgFCgUNBwgEAAUHCAAIBQoFAQcIBAIIAAcIBAIGCgUFAQEDBwoFBgoFDQQKBQMFCAABBggEAQUBAwEHCAQBCAMBBggDAQgBAQkAAQgAAwoFAwUBBggFAQgCAgMDBAUFAwMOU3RvcmFnZUNyZWF0ZWQLU3RvcmFnZUl0ZW0OU3RvcmFnZVVwZGF0ZWQGU3RyaW5nCVR4Q29udGV4dANVSUQJYWxsb3dsaXN0DWFwcGVuZF91bmlxdWUHY3JlYXRvcgRkYXRhBmRlbGV0ZQtkZWxldGVfZGF0YQRlbWl0BWVwb2NoBWV2ZW50AmlkCWlzX2lubGlzdAZsZW5ndGgSbWF4X2FsbG93bGlzdF9zaXplA25ldwZvYmplY3QGc2VuZGVyDHNoYXJlX29iamVjdApzdG9yZV9kYXRhBnN0cmluZwh0cmFuc2Zlcgp0eF9jb250ZXh0DnVpZF90b19hZGRyZXNzC3VwZGF0ZV9kYXRhB3VwZGF0ZXISdmVyaWZpYWJsZV9zdG9yYWdlB3ZlcnNpb24AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDCJEBAAAAAAAAAwjpAwAAAAAAAAACBw8IAwkIBQ0DHwIIBQYKBRINAQIDDwUNAwgFAgIDDwUNAx0FAAEEAAclCgMuEQsMBgoDLhEKDAVACQAAAAAAAAAADAQNBAoGRAkNBA4BCgIRBAsDEQcLAAoFMQEKBgsECwISAAwHDgcQABEICwULBhIBOAALBzgBAgEBBAARPQoELhELDAcKABABCgcRAwQKBRALAAELBAEHACcLBC4RCgwGDgERDAYAAAAAAAAAACQEHQsBCgAPAhUKBgoADwMVQAkAAAAAAAAAAAwFDQUKABAEFEQJCwMgBDENBQ4CCgAQBRQRBAsFCgAPARULABAAEQgLBgsHEgI4AgICAQQAARULAS4RCw4AEAQUIQQJBQsHACcLABMAAQEBAQEBEQYCAwAAABQeCgBBCQwDBgAAAAAAAAAADAIKAgoDIwQaBQoKAAoCQgkUCgEhBBULAAEIAgsCBgEAAAAAAAAAFgwCBQULAAEJAgQAAAAVMgoBQQkMBgYAAAAAAAAAAAwFCgUKBiMELQUKCgEKBUIJFAwECgAKBAwDLgsDEQMgBCgKAC5BCQoCNCMEHwUlCwEBCwABBwEnCgALBEQJCwUGAQAAAAAAAAAWDAUFBQsBAQsAAQIAAAAFAAEAAgAEAAYA",
|
|
87
|
+
deployedPackageId: "0xf0093c80eb9569e04022143517a100ac63f54fc1ba5996cb40e94a62c0e52fce",
|
|
88
|
+
upgradeCap: "0xe2d3595bf3b46d5c405126519138fbf040f9bebf3f1a4908c8bc502fe03d4498"
|
|
89
|
+
};
|
|
90
|
+
var devnet = {
|
|
91
|
+
packageId: "",
|
|
92
|
+
"package": "",
|
|
93
|
+
deployedPackageId: "",
|
|
94
|
+
upgradeCap: ""
|
|
95
|
+
};
|
|
96
|
+
var mainnet = {
|
|
97
|
+
packageId: "0x794a5c35713037ae2cc83fcd4b4974ec4029e382b0562386a78c0f1c87b2f6d4",
|
|
98
|
+
"package": "oRzrCwYAAAALAQAMAgwYAyRDBGcGBW1iB88BsgIIgQRgBuEEFAr1BCYMmwWsAw3HCAwAHgIOAhQCGQIaARgAAQwAAAADAAACAwACBQQABAQCAAUDBwAAFwABAAAcAgEAAAsDAQAAEAQFAAAHBgEAAQwPAQEDAgoMAQACEwsMAAIbDQkAAxYPAQEIBA0ICgAEFQgJAAUREgoABQ4JEAUTBAgFCgUNBwgEAAUHCAAIBQoFAQcIBAIIAAcIBAIGCgUFAQEDBwoFBgoFDQQKBQMFCAABBggEAQUBAwEHCAQBCAMBBggDAQgBAQkAAQgAAwoFAwUBBggFAQgCAgMDBAUFAwMOU3RvcmFnZUNyZWF0ZWQLU3RvcmFnZUl0ZW0OU3RvcmFnZVVwZGF0ZWQGU3RyaW5nCVR4Q29udGV4dANVSUQJYWxsb3dsaXN0DWFwcGVuZF91bmlxdWUHY3JlYXRvcgRkYXRhBmRlbGV0ZQtkZWxldGVfZGF0YQRlbWl0BWVwb2NoBWV2ZW50AmlkCWlzX2lubGlzdAZsZW5ndGgSbWF4X2FsbG93bGlzdF9zaXplA25ldwZvYmplY3QGc2VuZGVyDHNoYXJlX29iamVjdApzdG9yZV9kYXRhBnN0cmluZwh0cmFuc2Zlcgp0eF9jb250ZXh0DnVpZF90b19hZGRyZXNzC3VwZGF0ZV9kYXRhB3VwZGF0ZXISdmVyaWZpYWJsZV9zdG9yYWdlB3ZlcnNpb24AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDCJEBAAAAAAAAAwjpAwAAAAAAAAACBw8IAwkIBQ0DHwIIBQYKBRINAQIDDwUNAwgFAgIDDwUNAx0FAAEEAAclCgMuEQsMBgoDLhEKDAVACQAAAAAAAAAADAQNBAoGRAkNBA4BCgIRBAsDEQcLAAoFMQEKBgsECwISAAwHDgcQABEICwULBhIBOAALBzgBAgEBBAARPQoELhELDAcKABABCgcRAwQKBRALAAELBAEHACcLBC4RCgwGDgERDAYAAAAAAAAAACQEHQsBCgAPAhUKBgoADwMVQAkAAAAAAAAAAAwFDQUKABAEFEQJCwMgBDENBQ4CCgAQBRQRBAsFCgAPARULABAAEQgLBgsHEgI4AgICAQQAARULAS4RCw4AEAQUIQQJBQsHACcLABMAAQEBAQEBEQYCAwAAABQeCgBBCQwDBgAAAAAAAAAADAIKAgoDIwQaBQoKAAoCQgkUCgEhBBULAAEIAgsCBgEAAAAAAAAAFgwCBQULAAEJAgQAAAAVMgoBQQkMBgYAAAAAAAAAAAwFCgUKBiMELQUKCgEKBUIJFAwECgAKBAwDLgsDEQMgBCgKAC5BCQoCNCMEHwUlCwEBCwABBwEnCgALBEQJCwUGAQAAAAAAAAAWDAUFBQsBAQsAAQIAAAAFAAEAAgAEAAYA",
|
|
99
|
+
deployedPackageId: "0x9c3dd66dcd05d86ac1b9485fdcc912dd3ef63447c86ad7af94709b77ba552909",
|
|
100
|
+
upgradeCap: "0x341653abcb5e21c97bf1e6951cc9eabd41511e1259e16c0fcc2837471d766f5f"
|
|
101
|
+
};
|
|
102
|
+
var compiledModulesJson = {
|
|
103
|
+
testnet: testnet,
|
|
104
|
+
devnet: devnet,
|
|
105
|
+
mainnet: mainnet
|
|
89
106
|
};
|
|
90
107
|
|
|
91
108
|
// Copyright 2024 IOTA Stiftung.
|
|
@@ -213,98 +230,48 @@ class IotaVerifiableStorageConnector {
|
|
|
213
230
|
* Bootstrap the Verifiable Storage contract.
|
|
214
231
|
* @param nodeIdentity The identity of the node.
|
|
215
232
|
* @param nodeLoggingConnectorType The node logging connector type, defaults to "node-logging".
|
|
216
|
-
* @param componentState The component state.
|
|
217
|
-
* @param componentState.contractDeployments The contract deployments.
|
|
218
233
|
* @returns True if the bootstrapping process was successful.
|
|
219
234
|
*/
|
|
220
|
-
async start(nodeIdentity, nodeLoggingConnectorType
|
|
235
|
+
async start(nodeIdentity, nodeLoggingConnectorType) {
|
|
221
236
|
const nodeLogging = loggingModels.LoggingConnectorFactory.getIfExists(nodeLoggingConnectorType ?? "node-logging");
|
|
222
237
|
try {
|
|
223
|
-
const
|
|
224
|
-
|
|
238
|
+
const typedCompiledModules = compiledModulesJson;
|
|
239
|
+
const contractData = typedCompiledModules[this._config.network];
|
|
240
|
+
if (!core.Is.objectValue(contractData)) {
|
|
225
241
|
throw new core.GeneralError(this.CLASS_NAME, "contractDataNotFound", {
|
|
226
|
-
|
|
242
|
+
network: this._config.network,
|
|
243
|
+
availableNetworks: Object.keys(typedCompiledModules)
|
|
227
244
|
});
|
|
228
245
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
compiledModules = contractData.package.map((pkg) => Array.from(core.Converter.base64ToBytes(pkg)));
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
compiledModules = [Array.from(core.Converter.base64ToBytes(contractData.package))];
|
|
236
|
-
}
|
|
237
|
-
const contractDeployments = componentState?.contractDeployments ?? {};
|
|
238
|
-
if (core.Is.stringValue(contractDeployments[contractData.packageId])) {
|
|
239
|
-
this._deployedPackageId = contractDeployments[contractData.packageId];
|
|
240
|
-
// Check if package exists on the network
|
|
241
|
-
const packageExists = await dltIota.Iota.packageExistsOnNetwork(this._client, contractDeployments[contractData.packageId]);
|
|
242
|
-
if (packageExists) {
|
|
243
|
-
await nodeLogging?.log({
|
|
244
|
-
level: "info",
|
|
245
|
-
source: this.CLASS_NAME,
|
|
246
|
-
ts: Date.now(),
|
|
247
|
-
message: "contractAlreadyDeployed",
|
|
248
|
-
data: {
|
|
249
|
-
network: this._config.network,
|
|
250
|
-
nodeIdentity,
|
|
251
|
-
contractId: contractData.packageId,
|
|
252
|
-
deployedPackageId: contractDeployments[contractData.packageId]
|
|
253
|
-
}
|
|
254
|
-
});
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
// Package does not exist, proceed to deploy
|
|
259
|
-
await nodeLogging?.log({
|
|
260
|
-
level: "info",
|
|
261
|
-
source: this.CLASS_NAME,
|
|
262
|
-
ts: Date.now(),
|
|
263
|
-
message: "contractDeploymentStarted",
|
|
264
|
-
data: {
|
|
265
|
-
network: this._config.network,
|
|
266
|
-
nodeIdentity,
|
|
267
|
-
contractId: contractData.packageId
|
|
268
|
-
}
|
|
269
|
-
});
|
|
270
|
-
const txb = new transactions.Transaction();
|
|
271
|
-
txb.setGasBudget(this._gasBudget);
|
|
272
|
-
// Publish the compiled modules
|
|
273
|
-
const [upgradeCap] = txb.publish({
|
|
274
|
-
modules: compiledModules,
|
|
275
|
-
dependencies: ["0x1", "0x2"]
|
|
276
|
-
});
|
|
277
|
-
const controllerAddress = await this.getPackageControllerAddress(nodeIdentity);
|
|
278
|
-
// Transfer the upgrade capability to the controller
|
|
279
|
-
txb.transferObjects([upgradeCap], txb.pure.address(controllerAddress));
|
|
280
|
-
const result = await dltIota.Iota.prepareAndPostTransaction(this._config, this._vaultConnector, nodeLogging, nodeIdentity, this._client, controllerAddress, txb, {
|
|
281
|
-
dryRunLabel: this._config.enableCostLogging ? "deploy" : undefined
|
|
282
|
-
});
|
|
283
|
-
if (result.effects?.status?.status !== "success") {
|
|
284
|
-
throw new core.GeneralError(this.CLASS_NAME, "deployTransactionFailed", {
|
|
285
|
-
error: result.effects?.status?.error
|
|
246
|
+
if (!core.Is.stringValue(contractData.deployedPackageId)) {
|
|
247
|
+
throw new core.GeneralError(this.CLASS_NAME, "deployedPackageIdRequired", {
|
|
248
|
+
network: this._config.network
|
|
286
249
|
});
|
|
287
250
|
}
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
const deployedPackageId = packageObject?.reference?.objectId;
|
|
291
|
-
if (!core.Is.stringValue(deployedPackageId)) {
|
|
251
|
+
this._deployedPackageId = contractData.deployedPackageId;
|
|
252
|
+
if (!this._deployedPackageId) {
|
|
292
253
|
throw new core.GeneralError(this.CLASS_NAME, "packageIdNotFound", {
|
|
293
|
-
|
|
254
|
+
network: this._config.network
|
|
294
255
|
});
|
|
295
256
|
}
|
|
296
|
-
this._deployedPackageId
|
|
297
|
-
if (
|
|
298
|
-
|
|
299
|
-
|
|
257
|
+
const packageExists = await dltIota.Iota.packageExistsOnNetwork(this._client, this._deployedPackageId);
|
|
258
|
+
if (!packageExists) {
|
|
259
|
+
throw new core.GeneralError(this.CLASS_NAME, "packageNotFoundOnNetwork", {
|
|
260
|
+
network: this._config.network,
|
|
261
|
+
deployedPackageId: this._deployedPackageId
|
|
262
|
+
});
|
|
300
263
|
}
|
|
301
264
|
await nodeLogging?.log({
|
|
302
265
|
level: "info",
|
|
303
266
|
source: this.CLASS_NAME,
|
|
304
267
|
ts: Date.now(),
|
|
305
|
-
message: "
|
|
268
|
+
message: "contractReady",
|
|
306
269
|
data: {
|
|
307
|
-
|
|
270
|
+
network: this._config.network,
|
|
271
|
+
nodeIdentity,
|
|
272
|
+
packageId: contractData.packageId,
|
|
273
|
+
deployedPackageId: this._deployedPackageId,
|
|
274
|
+
upgradeCap: contractData.upgradeCap
|
|
308
275
|
}
|
|
309
276
|
});
|
|
310
277
|
}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DataTypeHandlerFactory } from '@twin.org/data-core';
|
|
2
2
|
import { VerifiableStorageContexts } from '@twin.org/verifiable-storage-models';
|
|
3
3
|
import { Transaction } from '@iota/iota-sdk/transactions';
|
|
4
|
-
import { Urn, GeneralError, Guards, Is,
|
|
4
|
+
import { Urn, GeneralError, Guards, Is, BaseError, Converter, UnauthorizedError, StringHelper } from '@twin.org/core';
|
|
5
5
|
import { Iota } from '@twin.org/dlt-iota';
|
|
6
6
|
import { LoggingConnectorFactory } from '@twin.org/logging-models';
|
|
7
7
|
import { VaultConnectorFactory } from '@twin.org/vault-models';
|
|
@@ -79,11 +79,28 @@ class VerifiableStorageConnectorIotaDataTypes {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
var
|
|
83
|
-
"verifiable-storage": {
|
|
82
|
+
var testnet = {
|
|
84
83
|
packageId: "0x794a5c35713037ae2cc83fcd4b4974ec4029e382b0562386a78c0f1c87b2f6d4",
|
|
85
|
-
"package": "oRzrCwYAAAALAQAMAgwYAyRDBGcGBW1iB88BsgIIgQRgBuEEFAr1BCYMmwWsAw3HCAwAHgIOAhQCGQIaARgAAQwAAAADAAACAwACBQQABAQCAAUDBwAAFwABAAAcAgEAAAsDAQAAEAQFAAAHBgEAAQwPAQEDAgoMAQACEwsMAAIbDQkAAxYPAQEIBA0ICgAEFQgJAAUREgoABQ4JEAUTBAgFCgUNBwgEAAUHCAAIBQoFAQcIBAIIAAcIBAIGCgUFAQEDBwoFBgoFDQQKBQMFCAABBggEAQUBAwEHCAQBCAMBBggDAQgBAQkAAQgAAwoFAwUBBggFAQgCAgMDBAUFAwMOU3RvcmFnZUNyZWF0ZWQLU3RvcmFnZUl0ZW0OU3RvcmFnZVVwZGF0ZWQGU3RyaW5nCVR4Q29udGV4dANVSUQJYWxsb3dsaXN0DWFwcGVuZF91bmlxdWUHY3JlYXRvcgRkYXRhBmRlbGV0ZQtkZWxldGVfZGF0YQRlbWl0BWVwb2NoBWV2ZW50AmlkCWlzX2lubGlzdAZsZW5ndGgSbWF4X2FsbG93bGlzdF9zaXplA25ldwZvYmplY3QGc2VuZGVyDHNoYXJlX29iamVjdApzdG9yZV9kYXRhBnN0cmluZwh0cmFuc2Zlcgp0eF9jb250ZXh0DnVpZF90b19hZGRyZXNzC3VwZGF0ZV9kYXRhB3VwZGF0ZXISdmVyaWZpYWJsZV9zdG9yYWdlB3ZlcnNpb24AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDCJEBAAAAAAAAAwjpAwAAAAAAAAACBw8IAwkIBQ0DHwIIBQYKBRINAQIDDwUNAwgFAgIDDwUNAx0FAAEEAAclCgMuEQsMBgoDLhEKDAVACQAAAAAAAAAADAQNBAoGRAkNBA4BCgIRBAsDEQcLAAoFMQEKBgsECwISAAwHDgcQABEICwULBhIBOAALBzgBAgEBBAARPQoELhELDAcKABABCgcRAwQKBRALAAELBAEHACcLBC4RCgwGDgERDAYAAAAAAAAAACQEHQsBCgAPAhUKBgoADwMVQAkAAAAAAAAAAAwFDQUKABAEFEQJCwMgBDENBQ4CCgAQBRQRBAsFCgAPARULABAAEQgLBgsHEgI4AgICAQQAARULAS4RCw4AEAQUIQQJBQsHACcLABMAAQEBAQEBEQYCAwAAABQeCgBBCQwDBgAAAAAAAAAADAIKAgoDIwQaBQoKAAoCQgkUCgEhBBULAAEIAgsCBgEAAAAAAAAAFgwCBQULAAEJAgQAAAAVMgoBQQkMBgYAAAAAAAAAAAwFCgUKBiMELQUKCgEKBUIJFAwECgAKBAwDLgsDEQMgBCgKAC5BCQoCNCMEHwUlCwEBCwABBwEnCgALBEQJCwUGAQAAAAAAAAAWDAUFBQsBAQsAAQIAAAAFAAEAAgAEAAYA"
|
|
86
|
-
|
|
84
|
+
"package": "oRzrCwYAAAALAQAMAgwYAyRDBGcGBW1iB88BsgIIgQRgBuEEFAr1BCYMmwWsAw3HCAwAHgIOAhQCGQIaARgAAQwAAAADAAACAwACBQQABAQCAAUDBwAAFwABAAAcAgEAAAsDAQAAEAQFAAAHBgEAAQwPAQEDAgoMAQACEwsMAAIbDQkAAxYPAQEIBA0ICgAEFQgJAAUREgoABQ4JEAUTBAgFCgUNBwgEAAUHCAAIBQoFAQcIBAIIAAcIBAIGCgUFAQEDBwoFBgoFDQQKBQMFCAABBggEAQUBAwEHCAQBCAMBBggDAQgBAQkAAQgAAwoFAwUBBggFAQgCAgMDBAUFAwMOU3RvcmFnZUNyZWF0ZWQLU3RvcmFnZUl0ZW0OU3RvcmFnZVVwZGF0ZWQGU3RyaW5nCVR4Q29udGV4dANVSUQJYWxsb3dsaXN0DWFwcGVuZF91bmlxdWUHY3JlYXRvcgRkYXRhBmRlbGV0ZQtkZWxldGVfZGF0YQRlbWl0BWVwb2NoBWV2ZW50AmlkCWlzX2lubGlzdAZsZW5ndGgSbWF4X2FsbG93bGlzdF9zaXplA25ldwZvYmplY3QGc2VuZGVyDHNoYXJlX29iamVjdApzdG9yZV9kYXRhBnN0cmluZwh0cmFuc2Zlcgp0eF9jb250ZXh0DnVpZF90b19hZGRyZXNzC3VwZGF0ZV9kYXRhB3VwZGF0ZXISdmVyaWZpYWJsZV9zdG9yYWdlB3ZlcnNpb24AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDCJEBAAAAAAAAAwjpAwAAAAAAAAACBw8IAwkIBQ0DHwIIBQYKBRINAQIDDwUNAwgFAgIDDwUNAx0FAAEEAAclCgMuEQsMBgoDLhEKDAVACQAAAAAAAAAADAQNBAoGRAkNBA4BCgIRBAsDEQcLAAoFMQEKBgsECwISAAwHDgcQABEICwULBhIBOAALBzgBAgEBBAARPQoELhELDAcKABABCgcRAwQKBRALAAELBAEHACcLBC4RCgwGDgERDAYAAAAAAAAAACQEHQsBCgAPAhUKBgoADwMVQAkAAAAAAAAAAAwFDQUKABAEFEQJCwMgBDENBQ4CCgAQBRQRBAsFCgAPARULABAAEQgLBgsHEgI4AgICAQQAARULAS4RCw4AEAQUIQQJBQsHACcLABMAAQEBAQEBEQYCAwAAABQeCgBBCQwDBgAAAAAAAAAADAIKAgoDIwQaBQoKAAoCQgkUCgEhBBULAAEIAgsCBgEAAAAAAAAAFgwCBQULAAEJAgQAAAAVMgoBQQkMBgYAAAAAAAAAAAwFCgUKBiMELQUKCgEKBUIJFAwECgAKBAwDLgsDEQMgBCgKAC5BCQoCNCMEHwUlCwEBCwABBwEnCgALBEQJCwUGAQAAAAAAAAAWDAUFBQsBAQsAAQIAAAAFAAEAAgAEAAYA",
|
|
85
|
+
deployedPackageId: "0xf0093c80eb9569e04022143517a100ac63f54fc1ba5996cb40e94a62c0e52fce",
|
|
86
|
+
upgradeCap: "0xe2d3595bf3b46d5c405126519138fbf040f9bebf3f1a4908c8bc502fe03d4498"
|
|
87
|
+
};
|
|
88
|
+
var devnet = {
|
|
89
|
+
packageId: "",
|
|
90
|
+
"package": "",
|
|
91
|
+
deployedPackageId: "",
|
|
92
|
+
upgradeCap: ""
|
|
93
|
+
};
|
|
94
|
+
var mainnet = {
|
|
95
|
+
packageId: "0x794a5c35713037ae2cc83fcd4b4974ec4029e382b0562386a78c0f1c87b2f6d4",
|
|
96
|
+
"package": "oRzrCwYAAAALAQAMAgwYAyRDBGcGBW1iB88BsgIIgQRgBuEEFAr1BCYMmwWsAw3HCAwAHgIOAhQCGQIaARgAAQwAAAADAAACAwACBQQABAQCAAUDBwAAFwABAAAcAgEAAAsDAQAAEAQFAAAHBgEAAQwPAQEDAgoMAQACEwsMAAIbDQkAAxYPAQEIBA0ICgAEFQgJAAUREgoABQ4JEAUTBAgFCgUNBwgEAAUHCAAIBQoFAQcIBAIIAAcIBAIGCgUFAQEDBwoFBgoFDQQKBQMFCAABBggEAQUBAwEHCAQBCAMBBggDAQgBAQkAAQgAAwoFAwUBBggFAQgCAgMDBAUFAwMOU3RvcmFnZUNyZWF0ZWQLU3RvcmFnZUl0ZW0OU3RvcmFnZVVwZGF0ZWQGU3RyaW5nCVR4Q29udGV4dANVSUQJYWxsb3dsaXN0DWFwcGVuZF91bmlxdWUHY3JlYXRvcgRkYXRhBmRlbGV0ZQtkZWxldGVfZGF0YQRlbWl0BWVwb2NoBWV2ZW50AmlkCWlzX2lubGlzdAZsZW5ndGgSbWF4X2FsbG93bGlzdF9zaXplA25ldwZvYmplY3QGc2VuZGVyDHNoYXJlX29iamVjdApzdG9yZV9kYXRhBnN0cmluZwh0cmFuc2Zlcgp0eF9jb250ZXh0DnVpZF90b19hZGRyZXNzC3VwZGF0ZV9kYXRhB3VwZGF0ZXISdmVyaWZpYWJsZV9zdG9yYWdlB3ZlcnNpb24AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDCJEBAAAAAAAAAwjpAwAAAAAAAAACBw8IAwkIBQ0DHwIIBQYKBRINAQIDDwUNAwgFAgIDDwUNAx0FAAEEAAclCgMuEQsMBgoDLhEKDAVACQAAAAAAAAAADAQNBAoGRAkNBA4BCgIRBAsDEQcLAAoFMQEKBgsECwISAAwHDgcQABEICwULBhIBOAALBzgBAgEBBAARPQoELhELDAcKABABCgcRAwQKBRALAAELBAEHACcLBC4RCgwGDgERDAYAAAAAAAAAACQEHQsBCgAPAhUKBgoADwMVQAkAAAAAAAAAAAwFDQUKABAEFEQJCwMgBDENBQ4CCgAQBRQRBAsFCgAPARULABAAEQgLBgsHEgI4AgICAQQAARULAS4RCw4AEAQUIQQJBQsHACcLABMAAQEBAQEBEQYCAwAAABQeCgBBCQwDBgAAAAAAAAAADAIKAgoDIwQaBQoKAAoCQgkUCgEhBBULAAEIAgsCBgEAAAAAAAAAFgwCBQULAAEJAgQAAAAVMgoBQQkMBgYAAAAAAAAAAAwFCgUKBiMELQUKCgEKBUIJFAwECgAKBAwDLgsDEQMgBCgKAC5BCQoCNCMEHwUlCwEBCwABBwEnCgALBEQJCwUGAQAAAAAAAAAWDAUFBQsBAQsAAQIAAAAFAAEAAgAEAAYA",
|
|
97
|
+
deployedPackageId: "0x9c3dd66dcd05d86ac1b9485fdcc912dd3ef63447c86ad7af94709b77ba552909",
|
|
98
|
+
upgradeCap: "0x341653abcb5e21c97bf1e6951cc9eabd41511e1259e16c0fcc2837471d766f5f"
|
|
99
|
+
};
|
|
100
|
+
var compiledModulesJson = {
|
|
101
|
+
testnet: testnet,
|
|
102
|
+
devnet: devnet,
|
|
103
|
+
mainnet: mainnet
|
|
87
104
|
};
|
|
88
105
|
|
|
89
106
|
// Copyright 2024 IOTA Stiftung.
|
|
@@ -211,98 +228,48 @@ class IotaVerifiableStorageConnector {
|
|
|
211
228
|
* Bootstrap the Verifiable Storage contract.
|
|
212
229
|
* @param nodeIdentity The identity of the node.
|
|
213
230
|
* @param nodeLoggingConnectorType The node logging connector type, defaults to "node-logging".
|
|
214
|
-
* @param componentState The component state.
|
|
215
|
-
* @param componentState.contractDeployments The contract deployments.
|
|
216
231
|
* @returns True if the bootstrapping process was successful.
|
|
217
232
|
*/
|
|
218
|
-
async start(nodeIdentity, nodeLoggingConnectorType
|
|
233
|
+
async start(nodeIdentity, nodeLoggingConnectorType) {
|
|
219
234
|
const nodeLogging = LoggingConnectorFactory.getIfExists(nodeLoggingConnectorType ?? "node-logging");
|
|
220
235
|
try {
|
|
221
|
-
const
|
|
222
|
-
|
|
236
|
+
const typedCompiledModules = compiledModulesJson;
|
|
237
|
+
const contractData = typedCompiledModules[this._config.network];
|
|
238
|
+
if (!Is.objectValue(contractData)) {
|
|
223
239
|
throw new GeneralError(this.CLASS_NAME, "contractDataNotFound", {
|
|
224
|
-
|
|
240
|
+
network: this._config.network,
|
|
241
|
+
availableNetworks: Object.keys(typedCompiledModules)
|
|
225
242
|
});
|
|
226
243
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
compiledModules = contractData.package.map((pkg) => Array.from(Converter.base64ToBytes(pkg)));
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
compiledModules = [Array.from(Converter.base64ToBytes(contractData.package))];
|
|
234
|
-
}
|
|
235
|
-
const contractDeployments = componentState?.contractDeployments ?? {};
|
|
236
|
-
if (Is.stringValue(contractDeployments[contractData.packageId])) {
|
|
237
|
-
this._deployedPackageId = contractDeployments[contractData.packageId];
|
|
238
|
-
// Check if package exists on the network
|
|
239
|
-
const packageExists = await Iota.packageExistsOnNetwork(this._client, contractDeployments[contractData.packageId]);
|
|
240
|
-
if (packageExists) {
|
|
241
|
-
await nodeLogging?.log({
|
|
242
|
-
level: "info",
|
|
243
|
-
source: this.CLASS_NAME,
|
|
244
|
-
ts: Date.now(),
|
|
245
|
-
message: "contractAlreadyDeployed",
|
|
246
|
-
data: {
|
|
247
|
-
network: this._config.network,
|
|
248
|
-
nodeIdentity,
|
|
249
|
-
contractId: contractData.packageId,
|
|
250
|
-
deployedPackageId: contractDeployments[contractData.packageId]
|
|
251
|
-
}
|
|
252
|
-
});
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
// Package does not exist, proceed to deploy
|
|
257
|
-
await nodeLogging?.log({
|
|
258
|
-
level: "info",
|
|
259
|
-
source: this.CLASS_NAME,
|
|
260
|
-
ts: Date.now(),
|
|
261
|
-
message: "contractDeploymentStarted",
|
|
262
|
-
data: {
|
|
263
|
-
network: this._config.network,
|
|
264
|
-
nodeIdentity,
|
|
265
|
-
contractId: contractData.packageId
|
|
266
|
-
}
|
|
267
|
-
});
|
|
268
|
-
const txb = new Transaction();
|
|
269
|
-
txb.setGasBudget(this._gasBudget);
|
|
270
|
-
// Publish the compiled modules
|
|
271
|
-
const [upgradeCap] = txb.publish({
|
|
272
|
-
modules: compiledModules,
|
|
273
|
-
dependencies: ["0x1", "0x2"]
|
|
274
|
-
});
|
|
275
|
-
const controllerAddress = await this.getPackageControllerAddress(nodeIdentity);
|
|
276
|
-
// Transfer the upgrade capability to the controller
|
|
277
|
-
txb.transferObjects([upgradeCap], txb.pure.address(controllerAddress));
|
|
278
|
-
const result = await Iota.prepareAndPostTransaction(this._config, this._vaultConnector, nodeLogging, nodeIdentity, this._client, controllerAddress, txb, {
|
|
279
|
-
dryRunLabel: this._config.enableCostLogging ? "deploy" : undefined
|
|
280
|
-
});
|
|
281
|
-
if (result.effects?.status?.status !== "success") {
|
|
282
|
-
throw new GeneralError(this.CLASS_NAME, "deployTransactionFailed", {
|
|
283
|
-
error: result.effects?.status?.error
|
|
244
|
+
if (!Is.stringValue(contractData.deployedPackageId)) {
|
|
245
|
+
throw new GeneralError(this.CLASS_NAME, "deployedPackageIdRequired", {
|
|
246
|
+
network: this._config.network
|
|
284
247
|
});
|
|
285
248
|
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
const deployedPackageId = packageObject?.reference?.objectId;
|
|
289
|
-
if (!Is.stringValue(deployedPackageId)) {
|
|
249
|
+
this._deployedPackageId = contractData.deployedPackageId;
|
|
250
|
+
if (!this._deployedPackageId) {
|
|
290
251
|
throw new GeneralError(this.CLASS_NAME, "packageIdNotFound", {
|
|
291
|
-
|
|
252
|
+
network: this._config.network
|
|
292
253
|
});
|
|
293
254
|
}
|
|
294
|
-
this._deployedPackageId
|
|
295
|
-
if (
|
|
296
|
-
|
|
297
|
-
|
|
255
|
+
const packageExists = await Iota.packageExistsOnNetwork(this._client, this._deployedPackageId);
|
|
256
|
+
if (!packageExists) {
|
|
257
|
+
throw new GeneralError(this.CLASS_NAME, "packageNotFoundOnNetwork", {
|
|
258
|
+
network: this._config.network,
|
|
259
|
+
deployedPackageId: this._deployedPackageId
|
|
260
|
+
});
|
|
298
261
|
}
|
|
299
262
|
await nodeLogging?.log({
|
|
300
263
|
level: "info",
|
|
301
264
|
source: this.CLASS_NAME,
|
|
302
265
|
ts: Date.now(),
|
|
303
|
-
message: "
|
|
266
|
+
message: "contractReady",
|
|
304
267
|
data: {
|
|
305
|
-
|
|
268
|
+
network: this._config.network,
|
|
269
|
+
nodeIdentity,
|
|
270
|
+
packageId: contractData.packageId,
|
|
271
|
+
deployedPackageId: this._deployedPackageId,
|
|
272
|
+
upgradeCap: contractData.upgradeCap
|
|
306
273
|
}
|
|
307
274
|
});
|
|
308
275
|
}
|
|
@@ -22,15 +22,9 @@ export declare class IotaVerifiableStorageConnector implements IVerifiableStorag
|
|
|
22
22
|
* Bootstrap the Verifiable Storage contract.
|
|
23
23
|
* @param nodeIdentity The identity of the node.
|
|
24
24
|
* @param nodeLoggingConnectorType The node logging connector type, defaults to "node-logging".
|
|
25
|
-
* @param componentState The component state.
|
|
26
|
-
* @param componentState.contractDeployments The contract deployments.
|
|
27
25
|
* @returns True if the bootstrapping process was successful.
|
|
28
26
|
*/
|
|
29
|
-
start(nodeIdentity: string, nodeLoggingConnectorType?: string
|
|
30
|
-
contractDeployments?: {
|
|
31
|
-
[id: string]: string;
|
|
32
|
-
};
|
|
33
|
-
}): Promise<void>;
|
|
27
|
+
start(nodeIdentity: string, nodeLoggingConnectorType?: string): Promise<void>;
|
|
34
28
|
/**
|
|
35
29
|
* Create an item in verifiable storage.
|
|
36
30
|
* @param controller The identity of the user to access the vault keys.
|
package/docs/changelog.md
CHANGED
|
@@ -1,5 +1,83 @@
|
|
|
1
1
|
# @twin.org/verifiable-storage-connector-iota - Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.2-next.3](https://github.com/twinfoundation/verifiable-storage/compare/verifiable-storage-connector-iota-v0.0.2-next.2...verifiable-storage-connector-iota-v0.0.2-next.3) (2025-07-28)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* update IOTA verifiable storage connector to use the updated move-to-json cli ([#33](https://github.com/twinfoundation/verifiable-storage/issues/33)) ([7c8d0d2](https://github.com/twinfoundation/verifiable-storage/commit/7c8d0d2e0418333ab1f897f744326c5c72857932))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Dependencies
|
|
12
|
+
|
|
13
|
+
* The following workspace dependencies were updated
|
|
14
|
+
* dependencies
|
|
15
|
+
* @twin.org/verifiable-storage-models bumped from 0.0.2-next.2 to 0.0.2-next.3
|
|
16
|
+
|
|
17
|
+
## [0.0.2-next.2](https://github.com/twinfoundation/verifiable-storage/compare/verifiable-storage-connector-iota-v0.0.2-next.1...verifiable-storage-connector-iota-v0.0.2-next.2) (2025-07-16)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* add data types ([d9ad58a](https://github.com/twinfoundation/verifiable-storage/commit/d9ad58afb0c86b80bcb1229d87d2d7f522b20fcd))
|
|
23
|
+
* add epoch and digest to receipt ([#12](https://github.com/twinfoundation/verifiable-storage/issues/12)) ([cd4cfa6](https://github.com/twinfoundation/verifiable-storage/commit/cd4cfa6bee19ee9b9896447d0b773bffd57fddf1))
|
|
24
|
+
* add support for allowlist ([#17](https://github.com/twinfoundation/verifiable-storage/issues/17)) ([9341ea6](https://github.com/twinfoundation/verifiable-storage/commit/9341ea6b95dfbf2a5dc70a53e5979d7d0e8b2de6))
|
|
25
|
+
* improve components state for deployments based on contract id ([ce1dadd](https://github.com/twinfoundation/verifiable-storage/commit/ce1daddeda4a37d5becd49803475ece2a5c01a07))
|
|
26
|
+
* iota rebased release ([fb37cfe](https://github.com/twinfoundation/verifiable-storage/commit/fb37cfec62abe862bcb9b2285564b8ee6e59849b))
|
|
27
|
+
* iota rebased release ([e8fa9dd](https://github.com/twinfoundation/verifiable-storage/commit/e8fa9dd2a8a9c375ffc465f9b5c2048f6b0dca47))
|
|
28
|
+
* update allow list name case ([278a787](https://github.com/twinfoundation/verifiable-storage/commit/278a787e96864c95438f87adaac6f2fc8b6bebcd))
|
|
29
|
+
* update connector config and tests for gas station ([#25](https://github.com/twinfoundation/verifiable-storage/issues/25)) ([e0997ff](https://github.com/twinfoundation/verifiable-storage/commit/e0997ffb0f4869dca11f248a9886acdd22c7dcc2))
|
|
30
|
+
* update dependencies ([a16a772](https://github.com/twinfoundation/verifiable-storage/commit/a16a77244cb1d312ea5ee74232bcdadd25f2b330))
|
|
31
|
+
* update ts-to-schema generation ([cd41401](https://github.com/twinfoundation/verifiable-storage/commit/cd41401dd4e91f111ddf8ae68eb7b40a976fb232))
|
|
32
|
+
* use new dlt packages with latency fix ([#6](https://github.com/twinfoundation/verifiable-storage/issues/6)) ([d81c45b](https://github.com/twinfoundation/verifiable-storage/commit/d81c45bce035864a41bbd498815169d7257fbcb8))
|
|
33
|
+
* use shared store mechanism ([#8](https://github.com/twinfoundation/verifiable-storage/issues/8)) ([8c8ecb8](https://github.com/twinfoundation/verifiable-storage/commit/8c8ecb83d32431952c594ea23d37040991f5b4d3))
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
### Bug Fixes
|
|
37
|
+
|
|
38
|
+
* add missing iota receipt data ([#10](https://github.com/twinfoundation/verifiable-storage/issues/10)) ([b83c79f](https://github.com/twinfoundation/verifiable-storage/commit/b83c79fb453bb45af7c347dd7688eddbafdb442e))
|
|
39
|
+
* iota get digest to match last update ([53690a0](https://github.com/twinfoundation/verifiable-storage/commit/53690a0ffa9d38a69d184c90f975cc67199a5808))
|
|
40
|
+
* return if package already deployed ([dd859ca](https://github.com/twinfoundation/verifiable-storage/commit/dd859caadb7fa8323e214f6920e61e96202b4039))
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### Dependencies
|
|
44
|
+
|
|
45
|
+
* The following workspace dependencies were updated
|
|
46
|
+
* dependencies
|
|
47
|
+
* @twin.org/verifiable-storage-models bumped from 0.0.2-next.0 to 0.0.2-next.2
|
|
48
|
+
|
|
49
|
+
## [0.0.2-next.0](https://github.com/twinfoundation/verifiable-storage/compare/verifiable-storage-connector-iota-v0.0.2-next.0...verifiable-storage-connector-iota-v0.0.2-next.0) (2025-07-16)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### Features
|
|
53
|
+
|
|
54
|
+
* add data types ([d9ad58a](https://github.com/twinfoundation/verifiable-storage/commit/d9ad58afb0c86b80bcb1229d87d2d7f522b20fcd))
|
|
55
|
+
* add epoch and digest to receipt ([#12](https://github.com/twinfoundation/verifiable-storage/issues/12)) ([cd4cfa6](https://github.com/twinfoundation/verifiable-storage/commit/cd4cfa6bee19ee9b9896447d0b773bffd57fddf1))
|
|
56
|
+
* add support for allowlist ([#17](https://github.com/twinfoundation/verifiable-storage/issues/17)) ([9341ea6](https://github.com/twinfoundation/verifiable-storage/commit/9341ea6b95dfbf2a5dc70a53e5979d7d0e8b2de6))
|
|
57
|
+
* improve components state for deployments based on contract id ([ce1dadd](https://github.com/twinfoundation/verifiable-storage/commit/ce1daddeda4a37d5becd49803475ece2a5c01a07))
|
|
58
|
+
* iota rebased release ([fb37cfe](https://github.com/twinfoundation/verifiable-storage/commit/fb37cfec62abe862bcb9b2285564b8ee6e59849b))
|
|
59
|
+
* iota rebased release ([e8fa9dd](https://github.com/twinfoundation/verifiable-storage/commit/e8fa9dd2a8a9c375ffc465f9b5c2048f6b0dca47))
|
|
60
|
+
* update allow list name case ([278a787](https://github.com/twinfoundation/verifiable-storage/commit/278a787e96864c95438f87adaac6f2fc8b6bebcd))
|
|
61
|
+
* update connector config and tests for gas station ([#25](https://github.com/twinfoundation/verifiable-storage/issues/25)) ([e0997ff](https://github.com/twinfoundation/verifiable-storage/commit/e0997ffb0f4869dca11f248a9886acdd22c7dcc2))
|
|
62
|
+
* update dependencies ([a16a772](https://github.com/twinfoundation/verifiable-storage/commit/a16a77244cb1d312ea5ee74232bcdadd25f2b330))
|
|
63
|
+
* update ts-to-schema generation ([cd41401](https://github.com/twinfoundation/verifiable-storage/commit/cd41401dd4e91f111ddf8ae68eb7b40a976fb232))
|
|
64
|
+
* use new dlt packages with latency fix ([#6](https://github.com/twinfoundation/verifiable-storage/issues/6)) ([d81c45b](https://github.com/twinfoundation/verifiable-storage/commit/d81c45bce035864a41bbd498815169d7257fbcb8))
|
|
65
|
+
* use shared store mechanism ([#8](https://github.com/twinfoundation/verifiable-storage/issues/8)) ([8c8ecb8](https://github.com/twinfoundation/verifiable-storage/commit/8c8ecb83d32431952c594ea23d37040991f5b4d3))
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
### Bug Fixes
|
|
69
|
+
|
|
70
|
+
* add missing iota receipt data ([#10](https://github.com/twinfoundation/verifiable-storage/issues/10)) ([b83c79f](https://github.com/twinfoundation/verifiable-storage/commit/b83c79fb453bb45af7c347dd7688eddbafdb442e))
|
|
71
|
+
* iota get digest to match last update ([53690a0](https://github.com/twinfoundation/verifiable-storage/commit/53690a0ffa9d38a69d184c90f975cc67199a5808))
|
|
72
|
+
* return if package already deployed ([dd859ca](https://github.com/twinfoundation/verifiable-storage/commit/dd859caadb7fa8323e214f6920e61e96202b4039))
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
### Dependencies
|
|
76
|
+
|
|
77
|
+
* The following workspace dependencies were updated
|
|
78
|
+
* dependencies
|
|
79
|
+
* @twin.org/verifiable-storage-models bumped from 0.0.2-next.0 to 0.0.2-next.0
|
|
80
|
+
|
|
3
81
|
## 0.0.1 (2025-07-09)
|
|
4
82
|
|
|
5
83
|
|
|
@@ -50,7 +50,7 @@ Runtime name for the class.
|
|
|
50
50
|
|
|
51
51
|
### start()
|
|
52
52
|
|
|
53
|
-
> **start**(`nodeIdentity`, `nodeLoggingConnectorType
|
|
53
|
+
> **start**(`nodeIdentity`, `nodeLoggingConnectorType?`): `Promise`\<`void`\>
|
|
54
54
|
|
|
55
55
|
Bootstrap the Verifiable Storage contract.
|
|
56
56
|
|
|
@@ -68,16 +68,6 @@ The identity of the node.
|
|
|
68
68
|
|
|
69
69
|
The node logging connector type, defaults to "node-logging".
|
|
70
70
|
|
|
71
|
-
##### componentState?
|
|
72
|
-
|
|
73
|
-
The component state.
|
|
74
|
-
|
|
75
|
-
###### contractDeployments?
|
|
76
|
-
|
|
77
|
-
\{[`id`: `string`]: `string`; \}
|
|
78
|
-
|
|
79
|
-
The contract deployments.
|
|
80
|
-
|
|
81
71
|
#### Returns
|
|
82
72
|
|
|
83
73
|
`Promise`\<`void`\>
|
package/locales/en.json
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
"iotaVerifiableStorageConnector": {
|
|
4
4
|
"contractAlreadyDeployed": "Contract already deployed",
|
|
5
5
|
"contractDeploymentStarted": "Contract deployment started",
|
|
6
|
-
"contractDeploymentCompleted": "Contract deployment completed"
|
|
6
|
+
"contractDeploymentCompleted": "Contract deployment completed",
|
|
7
|
+
"contractReady": "Contract ready for use"
|
|
7
8
|
}
|
|
8
9
|
},
|
|
9
10
|
"error": {
|
|
@@ -13,7 +14,7 @@
|
|
|
13
14
|
"updatingFailed": "Updating the verifiable item failed",
|
|
14
15
|
"gettingFailed": "Getting the verifiable item failed",
|
|
15
16
|
"removingFailed": "Removing the verifiable item failed",
|
|
16
|
-
"packageIdNotFound": "
|
|
17
|
+
"packageIdNotFound": "Package ID not found for network \"{network}\"",
|
|
17
18
|
"storingTransactionFailed": "The transaction to store the data failed",
|
|
18
19
|
"removingTransactionFailed": "The transaction to remove the data failed",
|
|
19
20
|
"objectNotFound": "The object was not found",
|
|
@@ -25,7 +26,10 @@
|
|
|
25
26
|
"invalidGasBudget": "The gas budget must be greater than 0",
|
|
26
27
|
"notInAllowList": "The user is not in the allow list",
|
|
27
28
|
"notCreator": "Only the creator can remove the verifiable item",
|
|
28
|
-
"allowListTooBig": "The number of items in the allow list is larger than the maximum allowed"
|
|
29
|
+
"allowListTooBig": "The number of items in the allow list is larger than the maximum allowed",
|
|
30
|
+
"contractDataNotFound": "Contract data not found for network \"{network}\". Available networks: {availableNetworks}",
|
|
31
|
+
"deployedPackageIdRequired": "deployedPackageId is required for network operations on \"{network}\".",
|
|
32
|
+
"packageNotFoundOnNetwork": "Package \"{deployedPackageId}\" not found on \"{network}\" network"
|
|
29
33
|
},
|
|
30
34
|
"iotaVerifiableStorageUtils": {
|
|
31
35
|
"invalidVerifiableStorageIdFormat": "The verifiable storage ID \"{id}\" has an invalid format"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twin.org/verifiable-storage-connector-iota",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2-next.3",
|
|
4
4
|
"description": "Implementation of the Verifiable Storage connector using IOTA",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
"node": ">=20.0.0"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@iota/iota-sdk": "1.
|
|
18
|
-
"@twin.org/core": "
|
|
19
|
-
"@twin.org/crypto": "
|
|
20
|
-
"@twin.org/data-core": "
|
|
21
|
-
"@twin.org/data-json-ld": "
|
|
22
|
-
"@twin.org/dlt-iota": "
|
|
23
|
-
"@twin.org/logging-models": "
|
|
24
|
-
"@twin.org/nameof": "
|
|
25
|
-
"@twin.org/vault-models": "
|
|
26
|
-
"@twin.org/verifiable-storage-models": "
|
|
17
|
+
"@iota/iota-sdk": "1.4.0",
|
|
18
|
+
"@twin.org/core": "next",
|
|
19
|
+
"@twin.org/crypto": "next",
|
|
20
|
+
"@twin.org/data-core": "next",
|
|
21
|
+
"@twin.org/data-json-ld": "next",
|
|
22
|
+
"@twin.org/dlt-iota": "next",
|
|
23
|
+
"@twin.org/logging-models": "next",
|
|
24
|
+
"@twin.org/nameof": "next",
|
|
25
|
+
"@twin.org/vault-models": "next",
|
|
26
|
+
"@twin.org/verifiable-storage-models": "0.0.2-next.3"
|
|
27
27
|
},
|
|
28
28
|
"main": "./dist/cjs/index.cjs",
|
|
29
29
|
"module": "./dist/esm/index.mjs",
|