How to use the @0x/sol-trace.RevertTraceSubprovider function in @0x/sol-trace

To help you get started, we’ve selected a few @0x/sol-trace examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github smartcontractkit / chainlink / evm-test-helpers / src / setup.ts View on Github external
export function provider(): ethers.providers.JsonRpcProvider {
  const providerEngine = new Web3ProviderEngine()
  providerEngine.addProvider(new FakeGasEstimateSubprovider(5 * 10 ** 6)) // Ganache does a poor job of estimating gas, so just crank it up for testing.

  if (process.env.DEBUG) {
    debug('Debugging enabled, using sol-trace module...')
    const defaultFromAddress = ''
    const artifactAdapter = new SolCompilerArtifactAdapter(
      path.resolve('dist/artifacts'),
      path.resolve('contracts'),
    )
    const revertTraceSubprovider = new RevertTraceSubprovider(
      artifactAdapter,
      defaultFromAddress,
      true,
    )
    providerEngine.addProvider(revertTraceSubprovider)
  }

  providerEngine.addProvider(new GanacheSubprovider({ gasLimit: 8_000_000 }))
  providerEngine.start()

  return new ethers.providers.Web3Provider(providerEngine)
}
github sablierhq / sablier / packages / protocol / truffle-config.js View on Github external
switch (process.env.MODE) {
  case "profile":
    global.profilerSubprovider = new ProfilerSubprovider(artifactAdapter, defaultFromAddress, isVerbose);
    global.profilerSubprovider.stop();
    provider.addProvider(global.profilerSubprovider);
    break;
  case "coverage":
    global.coverageSubprovider = new CoverageSubprovider(
      artifactAdapter,
      defaultFromAddress,
      coverageSubproviderConfig,
    );
    provider.addProvider(global.coverageSubprovider);
    break;
  case "trace":
    provider.addProvider(new RevertTraceSubprovider(artifactAdapter, defaultFromAddress, isVerbose));
    break;
  default:
    // Due to some strange error, contracts do not get deployed when using the ganache subprovider
    // required by the 0x tools
    kovanProvider = createProvider("kovan");
    rinkebyProvider = createProvider("rinkeby");
    ropstenProvider = createProvider("ropsten");
    break;
}

if (process.env.MODE) {
  provider.addProvider(new GanacheSubprovider());
  provider.start((err) => {
    if (err !== undefined) {
      console.log(err);
      process.exit(1);
github smartcontractkit / chainlink / integration-scripts / src / common.ts View on Github external
console.log(chalk.green('Outputting artifacts to:', artifacts))
  await compiler.compileAsync()

  const defaultFromAddress = await ethers.Wallet.fromMnemonic(
    mnemonic,
    path,
  ).getAddress()
  console.log(
    chalk.green(
      'Default from address derived from mnemonic:',
      defaultFromAddress,
    ),
  )

  const artifactAdapter = new SolCompilerArtifactAdapter(artifacts, contracts)
  const revertTraceSubprovider = new RevertTraceSubprovider(
    artifactAdapter,
    defaultFromAddress,
    true,
  )

  const providerEngine = new Web3ProviderEngine()
  providerEngine.addProvider(new FakeGasEstimateSubprovider(4 * 10 ** 6)) // Ganache does a poor job of estimating gas, so just crank it up for testing.
  providerEngine.addProvider(revertTraceSubprovider)
  providerEngine.addProvider(
    // Start an in-process ganache instance
    new GanacheSubprovider({
      mnemonic,
      hdPath: path,
      vmErrorsOnRPCResponse: true,
    }),
  )
github 0xProject / 0x-monorepo / contracts / test-utils / src / revert_trace.ts View on Github external
_getRevertTraceSubprovider(): RevertTraceSubprovider {
        const defaultFromAddress = devConstants.TESTRPC_FIRST_ADDRESS;
        const solCompilerArtifactAdapter = new SolCompilerArtifactAdapter();
        const isVerbose = true;
        const subprovider = new RevertTraceSubprovider(solCompilerArtifactAdapter, defaultFromAddress, isVerbose);
        return subprovider;
    },
};
github 0xProject / dev-tools-truffle-example / truffle-config.js View on Github external
);
  global.profilerSubprovider.stop();
  provider.addProvider(global.profilerSubprovider);
  provider.addProvider(new WebsocketSubprovider({ rpcUrl: "http://localhost:8545" }));
} else {
  if (mode === "coverage") {
    global.coverageSubprovider = new CoverageSubprovider(
      artifactAdapter,
      defaultFromAddress,
      {
        isVerbose,
      }
    );
    provider.addProvider(global.coverageSubprovider);
  } else if (mode === "trace") {
    const revertTraceSubprovider = new RevertTraceSubprovider(
      artifactAdapter,
      defaultFromAddress,
      isVerbose
    );
    provider.addProvider(revertTraceSubprovider);
  }
  
  provider.addProvider(new WebsocketSubprovider({ rpcUrl: "http://localhost:8545" }))
}
provider.start(err => {
  if (err !== undefined) {
    console.log(err);
    process.exit(1);
  }
});
/**
github AztecProtocol / AZTEC / packages / protocol / truffle-config.js View on Github external
const testModes = ['profile', 'coverage', 'trace'];
if (testModes.includes(process.env.MODE)) {
    defaultFromAddress = getFirstAddress();
}

switch (process.env.MODE) {
    case 'profile':
        global.profilerSubprovider = new ProfilerSubprovider(artifactAdapter, defaultFromAddress, isVerbose);
        engine.addProvider(global.profilerSubprovider);
        break;
    case 'coverage':
        global.coverageSubprovider = new CoverageSubprovider(artifactAdapter, defaultFromAddress, coverageSubproviderConfig);
        engine.addProvider(global.coverageSubprovider);
        break;
    case 'trace':
        engine.addProvider(new RevertTraceSubprovider(artifactAdapter, defaultFromAddress, isVerbose));
        break;
    default:
        rinkebyProvider = createProvider('rinkeby');
        mainnetProvider = createProvider('mainnet');
        ropstenProvider = createProvider('ropsten');
        break;
}

let ganacheSubprovider = {};
ganacheSubprovider = new GanacheSubprovider({ mnemonic: process.env.TEST_MNEMONIC });
engine.addProvider(ganacheSubprovider);

engine.start((err) => {
    if (err !== undefined) {
        console.log(err);
        process.exit(1);
github ConsenSys / web3studio-bootleg / packages / bootleg-common / truffle-config.js View on Github external
const artifactAdapter = new TruffleArtifactAdapter(
    `${projectRoot}`,
    solcVersion
  );
  const coverageSubProvider = new CoverageSubprovider(
    artifactAdapter,
    defaultFromAddress,
    isVerbose
  );

  global.coverageSubProvider = coverageSubProvider;

  testProvider.addProvider(coverageSubProvider);

  testProvider.addProvider(
    new RevertTraceSubprovider(artifactAdapter, defaultFromAddress, isVerbose)
  );

  testProvider.send = testProvider.sendAsync.bind(testProvider);

  return testProvider;
};

@0x/sol-trace

Prints stack trace on Solidity revert

Apache-2.0
Latest version published 2 years ago

Package Health Score

56 / 100
Full package analysis

Similar packages