@blockcerts/blockcerts-verifier 1.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +27 -0
- package/.husky/commit-msg +4 -0
- package/.husky/pre-commit +4 -0
- package/.husky/pre-push +5 -0
- package/LICENSE.md +21 -0
- package/README.md +260 -0
- package/__mocks__/@polymer/lit-element.js +10 -0
- package/demo/allow-download-flag.html +35 -0
- package/demo/allow-social-share-flag.html +35 -0
- package/demo/bright-theme.html +40 -0
- package/demo/bundle-ie11.html +38 -0
- package/demo/bundle.html +36 -0
- package/demo/dark-theme.html +40 -0
- package/demo/disable-auto-verify-flag.html +35 -0
- package/demo/disable-verify-flag.html +35 -0
- package/demo/display-mode-card.html +35 -0
- package/demo/display-mode-full.html +35 -0
- package/demo/display-mode-fullscreen.html +35 -0
- package/demo/events.html +43 -0
- package/demo/explorer-api-overwrite-default.html +47 -0
- package/demo/explorer-api.html +66 -0
- package/demo/no-api.html +35 -0
- package/demo/show-metadata.html +35 -0
- package/demo/with-api-certificate.html +35 -0
- package/dist/ie11.js +195 -0
- package/dist/main.js +664 -0
- package/docs/ADR/adr-000-what-is-an-ADR.md +23 -0
- package/docs/ADR/adr-001-tools-and-methodologies.md +35 -0
- package/docs/ADR/adr-002-css-structure.md +36 -0
- package/docs/ADR/adr-003-store-connector-container-component.md +164 -0
- package/docs/ADR/adr-004-domain.md +38 -0
- package/docs/ADR/adr-005-substeps-list.md +35 -0
- package/docs/ADR/adr-006-handling-plural-i18n.md +20 -0
- package/karma.conf.js +26 -0
- package/package.json +125 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
|
|
6
|
+
|
|
7
|
+
<title>blockcerts-verifier demo</title>
|
|
8
|
+
|
|
9
|
+
<script src="./@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js"></script>
|
|
10
|
+
<script src="./@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
|
|
11
|
+
|
|
12
|
+
<script type="module" src="./ie11.js"></script>
|
|
13
|
+
|
|
14
|
+
<script>
|
|
15
|
+
// HACK(keanulee): The Redux package assumes `process` exists - mock it here before
|
|
16
|
+
// the module is loaded.
|
|
17
|
+
window.process = {
|
|
18
|
+
env: {
|
|
19
|
+
NODE_ENV: 'development'
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
</script>
|
|
23
|
+
<style>
|
|
24
|
+
.main {
|
|
25
|
+
max-width: 700px;
|
|
26
|
+
margin: 0 auto;
|
|
27
|
+
width: 100%;
|
|
28
|
+
}
|
|
29
|
+
</style>
|
|
30
|
+
</head>
|
|
31
|
+
<body>
|
|
32
|
+
<div class="main">
|
|
33
|
+
<h3>Basic blockcerts-verifier demo - Display mode Full</h3>
|
|
34
|
+
<blockcerts-verifier display-mode="full"></blockcerts-verifier>
|
|
35
|
+
</div>
|
|
36
|
+
</body>
|
|
37
|
+
</body>
|
|
38
|
+
</html>
|
package/demo/bundle.html
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
|
|
6
|
+
|
|
7
|
+
<title>blockcerts-verifier demo</title>
|
|
8
|
+
|
|
9
|
+
<script src="./@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
|
|
10
|
+
|
|
11
|
+
<script type="module" src="./main.js"></script>
|
|
12
|
+
|
|
13
|
+
<script>
|
|
14
|
+
// HACK(keanulee): The Redux package assumes `process` exists - mock it here before
|
|
15
|
+
// the module is loaded.
|
|
16
|
+
window.process = {
|
|
17
|
+
env: {
|
|
18
|
+
NODE_ENV: 'development'
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
</script>
|
|
22
|
+
<style>
|
|
23
|
+
.main {
|
|
24
|
+
max-width: 700px;
|
|
25
|
+
margin: 0 auto;
|
|
26
|
+
width: 100%;
|
|
27
|
+
}
|
|
28
|
+
</style>
|
|
29
|
+
</head>
|
|
30
|
+
<body>
|
|
31
|
+
<div class="main">
|
|
32
|
+
<h3>Basic blockcerts-verifier demo - Display mode Full</h3>
|
|
33
|
+
<blockcerts-verifier display-mode="full"></blockcerts-verifier>
|
|
34
|
+
</div>
|
|
35
|
+
</body>
|
|
36
|
+
</html>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
|
|
6
|
+
|
|
7
|
+
<title>blockcerts-verifier demo</title>
|
|
8
|
+
|
|
9
|
+
<script src="./@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
|
|
10
|
+
<script type="module" src="./index.js"></script>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
// HACK(keanulee): The Redux package assumes `process` exists - mock it here before
|
|
14
|
+
// the module is loaded.
|
|
15
|
+
window.process = {
|
|
16
|
+
env: {
|
|
17
|
+
NODE_ENV: 'development'
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
</script>
|
|
21
|
+
<style>
|
|
22
|
+
.main {
|
|
23
|
+
max-width: 700px;
|
|
24
|
+
margin: 0 auto;
|
|
25
|
+
width: 100%;
|
|
26
|
+
}
|
|
27
|
+
.wrapper {
|
|
28
|
+
background-color: #593400
|
|
29
|
+
}
|
|
30
|
+
</style>
|
|
31
|
+
</head>
|
|
32
|
+
<body>
|
|
33
|
+
<div class="main">
|
|
34
|
+
<h3>Basic blockcerts-verifier demo - Dark theme</h3>
|
|
35
|
+
<div class="wrapper">
|
|
36
|
+
<blockcerts-verifier theme="dark"></blockcerts-verifier>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
</body>
|
|
40
|
+
</html>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
|
|
6
|
+
|
|
7
|
+
<title>blockcerts-verifier demo</title>
|
|
8
|
+
|
|
9
|
+
<script src="./@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
|
|
10
|
+
<script type="module" src="./index.js"></script>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
// HACK(keanulee): The Redux package assumes `process` exists - mock it here before
|
|
14
|
+
// the module is loaded.
|
|
15
|
+
window.process = {
|
|
16
|
+
env: {
|
|
17
|
+
NODE_ENV: 'development'
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
</script>
|
|
21
|
+
<style>
|
|
22
|
+
.main {
|
|
23
|
+
max-width: 700px;
|
|
24
|
+
margin: 0 auto;
|
|
25
|
+
width: 100%;
|
|
26
|
+
}
|
|
27
|
+
</style>
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div class="main">
|
|
31
|
+
<h3>Basic blockcerts-verifier demo - Disable Auto Verify flag</h3>
|
|
32
|
+
<blockcerts-verifier disable-auto-verify></blockcerts-verifier>
|
|
33
|
+
</div>
|
|
34
|
+
</body>
|
|
35
|
+
</html>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
|
|
6
|
+
|
|
7
|
+
<title>blockcerts-verifier demo</title>
|
|
8
|
+
|
|
9
|
+
<script src="./@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
|
|
10
|
+
<script type="module" src="./index.js"></script>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
// HACK(keanulee): The Redux package assumes `process` exists - mock it here before
|
|
14
|
+
// the module is loaded.
|
|
15
|
+
window.process = {
|
|
16
|
+
env: {
|
|
17
|
+
NODE_ENV: 'development'
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
</script>
|
|
21
|
+
<style>
|
|
22
|
+
.main {
|
|
23
|
+
max-width: 700px;
|
|
24
|
+
margin: 0 auto;
|
|
25
|
+
width: 100%;
|
|
26
|
+
}
|
|
27
|
+
</style>
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div class="main">
|
|
31
|
+
<h3>Basic blockcerts-verifier demo - Disable Verify flag</h3>
|
|
32
|
+
<blockcerts-verifier disable-verify></blockcerts-verifier>
|
|
33
|
+
</div>
|
|
34
|
+
</body>
|
|
35
|
+
</html>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
|
|
6
|
+
|
|
7
|
+
<title>blockcerts-verifier demo</title>
|
|
8
|
+
|
|
9
|
+
<script src="./@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
|
|
10
|
+
<script type="module" src="./index.js"></script>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
// HACK(keanulee): The Redux package assumes `process` exists - mock it here before
|
|
14
|
+
// the module is loaded.
|
|
15
|
+
window.process = {
|
|
16
|
+
env: {
|
|
17
|
+
NODE_ENV: 'development'
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
</script>
|
|
21
|
+
<style>
|
|
22
|
+
.main {
|
|
23
|
+
max-width: 700px;
|
|
24
|
+
margin: 0 auto;
|
|
25
|
+
width: 100%;
|
|
26
|
+
}
|
|
27
|
+
</style>
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div class="main">
|
|
31
|
+
<h3>Basic blockcerts-verifier demo - Display mode Card</h3>
|
|
32
|
+
<blockcerts-verifier display-mode="card"></blockcerts-verifier>
|
|
33
|
+
</div>
|
|
34
|
+
</body>
|
|
35
|
+
</html>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
|
|
6
|
+
|
|
7
|
+
<title>blockcerts-verifier demo</title>
|
|
8
|
+
|
|
9
|
+
<script src="./@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
|
|
10
|
+
<script type="module" src="./index.js"></script>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
// HACK(keanulee): The Redux package assumes `process` exists - mock it here before
|
|
14
|
+
// the module is loaded.
|
|
15
|
+
window.process = {
|
|
16
|
+
env: {
|
|
17
|
+
NODE_ENV: 'development'
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
</script>
|
|
21
|
+
<style>
|
|
22
|
+
.main {
|
|
23
|
+
max-width: 700px;
|
|
24
|
+
margin: 0 auto;
|
|
25
|
+
width: 100%;
|
|
26
|
+
}
|
|
27
|
+
</style>
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div class="main">
|
|
31
|
+
<h3>Basic blockcerts-verifier demo - Display mode Full</h3>
|
|
32
|
+
<blockcerts-verifier display-mode="full" src='./mainnet-valid-2.0.json'></blockcerts-verifier>
|
|
33
|
+
</div>
|
|
34
|
+
</body>
|
|
35
|
+
</html>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
|
|
6
|
+
|
|
7
|
+
<title>blockcerts-verifier demo</title>
|
|
8
|
+
|
|
9
|
+
<script src="./@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
|
|
10
|
+
<script type="module" src="./index.js"></script>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
// HACK(keanulee): The Redux package assumes `process` exists - mock it here before
|
|
14
|
+
// the module is loaded.
|
|
15
|
+
window.process = {
|
|
16
|
+
env: {
|
|
17
|
+
NODE_ENV: 'development'
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
</script>
|
|
21
|
+
<style>
|
|
22
|
+
.main {
|
|
23
|
+
max-width: 700px;
|
|
24
|
+
margin: 0 auto;
|
|
25
|
+
width: 100%;
|
|
26
|
+
}
|
|
27
|
+
</style>
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div class="main">
|
|
31
|
+
<h3>Basic blockcerts-verifier demo - Display mode Fullscreen</h3>
|
|
32
|
+
<blockcerts-verifier display-mode="fullscreen" disable-auto-verify></blockcerts-verifier>
|
|
33
|
+
</div>
|
|
34
|
+
</body>
|
|
35
|
+
</html>
|
package/demo/events.html
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
|
|
6
|
+
|
|
7
|
+
<title>blockcerts-verifier demo</title>
|
|
8
|
+
|
|
9
|
+
<script src="./@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
|
|
10
|
+
<script type="module" src="./index.js"></script>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
// HACK(keanulee): The Redux package assumes `process` exists - mock it here before
|
|
14
|
+
// the module is loaded.
|
|
15
|
+
window.process = {
|
|
16
|
+
env: {
|
|
17
|
+
NODE_ENV: 'development'
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
function handleLoad (e) {
|
|
22
|
+
console.log(e.type, e.detail);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
window.addEventListener('certificate-load', handleLoad);
|
|
26
|
+
window.addEventListener('certificate-verify', handleLoad);
|
|
27
|
+
window.addEventListener('certificate-share', handleLoad);
|
|
28
|
+
</script>
|
|
29
|
+
<style>
|
|
30
|
+
.main {
|
|
31
|
+
max-width: 700px;
|
|
32
|
+
margin: 0 auto;
|
|
33
|
+
width: 100%;
|
|
34
|
+
}
|
|
35
|
+
</style>
|
|
36
|
+
</head>
|
|
37
|
+
<body>
|
|
38
|
+
<div class="main">
|
|
39
|
+
<h3>Basic blockcerts-verifier event demo</h3>
|
|
40
|
+
<blockcerts-verifier disable-auto-verify></blockcerts-verifier>
|
|
41
|
+
</div>
|
|
42
|
+
</body>
|
|
43
|
+
</html>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
|
|
6
|
+
|
|
7
|
+
<title>blockcerts-verifier demo</title>
|
|
8
|
+
|
|
9
|
+
<script src="./@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
|
|
10
|
+
<script type="module" src="./index.js"></script>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
// HACK(keanulee): The Redux package assumes `process` exists - mock it here before
|
|
14
|
+
// the module is loaded.
|
|
15
|
+
window.process = {
|
|
16
|
+
env: {
|
|
17
|
+
NODE_ENV: 'development'
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// other properties could be overwritten
|
|
22
|
+
const explorerAPI = {
|
|
23
|
+
serviceName: 'etherscan',
|
|
24
|
+
key: 'a-key',
|
|
25
|
+
keyPropertyName: 'apikey'
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
document.addEventListener('DOMContentLoaded', function () {
|
|
29
|
+
const verifierElement = document.querySelectorAll('blockcerts-verifier')[0];
|
|
30
|
+
verifierElement.explorerAPIs = [explorerAPI];
|
|
31
|
+
});
|
|
32
|
+
</script>
|
|
33
|
+
<style>
|
|
34
|
+
.main {
|
|
35
|
+
max-width: 700px;
|
|
36
|
+
margin: 0 auto;
|
|
37
|
+
width: 100%;
|
|
38
|
+
}
|
|
39
|
+
</style>
|
|
40
|
+
</head>
|
|
41
|
+
<body>
|
|
42
|
+
<div class="main">
|
|
43
|
+
<h3>Basic blockcerts-verifier demo - Explorer API</h3>
|
|
44
|
+
<blockcerts-verifier></blockcerts-verifier>
|
|
45
|
+
</div>
|
|
46
|
+
</body>
|
|
47
|
+
</html>
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
|
|
6
|
+
|
|
7
|
+
<title>blockcerts-verifier demo</title>
|
|
8
|
+
|
|
9
|
+
<script src="./@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
|
|
10
|
+
<script type="module" src="./index.js"></script>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
// HACK(keanulee): The Redux package assumes `process` exists - mock it here before
|
|
14
|
+
// the module is loaded.
|
|
15
|
+
window.process = {
|
|
16
|
+
env: {
|
|
17
|
+
NODE_ENV: 'development'
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// the code below is directly copied from cert-verifier-js and will not work in this example
|
|
22
|
+
const explorerAPI = {
|
|
23
|
+
serviceURL: 'https://insight.bitpay.com/api/tx/{transaction_id}',
|
|
24
|
+
priority: 0,
|
|
25
|
+
parsingFunction: function (jsonResponse) {
|
|
26
|
+
if (jsonResponse.confirmations < CONFIG.MininumConfirmations) {
|
|
27
|
+
throw new VerifierError(SUB_STEPS.fetchRemoteHash, getText('errors', 'parseBitpayResponse'));
|
|
28
|
+
}
|
|
29
|
+
const time = timestampToDateObject(jsonResponse.blocktime);
|
|
30
|
+
const outputs = jsonResponse.vout;
|
|
31
|
+
const lastOutput = outputs[outputs.length - 1];
|
|
32
|
+
const issuingAddress = jsonResponse.vout[0].scriptPubKey.addresses[0];
|
|
33
|
+
const remoteHash = stripHashPrefix(lastOutput.scriptPubKey.hex, BLOCKCHAINS.bitcoin.prefixes);
|
|
34
|
+
const revokedAddresses = outputs
|
|
35
|
+
.filter(output => !!output.spentTxId)
|
|
36
|
+
.map(output => output.scriptPubKey.addresses[0]);
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
remoteHash,
|
|
40
|
+
issuingAddress,
|
|
41
|
+
time,
|
|
42
|
+
revokedAddresses
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
document.addEventListener('DOMContentLoaded', function () {
|
|
48
|
+
const verifierElement = document.querySelectorAll('blockcerts-verifier')[0];
|
|
49
|
+
verifierElement.explorerAPIs = [explorerAPI];
|
|
50
|
+
});
|
|
51
|
+
</script>
|
|
52
|
+
<style>
|
|
53
|
+
.main {
|
|
54
|
+
max-width: 700px;
|
|
55
|
+
margin: 0 auto;
|
|
56
|
+
width: 100%;
|
|
57
|
+
}
|
|
58
|
+
</style>
|
|
59
|
+
</head>
|
|
60
|
+
<body>
|
|
61
|
+
<div class="main">
|
|
62
|
+
<h3>Basic blockcerts-verifier demo - Explorer API</h3>
|
|
63
|
+
<blockcerts-verifier></blockcerts-verifier>
|
|
64
|
+
</div>
|
|
65
|
+
</body>
|
|
66
|
+
</html>
|