Comments (6)
This was a result of two goals:
- The desire to not have 1.4 clients spend tokens accidentally. They already can't do that for the most part since cashtokens utxo signing method is changed.
- The desire to not have 1.4 clients see "unspendable" UTXOs they cannot understand, both in code and in meatspace
Removing visibility of token-attached sats to 1.4 clients satisfy both of these goals. If we forward the sats to them anyway, upon receipt there'll be some unspendable and unexplained sats which can cause UX problems.
from bch-rpc-explorer.
actually we are using @dagurval rostrum as electrumX protocol implementation.
having said that I think that the version of rostrum we are using (8.1.0) support the token_filter
optional parameter for the get_balance so it seems like just a matter of adapting the /address/
view.
will work on that
from bch-rpc-explorer.
Little heads up
So I set up py script that establishes a connection to your fulcrum instance @ chipnet.imaginary.cash:50001, negotiates protocol version to 1.5 and then issue a get_balance
for this address bchtest:pzn85ff863dnceq0gt5sd88e00afchyur5jasutc0s
if ”include_tokens”
optional param is passed to get_balance
the result we have is:
{
"id": 0,
"jsonrpc": "2.0",
"result": {
"confirmed": 16000,
"unconfirmed": 0
}
}
if ”exclude_tokens”
optional param is passed to get_balance
the result we have is:
{
"id": 0,
"jsonrpc": "2.0",
"result": {
"confirmed": 0,
"unconfirmed": 0
}
}
from bch-rpc-explorer.
The docs call it token_filter
at Fulcrum too but yes that does look right to me.
from bch-rpc-explorer.
The docs call it
token_filter
at Fulcrum too but yes that does look right to me.
rostrum calls the filter parameter the same, namelytoken_filter
, exclude_tokens
is actually one of the 3 possible values for that param, see:
https://bitcoinunlimited.gitlab.io/rostrum/protocol/methods/#blockchainaddressget_balance
I'm going to open a PR to fix the problem you described in the OP, namely negotiate version 1.5 for electrum protocol (only if using Fulcrum, 1.4 is enough for Rostrum).
Having said that I think that Fulcrum 1.9.1 behaviour is not coherent with the timing of network upgrades activation, I mean any clients speaking protocol 1.4 should not be aware of token existence, so what's the point of excluding UTXOs from the computation of address amount in case they are "attached" to a cashtoken?
maybe something to forward to @cculianu
from bch-rpc-explorer.
This was a result of two goals:
- The desire to not have 1.4 clients spend tokens accidentally. They already can't do that for the most part since cashtokens utxo signing method is changed.
- The desire to not have 1.4 clients see "unspendable" UTXOs they cannot understand, both in code and in meatspace
Removing visibility of token-attached sats to 1.4 clients satisfy both of these goals. If we forward the sats to them anyway, upon receipt there'll be some unspendable and unexplained sats which can cause UX problems.
mmmm I have to say that I found the above arguments weird.
Just for the sake of clarity, let me explain my point of view on this matter.
Suppose for a moment we erroneously send UTXOs that represents cashtokens to a client that speaks 1.4 protocol only.
Your point is: since it is probably impossible (not certain) that they won't be able to spend those UTXOs due to signature scheme changes why bother showing the UTXOs among the total amount.
My point is:
- once someone send cashtoken to an non-token aware client those tokens are, for lack of better words, "gone"/"burnt"
- as you said probably the client won't be able to send it back to you
- and if it's able to do sign properly he will probably use it as inputs to normal BCH tx.
- if those bch utxos become unspendable I would rather make the result ("error") of the unwanted transfer apparent to the receiver rather than not, for 2 main reasons:
- this would probably push the client operator to upgrade to 1.5 protocol a
- this would make aware the client operator that he is now owning something even if it is not something he wanted to in the first place, it's always better to be aware of those kind of things rather that not.
just my 2 cents.
from bch-rpc-explorer.
Related Issues (20)
- Add time of blocks in homepage HOT 2
- "Is mine" and "Is watch-only" HOT 2
- Parse AnyHedge transactions HOT 1
- DNSSEC fails when trying to connect to seed.bch.loping.net HOT 1
- > "dac8d0126697f1d64220315fd747e9c21a9b0af9822463df0c8f9edf80c57de4"
- "5794effa9731c70e36a84eab9a5de7566e22e7efe30eb4b1b91c0717291dce82"
- > "dac8d0126697f1d64220315fd747e9c21a9b0af9822463df0c8f9edf80c57de4"
- dac8d0126697f1d64220315fd747e9c21a9b0af9822463df0c8f9edf80c57de4
- > "5794effa9731c70e36a84eab9a5de7566e22e7efe30eb4b1b91c0717291dce82"
- Support for SLP tokens? HOT 1
- Baby636
- Support for CashTokens [Feature Request] [BCH May 2023] HOT 5
- Feature: Missing spent & received
- Update from upstream?
- Feature Request: Show UTXO state stats HOT 1
- Support for cashtoken new cashaddress format lookup HOT 3
- Op_return messages don't display correctly HOT 1
- clickable bip21 link HOT 1
- Take off watch only
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bch-rpc-explorer.