-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #6 from libraries/sol-impl
Implement ETH and SOL lock
- Loading branch information
Showing
26 changed files
with
1,272 additions
and
100 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,3 @@ | ||
3d659b15f2aad5f9350f55ce471806c6d6ad4f51a555a82b7918e9d88f84f04a build/release/ccc-btc-lock | ||
4ae08bd7ed954997dcbca5ff88700bf7f949b1080c2bd1cb024f15c8b0436396 build/release/ccc-eth-lock | ||
66bbb7041a10a0b2a2fd51ae2aa9394e9f7ee6e8b2b32dd5d3e4d37c0d4a64b8 build/release/ccc-sol-lock |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
/build | ||
/target |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
[package] | ||
name = "ccc-eth-lock" | ||
version = "0.1.0" | ||
edition = "2021" | ||
|
||
[dependencies] | ||
ckb-std = "0.15" | ||
ckb-lock-helper = { path = "../../crates/ckb-lock-helper" } | ||
hex = { version = "0.4", default-features = false, features = ["alloc"] } | ||
k256 = { version = "=0.13.1", default-features = false, features = ["arithmetic", "ecdsa", "alloc"] } | ||
sha3 = { version = "0.10.8", default-features = false } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
# We cannot use $(shell pwd), which will return unix path format on Windows, | ||
# making it hard to use. | ||
cur_dir = $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) | ||
|
||
TOP := $(cur_dir) | ||
# RUSTFLAGS that are likely to be tweaked by developers. For example, | ||
# while we enable debug logs by default here, some might want to strip them | ||
# for minimal code size / consumed cycles. | ||
CUSTOM_RUSTFLAGS := --cfg debug_assertions | ||
# RUSTFLAGS that are less likely to be tweaked by developers. Most likely | ||
# one would want to keep the default values here. | ||
FULL_RUSTFLAGS := -C target-feature=+zba,+zbb,+zbc,+zbs $(CUSTOM_RUSTFLAGS) | ||
# Additional cargo args to append here. For example, one can use | ||
# make test CARGO_ARGS="-- --nocapture" so as to inspect data emitted to | ||
# stdout in unit tests | ||
CARGO_ARGS := | ||
MODE := release | ||
# Tweak this to change the clang version to use for building C code. By default | ||
# we use a bash script with somes heuristics to find clang in current system. | ||
CLANG := $(shell $(TOP)/scripts/find_clang) | ||
AR := $(subst clang,llvm-ar,$(CLANG)) | ||
# When this is set to some value, the generated binaries will be copied over | ||
BUILD_DIR := | ||
# Generated binaries to copy. By convention, a Rust crate's directory name will | ||
# likely match the crate name, which is also the name of the final binary. | ||
# However if this is not the case, you can tweak this variable. As the name hints, | ||
# more than one binary is supported here. | ||
BINARIES := $(notdir $(shell pwd)) | ||
|
||
ifeq (release,$(MODE)) | ||
MODE_ARGS := --release | ||
endif | ||
|
||
default: build test | ||
|
||
build: | ||
RUSTFLAGS="$(FULL_RUSTFLAGS)" TARGET_CC="$(CLANG)" TARGET_AR="$(AR)" \ | ||
cargo build --target=riscv64imac-unknown-none-elf $(MODE_ARGS) $(CARGO_ARGS) | ||
@set -eu; \ | ||
if [ "x$(BUILD_DIR)" != "x" ]; then \ | ||
for binary in $(BINARIES); do \ | ||
echo "Copying binary $$binary to build directory"; \ | ||
cp $(TOP)/target/riscv64imac-unknown-none-elf/$(MODE)/$$binary $(TOP)/$(BUILD_DIR); \ | ||
done \ | ||
fi | ||
|
||
# test, check, clippy and fmt here are provided for completeness, | ||
# there is nothing wrong invoking cargo directly instead of make. | ||
test: | ||
cargo test $(CARGO_ARGS) | ||
|
||
check: | ||
cargo check $(CARGO_ARGS) | ||
|
||
clippy: | ||
cargo clippy $(CARGO_ARGS) | ||
|
||
fmt: | ||
cargo fmt $(CARGO_ARGS) | ||
|
||
# Arbitrary cargo command is supported here. For example: | ||
# | ||
# make cargo CARGO_CMD=expand CARGO_ARGS="--ugly" | ||
# | ||
# Invokes: | ||
# cargo expand --ugly | ||
CARGO_CMD := | ||
cargo: | ||
cargo $(CARGO_CMD) $(CARGO_ARGS) | ||
|
||
clean: | ||
cargo clean | ||
|
||
prepare: | ||
rustup target add riscv64imac-unknown-none-elf | ||
|
||
.PHONY: build test check clippy fmt cargo clean prepare |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# ccc-eth-lock | ||
|
||
CCC ETH lock implementation. See [specification](../../docs/eth.md) for more information. |
Oops, something went wrong.