@nuveminc/pharos-sdk
v0.0.7
Published
<p style="text-align:center"> </span> <img src="https://img.shields.io/github/actions/workflow/status/mkpace/npm-sdk/publish.yml" /> </span> <span> <img src="https://img.shields.io/npm/l/@nuveminc/pharos-sdk" /> </span> <span>
Downloads
8
Maintainers
Readme
Polymesh Core Principles
The Polymesh network operates on a few principles which are distinct and separate from your typical public chains such as Bitcoin or Ethereum. These principles are specific to Polymesh as they are core primitives by which a security token network is able to provide an institutional grade permissioned blockchain.
Identity (uID)
Every user on the Polymesh network has a unique user Id (uID). This unique id is assigned to a user whether they are a juridical person
or a natural person
. Each of these identities can control one or more accounts on the network. Each uID
is verified by a KYC provider which guarantees and uniquely identifies that entity or individual. A KYC provider will issue attestations for the specific entity or user. These signed attestations are evidence of the KYC provider testifying to their review process.
Account (DID)
Each entity or individual can control one or more accounts on the network. Each of these accounts is represented by a DID
which also maps to a single uID
.
Signing Keys
Each identity uID
has a single primary key
they use to sign transactions when acting on behalf of themselves. An identity can also posess multiple secondary keys (signing keys
) which allow the user (uID
) to act on behalf of another entity or individual.
Each of these keys (primary or secondary) can be one of two types:
simple private
key: based on a seed or mnemonic and is sufficient for an individual.mulit-signature
key: that is based onn-keys
of whichq
, a quorum, must be presented for any action to be validated.
Portfolios
Portfolios are logical containers which are managed by DID
s. These portfolios provide a way to manage assets and create permission boundaries for various assets held in portfolios.
PharosDEX SDK
The PharosDEX SDK provides the abstractions and interfaces to simplify interaction with the PharosDEX contracts on the Polymesh network. The PharosDEX assist you with developing your own web application to provide investors with an easy to use user interface for interacting with the PharosDEX.
Installation
Installing the PharosDEX SDK with pnpm:
$ pnpm i --save @pharos/sdk
Installing the PharosDEX SDK with npm:
$ npm i --save @pharos/sdk
Installing the PharosDEX SDK with yarn:
$ yarn add @pharos/sdk
Pool Deployer / Contract Deployer
Using a contract deployer account
Create a new "pool" contract for the two ticker symbols
1.1 The contract creates a venue and and portfolio ** what are these?
Deploy the contract and get the contract address
Grant permission for the contract to create a venue and portfolio
Add a name for the porfolio and initialize the portfolio contract
Liquidity Provider
Using the LP account
A Custody Portfolio (CP) is required to be created because funds can't be transferred unless the pool has custody of a portfolio that is owned by the user.
Each and every pool will need to use a CP contract to allow the transfer of funds from the user to the pool.
LP Account (grants custody) => Custody Portfolio (proxy) => Pool (is able to transfer from portfolio)
- Create a CP so the CP contract can transfer. Name portfolio
- Grant the newly created CP contract custody of the user account to allow transfer of tokens to the pool.
- Accept custody is manual as the Custody Portfolio must "accept" custody from the user account.
Adding Liquidity
Adding tokens to the liquidity pool requires transferring tokens from their Default Portfolio account (DP) to the CP then transferring those tokens from the CP to the pool.
- A user must transfer tokens from their "default" portfolio (DP) to the custody portfolio to allow the pool to gain access to those tokens. Recall that the pool contract requires access (granted permission) to access the Custody Portfolio contract (CP)