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  });