mirror of
https://github.com/embarklabs/embark.git
synced 2025-01-09 21:35:58 +00:00
030fb4acc6
Remove `bignumber.js` workaround (in the root, from PR #2152) because it's no longer needed (verified locally). Remove the `"skipLibCheck"` workaround (in `packages/plugins/solidity-tests`, from PR #2152) because it's no longer needed (verified locally). Refactor a typing in `packages/plugins/geth`. What's happening is that in web3 v1.2.4 `sendTransaction` has a return type of `PromiEvent<TransactionReceipt>` but in v1.2.6 it has a return type of `PromiEvent<TransactionReceipt | TransactionRevertInstructionError>`. Compare: * [v1.2.4/packages/web3-eth/types/index.d.ts#L291-L294](https://github.com/ethereum/web3.js/blob/v1.2.4/packages/web3-eth/types/index.d.ts#L291-L294) * [v1.2.6/packages/web3-eth/types/index.d.ts#L295-L298](https://github.com/ethereum/web3.js/blob/v1.2.6/packages/web3-eth/types/index.d.ts#L295-L298) The problem is that the `TransactionRevertInstructionError` type doesn't have a `transactionHash` property. Since at present the code in `packages/plugins/geth/src/devtxs.ts` only deals with the success case re: `sendTransaction`, import the `TransactionReceipt` type from `web3-eth` and cast the resolved return value's type using TypeScript's `as` operator.
978 B
978 B
title: Smart Contract Objects layout: docs
Interacting with contracts in Javascript
Embark will automatically take care of deployment for you and set all needed JS bindings. For example, the contract below:
// app/contracts/simple_storage.sol
contract SimpleStorage {
uint public storedData;
function SimpleStorage(uint initialValue) {
storedData = initialValue;
}
function set(uint x) {
storedData = x;
}
function get() constant returns (uint retVal) {
return storedData;
}
}
Will automatically be available in Javascript as:
// app/js/index.js
import SimpleStorage from 'Embark/contracts/SimpleStorage';
SimpleStorage.methods.set(100).send();
SimpleStorage.methods.get().call().then(function(value) { console.log(value) });
SimpleStorage.methods.storedData().call().then(function(value) { console.log(value) });
The syntax used is web3.js 1.2.6