genesis.ts 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { StoreContext } from '@dzlzv/hydra-common'
  2. import BN from 'bn.js'
  3. import { MembershipSystemSnapshot, WorkingGroup } from 'query-node/dist/model'
  4. import { membershipSystem, workingGroups } from './genesis-data'
  5. export async function loadGenesisData({ store }: StoreContext): Promise<void> {
  6. // Membership system
  7. await store.save<MembershipSystemSnapshot>(
  8. new MembershipSystemSnapshot({
  9. createdAt: new Date(0),
  10. updatedAt: new Date(0),
  11. snapshotBlock: 0,
  12. ...membershipSystem,
  13. membershipPrice: new BN(membershipSystem.membershipPrice),
  14. invitedInitialBalance: new BN(membershipSystem.invitedInitialBalance),
  15. })
  16. )
  17. // Working groups
  18. await Promise.all(
  19. workingGroups.map(async (group) =>
  20. store.save<WorkingGroup>(
  21. new WorkingGroup({
  22. createdAt: new Date(0),
  23. updatedAt: new Date(0),
  24. id: group.name,
  25. name: group.name,
  26. budget: new BN(group.budget),
  27. })
  28. )
  29. )
  30. )
  31. // TODO: members, workers
  32. }