@sparkdreamnft/sparkdreamjs 0.0.42 → 0.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/akash/bundle.d.ts +134 -134
  2. package/akash/bundle.js +150 -150
  3. package/cosmos/bundle.d.ts +160 -160
  4. package/cosmos/bundle.js +182 -182
  5. package/esm/akash/bundle.js +150 -150
  6. package/esm/cosmos/bundle.js +182 -182
  7. package/esm/ibc/bundle.js +116 -116
  8. package/esm/sparkdream/artifact/module/v1/module.js +71 -0
  9. package/esm/sparkdream/artifact/v1/genesis.js +279 -0
  10. package/esm/sparkdream/artifact/v1/params.js +645 -0
  11. package/esm/sparkdream/artifact/v1/query.js +3415 -0
  12. package/esm/sparkdream/artifact/v1/query.lcd.js +159 -0
  13. package/esm/sparkdream/artifact/v1/query.rpc.Query.js +188 -0
  14. package/esm/sparkdream/artifact/v1/tx.amino.js +159 -0
  15. package/esm/sparkdream/artifact/v1/tx.js +5751 -0
  16. package/esm/sparkdream/artifact/v1/tx.registry.js +573 -0
  17. package/esm/sparkdream/artifact/v1/tx.rpc.msg.js +199 -0
  18. package/esm/sparkdream/artifact/v1/types.js +2603 -0
  19. package/esm/sparkdream/blog/v1/params.js +37 -1
  20. package/esm/sparkdream/blog/v1/post.js +38 -1
  21. package/esm/sparkdream/blog/v1/query.js +351 -0
  22. package/esm/sparkdream/blog/v1/query.lcd.js +12 -0
  23. package/esm/sparkdream/blog/v1/query.rpc.Query.js +21 -1
  24. package/esm/sparkdream/blog/v1/types.js +38 -1
  25. package/esm/sparkdream/bundle.js +521 -483
  26. package/esm/sparkdream/client.js +4 -1
  27. package/esm/sparkdream/collect/v1/params.js +102 -126
  28. package/esm/sparkdream/collect/v1/types.js +207 -123
  29. package/esm/sparkdream/common/v1/media_flag.js +63 -0
  30. package/esm/sparkdream/common/v1/moderation_reason.js +1 -1
  31. package/esm/sparkdream/commons/v1/query.js +27 -3
  32. package/esm/sparkdream/federation/v1/packet.js +13 -1
  33. package/esm/sparkdream/federation/v1/query.js +163 -0
  34. package/esm/sparkdream/federation/v1/query.lcd.js +7 -0
  35. package/esm/sparkdream/federation/v1/query.rpc.Query.js +12 -1
  36. package/esm/sparkdream/federation/v1/tx.js +13 -1
  37. package/esm/sparkdream/federation/v1/types.js +134 -2
  38. package/esm/sparkdream/forum/v1/params.js +37 -1
  39. package/esm/sparkdream/forum/v1/post.js +38 -1
  40. package/esm/sparkdream/forum/v1/query.js +176 -0
  41. package/esm/sparkdream/forum/v1/query.lcd.js +7 -0
  42. package/esm/sparkdream/forum/v1/query.rpc.Query.js +12 -1
  43. package/esm/sparkdream/lcd.js +5 -0
  44. package/esm/sparkdream/rep/v1/accountability.js +22 -0
  45. package/esm/sparkdream/rep/v1/genesis.js +18 -2
  46. package/esm/sparkdream/rep/v1/initiative_bounty.js +200 -0
  47. package/esm/sparkdream/rep/v1/member.js +97 -35
  48. package/esm/sparkdream/rep/v1/params.js +186 -66
  49. package/esm/sparkdream/rep/v1/query.js +530 -0
  50. package/esm/sparkdream/rep/v1/query.lcd.js +23 -0
  51. package/esm/sparkdream/rep/v1/query.rpc.Query.js +26 -1
  52. package/esm/sparkdream/rep/v1/tx.js +354 -7
  53. package/esm/sparkdream/rep/v1/tx.registry.js +38 -2
  54. package/esm/sparkdream/rep/v1/tx.rpc.msg.js +13 -1
  55. package/esm/sparkdream/rpc.query.js +3 -0
  56. package/esm/sparkdream/rpc.tx.js +3 -0
  57. package/esm/sparkdream/service/v1/checkpoint.js +125 -0
  58. package/esm/sparkdream/service/v1/genesis.js +17 -1
  59. package/esm/sparkdream/service/v1/query.js +317 -0
  60. package/esm/sparkdream/service/v1/query.lcd.js +18 -0
  61. package/esm/sparkdream/service/v1/query.rpc.Query.js +21 -1
  62. package/esm/sparkdream/service/v1/service_type_config.js +37 -1
  63. package/esm/sparkdream/service/v1/tx.amino.js +6 -1
  64. package/esm/sparkdream/service/v1/tx.js +169 -0
  65. package/esm/sparkdream/service/v1/tx.registry.js +20 -2
  66. package/esm/sparkdream/service/v1/tx.rpc.msg.js +10 -1
  67. package/esm/sparkdream/shield/v1/params.js +13 -1
  68. package/esm/sparkdream/shield/v1/types.js +66 -1
  69. package/esm/sparkdream/sparkdream/v1/query.js +176 -0
  70. package/esm/sparkdream/sparkdream/v1/query.lcd.js +9 -0
  71. package/esm/sparkdream/sparkdream/v1/query.rpc.Query.js +14 -1
  72. package/esm/tendermint/bundle.js +20 -20
  73. package/ibc/bundle.d.ts +99 -99
  74. package/ibc/bundle.js +116 -116
  75. package/package.json +1 -1
  76. package/sparkdream/artifact/module/v1/module.d.ts +54 -0
  77. package/sparkdream/artifact/module/v1/module.js +74 -0
  78. package/sparkdream/artifact/v1/genesis.d.ts +88 -0
  79. package/sparkdream/artifact/v1/genesis.js +282 -0
  80. package/sparkdream/artifact/v1/params.d.ts +251 -0
  81. package/sparkdream/artifact/v1/params.js +648 -0
  82. package/sparkdream/artifact/v1/query.d.ts +1986 -0
  83. package/sparkdream/artifact/v1/query.js +3418 -0
  84. package/sparkdream/artifact/v1/query.lcd.d.ts +27 -0
  85. package/sparkdream/artifact/v1/query.lcd.js +163 -0
  86. package/sparkdream/artifact/v1/query.rpc.Query.d.ts +88 -0
  87. package/sparkdream/artifact/v1/query.rpc.Query.js +193 -0
  88. package/sparkdream/artifact/v1/tx.amino.d.ts +158 -0
  89. package/sparkdream/artifact/v1/tx.amino.js +162 -0
  90. package/sparkdream/artifact/v1/tx.d.ts +3268 -0
  91. package/sparkdream/artifact/v1/tx.js +5755 -0
  92. package/sparkdream/artifact/v1/tx.registry.d.ts +385 -0
  93. package/sparkdream/artifact/v1/tx.registry.js +577 -0
  94. package/sparkdream/artifact/v1/tx.rpc.msg.d.ts +109 -0
  95. package/sparkdream/artifact/v1/tx.rpc.msg.js +204 -0
  96. package/sparkdream/artifact/v1/types.d.ts +1157 -0
  97. package/sparkdream/artifact/v1/types.js +2620 -0
  98. package/sparkdream/blog/v1/params.d.ts +46 -0
  99. package/sparkdream/blog/v1/params.js +37 -1
  100. package/sparkdream/blog/v1/post.d.ts +24 -0
  101. package/sparkdream/blog/v1/post.js +38 -1
  102. package/sparkdream/blog/v1/query.d.ts +195 -0
  103. package/sparkdream/blog/v1/query.js +352 -1
  104. package/sparkdream/blog/v1/query.lcd.d.ts +3 -1
  105. package/sparkdream/blog/v1/query.lcd.js +12 -0
  106. package/sparkdream/blog/v1/query.rpc.Query.d.ts +13 -1
  107. package/sparkdream/blog/v1/query.rpc.Query.js +20 -0
  108. package/sparkdream/blog/v1/types.d.ts +24 -0
  109. package/sparkdream/blog/v1/types.js +38 -1
  110. package/sparkdream/bundle.d.ts +20540 -17854
  111. package/sparkdream/bundle.js +521 -483
  112. package/sparkdream/client.d.ts +160 -0
  113. package/sparkdream/client.js +4 -1
  114. package/sparkdream/collect/v1/params.d.ts +0 -4
  115. package/sparkdream/collect/v1/params.js +102 -126
  116. package/sparkdream/collect/v1/types.d.ts +80 -4
  117. package/sparkdream/collect/v1/types.js +207 -123
  118. package/sparkdream/common/v1/media_flag.d.ts +23 -0
  119. package/sparkdream/common/v1/media_flag.js +68 -0
  120. package/sparkdream/common/v1/moderation_reason.d.ts +1 -1
  121. package/sparkdream/common/v1/moderation_reason.js +1 -1
  122. package/sparkdream/commons/v1/query.d.ts +19 -1
  123. package/sparkdream/commons/v1/query.js +26 -2
  124. package/sparkdream/federation/v1/packet.d.ts +14 -0
  125. package/sparkdream/federation/v1/packet.js +13 -1
  126. package/sparkdream/federation/v1/query.d.ts +92 -0
  127. package/sparkdream/federation/v1/query.js +164 -1
  128. package/sparkdream/federation/v1/query.lcd.d.ts +2 -1
  129. package/sparkdream/federation/v1/query.lcd.js +7 -0
  130. package/sparkdream/federation/v1/query.rpc.Query.d.ts +9 -1
  131. package/sparkdream/federation/v1/query.rpc.Query.js +11 -0
  132. package/sparkdream/federation/v1/tx.d.ts +18 -0
  133. package/sparkdream/federation/v1/tx.js +13 -1
  134. package/sparkdream/federation/v1/types.d.ts +128 -0
  135. package/sparkdream/federation/v1/types.js +135 -3
  136. package/sparkdream/forum/v1/params.d.ts +46 -0
  137. package/sparkdream/forum/v1/params.js +37 -1
  138. package/sparkdream/forum/v1/post.d.ts +30 -0
  139. package/sparkdream/forum/v1/post.js +38 -1
  140. package/sparkdream/forum/v1/query.d.ts +98 -0
  141. package/sparkdream/forum/v1/query.js +177 -1
  142. package/sparkdream/forum/v1/query.lcd.d.ts +2 -1
  143. package/sparkdream/forum/v1/query.lcd.js +7 -0
  144. package/sparkdream/forum/v1/query.rpc.Query.d.ts +9 -1
  145. package/sparkdream/forum/v1/query.rpc.Query.js +11 -0
  146. package/sparkdream/lcd.d.ts +3 -0
  147. package/sparkdream/lcd.js +5 -0
  148. package/sparkdream/rep/v1/accountability.d.ts +12 -0
  149. package/sparkdream/rep/v1/accountability.js +22 -0
  150. package/sparkdream/rep/v1/genesis.d.ts +18 -7
  151. package/sparkdream/rep/v1/genesis.js +18 -2
  152. package/sparkdream/rep/v1/initiative_bounty.d.ts +143 -0
  153. package/sparkdream/rep/v1/initiative_bounty.js +203 -0
  154. package/sparkdream/rep/v1/member.d.ts +82 -28
  155. package/sparkdream/rep/v1/member.js +97 -35
  156. package/sparkdream/rep/v1/params.d.ts +128 -28
  157. package/sparkdream/rep/v1/params.js +186 -66
  158. package/sparkdream/rep/v1/query.d.ts +315 -10
  159. package/sparkdream/rep/v1/query.js +531 -1
  160. package/sparkdream/rep/v1/query.lcd.d.ts +3 -1
  161. package/sparkdream/rep/v1/query.lcd.js +23 -0
  162. package/sparkdream/rep/v1/query.rpc.Query.d.ts +18 -1
  163. package/sparkdream/rep/v1/query.rpc.Query.js +25 -0
  164. package/sparkdream/rep/v1/tx.d.ts +245 -1
  165. package/sparkdream/rep/v1/tx.js +355 -8
  166. package/sparkdream/rep/v1/tx.registry.d.ts +25 -1
  167. package/sparkdream/rep/v1/tx.registry.js +37 -1
  168. package/sparkdream/rep/v1/tx.rpc.msg.d.ts +7 -1
  169. package/sparkdream/rep/v1/tx.rpc.msg.js +12 -0
  170. package/sparkdream/rpc.query.d.ts +32 -0
  171. package/sparkdream/rpc.query.js +3 -0
  172. package/sparkdream/rpc.tx.d.ts +3 -0
  173. package/sparkdream/rpc.tx.js +3 -0
  174. package/sparkdream/service/v1/checkpoint.d.ts +93 -0
  175. package/sparkdream/service/v1/checkpoint.js +128 -0
  176. package/sparkdream/service/v1/genesis.d.ts +15 -0
  177. package/sparkdream/service/v1/genesis.js +17 -1
  178. package/sparkdream/service/v1/query.d.ts +186 -0
  179. package/sparkdream/service/v1/query.js +318 -1
  180. package/sparkdream/service/v1/query.lcd.d.ts +3 -1
  181. package/sparkdream/service/v1/query.lcd.js +18 -0
  182. package/sparkdream/service/v1/query.rpc.Query.d.ts +13 -1
  183. package/sparkdream/service/v1/query.rpc.Query.js +20 -0
  184. package/sparkdream/service/v1/service_type_config.d.ts +48 -0
  185. package/sparkdream/service/v1/service_type_config.js +37 -1
  186. package/sparkdream/service/v1/tx.amino.d.ts +6 -1
  187. package/sparkdream/service/v1/tx.amino.js +5 -0
  188. package/sparkdream/service/v1/tx.d.ts +97 -0
  189. package/sparkdream/service/v1/tx.js +170 -1
  190. package/sparkdream/service/v1/tx.registry.d.ts +13 -1
  191. package/sparkdream/service/v1/tx.registry.js +19 -1
  192. package/sparkdream/service/v1/tx.rpc.msg.d.ts +9 -1
  193. package/sparkdream/service/v1/tx.rpc.msg.js +9 -0
  194. package/sparkdream/shield/v1/params.d.ts +16 -0
  195. package/sparkdream/shield/v1/params.js +13 -1
  196. package/sparkdream/shield/v1/tx.d.ts +2 -2
  197. package/sparkdream/shield/v1/types.d.ts +45 -2
  198. package/sparkdream/shield/v1/types.js +69 -2
  199. package/sparkdream/sparkdream/v1/query.d.ts +132 -0
  200. package/sparkdream/sparkdream/v1/query.js +177 -1
  201. package/sparkdream/sparkdream/v1/query.lcd.d.ts +2 -1
  202. package/sparkdream/sparkdream/v1/query.lcd.js +9 -0
  203. package/sparkdream/sparkdream/v1/query.rpc.Query.d.ts +11 -1
  204. package/sparkdream/sparkdream/v1/query.rpc.Query.js +13 -0
  205. package/tendermint/bundle.d.ts +844 -844
  206. package/tendermint/bundle.js +20 -20
