feat: extend methods

This commit is contained in:
Richard Ramos 2019-10-03 16:02:20 -04:00
parent 4dcc58ca3e
commit 470f0586d9
2 changed files with 14 additions and 1 deletions

View File

@ -29,7 +29,7 @@ class App extends React.Component {
window.web3 = web3; window.web3 = web3;
this.setState({ this.setState({
title: Product.trackProperty("products", 0).map('title'), title: Product.methods.products(0).track().map('title'),
averageRating: rating$.pipe($average()), averageRating: rating$.pipe($average()),
minRating: rating$.pipe($min()), minRating: rating$.pipe($min()),
maxRating: rating$.pipe($max()), maxRating: rating$.pipe($max()),

View File

@ -74,6 +74,19 @@ export default class Subspace {
return this.trackProperty(SubspaceContract, propName, methodArgs, callArgs); return this.trackProperty(SubspaceContract, propName, methodArgs, callArgs);
} }
Object.keys(SubspaceContract.methods).forEach(methodName => {
const oldFunc = SubspaceContract.methods[methodName];
const _this = this;
const newFunc = function(){
const txObject = oldFunc.apply(null, arguments);
txObject.track = (callArgs) => _this.trackProperty(SubspaceContract, methodName, txObject.arguments, callArgs);
return txObject;
}
SubspaceContract.methods[methodName] = newFunc;
});
SubspaceContract.trackBalance = (erc20Address) => { SubspaceContract.trackBalance = (erc20Address) => {
return this.trackBalance(SubspaceContract.options.address, erc20Address); return this.trackBalance(SubspaceContract.options.address, erc20Address);
} }