mirror of
https://github.com/embarklabs/embark.git
synced 2025-01-10 05:46:03 +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.
40 lines
978 B
Markdown
40 lines
978 B
Markdown
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 <a href="https://web3js.readthedocs.io/en/v1.2.6/" target="_blank">web3.js 1.2.6</a>
|