Giter Club home page Giter Club logo

cryptograffiti's People

Contributors

1hyena avatar eq avatar erstus avatar xumuku avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cryptograffiti's Issues

Move the sfx folder out from the src folder

The sfx folder in src currently contains *.wav files used by the user interface. Create a data folder in the repository's root folder and move the sfx folder to there. Modify the file paths in the HTML file so that everything would remain working.

Now modify the compile.sh so that it would URI encode the *.wav files into the final minified index.html it produces after compilation. After that, remove the unnecessary *.wav files and the sfx folder from the web server. After solving this issue cryptograffiti should truly become a one-file-program.

50€ bounty: Increase tools tab min height

Portrait layout / mobile devices don't show all the necessary information under the tools tab because the minimum height of some elements is too small. Increase the minimum height so that the file list in the proof of existence tool is more visible.

Decode the Bitcoin whitepaper from the block chain

Someone has encoded the original whitepaper of Bitcoin on the block chain. Since the Core development team and bitcoin.org has gone rogue trying to alter the original whitepaper of Satoshi Nakamoto to fit their central banker agenda it is important to make the true original easily available for the public. CryptoGraffiti.info should be capable of decoding this special TX that contains the Bitcoin's whitepaper.

https://bitcoin.stackexchange.com/questions/35959/how-is-the-whitepaper-decoded-from-the-blockchain-tx-with-1000x-m-of-n-multisi

Here is the TX that contains the whitepaper:
https://blockchain.info/tx/54e48e5f5c656b26c3bca14a8c95aa583d07ebe84dde3b7dd4a78f4e4186e713

OP_RETURN encoding

Make it possible to attach an OP_RETURN message to your normal message. There should be a note warning the user that OP_RETURN messages can only be written using the SAVE TO BLOCK CHAIN button and it will be lost when importing addresses to the wallet for manually saving the message.

100€ bounty: Present the Encoder's receiving address in CashAddr format

Include and integrate some CashAddr conversion library (ideally a single javascript file) to the src/lib folder. Make sure that when payment info is received the legacy (Base58) address provided by the server is converted to CashAddr format and added beside the legacy address so that the end-user could choose which one to use for making the payment. This should be done client-side without ANY external domain dependencies. See the attached screenshot.

screenshot from 2018-03-10 13-32-17

60€: Add QR code support

When saving a message on the block chain and prompted with payment details, present a QR code so that payment could be made more easily with mobile devices.

Get rid of the deprecated use of unescape

In write.js at line 103 there is var text = unescape(encodeURIComponent(area.value)); which needs to be changed so that unescape would not be used. Instead, one should probably utilize utf8.js as a workaround.

Interestingly, lib/cryptojs/core.js also uses unescape. Figure out what to do with this.

Stop using goqr.me to generate QR codes

Apparently, goqr.me fails to provide their API over HTTPS. Very unprofessional. Their service should never be used over plain HTTP because in case of bitcoin addresses a man in the middle could replace the receiving address in the generated qr code and steal your bitcoins. Generate own QR code to fix this.

Font unreadably small on chrome for android.

Using rem units for font-size cause chrome for android to render text totally unreadable(too small) unless font-size is fixed in root element(html) with precise pixels. "html{font-size:12px}" would be fine, but removes the support for user-specified font size. Problem most-likely has to do with smart-phone high pixel density being compensated in a weird way. IMO chrome bug. Probably needs a pinpointed fix, because font-size works as expected on every other browser but chrome.

Proof-of-Existence tool should also show the SHA-256 hashes

In addition to the RIPEMD160 hashes the proof of existence tool should also present the SHA256 hash of the file.

When pressing the COMPILE button the write tab's message should contain the SHA256 hash in addition to RIPEMD160.

See the attached screenshots.
screenshot from 2018-03-10 13-39-23
screenshot from 2018-03-10 13-39-49

New tool: Address Decoder

Make a simple little tool under the tools tab that would make it possible for the user to enter an array of Bitcoin addresses and immediately see how they decode into a message.

.editorconfig file?

It'd be good to have a .editorconfig file for things like trailing whitespace, tab size etc. I ran into this problem when I was writing some code and the default config on my editor removed a bunch of trailing whitespace. http://editorconfig.org/

Refactor away the use of a word 'donation'

It has become misleading to use the word donation within the context of cryptograffiti because cryptograffiti.info is no longer accepting donations. Instead, there's a mandatory service fee when encoding messages on the user's behalf.

100€ bounty: Loading-bar should not move messages

After loading-bar finishes, its height will animate to zero. Firefox plays the animation through and resets the height to its initial value. This results a yanking movement. Reason of this animation would be to make room for content, but If the loading-bar is positioned absolutely, it would not create an extra gap between messages at all. I suggest doing this and removing the animation completely. That would be faster and cleaner.

Fix the yui-compressor warnings

When executing compile.sh, it produces a really long list of warnings. Supposedly those warnings could be dealt with so that yui-compressor wouldn't print any warnings. Do it. Fix the warnings, do not just change the compile script to suppress the warnings. Suppressing warnings is not a solution!

This is the kind of stuff it prints:

[WARNING] Try to use a single 'var' statement per scope.
tr5=document.createElement("tr"); ---> var  <--- td1_1=document.createElement("td");var 

[WARNING] Try to use a single 'var' statement per scope.
td1_1=document.createElement("td"); ---> var  <--- td1_2=document.createElement("td");var 

[WARNING] Try to use a single 'var' statement per scope.
td1_2=document.createElement("td"); ---> var  <--- td2_1=document.createElement("td");var 

[WARNING] Try to use a single 'var' statement per scope.
td2_1=document.createElement("td"); ---> var  <--- td2_2=document.createElement("td");var 

