This repository was archived by the owner on May 6, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 8 files changed +91
-39
lines changed
Expand file tree Collapse file tree 8 files changed +91
-39
lines changed Original file line number Diff line number Diff line change @@ -61,15 +61,31 @@ jobs:
6161 - checkout
6262 - restore-sccache-cache
6363 - run :
64- name : Initial configuration
64+ name : External dependencies
6565 command : |
66- sudo apt-get install -y default-jdk g++ gcc valgrind snapd
66+ sudo apt-get install -y clang default-jdk g++ gcc libicu-dev libtinfo5 valgrind
67+ - run :
68+ name : Cbindgen
69+ command : |
70+ cd signer-ffi
6771 rustup install nightly
68- cargo +nightly install cbindgen
72+ rustup default nightly
73+ cargo install cbindgen
74+ cbindgen --config cbindgen.toml --crate filecoin-signer-ffi --lang c --output /tmp/filecoin_signer_ffi.h
75+ cbindgen --config cbindgen.toml --crate filecoin-signer-ffi --lang c++ --output /tmp/filecoin_signer_ffi_cpp.h
76+ - run :
77+ name : Libraries
78+ command : |
79+ cd signer-ffi
80+ cargo build
81+ cp ../target/debug/libfilecoin_signer_ffi.so /tmp/libfilecoin_signer_ffi.so
82+ cargo build --features with-jni
83+ cp ../target/debug/libfilecoin_signer_ffi.so /tmp/libfilecoin_signer_ffi_java.so
6984 - run : OUT_DIR=/tmp/c ./.circleci/test_c.sh
7085 - run : OUT_DIR=/tmp/cpp ./.circleci/test_cpp.sh
7186 - run : OUT_DIR=/tmp/java ./.circleci/test_java.sh
7287 - run : OUT_DIR=/tmp/kotlin ./.circleci/test_kotlin.sh
88+ - run : OUT_DIR=/tmp/swift ./.circleci/test_swift.sh
7389
7490 tests_wasm :
7591 docker :
Original file line number Diff line number Diff line change 1- cd signer-ffi
21mkdir $OUT_DIR
3- cp -r ../examples/ffi/c/* $OUT_DIR
4- rustup default nightly
5- cbindgen --config cbindgen.toml --crate filecoin-signer-ffi --lang c --output $OUT_DIR /filecoin_signer_ffi.h
6- cargo build
7- cp ../target/debug/libfilecoin_signer_ffi.so $OUT_DIR
8- ( cd $OUT_DIR ; gcc main.c -L. -lfilecoin_signer_ffi -o main )
9- LD_LIBRARY_PATH=$OUT_DIR $OUT_DIR /main
10- LD_LIBRARY_PATH=$OUT_DIR valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose $OUT_DIR /main
2+ cp -r ./examples/ffi/c/* $OUT_DIR
3+ cd $OUT_DIR ;
4+ cp /tmp/filecoin_signer_ffi.h .
5+ cp /tmp/libfilecoin_signer_ffi.so .
6+ gcc main.c -L. -lfilecoin_signer_ffi -o ./main
7+ LD_LIBRARY_PATH=. ./main
8+ LD_LIBRARY_PATH=. valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose ./main
Original file line number Diff line number Diff line change 1- cd signer-ffi
21mkdir $OUT_DIR
3- cp -r ../examples/ffi/c++/* $OUT_DIR
4- rustup default nightly
5- cbindgen --config cbindgen.toml --crate filecoin-signer-ffi --lang c++ --output $OUT_DIR /filecoin_signer_ffi.h
6- cargo build
7- cp ../target/debug/libfilecoin_signer_ffi.so $OUT_DIR
8- ( cd $OUT_DIR ; g++ main.cpp -L. -lfilecoin_signer_ffi -o main )
9- LD_LIBRARY_PATH=$OUT_DIR $OUT_DIR /main
10- LD_LIBRARY_PATH=$OUT_DIR valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose $OUT_DIR /main
2+ cp -r ./examples/ffi/c++/* $OUT_DIR
3+ cd $OUT_DIR
4+ cp /tmp/filecoin_signer_ffi_cpp.h ./filecoin_signer_ffi.h
5+ cp /tmp/libfilecoin_signer_ffi.so .
6+ g++ main.cpp -L. -lfilecoin_signer_ffi -o ./main
7+ LD_LIBRARY_PATH=. ./main
8+ LD_LIBRARY_PATH=. valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose ./main
Original file line number Diff line number Diff line change 1- cd signer-ffi
21mkdir $OUT_DIR
3- cp -r .. /examples/ffi/java/* $OUT_DIR
4- cp -r java/* $OUT_DIR
5- javac -h $OUT_DIR java/src/main/java/ch/zondax/FilecoinSigner.java
6- cargo build --features with-jni
7- cp ../target/debug/ libfilecoin_signer_ffi.so $OUT_DIR
8- javac -d $OUT_DIR $OUT_DIR /src/main/java/ch/zondax/FilecoinSigner.java
9- javac -cp $OUT_DIR $OUT_DIR /Main.java
10- ( cd $OUT_DIR ; java -Djava.library.path=" ." -ea Main )
2+ cp -r ./examples/ffi/java/* $OUT_DIR
3+ cp -r ./signer-ffi/ java/* $OUT_DIR
4+ cd $OUT_DIR
5+ cp /tmp/filecoin_signer_ffi.h .
6+ cp /tmp/libfilecoin_signer_ffi_java.so ./ libfilecoin_signer_ffi.so
7+ javac -d . -h . . /src/main/java/ch/zondax/FilecoinSigner.java
8+ javac -cp . . /Main.java
9+ java -Djava.library.path=" ." -ea Main
Original file line number Diff line number Diff line change @@ -3,13 +3,12 @@ bash sdk.install.sh
33. ~ /.sdkman/bin/sdkman-init.sh
44sdk install kotlin
55
6- cd signer-ffi
76mkdir $OUT_DIR
8- cp -r .. /examples/ffi/kotlin/* $OUT_DIR
9- cp -r java/* $OUT_DIR
10- javac -h $OUT_DIR java/src/main/java/ch/zondax/FilecoinSigner.java
11- cargo build --features with-jni
12- cp ../target/debug/ libfilecoin_signer_ffi.so $OUT_DIR
13- javac -d $OUT_DIR $OUT_DIR /src/main/java/ch/zondax/FilecoinSigner.java
14- kotlinc -cp $OUT_DIR $OUT_DIR /Main.kt -include-runtime -d $OUT_DIR
15- ( cd $OUT_DIR ; kotlin -Djava.library.path=" ." -J-ea MainKt )
7+ cp -r ./examples/ffi/kotlin/* $OUT_DIR
8+ cp -r ./signer-ffi/ java/* $OUT_DIR
9+ cd $OUT_DIR
10+ cp /tmp/filecoin_signer_ffi.h .
11+ cp /tmp/libfilecoin_signer_ffi_java.so ./ libfilecoin_signer_ffi.so
12+ javac -d . -h . . /src/main/java/ch/zondax/FilecoinSigner.java
13+ kotlinc -cp . . /Main.kt -include-runtime -d .
14+ kotlin -Djava.library.path=" ." -J-ea MainKt
Original file line number Diff line number Diff line change 1+ wget https://swift.org/builds/swift-5.2.1-release/ubuntu1804/swift-5.2.1-RELEASE/swift-5.2.1-RELEASE-ubuntu18.04.tar.gz
2+ tar xzf swift-5.2.1-RELEASE-ubuntu18.04.tar.gz
3+ mv swift-5.2.1-RELEASE-ubuntu18.04 ~ /.swift
4+
5+ mkdir $OUT_DIR
6+ cp -r ./examples/ffi/swift/* $OUT_DIR
7+ cd $OUT_DIR ;
8+ cp /tmp/filecoin_signer_ffi.h .
9+ cp /tmp/libfilecoin_signer_ffi.so .
10+ ~ /.swift/usr/bin/swiftc -import-objc-header filecoin_signer_ffi.h main.swift libfilecoin_signer_ffi.so -o ./main
11+ LD_LIBRARY_PATH=. ./main
Original file line number Diff line number Diff line change 1+ # Swift bindingds
2+
3+ To use this example, download the latest header and library or compile the ` signer-ffi ` directory.
4+
5+ # Running
6+
7+ Assuming that the header and library are in the same directory.
8+
9+ ``` bash
10+ swiftc -import-objc-header filecoin_signer_ffi.h main.swift libfilecoin_signer_ffi.so -o ./main
11+ LD_LIBRARY_PATH=. ./main
12+ ```
Original file line number Diff line number Diff line change 1+ let error = filecoin_signer_error_new ( ) ;
2+ let extended_key = filecoin_signer_key_derive (
3+ " equip will roof matter pink blind book anxiety banner elbow sun young " ,
4+ " m/44'/461'/0/0/0 " ,
5+ error
6+ ) ;
7+
8+ if ( filecoin_signer_error_code ( error) != 0 ) {
9+ let err = String ( cString: filecoin_signer_error_message ( error) !) ;
10+ fputs ( err, stderr)
11+ }
12+ else {
13+ let private_key = filecoin_signer_extended_key_private_key ( extended_key) ;
14+ assert ( String ( cString: private_key!) == " f15716d3b003b304b8055d9cc62e6b9c869d56cc930c3858d4d7c31f5f53f14a " ) ;
15+ filecoin_signer_string_free ( private_key) ;
16+ }
17+
18+ filecoin_signer_extended_key_free ( extended_key) ;
19+ filecoin_signer_error_free ( error) ;
You can’t perform that action at this time.
0 commit comments