Merge pull request #5 from blockstack/develop

Develop
This commit is contained in:
Ryan Shea
2017-03-04 11:53:50 -05:00
committed by GitHub
11 changed files with 450 additions and 5 deletions

1
.gitignore vendored
View File

@@ -32,6 +32,5 @@ unused
# Folder to ignore for development with es6
lib
docs/token-files/*.json
src/testing/browser/blockstack-proofs.js

View File

@@ -1,5 +1,6 @@
# Blockstack JS
[![CircleCI](https://img.shields.io/circleci/project/blockstack/blockstack-js/master.svg)](https://circleci.com/gh/blockstack/blockstack-js/tree/master)
[![npm](https://img.shields.io/npm/l/blockstack.svg)](https://www.npmjs.com/package/blockstack)
[![npm](https://img.shields.io/npm/v/blockstack.svg)](https://www.npmjs.com/package/blockstack)
[![npm](https://img.shields.io/npm/dm/blockstack.svg)](https://www.npmjs.com/package/blockstack)

View File

@@ -0,0 +1,37 @@
[
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksifQ.eyJqdGkiOiJhMzU4MzdmNS1jOGNmLTRiYTMtYjk4ZS03OTY5YTUzZmVjNDgiLCJpYXQiOiIyMDE3LTAzLTA0VDE2OjEzOjA2Ljc5MFoiLCJleHAiOiIyMDE4LTAzLTA0VDE2OjEzOjA2Ljc5MFoiLCJzdWJqZWN0Ijp7InB1YmxpY0tleSI6IjAzZTdhNGQ3OTgzMzY5ZDMzZWQxMzAyMDg4NTk4NWQ2OGY4YjA1ZGVlNjE2OGY3NWY5ZDk3ZTFhMDcyY2RmY2RjNSJ9LCJpc3N1ZXIiOnsicHVibGljS2V5IjoiMDNlN2E0ZDc5ODMzNjlkMzNlZDEzMDIwODg1OTg1ZDY4ZjhiMDVkZWU2MTY4Zjc1ZjlkOTdlMWEwNzJjZGZjZGM1In0sImNsYWltIjp7IkBjb250ZXh0IjoiaHR0cDovL3NjaGVtYS5vcmcvIiwiQHR5cGUiOiJDcmVhdGl2ZVdvcmsiLCJuYW1lIjoiQmFsbG9vbiBEb2ciLCJjcmVhdG9yIjpbeyJAdHlwZSI6IlBlcnNvbiIsIkBpZCI6InRoZXJlYWxqZWZma29vbnMuaWQiLCJuYW1lIjoiSmVmZiBLb29ucyJ9XSwiZGF0ZUNyZWF0ZWQiOiIxOTk0LTA1LTA5VDAwOjAwOjAwLTA0MDAiLCJkYXRlUHVibGlzaGVkIjoiMjAxNS0xMi0xMFQxNDo0NDoyNi0wNTAwIn19.MF7ru91rk8IIKNEEqo9wjLHkvW3jSlcDJmeZZeOVSj9KlXApBp67q_3ke0-LzSO_YyYsUnGOplMYiNxY1XynAA",
"decodedToken": {
"header": {
"typ": "JWT",
"alg": "ES256K"
},
"payload": {
"jti": "a35837f5-c8cf-4ba3-b98e-7969a53fec48",
"iat": "2017-03-04T16:13:06.790Z",
"exp": "2018-03-04T16:13:06.790Z",
"subject": {
"publicKey": "03e7a4d7983369d33ed13020885985d68f8b05dee6168f75f9d97e1a072cdfcdc5"
},
"issuer": {
"publicKey": "03e7a4d7983369d33ed13020885985d68f8b05dee6168f75f9d97e1a072cdfcdc5"
},
"claim": {
"@context": "http://schema.org/",
"@type": "CreativeWork",
"name": "Balloon Dog",
"creator": [
{
"@type": "Person",
"@id": "therealjeffkoons.id",
"name": "Jeff Koons"
}
],
"dateCreated": "1994-05-09T00:00:00-0400",
"datePublished": "2015-12-10T14:44:26-0500"
}
},
"signature": "MF7ru91rk8IIKNEEqo9wjLHkvW3jSlcDJmeZZeOVSj9KlXApBp67q_3ke0-LzSO_YyYsUnGOplMYiNxY1XynAA"
}
}
]

View File

@@ -0,0 +1,60 @@
[
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksifQ.eyJqdGkiOiJlOWFjNzVhZi0xOGViLTRmNWQtYTViNy0zNTc5ODQ5MDk1NTQiLCJpYXQiOiIyMDE3LTAzLTA0VDE2OjEzOjA2LjczMVoiLCJleHAiOiIyMDE4LTAzLTA0VDE2OjEzOjA2LjczMVoiLCJzdWJqZWN0Ijp7InB1YmxpY0tleSI6IjAzNTRhNGI5NzExMDBkYTBjMGJlMzQ4ZmM2MmEzMDc1N2QxMTVjYjQwNDRhZGZlZDNkMzJlNDgyOThmOWJjZmQwYyJ9LCJpc3N1ZXIiOnsicHVibGljS2V5IjoiMDM1NGE0Yjk3MTEwMGRhMGMwYmUzNDhmYzYyYTMwNzU3ZDExNWNiNDA0NGFkZmVkM2QzMmU0ODI5OGY5YmNmZDBjIn0sImNsYWltIjp7IkBjb250ZXh0IjoiaHR0cDovL3NjaGVtYS5vcmcvIiwiQHR5cGUiOiJPcmdhbml6YXRpb24iLCJuYW1lIjoiR29vZ2xlIiwibGVnYWxOYW1lIjoiR29vZ2xlIEluYy4iLCJlbWFpbCI6ImhlbGxvQGdvb2dsZS5vcmciLCJhZGRyZXNzIjp7IkB0eXBlIjoiUG9zdGFsQWRkcmVzcyIsImFkZHJlc3NMb2NhbGl0eSI6Ik1vdW50YWluIFZpZXcsIENBIiwicG9zdGFsQ29kZSI6Ijk0MDQzIiwic3RyZWV0QWRkcmVzcyI6IjE2MDAgQW1waGl0aGVhdHJlIFBhcmt3YXkifSwiZW1wbG95ZWUiOlt7IkB0eXBlIjoiUGVyc29uIiwiQGlkIjoibGFycnlwYWdlLmlkIiwibmFtZSI6IkxhcnJ5IFBhZ2UifSx7IkB0eXBlIjoiUGVyc29uIiwiQGlkIjoic2VyZ2V5YnJpbi5pZCIsIm5hbWUiOiJTZXJnZXkgQnJpbiJ9XSwiaW1hZ2UiOlt7IkB0eXBlIjoiSW1hZ2VPYmplY3QiLCJuYW1lIjoibG9nbyIsImNvbnRlbnRVcmwiOiJodHRwczovL3d3dy5nb29nbGUuY29tL2ltYWdlcy9icmFuZGluZy9nb29nbGVsb2dvLzJ4L2dvb2dsZWxvZ29fY29sb3JfMjcyeDkyZHAucG5nIn1dLCJwYXJlbnRPcmdhbml6YXRpb24iOnsiQHR5cGUiOiJPcmdhbml6YXRpb24iLCJAaWQiOiJhbHBoYWJldC5pZCIsIm5hbWUiOiJBbHBoYWJldCBJbmMuIn19fQ.OAZlxaE2iaq9EAgPytM7qLtgNaIzo-Hnd7XMPRypbiy1tJuUovWRDPKWh_XAx5F87stXh9OGcP_WYP9t1k24Ag",
"decodedToken": {
"header": {
"typ": "JWT",
"alg": "ES256K"
},
"payload": {
"jti": "e9ac75af-18eb-4f5d-a5b7-357984909554",
"iat": "2017-03-04T16:13:06.731Z",
"exp": "2018-03-04T16:13:06.731Z",
"subject": {
"publicKey": "0354a4b971100da0c0be348fc62a30757d115cb4044adfed3d32e48298f9bcfd0c"
},
"issuer": {
"publicKey": "0354a4b971100da0c0be348fc62a30757d115cb4044adfed3d32e48298f9bcfd0c"
},
"claim": {
"@context": "http://schema.org/",
"@type": "Organization",
"name": "Google",
"legalName": "Google Inc.",
"email": "hello@google.org",
"address": {
"@type": "PostalAddress",
"addressLocality": "Mountain View, CA",
"postalCode": "94043",
"streetAddress": "1600 Amphitheatre Parkway"
},
"employee": [
{
"@type": "Person",
"@id": "larrypage.id",
"name": "Larry Page"
},
{
"@type": "Person",
"@id": "sergeybrin.id",
"name": "Sergey Brin"
}
],
"image": [
{
"@type": "ImageObject",
"name": "logo",
"contentUrl": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"
}
],
"parentOrganization": {
"@type": "Organization",
"@id": "alphabet.id",
"name": "Alphabet Inc."
}
}
},
"signature": "OAZlxaE2iaq9EAgPytM7qLtgNaIzo-Hnd7XMPRypbiy1tJuUovWRDPKWh_XAx5F87stXh9OGcP_WYP9t1k24Ag"
}
}
]

View File

@@ -0,0 +1,106 @@
[
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksifQ.eyJqdGkiOiJlYzZjMDQxOS04MDFlLTQzMDgtYWU5NS1iY2FlMGI1OGUwYWIiLCJpYXQiOiIyMDE3LTAzLTA0VDE2OjEzOjA2Ljg1NloiLCJleHAiOiIyMDE4LTAzLTA0VDE2OjEzOjA2Ljg1NloiLCJzdWJqZWN0Ijp7InB1YmxpY0tleSI6IjAyMzVkY2I0NGMwYzZmYjg3MGZmOWM2MDI5NTAwYzBlZWQ1NDFlYWEwNGQ3ZGQxZjk5YTUxYTE1MjlhNmUxYjljYiJ9LCJpc3N1ZXIiOnsicHVibGljS2V5IjoiMDIzNWRjYjQ0YzBjNmZiODcwZmY5YzYwMjk1MDBjMGVlZDU0MWVhYTA0ZDdkZDFmOTlhNTFhMTUyOWE2ZTFiOWNiIn0sImNsYWltIjp7IkB0eXBlIjoiUGVyc29uIiwiQGNvbnRleHQiOiJodHRwOi8vc2NoZW1hLm9yZy8iLCJuYW1lIjoiTmF2YWwgUmF2aWthbnQiLCJnaXZlbk5hbWUiOiJOYXZhbCIsImZhbWlseU5hbWUiOiJSYXZpa2FudCIsImRlc2NyaXB0aW9uIjoiQ28tZm91bmRlciBvZiBBbmdlbExpc3QiLCJpbWFnZSI6W3siQHR5cGUiOiJJbWFnZU9iamVjdCIsIm5hbWUiOiJhdmF0YXIiLCJjb250ZW50VXJsIjoiaHR0cHM6Ly9wYnMudHdpbWcuY29tL3Byb2ZpbGVfaW1hZ2VzLzM2OTY2MTczMjgvNjY3ODc0YzU5MzY3NjRkOTNkNTZjY2M3NmEyYmNjMTMuanBlZyJ9LHsiQHR5cGUiOiJJbWFnZU9iamVjdCIsIm5hbWUiOiJiYWNrZ3JvdW5kIiwiY29udGVudFVybCI6Imh0dHBzOi8vcGJzLnR3aW1nLmNvbS9wcm9maWxlX2Jhbm5lcnMvNzQ1MjczLzEzNTU3MDU3Nzcvd2ViX3JldGluYSJ9XSwid2Vic2l0ZSI6W3siQHR5cGUiOiJXZWJTaXRlIiwidXJsIjoiYW5nZWwuY28ifV0sImFjY291bnQiOlt7IkB0eXBlIjoiQWNjb3VudCIsInNlcnZpY2UiOiJmYWNlYm9vayIsImlkZW50aWZpZXIiOiJuYXZhbHIiLCJwcm9vZlR5cGUiOiJodHRwIiwicHJvb2ZVcmwiOiJodHRwczovL2ZhY2Vib29rLmNvbS9uYXZhbHIvcG9zdHMvMTAxNTIxOTA3MzQwNzcyNjEifSx7IkB0eXBlIjoiQWNjb3VudCIsInNlcnZpY2UiOiJ0d2l0dGVyIiwiaWRlbnRpZmllciI6Im5hdmFsIiwicHJvb2ZUeXBlIjoiaHR0cCIsInByb29mVXJsIjoiaHR0cHM6Ly90d2l0dGVyLmNvbS9uYXZhbC9zdGF0dXMvNDg2NjA5MjY2MjEyNDk5NDU2In0seyJAdHlwZSI6IkFjY291bnQiLCJzZXJ2aWNlIjoiZ2l0aHViIiwiaWRlbnRpZmllciI6Im5hdmFsciIsInByb29mVHlwZSI6Imh0dHAiLCJwcm9vZlVybCI6Imh0dHBzOi8vZ2lzdC5naXRodWIuY29tL25hdmFsci9mMzFhNzQwNTRmODU5ZWMwYWM2YSJ9LHsiQHR5cGUiOiJBY2NvdW50Iiwic2VydmljZSI6ImJpdGNvaW4iLCJyb2xlIjoicGF5bWVudCIsImlkZW50aWZpZXIiOiIxOTE5VXJoWXloczQ3MXBzOENGY0ozRFJwV1NkYThxdFNrIiwicHJvb2ZUeXBlIjoic2lnbmF0dXJlIiwicHJvb2ZNZXNzYWdlIjoiVmVyaWZ5aW5nIHRoYXQgK25hdmFsIGlzIG15IGJsb2NrY2hhaW4gSUQuIiwicHJvb2ZTaWduYXR1cmUiOiJJQ3VSQStEcTVEbjhBaVk5UCttY0x6R3lpYlBnRzBlYzlDcGh0TWs1MTJ1UGRCNWVBbmNEU0hoUVpZLzdreWN2bDZQTEZFdVIrajNPTS9LMlZleTErRVU9In1dLCJ3b3Jrc0ZvciI6W3siQHR5cGUiOiJPcmdhbml6YXRpb24iLCJAaWQiOiJhbmdlbGxpc3QuaWQifV0sImtub3dzIjpbeyJAdHlwZSI6IlBlcnNvbiIsIkBpZCI6Im11bmVlYi5pZCJ9LHsiQHR5cGUiOiJQZXJzb24iLCJAaWQiOiJyeWFuLmlkIn1dLCJiaXJ0aERhdGUiOiIxOTczLTAxLTAxIiwidGF4SUQiOiIwMDAtMDAtMDAwMCIsImFkZHJlc3MiOnsiQHR5cGUiOiJQb3N0YWxBZGRyZXNzIiwic3RyZWV0QWRkcmVzcyI6IjE2IE1haWRlbiBMbiIsImFkZHJlc3NMb2NhbGl0eSI6IlNhbiBGcmFuY2lzY28sIENBIiwicG9zdGFsQ29kZSI6Ijk0MTA4IiwiYWRkcmVzc0NvdW50cnkiOiJVbml0ZWQgU3RhdGVzIn19fQ.jaPhSfcOGuwWBAM1--pnVcaEpt0YhQ0o7bS5C7ZWDYMZ_ws6a77mH5dkv25HSFFQEukjibtn2X4kK28nhozyNw",
"decodedToken": {
"header": {
"typ": "JWT",
"alg": "ES256K"
},
"payload": {
"jti": "ec6c0419-801e-4308-ae95-bcae0b58e0ab",
"iat": "2017-03-04T16:13:06.856Z",
"exp": "2018-03-04T16:13:06.856Z",
"subject": {
"publicKey": "0235dcb44c0c6fb870ff9c6029500c0eed541eaa04d7dd1f99a51a1529a6e1b9cb"
},
"issuer": {
"publicKey": "0235dcb44c0c6fb870ff9c6029500c0eed541eaa04d7dd1f99a51a1529a6e1b9cb"
},
"claim": {
"@type": "Person",
"@context": "http://schema.org/",
"name": "Naval Ravikant",
"givenName": "Naval",
"familyName": "Ravikant",
"description": "Co-founder of AngelList",
"image": [
{
"@type": "ImageObject",
"name": "avatar",
"contentUrl": "https://pbs.twimg.com/profile_images/3696617328/667874c5936764d93d56ccc76a2bcc13.jpeg"
},
{
"@type": "ImageObject",
"name": "background",
"contentUrl": "https://pbs.twimg.com/profile_banners/745273/1355705777/web_retina"
}
],
"website": [
{
"@type": "WebSite",
"url": "angel.co"
}
],
"account": [
{
"@type": "Account",
"service": "facebook",
"identifier": "navalr",
"proofType": "http",
"proofUrl": "https://facebook.com/navalr/posts/10152190734077261"
},
{
"@type": "Account",
"service": "twitter",
"identifier": "naval",
"proofType": "http",
"proofUrl": "https://twitter.com/naval/status/486609266212499456"
},
{
"@type": "Account",
"service": "github",
"identifier": "navalr",
"proofType": "http",
"proofUrl": "https://gist.github.com/navalr/f31a74054f859ec0ac6a"
},
{
"@type": "Account",
"service": "bitcoin",
"role": "payment",
"identifier": "1919UrhYyhs471ps8CFcJ3DRpWSda8qtSk",
"proofType": "signature",
"proofMessage": "Verifying that +naval is my blockchain ID.",
"proofSignature": "ICuRA+Dq5Dn8AiY9P+mcLzGyibPgG0ec9CphtMk512uPdB5eAncDSHhQZY/7kycvl6PLFEuR+j3OM/K2Vey1+EU="
}
],
"worksFor": [
{
"@type": "Organization",
"@id": "angellist.id"
}
],
"knows": [
{
"@type": "Person",
"@id": "muneeb.id"
},
{
"@type": "Person",
"@id": "ryan.id"
}
],
"birthDate": "1973-01-01",
"taxID": "000-00-0000",
"address": {
"@type": "PostalAddress",
"streetAddress": "16 Maiden Ln",
"addressLocality": "San Francisco, CA",
"postalCode": "94108",
"addressCountry": "United States"
}
}
},
"signature": "jaPhSfcOGuwWBAM1--pnVcaEpt0YhQ0o7bS5C7ZWDYMZ_ws6a77mH5dkv25HSFFQEukjibtn2X4kK28nhozyNw"
}
}
]

106
docs/token-files/naval.json Normal file
View File

@@ -0,0 +1,106 @@
[
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksifQ.eyJqdGkiOiIzN2IyMGU1Yi1mYjNiLTRlMGEtYjYwNC1hMzBiY2UzNzdhZmQiLCJpYXQiOiIyMDE3LTAzLTA0VDE2OjEzOjA2LjY1MloiLCJleHAiOiIyMDE4LTAzLTA0VDE2OjEzOjA2LjY1MloiLCJzdWJqZWN0Ijp7InB1YmxpY0tleSI6IjAyZDJlMGYyZjMyYWFhNWZjMzg5NjMwYTU4MDhlNzgxMTQ0ZTc3NDBlYWZlMTJhODk5MWJhMTY2MDdjZTBmMzQ2NyJ9LCJpc3N1ZXIiOnsicHVibGljS2V5IjoiMDJkMmUwZjJmMzJhYWE1ZmMzODk2MzBhNTgwOGU3ODExNDRlNzc0MGVhZmUxMmE4OTkxYmExNjYwN2NlMGYzNDY3In0sImNsYWltIjp7IkBjb250ZXh0IjoiaHR0cDovL3NjaGVtYS5vcmcvIiwiQHR5cGUiOiJQZXJzb24iLCJuYW1lIjoiTmF2YWwgUmF2aWthbnQiLCJnaXZlbk5hbWUiOiJOYXZhbCIsImZhbWlseU5hbWUiOiJSYXZpa2FudCIsImRlc2NyaXB0aW9uIjoiQ28tZm91bmRlciBvZiBBbmdlbExpc3QiLCJpbWFnZSI6W3siQHR5cGUiOiJJbWFnZU9iamVjdCIsIm5hbWUiOiJhdmF0YXIiLCJjb250ZW50VXJsIjoiaHR0cHM6Ly9wYnMudHdpbWcuY29tL3Byb2ZpbGVfaW1hZ2VzLzM2OTY2MTczMjgvNjY3ODc0YzU5MzY3NjRkOTNkNTZjY2M3NmEyYmNjMTMuanBlZyJ9LHsiQHR5cGUiOiJJbWFnZU9iamVjdCIsIm5hbWUiOiJiYWNrZ3JvdW5kIiwiY29udGVudFVybCI6Imh0dHBzOi8vcGJzLnR3aW1nLmNvbS9wcm9maWxlX2Jhbm5lcnMvNzQ1MjczLzEzNTU3MDU3Nzcvd2ViX3JldGluYSJ9XSwid2Vic2l0ZSI6W3siQHR5cGUiOiJXZWJTaXRlIiwidXJsIjoiYW5nZWwuY28ifV0sImFjY291bnQiOlt7IkB0eXBlIjoiQWNjb3VudCIsInNlcnZpY2UiOiJmYWNlYm9vayIsImlkZW50aWZpZXIiOiJuYXZhbHIiLCJwcm9vZlR5cGUiOiJodHRwIiwicHJvb2ZVcmwiOiJodHRwczovL2ZhY2Vib29rLmNvbS9uYXZhbHIvcG9zdHMvMTAxNTIxOTA3MzQwNzcyNjEifSx7IkB0eXBlIjoiQWNjb3VudCIsInNlcnZpY2UiOiJ0d2l0dGVyIiwiaWRlbnRpZmllciI6Im5hdmFsIiwicHJvb2ZUeXBlIjoiaHR0cCIsInByb29mVXJsIjoiaHR0cHM6Ly90d2l0dGVyLmNvbS9uYXZhbC9zdGF0dXMvNDg2NjA5MjY2MjEyNDk5NDU2In0seyJAdHlwZSI6IkFjY291bnQiLCJzZXJ2aWNlIjoiZ2l0aHViIiwiaWRlbnRpZmllciI6Im5hdmFsciIsInByb29mVHlwZSI6Imh0dHAiLCJwcm9vZlVybCI6Imh0dHBzOi8vZ2lzdC5naXRodWIuY29tL25hdmFsci9mMzFhNzQwNTRmODU5ZWMwYWM2YSJ9LHsiQHR5cGUiOiJBY2NvdW50Iiwic2VydmljZSI6ImJpdGNvaW4iLCJyb2xlIjoicGF5bWVudCIsImlkZW50aWZpZXIiOiIxOTE5VXJoWXloczQ3MXBzOENGY0ozRFJwV1NkYThxdFNrIiwicHJvb2ZUeXBlIjoic2lnbmF0dXJlIiwicHJvb2ZNZXNzYWdlIjoiVmVyaWZ5aW5nIHRoYXQgK25hdmFsIGlzIG15IGJsb2NrY2hhaW4gSUQuIiwicHJvb2ZTaWduYXR1cmUiOiJJQ3VSQStEcTVEbjhBaVk5UCttY0x6R3lpYlBnRzBlYzlDcGh0TWs1MTJ1UGRCNWVBbmNEU0hoUVpZLzdreWN2bDZQTEZFdVIrajNPTS9LMlZleTErRVU9In1dLCJ3b3Jrc0ZvciI6W3siQHR5cGUiOiJPcmdhbml6YXRpb24iLCJAaWQiOiJhbmdlbGxpc3QuaWQifV0sImtub3dzIjpbeyJAdHlwZSI6IlBlcnNvbiIsIkBpZCI6Im11bmVlYi5pZCJ9LHsiQHR5cGUiOiJQZXJzb24iLCJAaWQiOiJyeWFuLmlkIn1dLCJiaXJ0aERhdGUiOiIxOTczLTAxLTAxIiwidGF4SUQiOiIwMDAtMDAtMDAwMCIsImFkZHJlc3MiOnsiQHR5cGUiOiJQb3N0YWxBZGRyZXNzIiwic3RyZWV0QWRkcmVzcyI6IjE2IE1haWRlbiBMbiIsImFkZHJlc3NMb2NhbGl0eSI6IlNhbiBGcmFuY2lzY28sIENBIiwicG9zdGFsQ29kZSI6Ijk0MTA4IiwiYWRkcmVzc0NvdW50cnkiOiJVbml0ZWQgU3RhdGVzIn19fQ.Es_kaRgC-WoKvGcZxDodYLnHmPnnZKR2vaoAVqdV18nfEuQyBFCFt2SUvdmkrcMJkTSKZGf02HmM8CGf1Z3gYg",
"decodedToken": {
"header": {
"typ": "JWT",
"alg": "ES256K"
},
"payload": {
"jti": "37b20e5b-fb3b-4e0a-b604-a30bce377afd",
"iat": "2017-03-04T16:13:06.652Z",
"exp": "2018-03-04T16:13:06.652Z",
"subject": {
"publicKey": "02d2e0f2f32aaa5fc389630a5808e781144e7740eafe12a8991ba16607ce0f3467"
},
"issuer": {
"publicKey": "02d2e0f2f32aaa5fc389630a5808e781144e7740eafe12a8991ba16607ce0f3467"
},
"claim": {
"@context": "http://schema.org/",
"@type": "Person",
"name": "Naval Ravikant",
"givenName": "Naval",
"familyName": "Ravikant",
"description": "Co-founder of AngelList",
"image": [
{
"@type": "ImageObject",
"name": "avatar",
"contentUrl": "https://pbs.twimg.com/profile_images/3696617328/667874c5936764d93d56ccc76a2bcc13.jpeg"
},
{
"@type": "ImageObject",
"name": "background",
"contentUrl": "https://pbs.twimg.com/profile_banners/745273/1355705777/web_retina"
}
],
"website": [
{
"@type": "WebSite",
"url": "angel.co"
}
],
"account": [
{
"@type": "Account",
"service": "facebook",
"identifier": "navalr",
"proofType": "http",
"proofUrl": "https://facebook.com/navalr/posts/10152190734077261"
},
{
"@type": "Account",
"service": "twitter",
"identifier": "naval",
"proofType": "http",
"proofUrl": "https://twitter.com/naval/status/486609266212499456"
},
{
"@type": "Account",
"service": "github",
"identifier": "navalr",
"proofType": "http",
"proofUrl": "https://gist.github.com/navalr/f31a74054f859ec0ac6a"
},
{
"@type": "Account",
"service": "bitcoin",
"role": "payment",
"identifier": "1919UrhYyhs471ps8CFcJ3DRpWSda8qtSk",
"proofType": "signature",
"proofMessage": "Verifying that +naval is my blockchain ID.",
"proofSignature": "ICuRA+Dq5Dn8AiY9P+mcLzGyibPgG0ec9CphtMk512uPdB5eAncDSHhQZY/7kycvl6PLFEuR+j3OM/K2Vey1+EU="
}
],
"worksFor": [
{
"@type": "Organization",
"@id": "angellist.id"
}
],
"knows": [
{
"@type": "Person",
"@id": "muneeb.id"
},
{
"@type": "Person",
"@id": "ryan.id"
}
],
"birthDate": "1973-01-01",
"taxID": "000-00-0000",
"address": {
"@type": "PostalAddress",
"streetAddress": "16 Maiden Ln",
"addressLocality": "San Francisco, CA",
"postalCode": "94108",
"addressCountry": "United States"
}
}
},
"signature": "Es_kaRgC-WoKvGcZxDodYLnHmPnnZKR2vaoAVqdV18nfEuQyBFCFt2SUvdmkrcMJkTSKZGf02HmM8CGf1Z3gYg"
}
}
]

View File

@@ -0,0 +1,93 @@
[
{
"decodedToken": {
"header": {
"alg": "ES256K",
"typ": "JWT"
},
"payload": {
"issuedAt": "2016-12-21T02:20:24.575047",
"claim": {
"image": [
{
"contentUrl": "https://s3.amazonaws.com/kd4/ryan",
"name": "avatar",
"@type": "ImageObject"
},
{
"contentUrl": "https://s3.amazonaws.com/dx3/ryan",
"name": "cover",
"@type": "ImageObject"
}
],
"@type": "Person",
"website": [
{
"url": "http://shea.io",
"@type": "WebSite"
}
],
"description": "Co-founder of Blockstack Inc.",
"address": {
"addressLocality": "New York",
"@type": "PostalAddress"
},
"account": [
{
"identifier": "1LFS37yRSibwbf8CnXeCn5t1GKeTEZMmu9",
"role": "payment",
"@type": "Account",
"service": "bitcoin"
},
{
"contentUrl": "https://s3.amazonaws.com/pk9/ryan",
"identifier": "1E4329E6634C75730D4D88C0638F2769D55B9837",
"@type": "Account",
"service": "pgp"
},
{
"identifier": "f2250123a6af138c86b30f3233b338961dc8fbc3",
"proofType": "http",
"proofUrl": "https://www.facebook.com/msrobot0/posts/10153644446452759",
"service": "openbazaar",
"@type": "Account"
},
{
"identifier": "ryaneshea",
"proofType": "http",
"proofUrl": "https://twitter.com/ryaneshea/status/765575388735082496",
"service": "twitter",
"@type": "Account"
},
{
"identifier": "shea256",
"proofType": "http",
"proofUrl": "https://gist.github.com/shea256/a6dc1f3182f28bb2285feaef07a14340",
"service": "github",
"@type": "Account"
},
{
"identifier": "ryaneshea",
"proofType": "http",
"proofUrl": "https://www.facebook.com/ryaneshea/posts/10154182997407713",
"service": "facebook",
"@type": "Account"
}
],
"name": "Ryan Shea"
},
"expiresAt": "2017-12-21T02:20:24.575047",
"subject": {
"publicKey": "0312ccf3255cb005e42c186aa3d2302083b306a52c1f0cb47b1119639f134e6695"
},
"issuer": {
"publicKey": "0312ccf3255cb005e42c186aa3d2302083b306a52c1f0cb47b1119639f134e6695"
}
},
"signature": "YVoNsoJCTMcXIwqa9D5kinkUrnyppsYus7Z-8cn7o9hA6_IG9zkoZGSvsIzfqqjG1mV8JNV1Nh04CZl1qrt1YQ"
},
"token": "eyJhbGciOiJFUzI1NksiLCJ0eXAiOiJKV1QifQ.eyJpc3N1ZWRBdCI6IjIwMTYtMTItMjFUMDI6MjA6MjQuNTc1MDQ3IiwiY2xhaW0iOnsiaW1hZ2UiOlt7ImNvbnRlbnRVcmwiOiJodHRwczovL3MzLmFtYXpvbmF3cy5jb20va2Q0L3J5YW4iLCJuYW1lIjoiYXZhdGFyIiwiQHR5cGUiOiJJbWFnZU9iamVjdCJ9LHsiY29udGVudFVybCI6Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9keDMvcnlhbiIsIm5hbWUiOiJjb3ZlciIsIkB0eXBlIjoiSW1hZ2VPYmplY3QifV0sIkB0eXBlIjoiUGVyc29uIiwid2Vic2l0ZSI6W3sidXJsIjoiaHR0cDovL3NoZWEuaW8iLCJAdHlwZSI6IldlYlNpdGUifV0sImFjY291bnQiOlt7ImlkZW50aWZpZXIiOiIxTEZTMzd5UlNpYndiZjhDblhlQ241dDFHS2VURVpNbXU5Iiwicm9sZSI6InBheW1lbnQiLCJAdHlwZSI6IkFjY291bnQiLCJzZXJ2aWNlIjoiYml0Y29pbiJ9LHsiY29udGVudFVybCI6Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS9wazkvcnlhbiIsImlkZW50aWZpZXIiOiIxRTQzMjlFNjYzNEM3NTczMEQ0RDg4QzA2MzhGMjc2OUQ1NUI5ODM3IiwiQHR5cGUiOiJBY2NvdW50Iiwic2VydmljZSI6InBncCJ9LHsicHJvb2ZUeXBlIjoiaHR0cCIsImlkZW50aWZpZXIiOiJmMjI1MDEyM2E2YWYxMzhjODZiMzBmMzIzM2IzMzg5NjFkYzhmYmMzIiwicHJvb2ZVcmwiOiJodHRwczovL3d3dy5mYWNlYm9vay5jb20vbXNyb2JvdDAvcG9zdHMvMTAxNTM2NDQ0NDY0NTI3NTkiLCJzZXJ2aWNlIjoib3BlbmJhemFhciIsIkB0eXBlIjoiQWNjb3VudCJ9LHsicHJvb2ZUeXBlIjoiaHR0cCIsImlkZW50aWZpZXIiOiJyeWFuZXNoZWEiLCJwcm9vZlVybCI6Imh0dHBzOi8vdHdpdHRlci5jb20vcnlhbmVzaGVhL3N0YXR1cy83NjU1NzUzODg3MzUwODI0OTYiLCJzZXJ2aWNlIjoidHdpdHRlciIsIkB0eXBlIjoiQWNjb3VudCJ9LHsicHJvb2ZUeXBlIjoiaHR0cCIsImlkZW50aWZpZXIiOiJzaGVhMjU2IiwicHJvb2ZVcmwiOiJodHRwczovL2dpc3QuZ2l0aHViLmNvbS9zaGVhMjU2L2E2ZGMxZjMxODJmMjhiYjIyODVmZWFlZjA3YTE0MzQwIiwic2VydmljZSI6ImdpdGh1YiIsIkB0eXBlIjoiQWNjb3VudCJ9LHsicHJvb2ZUeXBlIjoiaHR0cCIsImlkZW50aWZpZXIiOiJyeWFuZXNoZWEiLCJwcm9vZlVybCI6Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9yeWFuZXNoZWEvcG9zdHMvMTAxNTQxODI5OTc0MDc3MTMiLCJzZXJ2aWNlIjoiZmFjZWJvb2siLCJAdHlwZSI6IkFjY291bnQifV0sImFkZHJlc3MiOnsiYWRkcmVzc0xvY2FsaXR5IjoiTmV3IFlvcmsiLCJAdHlwZSI6IlBvc3RhbEFkZHJlc3MifSwiZGVzY3JpcHRpb24iOiJDby1mb3VuZGVyIG9mIEJsb2Nrc3RhY2sgSW5jLiIsIm5hbWUiOiJSeWFuIFNoZWEifSwiZXhwaXJlc0F0IjoiMjAxNy0xMi0yMVQwMjoyMDoyNC41NzUwNDciLCJpc3N1ZXIiOnsicHVibGljS2V5IjoiMDMxMmNjZjMyNTVjYjAwNWU0MmMxODZhYTNkMjMwMjA4M2IzMDZhNTJjMWYwY2I0N2IxMTE5NjM5ZjEzNGU2Njk1In0sInN1YmplY3QiOnsicHVibGljS2V5IjoiMDMxMmNjZjMyNTVjYjAwNWU0MmMxODZhYTNkMjMwMjA4M2IzMDZhNTJjMWYwY2I0N2IxMTE5NjM5ZjEzNGU2Njk1In19.YVoNsoJCTMcXIwqa9D5kinkUrnyppsYus7Z-8cn7o9hA6_IG9zkoZGSvsIzfqqjG1mV8JNV1Nh04CZl1qrt1YQ",
"parentPublicKey": "0312ccf3255cb005e42c186aa3d2302083b306a52c1f0cb47b1119639f134e6695",
"encrypted": false
}
]

View File

@@ -0,0 +1,43 @@
[
{
"decodedToken": {
"header": {
"alg": "ES256K",
"typ": "JWT"
},
"payload": {
"issuedAt": "2016-04-20T12:25:14.453734",
"claim": {
"account": [],
"accounts": [],
"@type": "Person",
"image": [
{
"contentUrl": "https://s3.amazonaws.com/97p/rv1.jpeg",
"@type": "ImageObject",
"name": "cover"
},
{
"contentUrl": "https://s3.amazonaws.com/kd4/ryan_apr20",
"@type": "ImageObject",
"name": "avatar"
}
],
"name": "Ryan Shea"
},
"expiresAt": "2017-04-20T12:25:14.453734",
"subject": {
"publicKey": "02413d7c51118104cfe1b41e540b6c2acaaf91f1e2e22316df7448fb6070d582ec"
},
"issuer": {
"publicKey": "02413d7c51118104cfe1b41e540b6c2acaaf91f1e2e22316df7448fb6070d582ec"
}
},
"signature": "Xj3z975ccW6oxbrlm_YsdGNreuzERRxPoj0DyyJ9vygMYfUjsTQGcxsejmkSPYafTFd6TNIbNBTquutOKZvmBA"
},
"token": "eyJhbGciOiJFUzI1NksiLCJ0eXAiOiJKV1QifQ.eyJpc3N1ZWRBdCI6IjIwMTYtMDQtMjBUMTI6MjU6MTQuNDUzNzM0IiwiY2xhaW0iOnsiYWNjb3VudCI6W10sImFjY291bnRzIjpbXSwiQHR5cGUiOiJQZXJzb24iLCJpbWFnZSI6W3siY29udGVudFVybCI6Imh0dHBzOi8vczMuYW1hem9uYXdzLmNvbS85N3AvcnYxLmpwZWciLCJAdHlwZSI6IkltYWdlT2JqZWN0IiwibmFtZSI6ImNvdmVyIn0seyJjb250ZW50VXJsIjoiaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL2tkNC9yeWFuX2FwcjIwIiwiQHR5cGUiOiJJbWFnZU9iamVjdCIsIm5hbWUiOiJhdmF0YXIifV0sIm5hbWUiOiJSeWFuIFNoZWEifSwiZXhwaXJlc0F0IjoiMjAxNy0wNC0yMFQxMjoyNToxNC40NTM3MzQiLCJpc3N1ZXIiOnsicHVibGljS2V5IjoiMDI0MTNkN2M1MTExODEwNGNmZTFiNDFlNTQwYjZjMmFjYWFmOTFmMWUyZTIyMzE2ZGY3NDQ4ZmI2MDcwZDU4MmVjIn0sInN1YmplY3QiOnsicHVibGljS2V5IjoiMDI0MTNkN2M1MTExODEwNGNmZTFiNDFlNTQwYjZjMmFjYWFmOTFmMWUyZTIyMzE2ZGY3NDQ4ZmI2MDcwZDU4MmVjIn19.Xj3z975ccW6oxbrlm_YsdGNreuzERRxPoj0DyyJ9vygMYfUjsTQGcxsejmkSPYafTFd6TNIbNBTquutOKZvmBA",
"parentPublicKey": "02413d7c51118104cfe1b41e540b6c2acaaf91f1e2e22316df7448fb6070d582ec",
"publicKey": "02413d7c51118104cfe1b41e540b6c2acaaf91f1e2e22316df7448fb6070d582ec",
"encrypted": false
}
]

View File

@@ -1,6 +1,6 @@
{
"name": "blockstack",
"version": "0.2.1",
"version": "0.2.2",
"description": "The Blockstack Javascript library for identity and authentication.",
"main": "lib/index",
"scripts": {

View File

@@ -1,4 +1,4 @@
<! DOCTYPE html>
<!DOCTYPE html>
<html>
<head>
<script src="blockstack-proofs.js"></script>

View File

@@ -45,7 +45,7 @@ function testTokening(filename, profile) {
tokenRecords = [wrapProfileToken(signProfileToken(profile, privateKey))]
t.ok(tokenRecords, 'Tokens should have been created')
//console.log(JSON.stringify(tokenRecords, null, 2))
fs.writeFileSync('./docs/token-files/' + filename, JSON.stringify(tokenRecords, null, 2))
//fs.writeFileSync('./docs/token-files/' + filename, JSON.stringify(tokenRecords, null, 2))
let tokensVerified = true
tokenRecords.map((tokenRecord) => {
@@ -133,7 +133,7 @@ function testSchemas() {
let token = personObject.toToken(privateKey)
let tokenRecords = [wrapProfileToken(token)]
t.ok(tokenRecords, 'Person profile tokens should have been created')
fs.writeFileSync('./docs/token-files/naval-4-tokens.json', JSON.stringify(tokenRecords, null, 2))
//fs.writeFileSync('./docs/token-files/naval-4-tokens.json', JSON.stringify(tokenRecords, null, 2))
let profileObject2 = Person.fromToken(tokenRecords[0].token, publicKey)
t.ok(profileObject2, 'Person profile should have been reconstructed from tokens')