Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
8a30c53
Docs: Add Venachain support to SUPPORTED_LIST.md
zzqAlex Apr 11, 2022
fceb235
feat(Venachain):Add Venachain support to main Makefile
zzqAlex Apr 11, 2022
d97dedb
feat(venachain):Add venachain protocolapi head file
zzqAlex Apr 11, 2022
6865ff9
feat(venachain):add api_venachain support
zzqAlex Apr 11, 2022
4d2ef3a
feat(venachain):Add api_venachain.c for wallet
zzqAlex Apr 11, 2022
e71d483
feat(venachain):Add venachain support in boatiotsdk.h
zzqAlex Apr 11, 2022
55c51e9
feat(venachain):Add venachain support in boatprotocols.h
zzqAlex Apr 11, 2022
e180802
feat(venachain):Add venachain support in sdk/protocol/common
zzqAlex Apr 11, 2022
141e1e5
feat(venachain):Add venachain support in sdk/protocol
zzqAlex Apr 11, 2022
7867069
feat(venachain):modify venachain support in api_venachain.c
zzqAlex Apr 12, 2022
7adce00
feat(venachain):modify venachain detail in api_venachain.h
zzqAlex Apr 12, 2022
408303e
feat(venachain):Add boatvenachain.c for Venachain
zzqAlex Apr 12, 2022
7be4f8b
feat(venachain):Add boatvenachain.h for Venachain
zzqAlex Apr 12, 2022
81797d6
feat(venachain):Add CMakeLists.txt for Venachain
zzqAlex Apr 12, 2022
8ee6370
feat(venachain):Add Makefile for Venachain
zzqAlex Apr 12, 2022
c4f6417
feat(venachain):modify sdk/protocol/boatvenachain/Makefile target
zzqAlex Apr 12, 2022
f274b3d
feat(venachain):adapt build target for sdk/protocol/boatvenachain
zzqAlex Apr 12, 2022
1a34f8b
feat(venachain):Adapt API name for venachain
zzqAlex Apr 12, 2022
89cb4ac
feat(venachain):adapt api define for veanchain
zzqAlex Apr 12, 2022
19edce6
feat(venachain):Comment out the processing of txtype in rlp encoding
zzqAlex Apr 12, 2022
940cc7c
feat(venachain):comment out txtype_rlp_object
zzqAlex Apr 12, 2022
708ead1
doc(venachain):Add venachain demo detail in readme
zzqAlex Apr 13, 2022
df7de35
feat(venachain):Add venachain demo CMakeLists.text
zzqAlex Apr 13, 2022
959e699
feat(venachain):Add solidity contract makefile for venachain
zzqAlex Apr 13, 2022
76d5d4e
feat(venachain):Add contract CMakeLists.txt for venachain
zzqAlex Apr 13, 2022
ca849ed
feat(venachain):Add Makefile for demo_contract
zzqAlex Apr 13, 2022
7328ef6
feat(venachain):Add demo c source file
zzqAlex Apr 13, 2022
1566321
feat(venachain):Add demo main Makefile
zzqAlex Apr 13, 2022
c46cffe
feat(venachain):Modify demo main Makefile to adapt demo_venachain
zzqAlex Apr 13, 2022
5a28c2f
feat(venachain):Add Makefile for demo_venachain
zzqAlex Apr 13, 2022
0fedac7
feat(venachain):modify demo c file
zzqAlex Apr 13, 2022
9e419f4
feat(venachain):Add venachain solidity2c python file
zzqAlex Apr 13, 2022
22a2b31
feat(venachain):modify solidity contract Makefile
zzqAlex Apr 13, 2022
ae7ba7d
feat(venachain):modify venachain solidity2c python file
zzqAlex Apr 13, 2022
6c0659a
feat(venachain):adapt third-party Makefile for venachain
zzqAlex Apr 13, 2022
c732dab
feat(venachain):Add BOAT_PROTOCOL_VENACHAIN for protocolType
zzqAlex Apr 13, 2022
9e7be3f
feat(venachain):Add api_venachain source file to wallet Makefile
zzqAlex Apr 14, 2022
ad0da77
feat(venachain):Add venachain apapted in boatwallet.c
zzqAlex Apr 14, 2022
1c47f66
feat(venachain):just for local debug
zzqAlex Apr 14, 2022
390edf2
feat(venachain): Ignore the use of txtype
zzqAlex Apr 14, 2022
b18b585
feat(venachain):modify protocol makefile
zzqAlex Apr 14, 2022
0b5335a
feat(venachain):Add venachain object location
zzqAlex Apr 14, 2022
462a58f
feat(venachain):just for local debug the venachain
zzqAlex Apr 14, 2022
080fb69
feat(venachain):adapt some api name
zzqAlex Apr 15, 2022
59fc33d
feat(venachain):modify some api name
zzqAlex Apr 15, 2022
0623e23
feat(venachain):modify nodesResult pram name
zzqAlex Apr 15, 2022
f36113e
feat(venachain):union some pram name
zzqAlex Apr 15, 2022
6d63d24
feat(venachain):rename web3_nodeInfo and nodesResult struct name
zzqAlex Apr 15, 2022
e3aae58
feat(venachain):modify demo,include contract address,node url,and so on
zzqAlex Apr 15, 2022
3bb645f
feat(venachain):Add venachain demo contract abi file
zzqAlex Apr 15, 2022
caff661
feat(venachain):Add WASM contract Makefile
zzqAlex Apr 15, 2022
6b0f78d
feat(venachain):Add WASM contract cpp file
zzqAlex Apr 15, 2022
98272d5
feat(venachain):Add sol contract json file
zzqAlex Apr 15, 2022
85dd58b
feat(venachain):Add WASM2c python file
zzqAlex Apr 15, 2022
4cb3011
feat(venachain):modify Wasm contract file name
zzqAlex Apr 15, 2022
248e977
feat(venachain):take out txtype from WASM2c python file
zzqAlex Apr 15, 2022
2ade4e7
feat(venachain):change abi file name
zzqAlex Apr 15, 2022
e3d9763
feat(venachain):Restore chain support options for main Makefile
zzqAlex Apr 18, 2022
6492f1b
feat(venachain):delete Set txtype in Transfer
zzqAlex Apr 19, 2022
ba8764a
feat(venachain):Add WASM contract demo info
zzqAlex Apr 19, 2022
6a85691
feat(venachain):annotate useless Nodes find api
zzqAlex Apr 19, 2022
9b8bc2d
feat(venachain):annotate node info apis
zzqAlex Apr 19, 2022
0ffdcd5
feat(venachain):annotate useless functions
zzqAlex Apr 19, 2022
da2c9da
feat(venachain):annotate useless structs
zzqAlex Apr 19, 2022
25ca06f
feat(venachain):build WASM demo
zzqAlex Apr 19, 2022
6baaf0c
feat(venachain):annotate useless variable
zzqAlex Apr 19, 2022
ce168e3
feat(venachain):delete node find functions
zzqAlex Apr 19, 2022
dd74e8e
feat(veanchain):delete useless funs
zzqAlex Apr 19, 2022
6f9adc6
feat(venachain):delete useless code
zzqAlex Apr 19, 2022
cab2660
feat(venachain):delete useless variable define
zzqAlex Apr 19, 2022
83fa21e
feat(venachian):Revalidate the sol demo
zzqAlex Apr 19, 2022
f982961
feat(venachain):Revalidate the sol demo
zzqAlex Apr 19, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@ BOAT_PROTOCOL_USE_HLFABRIC ?= 1
BOAT_PROTOCOL_USE_HWBCS ?= 1
BOAT_PROTOCOL_USE_CHAINMAKER ?= 1
BOAT_DISCOVERY_PEER_QUERY ?= 1
BOAT_PROTOCOL_USE_VENACHAIN ?= 1

