Age | Commit message (Collapse) | Author |
|
And I don't know how to clean my commits after having pushed
them to remote origin/master. Maybe a Git stash and hard reset?
|
|
TCOIN_MSG_LENGTH_LIMIT
I made a switch from TCOIN_MSG_LENGTH to TCOIN_MSG_LENGTH_LIMIT for the symbolic constant
representing the maximum number of characters of a transaction message. I changed all instances
of the symbolic constant to this new name in tcoin.cpp, but forgot to do it in one instance in
pcoin.cpp. This goes on to show that I need to develop tests for tcoin and pcoin, as well as
start using getopt from util-linux for proper options handling.
|
|
After having received a 10000-character transaction message from ~jan6@envs.net,
I finally came around to implementing character limits on transaction messages.
Previously, I was of the opinion that one should be able to send a movie as a
transaction message if one so wished.
I took inspiration for an appropriate character limit from Australia's NPP (New
Payments Platform), which has a 280-character limit on transaction messages. I
strongly suspect this limit came from Twitter's analysis of tweets in different
languages and Twitter research that concluded that a 280-character tweet was the
appropriate length of tweet. A transaction message is supposedly like a tweet with
some money sent along with it.
|
|
I don't know how I missed this, because I remember coming across this deficiency before.
I had missed a case, where silentsend is requested but with a message. Previously, it would
fail without any message to stdout or stderr (only a return code).
Now, silentsend with a message works even on pcoin.cpp (tcoin.cpp already had this change).
|
|
I made a mistake. I should have done this before making my commits.
That's the only reason why this merge is necessary.
|
|
constants
I had forgotten to handle the fatal errors and take the error numbers out into symbolic constants. I have now done that in tcoin.cpp and pcoin.cpp
|
|
I had forgotten to change \u23CE to <new-line> and introduce a check for <vertical-tab> in many many places
in tcoin.cpp and pcoin.cpp. I should probably put these things in some kind of function so I don't repeat myself.
I'll probably do that in a future commit.
|
|
This doesn't change functionality. It is simply a refactor that separates error codes out into symbolic constants in tcoin.cpp and pcoin.cpp.
|
|
<vertical-tab>
Newlines and vertical tabs in messages are replaced with <new-line> and <vertical-tab> to prevent transaction spoofing inside a message.
|
|
|
|
ntcoin's help said "tcoin subdirectories" for the first path argument. It was not clear whether this argument should include "/tcoin" or not. Now, this has been made clearer so that it means the 'tcoin' directory itself.
|
|
Fixed a typographical error in ntcoin (there was an extra ').
|
|
To ensure that builds are verifiable, tcoin_defs.cpp and pcoin_defs.cpp are copied from tcoin/bin to ~/bin (i.e., to the same directory as the 'tcoin' and 'pcoin' executables)
|
|
Just added a period/fullstop to the message in the show_balances() function.
|
|
Well, that was embarrassing. My nano tcoin.cpp and pcoin.cpp swap files got uploaded!
|
|
The title is confusing, sorry. "No messages found" is shown in tcoin and pcoin when no messages are found (and this no-message message has one newline above and one newline below it instead of two newlines above it as before).
|
|
Minor correction to README.md, where the phrase "Program users" was replaced with "Program accounts" in the heading.
|
|
Updated README.md to provide instructions to get started easily, including program-account creation (which was not well-documented previously).
|
|
|
|
Just a minor aesthetic fix so that there is even newline gaps between statements when running 'tcoin init'.
|
|
Just a minor aesthetic fix so that there is even newline gaps between statements when running 'tcoin init'.
|
|
A small error was present in ntcoin, where a chmod on a file that may not exist was blocking the execution of future commands due to failing. Now, the command is always set to succeed.
|
|
Fixed a bug in ntcoin where the symlinks from tcoin/bin/compile_tcoin and tcoin/bin/edit_tcoin to ~/bin/compile_tcoin and ~/bin/edit_tcoin are made properly. The previous command did something else.
|
|
ntcoin would accept no number of basecoins <n>. Now, there is a check added near the beginning for <n> existing and being a non-negative integer.
|
|
ntcoin had an error in the way it created compile_pcoin. compile_pcoin had a missing \ at the end of the line (for line continuation). This bug has now been fixed.
|
|
Several changes were made that were difficult to separate into separate commits. Since features are directly committed to master, there are no feature branches.
The high-level list of changes is as follows:
1. Fixed a bug in pcoin where using "pcoin send -s" for silentsend would forget to add the transaction message that provides a record of who transferred how much and when, even if there is no custom message appended (send_message(.) was not called).
2. Improved the help text to make it clear that sending messages could be done using silentsend too.
3. In several cases in tcoin and pcoin, certain ways of doing a silentsend would still send with verbose output because, by mistake, the option passed to send_message(.) was not changed from "verbose" to "silent".
4. In pcoin, there was the case of 6 arguments missing, where one does pcoin send -s <user> <amount> <message>. This case was handled in tcoin but not pcoin. Now, it is handled in pcoin too.
5. Now, when a custom message is sent in tcoin or pcoin, an additional text confirming the successful sending of the custom message as distinct from the one confirming the sending of the coins is displayed to the user.
|
|
pcoin_defs.cpp and tcoin_defs.cpp contained definitions which were used in one but not the other. ntcoin now only includes those definitions in either which are used by the respective source file (and no other definitions).
|
|
scrypt, the executable, uses libcrypto.so, which was updated from 1.0.0 to a more recent version (most likely 1.1). Thus, it had to be recompiled. The new version is included by default now in this directory.
|
|
ntcoin creates the scripts edit_tcoin and edit_pcoin. Now, instead of assuming 'nano' is included at /bin/nano, it uses `which nano` to determine where 'nano' is included in the current system. Quotation marks are used around 'nano''s file argument to increase robustness around spaces in file paths.
|
|
In order to be robust against spaces present in the directories passed to ntcoin, quotes around the additional directory to search for includes (g++ -I) and the output file directory specified in g++ are now included in ntcoin.
ntcoin generates the compile_tcoin and compile_pcoin scripts.
|
|
The KROWBAR_OFF, DA_OFF and MINERCOIN_OFF symbolic constants are now included in tcoin_defs.cpp and pcoin_defs.cpp and have been removed from the main source files, tcoin.cpp and pcoin.cpp.
ntcoin has been modified to include #define KROWBAR_OFF, #define DA_OFF and #define MINERCOIN_OFF in pcoin_defs.cpp and tcoin_defs.cpp by default, since those three features are only (as of now) available on the tilde.town server and on no other server.
|
|
In pcoin.cpp, minercoin-score addition can be disabled by writing #define MINERCOIN_OFF near the symbolic-constant definitions.
However, in one place, a check for the absence of the DA_OFF symbolic constant was being made instead of MINERCOIN_OFF. This is now fixed.
|
|
|
|
I realised that different tilde servers will have different definitions but the same code otherwise, and 'git push' and 'git pull' to update the code on other servers would override those definitions.
Thus, the tcoin.cpp and pcoin.cpp files now look the same for all tildeservers and have a #include "tcoin_defs.cpp" and #include "pcoin_defs.cpp" respectively. The configuration, which is in the form of #define symbolic constants, is stored in tcoin/bin/tcoin_defs.cpp and tcoin/bin/pcoin_defs.cpp. ntcoin is modified to create these two files with the right definitions. ntcoin is also modified so that compile_tcoin and compile_pcoin now include the -I option, which instructs the compiler to look for includes in additional directories, in this case, tcoin/bin .
|
|
tcc (which stands for 'tildecoin check'), simply adds all the balances and prints the sum. This can be used to check that the amounts sent and amounts received are equal.
|
|
|
|
Benjamin Harris (https://ben.tild3.org, https://github.com/benharri, and https://benharr.is) found a bug where the time recorded for transaction logs/messages was local server time instead of UTC. It should have been UTC no matter what the local time was.
|
|
To fix the preprocessor constants so that they point to the right directory for the tcoin and pcoin executables. This will be different depending on where the tcoin and pcoin executables are stored.
|
|
Previously, the executables 'tcoin' and 'pcoin', which had setuid set, were stored in tcoin/bin/*. However, the "tcoin" directory is restricted, so any executables inside it are inaccessible to users.
To fix this, the compile_tcoin and compile_pcoin scripts have been modified to store the executables in a third specified directory, called the <bin dir> in the help. <bin dir> will be accessible to all users. The symbolic constants/preprocessor directives have also been changed to reflect the updated paths.
|
|
Previously, the executables 'tcoin' and 'pcoin', which had setuid set, were stored in tcoin/bin/*. However, the "tcoin" directory is restricted, so any executables inside it are inaccessible to users.
To fix this, the compile_tcoin and compile_pcoin scripts have been modified to store the executables in a third specified directory, called the <bin dir> in the help. <bin dir> will be accessible to all users. The symbolic constants/preprocessor directives have also been changed to reflect the updated paths.
|
|
A default message is now shown when there are no messages to show.
|
|
Since not all places where tcoin runs have tildebot, minerbot and daily-adventure, these integrations are now disabled in the code through preprocessor directives (symbolic constants that act as flags)
|
|
pcoin.cpp and tcoin.cpp were missing the preprocessor directives generated by ntcoin. The right preprocessor directives are now included in both files.
|
|
I had missed two symbolic constants that are present in pcoin.cpp but not tcoin.cpp. Those two have been added now.
|
|
1. Single quotes closed before command substitutions, and opened again right after them. (Some cases were missed previously.)
2. The u+s mode/permission is used on all subdirectories of the tcoin directory and the tcoin directory itself now, so that files created are owned by the owner of the containing directory by default. This will prevent the class of bugs that would arise when files are created through the tcoin executable (which has the setuid bit set).
3. A mistake in the file name and location of the base amount (tcoin/base/base.txt) was corrected.
|
|
directories
This option was added to allow the #define configuration to be reprinted even if ntcoin was already used to recreate tcoin's subdirectory structure.
|
|
integrations
Defining the symbolic constants NO_KROWBAR, NO_DA and NO_MINERCOIN disables the three coin integrations during compile time.
|
|
|
|
Uses "realpath" to get rid of all trailing slashes and check that each directory in the path supplied exist (other than the innermost directory).
|
|
tcoin and pcoin
1. Sets up all relevant directories, scripts and binaries for tcoin and pcoin, assuming the current directory is right inside the GitHub repo (same depth as the LICENSE file).
2. Creates soft-links to the executables in "bin" folder inside the "tcoin" folder in the "~/bin" folder.
3. Prints the relevant preprocessor directives to be put in tcoin.cpp and pcoin.cpp (without actually putting it in those two files).
Because of 3. above, the tcoin.cpp and pcoin.cpp files will have to be modified again, after which "compile_tcoin" and "compile_pcoin" can be called again to update the binaries.
|