* development: (38 commits) Add fallback image support to relayer grid tile Clear relayer grid state when fetching Configure the compiler to generate artifacts with deployedBytecode Implement loading and error state for relayer grid Fallback image for relayer grid tile Change relayer grid tile to link on header Display top tokens from backend Remove overflowZ property from portal Suggestions and fix bad merge Fix typo Only show untracked tokens Make wallet scrollable Add token flow Update The Ocean logo Fix artifacts paths Create an artifacts folder Introduce a var Add removeHexPrefix util method CHeck if ABI exists Improve the readability of the check for should compile ... # Conflicts: # .gitignore # packages/contracts/test/multi_sig_with_time_lock.ts # packages/contracts/test/multi_sig_with_time_lock_except_remove_auth_addr.ts # packages/contracts/util/artifacts.ts
46 lines
1.9 KiB
TypeScript
46 lines
1.9 KiB
TypeScript
import { DoneCallback } from '@0xproject/types';
|
|
import * as chai from 'chai';
|
|
import 'mocha';
|
|
|
|
import { Compiler } from '../src/compiler';
|
|
import { fsWrapper } from '../src/utils/fs_wrapper';
|
|
import { CompilerOptions, ContractArtifact, ContractNetworkData } from '../src/utils/types';
|
|
|
|
import { exchange_binary } from './fixtures/exchange_bin';
|
|
import { constants } from './util/constants';
|
|
|
|
const expect = chai.expect;
|
|
|
|
describe('#Compiler', function() {
|
|
this.timeout(constants.timeoutMs);
|
|
const artifactsDir = `${__dirname}/fixtures/artifacts`;
|
|
const contractsDir = `${__dirname}/fixtures/contracts`;
|
|
const exchangeArtifactPath = `${artifactsDir}/Exchange.json`;
|
|
const compilerOpts: CompilerOptions = {
|
|
artifactsDir,
|
|
contractsDir,
|
|
contracts: constants.contracts,
|
|
};
|
|
const compiler = new Compiler(compilerOpts);
|
|
beforeEach((done: DoneCallback) => {
|
|
(async () => {
|
|
if (fsWrapper.doesPathExistSync(exchangeArtifactPath)) {
|
|
await fsWrapper.removeFileAsync(exchangeArtifactPath);
|
|
}
|
|
await compiler.compileAsync();
|
|
done();
|
|
})().catch(done);
|
|
});
|
|
it('should create an Exchange artifact with the correct unlinked binary', async () => {
|
|
const opts = {
|
|
encoding: 'utf8',
|
|
};
|
|
const exchangeArtifactString = await fsWrapper.readFileAsync(exchangeArtifactPath, opts);
|
|
const exchangeArtifact: ContractArtifact = JSON.parse(exchangeArtifactString);
|
|
// The last 43 bytes of the binaries are metadata which may not be equivalent
|
|
const unlinkedBinaryWithoutMetadata = exchangeArtifact.compilerOutput.evm.bytecode.object.slice(0, -86);
|
|
const exchangeBinaryWithoutMetadata = exchange_binary.slice(0, -86);
|
|
expect(unlinkedBinaryWithoutMetadata).to.equal(exchangeBinaryWithoutMetadata);
|
|
});
|
|
});
|