# Chain config check
ifeq ($(BOAT_PROTOCOL_USE_ETHEREUM)_$(BOAT_PROTOCOL_USE_PLATON)_$(BOAT_PROTOCOL_USE_PLATONE)_$(BOAT_PROTOCOL_USE_FISCOBCOS)_$(BOAT_PROTOCOL_USE_HLFABRIC)_$(BOAT_PROTOCOL_USE_HWBCS)_$(BOAT_PROTOCOL_USE_CHAINMAKER), 0_0_0_0_0_0_0)
ifeq ($(BOAT_PROTOCOL_USE_ETHEREUM)_$(BOAT_PROTOCOL_USE_PLATON)_$(BOAT_PROTOCOL_USE_PLATONE)_$(BOAT_PROTOCOL_USE_FISCOBCOS)_$(BOAT_PROTOCOL_USE_HLFABRIC)_$(BOAT_PROTOCOL_USE_HWBCS)_$(BOAT_PROTOCOL_USE_CHAINMAKER)_$(BOAT_PROTOCOL_USE_VENACHAIN), 0_0_0_0_0_0_0)
$(error Select at least one chain)
endif
ifeq ($(BOAT_PROTOCOL_USE_ETHEREUM)_$(BOAT_PROTOCOL_USE_FISCOBCOS), 0_1)
Expand All @@ -31,6 +32,9 @@ endif
ifeq ($(BOAT_PROTOCOL_USE_HLFABRIC)_$(BOAT_PROTOCOL_USE_HWBCS), 0_1)
$(error HWBCS depends on FABRIC, set 'BOAT_PROTOCOL_USE_HLFABRIC' to 1 if enable HWBCS)
endif
ifeq ($(BOAT_PROTOCOL_USE_ETHEREUM)_$(BOAT_PROTOCOL_USE_VENACHAIN), 0_1)
$(error VENACHAIN depends on ETHEREUM, set 'BOAT_PROTOCOL_USE_ETHEREUM' to 1 if enable VENACHAIN)
endif