@@ -166,5 +166,12 @@ class LCDQueryClient {
166
166
  const endpoint = `sparkdream/federation/v1/get_escalated_challenge/${params.contentId}`;
167
167
  return await this.req.get(endpoint);
168
168
  };
169
+ /* FederatedContentBody returns the full body of one federated record. List
170
+ and show queries return the body as "" whenever media_flags != 0
171
+ (docs/content-scanning.md §3.4). */
172
+ federatedContentBody = async (params) => {
173
+ const endpoint = `sparkdream/federation/v1/federated_content_body/${params.id}`;
174
+ return await this.req.get(endpoint);
175
+ };
169
176
  }
170
177
  exports.LCDQueryClient = LCDQueryClient;
@@ -1,6 +1,6 @@
1
1
  import { TxRpc } from "../../../types";
2
2
  import { QueryClient } from "@cosmjs/stargate";
3
- import { QueryParamsRequest, QueryParamsResponse, QueryGetPeerRequest, QueryGetPeerResponse, QueryListPeersRequest, QueryListPeersResponse, QueryGetPeerPolicyRequest, QueryGetPeerPolicyResponse, QueryGetBridgeBindingRequest, QueryGetBridgeBindingResponse, QueryListBridgeBindingsRequest, QueryListBridgeBindingsResponse, QueryGetFederatedContentRequest, QueryGetFederatedContentResponse, QueryListFederatedContentRequest, QueryListFederatedContentResponse, QueryGetIdentityLinkRequest, QueryGetIdentityLinkResponse, QueryListIdentityLinksRequest, QueryListIdentityLinksResponse, QueryResolveRemoteIdentityRequest, QueryResolveRemoteIdentityResponse, QueryGetPendingIdentityChallengeRequest, QueryGetPendingIdentityChallengeResponse, QueryListPendingIdentityChallengesRequest, QueryListPendingIdentityChallengesResponse, QueryGetReputationAttestationRequest, QueryGetReputationAttestationResponse, QueryListOutboundAttestationsRequest, QueryListOutboundAttestationsResponse, QueryVerifierActivityRequest, QueryVerifierActivityResponse, QueryOperatorRewardPoolRequest, QueryOperatorRewardPoolResponse, QueryGetVerificationRecordRequest, QueryGetVerificationRecordResponse, QueryGetEscalatedChallengeRequest, QueryGetEscalatedChallengeResponse } from "./query";
3
+ import { QueryParamsRequest, QueryParamsResponse, QueryGetPeerRequest, QueryGetPeerResponse, QueryListPeersRequest, QueryListPeersResponse, QueryGetPeerPolicyRequest, QueryGetPeerPolicyResponse, QueryGetBridgeBindingRequest, QueryGetBridgeBindingResponse, QueryListBridgeBindingsRequest, QueryListBridgeBindingsResponse, QueryGetFederatedContentRequest, QueryGetFederatedContentResponse, QueryListFederatedContentRequest, QueryListFederatedContentResponse, QueryGetIdentityLinkRequest, QueryGetIdentityLinkResponse, QueryListIdentityLinksRequest, QueryListIdentityLinksResponse, QueryResolveRemoteIdentityRequest, QueryResolveRemoteIdentityResponse, QueryGetPendingIdentityChallengeRequest, QueryGetPendingIdentityChallengeResponse, QueryListPendingIdentityChallengesRequest, QueryListPendingIdentityChallengesResponse, QueryGetReputationAttestationRequest, QueryGetReputationAttestationResponse, QueryListOutboundAttestationsRequest, QueryListOutboundAttestationsResponse, QueryVerifierActivityRequest, QueryVerifierActivityResponse, QueryOperatorRewardPoolRequest, QueryOperatorRewardPoolResponse, QueryGetVerificationRecordRequest, QueryGetVerificationRecordResponse, QueryGetEscalatedChallengeRequest, QueryGetEscalatedChallengeResponse, QueryFederatedContentBodyRequest, QueryFederatedContentBodyResponse } from "./query";
4
4
  /** Query defines the gRPC querier service. */
