From 5d9d97b877aee1382f3cfe2866900c8b835b6e64 Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Wed, 9 Dec 2020 14:34:25 -0500 Subject: [PATCH 01/14] Upgraded UAL to utilize new anchor-link/transport/eosio-core --- package.json | 7 +- src/Anchor.ts | 17 +++- src/AnchorUser.ts | 18 +++-- yarn.lock | 198 +++++++++++++++++++--------------------------- 4 files changed, 110 insertions(+), 130 deletions(-) diff --git a/package.json b/package.json index 7eff6d3..aec197b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ual-anchor", - "version": "0.5.1", + "version": "1.0.0-rc.1", "main": "dist/index.js", "license": "MIT", "author": { @@ -19,8 +19,9 @@ "test": "jest" }, "dependencies": { - "anchor-link": "^2.1.0", - "anchor-link-browser-transport": "^2.1.0", + "@greymass/eosio": "^0.1.5", + "anchor-link": "^3.0.0-rc.1", + "anchor-link-browser-transport": "^3.0.0-rc.4", "elliptic": "6.5.2", "eosjs": "^20.0.3", "universal-authenticator-library": "0.3.0" diff --git a/src/Anchor.ts b/src/Anchor.ts index 10baef7..d73dc5a 100644 --- a/src/Anchor.ts +++ b/src/Anchor.ts @@ -5,6 +5,7 @@ import { import AnchorLink from 'anchor-link' import { JsonRpc } from 'eosjs' +import { APIClient, FetchProvider } from '@greymass/eosio' import { Name } from './interfaces' import { AnchorUser } from './AnchorUser' import { AnchorLogo } from './AnchorLogo' @@ -14,6 +15,8 @@ import AnchorLinkBrowserTransport from 'anchor-link-browser-transport' export interface UALAnchorOptions { // The app name, required by anchor-link. Short string identifying the app appName: string + // A APIClient object from @greymass/eosio. If not specified, it'll be created using the JsonRpc endpoint + client?: APIClient // Either a JsonRpc instance from eosjs or the url for an API to connect a new JsonRpc instance to rpc?: JsonRpc // The callback service URL to use, defaults to https://cb.anchor.link @@ -27,6 +30,8 @@ export interface UALAnchorOptions { export class Anchor extends Authenticator { // a JsonRpc instance that can be utilized public rpc: JsonRpc + // a APIClient instance that can be utilized + public client: APIClient // Storage for AnchorUser instances private users: AnchorUser[] = [] // The app name, required by anchor-link @@ -71,6 +76,13 @@ export class Anchor extends Authenticator { // otherwise just return a generic rpc instance for this endpoint this.rpc = new JsonRpc(`${rpc.protocol}://${rpc.host}:${rpc.port}`) } + // Allow overriding the APIClient via options + if (options && options.client) { + this.client = options.client + } else { + const provider = new FetchProvider(`${rpc.protocol}://${rpc.host}:${rpc.port}`) + this.client = new APIClient({ provider }) + } // Allow passing a custom service URL to process callbacks if (options.service) { this.service = options.service @@ -92,7 +104,6 @@ export class Anchor extends Authenticator { // establish anchor-link this.link = new AnchorLink({ chainId: this.chainId, - rpc: this.rpc, service: this.service, transport: new AnchorLinkBrowserTransport({ // default: disable browser transport UI status messages, ual has its own @@ -104,7 +115,7 @@ export class Anchor extends Authenticator { // attempt to restore any existing session for this app const session = await this.link.restoreSession(this.appName) if (session) { - this.users = [new AnchorUser(this.rpc, { session })] + this.users = [new AnchorUser(this.rpc, this.client, { session })] } } @@ -201,7 +212,7 @@ export class Anchor extends Authenticator { // some changes to UAL are going to be required to support multiple users if (this.users.length === 0) { const identity = await this.link.login(this.appName) - this.users = [new AnchorUser(this.rpc, identity)] + this.users = [new AnchorUser(this.rpc, this.client, identity)] } } catch (e) { throw new UALAnchorError( diff --git a/src/AnchorUser.ts b/src/AnchorUser.ts index 42b6e93..8ba1e0d 100644 --- a/src/AnchorUser.ts +++ b/src/AnchorUser.ts @@ -1,9 +1,10 @@ import { SignTransactionResponse, User, UALErrorType } from 'universal-authenticator-library' +import { APIClient } from '@greymass/eosio' import { JsonRpc } from 'eosjs' - import { UALAnchorError } from './UALAnchorError' export class AnchorUser extends User { + public client: APIClient public rpc: JsonRpc public session: any @@ -16,22 +17,23 @@ export class AnchorUser extends User { private accountName: string = '' private requestPermission: string = '' - constructor(rpc, identity) { + constructor(rpc, client, identity) { super() const { session } = identity - this.accountName = session.auth.actor - this.chainId = session.link.chainId + this.accountName = String(session.auth.actor) + this.chainId = String(session.link.chainId) if (identity.signatures) { [this.signerProof] = identity.signatures } if (identity.signerKey) { this.signerKey = identity.signerKey } - if (identity.serializedTransaction) { - this.signerRequest = identity.serializedTransaction + if (identity.resolvedTransaction) { + this.signerRequest = identity.transaction } - this.requestPermission = session.auth.permission + this.requestPermission = String(session.auth.permission) this.session = session + this.client = client this.rpc = rpc } @@ -88,7 +90,7 @@ export class AnchorUser extends User { public async isAccountValid() { try { - const account = this.rpc && await this.rpc.get_account(this.accountName) + const account = this.client && await this.client.v1.chain.get_account(this.accountName) const actualKeys = this.extractAccountKeys(account) const authorizationKeys = await this.getKeys() diff --git a/yarn.lock b/yarn.lock index 13442a0..8d64d35 100644 --- a/yarn.lock +++ b/yarn.lock @@ -161,6 +161,17 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@greymass/eosio@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@greymass/eosio/-/eosio-0.1.5.tgz#cb0e4ff063279b6b1f221aa9e1a825f0a34c0a6f" + integrity sha512-GBTqizOmRF2CLn/rus4vxT3QBmGOirlSFxn+eEDKtaVFrz9ss0L0S/95Rp6tZi/J0vnOPR5p+0gQMe/TWWlLYA== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + elliptic "^6.5.3" + hash.js "^1.0.0" + tslib "^2.0.3" + "@jest/console@^24.7.1", "@jest/console@^24.9.0": version "24.9.0" resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" @@ -453,26 +464,27 @@ ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -anchor-link-browser-transport@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/anchor-link-browser-transport/-/anchor-link-browser-transport-2.1.0.tgz#dc932d0fce74126b08c5ef72783eb8f8e1be893b" - integrity sha512-DnV6AtJSOJA8CTNY5sTyPOWCorW80gNMTpAFMn3c6NF5KwgF2gl8SfF3iz/cCG8e8NJ7RByCtpmNXH62gvlNmA== +anchor-link-browser-transport@^3.0.0-rc.4: + version "3.0.0-rc.4" + resolved "https://registry.yarnpkg.com/anchor-link-browser-transport/-/anchor-link-browser-transport-3.0.0-rc.4.tgz#4953e450694608610de67428608886574d7335ea" + integrity sha512-qM/5+nJlnfTOsYR8gAFBeENpAI/J2k9SYX5n4+TkhUMRjDFXSg+yICXSD+E+KkFPuQj4TAwtRW3o11yfNyWqrQ== dependencies: - qrcode "^1.4.4" + tslib "^2.0.3" -anchor-link@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/anchor-link/-/anchor-link-2.1.0.tgz#64a994c1984f211229ea46ad2e483963e5740640" - integrity sha512-cFOlr/XD7tvHGqcufP56+cRuNDKSUibFbXaF7wel7ELtVnqDAqMFLv3DMgqOXt+bJ0ud2r2F0fkTwg0WmsiVpA== +anchor-link@^3.0.0-rc.1: + version "3.0.0-rc.1" + resolved "https://registry.yarnpkg.com/anchor-link/-/anchor-link-3.0.0-rc.1.tgz#b16560bd3b0cdd6cede864140ead352a8c50a93d" + integrity sha512-NtD1tj//FWbtfH/JUlEuK+tkaperLRfnc8TL74RG2vy6HqzUMfDW0SP3KVk48a+aEEZp7aHtWZeOXE4b3HdCqA== dependencies: - eosio-signing-request "^1.2.0" - eosjs "^20.0.0" - eosjs-ecc "^4.0.7" - fetch-ponyfill "^6.1.0" + "@greymass/eosio" "^0.1.5" + asmcrypto.js "^2.3.2" + eosio-signing-request "^2.0.0-rc" + fetch-ponyfill "^7.0.0" isomorphic-ws "^4.0.1" - pako "^1.0.10" - uuid "^8.1.0" - ws "^7.2.5" + pako "^2.0.2" + tslib "^2.0.3" + uuid "^8.3.1" + ws "^7.4.1" ansi-escapes@^3.0.0: version "3.2.0" @@ -536,6 +548,11 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +asmcrypto.js@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/asmcrypto.js/-/asmcrypto.js-2.3.2.tgz#b9f84bd0a1fb82f21f8c29cc284a707ad17bba2e" + integrity sha512-3FgFARf7RupsZETQ1nHnhLUUvpcttcCq1iZCaVAbJZbCZ5VNRrNyvpDyHTOb0KC3llFcsyOT/a99NZcCbeiEsA== + asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -641,11 +658,6 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -756,25 +768,7 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@1.x, buffer-from@^1.0.0, buffer-from@^1.1.1: +buffer-from@1.x, buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== @@ -784,14 +778,6 @@ buffer-xor@^1.0.2: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= -buffer@^5.4.3: - version "5.5.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.5.0.tgz#9c3caa3d623c33dd1c7ef584b89b88bf9c9bc1ce" - integrity sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -1105,11 +1091,6 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -dijkstrajs@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.1.tgz#d3cd81221e3ea40742cfcde556d4e99e98ddc71b" - integrity sha1-082BIh4+pAdCz83lVtTpnpjdxxs= - doctrine@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523" @@ -1153,6 +1134,19 @@ elliptic@6.5.2: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +elliptic@^6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -1165,15 +1159,15 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -eosio-signing-request@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/eosio-signing-request/-/eosio-signing-request-1.2.0.tgz#543922b4bfb60c5b07e350c5391e1599555fb0fa" - integrity sha512-1sINQYrj5MkLg8MEPdBPOU/opJEZVGL4xF29ph1htvb6C6kpE+CZx5tEvBBwYWL5PK4T8VRZzhi8xSQg5j7sZw== +eosio-signing-request@^2.0.0-rc: + version "2.0.0-rc.1" + resolved "https://registry.yarnpkg.com/eosio-signing-request/-/eosio-signing-request-2.0.0-rc.1.tgz#6ec559fdae0aafe712490cf0966486ad48f540c4" + integrity sha512-qY7X5PJBgLSJ91f4wTwhdOxiTHTuHtrgqHN+ySGW0PwTlAyOMRfSOXRw2KorKOwEoQ6dDB4gUfX6tu+D42wmMw== dependencies: - eosjs "^20.0.0" - fast-sha256 "^1.1.1" + "@greymass/eosio" "^0.1.5" + tslib "^2.0.3" -eosjs-ecc@4.0.7, eosjs-ecc@^4.0.7: +eosjs-ecc@4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/eosjs-ecc/-/eosjs-ecc-4.0.7.tgz#f5246da3b84839fcc237204768ef6e5ea56cc814" integrity sha512-uuqhqnrDy9XTpKfkhiZqRDUTCCI9oWBalVK5IosL7kpYwA9I3lm68INYFLyWsHpF2xwHqPql8MrMYJ3zfOn5Qg== @@ -1188,7 +1182,7 @@ eosjs-ecc@4.0.7, eosjs-ecc@^4.0.7: ecurve "1.0.5" randombytes "2.0.5" -eosjs@^20.0.0, eosjs@^20.0.3: +eosjs@^20.0.3: version "20.0.3" resolved "https://registry.yarnpkg.com/eosjs/-/eosjs-20.0.3.tgz#f3ac1fa119b76dd07bf2825ad27342f6502a533b" integrity sha512-h0WSxsDo7AHz5IzpbQDrzyT/CYmbBDtFiiolTdtGd2FdKXEa6LDER4WbNp4qxCY7kD65KeG3knkGmOOFGbPJxw== @@ -1382,11 +1376,6 @@ fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -fast-sha256@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-sha256/-/fast-sha256-1.3.0.tgz#7916ba2054eeb255982608cccd0f6660c79b7ae6" - integrity sha512-n11RGP/lrWEFI/bWdygLxhI+pVeo1ZYIVwvvPkW7azl/rOy+F3HYRZ2K5zeE9mmkhQppyv9sQFx0JM9UabnpPQ== - fb-watchman@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" @@ -1394,12 +1383,12 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fetch-ponyfill@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-6.1.0.tgz#d56cd1e6fc4e50aff8cd4b7701dc42a0cc26f476" - integrity sha512-bLc7JCjpJZZUXVxbgwUhd72Q19MAokrCXOg/Akq+wl0uFLFLklFdBkZo5OpQ3kLI0oGqrKdx6t5Zo3QwXBRmbQ== +fetch-ponyfill@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-7.0.0.tgz#5a53db6fc8c3e1901476f3e9b7b146a30a412594" + integrity sha512-ynRMX7w11EcG3sJSYTT2N6EUl0QsqWbyW3Xw5+DuLeA2uo/yhssb7JqnjamGQaHBUo/AOUsmTz6zeUX3cPvZsQ== dependencies: - node-fetch "~2.6.0" + node-fetch "~2.6.1" file-uri-to-path@1.0.0: version "1.0.0" @@ -1639,11 +1628,6 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -1830,11 +1814,6 @@ isarray@1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isarray@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -2599,10 +2578,10 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -node-fetch@~2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" - integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== +node-fetch@~2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== node-int64@^0.4.0: version "0.4.0" @@ -2765,10 +2744,10 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@^1.0.10: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== +pako@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.2.tgz#8a72af7a93431ef22aa97e0d53b0acaa3c689220" + integrity sha512-9e8DRI3+dRLomCmMBAH30B2ejh+blwXr7VmMEx/pVFZlSDA7oyI8uKMhKXr8IrZpoxBF2YlxUvhqRXzTT1i0NA== parse-json@^4.0.0: version "4.0.0" @@ -2849,11 +2828,6 @@ pn@^1.1.0: resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== -pngjs@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -2900,19 +2874,6 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qrcode@^1.4.4: - version "1.4.4" - resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" - integrity sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q== - dependencies: - buffer "^5.4.3" - buffer-alloc "^1.2.0" - buffer-from "^1.1.1" - dijkstrajs "^1.0.1" - isarray "^2.0.1" - pngjs "^3.3.0" - yargs "^13.2.4" - qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -3507,6 +3468,11 @@ tslib@^1.8.0, tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== +tslib@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" + integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== + tslint-eslint-rules@^5.4.0: version "5.4.0" resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz#e488cc9181bf193fe5cd7bfca213a7695f1737b5" @@ -3628,10 +3594,10 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.1.0.tgz#6f1536eb43249f473abc6bd58ff983da1ca30d8d" - integrity sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg== +uuid@^8.3.1: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== validate-npm-package-license@^3.0.1: version "3.0.4" @@ -3746,10 +3712,10 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -ws@^7.2.5: - version "7.3.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd" - integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w== +ws@^7.4.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.1.tgz#a333be02696bd0e54cea0434e21dcc8a9ac294bb" + integrity sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ== xml-name-validator@^3.0.0: version "3.0.0" @@ -3776,7 +3742,7 @@ yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@^13.2.4, yargs@^13.3.0: +yargs@^13.3.0: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== From 82ad0bbcef081ff4e83a61e719d47aba85bde126 Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Tue, 5 Jan 2021 13:14:55 -0500 Subject: [PATCH 02/14] Return expected values as strings --- src/AnchorUser.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/AnchorUser.ts b/src/AnchorUser.ts index 8ba1e0d..879e006 100644 --- a/src/AnchorUser.ts +++ b/src/AnchorUser.ts @@ -1,5 +1,5 @@ import { SignTransactionResponse, User, UALErrorType } from 'universal-authenticator-library' -import { APIClient } from '@greymass/eosio' +import { APIClient, PackedTransaction, SignedTransaction } from '@greymass/eosio' import { JsonRpc } from 'eosjs' import { UALAnchorError } from './UALAnchorError' @@ -37,13 +37,20 @@ export class AnchorUser extends User { this.rpc = rpc } + objectify(data: any) { + return JSON.parse(JSON.stringify(data)) + } + public async signTransaction(transaction, options): Promise { try { const completedTransaction = await this.session.transact(transaction, options) const wasBroadcast = (options.broadcast !== false) + const serializedTransaction = PackedTransaction.fromSigned(SignedTransaction.from(completedTransaction.transaction)) return this.returnEosjsTransaction(wasBroadcast, { + ...completedTransaction, transaction_id: completedTransaction.payload.tx, - ...completedTransaction + serializedTransaction: serializedTransaction.packed_trx.array, + signatures: this.objectify(completedTransaction.signatures), }) } catch (e) { const message = e.message ? e.message : 'Unable to sign transaction' From ea10df13d570451ea1750c5accec66cb191347af Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Tue, 5 Jan 2021 13:15:25 -0500 Subject: [PATCH 03/14] Version 1.0.0-rc.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index aec197b..e45745b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ual-anchor", - "version": "1.0.0-rc.1", + "version": "1.0.0-rc.2", "main": "dist/index.js", "license": "MIT", "author": { From 8fd7f338fa30277979ca8d26c7806ad3560ba0cf Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Tue, 5 Jan 2021 15:02:25 -0500 Subject: [PATCH 04/14] Version 1.0.0-rc.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e45745b..294fffb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ual-anchor", - "version": "1.0.0-rc.2", + "version": "1.0.0-rc.4", "main": "dist/index.js", "license": "MIT", "author": { From e84c693b64663a4536a7bc2cff3f615d6fc149de Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Tue, 5 Jan 2021 15:02:54 -0500 Subject: [PATCH 05/14] Update yarn.lock --- yarn.lock | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8d64d35..6f6b0b6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -161,10 +161,10 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@greymass/eosio@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@greymass/eosio/-/eosio-0.1.5.tgz#cb0e4ff063279b6b1f221aa9e1a825f0a34c0a6f" - integrity sha512-GBTqizOmRF2CLn/rus4vxT3QBmGOirlSFxn+eEDKtaVFrz9ss0L0S/95Rp6tZi/J0vnOPR5p+0gQMe/TWWlLYA== +"@greymass/eosio@^0.1.5", "@greymass/eosio@^0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@greymass/eosio/-/eosio-0.1.8.tgz#be2794efebc2c0bed078a275e53dcc7929786ef3" + integrity sha512-OotCpFZjVUj/CKgY14M/5VsS2Na+lysNF4nThGqdVNAPO1CaSZUPLpPoVAdOKS0I6p0rBD3TxarPp2s8OdmR+Q== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -465,25 +465,25 @@ ajv@^6.5.5: uri-js "^4.2.2" anchor-link-browser-transport@^3.0.0-rc.4: - version "3.0.0-rc.4" - resolved "https://registry.yarnpkg.com/anchor-link-browser-transport/-/anchor-link-browser-transport-3.0.0-rc.4.tgz#4953e450694608610de67428608886574d7335ea" - integrity sha512-qM/5+nJlnfTOsYR8gAFBeENpAI/J2k9SYX5n4+TkhUMRjDFXSg+yICXSD+E+KkFPuQj4TAwtRW3o11yfNyWqrQ== + version "3.0.0-rc.5" + resolved "https://registry.yarnpkg.com/anchor-link-browser-transport/-/anchor-link-browser-transport-3.0.0-rc.5.tgz#cefe8de2d072ab0f8dd40b60364ae0a742cf70fa" + integrity sha512-Wmq21qgyhlxt6+08a5TXJgtkg7yoXVEFqA/zzZoZl99NqFIMP6HFaV0wdUrMPeYFsJZ8FAuyP45hMvvnC4Th0Q== dependencies: tslib "^2.0.3" anchor-link@^3.0.0-rc.1: - version "3.0.0-rc.1" - resolved "https://registry.yarnpkg.com/anchor-link/-/anchor-link-3.0.0-rc.1.tgz#b16560bd3b0cdd6cede864140ead352a8c50a93d" - integrity sha512-NtD1tj//FWbtfH/JUlEuK+tkaperLRfnc8TL74RG2vy6HqzUMfDW0SP3KVk48a+aEEZp7aHtWZeOXE4b3HdCqA== + version "3.0.0-rc.2" + resolved "https://registry.yarnpkg.com/anchor-link/-/anchor-link-3.0.0-rc.2.tgz#ab7719ddb03168027c47452e132eecd3dbc9638b" + integrity sha512-8y/lDxHhf4S+hE5FLGaTTb2+4ncmOmMHofZM89eEo0k3mEvlbHQpJKtXiJEmUxh3D3470WvOG1s7Jvl4Bs592Q== dependencies: - "@greymass/eosio" "^0.1.5" + "@greymass/eosio" "^0.1.8" asmcrypto.js "^2.3.2" eosio-signing-request "^2.0.0-rc" fetch-ponyfill "^7.0.0" isomorphic-ws "^4.0.1" pako "^2.0.2" tslib "^2.0.3" - uuid "^8.3.1" + uuid "^8.3.2" ws "^7.4.1" ansi-escapes@^3.0.0: @@ -691,9 +691,9 @@ bindings@^1.5.0: file-uri-to-path "1.0.0" bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== brace-expansion@^1.1.7: version "1.1.11" @@ -3594,7 +3594,7 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.1: +uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -3713,9 +3713,9 @@ ws@^5.2.0: async-limiter "~1.0.0" ws@^7.4.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.1.tgz#a333be02696bd0e54cea0434e21dcc8a9ac294bb" - integrity sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ== + version "7.4.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" + integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== xml-name-validator@^3.0.0: version "3.0.0" From ee38f4e9781a29bee25a77067a303cfbabbeabcb Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Tue, 5 Jan 2021 15:31:33 -0500 Subject: [PATCH 06/14] Specify new chains option while establishing link --- src/Anchor.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Anchor.ts b/src/Anchor.ts index d73dc5a..6d5ec62 100644 --- a/src/Anchor.ts +++ b/src/Anchor.ts @@ -103,7 +103,10 @@ export class Anchor extends Authenticator { public async init() { // establish anchor-link this.link = new AnchorLink({ - chainId: this.chainId, + chains: [{ + chainId: this.chainId, + nodeUrl: this.client, + }], service: this.service, transport: new AnchorLinkBrowserTransport({ // default: disable browser transport UI status messages, ual has its own From 00e7de26ba14a6546348f09fe82a0b593bcf6116 Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Tue, 5 Jan 2021 15:31:41 -0500 Subject: [PATCH 07/14] Provide chainId while removing session --- src/Anchor.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Anchor.ts b/src/Anchor.ts index 6d5ec62..67d24ef 100644 --- a/src/Anchor.ts +++ b/src/Anchor.ts @@ -235,7 +235,7 @@ export class Anchor extends Authenticator { // retrieve the auth from the current user const { session: { auth } } = user // remove the session from anchor-link - await this.link.removeSession(this.appName, auth) + await this.link.removeSession(this.appName, auth, this.chainId) // reset the authenticator this.reset() } From 5ed3386543b61909c911b098ee0de536e51ad738 Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Tue, 5 Jan 2021 15:31:56 -0500 Subject: [PATCH 08/14] Use chainId on session instead of link --- src/AnchorUser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/AnchorUser.ts b/src/AnchorUser.ts index 879e006..1536c88 100644 --- a/src/AnchorUser.ts +++ b/src/AnchorUser.ts @@ -21,7 +21,7 @@ export class AnchorUser extends User { super() const { session } = identity this.accountName = String(session.auth.actor) - this.chainId = String(session.link.chainId) + this.chainId = String(session.chainId) if (identity.signatures) { [this.signerProof] = identity.signatures } From 18e58655a77f74918340e992d5fcc4fdf2b651c3 Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Tue, 5 Jan 2021 15:34:24 -0500 Subject: [PATCH 09/14] Version 1.0.0-rc.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 294fffb..648faf5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ual-anchor", - "version": "1.0.0-rc.4", + "version": "1.0.0-rc.5", "main": "dist/index.js", "license": "MIT", "author": { From 494faa3cecae7cffdfa3b0a5141f3cfff749809a Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Tue, 12 Jan 2021 13:27:42 -0500 Subject: [PATCH 10/14] Allow passing fuelReferrer value to the transport via options --- src/Anchor.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Anchor.ts b/src/Anchor.ts index 67d24ef..93633fd 100644 --- a/src/Anchor.ts +++ b/src/Anchor.ts @@ -25,6 +25,8 @@ export interface UALAnchorOptions { disableGreymassFuel?: boolean // A flag to enable the Anchor Link UI request status, defaults to false (disabled) requestStatus?: boolean + // An account name to use as the referral account for Fuel + fuelReferrer?: string } export class Anchor extends Authenticator { @@ -46,6 +48,8 @@ export class Anchor extends Authenticator { private disableGreymassFuel: boolean = false // display the request status returned by anchor-link, defaults to false (ual has it's own) private requestStatus: boolean = false + // The referral account used in Fuel transactions + private fuelReferrer: string = 'teamgreymass' /** * Anchor Constructor. @@ -95,6 +99,10 @@ export class Anchor extends Authenticator { if (options && options.requestStatus) { this.requestStatus = options.requestStatus } + // Allow specifying a Fuel referral account + if (options && options.fuelReferrer) { + this.fuelReferrer = options.fuelReferrer + } } /** @@ -113,6 +121,8 @@ export class Anchor extends Authenticator { requestStatus: this.requestStatus, // default: do not disable fuel by default disableGreymassFuel: this.disableGreymassFuel, + // default: use the teamgreymass account + fuelReferrer: this.fuelReferrer, }), }) // attempt to restore any existing session for this app From d7cd5aa8c201f5ae4ac50e6cae849c2922f3d50c Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Tue, 12 Jan 2021 13:28:06 -0500 Subject: [PATCH 11/14] Version 1.0.0-rc.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 648faf5..d749497 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ual-anchor", - "version": "1.0.0-rc.5", + "version": "1.0.0-rc.6", "main": "dist/index.js", "license": "MIT", "author": { From acf969bab37075f8082174150326fb90eb7e748c Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Fri, 12 Feb 2021 13:48:11 -0500 Subject: [PATCH 12/14] Adding verifyProofs option --- package.json | 6 ++--- src/Anchor.ts | 12 ++++++--- yarn.lock | 75 +++++++++++++++++++++++++++------------------------ 3 files changed, 52 insertions(+), 41 deletions(-) diff --git a/package.json b/package.json index d749497..de45924 100644 --- a/package.json +++ b/package.json @@ -19,9 +19,9 @@ "test": "jest" }, "dependencies": { - "@greymass/eosio": "^0.1.5", - "anchor-link": "^3.0.0-rc.1", - "anchor-link-browser-transport": "^3.0.0-rc.4", + "@greymass/eosio": "^0.2.5", + "anchor-link": "^3.0.3", + "anchor-link-browser-transport": "^3.0.0-rc.10", "elliptic": "6.5.2", "eosjs": "^20.0.3", "universal-authenticator-library": "0.3.0" diff --git a/src/Anchor.ts b/src/Anchor.ts index 93633fd..5e0b102 100644 --- a/src/Anchor.ts +++ b/src/Anchor.ts @@ -27,6 +27,8 @@ export interface UALAnchorOptions { requestStatus?: boolean // An account name to use as the referral account for Fuel fuelReferrer?: string + // Whether anchor-link should be configured to verify identity proofs in the browser for the app + verifyProofs?: boolean } export class Anchor extends Authenticator { @@ -50,6 +52,8 @@ export class Anchor extends Authenticator { private requestStatus: boolean = false // The referral account used in Fuel transactions private fuelReferrer: string = 'teamgreymass' + // Whether anchor-link should be configured to verify identity proofs in the browser for the app + private verifyProofs: boolean = false /** * Anchor Constructor. @@ -103,6 +107,10 @@ export class Anchor extends Authenticator { if (options && options.fuelReferrer) { this.fuelReferrer = options.fuelReferrer } + // Allow overriding the proof verification option + if (options && options.verifyProofs) { + this.verifyProofs = options.verifyProofs + } } /** @@ -117,13 +125,11 @@ export class Anchor extends Authenticator { }], service: this.service, transport: new AnchorLinkBrowserTransport({ - // default: disable browser transport UI status messages, ual has its own requestStatus: this.requestStatus, - // default: do not disable fuel by default disableGreymassFuel: this.disableGreymassFuel, - // default: use the teamgreymass account fuelReferrer: this.fuelReferrer, }), + verifyProofs: this.verifyProofs, }) // attempt to restore any existing session for this app const session = await this.link.restoreSession(this.appName) diff --git a/yarn.lock b/yarn.lock index 6f6b0b6..6933ad4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -161,10 +161,10 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@greymass/eosio@^0.1.5", "@greymass/eosio@^0.1.8": - version "0.1.8" - resolved "https://registry.yarnpkg.com/@greymass/eosio/-/eosio-0.1.8.tgz#be2794efebc2c0bed078a275e53dcc7929786ef3" - integrity sha512-OotCpFZjVUj/CKgY14M/5VsS2Na+lysNF4nThGqdVNAPO1CaSZUPLpPoVAdOKS0I6p0rBD3TxarPp2s8OdmR+Q== +"@greymass/eosio@^0.2.3", "@greymass/eosio@^0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@greymass/eosio/-/eosio-0.2.5.tgz#fef071e4eaa09620c959b81dbec372fb1495b1a9" + integrity sha512-YbvfinU0sdmHT8vtaI8ddzdqN5D2gBqRB8YPz5OmKXFjXRmdEcSw1PxlWYWxEBaOTt1ij4wG7hghD83NALO28g== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -464,27 +464,27 @@ ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -anchor-link-browser-transport@^3.0.0-rc.4: - version "3.0.0-rc.5" - resolved "https://registry.yarnpkg.com/anchor-link-browser-transport/-/anchor-link-browser-transport-3.0.0-rc.5.tgz#cefe8de2d072ab0f8dd40b60364ae0a742cf70fa" - integrity sha512-Wmq21qgyhlxt6+08a5TXJgtkg7yoXVEFqA/zzZoZl99NqFIMP6HFaV0wdUrMPeYFsJZ8FAuyP45hMvvnC4Th0Q== +anchor-link-browser-transport@^3.0.0-rc.10: + version "3.0.0-rc.10" + resolved "https://registry.yarnpkg.com/anchor-link-browser-transport/-/anchor-link-browser-transport-3.0.0-rc.10.tgz#b16c480a3063fda461230ab8a33c2e88650450a0" + integrity sha512-y3yR+QRf4Q5sTgg+t2R4utgVkq9qSNnNv4qfYc13mfkSEG2qEerbzI6pDCINJqZ+KsRKeVQGpCds+1I6dsAbMg== dependencies: tslib "^2.0.3" -anchor-link@^3.0.0-rc.1: - version "3.0.0-rc.2" - resolved "https://registry.yarnpkg.com/anchor-link/-/anchor-link-3.0.0-rc.2.tgz#ab7719ddb03168027c47452e132eecd3dbc9638b" - integrity sha512-8y/lDxHhf4S+hE5FLGaTTb2+4ncmOmMHofZM89eEo0k3mEvlbHQpJKtXiJEmUxh3D3470WvOG1s7Jvl4Bs592Q== +anchor-link@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/anchor-link/-/anchor-link-3.0.3.tgz#74aafc9b2e096f9be897d893191b09635c8e1c7a" + integrity sha512-KaIASOIj9Fne0egWf/bNNFXjrQKLd6QtNpTbFO5UwaOzIhheCAAGNbCfLXLtXJ3RQLb3fUt0rDISvBdCGM5JIg== dependencies: - "@greymass/eosio" "^0.1.8" + "@greymass/eosio" "^0.2.5" asmcrypto.js "^2.3.2" - eosio-signing-request "^2.0.0-rc" - fetch-ponyfill "^7.0.0" + eosio-signing-request "^2.0.0" + fetch-ponyfill "^7.1.0" isomorphic-ws "^4.0.1" - pako "^2.0.2" - tslib "^2.0.3" + pako "^2.0.3" + tslib "^2.1.0" uuid "^8.3.2" - ws "^7.4.1" + ws "^7.4.3" ansi-escapes@^3.0.0: version "3.2.0" @@ -1159,12 +1159,12 @@ end-of-stream@^1.1.0: dependencies: once "^1.4.0" -eosio-signing-request@^2.0.0-rc: - version "2.0.0-rc.1" - resolved "https://registry.yarnpkg.com/eosio-signing-request/-/eosio-signing-request-2.0.0-rc.1.tgz#6ec559fdae0aafe712490cf0966486ad48f540c4" - integrity sha512-qY7X5PJBgLSJ91f4wTwhdOxiTHTuHtrgqHN+ySGW0PwTlAyOMRfSOXRw2KorKOwEoQ6dDB4gUfX6tu+D42wmMw== +eosio-signing-request@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/eosio-signing-request/-/eosio-signing-request-2.0.1.tgz#42cf32f51b79b5a0b495442a6a8f7e82b415a88e" + integrity sha512-dzMaQ9Zq16kJs1xI4NDe4zgg8+W+FKi6E3FYBJRBJW+3ypHDaCKCD7z6YN53E8SscP6fIY/M48lVsAA2Rtq6EA== dependencies: - "@greymass/eosio" "^0.1.5" + "@greymass/eosio" "^0.2.3" tslib "^2.0.3" eosjs-ecc@4.0.7: @@ -1383,10 +1383,10 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fetch-ponyfill@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-7.0.0.tgz#5a53db6fc8c3e1901476f3e9b7b146a30a412594" - integrity sha512-ynRMX7w11EcG3sJSYTT2N6EUl0QsqWbyW3Xw5+DuLeA2uo/yhssb7JqnjamGQaHBUo/AOUsmTz6zeUX3cPvZsQ== +fetch-ponyfill@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-7.1.0.tgz#4266ed48b4e64663a50ab7f7fcb8e76f990526d0" + integrity sha512-FhbbL55dj/qdVO3YNK7ZEkshvj3eQ7EuIGV2I6ic/2YiocvyWv+7jg2s4AyS0wdRU75s3tA8ZxI/xPigb0v5Aw== dependencies: node-fetch "~2.6.1" @@ -2744,10 +2744,10 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.2.tgz#8a72af7a93431ef22aa97e0d53b0acaa3c689220" - integrity sha512-9e8DRI3+dRLomCmMBAH30B2ejh+blwXr7VmMEx/pVFZlSDA7oyI8uKMhKXr8IrZpoxBF2YlxUvhqRXzTT1i0NA== +pako@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.3.tgz#cdf475e31b678565251406de9e759196a0ea7a43" + integrity sha512-WjR1hOeg+kki3ZIOjaf4b5WVcay1jaliKSYiEaB1XzwhMQZJxRdQRv0V31EKBYlxb4T7SK3hjfc/jxyU64BoSw== parse-json@^4.0.0: version "4.0.0" @@ -3473,6 +3473,11 @@ tslib@^2.0.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== +tslib@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + tslint-eslint-rules@^5.4.0: version "5.4.0" resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz#e488cc9181bf193fe5cd7bfca213a7695f1737b5" @@ -3712,10 +3717,10 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -ws@^7.4.1: - version "7.4.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.2.tgz#782100048e54eb36fe9843363ab1c68672b261dd" - integrity sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA== +ws@^7.4.3: + version "7.4.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" + integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== xml-name-validator@^3.0.0: version "3.0.0" From 3a8f6bfd80cc3ffa680ab953b279b2e6b622f203 Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Fri, 12 Feb 2021 21:43:53 -0500 Subject: [PATCH 13/14] Updating transport --- package.json | 4 ++-- yarn.lock | 15 +++++---------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index de45924..d7edad0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ual-anchor", - "version": "1.0.0-rc.6", + "version": "1.0.0", "main": "dist/index.js", "license": "MIT", "author": { @@ -21,7 +21,7 @@ "dependencies": { "@greymass/eosio": "^0.2.5", "anchor-link": "^3.0.3", - "anchor-link-browser-transport": "^3.0.0-rc.10", + "anchor-link-browser-transport": "^3.0.0", "elliptic": "6.5.2", "eosjs": "^20.0.3", "universal-authenticator-library": "0.3.0" diff --git a/yarn.lock b/yarn.lock index 6933ad4..97f5777 100644 --- a/yarn.lock +++ b/yarn.lock @@ -464,10 +464,10 @@ ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -anchor-link-browser-transport@^3.0.0-rc.10: - version "3.0.0-rc.10" - resolved "https://registry.yarnpkg.com/anchor-link-browser-transport/-/anchor-link-browser-transport-3.0.0-rc.10.tgz#b16c480a3063fda461230ab8a33c2e88650450a0" - integrity sha512-y3yR+QRf4Q5sTgg+t2R4utgVkq9qSNnNv4qfYc13mfkSEG2qEerbzI6pDCINJqZ+KsRKeVQGpCds+1I6dsAbMg== +anchor-link-browser-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/anchor-link-browser-transport/-/anchor-link-browser-transport-3.0.0.tgz#f5e5b0c7bc7ef4873b33bc0e6045188cc31097bd" + integrity sha512-zwjw8SQMD+nQeN9NYgW4tlRMc9I2ckeI93xG+e6sEPc507KzdK/DQqCW+OClegmpXgP6MpF5t56Kq0PPFCmZlw== dependencies: tslib "^2.0.3" @@ -3468,12 +3468,7 @@ tslib@^1.8.0, tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== -tslib@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" - integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== - -tslib@^2.1.0: +tslib@^2.0.3, tslib@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== From d9e18452495dfeac7179a6fe3fa5d20798fde702 Mon Sep 17 00:00:00 2001 From: Aaron Cox Date: Fri, 12 Feb 2021 21:58:47 -0500 Subject: [PATCH 14/14] Upgrading packages --- yarn.lock | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/yarn.lock b/yarn.lock index 97f5777..9f629f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -106,9 +106,9 @@ regenerator-runtime "^0.13.2" "@babel/runtime@^7.2.0": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.7.tgz#8fefce9802db54881ba59f90bb28719b4996324d" - integrity sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg== + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.13.tgz#0a21452352b02542db0ffb928ac2d3ca7cb6d66d" + integrity sha512-8+3UMPBrjFa/6TtKi/7sehPKqfAm4g6K+YQjyyFOLUTxzOngcRZTlAVY8sc2CORJYqdHQY8gRPHmn+qo15rCBw== dependencies: regenerator-runtime "^0.13.4" @@ -405,9 +405,9 @@ integrity sha512-E6M6N0blf/jiZx8Q3nb0vNaswQeEyn0XlupO+xN6DtJ6r6IT4nXrTry7zhIfYvFCl3/8Cu6WIysmUBKiqV0bqQ== "@types/node@^12.12.20": - version "12.12.30" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.30.tgz#3501e6f09b954de9c404671cefdbcc5d9d7c45f6" - integrity sha512-sz9MF/zk6qVr3pAnM0BSQvYIBK44tS75QC5N+VbWSE4DjCV/pJ+UzCW/F+vVnl7TkOPcuwQureKNtSSwjBTaMg== + version "12.20.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.0.tgz#692dfdecd6c97f5380c42dd50f19261f9f604deb" + integrity sha512-0/41wHcurotvSOTHQUFkgL702c3pyWR1mToSrrX3pGPvGfpHTv3Ksx0M4UVuU5VJfjVb62Eyr1eKO1tWNUCg2Q== "@types/stack-utils@^1.0.1": version "1.0.1" @@ -2920,11 +2920,16 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.4: +regenerator-runtime@^0.13.2: version "0.13.5" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -3535,9 +3540,9 @@ type-check@~0.3.2: prelude-ls "~1.1.2" typescript@^3.2.2: - version "3.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" - integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== + version "3.9.9" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674" + integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w== union-value@^1.0.0: version "1.0.1"