# Set parameter to scripts
Expand All @@ -41,7 +45,8 @@ SCRIPTS_PARAM += "BOAT_PROTOCOL_USE_ETHEREUM=$(BOAT_PROTOCOL_USE_ETHEREUM)" \
"BOAT_PROTOCOL_USE_HLFABRIC=$(BOAT_PROTOCOL_USE_HLFABRIC)" \
"BOAT_PROTOCOL_USE_HWBCS=$(BOAT_PROTOCOL_USE_HWBCS)" \
"BOAT_PROTOCOL_USE_CHAINMAKER=$(BOAT_PROTOCOL_USE_CHAINMAKER)" \
"BOAT_DISCOVERY_PEER_QUERY=$(BOAT_DISCOVERY_PEER_QUERY)"
"BOAT_DISCOVERY_PEER_QUERY=$(BOAT_DISCOVERY_PEER_QUERY)" \
"BOAT_PROTOCOL_USE_VENACHAIN=$(BOAT_PROTOCOL_USE_VENACHAIN)"


# Platform target
Expand Down Expand Up @@ -100,6 +105,7 @@ BOAT_INCLUDE := -I$(BOAT_BASE_DIR)/include \
-I$(BOAT_SDK_DIR)/protocol/boatethereum \
-I$(BOAT_SDK_DIR)/protocol/boatplaton \
-I$(BOAT_SDK_DIR)/protocol/boatplatone \
-I$(BOAT_SDK_DIR)/protocol/boatvenachain \
-I$(BOAT_SDK_DIR)/protocol/boatfiscobcos \
-I$(BOAT_SDK_DIR)/third-party/nghttp2/include \
-I$(BOAT_SDK_DIR)/third-party/protobuf-c/include \
Expand Down Expand Up @@ -224,6 +230,7 @@ export BOAT_PROTOCOL_USE_FISCOBCOS
export BOAT_PROTOCOL_USE_HLFABRIC
export BOAT_PROTOCOL_USE_HWBCS
export BOAT_PROTOCOL_USE_CHAINMAKER
export BOAT_PROTOCOL_USE_VENACHAIN
export BOAT_DISCOVERY_PEER_QUERY
export BOAT_USE_DEFAULT_CJSON

