Skip to content
This repository has been archived by the owner on Apr 22, 2024. It is now read-only.

add eth_listTransactions #123

Merged
merged 1 commit into from
Apr 20, 2017
Merged

add eth_listTransactions #123

merged 1 commit into from
Apr 20, 2017

Conversation

mvayngrib
Copy link
Contributor

non-standard, but useful (to me :)

@axic
Copy link
Contributor

axic commented Mar 9, 2017

See a relevant discussion here: trufflesuite/ganache-cli-archive#45

@danfinlay
Copy link
Contributor

An unfortunately stalled idea, for both technical and some philosophical reasons. More discussions:

#49
ethereum/go-ethereum#1897

I am increasingly in favor of cultivating a more experimental ecosystem. There is a serious technical reason that retrieving transactions is expensive, but this shouldn't need to dictate the available JS apis, and we should aim to make each interface as hospitable to its users as possible.

I'll just plug this here, I have hope that the upcoming EIP Signaling DAO could help clients coordinate around enhancing features like this:

MetaMask/IPFS-Ethereum-Hackathon#14

@mvayngrib
Copy link
Contributor Author

@axic my bad, should have checked

@kumavis
Copy link
Member

kumavis commented Mar 9, 2017

@mvayngrib you may be interested in: https://github.com/kumavis/eth-tx-finder

@danfinlay
Copy link
Contributor

Oh, this is just for the etherscan subprovider? I think this is actually an acceptable addition. Etherscan provides it, so why not let users of that subprovider use additional methods? It's not part of a web3 browser, but if you're using the etherscan subprovider, it's because you're pointing directly at etherscan for your data.

Copy link
Contributor

@danfinlay danfinlay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought more on this, and discussed it with @kumavis, and we think it's OK to add this to the etherscan subprovider, since it's a service they add.

This won't be added to MetaMask's provider, it's just for users who are composing their own etherscan-backed provider engines.

@danfinlay danfinlay merged commit 7bd6430 into MetaMask:master Apr 20, 2017
@axic
Copy link
Contributor

axic commented Apr 20, 2017

Oh, this is just for the etherscan subprovider? I think this is actually an acceptable addition.

The explorer was nothing different in fairness. It mapped to etherscan as-is and was open to be filled by other providers.

I think this is more dangerous than the explorer was, because this pollutes the eth_ namesapce.

@danfinlay
Copy link
Contributor

Sorry for merging before opening for more discussion. I guess we could consider reverting this still. I'll share more of my reasoning now.

Why is this dangerous? I think there is actually very little risk. The worst thing I could imagine happening is that some consumer tools that rely on this method emerge, and people prefer and rely on those tools, and then suddenly all the web3 browser vendors and client developers have extra community pressure to figure out how to add eth_listTransactions to the standard API, which I think would not actually be the worst thing, considering it's a very useful method that is frequently requested.

If that did happen, what it would represent (to me) is the beginning of a division between "bare minimum node-syncing API" provider methods, and "useful for interfaces" provider methods.

The web3/RPC APIs have been bare-bones for quite a while, and I think there's going to be an increasingly strong motion for more API-like query methods, like IPLD-selector, SparQL, and state subscriptions, that allow richer, more dynamic interfaces.

Maybe this isn't the right place to make this stand, but at some point clients are going to have to grow beyond individual transaction requests, so that they can load more useful data at once, and I think listing transactions is a humble enough example of that to make a point that some providers might add richer UX methods as a sort of proposal to the wider community.

I still think we should strive to make these additions widely publicized, so that other client developers can more easily support compatible methods themselves, which is a good job for the universal specs proposal. But until then, I'm personally leaning towards being more tolerant of light support of non-standard methods, especially in the case of non-injected providers, like this etherscan provider is.

When developers are using the etherscan provider, it's because they're not using a web3 browser or environment, and so they are not really creating compatibility issues between web3 browsers, instead they're just getting a richer experience, which is why I don't think this creates the same kind of dangerous compatibility schism that is created when Parity and Mist implement different versions of trace or personal_sign, for example.

@danfinlay
Copy link
Contributor

Oh all that said, I'd also be happy just moving this to something like an explorer_ namespace.

@mvayngrib how would you feel changing this from eth_listTransactions to explorer_listTransactions?

@mvayngrib
Copy link
Contributor Author

@FlySwatter i don't have a problem changing it if that's the consensus

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants