uport-connect
Version:
Library for integrating uPort into your app frontend
2,224 lines (2,139 loc) • 44.4 kB
JavaScript
'use strict';
var cov_7c8ruliiv = function () {
var path = '/Users/mxu/code/uport-connect/src/UportSubprovider.js',
hash = 'b17e30ca08c1cacf9f3e2dd1a16ad3135a500209',
Function = function () {}.constructor,
global = new Function('return this')(),
gcv = '__coverage__',
coverageData = {
path: '/Users/mxu/code/uport-connect/src/UportSubprovider.js',
statementMap: {
'0': {
start: {
line: 25,
column: 4
},
end: {
line: 31,
column: 5
}
},
'1': {
start: {
line: 27,
column: 6
},
end: {
line: 27,
column: 54
}
},
'2': {
start: {
line: 29,
column: 6
},
end: {
line: 29,
column: 30
}
},
'3': {
start: {
line: 30,
column: 6
},
end: {
line: 30,
column: 95
}
},
'4': {
start: {
line: 34,
column: 4
},
end: {
line: 43,
column: 5
}
},
'5': {
start: {
line: 38,
column: 6
},
end: {
line: 42,
column: 7
}
},
'6': {
start: {
line: 39,
column: 8
},
end: {
line: 39,
column: 39
}
},
'7': {
start: {
line: 41,
column: 8
},
end: {
line: 41,
column: 39
}
},
'8': {
start: {
line: 45,
column: 4
},
end: {
line: 45,
column: 26
}
},
'9': {
start: {
line: 46,
column: 4
},
end: {
line: 54,
column: 5
}
},
'10': {
start: {
line: 47,
column: 6
},
end: {
line: 47,
column: 53
}
},
'11': {
start: {
line: 47,
column: 24
},
end: {
line: 47,
column: 53
}
},
'12': {
start: {
line: 48,
column: 6
},
end: {
line: 53,
column: 27
}
},
'13': {
start: {
line: 50,
column: 29
},
end: {
line: 50,
column: 125
}
},
'14': {
start: {
line: 51,
column: 10
},
end: {
line: 51,
column: 76
}
},
'15': {
start: {
line: 53,
column: 17
},
end: {
line: 53,
column: 26
}
},
'16': {
start: {
line: 56,
column: 4
},
end: {
line: 61,
column: 5
}
},
'17': {
start: {
line: 57,
column: 6
},
end: {
line: 60,
column: 7
}
},
'18': {
start: {
line: 58,
column: 19
},
end: {
line: 58,
column: 36
}
},
'19': {
start: {
line: 59,
column: 17
},
end: {
line: 59,
column: 26
}
},
'20': {
start: {
line: 63,
column: 4
},
end: {
line: 68,
column: 5
}
},
'21': {
start: {
line: 64,
column: 6
},
end: {
line: 67,
column: 7
}
},
'22': {
start: {
line: 65,
column: 19
},
end: {
line: 65,
column: 63
}
},
'23': {
start: {
line: 66,
column: 17
},
end: {
line: 66,
column: 26
}
},
'24': {
start: {
line: 70,
column: 4
},
end: {
line: 75,
column: 5
}
},
'25': {
start: {
line: 71,
column: 6
},
end: {
line: 74,
column: 7
}
},
'26': {
start: {
line: 72,
column: 19
},
end: {
line: 72,
column: 63
}
},
'27': {
start: {
line: 73,
column: 17
},
end: {
line: 73,
column: 26
}
},
'28': {
start: {
line: 79,
column: 4
},
end: {
line: 86,
column: 5
}
},
'29': {
start: {
line: 80,
column: 19
},
end: {
line: 80,
column: 34
}
},
'30': {
start: {
line: 81,
column: 6
},
end: {
line: 84,
column: 7
}
},
'31': {
start: {
line: 82,
column: 8
},
end: {
line: 82,
column: 35
}
},
'32': {
start: {
line: 83,
column: 8
},
end: {
line: 83,
column: 19
}
},
'33': {
start: {
line: 85,
column: 6
},
end: {
line: 85,
column: 18
}
},
'34': {
start: {
line: 88,
column: 4
},
end: {
line: 88,
column: 70
}
},
'35': {
start: {
line: 89,
column: 4
},
end: {
line: 89,
column: 15
}
},
'36': {
start: {
line: 97,
column: 4
},
end: {
line: 97,
column: 44
}
},
'37': {
start: {
line: 111,
column: 40
},
end: {
line: 111,
column: 64
}
},
'38': {
start: {
line: 113,
column: 4
},
end: {
line: 116,
column: 5
}
},
'39': {
start: {
line: 114,
column: 6
},
end: {
line: 114,
column: 103
}
},
'40': {
start: {
line: 115,
column: 6
},
end: {
line: 115,
column: 66
}
},
'41': {
start: {
line: 115,
column: 20
},
end: {
line: 115,
column: 66
}
},
'42': {
start: {
line: 119,
column: 4
},
end: {
line: 122,
column: 5
}
},
'43': {
start: {
line: 120,
column: 6
},
end: {
line: 120,
column: 48
}
},
'44': {
start: {
line: 121,
column: 6
},
end: {
line: 121,
column: 12
}
},
'45': {
start: {
line: 124,
column: 20
},
end: {
line: 138,
column: 5
}
},
'46': {
start: {
line: 125,
column: 6
},
end: {
line: 137,
column: 7
}
},
'47': {
start: {
line: 126,
column: 8
},
end: {
line: 130,
column: 10
}
},
'48': {
start: {
line: 132,
column: 8
},
end: {
line: 136,
column: 10
}
},
'49': {
start: {
line: 139,
column: 4
},
end: {
line: 142,
column: 5
}
},
'50': {
start: {
line: 140,
column: 6
},
end: {
line: 140,
column: 61
}
},
'51': {
start: {
line: 141,
column: 6
},
end: {
line: 141,
column: 12
}
},
'52': {
start: {
line: 143,
column: 4
},
end: {
line: 163,
column: 5
}
},
'53': {
start: {
line: 146,
column: 8
},
end: {
line: 146,
column: 39
}
},
'54': {
start: {
line: 148,
column: 8
},
end: {
line: 150,
column: 10
}
},
'55': {
start: {
line: 149,
column: 10
},
end: {
line: 149,
column: 35
}
},
'56': {
start: {
line: 152,
column: 23
},
end: {
line: 152,
column: 40
}
},
'57': {
start: {
line: 153,
column: 8
},
end: {
line: 153,
column: 54
}
},
'58': {
start: {
line: 156,
column: 24
},
end: {
line: 156,
column: 41
}
},
'59': {
start: {
line: 157,
column: 8
},
end: {
line: 157,
column: 53
}
},
'60': {
start: {
line: 159,
column: 19
},
end: {
line: 159,
column: 36
}
},
'61': {
start: {
line: 160,
column: 8
},
end: {
line: 160,
column: 47
}
},
'62': {
start: {
line: 162,
column: 8
},
end: {
line: 162,
column: 57
}
},
'63': {
start: {
line: 168,
column: 2
},
end: {
line: 168,
column: 61
}
}
},
fnMap: {
'0': {
name: '(anonymous_0)',
decl: {
start: {
line: 24,
column: 2
},
end: {
line: 24,
column: 3
}
},
loc: {
start: {
line: 24,
column: 99
},
end: {
line: 76,
column: 3
}
},
line: 24
},
'1': {
name: '(anonymous_1)',
decl: {
start: {
line: 46,
column: 22
},
end: {
line: 46,
column: 23
}
},
loc: {
start: {
line: 46,
column: 30
},
end: {
line: 54,
column: 5
}
},
line: 46
},
'2': {
name: '(anonymous_2)',
decl: {
start: {
line: 49,
column: 8
},
end: {
line: 49,
column: 9
}
},
loc: {
start: {
line: 49,
column: 19
},
end: {
line: 52,
column: 9
}
},
line: 49
},
'3': {
name: '(anonymous_3)',
decl: {
start: {
line: 53,
column: 8
},
end: {
line: 53,
column: 9
}
},
loc: {
start: {
line: 53,
column: 17
},
end: {
line: 53,
column: 26
}
},
line: 53
},
'4': {
name: '(anonymous_4)',
decl: {
start: {
line: 56,
column: 27
},
end: {
line: 56,
column: 28
}
},
loc: {
start: {
line: 56,
column: 42
},
end: {
line: 61,
column: 5
}
},
line: 56
},
'5': {
name: '(anonymous_5)',
decl: {
start: {
line: 58,
column: 8
},
end: {
line: 58,
column: 9
}
},
loc: {
start: {
line: 58,
column: 19
},
end: {
line: 58,
column: 36
}
},
line: 58
},
'6': {
name: '(anonymous_6)',
decl: {
start: {
line: 59,
column: 8
},
end: {
line: 59,
column: 9
}
},
loc: {
start: {
line: 59,
column: 17
},
end: {
line: 59,
column: 26
}
},
line: 59
},
'7': {
name: '(anonymous_7)',
decl: {
start: {
line: 63,
column: 25
},
end: {
line: 63,
column: 26
}
},
loc: {
start: {
line: 63,
column: 44
},
end: {
line: 68,
column: 5
}
},
line: 63
},
'8': {
name: '(anonymous_8)',
decl: {
start: {
line: 65,
column: 8
},
end: {
line: 65,
column: 9
}
},
loc: {
start: {
line: 65,
column: 19
},
end: {
line: 65,
column: 63
}
},
line: 65
},
'9': {
name: '(anonymous_9)',
decl: {
start: {
line: 66,
column: 8
},
end: {
line: 66,
column: 9
}
},
loc: {
start: {
line: 66,
column: 17
},
end: {
line: 66,
column: 26
}
},
line: 66
},
'10': {
name: '(anonymous_10)',
decl: {
start: {
line: 70,
column: 24
},
end: {
line: 70,
column: 25
}
},
loc: {
start: {
line: 70,
column: 38
},
end: {
line: 75,
column: 5
}
},
line: 70
},
'11': {
name: '(anonymous_11)',
decl: {
start: {
line: 72,
column: 8
},
end: {
line: 72,
column: 9
}
},
loc: {
start: {
line: 72,
column: 19
},
end: {
line: 72,
column: 63
}
},
line: 72
},
'12': {
name: '(anonymous_12)',
decl: {
start: {
line: 73,
column: 8
},
end: {
line: 73,
column: 9
}
},
loc: {
start: {
line: 73,
column: 17
},
end: {
line: 73,
column: 26
}
},
line: 73
},
'13': {
name: '(anonymous_13)',
decl: {
start: {
line: 78,
column: 2
},
end: {
line: 78,
column: 3
}
},
loc: {
start: {
line: 78,
column: 22
},
end: {
line: 90,
column: 3
}
},
line: 78
},
'14': {
name: '(anonymous_14)',
decl: {
start: {
line: 96,
column: 2
},
end: {
line: 96,
column: 3
}
},
loc: {
start: {
line: 96,
column: 26
},
end: {
line: 98,
column: 3
}
},
line: 96
},
'15': {
name: '(anonymous_15)',
decl: {
start: {
line: 110,
column: 2
},
end: {
line: 110,
column: 3
}
},
loc: {
start: {
line: 110,
column: 37
},
end: {
line: 164,
column: 3
}
},
line: 110
},
'16': {
name: '(anonymous_16)',
decl: {
start: {
line: 124,
column: 20
},
end: {
line: 124,
column: 21
}
},
loc: {
start: {
line: 124,
column: 39
},
end: {
line: 138,
column: 5
}
},
line: 124
},
'17': {
name: '(anonymous_17)',
decl: {
start: {
line: 148,
column: 31
},
end: {
line: 148,
column: 32
}
},
loc: {
start: {
line: 148,
column: 51
},
end: {
line: 150,
column: 9
}
},
line: 148
},
'18': {
name: 'encodeSignature',
decl: {
start: {
line: 167,
column: 16
},
end: {
line: 167,
column: 31
}
},
loc: {
start: {
line: 167,
column: 45
},
end: {
line: 169,
column: 1
}
},
line: 167
}
},
branchMap: {
'0': {
loc: {
start: {
line: 25,
column: 4
},
end: {
line: 31,
column: 5
}
},
type: 'if',
locations: [{
start: {
line: 25,
column: 4
},
end: {
line: 31,
column: 5
}
}, {
start: {
line: 25,
column: 4
},
end: {
line: 31,
column: 5
}
}],
line: 25
},
'1': {
loc: {
start: {
line: 34,
column: 4
},
end: {
line: 43,
column: 5
}
},
type: 'if',
locations: [{
start: {
line: 34,
column: 4
},
end: {
line: 43,
column: 5
}
}, {
start: {
line: 34,
column: 4
},
end: {
line: 43,
column: 5
}
}],
line: 34
},
'2': {
loc: {
start: {
line: 38,
column: 6
},
end: {
line: 42,
column: 7
}
},
type: 'if',
locations: [{
start: {
line: 38,
column: 6
},
end: {
line: 42,
column: 7
}
}, {
start: {
line: 38,
column: 6
},
end: {
line: 42,
column: 7
}
}],
line: 38
},
'3': {
loc: {
start: {
line: 47,
column: 6
},
end: {
line: 47,
column: 53
}
},
type: 'if',
locations: [{
start: {
line: 47,
column: 6
},
end: {
line: 47,
column: 53
}
}, {
start: {
line: 47,
column: 6
},
end: {
line: 47,
column: 53
}
}],
line: 47
},
'4': {
loc: {
start: {
line: 51,
column: 10
},
end: {
line: 51,
column: 76
}
},
type: 'cond-expr',
locations: [{
start: {
line: 51,
column: 37
},
end: {
line: 51,
column: 59
}
}, {
start: {
line: 51,
column: 62
},
end: {
line: 51,
column: 76
}
}],
line: 51
},
'5': {
loc: {
start: {
line: 79,
column: 4
},
end: {
line: 86,
column: 5
}
},
type: 'if',
locations: [{
start: {
line: 79,
column: 4
},
end: {
line: 86,
column: 5
}
}, {
start: {
line: 79,
column: 4
},
end: {
line: 86,
column: 5
}
}],
line: 79
},
'6': {
loc: {
start: {
line: 79,
column: 8
},
end: {
line: 79,
column: 42
}
},
type: 'binary-expr',
locations: [{
start: {
line: 79,
column: 8
},
end: {
line: 79,
column: 23
}
}, {
start: {
line: 79,
column: 27
},
end: {
line: 79,
column: 42
}
}],
line: 79
},
'7': {
loc: {
start: {
line: 81,
column: 6
},
end: {
line: 84,
column: 7
}
},
type: 'if',
locations: [{
start: {
line: 81,
column: 6
},
end: {
line: 84,
column: 7
}
}, {
start: {
line: 81,
column: 6
},
end: {
line: 84,
column: 7
}
}],
line: 81
},
'8': {
loc: {
start: {
line: 88,
column: 19
},
end: {
line: 88,
column: 70
}
},
type: 'cond-expr',
locations: [{
start: {
line: 88,
column: 37
},
end: {
line: 88,
column: 60
}
}, {
start: {
line: 88,
column: 63
},
end: {
line: 88,
column: 70
}
}],
line: 88
},
'9': {
loc: {
start: {
line: 113,
column: 4
},
end: {
line: 116,
column: 5
}
},
type: 'if',
locations: [{
start: {
line: 113,
column: 4
},
end: {
line: 116,
column: 5
}
}, {
start: {
line: 113,
column: 4
},
end: {
line: 116,
column: 5
}
}],
line: 113
},
'10': {
loc: {
start: {
line: 113,
column: 8
},
end: {
line: 113,
column: 61
}
},
type: 'binary-expr',
locations: [{
start: {
line: 113,
column: 8
},
end: {
line: 113,
column: 32
}
}, {
start: {
line: 113,
column: 36
},
end: {
line: 113,
column: 61
}
}],
line: 113
},
'11': {
loc: {
start: {
line: 115,
column: 6
},
end: {
line: 115,
column: 66
}
},
type: 'if',
locations: [{
start: {
line: 115,
column: 6
},
end: {
line: 115,
column: 66
}
}, {
start: {
line: 115,
column: 6
},
end: {
line: 115,
column: 66
}
}],
line: 115
},
'12': {
loc: {
start: {
line: 119,
column: 4
},
end: {
line: 122,
column: 5
}
},
type: 'if',
locations: [{
start: {
line: 119,
column: 4
},
end: {
line: 122,
column: 5
}
}, {
start: {
line: 119,
column: 4
},
end: {
line: 122,
column: 5
}
}],
line: 119
},
'13': {
loc: {
start: {
line: 125,
column: 6
},
end: {
line: 137,
column: 7
}
},
type: 'if',
locations: [{
start: {
line: 125,
column: 6
},
end: {
line: 137,
column: 7
}
}, {
start: {
line: 125,
column: 6
},
end: {
line: 137,
column: 7
}
}],
line: 125
},
'14': {
loc: {
start: {
line: 139,
column: 4
},
end: {
line: 142,
column: 5
}
},
type: 'if',
locations: [{
start: {
line: 139,
column: 4
},
end: {
line: 142,
column: 5
}
}, {
start: {
line: 139,
column: 4
},
end: {
line: 142,
column: 5
}
}],
line: 139
},
'15': {
loc: {
start: {
line: 143,
column: 4
},
end: {
line: 163,
column: 5
}
},
type: 'switch',
locations: [{
start: {
line: 145,
column: 6
},
end: {
line: 146,
column: 39
}
}, {
start: {
line: 147,
column: 6
},
end: {
line: 150,
column: 10
}
}, {
start: {
line: 151,
column: 6
},
end: {
line: 153,
column: 54
}
}, {
start: {
line: 154,
column: 6
},
end: {
line: 154,
column: 34
}
}, {
start: {
line: 155,
column: 6
},
end: {
line: 157,
column: 53
}
}, {
start: {
line: 158,
column: 6
},
end: {
line: 160,
column: 47
}
}, {
start: {
line: 161,
column: 6
},
end: {
line: 162,
column: 57
}
}],
line: 143
}
},
s: {
'0': 0,
'1': 0,
'2': 0,
'3': 0,
'4': 0,
'5': 0,
'6': 0,
'7': 0,
'8': 0,
'9': 0,
'10': 0,
'11': 0,
'12': 0,
'13': 0,
'14': 0,
'15': 0,
'16': 0,
'17': 0,
'18': 0,
'19': 0,
'20': 0,
'21': 0,
'22': 0,
'23': 0,
'24': 0,
'25': 0,
'26': 0,
'27': 0,
'28': 0,
'29': 0,
'30': 0,
'31': 0,
'32': 0,
'33': 0,
'34': 0,
'35': 0,
'36': 0,
'37': 0,
'38': 0,
'39': 0,
'40': 0,
'41': 0,
'42': 0,
'43': 0,
'44': 0,
'45': 0,
'46': 0,
'47': 0,
'48': 0,
'49': 0,
'50': 0,
'51': 0,
'52': 0,
'53': 0,
'54': 0,
'55': 0,
'56': 0,
'57': 0,
'58': 0,
'59': 0,
'60': 0,
'61': 0,
'62': 0,
'63': 0
},
f: {
'0': 0,
'1': 0,
'2': 0,
'3': 0,
'4': 0,
'5': 0,
'6': 0,
'7': 0,
'8': 0,
'9': 0,
'10': 0,
'11': 0,
'12': 0,
'13': 0,
'14': 0,
'15': 0,
'16': 0,
'17': 0,
'18': 0
},
b: {
'0': [0, 0],
'1': [0, 0],
'2': [0, 0],
'3': [0, 0],
'4': [0, 0],
'5': [0, 0],
'6': [0, 0],
'7': [0, 0],
'8': [0, 0],
'9': [0, 0],
'10': [0, 0],
'11': [0, 0],
'12': [0, 0],
'13': [0, 0],
'14': [0, 0],
'15': [0, 0, 0, 0, 0, 0, 0]
},
_coverageSchema: '332fd63041d2c1bcb487cc26dd0d5f7d97098a6c'
},
coverage = global[gcv] || (global[gcv] = {});
if (coverage[path] && coverage[path].hash === hash) {
return coverage[path];
}
coverageData.hash = hash;
return coverage[path] = coverageData;
}();
Object.defineProperty(exports, "__esModule", {
value: true
});
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
exports.encodeSignature = encodeSignature;
var _async = require('async');
var _async2 = _interopRequireDefault(_async);
var _mnid = require('mnid');
var _ethjsProviderHttp = require('ethjs-provider-http');
var _ethjsProviderHttp2 = _interopRequireDefault(_ethjsProviderHttp);
var _ui = require('uport-transports/lib/transport/ui');
var _util = require('./util');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* A web3 style provider which can easily be wrapped with uPort functionality.
* Builds on a base provider. Used in Connect to wrap a provider with uPort specific
* functionality.
*/
var UportSubprovider = function () {
/**
* Instantiates a new wrapped provider
*
* @param {Object} args required arguments
* @param {Function} args.requestAddress function to get the address of a uPort identity.
* @param {Function} args.sendTransaction function to handle passing transaction information to a uPort application
* @param {Object} args.provider a web3 sytle provider
* @return {UportSubprovider} this
*/
function UportSubprovider(_ref) {
var _this = this;
var requestAddress = _ref.requestAddress,
sendTransaction = _ref.sendTransaction,
signTypedData = _ref.signTypedData,
personalSign = _ref.personalSign,
provider = _ref.provider,
network = _ref.network;
(0, _classCallCheck3.default)(this, UportSubprovider);
cov_7c8ruliiv.f[0]++;
cov_7c8ruliiv.s[0]++;
if (!provider) {
cov_7c8ruliiv.b[0][0]++;
cov_7c8ruliiv.s[1]++;
// Extend ethjs HTTP provider if none is given
this.provider = new _ethjsProviderHttp2.default(network.rpcUrl);
} else {
cov_7c8ruliiv.b[0][1]++;
cov_7c8ruliiv.s[2]++;
this.provider = provider;
cov_7c8ruliiv.s[3]++;
console.warn('Uport functionality may not be entirely compatible with custom providers.');
}
// Detect injected provider
cov_7c8ruliiv.s[4]++;
if ((0, _util.hasWeb3)()) {
cov_7c8ruliiv.b[1][0]++;
cov_7c8ruliiv.s[5]++;
// Distinguish between providers in mobile and other cases
// Metamask/mist etc. will give the option to use uport
// Mobile injected providers (coinbase wallet, etc.) will be used automatically
if ((0, _util.isMobile)()) {
cov_7c8ruliiv.b[2][0]++;
cov_7c8ruliiv.s[6]++;
this.useInjectedProvider = true;
} else {
cov_7c8ruliiv.b[2][1]++;
cov_7c8ruliiv.s[7]++;
this.hasInjectedProvider = true;
}
} else {
cov_7c8ruliiv.b[1][1]++;
}
cov_7c8ruliiv.s[8]++;
this.network = network;
cov_7c8ruliiv.s[9]++;
this.getAddress = function (cb) {
cov_7c8ruliiv.f[1]++;
cov_7c8ruliiv.s[10]++;
if (_this.address) {
cov_7c8ruliiv.b[3][0]++;
cov_7c8ruliiv.s[11]++;
return cb(null, _this.address);
} else {
cov_7c8ruliiv.b[3][1]++;
}cov_7c8ruliiv.s[12]++;
requestAddress().then(function (address) {
cov_7c8ruliiv.f[2]++;
var errorMatch = (cov_7c8ruliiv.s[13]++, new Error('Address/Account received does not match the network your provider is configured for'));
cov_7c8ruliiv.s[14]++;
_this.setAccount(address) ? (cov_7c8ruliiv.b[4][0]++, cb(null, _this.address)) : (cov_7c8ruliiv.b[4][1]++, cb(errorMatch));
}, function (error) {
cov_7c8ruliiv.f[3]++;
cov_7c8ruliiv.s[15]++;
return cb(error);
});
};
cov_7c8ruliiv.s[16]++;
this.sendTransaction = function (txobj, cb) {
cov_7c8ruliiv.f[4]++;
cov_7c8ruliiv.s[17]++;
sendTransaction(txobj).then(function (address) {
cov_7c8ruliiv.f[5]++;
cov_7c8ruliiv.s[18]++;
return cb(null, address);
}, function (error) {
cov_7c8ruliiv.f[6]++;
cov_7c8ruliiv.s[19]++;
return cb(error);
});
};
cov_7c8ruliiv.s[20]++;
this.signTypedData = function (typedData, cb) {
cov_7c8ruliiv.f[7]++;
cov_7c8ruliiv.s[21]++;
signTypedData(typedData).then(function (payload) {
cov_7c8ruliiv.f[8]++;
cov_7c8ruliiv.s[22]++;
return cb(null, encodeSignature(payload.signature));
}, function (error) {
cov_7c8ruliiv.f[9]++;
cov_7c8ruliiv.s[23]++;
return cb(error);
});
};
cov_7c8ruliiv.s[24]++;
this.personalSign = function (data, cb) {
cov_7c8ruliiv.f[10]++;
cov_7c8ruliiv.s[25]++;
personalSign(data).then(function (payload) {
cov_7c8ruliiv.f[11]++;
cov_7c8ruliiv.s[26]++;
return cb(null, encodeSignature(payload.signature));
}, function (error) {
cov_7c8ruliiv.f[12]++;
cov_7c8ruliiv.s[27]++;
return cb(error);
});
};
}
(0, _createClass3.default)(UportSubprovider, [{
key: 'setAccount',
value: function setAccount(address) {
cov_7c8ruliiv.f[13]++;
cov_7c8ruliiv.s[28]++;
if ((cov_7c8ruliiv.b[6][0]++, this.network.id) && (cov_7c8ruliiv.b[6][1]++, (0, _mnid.isMNID)(address))) {
cov_7c8ruliiv.b[5][0]++;
var mnid = (cov_7c8ruliiv.s[29]++, (0, _mnid.decode)(address));
cov_7c8ruliiv.s[30]++;
if (this.network.id === mnid.network) {
cov_7c8ruliiv.b[7][0]++;
cov_7c8ruliiv.s[31]++;
this.address = mnid.address;
cov_7c8ruliiv.s[32]++;
return true;
} else {
cov_7c8ruliiv.b[7][1]++;
}
cov_7c8ruliiv.s[33]++;
return false;
} else {
cov_7c8ruliiv.b[5][1]++;
}
// Does not force validation, if no network id given will still set address
cov_7c8ruliiv.s[34]++;
this.address = (0, _mnid.isMNID)(address) ? (cov_7c8ruliiv.b[8][0]++, (0, _mnid.decode)(address).address) : (cov_7c8ruliiv.b[8][1]++, address);
cov_7c8ruliiv.s[35]++;
return true;
}
/**
* Replace sync send with async send
* @private
*/
}, {
key: 'send',
value: function send(payload, callback) {
cov_7c8ruliiv.f[14]++;
cov_7c8ruliiv.s[36]++;
return this.sendAsync(payload, callback);
}
/**
* Overrides sendAsync to caputure the following RPC calls eth_coinbase, eth_accounts,
* and eth_sendTransaction. All other calls are passed to the based provider.
* eth_coinbase, eth_accounts will get a uPort identity address with getAddress.
* While eth_sendTransaction with send transactions to a uPort app with sendTransaction
*
* @param {Any} payload request payload
* @param {Function} callback called with response or error
* @private
*/
}, {
key: 'sendAsync',
value: function () {
var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(payload, callback) {
var remember, useInjectedProvider, _ref3, respond, txParams, typedData, data;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
cov_7c8ruliiv.f[15]++;
remember = void 0, useInjectedProvider = (cov_7c8ruliiv.s[37]++, this.useInjectedProvider);
// Present a dialog to ask about using injected provider if present but not approved
cov_7c8ruliiv.s[38]++;
if (!((cov_7c8ruliiv.b[10][0]++, this.hasInjectedProvider) && (cov_7c8ruliiv.b[10][1]++, !this.useInjectedProvider))) {
_context.next = 15;
break;
}
cov_7c8ruliiv.b[9][0]++;
cov_7c8ruliiv.s[39]++;
_context.next = 8;
return (0, _ui.askProvider)(payload.method === 'eth_sendTransaction');
case 8:
_ref3 = _context.sent;
remember = _ref3.remember;
useInjectedProvider = _ref3.useInjectedProvider;
cov_7c8ruliiv.s[40]++;
if (remember) {
cov_7c8ruliiv.b[11][0]++;
cov_7c8ruliiv.s[41]++;
this.useInjectedProvider = useInjectedProvider;
} else {
cov_7c8ruliiv.b[11][1]++;
}_context.next = 16;
break;
case 15:
cov_7c8ruliiv.b[9][1]++;
case 16:
cov_7c8ruliiv.s[42]++;
if (!useInjectedProvider) {
_context.next = 25;
break;
}
cov_7c8ruliiv.b[12][0]++;
cov_7c8ruliiv.s[43]++;
web3.provider.sendAsync(payload, callback);
cov_7c8ruliiv.s[44]++;
return _context.abrupt('return');
case 25:
cov_7c8ruliiv.b[12][1]++;
case 26:
cov_7c8ruliiv.s[45]++;
respond = function respond(error, result) {
cov_7c8ruliiv.f[16]++;
cov_7c8ruliiv.s[46]++;
if (error) {
cov_7c8ruliiv.b[13][0]++;
cov_7c8ruliiv.s[47]++;
callback({
id: payload.id,
jsonrpc: '2.0',
error: error.message
});
} else {
cov_7c8ruliiv.b[13][1]++;
cov_7c8ruliiv.s[48]++;
callback(null, {
id: payload.id,
jsonrpc: '2.0',
result: result
});
}
};
cov_7c8ruliiv.s[49]++;
if (!Array.isArray(payload)) {
_context.next = 37;
break;
}
cov_7c8ruliiv.b[14][0]++;
cov_7c8ruliiv.s[50]++;
_async2.default.map(payload, this.sendAsync.bind(this), callback);
cov_7c8ruliiv.s[51]++;
return _context.abrupt('return');
case 37:
cov_7c8ruliiv.b[14][1]++;
case 38:
cov_7c8ruliiv.s[52]++;
_context.t0 = payload.method;
_context.next = _context.t0 === 'eth_coinbase' ? 42 : _context.t0 === 'eth_accounts' ? 45 : _context.t0 === 'eth_sendTransaction' ? 48 : _context.t0 === 'eth_signTypedData_v3' ? 52 : _context.t0 === 'eth_signTypedData' ? 53 : _context.t0 === 'personal_sign' ? 57 : 61;
break;
case 42:
cov_7c8ruliiv.b[15][0]++;
cov_7c8ruliiv.s[53]++;
return _context.abrupt('return', this.getAddress(respond));
case 45:
cov_7c8ruliiv.b[15][1]++;
cov_7c8ruliiv.s[54]++;
return _context.abrupt('return', this.getAddress(function (error, address) {
cov_7c8ruliiv.f[17]++;
cov_7c8ruliiv.s[55]++;
respond(error, [address]);
}));
case 48:
cov_7c8ruliiv.b[15][2]++;
txParams = (cov_7c8ruliiv.s[56]++, payload.params[0]);
cov_7c8ruliiv.s[57]++;
return _context.abrupt('return', this.sendTransaction(txParams, respond));
case 52:
cov_7c8ruliiv.b[15][3]++;
case 53:
cov_7c8ruliiv.b[15][4]++;
typedData = (cov_7c8ruliiv.s[58]++, payload.params[0]);
cov_7c8ruliiv.s[59]++;
return _context.abrupt('return', this.signTypedData(typedData, respond));
case 57:
cov_7c8ruliiv.b[15][5]++;
data = (cov_7c8ruliiv.s[60]++, payload.params[0]);
cov_7c8ruliiv.s[61]++;
return _context.abrupt('return', this.personalSign(data, respond));
case 61:
cov_7c8ruliiv.b[15][6]++;
cov_7c8ruliiv.s[62]++;
return _context.abrupt('return', this.provider.sendAsync(payload, callback));
case 64:
case 'end':
return _context.stop();
}
}
}, _callee, this);
}));
function sendAsync(_x, _x2) {
return _ref2.apply(this, arguments);
}
return sendAsync;
}()
}]);
return UportSubprovider;
}();
function encodeSignature(_ref4) {
var r = _ref4.r,
s = _ref4.s,
v = _ref4.v;
cov_7c8ruliiv.f[18]++;
cov_7c8ruliiv.s[63]++;
return '0x' + r.padStart(64, '0') + s.padStart(64, '0') + v;
}
exports.default = UportSubprovider;