Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update and add README.md where needed for v1.0.0 release #166

Merged
merged 1 commit into from
Mar 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
25 changes: 14 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,20 @@ This is the list of currently supported Account types. For each of them you can:

- Retrieve an account from a private key or mnemonic (or generate one on the fly).
- Sign and send messages on the Aleph Network
- Some allow you to retrieve an account from a **browser based** wallet (ex: Metamask), or from a **Ledger** wallet.

On top of that some accounts allow you to **encrypt** messages, retrieve an account from a **browser based** wallet (ex: Metamask), or from a **Ledger** wallet.
[Previous versions](https://npmjs.com/package/aleph-sdk-ts) of the Typescript SDK allowed you to **encrypt** messages.
This has been

| Chain | Encryption | Wallet | Ledger |
| --------- | ------------------ | ------------------ | ------------------ |
| Avalanche | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Cosmos | :x: | :x: | :x: |
| Ethereum | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| NULS2 | :heavy_check_mark: | :x: | :x: |
| Solana | :x: | :heavy_check_mark: | :x: |
| Substrate | :heavy_check_mark: | :x: | :x: |
| Tezos | :x: | :heavy_check_mark: | :x: |
| Chain | Encryption | Browser Wallet | Ledger |
|----------------------|------------|--------------------| ------------------ |
| Avalanche | :x: | :heavy_check_mark: | :x: |
| Cosmos | :x: | :heavy_check_mark: | :x: |
| Ethereum | :x: | :heavy_check_mark: | :heavy_check_mark: |
| NULS2 | :x: | :x: | :x: |
| Solana | :x: | :heavy_check_mark: | :x: |
| Substrate (Polkadot) | :x: | :heavy_check_mark: | :x: |
| Tezos | :x: | :heavy_check_mark: | :x: |

## Running from source

Expand All @@ -60,7 +62,8 @@ This SDK is tested and works, with the following Node.js versions:
| -- | -- |
| v14.x | :heavy_check_mark: **Full working support** |
| v16.x | :heavy_check_mark: **Full working support** |
| v18.x (**LTS**) | :heavy_multiplication_x: Some feature may not work (see notes) |
| v18.x | :heavy_multiplication_x: Some feature may not work (see notes) |
| v20.x (**LTS**)

\* Due to changes in OpenSSL in Node v18, some chains helper may not work. If you encounter bugs using Node v18, you might want to consider using the `--openssl-legacy-provider` feature flag while running your project.

Expand Down
10 changes: 10 additions & 0 deletions packages/account/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# @aleph-sdk/account
This package provides common interface definitions for blockchain accounts compatible with aleph.im, including abstract classes for standard and ECIES accounts, and a base provider wallet abstraction.
It is designed to be extended for specific blockchain protocols such as Ethereum and Solana.

See [@aleph-sdk/client](https://npmjs.com/package/@aleph-sdk/client) or the [offical docs](https://docs.aleph.im) as the entrypoint for developing with aleph.im.

## Features
- Abstract Account class for implementing protocol-related accounts.
- Abstract ECIESAccount class for accounts using secp256k1's curve, with encryption capabilities.
- Abstract BaseProviderWallet for interaction with browser-based providers & wallets.
9 changes: 4 additions & 5 deletions packages/account/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@aleph-sdk/account",
"version": "1.0.0-rc2",
"description": "",
"description": "Common interfaces for accounts compatible with aleph.im.",
"main": "dist/cjs/index.min.cjs",
"module": "dist/esm/index.min.mjs",
"types": "dist/index.d.ts",
Expand All @@ -14,14 +14,13 @@
"dependencies": {
"@aleph-sdk/core": "^1.0.0-rc2"
},
"peerDependencies": {
"@aleph-sdk/core": "1.0.0-rc.1"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"rollup": "rollup -c ../../rollup.config.js",
"build": "npm run rollup"
},
"author": "",
"license": "ISC"
"homepage": "https://aleph.im",
"bugs": "https://github.com/aleph-im/aleph-sdk-ts/issues",
"license": "MIT"
}
4 changes: 2 additions & 2 deletions packages/account/src/account.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ export abstract class Account {

/**
* The ECIESAccount class is used to implement protocols using secp256k1's curve.
* It extends the Account class by exposing an encryption publicKey and method
* It extends the Account class by exposing an encryption publicKey.
*
* All inherited classes of ECIESAccount must implement the encrypt methods and expose a publicKey.
* Encryption has been removed as of the v1.0.0 release but will find its way back into the SDK.
*/
export abstract class ECIESAccount extends Account {
public publicKey: string | undefined
Expand Down
13 changes: 13 additions & 0 deletions packages/avalanche/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# @aleph-sdk/avalanche
This package provides an implementation for Avalanche blockchain accounts within the Aleph.im ecosystem, enabling Avalanche account management and message signing functionalities.
It is designed to work with both X-Chain and C-Chain on the Avalanche network, providing utilities for account creation, message signing, and account importation from private keys or mnemonics.

See [@aleph-sdk/client](https://npmjs.com/package/@aleph-sdk/client) or the [offical docs](https://docs.aleph.im) as the entrypoint for developing with aleph.im.

## Features
- Support for Avalanche X-Chain and C-Chain.
- Account creation and importation using private keys and mnemonics.
- Integration with Web3 providers (e.g., Metamask) for account management.
- Message signing with Avalanche account keys.
- Utility to retrieve EVM-compatible addresses for accounts on the C-Chain.
- Verify X-Chain signatures.
11 changes: 4 additions & 7 deletions packages/avalanche/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@aleph-sdk/avalanche",
"version": "1.0.0-rc2",
"description": "",
"description": "Avalanche accounts for signing messages on aleph.im",
"main": "dist/cjs/index.min.cjs",
"module": "dist/esm/index.min.mjs",
"types": "dist/index.d.ts",
Expand All @@ -23,16 +23,13 @@
"ethers": "^5.7.2",
"sha.js": "^2.4.11"
},
"peerDependencies": {
"@aleph-sdk/account": "1.0.0-rc.1",
"@aleph-sdk/core": "1.0.0-rc.1",
"@aleph-sdk/evm": "1.0.0-rc.1"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"rollup": "rollup -c ../../rollup.config.js",
"build": "npm run rollup"
},
"author": "",
"license": "ISC"
"homepage": "https://aleph.im",
"bugs": "https://github.com/aleph-im/aleph-sdk-ts/issues",
"license": "MIT"
}
6 changes: 5 additions & 1 deletion packages/client/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ Each chain has its own package:

so that you can only install the packages and dependencies you need.

This particular client package is a wrapper arount [@aleph-sdk/message](https://npmjs.com/package/@aleph-sdk/message) and delivers a similar interface to the more developed [Python SDK](https://pypi.org/project/aleph-sdk-python/).
This particular client package is a wrapper arount [@aleph-sdk/message](https://npmjs.com/package/@aleph-sdk/message) and delivers a similar interface to the exemplary [Python SDK](https://pypi.org/project/aleph-sdk-python/).

Additional domain and DNS-related functions can be found in [@aleph-sdk/dns](https://npmjs.com/package/@aleph-sdk/dns) or in the [official docs](https://docs.aleph.im/computing/custom_domain/setup/).

Establishing [ALEPH streams to create VPS instances](https://docs.aleph.im/libraries/typescript-sdk/instances/) using Superfluid on Avalanche can be done with [@aleph-sdk/superfluid](https://npmjs.com/package/@aleph-sdk/superfluid).

## Installation

Expand Down
9 changes: 3 additions & 6 deletions packages/client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,13 @@
"@aleph-sdk/core": "^1.0.0-rc2",
"@aleph-sdk/message": "^1.0.0-rc2"
},
"peerDependencies": {
"@aleph-sdk/account": "1.0.0-rc.1",
"@aleph-sdk/core": "1.0.0-rc.1",
"@aleph-sdk/message": "1.0.0-rc.1"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"rollup": "rollup -c ../../rollup.config.js",
"build": "npm run rollup"
},
"author": "",
"license": "ISC"
"homepage": "https://aleph.im",
"bugs": "https://github.com/aleph-im/aleph-sdk-ts/issues",
"license": "MIT"
}
6 changes: 6 additions & 0 deletions packages/core/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# @aleph-sdk/core
The @aleph-sdk/core package provides essential utilities and shared constants necessary for development with the @aleph-sdk.
It features a collection of functions to aid in URL management, environment detection, and timing, alongside an enumeration of supported blockchain networks.
Designed for both Node.js and browser environments, this package is a foundational component for building blockchain applications with Aleph.

See [@aleph-sdk/client](https://npmjs.com/package/@aleph-sdk/client) or the [offical docs](https://docs.aleph.im) as the entrypoint for developing with aleph.im.
6 changes: 4 additions & 2 deletions packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@aleph-sdk/core",
"version": "1.0.0-rc2",
"description": "",
"description": "Shared utilities and constants for @aleph-sdk",
"main": "dist/cjs/index.min.cjs",
"module": "dist/esm/index.min.mjs",
"types": "dist/index.d.ts",
Expand All @@ -17,5 +17,7 @@
"build": "npm run rollup"
},
"author": "",
"license": "ISC"
"homepage": "https://aleph.im",
"bugs": "https://github.com/aleph-im/aleph-sdk-ts/issues",
"license": "MIT"
}
10 changes: 10 additions & 0 deletions packages/cosmos/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# @aleph-sdk/cosmos
This package facilitates Cosmos account management and message signing within the Aleph.im network, leveraging the Cosmos protocol. It includes functionalities for account creation, message signing, and account import using both mnemonics and private keys.

See [@aleph-sdk/client](https://npmjs.com/package/@aleph-sdk/client) or the [offical docs](https://docs.aleph.im) as the entrypoint for developing with aleph.im.

## Features
- Supports creating new Cosmos accounts with random mnemonic generation.
- Allows importing Cosmos accounts using a mnemonic or a private key.
- Integrates account signing functionality for Aleph.im messages with support for account numbers.
- Provides utilities to verify the authenticity of a signature.
10 changes: 4 additions & 6 deletions packages/cosmos/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@aleph-sdk/cosmos",
"version": "1.0.0-rc2",
"description": "",
"description": "Cosmos accounts for signing messages on aleph.im",
"main": "dist/cjs/index.min.cjs",
"module": "dist/esm/index.min.mjs",
"types": "dist/index.d.ts",
Expand All @@ -17,15 +17,13 @@
"@cosmjs/amino": "^0.32.2",
"elliptic": "^6.5.4"
},
"peerDependencies": {
"@aleph-sdk/account": "1.0.0-rc.1",
"@aleph-sdk/core": "1.0.0-rc.1"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"rollup": "rollup -c ../../rollup.config.js",
"build": "npm run rollup"
},
"author": "",
"license": "ISC"
"homepage": "https://aleph.im",
"bugs": "https://github.com/aleph-im/aleph-sdk-ts/issues",
"license": "MIT"
}
10 changes: 10 additions & 0 deletions packages/ethereum-ledger/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# @aleph-sdk/ethereum-ledger
This module enables Ethereum accounts management and message signing using a Ledger device with the Ethereum app. It's part of the @aleph-sdk, designed to work seamlessly with Ethereum blockchain for operations requiring high security like transactions signing.

See [@aleph-sdk/client](https://npmjs.com/package/@aleph-sdk/client) or the [offical docs](https://docs.aleph.im) as the entrypoint for developing with aleph.im.

## Features
- Retrieve Ethereum account details from a connected Ledger device.
- Sign messages using the Ledger device's private keys.
- Support for specific Ethereum derivation paths.
- Compatibility checks for Ledger device firmware.
10 changes: 4 additions & 6 deletions packages/ethereum-ledger/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@aleph-sdk/ethereum-ledger",
"version": "1.0.0-rc2",
"description": "",
"description": "Ledger-based Ethereum accounts for signing messages on aleph.im",
"main": "dist/cjs/index.min.cjs",
"module": "dist/esm/index.min.mjs",
"types": "dist/index.d.ts",
Expand All @@ -21,15 +21,13 @@
"@ledgerhq/hw-transport-webusb": "^6.28.3",
"semver": "^7.3.8"
},
"peerDependencies": {
"@aleph-sdk/account": "1.0.0-rc.1",
"@aleph-sdk/core": "1.0.0-rc.1"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"rollup": "rollup -c ../../rollup.config.js",
"build": "npm run rollup"
},
"author": "",
"license": "ISC"
"homepage": "https://aleph.im",
"bugs": "https://github.com/aleph-im/aleph-sdk-ts/issues",
"license": "MIT"
}
18 changes: 18 additions & 0 deletions packages/ethereum/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# @aleph-sdk/ethereum
The `@aleph-sdk/ethereum` module offers functionalities to interact with Ethereum accounts within the Aleph.im ecosystem.
It allows for the creation, import, and management of Ethereum accounts and facilitates the signing of messages in compliance with Aleph.im protocols.

See [@aleph-sdk/client](https://npmjs.com/package/@aleph-sdk/client) or the [offical docs](https://docs.aleph.im) as the entrypoint for developing with aleph.im.

## Features
- Creation and import of Ethereum accounts using mnemonics or private keys.
- Integration with Ethereum wallets and providers, such as MetaMask.
- Support for signing Aleph.im messages using Ethereum accounts.
- Compatibility with BIP39 for mnemonic generation and management.

Further features are included in the [@aleph-sdk/evm](https://npmjs.com/package/@aleph-sdk/evm) dependency, such as:

- EVM signature verification
- Get ChainID
- Switch network
- A standardized wrapper for browser-based and private-key wallets
11 changes: 4 additions & 7 deletions packages/ethereum/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@aleph-sdk/ethereum",
"version": "1.0.0-rc2",
"description": "",
"description": "Ethereum accounts for signing messages on aleph.im",
"main": "dist/cjs/index.min.cjs",
"module": "dist/esm/index.min.mjs",
"types": "dist/index.d.ts",
Expand All @@ -19,16 +19,13 @@
"eciesjs": "^0.4.6",
"ethers": "^5.7.2"
},
"peerDependencies": {
"@aleph-sdk/account": "1.0.0-rc.1",
"@aleph-sdk/core": "1.0.0-rc.1",
"@aleph-sdk/evm": "1.0.0-rc.1"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"rollup": "rollup -c ../../rollup.config.js",
"build": "npm run rollup"
},
"author": "",
"license": "ISC"
"homepage": "https://aleph.im",
"bugs": "https://github.com/aleph-im/aleph-sdk-ts/issues",
"license": "MIT"
}
10 changes: 10 additions & 0 deletions packages/evm/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# @aleph-sdk/evm
This package provides essential functionalities for Ethereum Virtual Machine (EVM)-based accounts to interact with the Aleph.im network. It includes utilities for managing blockchain network connections, signing messages, and verifying signatures using EVM-compatible wallets, such as MetaMask or custom JSON-RPC providers.

See [@aleph-sdk/client](https://npmjs.com/package/@aleph-sdk/client) or the [offical docs](https://docs.aleph.im) as the entrypoint for developing with aleph.im.

## Features
- Supports changing network RPCs dynamically, including popular networks like Ethereum Mainnet, Binance Smart Chain, Polygon, and Avalanche.
- Facilitates the signing of messages and verification of their signatures with EVM accounts.
- Provides utility functions for hexadecimal and decimal conversions, alongside network configuration data for easy RPC management.
- Warns about potential deprecation of encryption/decryption features according to the ongoing discussions in the developer community.
10 changes: 4 additions & 6 deletions packages/evm/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@aleph-sdk/evm",
"version": "1.0.0-rc2",
"description": "",
"description": "Common functions for EVM-based accounts interacting with aleph.im.",
"main": "dist/cjs/index.min.cjs",
"module": "dist/esm/index.min.mjs",
"types": "dist/index.d.ts",
Expand All @@ -18,15 +18,13 @@
"ethereumjs-util": "^7.1.5",
"ethers": "^5.7.2"
},
"peerDependencies": {
"@aleph-sdk/account": "1.0.0-rc.1",
"@aleph-sdk/core": "1.0.0-rc.1"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"rollup": "rollup -c ../../rollup.config.js",
"build": "npm run rollup"
},
"author": "",
"license": "ISC"
"homepage": "https://aleph.im",
"bugs": "https://github.com/aleph-im/aleph-sdk-ts/issues",
"license": "MIT"
}
13 changes: 13 additions & 0 deletions packages/message/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# @aleph-sdk/message
This package, part of the [aleph.im](https://aleph.im) SDK, provides a comprehensive API for creating, retrieving, updating (amending), and deleting (forgetting) messages on the aleph.im network.
It encapsulates the functionality necessary to interact with the aleph.im message protocol, streamlining blockchain and decentralized storage operations such as posting content, storing data, as well as handling instance creation.

See [@aleph-sdk/client](https://npmjs.com/package/@aleph-sdk/client) or the [offical docs](https://docs.aleph.im) as the entrypoint for developing with aleph.im.

## Features
- Query messages: Retrieve and parse all messages available on the network.
- Message posting: Create and publish messages directly to the aleph.im network.
- Message management: Amend or forget messages, providing flexibility in content management.
- Content storage: Store content in a decentralized manner, with support for both temporary and permanent data storage.
- Create programs and instances: Request compute resources on the network by posting according messages.
- Utility functions: A suite of utility functions to support message creation and signing.
Loading
Loading