Use trace API for decentralized transaction list (#2784)
* Using traces when available to get accounts transactions (#2148) * Fixed traceMode detection and transactions rendering (#2148) * [WIP] Use Redux Thunk in main UI => Async Actions (#2148) * Using Redux for Transaction / Block / Methods... (#2148) * Use BigNumber comparedTo function to sort txs (#2148)
This commit is contained in:
committed by
Jaco Greeff
parent
479657b23b
commit
76cded7fa4
@@ -141,3 +141,24 @@ export function inOptions (options) {
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
export function inTraceFilter (filterObject) {
|
||||
if (filterObject) {
|
||||
Object.keys(filterObject).forEach((key) => {
|
||||
switch (key) {
|
||||
case 'fromAddress':
|
||||
case 'toAddress':
|
||||
filterObject[key] = [].concat(filterObject[key])
|
||||
.map(address => inAddress(address));
|
||||
break;
|
||||
|
||||
case 'toBlock':
|
||||
case 'fromBlock':
|
||||
filterObject[key] = inBlockNumber(filterObject[key]);
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return filterObject;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import { inBlockNumber, inHex, inNumber16 } from '../../format/input';
|
||||
import { inBlockNumber, inHex, inNumber16, inTraceFilter } from '../../format/input';
|
||||
import { outTrace } from '../../format/output';
|
||||
|
||||
export default class Trace {
|
||||
@@ -24,7 +24,7 @@ export default class Trace {
|
||||
|
||||
filter (filterObj) {
|
||||
return this._transport
|
||||
.execute('trace_filter', filterObj)
|
||||
.execute('trace_filter', inTraceFilter(filterObj))
|
||||
.then(traces => traces.map(trace => outTrace(trace)));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user