pontus-x_cli
Version:
Command Line Interface for the Pontus-X Data Space Ecosystem.
55 lines • 2.78 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = require("fs");
const nautilus_1 = require("@deltadao/nautilus");
const nautilus_2 = require("@deltadao/nautilus");
const publish = async (folder, connection, provider, dryRun) => {
const assetBuilder = new nautilus_1.AssetBuilder();
assetBuilder.setType('dataset')
.setName('Red Wine Dataset')
.setAuthor('Cortez et al., 2009')
.setOwner(connection.wallet.address)
.setDescription((0, fs_1.readFileSync)(`${folder}/description.md`, 'utf8'))
.addTags(['agriculture', 'wine', 'agrospai', 'udl', 'tabular-data'])
.setLicense('CC-BY-4.0')
.setNftData({
name: 'Red Wine',
symbol: 'RED',
templateIndex: 1,
tokenURI: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/3c/Red_and_white_wine_12-2015.jpg/240px-Red_and_white_wine_12-2015.jpg',
transferable: false
})
.addLinks(['https://archive.ics.uci.edu/dataset/186/wine+quality']);
const serviceBuilder = new nautilus_2.ServiceBuilder({ serviceType: nautilus_2.ServiceTypes.COMPUTE, fileType: nautilus_2.FileTypes.URL });
const urlFile = {
type: 'url', // there are multiple supported data source types, see https://docs.oceanprotocol.com/developers/storage
url: 'https://raw.githubusercontent.com/plotly/datasets/master/winequality-red.csv',
method: 'GET' // HTTP request method
// headers: {
// Authorization: 'Basic XXX' // optional headers field e.g. for basic access control
// }
};
const service = serviceBuilder
.setServiceEndpoint(provider) // the access controller to be in control of this asset
.setTimeout(0) // Timeout in seconds (0 means unlimited access after purchase)
.addFile(urlFile)
.addTrustedAlgorithmPublisher(connection.wallet.address)
//.addTrustedAlgorithms([{ did: 'did:op:c1e39404719ee92613b3bf9c276bbdcd63473c1189b34cef9f3de22cdb8eaf53' }])
.allowAlgorithmNetworkAccess(false)
.setPricing(connection.pricingConfig.fixedRateEUROe(0))
.setDatatokenNameAndSymbol(`Red Wine`, `RED`)
.build();
assetBuilder.addService(service);
const asset = assetBuilder.build();
console.log(`Asset metadata: \n ${JSON.stringify(asset, null, 2)}`);
if (!dryRun) {
console.log(`Publishing asset...`);
const result = await connection.nautilus.publish(asset);
console.log(`Asset published, ` +
`transaction: ${connection.networkConfig.explorerUri}/tx/${result.setMetadataTxReceipt.transactionHash}\n`);
}
else {
console.log('\nDry run completed. Asset not published.\n');
}
};
//# sourceMappingURL=index.js.map
;