Skip to content

Instantly share code, notes, and snippets.

@thesan
thesan / Validator.md
Last active November 30, 2023 17:11

Validator profile

The new Pioneer dashboard will display profiles describing each validator account. These profiles are just memberships bound to their respective validator accounts, plus a "verified" status, and a few generated statistics. To have their profile show each Validator needs to:

  1. Bind their Validator account to a membership through Pioneer. On chain this will be achieved by calling:

    • First: members.addStakingAccountCandidate(memberId). This transaction will be signed with either: the validator controller account (what Pioneer will be recommending), or the validator stash account (which will be viable once Joystream adds supports for Proxy Accounts).
    • Second: members.confirmStakingAccount(memberId, account) Here the account is the one used to sign the previews transaction. This transaction is signed with the membership controller account.

    This step will done in Pioneer in two way:

  • Existing membership case: If the bi
[
{
"title": "grinning",
"character": "😀"
},
{
"title": "grin",
"character": "😁"
},
{

Keybase proof

I hereby claim:

  • I am thesan on github.
  • I am thesand (https://keybase.io/thesand) on keybase.
  • I have a public key ASAANmphiwyqTywWgYDeDOxS4AGoA5sXuIbcFZuqF8hYWAo

To claim this, I am signing this object:

@thesan
thesan / config.json
Last active November 22, 2022 16:58
pioneer-config
{
"websocket_rpc": "wss://rpc.joystream.org:9944",
"graphql_server": "https://de.joystreamstats.live/graphql",
"graphql_server_websocket": "wss://de.joystreamstats.live/graphql"
}
require! {
chai : { expect }
'prelude-ls' : { id, obj-to-pairs, partition, filter, reject }
'ramda' : { equals }
'../src/defaults' : defaults
'../src/index' : index
}
eg =
files:
require! {
path : { basename, sep }
\prelude-ls : { each, filter, flip, fold, id, keys, partition, sortBy, Obj: { empty, map } }
ramda : { both, findLast, tap, test, useWith }
}
export new ->
#:: {opt} -> {opt}
@initOptions = ->{ defaultfile: \default.yml, deleteAfter: yes, methods: {}, method: id } with it
path = require 'path'
module.exports = (require './utils').exports ->
#:: {opt} -> {opt}
@initOptions = @merge
filepath: 'default.yml', deleteAfter: yes, methods: {}, method: (a, b)-> b
#:: {opt} -> {String:{String:meta}} -> [[String], [String]]
@getIndexes = @curry (opt, files)=> @flow [@keys files],
/*
* jQuery integration of PhotoSwipe (https://github.com/dimsemenov/photoswipe)
* Usage:
*<div id="gallery">
* <a data-src="path/to/image1" data-w="1024" data-h="800"><img src="path/to/thumbnail1"/></a>
* ...
*</div>
*<script type="text/javascript">
* var pswp;
* $( function() { pswp = $("#gallery").photoswipe() ) );