5
5
  export interface Query {
6
6
  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
@@ -35,6 +35,12 @@ export interface Query {
35
35
  operatorRewardPool(request?: QueryOperatorRewardPoolRequest): Promise<QueryOperatorRewardPoolResponse>;
36
36
  getVerificationRecord(request: QueryGetVerificationRecordRequest): Promise<QueryGetVerificationRecordResponse>;
37
37
  getEscalatedChallenge(request: QueryGetEscalatedChallengeRequest): Promise<QueryGetEscalatedChallengeResponse>;
38
+ /**
39
+ * FederatedContentBody returns the full body of one federated record. List
40
+ * and show queries return the body as "" whenever media_flags != 0
41
+ * (docs/content-scanning.md §3.4).
42
+ */
43
+ federatedContentBody(request: QueryFederatedContentBodyRequest): Promise<QueryFederatedContentBodyResponse>;
38
44
  }
39
45
  export declare class QueryClientImpl implements Query {
40
46
  private readonly rpc;
@@ -58,6 +64,7 @@ export declare class QueryClientImpl implements Query {
58
64
  operatorRewardPool: (request?: QueryOperatorRewardPoolRequest) => Promise<QueryOperatorRewardPoolResponse>;
59
65
  getVerificationRecord: (request: QueryGetVerificationRecordRequest) => Promise<QueryGetVerificationRecordResponse>;
60
66
  getEscalatedChallenge: (request: QueryGetEscalatedChallengeRequest) => Promise<QueryGetEscalatedChallengeResponse>;
67
+ federatedContentBody: (request: QueryFederatedContentBodyRequest) => Promise<QueryFederatedContentBodyResponse>;
61
68
  }
62
69
  export declare const createRpcQueryExtension: (base: QueryClient) => {
63
70
  params(request?: QueryParamsRequest): Promise<QueryParamsResponse>;
@@ -79,4 +86,5 @@ export declare const createRpcQueryExtension: (base: QueryClient) => {
79
86
  operatorRewardPool(request?: QueryOperatorRewardPoolRequest): Promise<QueryOperatorRewardPoolResponse>;
80
87
  getVerificationRecord(request: QueryGetVerificationRecordRequest): Promise<QueryGetVerificationRecordResponse>;
81
88
  getEscalatedChallenge(request: QueryGetEscalatedChallengeRequest): Promise<QueryGetEscalatedChallengeResponse>;
89
+ federatedContentBody(request: QueryFederatedContentBodyRequest): Promise<QueryFederatedContentBodyResponse>;
82
90
  };
@@ -138,6 +138,14 @@ class QueryClientImpl {
138
138
  const promise = this.rpc.request("sparkdream.federation.v1.Query", "GetEscalatedChallenge", data);
139
139
  return promise.then(data => query_1.QueryGetEscalatedChallengeResponse.decode(new binary_1.BinaryReader(data)));
140
140
  };
141
+ /* FederatedContentBody returns the full body of one federated record. List
142
+ and show queries return the body as "" whenever media_flags != 0
143
+ (docs/content-scanning.md §3.4). */
144
+ federatedContentBody = async (request) => {
145
+ const data = query_1.QueryFederatedContentBodyRequest.encode(request).finish();
146
+ const promise = this.rpc.request("sparkdream.federation.v1.Query", "FederatedContentBody", data);
147
+ return promise.then(data => query_1.QueryFederatedContentBodyResponse.decode(new binary_1.BinaryReader(data)));
148
+ };
141
149
  }
142
150
  exports.QueryClientImpl = QueryClientImpl;
143
151
  const createRpcQueryExtension = (base) => {
@@ -200,6 +208,9 @@ const createRpcQueryExtension = (base) => {
200
208
  },
201
209
  getEscalatedChallenge(request) {
202
210
  return queryService.getEscalatedChallenge(request);
211
+ },
212
+ federatedContentBody(request) {
213
+ return queryService.federatedContentBody(request);
203
214
  }
204
215
  };
205
216
  };
@@ -510,6 +510,15 @@ export interface MsgSubmitFederatedContent {
510
510
  * SUPERSEDED; one already past verification only gains the forward link.
511
511
  */
512
512
  supersedes?: ContentRef;
513
+ /**
514
+ * license is the license the source carries for this content, as an
515
+ * SPDX-style id. Only public-domain content enters the chain: "CC0-1.0"
516
+ * (the author's #cc0 dedication) or "PDM-1.0" (#publicdomain, the Public
517
+ * Domain Mark). Anything else is rejected. Verifiers re-check the claim
518
+ * against the fetched post; a record whose source does not carry the
519
+ * marker is never verified.
520
+ */
521
+ license: string;
513
522
  }
514
523
  export interface MsgSubmitFederatedContentProtoMsg {
515
524
  typeUrl: "/sparkdream.federation.v1.MsgSubmitFederatedContent";
@@ -540,6 +549,15 @@ export interface MsgSubmitFederatedContentAmino {
540
549
  * SUPERSEDED; one already past verification only gains the forward link.
541
550
  */
542
551
  supersedes?: ContentRefAmino;
552
+ /**
553
+ * license is the license the source carries for this content, as an
554
+ * SPDX-style id. Only public-domain content enters the chain: "CC0-1.0"
555
+ * (the author's #cc0 dedication) or "PDM-1.0" (#publicdomain, the Public
556
+ * Domain Mark). Anything else is rejected. Verifiers re-check the claim
557
+ * against the fetched post; a record whose source does not carry the
558
+ * marker is never verified.
559
+ */
560
+ license?: string;
543
561
  }
544
562
  export interface MsgSubmitFederatedContentAminoMsg {
545
563
  type: "sparkdream/x/federation/MsgSubmitFederatedContent";
@@ -1342,7 +1342,8 @@ function createBaseMsgSubmitFederatedContent() {
1342
1342
  protocolMetadata: new Uint8Array(),
1343
1343
  remoteCreatedAt: BigInt(0),
1344
1344
  contentHash: new Uint8Array(),
1345
- supersedes: undefined
1345
+ supersedes: undefined,
1346
+ license: ""
1346
1347
  };
1347
1348
  }
1348
1349
  /**
@@ -1393,6 +1394,9 @@ exports.MsgSubmitFederatedContent = {
1393
1394
  if (message.supersedes !== undefined) {
1394
1395
  types_1.ContentRef.encode(message.supersedes, writer.uint32(106).fork()).ldelim();
1395
1396
  }
1397
+ if (message.license !== "") {
1398
+ writer.uint32(114).string(message.license);
1399
+ }
1396
1400
  return writer;
1397
1401
  },
1398
1402
  decode(input, length) {
@@ -1441,6 +1445,9 @@ exports.MsgSubmitFederatedContent = {
1441
1445
  case 13:
1442
1446
  message.supersedes = types_1.ContentRef.decode(reader, reader.uint32());
1443
1447
  break;
1448
+ case 14:
1449
+ message.license = reader.string();
1450
+ break;
1444
1451
  default:
1445
1452
  reader.skipType(tag & 7);
1446
1453
  break;
@@ -1463,6 +1470,7 @@ exports.MsgSubmitFederatedContent = {
1463
1470
  message.remoteCreatedAt = object.remoteCreatedAt !== undefined && object.remoteCreatedAt !== null ? BigInt(object.remoteCreatedAt.toString()) : BigInt(0);
1464
1471
  message.contentHash = object.contentHash ?? new Uint8Array();
1465
1472
  message.supersedes = object.supersedes !== undefined && object.supersedes !== null ? types_1.ContentRef.fromPartial(object.supersedes) : undefined;
1473
+ message.license = object.license ?? "";
1466
1474
  return message;
1467
1475
  },
1468
1476
  fromAmino(object) {
@@ -1506,6 +1514,9 @@ exports.MsgSubmitFederatedContent = {
1506
1514
  if (object.supersedes !== undefined && object.supersedes !== null) {
1507
1515
  message.supersedes = types_1.ContentRef.fromAmino(object.supersedes);
1508
1516
  }
1517
+ if (object.license !== undefined && object.license !== null) {
1518
+ message.license = object.license;
1519
+ }
1509
1520
  return message;
1510
1521
  },
1511
1522
  toAmino(message) {
@@ -1523,6 +1534,7 @@ exports.MsgSubmitFederatedContent = {
1523
1534
  obj.remote_created_at = message.remoteCreatedAt !== BigInt(0) ? message.remoteCreatedAt?.toString() : undefined;
1524
1535
  obj.content_hash = message.contentHash ? (0, helpers_1.base64FromBytes)(message.contentHash) : undefined;
1525
1536
  obj.supersedes = message.supersedes ? types_1.ContentRef.toAmino(message.supersedes) : undefined;
1537
+ obj.license = message.license === "" ? undefined : message.license;
1526
1538
  return obj;
1527
1539
  },
1528
1540
  fromAminoMsg(object) {
@@ -268,6 +268,26 @@ export interface PeerPolicy {
268
268
  * peer's name.
269
269
  */
270
270
  contentHosts: string[];
271
+ /**
272
+ * Author curation for bridged content (MsgSubmitFederatedContent, the
273
+ * external-protocol peers). An author is admitted only when BOTH gates
274
+ * pass, and blocked_identities still overrides both:
275
+ *
276
+ * allowed_identities the admitted authors ("@user@host"), or "*" for
277
+ * any author. Empty admits nobody: a new external
278
+ * peer anchors nothing until the Operations
279
+ * Committee decides who is in scope.
280
+ * curation an x/collect collection whose active link items
281
+ * name the admitted authors, curated by the
282
+ * collection's owner and collaborators without a
283
+ * proposal per author. Unset: no collection gate.
284
+ *
285
+ * So "*" plus a collection lets the collection alone decide, and a list
286
+ * without a collection lets the list alone decide. The author's own
287
+ * consent (following the bridge account) is a bridge-side rule on top.
288
+ */
289
+ allowedIdentities: string[];
290
+ curation?: IdentityCuration;
271
291
  }
272
292
  export interface PeerPolicyProtoMsg {
273
293
  typeUrl: "/sparkdream.federation.v1.PeerPolicy";
@@ -309,11 +329,67 @@ export interface PeerPolicyAmino {
309
329
  * peer's name.
310
330
  */
311
331
  content_hosts?: string[];
332
+ /**
333
+ * Author curation for bridged content (MsgSubmitFederatedContent, the
334
+ * external-protocol peers). An author is admitted only when BOTH gates
335
+ * pass, and blocked_identities still overrides both:
336
+ *
337
+ * allowed_identities the admitted authors ("@user@host"), or "*" for
338
+ * any author. Empty admits nobody: a new external
339
+ * peer anchors nothing until the Operations
340
+ * Committee decides who is in scope.
341
+ * curation an x/collect collection whose active link items
342
+ * name the admitted authors, curated by the
343
+ * collection's owner and collaborators without a
344
+ * proposal per author. Unset: no collection gate.
345
+ *
346
+ * So "*" plus a collection lets the collection alone decide, and a list
347
+ * without a collection lets the list alone decide. The author's own
348
+ * consent (following the bridge account) is a bridge-side rule on top.
349
+ */
350
+ allowed_identities?: string[];
351
+ curation?: IdentityCurationAmino;
312
352
  }
313
353
  export interface PeerPolicyAminoMsg {
314
354
  type: "/sparkdream.federation.v1.PeerPolicy";
315
355
  value: PeerPolicyAmino;
316
356
  }
357
+ /**
358
+ * IdentityCuration points a peer's author gate at an x/collect collection.
359
+ * @name IdentityCuration
360
+ * @package sparkdream.federation.v1
361
+ * @see proto type: sparkdream.federation.v1.IdentityCuration
362
+ */
363
+ export interface IdentityCuration {
364
+ /**
365
+ * collection_id is the x/collect collection listing admitted authors, one
366
+ * link item each: an "@user@host" handle or the profile URL
367
+ * ("https://host/@user"). Only active items in an active collection count.
368
+ */
369
+ collectionId: bigint;
370
+ }
371
+ export interface IdentityCurationProtoMsg {
372
+ typeUrl: "/sparkdream.federation.v1.IdentityCuration";
373
+ value: Uint8Array;
374
+ }
375
+ /**
376
+ * IdentityCuration points a peer's author gate at an x/collect collection.
377
+ * @name IdentityCurationAmino
378
+ * @package sparkdream.federation.v1
379
+ * @see proto type: sparkdream.federation.v1.IdentityCuration
380
+ */
381
+ export interface IdentityCurationAmino {
382
+ /**
383
+ * collection_id is the x/collect collection listing admitted authors, one
384
+ * link item each: an "@user@host" handle or the profile URL
385
+ * ("https://host/@user"). Only active items in an active collection count.
386
+ */
387
+ collection_id?: string;
388
+ }
389
+ export interface IdentityCurationAminoMsg {
390
+ type: "/sparkdream.federation.v1.IdentityCuration";
391
+ value: IdentityCurationAmino;
392
+ }
317
393
  /**
318
394
  * BridgeBinding represents the federation-owned binding between a bridge
319
395
  * operator and a peer. Economic state (bond, status, unbonding, slashing
@@ -696,6 +772,23 @@ export interface FederatedContent {
696
772
  * predecessor, so it is never content id 0 and 0 is unambiguous here.
697
773
  */
698
774
  supersededBy: bigint;
775
+ /**
776
+ * license is the public-domain license the content entered the chain
777
+ * under ("CC0-1.0" or "PDM-1.0"). Always set: content without one is
778
+ * rejected at submission and on IBC receive.
779
+ */
780
+ license: string;
781
+ /**
782
+ * media_flags is the OR of sparkdream.common.v1.MediaFlag bits, computed on
783
+ * submission and IBC receive (body scanned for data URIs; content_uri set).
784
+ * Non-zero withholds body from list and show queries (fetch it via
785
+ * FederatedContentBody). content_hash already covers the body hash.
786
+ */
787
+ mediaFlags: number;
788
+ /**
789
+ * media_rules_version is the labelling rules version that produced media_flags.
790
+ */
791
+ mediaRulesVersion: number;
699
792
  }
700
793
  export interface FederatedContentProtoMsg {
701
794
  typeUrl: "/sparkdream.federation.v1.FederatedContent";
@@ -735,6 +828,23 @@ export interface FederatedContentAmino {
735
828
  * predecessor, so it is never content id 0 and 0 is unambiguous here.
736
829
  */
737
830
  superseded_by?: string;
831
+ /**
832
+ * license is the public-domain license the content entered the chain
833
+ * under ("CC0-1.0" or "PDM-1.0"). Always set: content without one is
834
+ * rejected at submission and on IBC receive.
835
+ */
836
+ license?: string;
837
+ /**
838
+ * media_flags is the OR of sparkdream.common.v1.MediaFlag bits, computed on
839
+ * submission and IBC receive (body scanned for data URIs; content_uri set).
840
+ * Non-zero withholds body from list and show queries (fetch it via
841
+ * FederatedContentBody). content_hash already covers the body hash.
842
+ */
843
+ media_flags?: number;
844
+ /**
845
+ * media_rules_version is the labelling rules version that produced media_flags.
846
+ */
847
+ media_rules_version?: number;
738
848
  }
739
849
  export interface FederatedContentAminoMsg {
740
850
  type: "/sparkdream.federation.v1.FederatedContent";
@@ -1034,6 +1144,24 @@ export declare const PeerPolicy: {
1034
1144
  toProto(message: PeerPolicy): Uint8Array;
1035
1145
  toProtoMsg(message: PeerPolicy): PeerPolicyProtoMsg;
1036
1146
  };
1147
+ /**
1148
+ * IdentityCuration points a peer's author gate at an x/collect collection.
1149
+ * @name IdentityCuration
1150
+ * @package sparkdream.federation.v1
1151
+ * @see proto type: sparkdream.federation.v1.IdentityCuration
1152
+ */
1153
+ export declare const IdentityCuration: {
1154
+ typeUrl: string;
1155
+ encode(message: IdentityCuration, writer?: BinaryWriter): BinaryWriter;
1156
+ decode(input: BinaryReader | Uint8Array, length?: number): IdentityCuration;
1157
+ fromPartial(object: DeepPartial<IdentityCuration>): IdentityCuration;
1158
+ fromAmino(object: IdentityCurationAmino): IdentityCuration;
1159
+ toAmino(message: IdentityCuration): IdentityCurationAmino;
1160
+ fromAminoMsg(object: IdentityCurationAminoMsg): IdentityCuration;
1161
+ fromProtoMsg(message: IdentityCurationProtoMsg): IdentityCuration;
1162
+ toProto(message: IdentityCuration): Uint8Array;
1163
+ toProtoMsg(message: IdentityCuration): IdentityCurationProtoMsg;
1164
+ };
1037
1165
  /**
1038
1166
  * BridgeBinding represents the federation-owned binding between a bridge
1039
1167
  * operator and a peer. Economic state (bond, status, unbonding, slashing
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PeerRemovalState = exports.OutboundAttestation = exports.TagReputation = exports.ReputationAttestation = exports.PendingIdentityChallenge = exports.IdentityLink = exports.ContentRef = exports.FederatedContent = exports.ArbiterHashSubmission = exports.EscalatedChallenge = exports.VerificationRecord = exports.BridgeBinding = exports.PeerPolicy = exports.Peer = exports.JuryVerdictAmino = exports.JuryVerdict = exports.PendingVerifierVerdictAmino = exports.PendingVerifierVerdict = exports.VerificationOutcomeAmino = exports.VerificationOutcome = exports.IdentityLinkStatusAmino = exports.IdentityLinkStatus = exports.FederatedContentStatusAmino = exports.FederatedContentStatus = exports.BridgeStatusAmino = exports.BridgeStatus = exports.PeerStatusAmino = exports.PeerStatus = exports.PeerTypeAmino = exports.PeerType = void 0;
3
+ exports.PeerRemovalState = exports.OutboundAttestation = exports.TagReputation = exports.ReputationAttestation = exports.PendingIdentityChallenge = exports.IdentityLink = exports.ContentRef = exports.FederatedContent = exports.ArbiterHashSubmission = exports.EscalatedChallenge = exports.VerificationRecord = exports.BridgeBinding = exports.IdentityCuration = exports.PeerPolicy = exports.Peer = exports.JuryVerdictAmino = exports.JuryVerdict = exports.PendingVerifierVerdictAmino = exports.PendingVerifierVerdict = exports.VerificationOutcomeAmino = exports.VerificationOutcome = exports.IdentityLinkStatusAmino = exports.IdentityLinkStatus = exports.FederatedContentStatusAmino = exports.FederatedContentStatus = exports.BridgeStatusAmino = exports.BridgeStatus = exports.PeerStatusAmino = exports.PeerStatus = exports.PeerTypeAmino = exports.PeerType = void 0;
4
4
  exports.peerTypeFromJSON = peerTypeFromJSON;
5
5
  exports.peerTypeToJSON = peerTypeToJSON;
6
6
  exports.peerStatusFromJSON = peerStatusFromJSON;
@@ -695,7 +695,9 @@ function createBasePeerPolicy() {
695
695
  acceptReputationAttestations: false,
696
696
  requireReview: false,
697
697
  blockedIdentities: [],
698
- contentHosts: []
698
+ contentHosts: [],
699
+ allowedIdentities: [],
700
+ curation: undefined
699
701
  };
700
702
  }
701
703
  /**
@@ -740,6 +742,12 @@ exports.PeerPolicy = {
740
742
  for (const v of message.contentHosts) {
741
743
  writer.uint32(90).string(v);
742
744
  }
745
+ for (const v of message.allowedIdentities) {
746
+ writer.uint32(98).string(v);
747
+ }
748
+ if (message.curation !== undefined) {
749
+ exports.IdentityCuration.encode(message.curation, writer.uint32(106).fork()).ldelim();
750
+ }
743
751
  return writer;
744
752
  },
745
753
  decode(input, length) {
@@ -782,6 +790,12 @@ exports.PeerPolicy = {
782
790
  case 11:
783
791
  message.contentHosts.push(reader.string());
784
792
  break;
793
+ case 12:
794
+ message.allowedIdentities.push(reader.string());
795
+ break;
796
+ case 13:
797
+ message.curation = exports.IdentityCuration.decode(reader, reader.uint32());
798
+ break;
785
799
  default:
786
800
  reader.skipType(tag & 7);
787
801
  break;
@@ -802,6 +816,8 @@ exports.PeerPolicy = {
802
816
  message.requireReview = object.requireReview ?? false;
803
817
  message.blockedIdentities = object.blockedIdentities?.map(e => e) || [];
804
818
  message.contentHosts = object.contentHosts?.map(e => e) || [];
819
+ message.allowedIdentities = object.allowedIdentities?.map(e => e) || [];
820
+ message.curation = object.curation !== undefined && object.curation !== null ? exports.IdentityCuration.fromPartial(object.curation) : undefined;
805
821
  return message;
806
822
  },
807
823
  fromAmino(object) {
@@ -831,6 +847,10 @@ exports.PeerPolicy = {
831
847
  }
832
848
  message.blockedIdentities = object.blocked_identities?.map(e => e) || [];
833
849
  message.contentHosts = object.content_hosts?.map(e => e) || [];
850
+ message.allowedIdentities = object.allowed_identities?.map(e => e) || [];
851
+ if (object.curation !== undefined && object.curation !== null) {
852
+ message.curation = exports.IdentityCuration.fromAmino(object.curation);
853
+ }
834
854
  return message;
835
855
  },
836
856
  toAmino(message) {
@@ -866,6 +886,13 @@ exports.PeerPolicy = {
866
886
  else {
867
887
  obj.content_hosts = message.contentHosts;
868
888
  }
889
+ if (message.allowedIdentities) {
890
+ obj.allowed_identities = message.allowedIdentities.map(e => e);
891
+ }
892
+ else {
893
+ obj.allowed_identities = message.allowedIdentities;
894
+ }
895
+ obj.curation = message.curation ? exports.IdentityCuration.toAmino(message.curation) : undefined;
869
896
  return obj;
870
897
  },
871
898
  fromAminoMsg(object) {
@@ -884,6 +911,75 @@ exports.PeerPolicy = {
884
911
  };
885
912
  }
886
913
  };
914
+ function createBaseIdentityCuration() {
915
+ return {
916
+ collectionId: BigInt(0)
917
+ };
918
+ }
919
+ /**
920
+ * IdentityCuration points a peer's author gate at an x/collect collection.
921
+ * @name IdentityCuration
922
+ * @package sparkdream.federation.v1
923
+ * @see proto type: sparkdream.federation.v1.IdentityCuration
924
+ */
925
+ exports.IdentityCuration = {
926
+ typeUrl: "/sparkdream.federation.v1.IdentityCuration",
927
+ encode(message, writer = binary_1.BinaryWriter.create()) {
928
+ if (message.collectionId !== BigInt(0)) {
929
+ writer.uint32(8).uint64(message.collectionId);
930
+ }
931
+ return writer;
932
+ },
933
+ decode(input, length) {
934
+ const reader = input instanceof binary_1.BinaryReader ? input : new binary_1.BinaryReader(input);
935
+ let end = length === undefined ? reader.len : reader.pos + length;
936
+ const message = createBaseIdentityCuration();
937
+ while (reader.pos < end) {
938
+ const tag = reader.uint32();
939
+ switch (tag >>> 3) {
940
+ case 1:
941
+ message.collectionId = reader.uint64();
942
+ break;
943
+ default:
944
+ reader.skipType(tag & 7);
945
+ break;
946
+ }
947
+ }
948
+ return message;
949
+ },
950
+ fromPartial(object) {
951
+ const message = createBaseIdentityCuration();
952
+ message.collectionId = object.collectionId !== undefined && object.collectionId !== null ? BigInt(object.collectionId.toString()) : BigInt(0);
953
+ return message;
954
+ },
955
+ fromAmino(object) {
956
+ const message = createBaseIdentityCuration();
957
+ if (object.collection_id !== undefined && object.collection_id !== null) {
958
+ message.collectionId = BigInt(object.collection_id);
959
+ }
960
+ return message;
961
+ },
962
+ toAmino(message) {
963
+ const obj = {};
964
+ obj.collection_id = message.collectionId !== BigInt(0) ? message.collectionId?.toString() : undefined;
965
+ return obj;
966
+ },
967
+ fromAminoMsg(object) {
968
+ return exports.IdentityCuration.fromAmino(object.value);
969
+ },
970
+ fromProtoMsg(message) {
971
+ return exports.IdentityCuration.decode(message.value);
972
+ },
973
+ toProto(message) {
974
+ return exports.IdentityCuration.encode(message).finish();
975
+ },
976
+ toProtoMsg(message) {
977
+ return {
978
+ typeUrl: "/sparkdream.federation.v1.IdentityCuration",
979
+ value: exports.IdentityCuration.encode(message).finish()
980
+ };
981
+ }
982
+ };
887
983
  function createBaseBridgeBinding() {
888
984
  return {
889
985
  address: "",
@@ -1641,7 +1737,10 @@ function createBaseFederatedContent() {
1641
1737
  expiresAt: BigInt(0),
1642
1738
  contentHash: new Uint8Array(),
1643
1739
  supersedes: undefined,
1644
- supersededBy: BigInt(0)
1740
+ supersededBy: BigInt(0),
1741
+ license: "",
1742
+ mediaFlags: 0,
1743
+ mediaRulesVersion: 0
1645
1744
  };
1646
1745
  }
1647
1746
  /**
@@ -1707,6 +1806,15 @@ exports.FederatedContent = {
1707
1806
  if (message.supersededBy !== BigInt(0)) {
1708
1807
  writer.uint32(144).uint64(message.supersededBy);
1709
1808
  }
1809
+ if (message.license !== "") {
1810
+ writer.uint32(154).string(message.license);
1811
+ }
1812
+ if (message.mediaFlags !== 0) {
1813
+ writer.uint32(160).uint32(message.mediaFlags);
1814
+ }
1815
+ if (message.mediaRulesVersion !== 0) {
1816
+ writer.uint32(168).uint32(message.mediaRulesVersion);
1817
+ }
1710
1818
  return writer;
1711
1819
  },
1712
1820
  decode(input, length) {
@@ -1770,6 +1878,15 @@ exports.FederatedContent = {
1770
1878
  case 18:
1771
1879
  message.supersededBy = reader.uint64();
1772
1880
  break;
1881
+ case 19:
1882
+ message.license = reader.string();
1883
+ break;
1884
+ case 20:
1885
+ message.mediaFlags = reader.uint32();
1886
+ break;
1887
+ case 21:
1888
+ message.mediaRulesVersion = reader.uint32();
1889
+ break;
1773
1890
  default:
1774
1891
  reader.skipType(tag & 7);
1775
1892
  break;
@@ -1797,6 +1914,9 @@ exports.FederatedContent = {
1797
1914
  message.contentHash = object.contentHash ?? new Uint8Array();
1798
1915
  message.supersedes = object.supersedes !== undefined && object.supersedes !== null ? exports.ContentRef.fromPartial(object.supersedes) : undefined;
1799
1916
  message.supersededBy = object.supersededBy !== undefined && object.supersededBy !== null ? BigInt(object.supersededBy.toString()) : BigInt(0);
1917
+ message.license = object.license ?? "";
1918
+ message.mediaFlags = object.mediaFlags ?? 0;
1919
+ message.mediaRulesVersion = object.mediaRulesVersion ?? 0;
1800
1920
  return message;
1801
1921
  },
1802
1922
  fromAmino(object) {
@@ -1855,6 +1975,15 @@ exports.FederatedContent = {
1855
1975
  if (object.superseded_by !== undefined && object.superseded_by !== null) {
1856
1976
  message.supersededBy = BigInt(object.superseded_by);
1857
1977
  }
1978
+ if (object.license !== undefined && object.license !== null) {
1979
+ message.license = object.license;
1980
+ }
1981
+ if (object.media_flags !== undefined && object.media_flags !== null) {
1982
+ message.mediaFlags = object.media_flags;
1983
+ }
1984
+ if (object.media_rules_version !== undefined && object.media_rules_version !== null) {
1985
+ message.mediaRulesVersion = object.media_rules_version;
1986
+ }
1858
1987
  return message;
1859
1988
  },
1860
1989
  toAmino(message) {
@@ -1877,6 +2006,9 @@ exports.FederatedContent = {
1877
2006
  obj.content_hash = message.contentHash ? (0, helpers_1.base64FromBytes)(message.contentHash) : undefined;
1878
2007
  obj.supersedes = message.supersedes ? exports.ContentRef.toAmino(message.supersedes) : undefined;
1879
2008
  obj.superseded_by = message.supersededBy !== BigInt(0) ? message.supersededBy?.toString() : undefined;
2009
+ obj.license = message.license === "" ? undefined : message.license;
2010
+ obj.media_flags = message.mediaFlags === 0 ? undefined : message.mediaFlags;
2011
+ obj.media_rules_version = message.mediaRulesVersion === 0 ? undefined : message.mediaRulesVersion;
1880
2012
  return obj;
1881
2013
  },
1882
2014
  fromAminoMsg(object) {
@@ -310,6 +310,29 @@ export interface Params {
310
310
  * 0 disables the cap. Seeded by the genesis defaults (2).
311
311
  */
312
312
  maxAcceptProposalsPerSentinelPerThread: number;
313
+ /**
314
+ * Media rules (docs/content-scanning.md §9). Apply to writes the chain
315
+ * labels as media (media_flags != 0); plain text is never affected.
316
+ *
317
+ * media_min_trust_level is the trust level (0-4) an active member needs to
318
+ * post media without a bond (default 1 = PROVISIONAL). Anonymous
319
+ * (shield-routed) content can never carry media.
320
+ */
321
+ mediaMinTrustLevel: number;
322
+ /**
323
+ * media_author_bond_min is the DREAM author bond (micro-DREAM) that lets an
324
+ * active member below media_min_trust_level post media at creation. A
325
+ * confirmed abuse verdict costs the author this bond. 0 disables the bond
326
+ * path.
327
+ */
328
+ mediaAuthorBondMin: string;
329
+ /**
330
+ * media_scan_fee is a flat bond-denom fee, burned, charged on every write
331
+ * whose media labels are non-zero. It prices the off-chain scanning work
332
+ * media creates (and media spam); 0 disables it. Scanner pay itself comes
333
+ * from commons recurring spend (§8.5).
334
+ */
335
+ mediaScanFee: string;
313
336
  }
314
337
  export interface ParamsProtoMsg {
315
338
  typeUrl: "/sparkdream.forum.v1.Params";
@@ -625,6 +648,29 @@ export interface ParamsAmino {
625
648
  * 0 disables the cap. Seeded by the genesis defaults (2).
626
649
  */
627
650
  max_accept_proposals_per_sentinel_per_thread?: number;
651
+ /**
652
+ * Media rules (docs/content-scanning.md §9). Apply to writes the chain
653
+ * labels as media (media_flags != 0); plain text is never affected.
654
+ *
655
+ * media_min_trust_level is the trust level (0-4) an active member needs to
656
+ * post media without a bond (default 1 = PROVISIONAL). Anonymous
657
+ * (shield-routed) content can never carry media.
658
+ */
659
+ media_min_trust_level?: number;
660
+ /**
661
+ * media_author_bond_min is the DREAM author bond (micro-DREAM) that lets an
662
+ * active member below media_min_trust_level post media at creation. A
663
+ * confirmed abuse verdict costs the author this bond. 0 disables the bond
664
+ * path.
665
+ */
666
+ media_author_bond_min?: string;
667
+ /**
668
+ * media_scan_fee is a flat bond-denom fee, burned, charged on every write
669
+ * whose media labels are non-zero. It prices the off-chain scanning work
670
+ * media creates (and media spam); 0 disables it. Scanner pay itself comes
671
+ * from commons recurring spend (§8.5).
672
+ */
673
+ media_scan_fee?: string;
628
674
  }
629
675
  export interface ParamsAminoMsg {
630
676
  type: "sparkdream/x/forum/Params";