mirror of
https://github.com/embarklabs/embark.git
synced 2025-01-10 13:55:45 +00:00
7e550f0e6f
Refactor typings as necessary. In order for `bignumber.js` in the root `node_modules` to not conflict with `@types/bignumber.js`, specify `"bignumber.js": "5.0.0"` in `devDependencies` and `"embark-ui/bignumber.js"` in `nohoist` of the root `package.json`. In `packages/plugins/rpc-manager` switch from callback to promise usage with respect to `web3.eth.accounts.signTransaction` because of a [bug][bug] discovered in web3 v1.2.4. In `packages/plugins/solidity-tests` specialize the tsc compiler options with `"skipLibCheck": true` because of a problematic web3-related typing in the `.d.ts` files of the remix-tests package. Bump ganache-cli from 6.4.3 to 6.7.0 (latest) because 6.4.3 doesn't support `eth_chainId` but web3 1.2.4 makes use of the `eth_chainId` RPC method (EIP 695). BREAKING CHANGE: bump embark's minimum supported version of parity from `>=2.0.0` to `>=2.2.1`. This is necessary since web3 1.2.4 makes use of the `eth_chainId` RPC method (EIP 695) and that parity version is the earliest one to implement it. [bug]: https://github.com/ethereum/web3.js/issues/3283
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.4