Platform
Resources
Pricing
Sign in
Contact us
Jim Pick
Freelance Filecoin developer in Victoria, Canada
Workspace
Fork
Public
Provider.Quest
By
Jim Pick
Edited
Mar 27, 2022
Apache 2.0
Insert cell
Insert cell
// dataUrl = 'https://gateway.pinata.cloud/ipfs/QmQ1nX8rDj17qvauk1paPqaoCgvcVZ8cryarfr3tr2XGwP/f0688165.json'
Insert cell
providers
=
(
await
fetch
(
'https://gateway.pinata.cloud/ipfs/QmQ1nX8rDj17qvauk1paPqaoCgvcVZ8cryarfr3tr2XGwP/providers.json'
)
)
.
json
(
)
Insert cell
viewof
selectedProvider
=
Inputs
.
select
(
d3
.
shuffle
(
providers
)
)
Insert cell
provider
=
{
// return 'f0688165'
// return 'f02620'
return
selectedProvider
}
Insert cell
Inputs
.
table
(
transitionsPretty
)
Insert cell
dataUrl
=
{
return
`https://bafybeiay4ivzjx3uvk7cyx3mp3kvyjnb26xj33nza6bsw54rnhnbgm67ry.ipfs.dweb.link/${
provider
}.json`
// return `https://gateway.pinata.cloud/ipfs/QmQ1nX8rDj17qvauk1paPqaoCgvcVZ8cryarfr3tr2XGwP/${provider}.json`
}
Insert cell
powerData
=
(
await
fetch
(
dataUrl
)
)
.
json
(
)
Insert cell
powerDataWithDates
=
powerData
.
map
(
obj
=>
(
{
...
obj
,
date
:
d3
.
isoParse
(
obj
.
date
)
}
)
)
Insert cell
maxPower
=
{
return
166253442384265200
// f0688165
// return powerDataWithDates[powerDataWithDates.length - 1].qualityAdjPower
}
Insert cell
powerScale
=
d3
.
scalePow
(
)
.
exponent
(
0.25
)
.
domain
(
[
0
,
maxPower
]
)
.
range
(
[
0
,
15
]
)
Insert cell
logScale
=
d3
.
scaleLog
(
)
.
domain
(
[
32
*
1024
**
3
,
maxPower
]
)
.
range
(
[
0
,
30
]
)
Insert cell
powerLevels
=
powerDataWithDates
.
map
(
(
{
date
,
qualityAdjPower
}
)
=>
(
{
date
,
qualityAdjPower
,
level
:
Math
.
round
(
powerScale
(
qualityAdjPower
)
)
}
)
)
Insert cell
transitions
=
powerLevels
.
reduce
(
(
acc
,
record
)
=>
{
const
lastLevel
=
acc
.
length
?
acc
[
acc
.
length
-
1
]
.
level
:
-
1
const
newAcc
=
[
...
acc
]
if
(
record
.
level
>
lastLevel
)
newAcc
.
push
(
record
)
return
newAcc
}
,
[
]
)
Insert cell
transitionsPretty
=
transitions
.
map
(
(
{
date
,
qualityAdjPower
,
level
}
)
=>
(
{
date
,
level
,
qualityAdjPower
:
bytes
(
qualityAdjPower
,
{
mode
:
'binary'
}
)
}
)
)
Insert cell
md
`## Imports`
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Purpose-built for displays of data
Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Try it for free
Learn more
Fork
View
Export
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
providers
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
selectedProvider
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
provider
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
dataUrl
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
powerData
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
powerDataWithDates
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
maxPower
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
powerScale
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
logScale
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
powerLevels
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
transitions
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
transitionsPretty
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
bytes
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Edit
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML