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.
The API is available on NPM. So, install it
npm install @swapynetwork/swapy-identity-api
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')
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