Przeglądaj źródła

Make use of member.registeredAtBlock, add isActive to worker

Leszek Wiesner 3 lat temu
rodzic
commit
977f88ddde

+ 4 - 2
query-node/mappings/bootstrap-data/scripts/fetchMembersData.ts

@@ -18,12 +18,13 @@ async function main() {
   const members = await getAllMembers(api, hash)
 
   fs.writeFileSync(path.resolve(__dirname, '../data/members.json'), JSON.stringify(members, undefined, 4))
-  console.log(`${members.length} members exported & saved!`)
+  const lastMemberId = Math.max(...members.map((m) => parseInt(m.memberId)))
+  console.log(`${members.length} members exported & saved! Last member id: ${lastMemberId}`)
 
   await api.disconnect()
 }
 
-async function getAllMembers(api: ApiPromise, hash?: BlockHash): Promise<any[]> {
+async function getAllMembers(api: ApiPromise, hash?: BlockHash): Promise<MemberJson[]> {
   const memberStorageEntries = hash
     ? await api.query.members.membershipById.entriesAt(hash)
     : await api.query.members.membershipById.entries()
@@ -39,6 +40,7 @@ async function getAllMembers(api: ApiPromise, hash?: BlockHash): Promise<any[]>
     avatarUri: member.avatar_uri.toString(),
     about: member.about.toString(),
     registeredAtTime: member.registered_at_time.toNumber(),
+    registeredAtBlock: member.registered_at_block.toNumber(),
   }))
 
   return members

+ 1 - 0
query-node/mappings/bootstrap-data/types.ts

@@ -6,6 +6,7 @@ export type MemberJson = {
   about?: string
   avatarUri?: string
   registeredAtTime: number
+  registeredAtBlock: number
 }
 
 export type StorageSystemJson = {

+ 3 - 2
query-node/mappings/bootstrap.ts

@@ -26,8 +26,8 @@ export async function bootstrapData({ store }: StoreContext): Promise<void> {
         handle: m.handle,
         about: m.about,
         avatarUri: m.avatarUri,
-        createdInBlock: 0,
-        entry: MembershipEntryMethod.GENESIS,
+        createdInBlock: m.registeredAtBlock,
+        entry: m.registeredAtBlock === 1 ? MembershipEntryMethod.GENESIS : MembershipEntryMethod.PAID,
         // fill in auto-generated fields
         createdAt: new Date(m.registeredAtTime),
         updatedAt: new Date(m.registeredAtTime),
@@ -45,6 +45,7 @@ export async function bootstrapData({ store }: StoreContext): Promise<void> {
           new Worker({
             id: workerEntityId(WorkerType[group], w.workerId),
             workerId: w.workerId,
+            isActive: true,
             type: WorkerType[group],
             createdAt: new Date(w.createdAt),
             updatedAt: new Date(w.createdAt),