Expand Down
2 changes: 2 additions & 0 deletions SUPPORTED_LIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
+ Hyperledger Fabric
+ Huawei BCS (华为链)
+ Chainmaker
+ Venachain

### Blockchain Official Websites
+ [Ethereum](https://ethereum.org/)
Expand All @@ -20,6 +21,7 @@
+ [Huawei BCS](https://www.huaweicloud.com/product/bcs)
+ [ChainMaker](https://chainmaker.org.cn/)
+ [ChainMaker Docs](https://docs.chainmaker.org.cn/)
+ [Venachain Docs](https://venachain-docs.readthedocs.io/zh/latest/)

# Supported Module List

Expand Down
10 changes: 8 additions & 2 deletions demo/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
# Generate sub-directory list
OBJECTS_DIR = $(BOAT_BUILD_DIR)/demo

.PHONY: all demo_ethereum demo_platon demo_platone demo_fiscobcos demo_fabric demo_hw_bcs demo_chainmaker
all: $(OBJECTS_DIR) demo_ethereum demo_platon demo_platone demo_fiscobcos demo_fabric demo_hw_bcs demo_chainmaker
.PHONY: all demo_ethereum demo_platon demo_platone demo_fiscobcos demo_fabric demo_hw_bcs demo_chainmaker demo_venachain
all: $(OBJECTS_DIR) demo_ethereum demo_platon demo_platone demo_fiscobcos demo_fabric demo_hw_bcs demo_chainmaker demo_venachain

demo_ethereum:
ifeq ($(BOAT_PROTOCOL_USE_ETHEREUM), 1)
Expand Down Expand Up @@ -41,6 +41,11 @@ ifeq ($(BOAT_PROTOCOL_USE_CHAINMAKER), 1)
make -C $(BOAT_BASE_DIR)/demo/demo_chainmaker all
endif

demo_venachain:
ifeq ($(BOAT_PROTOCOL_USE_VENACHAIN), 1)
make -C $(BOAT_BASE_DIR)/demo/demo_venachain all
endif

$(OBJECTS_DIR):
$(BOAT_MKDIR) -p $(OBJECTS_DIR)

Expand All @@ -52,4 +57,5 @@ clean:
make -C $(BOAT_BASE_DIR)/demo/demo_fabric clean
make -C $(BOAT_BASE_DIR)/demo/demo_hw_bcs clean
make -C $(BOAT_BASE_DIR)/demo/demo_chainmaker clean
make -C $(BOAT_BASE_DIR)/demo/demo_venachain clean
-$(BOAT_RM) $(BOAT_BUILD_DIR)/demo
12 changes: 9 additions & 3 deletions demo/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
### 编译和运行Demo
#### 准备
SDK提供基于以太坊、PlatON、PlatONE、FISCO-BCOS、Hyperledger Fabric和HW-BCS的Demo。在运行这些Demo之前,需要首先安装相应的区块链节点软件(或者有已知节点),并部署Demo所需的智能合约。
SDK提供基于以太坊、PlatON、PlatONE、Venachain、FISCO-BCOS、Hyperledger Fabric和HW-BCS的Demo。在运行这些Demo之前,需要首先安装相应的区块链节点软件(或者有已知节点),并部署Demo所需的智能合约。

Demo所使用的智能合约及其ABI JSON文件放置在:

Expand All @@ -21,6 +21,9 @@ PlatON源码及工具可以访问该网站:https://platon.network/
在运行PlatONE的Demo之前,需要安装PlatONE节点,以及智能合约编译和部署工具。
PlatONE源码及工具可以访问该网站:https://platone.wxblockchain.com

在运行Venachain的Demo之前,需要安装Venachain节点,以及智能合约编译和部署工具。
Venachain源码及工具可以访问该网站:https://github.com/Venachain/Venachain

在运行FISCO-BCOS的Demo之前,需要安装FISCO-BCOS节点和合约部署。
FISCO-BCOS源码及安装部署步骤可以访问该网站:https://fisco-bcos-documentation.readthedocs.io

Expand All @@ -38,18 +41,21 @@ FISCO-BCOS源码及安装部署步骤可以访问该网站:https://fisco-bcos-
|\<SDKRoot\>/demo/demo_fabric/demo_fabric_abac.c |FABRIC合约演示用例 |
|\<SDKRoot\>/demo/demo_hw_bcs/demo_hw_bcs.c |HW-BCS合约演示用例 |
|\<SDKRoot\>/demo/demo_chainmaker/demo_chainmaker.c |CHAINMAKER合约演示用例 |
|\<SDKRoot\>/demo/demo_venachain/demo_venachain_mycontract.c |Venachain合约演示用例 |

编译Demo之前,需要修改Demo的C代码中以下部分:
- 对于ETHEREUM、PLATON、FISCO-BCOS、PLATONE:
- 对于ETHEREUM、PLATON、FISCO-BCOS、PLATONE、Venachain:
1. 搜索`demoUrl`,将节点URL(含端口)填写为实际部署的节点或模拟器的IP地址和RPC端口
2. 如果demo需使用原生私钥, 则搜索`native_demoKey`,并将客户端私钥设置为:
- 对于ETHEREUM,设置为ganache生成的任意一个账户的私钥
- 对于PlatON,无需修改Demo中的私钥
- 对于PlatONE,无需修改Demo中的私钥
- 对于Venachain,无需修改Demo中的私钥
- 对于FISCO-BCOS,设置为<FISCO-BCOS_ROOT>/console/accounts下私钥对应的原生格式私钥
3. 如果demo需使用原生私钥, 则搜索`pkcs_demoKey`,并将客户端私钥设置为:
- 对于以太坊,设置为ganache生成的任意一个账户的私钥对应的PKCS格式私钥
- 对于PlatONE,无需修改Demo中的私钥
- 对于Venachain,无需修改Demo中的私钥
- 对于FISCO-BCOS,设置为<FISCO-BCOS_ROOT>/console/accounts下私钥
4. 搜索`demoRecipientAddress`,修改为Demo合约的部署地址。
- 对于FABRIC:
Expand All @@ -76,7 +82,7 @@ FISCO-BCOS源码及安装部署步骤可以访问该网站:https://fisco-bcos-
```
$make demo
```
生成的Demo程序分别位于\<SDKRoot\>/build/demo/demo_\<protocol\>/<demo_name>路径下,< protocol>可以为`ethereum` `platon` `fisco-bcos` `platone` `fabric` `hwbcs`。
生成的Demo程序分别位于\<SDKRoot\>/build/demo/demo_\<protocol\>/<demo_name>路径下,< protocol>可以为`ethereum` `platon` `fisco-bcos` `platone` `fabric` `hwbcs` `venachain`

### 编译中的常见问题
1. 编译中提示类似“Makefile: 120: *** 缺失分隔符。 停止”的信息。
Expand Down
85 changes: 85 additions & 0 deletions demo/demo_venachain/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@



set(PLATONE_DEMO_SRC demo_platone_mycontract.c)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build/demo/demo_platone/runtime)

if(BOAT_PYTHON_EXECUTABLE)
execute_process(COMMAND ${BOAT_PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/tools/platoneWASM2c.py ${PROJECT_SOURCE_DIR}/demo/demo_platone/demo_contract/WASM/my_contract.cpp.abi.json
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/demo/demo_platone/demo_contract/Solidity
RESULT_VARIABLE result)
if(${result} EQUAL 1)
message(FATAL_ERROR "run python gen.py boatconfig.h error")
endif()
else()
message(FATAL_ERROR "not fund python3, please install python3")
endif()


include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${PROJECT_SOURCE_DIR}/vendor/platform/include)
include_directories(${PROJECT_SOURCE_DIR}/demo/demo_platone/demo_contract/Solidity)
add_subdirectory(demo_contract/Solidity)


add_executable(demo_platone_mycontract_onetime_internalGen ${PLATONE_DEMO_SRC})
target_compile_options(demo_platone_mycontract_onetime_internalGen PRIVATE -DUSE_ONETIME_WALLET -DUSE_PRIKEY_FORMAT_INTERNAL_GENERATION)
target_link_libraries(demo_platone_mycontract_onetime_internalGen
boatwallet
boatvendor
platone_obj
curl)

add_executable(demo_platone_mycontract_onetime_pkcs ${PLATONE_DEMO_SRC})
target_compile_options(demo_platone_mycontract_onetime_pkcs PRIVATE -DUSE_ONETIME_WALLET -DUSE_PRIKEY_FORMAT_EXTERNAL_INJECTION_PKCS)
target_link_libraries(demo_platone_mycontract_onetime_pkcs
boatwallet
boatvendor
platone_obj
curl)

add_executable(demo_platone_mycontract_onetime_native ${PLATONE_DEMO_SRC})
target_compile_options(demo_platone_mycontract_onetime_native PRIVATE -DUSE_ONETIME_WALLET -DUSE_PRIKEY_FORMAT_EXTERNAL_INJECTION_NATIVE)
target_link_libraries(demo_platone_mycontract_onetime_native
boatwallet
boatvendor
platone_obj
curl)

add_executable(demo_platone_mycontract_create_internalGen ${PLATONE_DEMO_SRC})
target_compile_options(demo_platone_mycontract_create_internalGen PRIVATE -DUSE_CREATE_PERSIST_WALLET -DUSE_PRIKEY_FORMAT_INTERNAL_GENERATION)
target_link_libraries(demo_platone_mycontract_create_internalGen
boatwallet
boatvendor
platone_obj
curl)


add_executable(demo_platone_mycontract_create_pkcs ${PLATONE_DEMO_SRC})
target_compile_options(demo_platone_mycontract_create_pkcs PRIVATE -DUSE_CREATE_PERSIST_WALLET -DUSE_PRIKEY_FORMAT_EXTERNAL_INJECTION_PKCS)
target_link_libraries(demo_platone_mycontract_create_pkcs
boatwallet
boatvendor
platone_obj
curl)

add_executable(demo_platone_mycontract_create_native ${PLATONE_DEMO_SRC})
target_compile_options(demo_platone_mycontract_create_native PRIVATE -DUSE_CREATE_PERSIST_WALLET -DUSE_PRIKEY_FORMAT_EXTERNAL_INJECTION_NATIVE)
target_link_libraries(demo_platone_mycontract_create_native
boatwallet
boatvendor
platone_obj
curl)

add_executable(demo_platone_mycontract_load ${PLATONE_DEMO_SRC})
target_compile_options(demo_platone_mycontract_load PRIVATE -DUSE_LOAD_PERSIST_WALLET )
target_link_libraries(demo_platone_mycontract_load
boatwallet
boatvendor
platone_obj
curl)




56 changes: 56 additions & 0 deletions demo/demo_venachain/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Source and Objects

# Specify demo folder name
DEMO_FOLDER = demo_venachain

# Source and Objects
CONTRACT_SRC_DIR = $(BOAT_BASE_DIR)/demo/$(DEMO_FOLDER)/demo_contract
OBJECTS_DIR = $(BOAT_BUILD_DIR)/demo/$(DEMO_FOLDER)
CONTRACT_WASM_OBJECTS_DIR = $(BOAT_BUILD_DIR)/demo/$(DEMO_FOLDER)/demo_contract/WASM
CONTRACT_SOLIDITY_OBJECTS_DIR = $(BOAT_BUILD_DIR)/demo/$(DEMO_FOLDER)/demo_contract/Solidity
DEMO_SOURCES = $(wildcard *.c)
CONTRACT_SOURCES = $(wildcard $(CONTRACT_WASM_OBJECTS_DIR)/*.c) \
$(wildcard $(CONTRACT_SOLIDITY_OBJECTS_DIR)/*.c)
CONTRACT_WASM_INCLUDE = -I$(BOAT_BUILD_DIR)/demo/$(DEMO_FOLDER)/demo_contract/WASM
CONTRACT_SOLIDITY_INCLUDE = -I$(BOAT_BUILD_DIR)/demo/$(DEMO_FOLDER)/demo_contract/Solidity

#dependence libs
DEPENDENCE_LIBS = $(BOAT_LIB_DIR)/libboatwallet.a \
$(BOAT_LIB_DIR)/libboatvendor.a \
$(LINK_LIBS)

.PHONY: all contract_generate
all: $(OBJECTS_DIR) contract_generate
$(CC) $(BOAT_CFLAGS) $(BOAT_LFLAGS) $(CONTRACT_WASM_INCLUDE) $(CONTRACT_SOLIDITY_INCLUDE) $(CONTRACT_SOURCES) demo_venachain_mycontract.c \
-DUSE_ONETIME_WALLET -DUSE_PRIKEY_FORMAT_INTERNAL_GENERATION \
$(DEPENDENCE_LIBS) -o $(OBJECTS_DIR)/demo_venachain_mycontract_onetime_internalGen
$(CC) $(BOAT_CFLAGS) $(BOAT_LFLAGS) $(CONTRACT_WASM_INCLUDE) $(CONTRACT_SOLIDITY_INCLUDE) $(CONTRACT_SOURCES) demo_venachain_mycontract.c \
-DUSE_ONETIME_WALLET -DUSE_PRIKEY_FORMAT_EXTERNAL_INJECTION_PKCS \
$(DEPENDENCE_LIBS) -o $(OBJECTS_DIR)/demo_venachain_mycontract_onetime_pkcs
$(CC) $(BOAT_CFLAGS) $(BOAT_LFLAGS) $(CONTRACT_WASM_INCLUDE) $(CONTRACT_SOLIDITY_INCLUDE) $(CONTRACT_SOURCES) demo_venachain_mycontract.c \
-DUSE_ONETIME_WALLET -DUSE_PRIKEY_FORMAT_EXTERNAL_INJECTION_NATIVE \
$(DEPENDENCE_LIBS) -o $(OBJECTS_DIR)/demo_venachain_mycontract_onetime_native
$(CC) $(BOAT_CFLAGS) $(BOAT_LFLAGS) $(CONTRACT_WASM_INCLUDE) $(CONTRACT_SOLIDITY_INCLUDE) $(CONTRACT_SOURCES) demo_venachain_mycontract.c \
-DUSE_CREATE_PERSIST_WALLET -DUSE_PRIKEY_FORMAT_INTERNAL_GENERATION \
$(DEPENDENCE_LIBS) -o $(OBJECTS_DIR)/demo_venachain_mycontract_create_internalGen
$(CC) $(BOAT_CFLAGS) $(BOAT_LFLAGS) $(CONTRACT_WASM_INCLUDE) $(CONTRACT_SOLIDITY_INCLUDE) $(CONTRACT_SOURCES) demo_venachain_mycontract.c \
-DUSE_CREATE_PERSIST_WALLET -DUSE_PRIKEY_FORMAT_EXTERNAL_INJECTION_PKCS \
$(DEPENDENCE_LIBS) -o $(OBJECTS_DIR)/demo_venachain_mycontract_create_pkcs
$(CC) $(BOAT_CFLAGS) $(BOAT_LFLAGS) $(CONTRACT_WASM_INCLUDE) $(CONTRACT_SOLIDITY_INCLUDE) $(CONTRACT_SOURCES) demo_venachain_mycontract.c \
-DUSE_CREATE_PERSIST_WALLET -DUSE_PRIKEY_FORMAT_EXTERNAL_INJECTION_NATIVE \
$(DEPENDENCE_LIBS) -o $(OBJECTS_DIR)/demo_venachain_mycontract_create_native
$(CC) $(BOAT_CFLAGS) $(BOAT_LFLAGS) $(CONTRACT_WASM_INCLUDE) $(CONTRACT_SOLIDITY_INCLUDE) $(CONTRACT_SOURCES) demo_venachain_mycontract.c \
-DUSE_LOAD_PERSIST_WALLET \
$(DEPENDENCE_LIBS) -o $(OBJECTS_DIR)/demo_venachain_mycontract_load

contract_generate:
make -C $(CONTRACT_SRC_DIR) all

$(OBJECTS_DIR):
$(BOAT_MKDIR) -p $(OBJECTS_DIR)
$(BOAT_MKDIR) -p $(OBJECTS_DIR)/demo_contract
$(BOAT_MKDIR) -p $(OBJECTS_DIR)/demo_contract/WASM
$(BOAT_MKDIR) -p $(OBJECTS_DIR)/demo_contract/Solidity

clean:
-$(BOAT_RM) $(OBJECTS_DIR)/*
13 changes: 13 additions & 0 deletions demo/demo_venachain/demo_contract/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Auto generate C/H source files from contract ABI JSON files

all:
make -C ./Solidity all
# make -C ./WASM all

clean:
-$(BOAT_RM) $(OUTPUT_H_SOURCES)
-$(BOAT_RM) $(OUTPUT_C_SOURCES)




13 changes: 13 additions & 0 deletions demo/demo_venachain/demo_contract/Solidity/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@

file(GLOB_RECURSE FILE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.c)
add_library(platone_obj OBJECT ${FILE_SRC})


include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${PROJECT_SOURCE_DIR}/vendor/platform/include)

target_link_libraries(platone_obj)




38 changes: 38 additions & 0 deletions demo/demo_venachain/demo_contract/Solidity/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Auto generate C/H source files from contract ABI JSON files

# Specify generator script
# Specify generator script
PY = python
AUTOGEN_SCRIPT = $(BOAT_BASE_DIR)/tools/venachainSolidity2c.py

# Search all files with .json extension
ABIJSONS = $(wildcard *.json)

# Output directory for generated C/H source files
OUTPUT_SOURCES_DIR = $(BOAT_BUILD_DIR)/demo/demo_venachain/demo_contract/Solidity

OUTPUT_H_SOURCES = $(patsubst %.json, $(OUTPUT_SOURCES_DIR)/%.h, $(ABIJSONS))
OUTPUT_C_SOURCES = $(patsubst %.json, $(OUTPUT_SOURCES_DIR)/%.c, $(ABIJSONS))

.PHONY: all

all: $(OUTPUT_C_SOURCES) $(OUTPUT_H_SOURCES)


$(OBJECTS_DIR):
$(BOAT_MKDIR) -p $(OBJECTS_DIR)

$(OUTPUT_H_SOURCES): $(OUTPUT_SOURCES_DIR)/%.h : %.json
$(PY) $(AUTOGEN_SCRIPT) $? $(OUTPUT_SOURCES_DIR)


$(OUTPUT_C_SOURCES): $(OUTPUT_SOURCES_DIR)/%.c : %.json
$(PY) $(AUTOGEN_SCRIPT) $? $(OUTPUT_SOURCES_DIR)

clean:
-$(BOAT_RM) $(OUTPUT_H_SOURCES)
-$(BOAT_RM) $(OUTPUT_C_SOURCES)




Loading