Giter Club home page Giter Club logo

abstractwallets.jl's Introduction

AbstractWallets.jl

Stable Docs Latest Docs Travis Build Status Appveyor Build status Formatting

DOI

Abstractions for Digital Wallets in Julia

Installation

To install open a Julia REPL and run the following:

]add AbstractWallets

Basic API

The AbstractWallets API defines the following basic structures:

Type Description
AbstractAddress Abstraction over digital addresses.
AbstractPortfolio A container of assets with methods for evaluating their value relative to other assets.
AbstractWallet A wallet is a portfolio with a digital address to identify it.

Transactions

Transactions between digital wallets or from wallets to addresses is mediated by the AbstractTransaction type. Transactions can take the two generic forms

Form Description
AbstractSendTransaction Results in the movement of assets from one party to another.
AbstractDestroyTransaction Results in the net destruction of assets.

which can be mediated by the two generic transaction functions:

Action Constructor
send! build_send_transaction
destroy! build_destroy_transaction

To use more advanced transaction types we have the following states:

State Description
is_pending Transaction is waiting to complete.
has_executed Transaction was executed but not necessarily completed. It is at least pending.
was_completed Transaction was executed and completed.
was_cancelled Transaction was cancelled before completion.
failed Transaction failed to complete, but was not cancelled.

and the allowed actions:

Action Description
sign! Signatures on a transaction verify that it should be executed.
execute! Execution of a transaction is the attempt to perform the appropriate transfer of assets defined in the transaction.
cancel! Stop a pending transaction.
rollback! Reset a completed transaction to return the state of the associated portfolios to before the transaction occured.
cancelback! Cancel and then roll back the transaction.

Crypto-Specific API

Private Keys

For cryptocurrency wallets and other wallets protected by asymmetric-cryptography, public-private key pairs are the method with which wallets can identify themselves. To access the keys, use either the keypairs(wallet) function or the privatekey(wallet, publickey).

Deterministic Wallets

A deterministic wallet can generate new public-private key pairs from one root private key. Such wallets are represented by the AbstractDeterministicWallet type. Use rootkey, mnemonic, or seed to access the root private key, and next_keypair! or next_address! to generate the next key.


Author License GitHub Repo

abstractwallets.jl's People

Contributors

juliatagbot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.