@swapynetwork/swapy-identity-api

Swapy Identity API aims to ease the interaction with Swapy financial identities. The current implementation was designed to be used on browsers and it provides methods to: * Create personal and multi sig identities; * Manage identity's data on IPFS a

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
31May 2, 2018Jan 29, 2018Minified + gzip package size for @swapynetwork/swapy-identity-api in KB

Readme

Swapy Identity API

Swapy Identity API aims to ease the interaction with Swapy financial identities. The current implementation was designed to be used on browsers and it provides methods to:

  • Create personal and multi sig identities;
  • Manage identity's data on IPFS and Ethereum;
  • Forward transactions through a personal identity;
  • Create, sign and execute transactions on multi sig identities;
  • Decentralized attestation of identitiy's credentials on IPFS with QRCode for third-parties;

Check out our smart contracts and Wiki for more details around Swapy Identity Protocol.

Install

The API is available on NPM. So, install it

npm install @swapynetwork/swapy-identity-api

Usage Guide

Init the API with a first account, Ethereum http provider and network parameters as well.

import { Api } from '@swapynetwork/swapy-identity-api'
const api = new Api('<0xPrivateKey>','<ethereumHttpProvider')

Doc

  • Api
    • new Api(privateKey,httpProvider,_networkName)
    • .createPersonalIdentity(profileDataNodes, opt) : Promise.<Object, Error>
    • .getProfileData(identity, fetchData) : Promise.<Object, Error>
    • .insertProfileData(profileNodes, identity, multiSig, opt) : Promise.<Object, Error>
    • .updateProfileData(nodeLabel, data, identity, multiSig, opt) : Promise.<Object, Error>
    • .getTokenBalance(identity) : Integer
    • .sellIdentityData(identity, saleNodes, price) : String
    • .buyIdentityData(identity, seller, saleNodes, price, opt) : Object

.createPersonalIdentity(profileDataNodes, opt)

Instantiates a new personal identity

Input Type Description Default value
profileDataNodes Object[] Initial profile data []
profileDataNodes.parentLabel String Parent node label -
profileDataNodes.label String Node label -
profileDataNodes.data String Leaf content -
profileDataNodes.childrens Object[] Node childrens -
opt Object Transaction options {from: null, gas: null, gasPrice: null}
opt.from String Wallet address First account set
opt.gas Integer GAS limit 4500000
opt.gasPrice BigNumber GAS price 20 gwei
Output Description
Promise<Object, Error> A promise that resolves with the transaction object or rejects with an error

.getProfileData(identity, fetchData)

Returns the profile data of an identity

Input Type Description Default value
identity String Identity's contract address -
fetchData Boolean Returns the data value false
Output Description
Promise<Object, Error> A promise that resolves with the profile object or rejects with an error

.insertProfileData(profileNodes, identity, multiSig, opt)

Inserts nodes on the profile tree

Input Type Description Default value
profileNodes Object[] Insertions []
profileNodes.parentLabel String Parent node label -
profileNodes.label String Node label -
profileNodes.data String Leaf content -
profileNodes.childrens Object[] Node childrens -
identity String Identity's contract address -
multiSig Boolean multi sig identity false
opt Object Transaction options {from: null, gas: null, gasPrice: null}
opt.from String Wallet address First account set
opt.gas Integer GAS limit 4500000
opt.gasPrice BigNumber GAS price 20 gwei
Output Description
Promise<Object, Error> A promise that resolves with the transaction object or rejects with an error

.updateProfileData(profileNodes, identity, multiSig, opt)

Inserts nodes on the profile tree

Input Type Description Default value
nodeLabel String Node label -
data String New content -
identity String Identity's contract address -
multiSig Boolean multi sig identity false
opt Object Transaction options {from: null, gas: null, gasPrice: null}
opt.from String Wallet address First account set
opt.gas Integer GAS limit 4500000
opt.gasPrice BigNumber GAS price 20 gwei
Output Description
Promise<Object, Error> A promise that resolves with the transaction object or rejects with an error

.getTokenBalance(identity)

Returns Identity's Swapy Token balance

Input Type Description Default value
identity String Identity's contract address -
Output Description
Integer Swapy Token balance

.getTokenBalance(identity)

Returns Identity's Swapy Token balance

Input Type Description Default value
identity String Identity's contract address -
Output Description
Integer Swapy Token balance

.sellIdentityData(identity, saleNodes, price)

Generates a qrCode image that contains the sale arguments

Input Type Description Default value
identity String Identity's contract address -
saleNodes Object[] Profile Nodes to be sold -
saleNodes.label String Node label -
saleNodes.price Integer Individual node price -
price Integer General sale price -
Output Description
String QRCode image url

.buyIdentityData(identity, seller, saleNodes, price, opt)

Transfer tokens to seller's identity and retrieve the data bought

Input Type Description Default value
identity String Buyer's identity contract address -
seller String Seller's identity contract address -
saleNodes Object[] Profile Nodes to be sold -
saleNodes.label String Node label -
price Integer Sale price -
opt Object Transaction options {from: null, gas: null, gasPrice: null}
opt.from String Wallet address First account set
opt.gas Integer GAS limit 4500000
opt.gasPrice BigNumber GAS price 20 gwei
Output Description
Object Data Bought

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.