I was playing around with datacoin, but I seem to have found a small issue in the tx data size checking code.
According to the website, data can be up to 128*1024 bytes, and it is stored in binary.
From what I can see, the rpc methods send and receive the transaction data in base64, which makes sense, since it's a json based transport layer. Eventually, in wallet.cpp, that base64 payload gets decoded and placed in the transaction in binary format.
Unfortunately, all the payload size checks are made before decoding, applying the 128k restriction to the base64 encoded data, although it will be stored in binary. This means that when using the RPC calls, the limit for the data is smaller than expected (around 128*3/4 = 96k).
Have I stumbled into a bug, or am I missing something?