Conversation
garydgregory
left a comment
There was a problem hiding this comment.
Hello @fadedblack
Thank you for your PR!
Please add a unit test for the test vectors in https://datatracker.ietf.org/doc/html/draft-msporny-base58-03 (see the end of the document).
garydgregory
left a comment
There was a problem hiding this comment.
This PR doesn't even compile...
Error: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.14.1:compile (default-compile) on project commons-codec: Compilation failure: Compilation failure:
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58InputStream.java:[57,41] cannot find symbol
Error: symbol: class AbstracBuilder
Error: location: class org.apache.commons.codec.binary.Base58InputStream
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58OutputStream.java:[61,41] cannot find symbol
Error: symbol: class AbstractBuilder
Error: location: class org.apache.commons.codec.binary.Base58OutputStream
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58InputStream.java:[50,106] type argument org.apache.commons.codec.binary.Base58InputStream.Builder is not within bounds of type-variable B
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58InputStream.java:[66,9] method does not override or implement a method from a supertype
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58InputStream.java:[71,9] method does not override or implement a method from a supertype
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58InputStream.java:[88,15] incompatible types: org.apache.commons.codec.binary.Base58InputStream.Builder cannot be converted to org.apache.commons.codec.binary.BaseNCodecInputStream.AbstracBuilder<org.apache.commons.codec.binary.Base58InputStream,org.apache.commons.codec.binary.Base58,org.apache.commons.codec.binary.Base58InputStream.Builder>
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58InputStream.java:[97,24] cannot find symbol
Error: symbol: method setInputStream(java.io.InputStream)
Error: location: class org.apache.commons.codec.binary.Base58InputStream.Builder
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58InputStream.java:[109,24] cannot find symbol
Error: symbol: method setInputStream(java.io.InputStream)
Error: location: class org.apache.commons.codec.binary.Base58InputStream.Builder
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58OutputStream.java:[54,110] type argument org.apache.commons.codec.binary.Base58OutputStream.Builder is not within bounds of type-variable B
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58OutputStream.java:[67,13] cannot find symbol
Error: symbol: method setEncode(boolean)
Error: location: class org.apache.commons.codec.binary.Base58OutputStream.Builder
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58OutputStream.java:[75,9] method does not override or implement a method from a supertype
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58OutputStream.java:[85,9] method does not override or implement a method from a supertype
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58OutputStream.java:[102,15] incompatible types: org.apache.commons.codec.binary.Base58OutputStream.Builder cannot be converted to org.apache.commons.codec.binary.BaseNCodecOutputStream.AbstractBuilder<org.apache.commons.codec.binary.Base58OutputStream,org.apache.commons.codec.binary.Base58,org.apache.commons.codec.binary.Base58OutputStream.Builder>
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58OutputStream.java:[111,23] cannot find symbol
Error: symbol: method setOutputStream(java.io.OutputStream)
Error: location: class org.apache.commons.codec.binary.Base58OutputStream.Builder
Error: /home/runner/work/commons-codec/commons-codec/src/main/java/org/apache/commons/codec/binary/Base58OutputStream.java:[123,24] cannot find symbol
Error: symbol: method setOutputStream(java.io.OutputStream)
Error: location: class org.apache.commons.codec.binary.Base58OutputStream.Builder
Error: -> [Help 1]
|
Hey @garydgregory mb, I had my build configurations wrong. Will fix and re-push. EDIT1: Also, this is my mvn configurations EDIT2: |
|
Hey @garydgregory will it be possible to re-run the pipeline? |
Running... |
Removed the since tag from the Builder class documentation.
|
The Jira ticket is https://issues.apache.org/jira/browse/CODEC-326 |
This PR addresses an new implementation of Base58 as mentioned in the https://issues.apache.org/jira/browse/CODEC-326.
It creates 3 new classes.
The Base58 encoder takes in a byte array and converts it into Base10 number which is then in-turn converted into Base58. The implementation of how to convert to Base58 is given here https://learnmeabitcoin.com/technical/keys/base58/
Github Copilot was used to generate unit tests and write java docs for the classes