I'm trying to create a QR code generator that would generate transaction data for some of the common blockchains and wallets.
There is some confusion about the format for different blockchains, but at least for main blockchains - it seems to be defined as:
ethereum:0xb794f5ea0ba39494ce839613fffba74279579268?amount=1.123
for ETH (or BTC) and
ethereum:0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/transfer?address=0xb794f5ea0ba39494ce839613fffba74279579268&uint256=111.123e6
for EVM-compatible coins (like USDC here).
source: https://eips.ethereum.org/EIPS/eip-681
however... BNB doesn't seem to follow that format. I tried the following:
binance:0xba5830175b16e5e48d94c6fa11041ff9ed3bae5a?amount=1.123
bnb:0xba5830175b16e5e48d94c6fa11041ff9ed3bae5a?amount=1.123
binance:0xba5830175b16e5e48d94c6fa11041ff9ed3bae5a?amount=1.123&memo=1234
and:
both Binance and Exodus apps don't understand any of the above (not even eth or btc) - I'd appreciate links to their qr code requirements specs
Trust Wallet doesn't accept a BNB address written like that (funnily enough - amount and memo work flawlessly - same here, docs links would be amazing
metamask (which is Binance smart chain compatible) doesn't understand any of the BNB options - same here
I have honestly spent hours researching this topic and I am simply astonished by the lack of documentation in that regard.
as a bonus, just for the sake of informing others - XRP has its own super complex QR code format and it's available as a package here: https://www.npmjs.com/package/ripple-address-codec
anyway. any help will be greatly appreciated!
cheers
Related
Having developped the ERC20 based token I faced with the bunch of the questions related to ICO and google did not really help, so I was wondering if you guys could answer to the following questions:
Can I run ICO without having much money?
What are actually the steps to pass ICO?
Having a parallel of USDT on ERC20/TRC20 - there is no real evidence that these guys have available USD to cover emited USDT, does it mean I can create some yet another USD-stable coin and announce that it's fully covered by the company (which I could register the same day)?
Recently, I am doing research on bitcoin since it is fascinating. I came up with a few questions related to it that I would highly appreciate if someone can answer.
I do not understand how transactions can be verified by just using the Merkle Root. The block headers only contain the Merkle root, but to verify if the transactions in the block are valid, you still have to hash all of the transactions and compare it with the Merkle root. Am I missing something?
It seems like bitcoin source code can be updated: https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md. If this is the case, how can we say that the bitcoin is permanent decentralized store of value? We don't know how the system will change in the future. Also, who is in charge of developing the bitcoin? If there is institution in charge of this, how can we say it is fully decentralized?
Thanks!
The transaction identifier a.k.a. txid is generated by twice hashing (SHA-256) the serialized transaction data. The merkle root is the result of a merkle tree which takes as inputs all txids in the block. To paraphrase this masterpiece website (learnmeabitcoin):
"[Merkle root] gives you a short yet unique fingerprint for all the transactions in a block".
Yes, the bitcoin source code can and has been updated for years. In Bitcoin history, there are plenty groups which has modified (forks) bitcoin source code and run another version of the bitcoin repository.
Bitcoin forks are listed, some of them still running. We don't know how the system will change in the future, but if you don't like these changes, you are free to fork your own and aggregate a community around it. The community is crucial, the contributors (miners, developers, writers …) and users give strength to the project, as long as there is a community around bitcoin, it can exist.
Searching for a useful online tool to check certain card ranges for scheme, brand, issuer, country etc parameters; I came across:-
https://lookup.binlist.net/,
Sample use case:-
https://lookup.binlist.net/411111
Referenced also at:-
https://opendata.stackexchange.com/questions/3930/credit-card-metadata-database
Wondering have coders working on EMV and related FinTech areas come across this resource? Any feedback on accuracy / usefulness in detecting card types / originating country/acquirer etc., would be appreciated.
FWIW, it did gave reasonably accurate (though not uniformly populated) responses on the live cards in my wallet.
I have used the resource but it's not very detailed for many bin ranges especially for African ones where I come from. But at least it tells you the country where the BIN is registered.
I did my best to search all topics regarding to SCADA and developing your own C++ desktop application to communicate with PLCs, but could not find any recent, or in my opinion, relevant topics that fit what I needed. If I missed them, a link to them would be very much appreciated. If I also happened to post this in the wrong section, or you can think of a better section for me to post this in, I will take it there.
With that said, I thank you in advance for taking the time to read my questions, and appreciate any input you have to offer.
A little bit about what I'm doing
I'm currently in school for electromechanical engineering, and for my final year project I am developing a desktop application in C++ to monitor PLCs we have located within one of our labs.
Within this lab, I have a pre-existing ethernet network connecting all PLCs to single point, which I am tying into with a PC, and will be doing all my work from there.
I will be developing the application in Qt for an easy way to design the GUI, and giving me access to the QNetworkInterface as well as QTcpSocket.
With that said, I wouldn't go as far as saying I'm an experienced programmer, but I have been fooling around with a few languages (i.e.: python, c++, c, php) for quite a few years, and am still learning, considering the learning NEVER stops.
My questions
Is there any reference material I can read, that you can suggest, on the subject to more easily understand what sort of process I need to go through to receive information (i.e.: individual I/Os, status bits, tags, logs, etc...) from the PLCs directly, and not through an OPC server?
If an OPC server is required, I've never dealt with OPC links other than using Rockwell Automations RSLinx to grab tags and display their values within excel (I had created a prototype using that exact method to start, but would like to move away from excel, and if possible, the OPC server (RSLinx) as well). What would you suggest to someone who knows nothing about the subject of OPC servers, or to my knowledge, OPC in general?
Have any of you previously written your own application to do something similar, if not of the same nature to what I'm trying to accomplish?
What advice or suggestions would you give for someone who is attempting this type of project?
PS: As a start for this project, I would initially just want to get the reading of the I/Os (tags or addresses) to view what their current values are (closed or open for inputs, energized or not for outputs). But eventually I would also like to be able to write values to tags on the PLCs I'm monitoring based on the values I've received from them.
PSS: I would like to note again, that I am still a student, and am still learning about this subject in it's entirety. I would just like to ask for your patience, as I may not grasp things completely the first time!
If I've missed any information you feel is pertinent to be able to provide an answer, please let me know! I will do my best to come up with said information in a timely manner!
Thank you!
EDIT #1: Added in another question, and altered my first question slightly
EDIT #2: Fixed up question 2
IMHO a SCADA program should have as a minimum requirement to be able to connect to an OPC server. OPC is used for most commercial PLCs.
Strictly speaking there is no need to have an OPC server/client approach but it gives you flexibility and gives you an abstraction model. If you want to directly connect to PLCs using a protocol then that is of course possible as well. You then need to know more details about the protocols and their various versions.
Yes I worked for a few years in a team that developed a commercial SCADA application.
It is very easy to get lost in details in such a project so try to keep things as simple as possible. By using OPC you will save time instead of fiddling directly with the protocols. You could add the ability to add custom-drivers for other protocols - depending on your timeframe. Try to model up your project before you start coding to a birdsview of the model and avoid getting lost in the details.
I would stay well away from looking to write your own code to connect directly
to an AB PLC - there are products out there that you can use in your application:
http://www.rtaautomation.com/software/ethernetip/client/tagc/ControlWin.html
http://www.automatedsolutions.com/products/dotnet/ascomm/
You would be better to use OPC - you can write you own OPC client if you want and follow examples you find here:
http://www.opcconnect.com/source.php#freesource
According to this http://www.control.com/thread/1026173407 you should be able to get source code of Kepwares OPC Quick Client.
It would probably be easier to just use a library as in this example (RSLogix,C#):
http://www.mesta-automation.com/opc-client-with-c-an-how-to-video/
You might find this of use:
http://www.rockwellautomation.co.kr/applications/gs/ap/GSKR.nsf/files/rslinxsdk_ma_eng.pdf/$file/rslinxsdk_ma_eng.pdf
Some resources:
http://www.opcconnect.com/ ,
http://www.mesta-automation.com/
Answer to question #4 - realize that your lab technically could contain ANY manufacturer's PLCs in the future. If you ever took a Data Communications class, you realize that for N different PLC types, you would have to write N different communication drivers for your PLC client.
This is where standards are helpful. Without the use of a standard protocol, scaling your lab could become more time consuming and less manageable. This is why communications standards exist.
HOWEVER, not all PLCs necessarily support the standard(s) you may decide upon.
The best choice is OPC/UA. Many PLCs have server drivers readily available. That means that your client just needs to understand 1 protocol (OPC/UA), and then it can "easily" be connected to any PLC that has a driver for that standard.
After that, there is OPC. After that, Modbus (TCP and RTU flavors), a relatively simple industry standard that is supported by most PLCs. EtherNet/IP is also a possible choice, although not all PLCs support it in a "server" role (many do support it as a client, but that is not what you need).
have a look at pycomm in github or pylogix at github which are Python written drivers to link to clx plc.
I lost track of this effort years ago but have need to geocode thousands of addresses nightly. I must use the very accurate database sitting on the machine, installed when the Nuvi map update installed Mapsource.
When I contacted Garmin years ago, they expressed an interest in providing an API for this, but then I heard nothing and did not follow up. Their database is provided by navtec? I believe. Anyone have experience with that format?
I posted on the Garmin Developer forum a while ago, but its a little lethargic over there :)
Has anyone done this?
Does anyone know how it might be done without an API; meaning database structure and calls?
I'll take a solution in any language.
Added:
Garmin has expressed an interest in making this available to me. They just have not done it.
I do not know the database format.
I am NOT looking for an online solution or any other "alternative". This question is very specific.
Talk to Navtec directly. They will sell you or license you their database directly. The database tables are clearly documented, then write your own Geocoder on top. Took me about a week 4 years ago, and I was marginally profficient in SQL at the time.
You can geocode up to 10,000/day by city with NN4D after you get their free application key.
You can geocode for $18 per 1,000 with CoreLogic (aka Proxix)
Yahoo looked most promising because it has the Hadoop feature, which is also currently being utilized at Navteq. I've contacted a guy at Navteq who uses Hadoop, and I'm awaiting his feedback. According to Ben Lorica's article on Datameer O'Reilly.com entitled "Big Data Tool for Business Analysts", Datameer can upload from spreadsheets to Hadoop. Hadoop is a pipeline to Navteq.
Starting point - a list of the tools at the GIS Dept at USC
(I can only have one link because I'm new, but I'll add the rest when I get my points up.
naveteq uses oracle format
BUT HOLD 1 SECOND:
doing 1000 lookups(per night) is easy,
doing 10000 lookups(per night) requires a good server,
doing 1000000 lookups(per night) requires a cluster
letting them do the searches requires less hardware(and more traffic) using xml-rpc or similar rpc would be the best( for everyone)
buy oracle db and start working
you can use almost anything BUT keeping in mind the volume you should use a compile language like c++
gpsbabel.org has lots of stuff on converting between lots of GPS formats, and a downloadable tool. My limited experience, mostly with google maps, streetview etc. is that geocoding is not very accurate.
cM
The free IBM DB2 Express-C DBMS comes with Spatial Extender that can be used to GEOcode US addresses. See a webinar on this. Don't know if this is exact fit but it can't hurt to take a look.
Also take a quick look the DB2 documentation http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.spatial.topics.doc/doc/csbp3008.html