Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

uport-registry

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

uport-registry

uPort Registry contracts and JS middleware

  • 1.3.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.2K
increased by429%
Maintainers
1
Weekly downloads
 
Created
Source

uPort Registry

Deployed Contracts

The registry has been deployed at the following locations:

  • Ropsten Testnet: 0xb9C1598e24650437a3055F7f66AC1820c419a679
  • Mainnet: 0x022f41a91cb30d6a20ffcfde3f84be6c1fa70d60

About

The uPort registry library lets you set the attributes of a uPort identity. The attributes needs to be in a JSON format. Right now we are focusing on

  • Full Name
  • Profile Picture

but we intend to support the full Schema.org Person schema. The Full Name and Profile Picture is stored in IPFS as a JSON structure that corresponds to the schema.org schema:

{
   "@context": "http://schema.org/",
   "@type": "Person",
   "name": "Christian Lundkvist",
   "image": [{"@type": "ImageObject",
             "name": "avatar",
             "contentUrl" : "/ipfs/QmUSBKeGYPmeHmLDAEHknAm5mFEvPhy2ekJc6sJwtrQ6nk"}]
}

and an IPFS hash of this structure is stored in the contract as a bytes structure.

uPort Registry Library

The uPort Registry Library allows you to set attributes of and/or view attributes of uPort identities in your Dapp. You need to set a web3 provider using uPortRegistry.setWeb3Provider in order to access the Ethereum contracts, and you need to set an Ipfs provider using uPortRegistry.setIpfsProvider to access data stored in IPFS.

Running tests

Remember to have a local IPFS node and Ethereum node running.

npm run test

Usage

To use the library, first include it in your project:

var uportRegistry = require("uport-registry");
IPFS Setup

It defaults to the Infura IPFS server but you can easily set it to a local server or use another client library using setIpfsProvider

You can change the ipfs connection details by passing a configuration object containing a

uportRegistry.setIpfsProvider({ host: '127.0.0.1', port: 5001 });

We also support a full ipfs-js-api compliant client:

const ipfsApi = require('ipfs-api');
uportRegistry.setIpfsProvider(ipfsAPI('localhost', '5001', {protocol: 'http'}));
Web3 Provider

You need to pass in a web3 provider to connect to the Ethereum blockchain

var Web3    = require('web3');
uportRegistry.setWeb3Provider(new Web3.providers.HttpProvider('https://ropsten.infura.io/uport-registry'));

Setting uportRegistry Attributes


var registryAddress = '0xb9C1598e24650437a3055F7f66AC1820c419a679'
var attributes =
{
   "@context": "http://schema.org",
   "@type": "Person",
   "name": "Christian Lundkvist",
   "image": [{"@type": "ImageObject",
             "name": "avatar",
             "contentUrl" : "/ipfs/QmUSBKeGYPmeHmLDAEHknAm5mFEvPhy2ekJc6sJwtrQ6nk"}]
}

uPortRegistry.setAttributes(registryAddress,
                            attributes,
                            {from: myAddr}
                            ).then(function ()
                            {console.log('Attributes set.')})

Getting attributes

If you have an address of the current uPort identity, you can get their associated attributes using the command uPortRegistry.getAttributes(). This command looks up the attributes and returns a JSON structure.

var registryAddress = '0xb9C1598e24650437a3055F7f66AC1820c419a679'
var uportId = '0xdb24b49d8f7e47d30498ee2a846375c3ba771d3e'

uPortRegistry.getAttributes(registryAddress,
                            uportId
                            ).then(function (attributes)
                            {console.log(attributes)})

Keywords

FAQs

Package last updated on 29 Dec 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc