Skip to content
This repository has been archived by the owner on Sep 14, 2023. It is now read-only.

feat: pre-compute test users #753

Merged
merged 13 commits into from
Mar 17, 2023
9 changes: 9 additions & 0 deletions _tasks/downloads.ts → _tasks/generate_artifacts.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import { hex } from "../crypto/mod.ts"
import { testUser } from "../crypto/mod.ts"
import * as $ from "../deps/scale.ts"
import dprintConfig from "../dprint.json" assert { type: "json" }
import { DEFAULT_TEST_USER_COUNT, publicKeysPath } from "../providers/frame/common.ts"

const GENERATION_NOTICE = `// This file was generated by \`_tasks/downloads.ts\``

Expand All @@ -22,3 +25,9 @@ const { indentWidth, lineWidth, typescript: config } = dprintConfig
tsFormatter.setConfig({ indentWidth, lineWidth }, config)
`,
)

const publicKeys = []
for (let i = 0; i < DEFAULT_TEST_USER_COUNT; i++) {
publicKeys.push(testUser(i).publicKey)
}
await Deno.writeFile(publicKeysPath, $.array($.sizedUint8Array(32)).encode(publicKeys))
7 changes: 5 additions & 2 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,16 @@
"addWords": true
}
],
"dictionaries": ["project-words"],
"dictionaries": [
"project-words"
],
"ignorePaths": [
"**/*.wasm",
"frame_metadata/raw_erc20_metadata.json",
"target",
"**/__snapshots__/*.snap",
"**/*.contract",
"examples/smart_contract/metadata.json"
"examples/smart_contract/metadata.json",
"**/*.scale"
]
}
9 changes: 7 additions & 2 deletions dprint.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,13 @@
"lineWidth": 80,
"textWrap": "always"
},
"includes": ["**.{dockerfile,json,md,toml,ts,tsx}"],
"excludes": ["target", "util/tsFormatter.ts"],
"includes": [
"**.{dockerfile,json,md,toml,ts,tsx}"
],
"excludes": [
"target",
"util/tsFormatter.ts"
],
"plugins": [
"https://plugins.dprint.dev/dockerfile-0.3.0.wasm",
"https://plugins.dprint.dev/json-0.17.0.wasm",
Expand Down
11 changes: 5 additions & 6 deletions providers/frame/common.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { ss58, testUser } from "../../crypto/mod.ts"
import { ss58 } from "../../crypto/mod.ts"
import * as $ from "../../deps/scale.ts"

const DEFAULT_TEST_USER_COUNT = 1_000
export const DEFAULT_TEST_USER_COUNT = 100_000
const DEFAULT_TEST_USER_INITIAL_FUNDS = 1_000_000_000_000_000_000
export const publicKeysPath = import.meta.resolve("./test_users_public_keys.scale")

export async function createCustomChainSpec(
bin: string,
Expand All @@ -14,11 +15,9 @@ export async function createCustomChainSpec(
})
const chainSpec = JSON.parse(new TextDecoder().decode((await buildSpecCmd.output()).stdout))
const balances: [string, number][] = chainSpec.genesis.runtime.balances.balances
const publicKeys = $.array($.sizedUint8Array(32)).decode(await Deno.readFile(publicKeysPath))
for (let i = 0; i < DEFAULT_TEST_USER_COUNT; i++) {
balances.push([
ss58.encode(networkPrefix, testUser(i).publicKey),
DEFAULT_TEST_USER_INITIAL_FUNDS,
])
balances.push([ss58.encode(networkPrefix, publicKeys[i]!), DEFAULT_TEST_USER_INITIAL_FUNDS])
}
const customChainSpecPath = await Deno.makeTempFile({
prefix: `custom-${chain}-chain-spec`,
Expand Down
Binary file added providers/frame/test_users_public_keys.scale
Binary file not shown.