genesis.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { StoreContext } from '@joystream/hydra-common'
  2. import BN from 'bn.js'
  3. import { Membership, MembershipEntryMethod, StorageSystemParameters } from 'query-node/dist/model'
  4. import { storageSystem, members } from './genesis-data'
  5. export async function loadGenesisData({ store }: StoreContext): Promise<void> {
  6. // Storage system
  7. await store.save<StorageSystemParameters>(
  8. new StorageSystemParameters({
  9. ...storageSystem,
  10. storageBucketMaxObjectsCountLimit: new BN(storageSystem.storageBucketMaxObjectsCountLimit),
  11. storageBucketMaxObjectsSizeLimit: new BN(storageSystem.storageBucketMaxObjectsSizeLimit),
  12. dataObjectFeePerMb: new BN(storageSystem.dataObjectFeePerMb),
  13. })
  14. )
  15. // Members
  16. for (const m of members) {
  17. // create new membership
  18. const member = new Membership({
  19. // main data
  20. id: m.member_id,
  21. rootAccount: m.root_account,
  22. controllerAccount: m.controller_account,
  23. handle: m.handle,
  24. about: m.about,
  25. avatarUri: m.avatar_uri,
  26. createdInBlock: 0,
  27. entry: MembershipEntryMethod.GENESIS,
  28. // fill in auto-generated fields
  29. createdAt: new Date(m.registered_at_time),
  30. updatedAt: new Date(m.registered_at_time),
  31. })
  32. await store.save<Membership>(member)
  33. }
  34. }