crypto-com / defi-wallet-core-rs Goto Github PK
View Code? Open in Web Editor NEWCross-platform, cross-blockchain wallet library in Rust for DeFi Wallet and other applications.
License: Other
Cross-platform, cross-blockchain wallet library in Rust for DeFi Wallet and other applications.
License: Other
tempdir
crate has been deprecated; usetempfile
instead
Details | |
---|---|
Status | unmaintained |
Package | tempdir |
Version | 0.3.7 |
URL | rust-lang-deprecated/tempdir#46 |
Date | 2018-02-13 |
The tempdir
crate has been deprecated
and the functionality is merged into tempfile
.
See advisory page for additional details.
cosmos clients are divided into 3 categories(different port)
design the main api facade for handling different port
the gRPC server (default port: 9090),
the REST server (default port: 1317),
the Tendermint RPC endpoint (default port: 26657)
log
and env_logger
could be used.
gcc link error
add an example for chainmain
it's a dependency of CosmRS:
https://github.com/RustCrypto/elliptic-curves/tree/master/k256#%EF%B8%8F-security-warning
it's used in some production software, e.g. Hermes: https://github.com/informalsystems/ibc-rs/blob/e793e28a6da160c2439b929826580b6681397b97/relayer/Cargo.toml#L44
We could possibly investigate switching to https://github.com/rust-bitcoin/rust-secp256k1
We can investigate the use of https://rust-diplomat.github.io/book/intro.html
which supports C++, C and JS... before switching to it from CXX and wasm-bindgen, it'll probably be good to document the consequences in ADR
create basic cargo project
refer to
https://github.com/cosmos/cosmos-rust/tree/main/cosmrs
https://github.com/forbole/cosmos-rust-wallet
add multi-sig
cosmos-rust
MsgDelegate struct: https://github.com/cosmos/cosmos-rust/blob/main/cosmrs/src/staking.rs#L9
crypto.org
protocol: https://crypto.org/docs/resources/cosmos-grpc-docs.html#msgdelegate
add multi-signature tx
add api for wallet verification
whether specific address is truly belongs to the user
after that, user can fetch his NFT from server
to prevent replay attack, input should be random or given by the server.
refer to related ethereum NFT protocols
check diplotmat(rust) for c binding and check in unity3d
or other productive way to support unity3d
add basic python bindings
useful for testing bindings
there are some breaking changes:
https://github.com/mozilla/uniffi-rs/blob/main/CHANGELOG.md#v0160---2021-12-15
add NFT minting
write basic binding in C
create cronos rpc client facade (8545 port)
wrap ethermint tx broadcasting
add binding for dart
which can be used in flutter
add interface for multiple chain
chainmain
cronos
etc
signing + verification as per
https://eips.ethereum.org/EIPS/eip-4361
create cosmos rpc client facade
wrap cosmos tx broadcasting through 9090 grpc port
write an example for NFT creation, minting
in cpp example
in c++14
add NFT creation in chainmain
add ibc tx
add tx broadcast in cpp example
refer to javascript
add wallet management
should handle these key types, also can be extendible.
cosmos secp256k1
eth secp256k1
use bech32, eth address
Add automatic code generation and compilation scripts for Android, IOS, and wasm.
add cpp binding via cxx.rs
add nft api
Android build takes from 30 to 60 minutes: https://github.com/crypto-com/defi-wallet-core-rs/actions/workflows/android-build.yml
iOS build takes about 15 minutes: https://github.com/crypto-com/defi-wallet-core-rs/actions/workflows/ios-build.yml
there are currently a few obvious optimisations that could dramatically reduce this time:
cargo build...
in the whole workspace -- Android and iOS only need the defi-wallet-core-common
crate to be built... so running cargo build -p defi-wallet-core-common ...
will speed up thingsadd basic tx
sending amount with specific denom
pub fn get_default_address(&self, coin: WalletCoin) -> Result<String, HdWrapError> {
only returns index=0
add this api to wallet
pub fn get_address(&self, coin: WalletCoin,index:i32) -> Result<String, HdWrapError> {
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.