diff --git a/README.md b/README.md index f3dac9e..402c637 100644 --- a/README.md +++ b/README.md @@ -921,8 +921,8 @@ This module provides some utility functions for more convenient work with Ever o ````typescript import { toNano, fromNano, getRandomNonce, convertAmount, isValidEverAddress, stringToBytesArray } from "locklift"; -toNano(10); // 10000000000 -fromNano(10000000000); // 10``` +toNano(10); // 10000000000 nano evers +fromNano(10000000000); // 10 evers``` ```` ## Plugins diff --git a/sample-project-typescript/contracts/Sample.tsol b/sample-project-typescript/contracts/Sample.tsol index 3788dea..e0e548d 100644 --- a/sample-project-typescript/contracts/Sample.tsol +++ b/sample-project-typescript/contracts/Sample.tsol @@ -23,6 +23,10 @@ contract Sample { emit StateChange(_state); } + function fail() public { + require( 1 < 0, 101); // 100 is default error code, it is good to set non-default codes beforehand + } + function getDetails() external view diff --git a/sample-project-typescript/test/sample-test.ts b/sample-project-typescript/test/sample-test.ts index 3384ee4..f1c2a6a 100644 --- a/sample-project-typescript/test/sample-test.ts +++ b/sample-project-typescript/test/sample-test.ts @@ -1,6 +1,9 @@ import { expect } from "chai"; import { Contract, Signer } from "locklift"; import { FactorySource } from "../build/factorySource"; +import { lockliftChai } from "locklift"; +import chai from "chai"; +chai.use(lockliftChai); let sample: Contract; let signer: Signer; @@ -29,7 +32,7 @@ describe("Test Sample contract", async function () { constructorParams: { _state: INIT_STATE, }, - value: locklift.utils.toNano(2), + value: locklift.utils.toNano(2), // converts 2 evers to nanos }); sample = contract; @@ -45,5 +48,13 @@ describe("Test Sample contract", async function () { expect(Number(response._state)).to.be.equal(NEW_STATE, "Wrong state"); }); + + it("Test error tracing", async function () { + const { traceTree } = await locklift.tracing.trace( + await sample.methods.fail({}).sendExternal({ publicKey: signer.publicKey }), + {rise: false} + ); + expect(traceTree).to.have.error(101); + }); }); });