2019-08-19 11:53:58 -04:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
import assert from "assert";
|
|
|
|
import { resolve } from "path";
|
|
|
|
import fs from "fs";
|
|
|
|
import { solc } from "@ethersproject/cli";
|
|
|
|
|
|
|
|
describe('Test solc', function () {
|
|
|
|
|
|
|
|
it('compiles contracts with imported library', function () {
|
|
|
|
this.timeout(1200000);
|
|
|
|
const filename = resolve(__dirname, '../contracts/test-solc/consumer.sol');
|
|
|
|
const source = fs.readFileSync(filename).toString();
|
2020-09-23 00:00:21 -04:00
|
|
|
try {
|
|
|
|
const code = solc.compile(source, { filename, optimize: true })
|
|
|
|
.filter(((contract: any) => contract.name === 'Consumer'))[0];
|
|
|
|
const { bytecode, interface: iface } = code;
|
|
|
|
assert(bytecode.length > 2, 'The bytecode should should have a length');
|
|
|
|
assert(bytecode.startsWith('0x'), 'The bytecode should start with 0x');
|
|
|
|
assert(iface.functions['f()'], 'The interface should have function f()');
|
|
|
|
} catch (error) {
|
|
|
|
console.log(error);
|
|
|
|
throw error;
|
|
|
|
}
|
2019-08-19 11:53:58 -04:00
|
|
|
});
|
|
|
|
|
|
|
|
});
|