[WARNING] Try to use a single 'var' statement per scope.
td2_2=document.createElement("td"); ---> var  <--- td3_1=document.createElement("td");var 

[WARNING] Try to use a single 'var' statement per scope.
td3_1=document.createElement("td"); ---> var  <--- td3_2=document.createElement("td");var 

[WARNING] Try to use a single 'var' statement per scope.
td3_2=document.createElement("td"); ---> var  <--- td4_1=document.createElement("td");var 

Add message channel/category selection

Make it possible for the user to define a channel for the message being written. There should be a new input field under the write tab that might come in a form of a dropdown menu with predefined options such as love, poetry, art, news and stuff like that. Under the read tab there should also be a possibility to filter the messages by their categories.

OP_RETURN decoding

Currently OP_RETURN messages are detected but not uploaded because they contain a lot of annoying spam with low value messages embedded. Create a new database functionality for storing and distinguishing low value messages such as those in OP_RETURN. When querying with get_graffiti add a new parameter to enable the fetching of low value messages. Display low value messages under the read tab if they are not older than a couple of days.

New tool: Transaction Decoder

Make a new tool that would allow entering the TX hash of any transaction as an input and have it immediately decoded and displayed nearby the input.

Allow specifying multiple categories over the hashtag API

Currently the hashtag API allows specifying only one category for a message that is to be written on the block chain. We can see it from the below example.

https://cryptograffiti.info/#write:MSG#CAT

It would save a message MSG under the category CAT.

There has to be a way for specifying multiple categories. Implement the necessary functionality for the following links to work as intended.

https://cryptograffiti.info/#write:MSG#CAT1,CAT2,CAT3

https://cryptograffiti.info/#write:I love you#love,romance,valentine

Figure out what to do with licenses and implement the idea

See the *.js files in the src/lib folder and its cryptojs subfolder. All of them contain copyright information in a form of comments. The compile.sh script removes all comments from all files and pretty much produces a binary. This means that the licence information gets lost. However, it is stated in the licenses that in the case of a binary the copyright information should be presented in some other way. Research the issue and find out how this information should be presented in that case. Should we state it in the about tab, for example? After having found out the best way to solve this issue, please solve it by implementing the necessary changes in the code.

Remove disabled buttons from the GUI

Some users have got confused by the placeholder buttons that appear as disabled due to the fact that their respective functionality has not yet been implemented. Either implement the functionality or remove the buttons completely to avoid future confusion.

Optimize the use of hex2utf8

As it turns out, with longer payloads in OP_RETURN it can happen that hex2utf8 Lua function becomes vulnerable to Denial-of-Service attacks. For example, TX dc5d9c5c98a11bb404b9c139a377a1326b27a25c6750059f16076519d65709a2 in block 566530 is one such problematic transaction. First of all, the utf8 extraction should be implemented in C++ rather than in Lua. Secondly, such extractions should be executed in parallel.

Proof-of-Existence tool is blinking instead of smooth poofin/poofout

This bug only happens with the compiled version of cryptograffiti. the development version does not have it. Try adding a file to the proof of existence file area and then click cancel. the file area blinks away instantly but in development version it smoothly disappears.

100€: Add ANSI Colour support

Some of the messages contain ANSI ESC sequences. Currently the colour information is stripped away before showing the message to the user. Implement a proper ANSI colour support for messages that contain ANSI ESC sequences.

150€ bounty: Scale images in accordance to browser font size

The whole page is pretty responsive and reacts well to custom font sized defined by the user in their browser settings. However, currently images are not scaled in accordance to font size. When the user increased browser's font size to maximum then images still remain in their original size. This looks ugly and should be fixed.

100€ bounty: Opening message by TXID should try different block explorers

Trying to link to a block chain message based on its TX hash.
Getting the below error because of cloudflare is harassing VPN users

Failed to load https://bitcoincash.blockexplorer.com/api/tx/28c3de1036c81ce6e16a64dc0cc7da3e5c637cf33d6a1a48aa668cd423e36c7c: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://cryptograffiti.info' is therefore not allowed access. The response had HTTP status code 403.

When this happens cryptograffiti.info should automatically try some other block explorer.

Show the approximate message cost in USD

Right now the approximate cost of writing a message is given as a number of BTC units (Bitcoin Cash). Since Bitcoin Core ticker in some exchanges is BTC it might create some confusion. So, rather than displaying the appriximate cost as BTC it should be converted to USD based on the current exchange rate of Bitcoin Cash. See the attached screenshot.

screenshot from 2018-03-10 14-08-39

Implement proper message referencing

Currently messages can only be linked by their sequence number used by the CryptoGraffiti's database. This number is not universal and can even change in the future. Instead of that, messages should be referenced by their transaction hash.

For example, instead of this:
http://cryptograffiti.info/#4893
we should have this:
http://cryptograffiti.info/#00a64f2ff9aae7a34c21d07b8fc9bad79989f25295ccbddc6fbe73b3685b65a9
The user should still see #4893 in the message header but it should reference to the TX hash rather than message number.

SAT_BYTE should be updated even if it remains unchanged

Right now the encoders won't change the SAT_BYTE variable if it remains unchanged locally. However, the server resets it to zero every day. As a result, this variable is no longer reliable. Either implement a new table for storing globals or fix this by updating the SAT_BYTE variable every time a new day has begun or even more often.

Move the compile.sh script to the root level

Currently the compile.sh script is inside the src folder with the index.html. Move it one level upwards in the directory structure and edit it accordingly. Then rename that index.html to cryptograffiti.html and change the compile.sh so that it would produce index.html instead of cryptograffiti.html. The latter makes it easier to upload this one file to the web server and get it working without having to rename it to index.html.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.