// Javascript Code to receive MAM payload from the tangle (https://github.com/iotaledger/mam.client.js) // var Mam = require('../lib/mam.node.js') // var IOTA = require('iota.lib.js') // var iota = new IOTA({ provider: `https://field.carriota.com:443` }) //// Init State // let root = "ROOTHERE" // Enter the root output from the C# example // let sideKey = "SIDEKEYHERE" // Enter the channel Key from the C# example // let mode = 'restricted' //// Initialise MAM State // var mamState = Mam.init(iota) // var resp = Mam.fetch(root, mode, sideKey, console.log) // console.log(resp) /// <summary> /// Initializes a new instance of the <see cref="MamPublishExample"/> class. /// </summary> public MamPublishExample() { // Create all needed objects to create a channel and subscription factory. // This would be done via DI (e.g. Ninject) in production environment var repository = new RestIotaRepositoryFactory().CreateAsync().Result; this.ChannelFactory = new MamChannelFactory(CurlMamFactory.Default, CurlMerkleTreeFactory.Default, repository); }
// Javascript Code to send MAM payload to the tangle (https://github.com/iotaledger/mam.client.js) // var Mam = require('../lib/mam.node.js') // var IOTA = require('iota.lib.js') // var iota = new IOTA({ provider: `https://field.carriota.com:443` }) // let seed = "OWKIIGMOPZBNDBHEJCDXWIMKLCUPBGGUMQZ9YYWLZCUNIJZJLWSX9NYNKQEFPLKWWKJFIRRIODWKX9LYF" // let security = 2; // Medium // let sideKey = "FA9KZAARRNBVZTZUTBGSTXKPHHAZOZRX9FNSIERZKQQBPDGKMAYOXUAPTMHHCJ9CTJPLIQKZ9GKYQTEHI" // let mode = 'restricted' //// Initialise MAM State // var mamState = Mam.init(iota, seed, security) //// Set channel mode // mamState = Mam.changeMode(mamState, mode, sideKey) // var message = Mam.create(mamState, "CCWCXCGDEAXCGDEAADMDEAUCXCFDGDHDEAADTCGDGDPCVCTCEAKDXCHDWCEAWBKBWBEAUCFDCDADEAMBBCWCPCFDDDFA") // Tryte encoded message data to send // console.log('Root: ', message.root) // console.log('Address: ', message.address) // Mam.attach(message.payload, message.address) /// <summary> /// Initializes a new instance of the <see cref="MamFetchExample"/> class. /// </summary> public MamFetchExample() { // Create all needed objects to create a channel and subscription factory. // This would be done via DI (e.g. Ninject) in production environment var repository = new RestIotaRepositoryFactory().CreateAsync().Result; this.SubscriptionFactory = new MamChannelSubscriptionFactory(repository, CurlMamParser.Default, CurlMask.Default); }
/// <summary> /// The main. /// </summary> /// <param name="args"> /// The args. /// </param> private static void Main(string[] args) { var factory = new RestIotaRepositoryFactory(); var repo = factory.CreateAsync(true).Result; var repository = new RestIotaRepository(new RestClient("http://localhost:14265"), new PoWService(new CpuPearlDiver())); var acc = repository.GetAccountData(Seed.Random(), true, SecurityLevel.Medium, 0); var seed = Seed.Random(); var addressGenerator = new AddressGenerator(new Kerl(), new KeyGenerator(new Kerl(), new IssSigningHelper())); var addresses = addressGenerator.GetAddresses(seed, SecurityLevel.Medium, 0, 6); var addressesWithSpentInformation = repository.WereAddressesSpentFrom(addresses); var transactionStackCounter = 10; for (var i = 1; i <= transactionStackCounter; i++) { var stopwatch = new Stopwatch(); stopwatch.Start(); var transfers = new List <Transfer>(); for (var j = 1; j <= i; j++) { transfers.Add(new Transfer { Address = new Address("YTXCUUWTXIXVRQIDSECVFRTKAFOEZITGDPLWYVUVFURMNVDPIRXEIQN9JHNFNVKVJMQVMA9GDZJROTSFZHIVJOVAEC") { Balance = 0 }, Message = TryteString.FromAsciiString("Hello world! With " + i + " transactions."), Tag = new Tag("CSHARP"), Timestamp = Timestamp.UnixSecondsTimestamp }); } var bundle = new Bundle(); transfers.ForEach(bundle.AddTransfer); bundle.Finalize(); bundle.Sign(); var resultTransactions = repository.SendTrytes(bundle.Transactions, 27, 14); Console.WriteLine("Finished sending bundle with {0} transactions. Time elapsed: {1} seconds.", i, stopwatch.ElapsedMilliseconds / 1000); } var accountData = repository.GetAccountData(new Seed("SOMESEEDHERE"), true, SecurityLevel.Medium, 0); var latestInclusion = repository.GetLatestInclusion( new List <Hash> { new Hash("HG9KCXQZGQDVTFGRHOZDZ99RMKGVRIQXEKXWXTPWYRGXQQVFVMTLQLUPJSIDONDEURVKHMBPRYGP99999") }); var inputs = repository.GetInputs(new Seed("SOMESEEDHERE"), 99900000, SecurityLevel.Medium, 0); var newAddresses = repository.GetNewAddresses(Seed.Random(), 0, 5, SecurityLevel.Medium); var transactions = repository.FindTransactionsByAddresses( new List <Address> { new Address("HHZSJANZQULQICZFXJHHAFJTWEITWKQYJKU9TYFA9AFJLVIYOUCFQRYTLKRGCVY9KPOCCHK99TTKQGXA9") }); var tips = repository.GetTips(); var inclusionsStates = repository.GetInclusionStates( new List <Hash> { new Hash("HG9KCXQZGQDVTFGRHOZDZ99RMKGVRIQXEKXWXTPWYRGXQQVFVMTLQLUPJSIDONDEURVKHMBPRYGP99999") }, tips.Hashes.GetRange(0, 10)); var transactionTrytes = repository.GetTrytes(new List <Hash> { new Hash("HG9KCXQZGQDVTFGRHOZDZ99RMKGVRIQXEKXWXTPWYRGXQQVFVMTLQLUPJSIDONDEURVKHMBPRYGP99999") }); var transactionData = transactionTrytes.Select(t => Transaction.FromTrytes(t)).ToList(); var transactionsToApprove = repository.GetTransactionsToApprove(); var balances = repository.GetBalances( new List <Address> { new Address("GVZSJANZQULQICZFXJHHAFJTWEITWKQYJKU9TYFA9AFJLVIYOUCFQRYTLKRGCVY9KPOCCHK99TTKQGXA9"), new Address("HBBYKAKTILIPVUKFOTSLHGENPTXYBNKXZFQFR9VQFWNBMTQNRVOUKPVPRNBSZVVILMAFBKOTBLGLWLOHQ999999999") }); var nodeInfo = repository.GetNodeInfo(); var neighbours = repository.GetNeighbors(); Console.WriteLine("Done"); Console.ReadKey(); }