Browse Source

storage-node-v2: Add ‘static bag’ type.

Shamil Gadelshin 3 năm trước cách đây
mục cha
commit
6f7f5ef4d5

+ 1 - 1
types/augment-codec/augment-api-query.ts

@@ -988,7 +988,7 @@ declare module '@polkadot/api/types/storage' {
       /**
        * Working groups' and council's bags storage map.
        **/
-      staticBags: AugmentedQuery<ApiType, (arg: StaticBagId | 'Council' | 'WorkingGroup' | number | Uint8Array) => Observable<StaticBag>, [StaticBagId]>;
+      staticBags: AugmentedQuery<ApiType, (arg: StaticBagId | { Council: any } | { WorkingGroup: any } | string | Uint8Array) => Observable<StaticBag>, [StaticBagId]>;
       /**
        * Storage buckets.
        **/

+ 0 - 1
types/augment-codec/augment-types.ts

@@ -152,7 +152,6 @@ declare module '@polkadot/types/types/registry' {
     'Compact<SlotNumber>': Compact<SlotNumber>;
     'Compact<SpanIndex>': Compact<SpanIndex>;
     'Compact<StakeId>': Compact<StakeId>;
-    'Compact<StaticBag>': Compact<StaticBag>;
     'Compact<StorageBucketId>': Compact<StorageBucketId>;
     'Compact<StorageProviderId>': Compact<StorageProviderId>;
     'Compact<StrikeCount>': Compact<StrikeCount>;

+ 13 - 9
types/augment/all/defs.json

@@ -995,7 +995,11 @@
         "numberOfStorageBuckets": "u64"
     },
     "DynamicBag": "u64",
-    "StaticBag": "u64",
+    "StaticBag": {
+        "objects": "BTreeMap<DataObjectId,{\"accepted\":\"bool\",\"deletion_prize\":\"u128\",\"size\":\"u64\"}>",
+        "stored_by": "StorageBucketIdSet",
+        "distributed_by": "Vec<u64>"
+    },
     "StorageBucket": {
         "operator_status": "StorageBucketOperatorStatus",
         "accepting_new_bags": "bool",
@@ -1003,16 +1007,16 @@
         "metadata": "Text"
     },
     "StaticBagId": {
-        "_enum": [
-            "Council",
-            "WorkingGroup"
-        ]
+        "_enum": {
+            "Council": "Null",
+            "WorkingGroup": "WorkingGroup"
+        }
     },
     "Static": {
-        "_enum": [
-            "Council",
-            "WorkingGroup"
-        ]
+        "_enum": {
+            "Council": "Null",
+            "WorkingGroup": "WorkingGroup"
+        }
     },
     "BagId": {
         "_enum": {

+ 7 - 1
types/augment/all/types.ts

@@ -1240,15 +1240,21 @@ export interface StakingStatus extends Enum {
 export interface Static extends Enum {
   readonly isCouncil: boolean;
   readonly isWorkingGroup: boolean;
+  readonly asWorkingGroup: WorkingGroup;
 }
 
 /** @name StaticBag */
-export interface StaticBag extends u64 {}
+export interface StaticBag extends Struct {
+  readonly objects: BTreeMap<DataObjectId, {"accepted":"bool","deletion_prize":"u128","size":"u64"}>;
+  readonly stored_by: StorageBucketIdSet;
+  readonly distributed_by: Vec<u64>;
+}
 
 /** @name StaticBagId */
 export interface StaticBagId extends Enum {
   readonly isCouncil: boolean;
   readonly isWorkingGroup: boolean;
+  readonly asWorkingGroup: WorkingGroup;
 }
 
 /** @name Status */

+ 1 - 1
types/augment/augment-api-query.ts

@@ -988,7 +988,7 @@ declare module '@polkadot/api/types/storage' {
       /**
        * Working groups' and council's bags storage map.
        **/
-      staticBags: AugmentedQuery<ApiType, (arg: StaticBagId | 'Council' | 'WorkingGroup' | number | Uint8Array) => Observable<StaticBag>, [StaticBagId]>;
+      staticBags: AugmentedQuery<ApiType, (arg: StaticBagId | { Council: any } | { WorkingGroup: any } | string | Uint8Array) => Observable<StaticBag>, [StaticBagId]>;
       /**
        * Storage buckets.
        **/

+ 0 - 1
types/augment/augment-types.ts

@@ -152,7 +152,6 @@ declare module '@polkadot/types/types/registry' {
     'Compact<SlotNumber>': Compact<SlotNumber>;
     'Compact<SpanIndex>': Compact<SpanIndex>;
     'Compact<StakeId>': Compact<StakeId>;
-    'Compact<StaticBag>': Compact<StaticBag>;
     'Compact<StorageBucketId>': Compact<StorageBucketId>;
     'Compact<StorageProviderId>': Compact<StorageProviderId>;
     'Compact<StrikeCount>': Compact<StrikeCount>;

+ 51 - 23
types/src/storage.ts

@@ -1,7 +1,8 @@
-import { Null, u64, Text, Vec, bool, GenericAccountId as AccountId, BTreeSet } from '@polkadot/types'
+import { Null, u128, u64, Text, Vec, bool, GenericAccountId as AccountId, BTreeSet, BTreeMap } from '@polkadot/types'
 import { RegistryTypes } from '@polkadot/types/types'
-import { JoyBTreeSet, JoyEnum, JoyStructDecorated } from './common'
+import { JoyBTreeSet, JoyEnum, JoyStructDecorated, WorkingGroup } from './common'
 
+export class BalanceOf extends u128 {}
 export class DataObjectId extends u64 {}
 export class StorageBucketId extends u64 {}
 
@@ -20,9 +21,40 @@ export class StorageBucketsPerBagValueConstraint
 //TODO: implement these types
 export class DynamicBagId extends u64 {}
 export class DynamicBag extends u64 {}
-export class StaticBag extends u64 {}
-//
 
+export type DataObjectType = {
+  accepted: bool
+  deletion_prize: BalanceOf
+  size: u64
+}
+
+export class DataObject
+  extends JoyStructDecorated({
+    accepted: bool,
+    deletion_prize: BalanceOf,
+    size: u64,
+  })
+  implements DataObjectType {}
+
+export class DataObjectIdSet extends JoyBTreeSet(DataObjectId) {}
+export class DataObjectIdMap extends BTreeMap.with(DataObjectId, DataObject) {}
+export class DistributionBucketId extends u64 {}
+export class StorageBucketIdSet extends JoyBTreeSet(StorageBucketId) {}
+export class DistributionBucketSet extends JoyBTreeSet(DistributionBucketId) {}
+
+export type StaticBagType = {
+  objects: DataObjectIdMap
+  stored_by: StorageBucketIdSet
+  distributed_by: DistributionBucketSet
+}
+
+export class StaticBag
+  extends JoyStructDecorated({
+    objects: DataObjectIdMap,
+    stored_by: StorageBucketIdSet,
+    distributed_by: DistributionBucketSet,
+  })
+  implements StaticBagType {}
 
 export type DynamicBagCreationPolicyType = {
   numberOfStorageBuckets: u64
@@ -43,7 +75,7 @@ export class DynamicBagType extends JoyEnum(DynamicBagTypeDef) {}
 
 export const StaticBagIdDef = {
   Council: Null,
-  WorkingGroup: Null,
+  WorkingGroup: WorkingGroup,
 } as const
 export type StaticBagIdKey = keyof typeof StaticBagIdDef
 export class StaticBagId extends JoyEnum(StaticBagIdDef) {}
@@ -77,32 +109,28 @@ export class Voucher
   implements VoucherType {}
 
 export const StorageBucketOperatorStatusDef = {
-    Missing: Null,
-    InvitedStorageWorker: u64,
-    StorageWorker: u64
+  Missing: Null,
+  InvitedStorageWorker: u64,
+  StorageWorker: u64,
 } as const
 export type StorageBucketOperatorStatusKey = keyof typeof StorageBucketOperatorStatusDef
 export class StorageBucketOperatorStatus extends JoyEnum(StorageBucketOperatorStatusDef) {}
 
 export type StorageBucketType = {
+  operator_status: StorageBucketOperatorStatus
+  accepting_new_bags: bool
+  voucher: Voucher
+  metadata: Text
+}
+
+export class StorageBucket
+  extends JoyStructDecorated({
     operator_status: StorageBucketOperatorStatus,
     accepting_new_bags: bool,
     voucher: Voucher,
     metadata: Text,
-}
-
-export class StorageBucket
-    extends JoyStructDecorated({
-        operator_status: StorageBucketOperatorStatus,
-        accepting_new_bags: bool,
-        voucher: Voucher,
-        metadata: Text,
-    })
-    implements StorageBucketType {}
-
-export class StorageBucketIdSet extends JoyBTreeSet(StorageBucketId) {}
-
-export class DataObjectIdSet extends JoyBTreeSet(DataObjectId) {}
+  })
+  implements StorageBucketType {}
 
 export type DataObjectCreationParametersType = {
   size: u64
@@ -156,6 +184,6 @@ export const storageTypes: RegistryTypes = {
   DataObjectIdSet,
   ContentIdSet,
   ContentId,
-  StorageBucketOperatorStatus
+  StorageBucketOperatorStatus,
 }
 export default storageTypes