@bug-fix/drand-client
Version:
A client to the drand randomness beacon network.
126 lines (118 loc) • 5.17 kB
text/typescript
import {ChainInfo, defaultChainOptions} from './index';
import HttpChainClient from './http-chain-client';
import HttpCachingChain from './http-caching-chain';
export const DEFAULT_CHAIN_URL = 'https://api.drand.sh'
export const DEFAULT_CHAIN_INFO = {
public_key: '868f005eb8e6e4ca0a47c8a77ceaa5309a47978a7c71bc5cce96366b5d7a569937c529eeda66c7293784a9402801af31',
period: 30,
genesis_time: 1595431050,
hash: '8990e7a9aaed2ffed73dbd7092123d6f289930540d7651336225dc172e51b2ce',
groupHash: '176f93498eac9ca337150b46d21dd58673ea4e3581185f869672e59fa4cb390a',
schemeID: 'pedersen-bls-chained',
metadata: {
'beaconID': 'default'
}
}
export const QUICKNET_CHAIN_URL = 'https://api.drand.sh/52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971'
export const QUICKNET_CHAIN_INFO = {
public_key: '83cf0f2896adee7eb8b5f01fcad3912212c437e0073e911fb90022d3e760183c8c4b450b6a0a6c3ac6a5776a2d1064510d1fec758c921cc22b0e17e63aaf4bcb5ed66304de9cf809bd274ca73bab4af5a6e9c76a4bc09e76eae8991ef5ece45a',
period: 3,
genesis_time: 1692803367,
hash: '52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971',
groupHash: 'f477d5c89f21a17c863a7f937c6a6d15859414d2be09cd448d4279af331c5d3e',
schemeID: 'bls-unchained-g1-rfc9380',
metadata: {
beaconID: 'quicknet'
}
}
export const FASTNET_CHAIN_URL = 'https://api.drand.sh/dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493'
export const FASTNET_CHAIN_INFO: ChainInfo = {
hash: 'dbd506d6ef76e5f386f41c651dcb808c5bcbd75471cc4eafa3f4df7ad4e4c493',
public_key: 'a0b862a7527fee3a731bcb59280ab6abd62d5c0b6ea03dc4ddf6612fdfc9d01f01c31542541771903475eb1ec6615f8d0df0b8b6dce385811d6dcf8cbefb8759e5e616a3dfd054c928940766d9a5b9db91e3b697e5d70a975181e007f87fca5e',
period: 3,
genesis_time: 1677685200,
groupHash: 'a81e9d63f614ccdb144b8ff79fbd4d5a2d22055c0bfe4ee9a8092003dab1c6c0',
schemeID: 'bls-unchained-on-g1',
metadata: {
beaconID: 'fastnet'
}
};
export const TESTNET_DEFAULT_CHAIN_URL = 'https://pl-us.testnet.drand.sh'
export const TESTNET_DEFAULT_CHAIN_INFO: ChainInfo = {
public_key: '922a2e93828ff83345bae533f5172669a26c02dc76d6bf59c80892e12ab1455c229211886f35bb56af6d5bea981024df',
period: 25,
genesis_time: 1590445175,
hash: '84b2234fb34e835dccd048255d7ad3194b81af7d978c3bf157e3469592ae4e02',
groupHash: '4dd408e5fdff9323c76a9b6f087ba8fdc5a6da907bd9217d9d10f2287d081957',
schemeID: 'pedersen-bls-chained',
metadata: {
beaconID: 'default'
}
}
export const TESTNET_QUICKNET_CHAIN_URL = 'https://pl-us.testnet.drand.sh/cc9c398442737cbd141526600919edd69f1d6f9b4adb67e4d912fbc64341a9a5'
export const TESTNET_QUICKNET_CHAIN_INFO: ChainInfo = {
public_key: 'b15b65b46fb29104f6a4b5d1e11a8da6344463973d423661bb0804846a0ecd1ef93c25057f1c0baab2ac53e56c662b66072f6d84ee791a3382bfb055afab1e6a375538d8ffc451104ac971d2dc9b168e2d3246b0be2015969cbaac298f6502da',
period: 3,
genesis_time: 1689232296,
hash: 'cc9c398442737cbd141526600919edd69f1d6f9b4adb67e4d912fbc64341a9a5',
groupHash: '40d49d910472d4adb1d67f65db8332f11b4284eecf05c05c5eacd5eef7d40e2d',
schemeID: 'bls-unchained-g1-rfc9380',
metadata: {
beaconID: 'quicknet-t'
}
}
export function defaultClient(): HttpChainClient {
const opts = {
...defaultChainOptions,
chainVerificationParams: {
chainHash: DEFAULT_CHAIN_INFO.hash,
publicKey: DEFAULT_CHAIN_INFO.public_key
}
}
const chain = new HttpCachingChain(DEFAULT_CHAIN_URL, opts)
return new HttpChainClient(chain, opts)
}
export function quicknetClient(): HttpChainClient {
const opts = {
...defaultChainOptions,
chainVerificationParams: {
chainHash: QUICKNET_CHAIN_INFO.hash,
publicKey: QUICKNET_CHAIN_INFO.public_key
}
}
const chain = new HttpCachingChain(QUICKNET_CHAIN_URL, opts)
return new HttpChainClient(chain, opts)
}
export function fastnetClient(): HttpChainClient {
const opts = {
...defaultChainOptions,
chainVerificationParams: {
chainHash: FASTNET_CHAIN_INFO.hash,
publicKey: FASTNET_CHAIN_INFO.public_key,
}
}
const chain = new HttpCachingChain(FASTNET_CHAIN_URL, opts)
return new HttpChainClient(chain, opts)
}
export function testnetDefaultClient(): HttpChainClient {
const opts = {
...defaultChainOptions,
chainVerificationParams: {
chainHash: TESTNET_DEFAULT_CHAIN_INFO.hash,
publicKey: TESTNET_DEFAULT_CHAIN_INFO.public_key
}
}
const chain = new HttpCachingChain(TESTNET_DEFAULT_CHAIN_URL, opts)
return new HttpChainClient(chain, opts)
}
export function testnetQuicknetClient(): HttpChainClient {
const opts = {
...defaultChainOptions,
chainVerificationParams: {
chainHash: TESTNET_QUICKNET_CHAIN_INFO.hash,
publicKey: TESTNET_QUICKNET_CHAIN_INFO.public_key
}
}
const chain = new HttpCachingChain(TESTNET_QUICKNET_CHAIN_URL, opts)
return new HttpChainClient(chain, opts)
}