github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/js/src/test/solts.test.ts (about) 1 import * as assert from 'assert'; 2 import { readEvents } from '../events'; 3 import { Addition } from '../solts/sol/Addition.abi'; 4 import { Eventer } from '../solts/sol/Eventer.abi'; 5 import { NegationLib } from '../solts/sol/NegationLib.abi'; 6 import { client } from './test'; 7 8 describe('solts', () => { 9 it('can deploy and call from codegen', async () => { 10 const libraries = { NegationLib: await NegationLib.deploy({ client }) }; 11 const adder = await Addition.deployContract({ client, libraries: libraries, withContractMeta: true }); 12 const { sum } = await adder.functions.add(2342, 23432); 13 assert.strictEqual(sum, 25774); 14 }); 15 16 it('can receive events', async () => { 17 const eventer = await Eventer.deployContract({ client, withContractMeta: true }); 18 await eventer.functions.announce(); 19 await eventer.functions.announce(); 20 await eventer.functions.announce(); 21 const events = await readEvents(eventer.listeners.Init); 22 assert.strictEqual(events.length, 3); 23 const event = events[0]; 24 assert.strictEqual(event.controller, 'C9F239591C593CB8EE192B0009C6A0F2C9F8D768'); 25 assert.strictEqual(event.metadata, 'bacon,beans,eggs,tomato'); 26 }); 27 28 it('can listen to multiple events', async () => { 29 const eventer = await Eventer.deployContract({ client, withContractMeta: true }); 30 await eventer.functions.announce(); 31 await eventer.functions.announce(); 32 const listener = eventer.listenerFor(['MonoRampage', 'Init']); 33 const events = await readEvents(listener); 34 assert.strictEqual(events.length, 4); 35 // Look ma, type narrowing! 36 events.map((event) => { 37 if (event.name === 'Init') { 38 const eventId = Buffer.from('6576656E74310000000000000000000000000000000000000000000000000000', 'hex'); 39 assert.deepStrictEqual(event.payload.eventId, eventId); 40 } else if (event.name === 'MonoRampage') { 41 assert.strictEqual(event.payload.timestamp, 123); 42 } 43 }); 44 }); 45 });