Skip to content

Instantly share code, notes, and snippets.

@Hribek25
Last active September 24, 2019 10:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Hribek25/0efae237ddd276fc92e57d5813bba1c0 to your computer and use it in GitHub Desktop.
Save Hribek25/0efae237ddd276fc92e57d5813bba1c0 to your computer and use it in GitHub Desktop.
Sending IOTA transaction in a single call: API call Send_transfer()
// The snippet is a part of the IOTA Developer Essentials project. You can reach it at https://hribek25.github.io/IOTA101/
// Complete description and story behind the snippet is available at: https://hribek25.github.io/IOTA101/Allchapters_javascript.ipynb.html#00663E550ADF
// Requirement: A converter module of IOTA Javascript Library (!npm install @iota/converter)
// Requirement: A core module of IOTA Javascript Library (!npm install @iota/core)
// Requirement: A transaction-converter module of IOTA Javascript Library (!npm install @iota/transaction-converter)
var iotalib = require('@iota/core');
var Converter = require('@iota/converter')
var TransactionConverter = require('@iota/transaction-converter')
var NodeURL = "https://nodes.thetangle.org:443";
var iota = iotalib.composeAPI({
'provider': NodeURL
});
var MySeed = "HGW9HB9LJPYUGVHNGCPLFKKPNZAIIFHZBDHKSGMQKFMANUBASSMSV9TAJSSMPRZZU9SFZULXKJ9YLAIUA";
var TargetAddress1 = "CXDUYK9XGHC9DTSPDMKGGGXAIARSRVAFGHJOCDDHWADLVBBOEHLICHTMGKVDOGRU9TBESJNHAXYPVJ9R9";
var TargetAddress2 = "CYJV9DRIE9NCQJYLOYOJOGKQGOOELTWXVWUYGQSWCNODHJAHACADUAAHQ9ODUICCESOIVZABA9LTMM9RW";
var NowIs = new Date() //get a actual date & time - just to have some meaningfull info
// preparing transactions
var pt = {
'address': TargetAddress1, //81 trytes long address
'value': 0, //zero transaction - only data in the message field will be sent
'message': Converter.asciiToTrytes('Here comes a first message. Now is ' + NowIs), //data needs to be encoded in trytes
'tag': 'HRIBEK999IOTA999TUTORIAL' //Up to 27 trytes
}
var pt2 = {
'address': TargetAddress2, //81 trytes long address
'value': 0, //zero transaction - only data in the message field will be sent
'message': Converter.asciiToTrytes('Here comes a second message. Now is ' + NowIs), //data needs to be encoded in trytes
'tag': 'HRIBEK999IOTA999TUTORIAL' //Up to 27 trytes
}
var transfers = [pt,pt2]; // a list of transactions to be sent
var depth = 3;
var minWeightMagnitude = 14;
console.log("Preparing/Broadcasting... Wait please...");
var promise = iota.prepareTransfers(MySeed, transfers) //prepare a bundle in trytes
.then(trytes => {
return iota.sendTrytes(trytes, depth, minWeightMagnitude); //perform GTTA + POW + BROADCASTING
})
.then(bundle => {
console.log("Transactions sent!");
console.log("\nList of all transactions in the bundle:");
bundle.map(tx => console.log(tx))
})
.catch(err => {
console.log("Something went wrong: %s", err);
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment