ethers.js/packages/tests/src.ts/skip-test-solc.ts

28 lines
1006 B
TypeScript

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