github.com/kaleido-io/firefly@v0.0.0-20210622132723-8b4b6aacb971/solidity_firefly/test/Firefly.js (about) 1 'use strict'; 2 3 const FireflyContract = artifacts.require('./Firefly.sol'); 4 const Payment = artifacts.require('./Payment.sol'); 5 const {randomBytes} = require('crypto') 6 7 const initialSupply = 10000; 8 9 function randB32Hex() { 10 return `0x${randomBytes(32).toString('hex')}` 11 } 12 13 contract('Firefly.sol', accounts => { 14 let payment; 15 let fireflyContract; 16 17 before(async () => { 18 payment = await Payment.new(initialSupply); 19 fireflyContract = await FireflyContract.new(payment.address); 20 await payment.approve(fireflyContract.address, initialSupply); 21 }); 22 23 describe('Firefly', () => { 24 25 describe('pinBatch', () => { 26 27 it('broadcast with a payloadRef', async () => { 28 const namespace = "ns1"; 29 const uuids = randB32Hex(); 30 const batchHash = randB32Hex(); 31 const payloadRef = randB32Hex(); 32 const contexts = [randB32Hex(),randB32Hex(),randB32Hex()]; 33 const result = await fireflyContract.pinBatch(namespace, uuids, batchHash, payloadRef, contexts); 34 const logArgs = result.logs[0].args; 35 assert.equal(logArgs.author, accounts[0]); 36 assert.equal(logArgs.namespace, namespace); 37 assert.equal(logArgs.uuids, uuids); 38 assert.equal(logArgs.batchHash, batchHash); 39 assert.equal(logArgs.payloadRef, payloadRef); 40 assert.equal(logArgs.contexts.length, 3); 41 assert.equal(logArgs.contexts[0], contexts[0]); 42 assert.equal(logArgs.contexts[1], contexts[1]); 43 assert.equal(logArgs.contexts[2], contexts[2]); 44 }); 45 46 it('private with an all-zero payloadRef', async () => { 47 const namespace = "ns1"; 48 const uuids = randB32Hex(); 49 const batchHash = randB32Hex(); 50 const payloadRef = "0x0000000000000000000000000000000000000000000000000000000000000000"; 51 const contexts = [randB32Hex(),randB32Hex(),randB32Hex()]; 52 const result = await fireflyContract.pinBatch(namespace, uuids, batchHash, payloadRef, contexts); 53 const logArgs = result.logs[0].args; 54 assert.equal(logArgs.author, accounts[0]); 55 assert.equal(logArgs.namespace, namespace); 56 assert.equal(logArgs.uuids, uuids); 57 assert.equal(logArgs.batchHash, batchHash); 58 assert.equal(logArgs.payloadRef, payloadRef); 59 assert.equal(logArgs.contexts.length, 3); 60 assert.equal(logArgs.contexts[0], contexts[0]); 61 assert.equal(logArgs.contexts[1], contexts[1]); 62 assert.equal(logArgs.contexts[2], contexts[2]); 63 }); 64 65 }); 66 67 68 }); 69 70 });