feat: updated docs and API

This commit is contained in:
Richard Ramos 2019-10-17 09:50:32 -04:00
parent 140b208d12
commit 91fe35e132
2 changed files with 78 additions and 16 deletions

View File

@ -42,14 +42,17 @@
</div>
<div class="code-content">
<div class="language-js line-numbers-mode"><pre class="language-js"><code>Contract<span class="token punctuation">.</span><span class="token function">trackBalance</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">subscribe</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">balance</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"ETH balance is "</span><span class="token punctuation">,</span> balance<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<div class="language-js line-numbers-mode"><pre class="language-js"><code><span class="token keyword">const</span> address <span class="token operator">=</span> <span class="token string">"0x0001020304050607080900010203040506070809"</span><span class="token punctuation">;</span>
Contract<span class="token punctuation">.</span><span class="token function">trackBalance</span><span class="token punctuation">(</span><span class="token string">"0x744d70fdbe2ba4cf95131626614a1763df805b9e"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">subscribe</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">balance</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"SNT balance is "</span><span class="token punctuation">,</span> balance<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br></div></div>
subspace<span class="token punctuation">.</span><span class="token function">trackBalance</span><span class="token punctuation">(</span>address<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">subscribe</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">balance</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"ETH balance is "</span><span class="token punctuation">,</span> balance<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
subspace<span class="token punctuation">.</span><span class="token function">trackBalance</span><span class="token punctuation">(</span>address, <span class="token string">"0x744d70fdbe2ba4cf95131626614a1763df805b9e"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">subscribe</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">balance</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"SNT balance is "</span><span class="token punctuation">,</span> balance<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br></div></div>
</div>
</div>
@ -94,8 +97,7 @@
</template>
<script>
export default {
}
export default {};
</script>
<style lang="css" scoped>
@ -103,7 +105,8 @@ export default {
fill: url(#linear-gradient-404);
}
.cls-2, .cls-6 {
.cls-2,
.cls-6 {
opacity: 0.65;
}
@ -171,7 +174,8 @@ export default {
fill: url(#linear-gradient-404-9);
}
.cls-18, .cls-19 {
.cls-18,
.cls-19 {
fill: #fff;
}
@ -187,11 +191,16 @@ export default {
fill: #2d2d2d;
}
.cls-22, .cls-23, .cls-27, .cls-28, .cls-29 {
.cls-22,
.cls-23,
.cls-27,
.cls-28,
.cls-29 {
fill: none;
}
.cls-22, .cls-23 {
.cls-22,
.cls-23 {
stroke: #ecf4f8;
stroke-linecap: round;
stroke-width: 0.96px;
@ -201,7 +210,10 @@ export default {
stroke-linejoin: round;
}
.cls-23, .cls-27, .cls-28, .cls-29 {
.cls-23,
.cls-27,
.cls-28,
.cls-29 {
stroke-miterlimit: 10;
}
@ -221,7 +233,9 @@ export default {
stroke: #fbed21;
}
.cls-27, .cls-28, .cls-29 {
.cls-27,
.cls-28,
.cls-29 {
stroke-width: 8px;
}

50
api.md
View File

@ -20,7 +20,55 @@ Initializes **Subspace**
### `close()`
Dispose and perform the cleanup necessary to remove the internal subscriptions and interval timers created by **Subspace** during its normal execution.
## Data tracking methods
### `contract(instance|{abi,address})`
Adds a `track` method to the web3 contract objects. You can obtain this functionality by passing a `web3.eth.Contract` instance, or the `abi` and `address` of your contract
**Returns**
`web3.eth.Contract` object enhanced with `.track()` functions for methods and events.
## Contract methods
### `myContract.events.MyEvent.track([options])`
Track a contract event.
**Parameters**
1. `options` - `Object` (optional): web3 filter options object to limit the number of events based on a block number range, or indexed filters
- `filter` - `Object` (optional): Lets you filter events by indexed parameters, e.g. `{filter: {myNumber: [12,13]}}` means all events where `"myNumber"` is `12` or `13`.
- `fromBlock` - `Number` (optional): The block number from which to get events on.
- `toBlock` - `Number` (optional): The block number to get events up to (Defaults to `"latest"`)
- `topics` - `Array` (optional): This allows you to manually set the topics for the event filter. If given the filter property and event signature, (`topic[0]`) will not be set automatically.
**Returns**
`RxJS Observable` which will stream the event `returnValues`.
### `myContract.methods.myMethod([param1[, ...]]).track([callOptions])`
Track a constant function / contract state variable on each block mined, or depending on the `callInterval` option used during **Subspace** initialization.
**Parameters**
1. `callOptions` - `Object` (optional): The options used for calling.
- `from` - `String` (optional): The address the call “transaction” should be made from.
- `gasPrice` - `String` (optional): The gas price in wei to use for this call “transaction”.
- `gas` - `Number` (optional): The maximum gas provided for this call “transaction” (gas limit).
**Returns**
`RxJS Observable` which will stream the function / variable values. Data type will depend on the contract function invoked.
### `myContract.trackBalance(address [, tokenAddress])`
Track a contract's balance changes for an address on each block mined, or depending on the `callInterval` option used during **Subspace** initialization.
**Parameters**
1. `address` - `String`: The address to get the balance of.
2. `tokenAddress` - `String` (optional): If you want to track the balance for an ERC20 contract, here you can specify the token address. Otherwise, Only ETH balances will be returned.
**Returns**
`RxJS Observable` which will stream a string containing the address balance.
## Low level API for data tracking
These are used in case you don't want to decorate your web3 contract objects, or if you want to track the balance for an specific address.
### `trackEvent(contractObject, eventName [, options])`
Track a contract event.