소스 검색

Merge pull request #4074 from attemka/master

attemka 1 년 전
부모
커밋
af966ca677
72개의 변경된 파일2528개의 추가작업 그리고 775개의 파일을 삭제
  1. 10 0
      CHANGELOG.md
  2. 30 0
      docs/operator-guide.md
  3. 2 2
      packages/atlas/package.json
  4. 8 5
      packages/atlas/src/.env
  5. 250 0
      packages/atlas/src/api/queries/__generated__/baseTypes.generated.ts
  6. 1 0
      packages/atlas/src/api/queries/__generated__/bids.generated.tsx
  7. 320 18
      packages/atlas/src/api/queries/__generated__/channels.generated.tsx
  8. 9 0
      packages/atlas/src/api/queries/__generated__/comments.generated.tsx
  9. 12 0
      packages/atlas/src/api/queries/__generated__/featured.generated.tsx
  10. 77 0
      packages/atlas/src/api/queries/__generated__/fragments.generated.tsx
  11. 3 0
      packages/atlas/src/api/queries/__generated__/memberships.generated.tsx
  12. 57 0
      packages/atlas/src/api/queries/__generated__/nfts.generated.tsx
  13. 100 0
      packages/atlas/src/api/queries/__generated__/notifications.generated.tsx
  14. 10 0
      packages/atlas/src/api/queries/__generated__/transactionEvents.generated.tsx
  15. 79 0
      packages/atlas/src/api/queries/__generated__/videos.generated.tsx
  16. 150 51
      packages/atlas/src/api/queries/channels.graphql
  17. 1 0
      packages/atlas/src/api/queries/fragments.graphql
  18. 0 0
      packages/atlas/src/api/schemas/orion.json
  19. 1 1
      packages/atlas/src/api/schemas/schema.client.graphql
  20. 14 0
      packages/atlas/src/assets/icons/ActionCouncil.tsx
  21. 14 0
      packages/atlas/src/assets/icons/ActionCrown.tsx
  22. 16 0
      packages/atlas/src/assets/icons/ActionNft.tsx
  23. 14 0
      packages/atlas/src/assets/icons/ActionPayment.tsx
  24. 15 0
      packages/atlas/src/assets/icons/ActionRevenueShare.tsx
  25. 5 0
      packages/atlas/src/assets/icons/index.ts
  26. 8 0
      packages/atlas/src/assets/icons/svgs/action-council.svg
  27. 4 0
      packages/atlas/src/assets/icons/svgs/action-crown.svg
  28. 3 0
      packages/atlas/src/assets/icons/svgs/action-nft.svg
  29. 4 0
      packages/atlas/src/assets/icons/svgs/action-payment.svg
  30. 5 0
      packages/atlas/src/assets/icons/svgs/action-revenue-share.svg
  31. BIN
      packages/atlas/src/assets/images/crt-dashboard-1x.webp
  32. BIN
      packages/atlas/src/assets/images/crt-dashboard-2x.webp
  33. BIN
      packages/atlas/src/assets/images/crt-form-1x.webp
  34. BIN
      packages/atlas/src/assets/images/crt-form-2x.webp
  35. 68 0
      packages/atlas/src/components/CrtPreviewLayout/CrtPreviewLayout.styles.ts
  36. 60 0
      packages/atlas/src/components/CrtPreviewLayout/CrtPreviewLayout.tsx
  37. 1 0
      packages/atlas/src/components/CrtPreviewLayout/index.ts
  38. 3 2
      packages/atlas/src/components/ListItem/ListItem.styles.ts
  39. 6 3
      packages/atlas/src/components/ListItem/ListItem.tsx
  40. 22 0
      packages/atlas/src/components/TablePagination/TablePagination.styles.ts
  41. 117 0
      packages/atlas/src/components/TablePagination/TablePagination.tsx
  42. 1 0
      packages/atlas/src/components/TablePagination/index.ts
  43. 60 0
      packages/atlas/src/components/TablePaymentsHistory/TablePaymentsHistory.styles.ts
  44. 114 47
      packages/atlas/src/components/TablePaymentsHistory/TablePaymentsHistory.tsx
  45. 121 0
      packages/atlas/src/components/TablePaymentsHistory/TablePaymentsHistory.utils.tsx
  46. 203 0
      packages/atlas/src/components/WelcomeView/WelcomeView.styles.ts
  47. 209 0
      packages/atlas/src/components/WelcomeView/WelcomeView.tsx
  48. 2 0
      packages/atlas/src/components/WelcomeView/index.ts
  49. 1 1
      packages/atlas/src/components/_navigation/SidenavStudio/SidenavStudio.tsx
  50. 2 0
      packages/atlas/src/components/_overlays/AdminModal/AdminModal.tsx
  51. 3 4
      packages/atlas/src/components/_overlays/SendTransferDialogs/WithdrawFundsDialog.tsx
  52. 3 1
      packages/atlas/src/config/routes.ts
  53. 1 1
      packages/atlas/src/hooks/useBlockTimeEstimation.ts
  54. 1 1
      packages/atlas/src/joystream-lib/extrinsics.ts
  55. 1 1
      packages/atlas/src/providers/environment/store.ts
  56. 1 0
      packages/atlas/src/utils/polling.ts
  57. 5 0
      packages/atlas/src/views/studio/CrtPreviewEditView/CrtPreviewEditView.tsx
  58. 1 0
      packages/atlas/src/views/studio/CrtPreviewEditView/index.ts
  59. 5 0
      packages/atlas/src/views/studio/CrtPreviewView/CrtPreviewView.tsx
  60. 1 0
      packages/atlas/src/views/studio/CrtPreviewView/index.ts
  61. 26 0
      packages/atlas/src/views/studio/CrtWelcomeView/CrtWelcomeView.tsx
  62. 2 47
      packages/atlas/src/views/studio/MyPaymentsView/MyPayments.styles.ts
  63. 0 27
      packages/atlas/src/views/studio/MyPaymentsView/MyPaymentsHiddenView.tsx
  64. 30 33
      packages/atlas/src/views/studio/MyPaymentsView/PaymentsOverview/PaymentsOverview.hooks.ts
  65. 12 64
      packages/atlas/src/views/studio/MyPaymentsView/PaymentsTransactions/PaymentTransactions.hooks.ts
  66. 1 1
      packages/atlas/src/views/studio/MyPaymentsView/PaymentsTransactions/PaymentTransactions.styles.ts
  67. 5 7
      packages/atlas/src/views/studio/MyPaymentsView/PaymentsTransactions/PaymentTransactions.tsx
  68. 110 20
      packages/atlas/src/views/studio/MyPaymentsView/PaymentsTransactions/PaymentTransactions.utils.ts
  69. 21 5
      packages/atlas/src/views/studio/StudioLayout.tsx
  70. 2 205
      packages/atlas/src/views/studio/StudioWelcomeView/StudioWelcomeView.styles.ts
  71. 83 210
      packages/atlas/src/views/studio/StudioWelcomeView/StudioWelcomeView.tsx
  72. 2 18
      yarn.lock

+ 10 - 0
CHANGELOG.md

@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
+## [3.0.0] - 2023-04-12
+
+### Added
+
+- Channel payouts were introduced
+
+### Changed
+
+- Atlas now supports Ephesus runtime upgrade
+
 ## [2.1.0] - 2023-04-07
 
 ### Changed

+ 30 - 0
docs/operator-guide.md

@@ -146,6 +146,36 @@ Once youtube-synch is setup, you'll need to provide its API URL in `youtubeSyncA
 
 In order to enable YPP content in atlas, `googleConsoleClientId` variable needs to be provided. You can read more about it [here](https://developers.google.com/identity/gsi/web/guides/get-google-api-clientid).
 
+You are free to use existing metaprotocol (Query Node) categories, but you can also create your own that match your Gateway's specific needs. To get a list of all the existing categories you can use the following QN query:
+
+```graphql
+query {
+  videoCategories(limit: 200) {
+    id
+    name
+  }
+}
+```
+
+You can also see the current categories used by specific Gateways in Apps WG Notion: https://joystream.notion.site/5b3afe994cd64c7d8144cd2978fa5ceb?v=639feb777c514c26b2d88869d67cabf8
+
+To create a new QN category, you can use [Joystream CLI](https://github.com/Joystream/joystream/tree/master/cli):
+
+```bash
+joystream-cli content:createVideoCategory "My category" "My category description"
+```
+
+Once you run the above command, you can use the query above with a `orderBy: createdAt_DESC` argument to get the ID of the newly created category. You can then add it to the `content.categories` config entry.
+
+#### YouTube Partner Program
+
+All the YPP (YouTube Partner Program) parameters could be found in `atlas.config.yml` file located in `packages/atlas` directory.
+`features.ypp` section contains all the necessary params for setting up [youtube-synch](https://github.com/Joystream/youtube-synch/) and customizing user's rewards.
+
+Once youtube-synch is setup, you'll need to provide its API URL in `youtubeSyncApiUrl` variable.
+
+In order to enable YPP content in atlas, `googleConsoleClientId` variable needs to be provided. You can read more about it [here](https://developers.google.com/identity/gsi/web/guides/get-google-api-clientid).
+
 #### Terms of Service, Copyright Policy and Privacy Policy
 
 You can provide your own Terms of Service, Copyright Policy and Privacy Policy by updating the `legal.termsOfService`, `legal.copyrightPolicy` and `legal.privacyPolicy` config entries. All of these support basic Markdown syntax like headings and lists.

+ 2 - 2
packages/atlas/package.json

@@ -1,7 +1,7 @@
 {
   "name": "@joystream/atlas",
   "description": "UI for consuming Joystream - a user governed video platform",
-  "version": "2.1.0",
+  "version": "3.0.0",
   "license": "GPL-3.0",
   "scripts": {
     "start": "vite",
@@ -39,7 +39,7 @@
     "@hookform/resolvers": "^2.9.10",
     "@joystream/js": "^1.4.0",
     "@joystream/metadata-protobuf": "2.8.1",
-    "@joystream/types": "0.20.5",
+    "@joystream/types": "2.1.0",
     "@livesession/sdk": "^1.1.4",
     "@loadable/component": "^5.15.2",
     "@lottiefiles/react-lottie-player": "^3.5.0",

+ 8 - 5
packages/atlas/src/.env

@@ -4,11 +4,14 @@
 VITE_ENV=development
 
 # App configuration
-VITE_APP_ID=
+VITE_APP_ID=4414-2
 
 VITE_AVATAR_SERVICE_URL=https://atlas-services.joystream.org/avatars
 VITE_GEOLOCATION_SERVICE_URL=https://geolocation.joystream.org
 VITE_HCAPTCHA_SITE_KEY=41cae189-7676-4f6b-aa56-635be26d3ceb
+VITE_GOOGLE_CONSOLE_CLIENT_ID=
+VITE_YOUTUBE_SYNC_API_URL=
+VITE_YOUTUBE_COLLABORATOR_MEMBER_ID=
 
 # YPP configuration
 VITE_GOOGLE_CONSOLE_CLIENT_ID=246331758613-rc1psegmsr9l4e33nqu8rre3gno5dsca.apps.googleusercontent.com
@@ -16,20 +19,20 @@ VITE_YOUTUBE_SYNC_API_URL=https://52.204.147.11.nip.io
 VITE_YOUTUBE_COLLABORATOR_MEMBER_ID=18
 
 # Production env URLs
-VITE_PRODUCTION_ORION_URL=https://orion.joystream.org/v2/graphql
-VITE_PRODUCTION_QUERY_NODE_SUBSCRIPTION_URL=wss://orion.joystream.org/v2/graphql
+VITE_PRODUCTION_ORION_URL=https://orion.joystream.org/graphql
+VITE_PRODUCTION_QUERY_NODE_SUBSCRIPTION_URL=wss://orion.joystream.org/graphql
 VITE_PRODUCTION_NODE_URL=wss://rpc.joystream.org:9944
 VITE_PRODUCTION_FAUCET_URL=https://faucet.joystream.org/member-faucet/register
 
 # Development env URLs - this is the default configuration if VITE_ENV != production
-VITE_DEVELOPMENT_ORION_URL=https://atlas-dev.joystream.org/orion-v2/graphql
+VITE_DEVELOPMENT_ORION_URL=https://atlas-dev.joystream.org/orion-v2/graphql 
 VITE_DEVELOPMENT_QUERY_NODE_SUBSCRIPTION_URL=wss://atlas-dev.joystream.org/orion-v2/graphql
 VITE_DEVELOPMENT_NODE_URL=wss://atlas-dev.joystream.org/ws-rpc
 VITE_DEVELOPMENT_FAUCET_URL=https://atlas-dev.joystream.org/member-faucet/register
 
 # Experimental env URLs
 VITE_NEXT_ORION_URL=https://atlas-next.joystream.org/orion/graphql
-VITE_NEXT_QUERY_NODE_SUBSCRIPTION_URL=wss://atlas-next.joystream.org/query-node/server/graphql
+VITE_NEXT_QUERY_NODE_SUBSCRIPTION_URL=wss://atlas-next.joystream.org/orion/graphql
 VITE_NEXT_NODE_URL=wss://atlas-next.joystream.org/ws-rpc
 VITE_NEXT_FAUCET_URL=https://atlas-next.joystream.org/member-faucet/register
 

+ 250 - 0
packages/atlas/src/api/queries/__generated__/baseTypes.generated.ts

@@ -808,6 +808,8 @@ export enum BannedMemberOrderByInput {
   ChannelCreatedAtDesc = 'channel_createdAt_DESC',
   ChannelCreatedInBlockAsc = 'channel_createdInBlock_ASC',
   ChannelCreatedInBlockDesc = 'channel_createdInBlock_DESC',
+  ChannelCumulativeRewardClaimedAsc = 'channel_cumulativeRewardClaimed_ASC',
+  ChannelCumulativeRewardClaimedDesc = 'channel_cumulativeRewardClaimed_DESC',
   ChannelDescriptionAsc = 'channel_description_ASC',
   ChannelDescriptionDesc = 'channel_description_DESC',
   ChannelFollowsNumAsc = 'channel_followsNum_ASC',
@@ -1091,6 +1093,8 @@ export type Channel = {
   createdAt: Scalars['DateTime']
   /** Number of the block the channel was created in */
   createdInBlock: Scalars['Int']
+  /** Cumulative rewards claimed by this channel */
+  cumulativeRewardClaimed?: Maybe<Scalars['BigInt']>
   /** The description of a Channel */
   description?: Maybe<Scalars['String']>
   /** Application used for channel creation */
@@ -1250,6 +1254,18 @@ export type ChannelFollowsConnection = {
   totalCount: Scalars['Int']
 }
 
+export type ChannelFundsWithdrawnEventData = {
+  __typename?: 'ChannelFundsWithdrawnEventData'
+  /** Destination account ID. Null if claimed by curators' channel (paid to council budget in this case) */
+  account?: Maybe<Scalars['String']>
+  /** Content actor */
+  actor: ContentActor
+  /** Reward amount claimed */
+  amount: Scalars['BigInt']
+  /** The channel that claimed the reward */
+  channel: Channel
+}
+
 export type ChannelNftCollector = {
   __typename?: 'ChannelNftCollector'
   amount: Scalars['Int']
@@ -1296,6 +1312,8 @@ export enum ChannelOrderByInput {
   CreatedAtDesc = 'createdAt_DESC',
   CreatedInBlockAsc = 'createdInBlock_ASC',
   CreatedInBlockDesc = 'createdInBlock_DESC',
+  CumulativeRewardClaimedAsc = 'cumulativeRewardClaimed_ASC',
+  CumulativeRewardClaimedDesc = 'cumulativeRewardClaimed_DESC',
   DescriptionAsc = 'description_ASC',
   DescriptionDesc = 'description_DESC',
   EntryAppAuthKeyAsc = 'entryApp_authKey_ASC',
@@ -1354,6 +1372,35 @@ export enum ChannelOrderByInput {
   VideoViewsNumDesc = 'videoViewsNum_DESC',
 }
 
+/** Direct channel payment by any member by-passing the council payouts */
+export type ChannelPaymentMadeEventData = {
+  __typename?: 'ChannelPaymentMadeEventData'
+  /** Amount of the payment */
+  amount: Scalars['BigInt']
+  /** Channel that received the payment (if any) */
+  payeeChannel?: Maybe<Channel>
+  /** Actor that made the payment */
+  payer: Membership
+  /** Payment and payee context */
+  paymentContext?: Maybe<PaymentContext>
+  /** Reason of the payment */
+  rationale?: Maybe<Scalars['String']>
+}
+
+export type ChannelPayoutsUpdatedEventData = {
+  __typename?: 'ChannelPayoutsUpdatedEventData'
+  /** Can channel cashout the rewards */
+  channelCashoutsEnabled?: Maybe<Scalars['Boolean']>
+  /** Merkle root of the channel payouts */
+  commitment?: Maybe<Scalars['String']>
+  /** Maximum amount of channel reward cashout allowed at a time */
+  maxCashoutAllowed?: Maybe<Scalars['BigInt']>
+  /** Minimum amount of channel reward cashout allowed at a time */
+  minCashoutAllowed?: Maybe<Scalars['BigInt']>
+  /** Storage data object corresponding to the channel payouts payload */
+  payloadDataObject?: Maybe<StorageDataObject>
+}
+
 export type ChannelReportInfo = {
   __typename?: 'ChannelReportInfo'
   channelId: Scalars['String']
@@ -1364,6 +1411,26 @@ export type ChannelReportInfo = {
   reporterIp: Scalars['String']
 }
 
+export type ChannelRewardClaimedAndWithdrawnEventData = {
+  __typename?: 'ChannelRewardClaimedAndWithdrawnEventData'
+  /** Destination account ID. Null if claimed by curators' channel (paid to council budget in this case) */
+  account?: Maybe<Scalars['String']>
+  /** Content actor */
+  actor: ContentActor
+  /** Reward amount claimed */
+  amount: Scalars['BigInt']
+  /** The channel that claimed the reward */
+  channel: Channel
+}
+
+export type ChannelRewardClaimedEventData = {
+  __typename?: 'ChannelRewardClaimedEventData'
+  /** Reward amount claimed */
+  amount: Scalars['BigInt']
+  /** The channel that claimed the reward */
+  channel: Channel
+}
+
 export type ChannelUnfollowResult = {
   __typename?: 'ChannelUnfollowResult'
   channelId: Scalars['String']
@@ -1408,6 +1475,15 @@ export type ChannelWhereInput = {
   createdInBlock_lte?: InputMaybe<Scalars['Int']>
   createdInBlock_not_eq?: InputMaybe<Scalars['Int']>
   createdInBlock_not_in?: InputMaybe<Array<Scalars['Int']>>
+  cumulativeRewardClaimed_eq?: InputMaybe<Scalars['BigInt']>
+  cumulativeRewardClaimed_gt?: InputMaybe<Scalars['BigInt']>
+  cumulativeRewardClaimed_gte?: InputMaybe<Scalars['BigInt']>
+  cumulativeRewardClaimed_in?: InputMaybe<Array<Scalars['BigInt']>>
+  cumulativeRewardClaimed_isNull?: InputMaybe<Scalars['Boolean']>
+  cumulativeRewardClaimed_lt?: InputMaybe<Scalars['BigInt']>
+  cumulativeRewardClaimed_lte?: InputMaybe<Scalars['BigInt']>
+  cumulativeRewardClaimed_not_eq?: InputMaybe<Scalars['BigInt']>
+  cumulativeRewardClaimed_not_in?: InputMaybe<Array<Scalars['BigInt']>>
   description_contains?: InputMaybe<Scalars['String']>
   description_containsInsensitive?: InputMaybe<Scalars['String']>
   description_endsWith?: InputMaybe<Scalars['String']>
@@ -2119,6 +2195,7 @@ export type CuratorsConnection = {
 export type DataObjectType =
   | DataObjectTypeChannelAvatar
   | DataObjectTypeChannelCoverPhoto
+  | DataObjectTypeChannelPayoutsPayload
   | DataObjectTypeVideoMedia
   | DataObjectTypeVideoSubtitle
   | DataObjectTypeVideoThumbnail
@@ -2135,6 +2212,11 @@ export type DataObjectTypeChannelCoverPhoto = {
   channel: Channel
 }
 
+export type DataObjectTypeChannelPayoutsPayload = {
+  __typename?: 'DataObjectTypeChannelPayoutsPayload'
+  phantom?: Maybe<Scalars['Int']>
+}
+
 export type DataObjectTypeVideoMedia = {
   __typename?: 'DataObjectTypeVideoMedia'
   /** Related video entity */
@@ -2175,6 +2257,15 @@ export type DataObjectTypeWhereInput = {
   isTypeOf_not_in?: InputMaybe<Array<Scalars['String']>>
   isTypeOf_not_startsWith?: InputMaybe<Scalars['String']>
   isTypeOf_startsWith?: InputMaybe<Scalars['String']>
+  phantom_eq?: InputMaybe<Scalars['Int']>
+  phantom_gt?: InputMaybe<Scalars['Int']>
+  phantom_gte?: InputMaybe<Scalars['Int']>
+  phantom_in?: InputMaybe<Array<Scalars['Int']>>
+  phantom_isNull?: InputMaybe<Scalars['Boolean']>
+  phantom_lt?: InputMaybe<Scalars['Int']>
+  phantom_lte?: InputMaybe<Scalars['Int']>
+  phantom_not_eq?: InputMaybe<Scalars['Int']>
+  phantom_not_in?: InputMaybe<Array<Scalars['Int']>>
   subtitle?: InputMaybe<VideoSubtitleWhereInput>
   subtitle_isNull?: InputMaybe<Scalars['Boolean']>
   video?: InputMaybe<VideoWhereInput>
@@ -2766,6 +2857,11 @@ export type EventData =
   | BidMadeCompletingAuctionEventData
   | BuyNowCanceledEventData
   | BuyNowPriceUpdatedEventData
+  | ChannelFundsWithdrawnEventData
+  | ChannelPaymentMadeEventData
+  | ChannelPayoutsUpdatedEventData
+  | ChannelRewardClaimedAndWithdrawnEventData
+  | ChannelRewardClaimedEventData
   | CommentCreatedEventData
   | CommentTextUpdatedEventData
   | EnglishAuctionSettledEventData
@@ -2779,11 +2875,37 @@ export type EventData =
   | OpenAuctionStartedEventData
 
 export type EventDataWhereInput = {
+  account_contains?: InputMaybe<Scalars['String']>
+  account_containsInsensitive?: InputMaybe<Scalars['String']>
+  account_endsWith?: InputMaybe<Scalars['String']>
+  account_eq?: InputMaybe<Scalars['String']>
+  account_gt?: InputMaybe<Scalars['String']>
+  account_gte?: InputMaybe<Scalars['String']>
+  account_in?: InputMaybe<Array<Scalars['String']>>
+  account_isNull?: InputMaybe<Scalars['Boolean']>
+  account_lt?: InputMaybe<Scalars['String']>
+  account_lte?: InputMaybe<Scalars['String']>
+  account_not_contains?: InputMaybe<Scalars['String']>
+  account_not_containsInsensitive?: InputMaybe<Scalars['String']>
+  account_not_endsWith?: InputMaybe<Scalars['String']>
+  account_not_eq?: InputMaybe<Scalars['String']>
+  account_not_in?: InputMaybe<Array<Scalars['String']>>
+  account_not_startsWith?: InputMaybe<Scalars['String']>
+  account_startsWith?: InputMaybe<Scalars['String']>
   action_eq?: InputMaybe<Scalars['Boolean']>
   action_isNull?: InputMaybe<Scalars['Boolean']>
   action_not_eq?: InputMaybe<Scalars['Boolean']>
   actor?: InputMaybe<ContentActorWhereInput>
   actor_isNull?: InputMaybe<Scalars['Boolean']>
+  amount_eq?: InputMaybe<Scalars['BigInt']>
+  amount_gt?: InputMaybe<Scalars['BigInt']>
+  amount_gte?: InputMaybe<Scalars['BigInt']>
+  amount_in?: InputMaybe<Array<Scalars['BigInt']>>
+  amount_isNull?: InputMaybe<Scalars['Boolean']>
+  amount_lt?: InputMaybe<Scalars['BigInt']>
+  amount_lte?: InputMaybe<Scalars['BigInt']>
+  amount_not_eq?: InputMaybe<Scalars['BigInt']>
+  amount_not_in?: InputMaybe<Array<Scalars['BigInt']>>
   auction?: InputMaybe<AuctionWhereInput>
   auction_isNull?: InputMaybe<Scalars['Boolean']>
   bid?: InputMaybe<BidWhereInput>
@@ -2791,9 +2913,29 @@ export type EventDataWhereInput = {
   buyer?: InputMaybe<MembershipWhereInput>
   buyer_isNull?: InputMaybe<Scalars['Boolean']>
   channel?: InputMaybe<ChannelWhereInput>
+  channelCashoutsEnabled_eq?: InputMaybe<Scalars['Boolean']>
+  channelCashoutsEnabled_isNull?: InputMaybe<Scalars['Boolean']>
+  channelCashoutsEnabled_not_eq?: InputMaybe<Scalars['Boolean']>
   channel_isNull?: InputMaybe<Scalars['Boolean']>
   comment?: InputMaybe<CommentWhereInput>
   comment_isNull?: InputMaybe<Scalars['Boolean']>
+  commitment_contains?: InputMaybe<Scalars['String']>
+  commitment_containsInsensitive?: InputMaybe<Scalars['String']>
+  commitment_endsWith?: InputMaybe<Scalars['String']>
+  commitment_eq?: InputMaybe<Scalars['String']>
+  commitment_gt?: InputMaybe<Scalars['String']>
+  commitment_gte?: InputMaybe<Scalars['String']>
+  commitment_in?: InputMaybe<Array<Scalars['String']>>
+  commitment_isNull?: InputMaybe<Scalars['Boolean']>
+  commitment_lt?: InputMaybe<Scalars['String']>
+  commitment_lte?: InputMaybe<Scalars['String']>
+  commitment_not_contains?: InputMaybe<Scalars['String']>
+  commitment_not_containsInsensitive?: InputMaybe<Scalars['String']>
+  commitment_not_endsWith?: InputMaybe<Scalars['String']>
+  commitment_not_eq?: InputMaybe<Scalars['String']>
+  commitment_not_in?: InputMaybe<Array<Scalars['String']>>
+  commitment_not_startsWith?: InputMaybe<Scalars['String']>
+  commitment_startsWith?: InputMaybe<Scalars['String']>
   isTypeOf_contains?: InputMaybe<Scalars['String']>
   isTypeOf_containsInsensitive?: InputMaybe<Scalars['String']>
   isTypeOf_endsWith?: InputMaybe<Scalars['String']>
@@ -2811,8 +2953,26 @@ export type EventDataWhereInput = {
   isTypeOf_not_in?: InputMaybe<Array<Scalars['String']>>
   isTypeOf_not_startsWith?: InputMaybe<Scalars['String']>
   isTypeOf_startsWith?: InputMaybe<Scalars['String']>
+  maxCashoutAllowed_eq?: InputMaybe<Scalars['BigInt']>
+  maxCashoutAllowed_gt?: InputMaybe<Scalars['BigInt']>
+  maxCashoutAllowed_gte?: InputMaybe<Scalars['BigInt']>
+  maxCashoutAllowed_in?: InputMaybe<Array<Scalars['BigInt']>>
+  maxCashoutAllowed_isNull?: InputMaybe<Scalars['Boolean']>
+  maxCashoutAllowed_lt?: InputMaybe<Scalars['BigInt']>
+  maxCashoutAllowed_lte?: InputMaybe<Scalars['BigInt']>
+  maxCashoutAllowed_not_eq?: InputMaybe<Scalars['BigInt']>
+  maxCashoutAllowed_not_in?: InputMaybe<Array<Scalars['BigInt']>>
   member?: InputMaybe<MembershipWhereInput>
   member_isNull?: InputMaybe<Scalars['Boolean']>
+  minCashoutAllowed_eq?: InputMaybe<Scalars['BigInt']>
+  minCashoutAllowed_gt?: InputMaybe<Scalars['BigInt']>
+  minCashoutAllowed_gte?: InputMaybe<Scalars['BigInt']>
+  minCashoutAllowed_in?: InputMaybe<Array<Scalars['BigInt']>>
+  minCashoutAllowed_isNull?: InputMaybe<Scalars['Boolean']>
+  minCashoutAllowed_lt?: InputMaybe<Scalars['BigInt']>
+  minCashoutAllowed_lte?: InputMaybe<Scalars['BigInt']>
+  minCashoutAllowed_not_eq?: InputMaybe<Scalars['BigInt']>
+  minCashoutAllowed_not_in?: InputMaybe<Array<Scalars['BigInt']>>
   newPrice_eq?: InputMaybe<Scalars['BigInt']>
   newPrice_gt?: InputMaybe<Scalars['BigInt']>
   newPrice_gte?: InputMaybe<Scalars['BigInt']>
@@ -2843,6 +3003,14 @@ export type EventDataWhereInput = {
   nftOwner?: InputMaybe<NftOwnerWhereInput>
   nftOwner_isNull?: InputMaybe<Scalars['Boolean']>
   nft_isNull?: InputMaybe<Scalars['Boolean']>
+  payeeChannel?: InputMaybe<ChannelWhereInput>
+  payeeChannel_isNull?: InputMaybe<Scalars['Boolean']>
+  payer?: InputMaybe<MembershipWhereInput>
+  payer_isNull?: InputMaybe<Scalars['Boolean']>
+  payloadDataObject?: InputMaybe<StorageDataObjectWhereInput>
+  payloadDataObject_isNull?: InputMaybe<Scalars['Boolean']>
+  paymentContext?: InputMaybe<PaymentContextWhereInput>
+  paymentContext_isNull?: InputMaybe<Scalars['Boolean']>
   previousNftOwner?: InputMaybe<NftOwnerWhereInput>
   previousNftOwner_isNull?: InputMaybe<Scalars['Boolean']>
   price_eq?: InputMaybe<Scalars['BigInt']>
@@ -2854,6 +3022,23 @@ export type EventDataWhereInput = {
   price_lte?: InputMaybe<Scalars['BigInt']>
   price_not_eq?: InputMaybe<Scalars['BigInt']>
   price_not_in?: InputMaybe<Array<Scalars['BigInt']>>
+  rationale_contains?: InputMaybe<Scalars['String']>
+  rationale_containsInsensitive?: InputMaybe<Scalars['String']>
+  rationale_endsWith?: InputMaybe<Scalars['String']>
+  rationale_eq?: InputMaybe<Scalars['String']>
+  rationale_gt?: InputMaybe<Scalars['String']>
+  rationale_gte?: InputMaybe<Scalars['String']>
+  rationale_in?: InputMaybe<Array<Scalars['String']>>
+  rationale_isNull?: InputMaybe<Scalars['Boolean']>
+  rationale_lt?: InputMaybe<Scalars['String']>
+  rationale_lte?: InputMaybe<Scalars['String']>
+  rationale_not_contains?: InputMaybe<Scalars['String']>
+  rationale_not_containsInsensitive?: InputMaybe<Scalars['String']>
+  rationale_not_endsWith?: InputMaybe<Scalars['String']>
+  rationale_not_eq?: InputMaybe<Scalars['String']>
+  rationale_not_in?: InputMaybe<Array<Scalars['String']>>
+  rationale_not_startsWith?: InputMaybe<Scalars['String']>
+  rationale_startsWith?: InputMaybe<Scalars['String']>
   result?: InputMaybe<MetaprotocolTransactionResultWhereInput>
   result_isNull?: InputMaybe<Scalars['Boolean']>
   text_contains?: InputMaybe<Scalars['String']>
@@ -2884,16 +3069,30 @@ export type EventEdge = {
 }
 
 export enum EventOrderByInput {
+  DataAccountAsc = 'data_account_ASC',
+  DataAccountDesc = 'data_account_DESC',
   DataActionAsc = 'data_action_ASC',
   DataActionDesc = 'data_action_DESC',
+  DataAmountAsc = 'data_amount_ASC',
+  DataAmountDesc = 'data_amount_DESC',
+  DataChannelCashoutsEnabledAsc = 'data_channelCashoutsEnabled_ASC',
+  DataChannelCashoutsEnabledDesc = 'data_channelCashoutsEnabled_DESC',
+  DataCommitmentAsc = 'data_commitment_ASC',
+  DataCommitmentDesc = 'data_commitment_DESC',
   DataIsTypeOfAsc = 'data_isTypeOf_ASC',
   DataIsTypeOfDesc = 'data_isTypeOf_DESC',
+  DataMaxCashoutAllowedAsc = 'data_maxCashoutAllowed_ASC',
+  DataMaxCashoutAllowedDesc = 'data_maxCashoutAllowed_DESC',
+  DataMinCashoutAllowedAsc = 'data_minCashoutAllowed_ASC',
+  DataMinCashoutAllowedDesc = 'data_minCashoutAllowed_DESC',
   DataNewPriceAsc = 'data_newPrice_ASC',
   DataNewPriceDesc = 'data_newPrice_DESC',
   DataNewTextAsc = 'data_newText_ASC',
   DataNewTextDesc = 'data_newText_DESC',
   DataPriceAsc = 'data_price_ASC',
   DataPriceDesc = 'data_price_DESC',
+  DataRationaleAsc = 'data_rationale_ASC',
+  DataRationaleDesc = 'data_rationale_DESC',
   DataTextAsc = 'data_text_ASC',
   DataTextDesc = 'data_text_DESC',
   IdAsc = 'id_ASC',
@@ -3457,6 +3656,7 @@ export type MembershipsConnection = {
 }
 
 export type MetaprotocolTransactionResult =
+  | MetaprotocolTransactionResultChannelPaid
   | MetaprotocolTransactionResultCommentCreated
   | MetaprotocolTransactionResultCommentDeleted
   | MetaprotocolTransactionResultCommentEdited
@@ -3464,6 +3664,11 @@ export type MetaprotocolTransactionResult =
   | MetaprotocolTransactionResultFailed
   | MetaprotocolTransactionResultOk
 
+export type MetaprotocolTransactionResultChannelPaid = {
+  __typename?: 'MetaprotocolTransactionResultChannelPaid'
+  channelPaid?: Maybe<Channel>
+}
+
 export type MetaprotocolTransactionResultCommentCreated = {
   __typename?: 'MetaprotocolTransactionResultCommentCreated'
   commentCreated?: Maybe<Comment>
@@ -3495,6 +3700,8 @@ export type MetaprotocolTransactionResultOk = {
 }
 
 export type MetaprotocolTransactionResultWhereInput = {
+  channelPaid?: InputMaybe<ChannelWhereInput>
+  channelPaid_isNull?: InputMaybe<Scalars['Boolean']>
   commentCreated?: InputMaybe<CommentWhereInput>
   commentCreated_isNull?: InputMaybe<Scalars['Boolean']>
   commentDeleted?: InputMaybe<CommentWhereInput>
@@ -4343,6 +4550,45 @@ export type PageInfo = {
   startCursor: Scalars['String']
 }
 
+/** Various Channel Payment Contexts */
+export type PaymentContext = PaymentContextChannel | PaymentContextVideo
+
+export type PaymentContextChannel = {
+  __typename?: 'PaymentContextChannel'
+  /** Channel for which the payment was made */
+  channel: Channel
+}
+
+export type PaymentContextVideo = {
+  __typename?: 'PaymentContextVideo'
+  /** Video for which the payment was made */
+  video: Video
+}
+
+export type PaymentContextWhereInput = {
+  channel?: InputMaybe<ChannelWhereInput>
+  channel_isNull?: InputMaybe<Scalars['Boolean']>
+  isTypeOf_contains?: InputMaybe<Scalars['String']>
+  isTypeOf_containsInsensitive?: InputMaybe<Scalars['String']>
+  isTypeOf_endsWith?: InputMaybe<Scalars['String']>
+  isTypeOf_eq?: InputMaybe<Scalars['String']>
+  isTypeOf_gt?: InputMaybe<Scalars['String']>
+  isTypeOf_gte?: InputMaybe<Scalars['String']>
+  isTypeOf_in?: InputMaybe<Array<Scalars['String']>>
+  isTypeOf_isNull?: InputMaybe<Scalars['Boolean']>
+  isTypeOf_lt?: InputMaybe<Scalars['String']>
+  isTypeOf_lte?: InputMaybe<Scalars['String']>
+  isTypeOf_not_contains?: InputMaybe<Scalars['String']>
+  isTypeOf_not_containsInsensitive?: InputMaybe<Scalars['String']>
+  isTypeOf_not_endsWith?: InputMaybe<Scalars['String']>
+  isTypeOf_not_eq?: InputMaybe<Scalars['String']>
+  isTypeOf_not_in?: InputMaybe<Array<Scalars['String']>>
+  isTypeOf_not_startsWith?: InputMaybe<Scalars['String']>
+  isTypeOf_startsWith?: InputMaybe<Scalars['String']>
+  video?: InputMaybe<VideoWhereInput>
+  video_isNull?: InputMaybe<Scalars['Boolean']>
+}
+
 export type ProcessorState = {
   __typename?: 'ProcessorState'
   lastProcessedBlock: Scalars['Int']
@@ -6337,6 +6583,8 @@ export enum StorageDataObjectOrderByInput {
   StorageBagIdDesc = 'storageBag_id_DESC',
   TypeIsTypeOfAsc = 'type_isTypeOf_ASC',
   TypeIsTypeOfDesc = 'type_isTypeOf_DESC',
+  TypePhantomAsc = 'type_phantom_ASC',
+  TypePhantomDesc = 'type_phantom_DESC',
   UnsetAtAsc = 'unsetAt_ASC',
   UnsetAtDesc = 'unsetAt_DESC',
 }
@@ -7856,6 +8104,8 @@ export enum VideoOrderByInput {
   ChannelCreatedAtDesc = 'channel_createdAt_DESC',
   ChannelCreatedInBlockAsc = 'channel_createdInBlock_ASC',
   ChannelCreatedInBlockDesc = 'channel_createdInBlock_DESC',
+  ChannelCumulativeRewardClaimedAsc = 'channel_cumulativeRewardClaimed_ASC',
+  ChannelCumulativeRewardClaimedDesc = 'channel_cumulativeRewardClaimed_DESC',
   ChannelDescriptionAsc = 'channel_description_ASC',
   ChannelDescriptionDesc = 'channel_description_DESC',
   ChannelFollowsNumAsc = 'channel_followsNum_ASC',

+ 1 - 0
packages/atlas/src/api/queries/__generated__/bids.generated.tsx

@@ -48,6 +48,7 @@ export type GetBidsQuery = {
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }

+ 320 - 18
packages/atlas/src/api/queries/__generated__/channels.generated.tsx

@@ -22,6 +22,7 @@ export type GetFullChannelQuery = {
     videoViewsNum: number
     description?: string | null
     isPublic?: boolean | null
+    cumulativeRewardClaimed?: string | null
     isCensored: boolean
     language?: string | null
     id: string
@@ -53,6 +54,7 @@ export type GetFullChannelQuery = {
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -76,6 +78,7 @@ export type GetFullChannelQuery = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -94,6 +97,7 @@ export type GetFullChannelQuery = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -135,6 +139,7 @@ export type GetExtendedBasicChannelsQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -160,6 +165,7 @@ export type GetExtendedFullChannelsQuery = {
       videoViewsNum: number
       description?: string | null
       isPublic?: boolean | null
+      cumulativeRewardClaimed?: string | null
       isCensored: boolean
       language?: string | null
       id: string
@@ -191,6 +197,7 @@ export type GetExtendedFullChannelsQuery = {
                   type?:
                     | { __typename: 'DataObjectTypeChannelAvatar' }
                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                     | { __typename: 'DataObjectTypeVideoMedia' }
                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -214,6 +221,7 @@ export type GetExtendedFullChannelsQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -232,6 +240,7 @@ export type GetExtendedFullChannelsQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -278,6 +287,7 @@ export type GetBasicChannelsConnectionQuery = {
           type?:
             | { __typename: 'DataObjectTypeChannelAvatar' }
             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
             | { __typename: 'DataObjectTypeVideoMedia' }
             | { __typename: 'DataObjectTypeVideoSubtitle' }
             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -338,6 +348,7 @@ export type GetTop10ChannelsQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -377,6 +388,7 @@ export type GetPromisingChannelsQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -416,6 +428,7 @@ export type GetDiscoverChannelsQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -455,6 +468,7 @@ export type GetPopularChannelsQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -497,6 +511,7 @@ export type GetChannelNftCollectorsQuery = {
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -534,35 +549,142 @@ export type ReportChannelMutation = {
   reportChannel: { __typename?: 'ChannelReportInfo'; id: string; channelId: string }
 }
 
-export type GetChannelPaymentEventsQueryVariables = Types.Exact<{ [key: string]: never }>
+export type GetPayloadDataByCommitmentQueryVariables = Types.Exact<{
+  commitment: Types.Scalars['String']
+}>
+
+export type GetPayloadDataByCommitmentQuery = {
+  __typename?: 'Query'
+  events: Array<{
+    __typename?: 'Event'
+    data:
+      | { __typename?: 'AuctionBidCanceledEventData' }
+      | { __typename?: 'AuctionBidMadeEventData' }
+      | { __typename?: 'AuctionCanceledEventData' }
+      | { __typename?: 'BidMadeCompletingAuctionEventData' }
+      | { __typename?: 'BuyNowCanceledEventData' }
+      | { __typename?: 'BuyNowPriceUpdatedEventData' }
+      | { __typename?: 'ChannelFundsWithdrawnEventData' }
+      | { __typename?: 'ChannelPaymentMadeEventData' }
+      | {
+          __typename?: 'ChannelPayoutsUpdatedEventData'
+          payloadDataObject?: {
+            __typename?: 'StorageDataObject'
+            isAccepted: boolean
+            resolvedUrls: Array<string>
+            resolvedUrl?: string | null
+          } | null
+        }
+      | { __typename?: 'ChannelRewardClaimedAndWithdrawnEventData' }
+      | { __typename?: 'ChannelRewardClaimedEventData' }
+      | { __typename?: 'CommentCreatedEventData' }
+      | { __typename?: 'CommentTextUpdatedEventData' }
+      | { __typename?: 'EnglishAuctionSettledEventData' }
+      | { __typename?: 'EnglishAuctionStartedEventData' }
+      | { __typename?: 'MemberBannedFromChannelEventData' }
+      | { __typename?: 'MetaprotocolTransactionStatusEventData' }
+      | { __typename?: 'NftBoughtEventData' }
+      | { __typename?: 'NftIssuedEventData' }
+      | { __typename?: 'NftSellOrderMadeEventData' }
+      | { __typename?: 'OpenAuctionBidAcceptedEventData' }
+      | { __typename?: 'OpenAuctionStartedEventData' }
+  }>
+}
+
+export type GetChannelPaymentEventsQueryVariables = Types.Exact<{
+  channelId?: Types.InputMaybe<Types.Scalars['String']>
+}>
 
 export type GetChannelPaymentEventsQuery = {
   __typename?: 'Query'
   events: Array<{
     __typename?: 'Event'
-    id: string
-    timestamp: Date
     inBlock: number
+    timestamp: Date
     data:
       | { __typename: 'AuctionBidCanceledEventData' }
       | { __typename: 'AuctionBidMadeEventData' }
       | { __typename: 'AuctionCanceledEventData' }
       | {
           __typename: 'BidMadeCompletingAuctionEventData'
-          winningBid: { __typename?: 'Bid'; id: string; amount: string }
+          previousNftOwner: { __typename: 'NftOwnerChannel' } | { __typename: 'NftOwnerMember' }
+          winningBid: {
+            __typename?: 'Bid'
+            id: string
+            amount: string
+            bidder: { __typename?: 'Membership'; controllerAccount: string }
+            nft: {
+              __typename?: 'OwnedNft'
+              creatorRoyalty?: number | null
+              video: { __typename?: 'Video'; title?: string | null }
+            }
+          }
         }
       | { __typename: 'BuyNowCanceledEventData' }
       | { __typename: 'BuyNowPriceUpdatedEventData' }
+      | {
+          __typename: 'ChannelFundsWithdrawnEventData'
+          amount: string
+          actor:
+            | { __typename: 'ContentActorCurator' }
+            | { __typename: 'ContentActorLead' }
+            | { __typename: 'ContentActorMember'; member: { __typename?: 'Membership'; controllerAccount: string } }
+        }
+      | {
+          __typename: 'ChannelPaymentMadeEventData'
+          amount: string
+          rationale?: string | null
+          payer: { __typename?: 'Membership'; controllerAccount: string }
+        }
+      | { __typename: 'ChannelPayoutsUpdatedEventData' }
+      | { __typename: 'ChannelRewardClaimedAndWithdrawnEventData' }
+      | { __typename: 'ChannelRewardClaimedEventData'; amount: string }
       | { __typename: 'CommentCreatedEventData' }
       | { __typename: 'CommentTextUpdatedEventData' }
-      | { __typename: 'EnglishAuctionSettledEventData'; winningBid: { __typename?: 'Bid'; amount: string } }
+      | {
+          __typename: 'EnglishAuctionSettledEventData'
+          previousNftOwner: { __typename: 'NftOwnerChannel' } | { __typename: 'NftOwnerMember' }
+          winningBid: {
+            __typename?: 'Bid'
+            amount: string
+            nft: {
+              __typename?: 'OwnedNft'
+              creatorRoyalty?: number | null
+              video: { __typename?: 'Video'; title?: string | null }
+            }
+            bidder: { __typename?: 'Membership'; controllerAccount: string }
+          }
+        }
       | { __typename: 'EnglishAuctionStartedEventData' }
       | { __typename: 'MemberBannedFromChannelEventData' }
       | { __typename: 'MetaprotocolTransactionStatusEventData' }
-      | { __typename: 'NftBoughtEventData'; price: string }
+      | {
+          __typename: 'NftBoughtEventData'
+          price: string
+          buyer: { __typename?: 'Membership'; controllerAccount: string }
+          nft: {
+            __typename?: 'OwnedNft'
+            creatorRoyalty?: number | null
+            video: { __typename?: 'Video'; title?: string | null }
+          }
+          previousNftOwner: { __typename: 'NftOwnerChannel' } | { __typename: 'NftOwnerMember' }
+        }
       | { __typename: 'NftIssuedEventData' }
       | { __typename: 'NftSellOrderMadeEventData' }
-      | { __typename: 'OpenAuctionBidAcceptedEventData'; winningBid: { __typename?: 'Bid'; amount: string } }
+      | {
+          __typename: 'OpenAuctionBidAcceptedEventData'
+          winningBid: {
+            __typename?: 'Bid'
+            amount: string
+            nft: {
+              __typename?: 'OwnedNft'
+              creatorRoyalty?: number | null
+              video: { __typename?: 'Video'; title?: string | null }
+            }
+            bidder: { __typename?: 'Membership'; controllerAccount: string }
+          }
+          previousNftOwner: { __typename: 'NftOwnerChannel' } | { __typename: 'NftOwnerMember' }
+        }
       | { __typename: 'OpenAuctionStartedEventData' }
   }>
 }
@@ -1212,44 +1334,223 @@ export type ReportChannelMutationOptions = Apollo.BaseMutationOptions<
   ReportChannelMutation,
   ReportChannelMutationVariables
 >
+export const GetPayloadDataByCommitmentDocument = gql`
+  query GetPayloadDataByCommitment($commitment: String!) {
+    events(where: { data: { isTypeOf_eq: "ChannelPayoutsUpdatedEventData", commitment_eq: $commitment } }) {
+      data {
+        ... on ChannelPayoutsUpdatedEventData {
+          payloadDataObject {
+            isAccepted
+            resolvedUrls
+            resolvedUrl @client
+          }
+        }
+      }
+    }
+  }
+`
+
+/**
+ * __useGetPayloadDataByCommitmentQuery__
+ *
+ * To run a query within a React component, call `useGetPayloadDataByCommitmentQuery` and pass it any options that fit your needs.
+ * When your component renders, `useGetPayloadDataByCommitmentQuery` returns an object from Apollo Client that contains loading, error, and data properties
+ * you can use to render your UI.
+ *
+ * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
+ *
+ * @example
+ * const { data, loading, error } = useGetPayloadDataByCommitmentQuery({
+ *   variables: {
+ *      commitment: // value for 'commitment'
+ *   },
+ * });
+ */
+export function useGetPayloadDataByCommitmentQuery(
+  baseOptions: Apollo.QueryHookOptions<GetPayloadDataByCommitmentQuery, GetPayloadDataByCommitmentQueryVariables>
+) {
+  const options = { ...defaultOptions, ...baseOptions }
+  return Apollo.useQuery<GetPayloadDataByCommitmentQuery, GetPayloadDataByCommitmentQueryVariables>(
+    GetPayloadDataByCommitmentDocument,
+    options
+  )
+}
+export function useGetPayloadDataByCommitmentLazyQuery(
+  baseOptions?: Apollo.LazyQueryHookOptions<GetPayloadDataByCommitmentQuery, GetPayloadDataByCommitmentQueryVariables>
+) {
+  const options = { ...defaultOptions, ...baseOptions }
+  return Apollo.useLazyQuery<GetPayloadDataByCommitmentQuery, GetPayloadDataByCommitmentQueryVariables>(
+    GetPayloadDataByCommitmentDocument,
+    options
+  )
+}
+export type GetPayloadDataByCommitmentQueryHookResult = ReturnType<typeof useGetPayloadDataByCommitmentQuery>
+export type GetPayloadDataByCommitmentLazyQueryHookResult = ReturnType<typeof useGetPayloadDataByCommitmentLazyQuery>
+export type GetPayloadDataByCommitmentQueryResult = Apollo.QueryResult<
+  GetPayloadDataByCommitmentQuery,
+  GetPayloadDataByCommitmentQueryVariables
+>
 export const GetChannelPaymentEventsDocument = gql`
-  query GetChannelPaymentEvents {
+  query GetChannelPaymentEvents($channelId: String) {
     events(
+      orderBy: timestamp_DESC
       where: {
-        data: {
-          isTypeOf_in: [
-            "NftBoughtEventData"
-            "BidMadeCompletingAuctionEventData"
-            "EnglishAuctionSettledEventData"
-            "OpenAuctionBidAcceptedEventData"
-          ]
-        }
+        OR: [
+          {
+            data: {
+              isTypeOf_in: [
+                "NftBoughtEventData"
+                "BidMadeCompletingAuctionEventData"
+                "EnglishAuctionSettledEventData"
+                "OpenAuctionBidAcceptedEventData"
+              ]
+              previousNftOwner: { channel: { id_eq: $channelId } }
+            }
+          }
+          {
+            data: {
+              isTypeOf_in: [
+                "NftBoughtEventData"
+                "BidMadeCompletingAuctionEventData"
+                "EnglishAuctionSettledEventData"
+                "OpenAuctionBidAcceptedEventData"
+              ]
+              nft: { video: { channel: { id_eq: $channelId } } }
+            }
+          }
+          {
+            data: {
+              isTypeOf_in: ["ChannelRewardClaimedEventData", "ChannelFundsWithdrawnEventData"]
+              channel: { id_eq: $channelId }
+            }
+          }
+          { data: { isTypeOf_in: ["ChannelPaymentMadeEventData"], payeeChannel: { id_eq: $channelId } } }
+        ]
       }
     ) {
-      id
-      timestamp
       inBlock
+      timestamp
       data {
         __typename
         ... on NftBoughtEventData {
           price
+          buyer {
+            controllerAccount
+          }
+          nft {
+            creatorRoyalty
+            video {
+              title
+            }
+          }
+          previousNftOwner {
+            __typename
+          }
         }
         ... on BidMadeCompletingAuctionEventData {
+          previousNftOwner {
+            __typename
+          }
           winningBid {
             id
             amount
+            bidder {
+              controllerAccount
+            }
+            nft {
+              creatorRoyalty
+              video {
+                title
+              }
+            }
+            bidder {
+              controllerAccount
+            }
+            amount
           }
         }
         ... on EnglishAuctionSettledEventData {
+          previousNftOwner {
+            __typename
+          }
           winningBid {
+            nft {
+              creatorRoyalty
+              video {
+                title
+              }
+            }
+            bidder {
+              controllerAccount
+            }
             amount
           }
         }
         ... on OpenAuctionBidAcceptedEventData {
           winningBid {
+            nft {
+              creatorRoyalty
+              video {
+                title
+              }
+            }
+            bidder {
+              controllerAccount
+            }
             amount
           }
         }
+        ... on OpenAuctionBidAcceptedEventData {
+          previousNftOwner {
+            __typename
+          }
+          winningBid {
+            amount
+            bidder {
+              controllerAccount
+            }
+            nft {
+              creatorRoyalty
+              video {
+                title
+              }
+            }
+          }
+        }
+        ... on ChannelRewardClaimedEventData {
+          amount
+        }
+        ... on ChannelFundsWithdrawnEventData {
+          amount
+          actor {
+            __typename
+            ... on ContentActorCurator {
+              __typename
+            }
+            ... on ContentActorLead {
+              __typename
+            }
+            ... on ContentActorMember {
+              member {
+                controllerAccount
+              }
+            }
+          }
+        }
+        ... on ChannelPaymentMadeEventData {
+          amount
+          rationale
+          payer {
+            controllerAccount
+          }
+        }
+        ... on ChannelPaymentMadeEventData {
+          amount
+          rationale
+          payer {
+            controllerAccount
+          }
+        }
       }
     }
   }
@@ -1267,6 +1568,7 @@ export const GetChannelPaymentEventsDocument = gql`
  * @example
  * const { data, loading, error } = useGetChannelPaymentEventsQuery({
  *   variables: {
+ *      channelId: // value for 'channelId'
  *   },
  * });
  */

+ 9 - 0
packages/atlas/src/api/queries/__generated__/comments.generated.tsx

@@ -43,6 +43,7 @@ export type GetCommentQuery = {
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -109,6 +110,7 @@ export type GetCommentRepliesConnectionQuery = {
                     type?:
                       | { __typename: 'DataObjectTypeChannelAvatar' }
                       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                       | { __typename: 'DataObjectTypeVideoMedia' }
                       | { __typename: 'DataObjectTypeVideoSubtitle' }
                       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -173,6 +175,7 @@ export type GetUserCommentsAndVideoCommentsConnectionQuery = {
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -228,6 +231,7 @@ export type GetUserCommentsAndVideoCommentsConnectionQuery = {
                     type?:
                       | { __typename: 'DataObjectTypeChannelAvatar' }
                       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                       | { __typename: 'DataObjectTypeVideoMedia' }
                       | { __typename: 'DataObjectTypeVideoSubtitle' }
                       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -281,6 +285,11 @@ export type GetCommentEditsQuery = {
       | { __typename?: 'BidMadeCompletingAuctionEventData' }
       | { __typename?: 'BuyNowCanceledEventData' }
       | { __typename?: 'BuyNowPriceUpdatedEventData' }
+      | { __typename?: 'ChannelFundsWithdrawnEventData' }
+      | { __typename?: 'ChannelPaymentMadeEventData' }
+      | { __typename?: 'ChannelPayoutsUpdatedEventData' }
+      | { __typename?: 'ChannelRewardClaimedAndWithdrawnEventData' }
+      | { __typename?: 'ChannelRewardClaimedEventData' }
       | { __typename?: 'CommentCreatedEventData'; text: string }
       | { __typename?: 'CommentTextUpdatedEventData'; newText: string }
       | { __typename?: 'EnglishAuctionSettledEventData' }

+ 12 - 0
packages/atlas/src/api/queries/__generated__/featured.generated.tsx

@@ -45,6 +45,7 @@ export type GetVideoHeroQuery = {
           type?:
             | { __typename: 'DataObjectTypeChannelAvatar' }
             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
             | { __typename: 'DataObjectTypeVideoMedia' }
             | { __typename: 'DataObjectTypeVideoSubtitle' }
             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -64,6 +65,7 @@ export type GetVideoHeroQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -111,6 +113,7 @@ export type GetVideoHeroQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -134,6 +137,7 @@ export type GetVideoHeroQuery = {
                   type?:
                     | { __typename: 'DataObjectTypeChannelAvatar' }
                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                     | { __typename: 'DataObjectTypeVideoMedia' }
                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -166,6 +170,7 @@ export type GetVideoHeroQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -227,6 +232,7 @@ export type GetVideoHeroQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -268,6 +274,7 @@ export type GetVideoHeroQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -304,6 +311,7 @@ export type GetVideoHeroQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -368,6 +376,7 @@ export type GetAllCategoriesFeaturedVideosQuery = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -387,6 +396,7 @@ export type GetAllCategoriesFeaturedVideosQuery = {
           type?:
             | { __typename: 'DataObjectTypeChannelAvatar' }
             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
             | { __typename: 'DataObjectTypeVideoMedia' }
             | { __typename: 'DataObjectTypeVideoSubtitle' }
             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -467,6 +477,7 @@ export type GetCategoryFeaturedVideosQuery = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -486,6 +497,7 @@ export type GetCategoryFeaturedVideosQuery = {
           type?:
             | { __typename: 'DataObjectTypeChannelAvatar' }
             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
             | { __typename: 'DataObjectTypeVideoMedia' }
             | { __typename: 'DataObjectTypeVideoSubtitle' }
             | { __typename: 'DataObjectTypeVideoThumbnail' }

+ 77 - 0
packages/atlas/src/api/queries/__generated__/fragments.generated.tsx

@@ -30,6 +30,7 @@ export type BasicChannelFieldsFragment = {
     type?:
       | { __typename: 'DataObjectTypeChannelAvatar' }
       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
       | { __typename: 'DataObjectTypeVideoMedia' }
       | { __typename: 'DataObjectTypeVideoSubtitle' }
       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -42,6 +43,7 @@ export type FullChannelFieldsFragment = {
   videoViewsNum: number
   description?: string | null
   isPublic?: boolean | null
+  cumulativeRewardClaimed?: string | null
   isCensored: boolean
   language?: string | null
   id: string
@@ -73,6 +75,7 @@ export type FullChannelFieldsFragment = {
               type?:
                 | { __typename: 'DataObjectTypeChannelAvatar' }
                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                 | { __typename: 'DataObjectTypeVideoMedia' }
                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -96,6 +99,7 @@ export type FullChannelFieldsFragment = {
     type?:
       | { __typename: 'DataObjectTypeChannelAvatar' }
       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
       | { __typename: 'DataObjectTypeVideoMedia' }
       | { __typename: 'DataObjectTypeVideoSubtitle' }
       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -114,6 +118,7 @@ export type FullChannelFieldsFragment = {
     type?:
       | { __typename: 'DataObjectTypeChannelAvatar' }
       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
       | { __typename: 'DataObjectTypeVideoMedia' }
       | { __typename: 'DataObjectTypeVideoSubtitle' }
       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -129,6 +134,7 @@ export type ExtendedFullChannelFieldsFragment = {
     videoViewsNum: number
     description?: string | null
     isPublic?: boolean | null
+    cumulativeRewardClaimed?: string | null
     isCensored: boolean
     language?: string | null
     id: string
@@ -160,6 +166,7 @@ export type ExtendedFullChannelFieldsFragment = {
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -183,6 +190,7 @@ export type ExtendedFullChannelFieldsFragment = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -201,6 +209,7 @@ export type ExtendedFullChannelFieldsFragment = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -234,6 +243,7 @@ export type ExtendedBasicChannelFieldsFragment = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -265,6 +275,7 @@ export type BasicMembershipFieldsFragment = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -306,6 +317,7 @@ export type FullMembershipFieldsFragment = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -324,6 +336,7 @@ export type FullMembershipFieldsFragment = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -349,6 +362,7 @@ export type FullMembershipFieldsFragment = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -373,6 +387,7 @@ export type StorageDataObjectFieldsFragment = {
   type?:
     | { __typename: 'DataObjectTypeChannelAvatar' }
     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
     | { __typename: 'DataObjectTypeVideoMedia' }
     | { __typename: 'DataObjectTypeVideoSubtitle' }
     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -427,6 +442,7 @@ export type SubtitlesFieldsFragment = {
     type?:
       | { __typename: 'DataObjectTypeChannelAvatar' }
       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
       | { __typename: 'DataObjectTypeVideoMedia' }
       | { __typename: 'DataObjectTypeVideoSubtitle' }
       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -465,6 +481,7 @@ export type BasicVideoFieldsFragment = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -484,6 +501,7 @@ export type BasicVideoFieldsFragment = {
     type?:
       | { __typename: 'DataObjectTypeChannelAvatar' }
       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
       | { __typename: 'DataObjectTypeVideoMedia' }
       | { __typename: 'DataObjectTypeVideoSubtitle' }
       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -531,6 +549,7 @@ export type BasicVideoFieldsFragment = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -554,6 +573,7 @@ export type BasicVideoFieldsFragment = {
               type?:
                 | { __typename: 'DataObjectTypeChannelAvatar' }
                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                 | { __typename: 'DataObjectTypeVideoMedia' }
                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -586,6 +606,7 @@ export type BasicVideoFieldsFragment = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -647,6 +668,7 @@ export type BasicVideoFieldsFragment = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -688,6 +710,7 @@ export type BasicVideoFieldsFragment = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -724,6 +747,7 @@ export type BasicVideoFieldsFragment = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -789,6 +813,7 @@ export type FullVideoFieldsFragment = {
     type?:
       | { __typename: 'DataObjectTypeChannelAvatar' }
       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
       | { __typename: 'DataObjectTypeVideoMedia' }
       | { __typename: 'DataObjectTypeVideoSubtitle' }
       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -807,6 +832,7 @@ export type FullVideoFieldsFragment = {
     type?:
       | { __typename: 'DataObjectTypeChannelAvatar' }
       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
       | { __typename: 'DataObjectTypeVideoMedia' }
       | { __typename: 'DataObjectTypeVideoSubtitle' }
       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -817,6 +843,7 @@ export type FullVideoFieldsFragment = {
     videoViewsNum: number
     description?: string | null
     isPublic?: boolean | null
+    cumulativeRewardClaimed?: string | null
     isCensored: boolean
     language?: string | null
     id: string
@@ -848,6 +875,7 @@ export type FullVideoFieldsFragment = {
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -871,6 +899,7 @@ export type FullVideoFieldsFragment = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -889,6 +918,7 @@ export type FullVideoFieldsFragment = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -944,6 +974,7 @@ export type FullVideoFieldsFragment = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -967,6 +998,7 @@ export type FullVideoFieldsFragment = {
               type?:
                 | { __typename: 'DataObjectTypeChannelAvatar' }
                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                 | { __typename: 'DataObjectTypeVideoMedia' }
                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -999,6 +1031,7 @@ export type FullVideoFieldsFragment = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1060,6 +1093,7 @@ export type FullVideoFieldsFragment = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1101,6 +1135,7 @@ export type FullVideoFieldsFragment = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1137,6 +1172,7 @@ export type FullVideoFieldsFragment = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1174,6 +1210,7 @@ export type FullVideoFieldsFragment = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1224,6 +1261,7 @@ export type BasicNftFieldsFragment = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1247,6 +1285,7 @@ export type BasicNftFieldsFragment = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1279,6 +1318,7 @@ export type BasicNftFieldsFragment = {
                     type?:
                       | { __typename: 'DataObjectTypeChannelAvatar' }
                       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                       | { __typename: 'DataObjectTypeVideoMedia' }
                       | { __typename: 'DataObjectTypeVideoSubtitle' }
                       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1340,6 +1380,7 @@ export type BasicNftFieldsFragment = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1381,6 +1422,7 @@ export type BasicNftFieldsFragment = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1417,6 +1459,7 @@ export type BasicNftFieldsFragment = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1474,6 +1517,7 @@ export type FullNftFieldsFragment = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1493,6 +1537,7 @@ export type FullNftFieldsFragment = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1540,6 +1585,7 @@ export type FullNftFieldsFragment = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1563,6 +1609,7 @@ export type FullNftFieldsFragment = {
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1595,6 +1642,7 @@ export type FullNftFieldsFragment = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1656,6 +1704,7 @@ export type FullNftFieldsFragment = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1697,6 +1746,7 @@ export type FullNftFieldsFragment = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1733,6 +1783,7 @@ export type FullNftFieldsFragment = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1787,6 +1838,7 @@ export type FullNftFieldsFragment = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1810,6 +1862,7 @@ export type FullNftFieldsFragment = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1842,6 +1895,7 @@ export type FullNftFieldsFragment = {
                     type?:
                       | { __typename: 'DataObjectTypeChannelAvatar' }
                       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                       | { __typename: 'DataObjectTypeVideoMedia' }
                       | { __typename: 'DataObjectTypeVideoSubtitle' }
                       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1903,6 +1957,7 @@ export type FullNftFieldsFragment = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1944,6 +1999,7 @@ export type FullNftFieldsFragment = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1980,6 +2036,7 @@ export type FullNftFieldsFragment = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2029,6 +2086,7 @@ export type BasicBidFieldsFragment = {
               type?:
                 | { __typename: 'DataObjectTypeChannelAvatar' }
                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                 | { __typename: 'DataObjectTypeVideoMedia' }
                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2078,6 +2136,7 @@ export type FullBidFieldsFragment = {
               type?:
                 | { __typename: 'DataObjectTypeChannelAvatar' }
                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                 | { __typename: 'DataObjectTypeVideoMedia' }
                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2128,6 +2187,7 @@ export type CommentFieldsFragment = {
               type?:
                 | { __typename: 'DataObjectTypeChannelAvatar' }
                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                 | { __typename: 'DataObjectTypeVideoMedia' }
                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2146,6 +2206,10 @@ export type CommentFieldsFragment = {
   parentComment?: { __typename?: 'Comment'; id: string } | null
 }
 
+export type MetaprotocolTransactionResultFields_MetaprotocolTransactionResultChannelPaid_Fragment = {
+  __typename: 'MetaprotocolTransactionResultChannelPaid'
+}
+
 export type MetaprotocolTransactionResultFields_MetaprotocolTransactionResultCommentCreated_Fragment = {
   __typename: 'MetaprotocolTransactionResultCommentCreated'
   commentCreated?: {
@@ -2180,6 +2244,7 @@ export type MetaprotocolTransactionResultFields_MetaprotocolTransactionResultCom
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2233,6 +2298,7 @@ export type MetaprotocolTransactionResultFields_MetaprotocolTransactionResultCom
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2286,6 +2352,7 @@ export type MetaprotocolTransactionResultFields_MetaprotocolTransactionResultCom
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2339,6 +2406,7 @@ export type MetaprotocolTransactionResultFields_MetaprotocolTransactionResultCom
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2368,6 +2436,7 @@ export type MetaprotocolTransactionResultFields_MetaprotocolTransactionResultOk_
 }
 
 export type MetaprotocolTransactionResultFieldsFragment =
+  | MetaprotocolTransactionResultFields_MetaprotocolTransactionResultChannelPaid_Fragment
   | MetaprotocolTransactionResultFields_MetaprotocolTransactionResultCommentCreated_Fragment
   | MetaprotocolTransactionResultFields_MetaprotocolTransactionResultCommentDeleted_Fragment
   | MetaprotocolTransactionResultFields_MetaprotocolTransactionResultCommentEdited_Fragment
@@ -2402,6 +2471,7 @@ export type BasicNftOwnerFields_NftOwnerChannel_Fragment = {
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2440,6 +2510,7 @@ export type BasicNftOwnerFields_NftOwnerMember_Fragment = {
               type?:
                 | { __typename: 'DataObjectTypeChannelAvatar' }
                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                 | { __typename: 'DataObjectTypeVideoMedia' }
                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2487,6 +2558,7 @@ export type BasicFeaturedVideoFragment = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2506,6 +2578,7 @@ export type BasicFeaturedVideoFragment = {
     type?:
       | { __typename: 'DataObjectTypeChannelAvatar' }
       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
       | { __typename: 'DataObjectTypeVideoMedia' }
       | { __typename: 'DataObjectTypeVideoSubtitle' }
       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2575,6 +2648,7 @@ export type BasicVideoFeaturedInCategoryFragment = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2594,6 +2668,7 @@ export type BasicVideoFeaturedInCategoryFragment = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2647,6 +2722,7 @@ export type BasicVideoActivityFieldsFragment = {
     type?:
       | { __typename: 'DataObjectTypeChannelAvatar' }
       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
       | { __typename: 'DataObjectTypeVideoMedia' }
       | { __typename: 'DataObjectTypeVideoSubtitle' }
       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2721,6 +2797,7 @@ export const FullChannelFieldsFragmentDoc = gql`
     videoViewsNum
     description
     isPublic
+    cumulativeRewardClaimed
     isCensored
     language
     ownerMember {

+ 3 - 0
packages/atlas/src/api/queries/__generated__/memberships.generated.tsx

@@ -41,6 +41,7 @@ export type GetMembershipsQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -59,6 +60,7 @@ export type GetMembershipsQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -84,6 +86,7 @@ export type GetMembershipsQuery = {
               type?:
                 | { __typename: 'DataObjectTypeChannelAvatar' }
                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                 | { __typename: 'DataObjectTypeVideoMedia' }
                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                 | { __typename: 'DataObjectTypeVideoThumbnail' }

+ 57 - 0
packages/atlas/src/api/queries/__generated__/nfts.generated.tsx

@@ -53,6 +53,7 @@ export type GetNftQuery = {
           type?:
             | { __typename: 'DataObjectTypeChannelAvatar' }
             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
             | { __typename: 'DataObjectTypeVideoMedia' }
             | { __typename: 'DataObjectTypeVideoSubtitle' }
             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -72,6 +73,7 @@ export type GetNftQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -119,6 +121,7 @@ export type GetNftQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -142,6 +145,7 @@ export type GetNftQuery = {
                   type?:
                     | { __typename: 'DataObjectTypeChannelAvatar' }
                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                     | { __typename: 'DataObjectTypeVideoMedia' }
                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -174,6 +178,7 @@ export type GetNftQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -235,6 +240,7 @@ export type GetNftQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -276,6 +282,7 @@ export type GetNftQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -312,6 +319,7 @@ export type GetNftQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -366,6 +374,7 @@ export type GetNftQuery = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -389,6 +398,7 @@ export type GetNftQuery = {
               type?:
                 | { __typename: 'DataObjectTypeChannelAvatar' }
                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                 | { __typename: 'DataObjectTypeVideoMedia' }
                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -421,6 +431,7 @@ export type GetNftQuery = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -482,6 +493,7 @@ export type GetNftQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -523,6 +535,7 @@ export type GetNftQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -559,6 +572,7 @@ export type GetNftQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -626,6 +640,7 @@ export type GetNftsQuery = {
           type?:
             | { __typename: 'DataObjectTypeChannelAvatar' }
             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
             | { __typename: 'DataObjectTypeVideoMedia' }
             | { __typename: 'DataObjectTypeVideoSubtitle' }
             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -645,6 +660,7 @@ export type GetNftsQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -692,6 +708,7 @@ export type GetNftsQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -715,6 +732,7 @@ export type GetNftsQuery = {
                   type?:
                     | { __typename: 'DataObjectTypeChannelAvatar' }
                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                     | { __typename: 'DataObjectTypeVideoMedia' }
                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -747,6 +765,7 @@ export type GetNftsQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -808,6 +827,7 @@ export type GetNftsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -849,6 +869,7 @@ export type GetNftsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -885,6 +906,7 @@ export type GetNftsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -939,6 +961,7 @@ export type GetNftsQuery = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -962,6 +985,7 @@ export type GetNftsQuery = {
               type?:
                 | { __typename: 'DataObjectTypeChannelAvatar' }
                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                 | { __typename: 'DataObjectTypeVideoMedia' }
                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -994,6 +1018,7 @@ export type GetNftsQuery = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1055,6 +1080,7 @@ export type GetNftsQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1096,6 +1122,7 @@ export type GetNftsQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1132,6 +1159,7 @@ export type GetNftsQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1205,6 +1233,7 @@ export type GetNftsConnectionQuery = {
               type?:
                 | { __typename: 'DataObjectTypeChannelAvatar' }
                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                 | { __typename: 'DataObjectTypeVideoMedia' }
                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1224,6 +1253,7 @@ export type GetNftsConnectionQuery = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1271,6 +1301,7 @@ export type GetNftsConnectionQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1294,6 +1325,7 @@ export type GetNftsConnectionQuery = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1326,6 +1358,7 @@ export type GetNftsConnectionQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1387,6 +1420,7 @@ export type GetNftsConnectionQuery = {
                                   type?:
                                     | { __typename: 'DataObjectTypeChannelAvatar' }
                                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                     | { __typename: 'DataObjectTypeVideoMedia' }
                                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1428,6 +1462,7 @@ export type GetNftsConnectionQuery = {
                                   type?:
                                     | { __typename: 'DataObjectTypeChannelAvatar' }
                                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                     | { __typename: 'DataObjectTypeVideoMedia' }
                                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1464,6 +1499,7 @@ export type GetNftsConnectionQuery = {
                                   type?:
                                     | { __typename: 'DataObjectTypeChannelAvatar' }
                                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                     | { __typename: 'DataObjectTypeVideoMedia' }
                                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1518,6 +1554,7 @@ export type GetNftsConnectionQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1541,6 +1578,7 @@ export type GetNftsConnectionQuery = {
                   type?:
                     | { __typename: 'DataObjectTypeChannelAvatar' }
                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                     | { __typename: 'DataObjectTypeVideoMedia' }
                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1573,6 +1611,7 @@ export type GetNftsConnectionQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1634,6 +1673,7 @@ export type GetNftsConnectionQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1675,6 +1715,7 @@ export type GetNftsConnectionQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1711,6 +1752,7 @@ export type GetNftsConnectionQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1767,6 +1809,7 @@ export type GetFeaturedNftsQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1794,6 +1837,7 @@ export type GetFeaturedNftsQuery = {
           type?:
             | { __typename: 'DataObjectTypeChannelAvatar' }
             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
             | { __typename: 'DataObjectTypeVideoMedia' }
             | { __typename: 'DataObjectTypeVideoSubtitle' }
             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1813,6 +1857,7 @@ export type GetFeaturedNftsQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1860,6 +1905,7 @@ export type GetFeaturedNftsQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1883,6 +1929,7 @@ export type GetFeaturedNftsQuery = {
                   type?:
                     | { __typename: 'DataObjectTypeChannelAvatar' }
                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                     | { __typename: 'DataObjectTypeVideoMedia' }
                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1915,6 +1962,7 @@ export type GetFeaturedNftsQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1976,6 +2024,7 @@ export type GetFeaturedNftsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2017,6 +2066,7 @@ export type GetFeaturedNftsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2053,6 +2103,7 @@ export type GetFeaturedNftsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2107,6 +2158,7 @@ export type GetFeaturedNftsQuery = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2130,6 +2182,7 @@ export type GetFeaturedNftsQuery = {
               type?:
                 | { __typename: 'DataObjectTypeChannelAvatar' }
                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                 | { __typename: 'DataObjectTypeVideoMedia' }
                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2162,6 +2215,7 @@ export type GetFeaturedNftsQuery = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2223,6 +2277,7 @@ export type GetFeaturedNftsQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2264,6 +2319,7 @@ export type GetFeaturedNftsQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2300,6 +2356,7 @@ export type GetFeaturedNftsQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }

+ 100 - 0
packages/atlas/src/api/queries/__generated__/notifications.generated.tsx

@@ -53,6 +53,7 @@ export type GetNotificationsQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -88,6 +89,7 @@ export type GetNotificationsQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -132,6 +134,7 @@ export type GetNotificationsQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -169,6 +172,7 @@ export type GetNotificationsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -210,6 +214,7 @@ export type GetNotificationsQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -250,6 +255,7 @@ export type GetNotificationsQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -287,6 +293,7 @@ export type GetNotificationsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -301,6 +308,11 @@ export type GetNotificationsQuery = {
           }
         | { __typename?: 'BuyNowCanceledEventData' }
         | { __typename?: 'BuyNowPriceUpdatedEventData' }
+        | { __typename?: 'ChannelFundsWithdrawnEventData' }
+        | { __typename?: 'ChannelPaymentMadeEventData' }
+        | { __typename?: 'ChannelPayoutsUpdatedEventData' }
+        | { __typename?: 'ChannelRewardClaimedAndWithdrawnEventData' }
+        | { __typename?: 'ChannelRewardClaimedEventData' }
         | {
             __typename?: 'CommentCreatedEventData'
             comment: {
@@ -331,6 +343,7 @@ export type GetNotificationsQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -371,6 +384,7 @@ export type GetNotificationsQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -414,6 +428,7 @@ export type GetNotificationsQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -451,6 +466,7 @@ export type GetNotificationsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -492,6 +508,7 @@ export type GetNotificationsQuery = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -534,6 +551,7 @@ export type GetNotificationsQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -577,6 +595,7 @@ export type GetNotificationsQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -614,6 +633,7 @@ export type GetNotificationsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -669,6 +689,7 @@ export type GetNftHistoryQuery = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -708,6 +729,7 @@ export type GetNftHistoryQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -750,6 +772,7 @@ export type GetNftHistoryQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -787,6 +810,7 @@ export type GetNftHistoryQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -829,6 +853,7 @@ export type GetNftHistoryQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -866,6 +891,7 @@ export type GetNftHistoryQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -903,6 +929,7 @@ export type GetNftHistoryQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -945,6 +972,7 @@ export type GetNftHistoryQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -982,6 +1010,7 @@ export type GetNftHistoryQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1025,6 +1054,7 @@ export type GetNftHistoryQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1062,6 +1092,7 @@ export type GetNftHistoryQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1074,6 +1105,11 @@ export type GetNftHistoryQuery = {
                   }
                 }
           }
+        | { __typename?: 'ChannelFundsWithdrawnEventData' }
+        | { __typename?: 'ChannelPaymentMadeEventData' }
+        | { __typename?: 'ChannelPayoutsUpdatedEventData' }
+        | { __typename?: 'ChannelRewardClaimedAndWithdrawnEventData' }
+        | { __typename?: 'ChannelRewardClaimedEventData' }
         | { __typename?: 'CommentCreatedEventData' }
         | { __typename?: 'CommentTextUpdatedEventData' }
         | {
@@ -1106,6 +1142,7 @@ export type GetNftHistoryQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1143,6 +1180,7 @@ export type GetNftHistoryQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1179,6 +1217,7 @@ export type GetNftHistoryQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1221,6 +1260,7 @@ export type GetNftHistoryQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1258,6 +1298,7 @@ export type GetNftHistoryQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1298,6 +1339,7 @@ export type GetNftHistoryQuery = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1339,6 +1381,7 @@ export type GetNftHistoryQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1376,6 +1419,7 @@ export type GetNftHistoryQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1419,6 +1463,7 @@ export type GetNftHistoryQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1456,6 +1501,7 @@ export type GetNftHistoryQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1498,6 +1544,7 @@ export type GetNftHistoryQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1535,6 +1582,7 @@ export type GetNftHistoryQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1572,6 +1620,7 @@ export type GetNftHistoryQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1614,6 +1663,7 @@ export type GetNftHistoryQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1651,6 +1701,7 @@ export type GetNftHistoryQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1712,6 +1763,7 @@ export type GetNftActivitiesQuery = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1745,6 +1797,7 @@ export type GetNftActivitiesQuery = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1785,6 +1838,7 @@ export type GetNftActivitiesQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1822,6 +1876,7 @@ export type GetNftActivitiesQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1859,6 +1914,7 @@ export type GetNftActivitiesQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1894,6 +1950,7 @@ export type GetNftActivitiesQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1926,6 +1983,7 @@ export type GetNftActivitiesQuery = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1959,6 +2017,7 @@ export type GetNftActivitiesQuery = {
                     type?:
                       | { __typename: 'DataObjectTypeChannelAvatar' }
                       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                       | { __typename: 'DataObjectTypeVideoMedia' }
                       | { __typename: 'DataObjectTypeVideoSubtitle' }
                       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1995,6 +2054,7 @@ export type GetNftActivitiesQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2032,6 +2092,7 @@ export type GetNftActivitiesQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2074,6 +2135,7 @@ export type GetNftActivitiesQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2111,6 +2173,7 @@ export type GetNftActivitiesQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2148,6 +2211,7 @@ export type GetNftActivitiesQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2179,6 +2243,7 @@ export type GetNftActivitiesQuery = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2210,6 +2275,7 @@ export type GetNftActivitiesQuery = {
                   type?:
                     | { __typename: 'DataObjectTypeChannelAvatar' }
                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                     | { __typename: 'DataObjectTypeVideoMedia' }
                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2245,6 +2311,7 @@ export type GetNftActivitiesQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2282,6 +2349,7 @@ export type GetNftActivitiesQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2316,6 +2384,7 @@ export type GetNftActivitiesQuery = {
                   type?:
                     | { __typename: 'DataObjectTypeChannelAvatar' }
                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                     | { __typename: 'DataObjectTypeVideoMedia' }
                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2351,6 +2420,7 @@ export type GetNftActivitiesQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2388,6 +2458,7 @@ export type GetNftActivitiesQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2400,6 +2471,11 @@ export type GetNftActivitiesQuery = {
                   }
                 }
           }
+        | { __typename?: 'ChannelFundsWithdrawnEventData' }
+        | { __typename?: 'ChannelPaymentMadeEventData' }
+        | { __typename?: 'ChannelPayoutsUpdatedEventData' }
+        | { __typename?: 'ChannelRewardClaimedAndWithdrawnEventData' }
+        | { __typename?: 'ChannelRewardClaimedEventData' }
         | { __typename?: 'CommentCreatedEventData' }
         | { __typename?: 'CommentTextUpdatedEventData' }
         | {
@@ -2432,6 +2508,7 @@ export type GetNftActivitiesQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2469,6 +2546,7 @@ export type GetNftActivitiesQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2506,6 +2584,7 @@ export type GetNftActivitiesQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2537,6 +2616,7 @@ export type GetNftActivitiesQuery = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2570,6 +2650,7 @@ export type GetNftActivitiesQuery = {
                     type?:
                       | { __typename: 'DataObjectTypeChannelAvatar' }
                       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                       | { __typename: 'DataObjectTypeVideoMedia' }
                       | { __typename: 'DataObjectTypeVideoSubtitle' }
                       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2606,6 +2687,7 @@ export type GetNftActivitiesQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2643,6 +2725,7 @@ export type GetNftActivitiesQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2683,6 +2766,7 @@ export type GetNftActivitiesQuery = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2721,6 +2805,7 @@ export type GetNftActivitiesQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2758,6 +2843,7 @@ export type GetNftActivitiesQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2788,6 +2874,7 @@ export type GetNftActivitiesQuery = {
                   type?:
                     | { __typename: 'DataObjectTypeChannelAvatar' }
                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                     | { __typename: 'DataObjectTypeVideoMedia' }
                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2817,6 +2904,7 @@ export type GetNftActivitiesQuery = {
                   type?:
                     | { __typename: 'DataObjectTypeChannelAvatar' }
                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                     | { __typename: 'DataObjectTypeVideoMedia' }
                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2852,6 +2940,7 @@ export type GetNftActivitiesQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2889,6 +2978,7 @@ export type GetNftActivitiesQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2923,6 +3013,7 @@ export type GetNftActivitiesQuery = {
                   type?:
                     | { __typename: 'DataObjectTypeChannelAvatar' }
                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                     | { __typename: 'DataObjectTypeVideoMedia' }
                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2958,6 +3049,7 @@ export type GetNftActivitiesQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2995,6 +3087,7 @@ export type GetNftActivitiesQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -3035,6 +3128,7 @@ export type GetNftActivitiesQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -3066,6 +3160,7 @@ export type GetNftActivitiesQuery = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -3103,6 +3198,7 @@ export type GetNftActivitiesQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -3140,6 +3236,7 @@ export type GetNftActivitiesQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -3175,6 +3272,7 @@ export type GetNftActivitiesQuery = {
                     type?:
                       | { __typename: 'DataObjectTypeChannelAvatar' }
                       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                       | { __typename: 'DataObjectTypeVideoMedia' }
                       | { __typename: 'DataObjectTypeVideoSubtitle' }
                       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -3211,6 +3309,7 @@ export type GetNftActivitiesQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -3248,6 +3347,7 @@ export type GetNftActivitiesQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }

+ 10 - 0
packages/atlas/src/api/queries/__generated__/transactionEvents.generated.tsx

@@ -22,6 +22,11 @@ export type GetMetaprotocolTransactionStatusEventsQuery = {
       | { __typename?: 'BidMadeCompletingAuctionEventData' }
       | { __typename?: 'BuyNowCanceledEventData' }
       | { __typename?: 'BuyNowPriceUpdatedEventData' }
+      | { __typename?: 'ChannelFundsWithdrawnEventData' }
+      | { __typename?: 'ChannelPaymentMadeEventData' }
+      | { __typename?: 'ChannelPayoutsUpdatedEventData' }
+      | { __typename?: 'ChannelRewardClaimedAndWithdrawnEventData' }
+      | { __typename?: 'ChannelRewardClaimedEventData' }
       | { __typename?: 'CommentCreatedEventData' }
       | { __typename?: 'CommentTextUpdatedEventData' }
       | { __typename?: 'EnglishAuctionSettledEventData' }
@@ -30,6 +35,7 @@ export type GetMetaprotocolTransactionStatusEventsQuery = {
       | {
           __typename?: 'MetaprotocolTransactionStatusEventData'
           result:
+            | { __typename: 'MetaprotocolTransactionResultChannelPaid' }
             | {
                 __typename: 'MetaprotocolTransactionResultCommentCreated'
                 commentCreated?: {
@@ -64,6 +70,7 @@ export type GetMetaprotocolTransactionStatusEventsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -116,6 +123,7 @@ export type GetMetaprotocolTransactionStatusEventsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -168,6 +176,7 @@ export type GetMetaprotocolTransactionStatusEventsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -220,6 +229,7 @@ export type GetMetaprotocolTransactionStatusEventsQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }

+ 79 - 0
packages/atlas/src/api/queries/__generated__/videos.generated.tsx

@@ -56,6 +56,7 @@ export type GetFullVideoQuery = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -74,6 +75,7 @@ export type GetFullVideoQuery = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -84,6 +86,7 @@ export type GetFullVideoQuery = {
       videoViewsNum: number
       description?: string | null
       isPublic?: boolean | null
+      cumulativeRewardClaimed?: string | null
       isCensored: boolean
       language?: string | null
       id: string
@@ -115,6 +118,7 @@ export type GetFullVideoQuery = {
                   type?:
                     | { __typename: 'DataObjectTypeChannelAvatar' }
                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                     | { __typename: 'DataObjectTypeVideoMedia' }
                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -138,6 +142,7 @@ export type GetFullVideoQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -156,6 +161,7 @@ export type GetFullVideoQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -211,6 +217,7 @@ export type GetFullVideoQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -234,6 +241,7 @@ export type GetFullVideoQuery = {
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -266,6 +274,7 @@ export type GetFullVideoQuery = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -327,6 +336,7 @@ export type GetFullVideoQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -368,6 +378,7 @@ export type GetFullVideoQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -404,6 +415,7 @@ export type GetFullVideoQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -441,6 +453,7 @@ export type GetFullVideoQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -496,6 +509,7 @@ export type GetBasicVideosConnectionQuery = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -515,6 +529,7 @@ export type GetBasicVideosConnectionQuery = {
           type?:
             | { __typename: 'DataObjectTypeChannelAvatar' }
             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
             | { __typename: 'DataObjectTypeVideoMedia' }
             | { __typename: 'DataObjectTypeVideoSubtitle' }
             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -562,6 +577,7 @@ export type GetBasicVideosConnectionQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -585,6 +601,7 @@ export type GetBasicVideosConnectionQuery = {
                     type?:
                       | { __typename: 'DataObjectTypeChannelAvatar' }
                       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                       | { __typename: 'DataObjectTypeVideoMedia' }
                       | { __typename: 'DataObjectTypeVideoSubtitle' }
                       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -617,6 +634,7 @@ export type GetBasicVideosConnectionQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -678,6 +696,7 @@ export type GetBasicVideosConnectionQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -719,6 +738,7 @@ export type GetBasicVideosConnectionQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -755,6 +775,7 @@ export type GetBasicVideosConnectionQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -839,6 +860,7 @@ export type GetFullVideosConnectionQuery = {
           type?:
             | { __typename: 'DataObjectTypeChannelAvatar' }
             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
             | { __typename: 'DataObjectTypeVideoMedia' }
             | { __typename: 'DataObjectTypeVideoSubtitle' }
             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -857,6 +879,7 @@ export type GetFullVideosConnectionQuery = {
           type?:
             | { __typename: 'DataObjectTypeChannelAvatar' }
             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
             | { __typename: 'DataObjectTypeVideoMedia' }
             | { __typename: 'DataObjectTypeVideoSubtitle' }
             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -867,6 +890,7 @@ export type GetFullVideosConnectionQuery = {
           videoViewsNum: number
           description?: string | null
           isPublic?: boolean | null
+          cumulativeRewardClaimed?: string | null
           isCensored: boolean
           language?: string | null
           id: string
@@ -898,6 +922,7 @@ export type GetFullVideosConnectionQuery = {
                       type?:
                         | { __typename: 'DataObjectTypeChannelAvatar' }
                         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                         | { __typename: 'DataObjectTypeVideoMedia' }
                         | { __typename: 'DataObjectTypeVideoSubtitle' }
                         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -921,6 +946,7 @@ export type GetFullVideosConnectionQuery = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -939,6 +965,7 @@ export type GetFullVideosConnectionQuery = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -994,6 +1021,7 @@ export type GetFullVideosConnectionQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1017,6 +1045,7 @@ export type GetFullVideosConnectionQuery = {
                     type?:
                       | { __typename: 'DataObjectTypeChannelAvatar' }
                       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                       | { __typename: 'DataObjectTypeVideoMedia' }
                       | { __typename: 'DataObjectTypeVideoSubtitle' }
                       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1049,6 +1078,7 @@ export type GetFullVideosConnectionQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1110,6 +1140,7 @@ export type GetFullVideosConnectionQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1151,6 +1182,7 @@ export type GetFullVideosConnectionQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1187,6 +1219,7 @@ export type GetFullVideosConnectionQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1224,6 +1257,7 @@ export type GetFullVideosConnectionQuery = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1276,6 +1310,7 @@ export type GetBasicVideosQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1295,6 +1330,7 @@ export type GetBasicVideosQuery = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1342,6 +1378,7 @@ export type GetBasicVideosQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1365,6 +1402,7 @@ export type GetBasicVideosQuery = {
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1397,6 +1435,7 @@ export type GetBasicVideosQuery = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1458,6 +1497,7 @@ export type GetBasicVideosQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1499,6 +1539,7 @@ export type GetBasicVideosQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1535,6 +1576,7 @@ export type GetBasicVideosQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1610,6 +1652,7 @@ export type GetFullVideosQuery = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1628,6 +1671,7 @@ export type GetFullVideosQuery = {
       type?:
         | { __typename: 'DataObjectTypeChannelAvatar' }
         | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+        | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
         | { __typename: 'DataObjectTypeVideoMedia' }
         | { __typename: 'DataObjectTypeVideoSubtitle' }
         | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1638,6 +1682,7 @@ export type GetFullVideosQuery = {
       videoViewsNum: number
       description?: string | null
       isPublic?: boolean | null
+      cumulativeRewardClaimed?: string | null
       isCensored: boolean
       language?: string | null
       id: string
@@ -1669,6 +1714,7 @@ export type GetFullVideosQuery = {
                   type?:
                     | { __typename: 'DataObjectTypeChannelAvatar' }
                     | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                    | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                     | { __typename: 'DataObjectTypeVideoMedia' }
                     | { __typename: 'DataObjectTypeVideoSubtitle' }
                     | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1692,6 +1738,7 @@ export type GetFullVideosQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1710,6 +1757,7 @@ export type GetFullVideosQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1765,6 +1813,7 @@ export type GetFullVideosQuery = {
                           type?:
                             | { __typename: 'DataObjectTypeChannelAvatar' }
                             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                             | { __typename: 'DataObjectTypeVideoMedia' }
                             | { __typename: 'DataObjectTypeVideoSubtitle' }
                             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1788,6 +1837,7 @@ export type GetFullVideosQuery = {
                 type?:
                   | { __typename: 'DataObjectTypeChannelAvatar' }
                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                   | { __typename: 'DataObjectTypeVideoMedia' }
                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1820,6 +1870,7 @@ export type GetFullVideosQuery = {
                         type?:
                           | { __typename: 'DataObjectTypeChannelAvatar' }
                           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                           | { __typename: 'DataObjectTypeVideoMedia' }
                           | { __typename: 'DataObjectTypeVideoSubtitle' }
                           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1881,6 +1932,7 @@ export type GetFullVideosQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1922,6 +1974,7 @@ export type GetFullVideosQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1958,6 +2011,7 @@ export type GetFullVideosQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -1995,6 +2049,7 @@ export type GetFullVideosQuery = {
         type?:
           | { __typename: 'DataObjectTypeChannelAvatar' }
           | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+          | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
           | { __typename: 'DataObjectTypeVideoMedia' }
           | { __typename: 'DataObjectTypeVideoSubtitle' }
           | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2052,6 +2107,7 @@ export type GetMostViewedVideosConnectionQuery = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2071,6 +2127,7 @@ export type GetMostViewedVideosConnectionQuery = {
           type?:
             | { __typename: 'DataObjectTypeChannelAvatar' }
             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
             | { __typename: 'DataObjectTypeVideoMedia' }
             | { __typename: 'DataObjectTypeVideoSubtitle' }
             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2118,6 +2175,7 @@ export type GetMostViewedVideosConnectionQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2141,6 +2199,7 @@ export type GetMostViewedVideosConnectionQuery = {
                     type?:
                       | { __typename: 'DataObjectTypeChannelAvatar' }
                       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                       | { __typename: 'DataObjectTypeVideoMedia' }
                       | { __typename: 'DataObjectTypeVideoSubtitle' }
                       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2173,6 +2232,7 @@ export type GetMostViewedVideosConnectionQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2234,6 +2294,7 @@ export type GetMostViewedVideosConnectionQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2275,6 +2336,7 @@ export type GetMostViewedVideosConnectionQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2311,6 +2373,7 @@ export type GetMostViewedVideosConnectionQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2376,6 +2439,7 @@ export type GetTop10VideosThisWeekQuery = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2395,6 +2459,7 @@ export type GetTop10VideosThisWeekQuery = {
           type?:
             | { __typename: 'DataObjectTypeChannelAvatar' }
             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
             | { __typename: 'DataObjectTypeVideoMedia' }
             | { __typename: 'DataObjectTypeVideoSubtitle' }
             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2442,6 +2507,7 @@ export type GetTop10VideosThisWeekQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2465,6 +2531,7 @@ export type GetTop10VideosThisWeekQuery = {
                     type?:
                       | { __typename: 'DataObjectTypeChannelAvatar' }
                       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                       | { __typename: 'DataObjectTypeVideoMedia' }
                       | { __typename: 'DataObjectTypeVideoSubtitle' }
                       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2497,6 +2564,7 @@ export type GetTop10VideosThisWeekQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2558,6 +2626,7 @@ export type GetTop10VideosThisWeekQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2599,6 +2668,7 @@ export type GetTop10VideosThisWeekQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2635,6 +2705,7 @@ export type GetTop10VideosThisWeekQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2699,6 +2770,7 @@ export type GetTop10VideosThisMonthQuery = {
             type?:
               | { __typename: 'DataObjectTypeChannelAvatar' }
               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
               | { __typename: 'DataObjectTypeVideoMedia' }
               | { __typename: 'DataObjectTypeVideoSubtitle' }
               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2718,6 +2790,7 @@ export type GetTop10VideosThisMonthQuery = {
           type?:
             | { __typename: 'DataObjectTypeChannelAvatar' }
             | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+            | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
             | { __typename: 'DataObjectTypeVideoMedia' }
             | { __typename: 'DataObjectTypeVideoSubtitle' }
             | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2765,6 +2838,7 @@ export type GetTop10VideosThisMonthQuery = {
                               type?:
                                 | { __typename: 'DataObjectTypeChannelAvatar' }
                                 | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                 | { __typename: 'DataObjectTypeVideoMedia' }
                                 | { __typename: 'DataObjectTypeVideoSubtitle' }
                                 | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2788,6 +2862,7 @@ export type GetTop10VideosThisMonthQuery = {
                     type?:
                       | { __typename: 'DataObjectTypeChannelAvatar' }
                       | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                      | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                       | { __typename: 'DataObjectTypeVideoMedia' }
                       | { __typename: 'DataObjectTypeVideoSubtitle' }
                       | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2820,6 +2895,7 @@ export type GetTop10VideosThisMonthQuery = {
                             type?:
                               | { __typename: 'DataObjectTypeChannelAvatar' }
                               | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                              | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                               | { __typename: 'DataObjectTypeVideoMedia' }
                               | { __typename: 'DataObjectTypeVideoSubtitle' }
                               | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2881,6 +2957,7 @@ export type GetTop10VideosThisMonthQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2922,6 +2999,7 @@ export type GetTop10VideosThisMonthQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }
@@ -2958,6 +3036,7 @@ export type GetTop10VideosThisMonthQuery = {
                                 type?:
                                   | { __typename: 'DataObjectTypeChannelAvatar' }
                                   | { __typename: 'DataObjectTypeChannelCoverPhoto' }
+                                  | { __typename: 'DataObjectTypeChannelPayoutsPayload' }
                                   | { __typename: 'DataObjectTypeVideoMedia' }
                                   | { __typename: 'DataObjectTypeVideoSubtitle' }
                                   | { __typename: 'DataObjectTypeVideoThumbnail' }

+ 150 - 51
packages/atlas/src/api/queries/channels.graphql

@@ -135,84 +135,183 @@ mutation ReportChannel($channelId: String!, $rationale: String!) {
   }
 }
 
-# todo needs to be rewritten in orion v2 once payments table is back
-query GetChannelPaymentEvents {
-  # nftBoughtEvents(where: { ownerMember: { id_eq: $ownerMemberId } }) {
-  #   inBlock
-  #   createdAt
-  #   price
-  # }
-
-  # bidMadeCompletingAuctionEvents(where: { ownerMember: { id_eq: $ownerMemberId } }) {
-  #   inBlock
-  #   createdAt
-  #   price
-  # }
-
-  # englishAuctionSettledEvents(where: { ownerMember: { id_eq: $ownerMemberId } }) {
-  #   createdAt
-  #   inBlock
-  #   winningBid {
-  #     amount
-  #   }
-  # }
-
-  # openAuctionBidAcceptedEvents(where: { ownerMember: { id_eq: $ownerMemberId } }) {
-  #   inBlock
-  #   createdAt
-  #   winningBid {
-  #     amount
-  #   }
-  # }
+query GetPayloadDataByCommitment($commitment: String!) {
+  events(where: { data: { isTypeOf_eq: "ChannelPayoutsUpdatedEventData", commitment_eq: $commitment } }) {
+    data {
+      ... on ChannelPayoutsUpdatedEventData {
+        payloadDataObject {
+          isAccepted
+          resolvedUrls
+          resolvedUrl @client
+        }
+      }
+    }
+  }
+}
 
+query GetChannelPaymentEvents($channelId: String) {
   events(
+    orderBy: timestamp_DESC
     where: {
-      data: {
-        isTypeOf_in: [
-          "NftBoughtEventData"
-          "BidMadeCompletingAuctionEventData"
-          "EnglishAuctionSettledEventData"
-          "OpenAuctionBidAcceptedEventData"
-        ]
-      }
+      OR: [
+        # This covers sold events
+        {
+          data: {
+            isTypeOf_in: [
+              "NftBoughtEventData"
+              "BidMadeCompletingAuctionEventData"
+              "EnglishAuctionSettledEventData"
+              "OpenAuctionBidAcceptedEventData"
+            ]
+            previousNftOwner: { channel: { id_eq: $channelId } }
+          }
+        }
+        # This covers royalty events
+        {
+          data: {
+            isTypeOf_in: [
+              "NftBoughtEventData"
+              "BidMadeCompletingAuctionEventData"
+              "EnglishAuctionSettledEventData"
+              "OpenAuctionBidAcceptedEventData"
+            ]
+            nft: { video: { channel: { id_eq: $channelId } } }
+          }
+        }
+        {
+          data: {
+            isTypeOf_in: ["ChannelRewardClaimedEventData", "ChannelFundsWithdrawnEventData"]
+            channel: { id_eq: $channelId }
+          }
+        }
+        { data: { isTypeOf_in: ["ChannelPaymentMadeEventData"], payeeChannel: { id_eq: $channelId } } }
+      ]
     }
   ) {
-    id
-    timestamp
     inBlock
+    timestamp
     data {
       __typename
       ... on NftBoughtEventData {
         price
+        buyer {
+          controllerAccount
+        }
+        nft {
+          creatorRoyalty
+          video {
+            title
+          }
+        }
+        previousNftOwner {
+          __typename
+        }
       }
       ... on BidMadeCompletingAuctionEventData {
+        previousNftOwner {
+          __typename
+        }
         winningBid {
           id
           amount
+          bidder {
+            controllerAccount
+          }
+          nft {
+            creatorRoyalty
+            video {
+              title
+            }
+          }
+          bidder {
+            controllerAccount
+          }
+          amount
         }
       }
       ... on EnglishAuctionSettledEventData {
+        previousNftOwner {
+          __typename
+        }
         winningBid {
+          nft {
+            creatorRoyalty
+            video {
+              title
+            }
+          }
+          bidder {
+            controllerAccount
+          }
           amount
         }
       }
       ... on OpenAuctionBidAcceptedEventData {
         winningBid {
+          nft {
+            creatorRoyalty
+            video {
+              title
+            }
+          }
+          bidder {
+            controllerAccount
+          }
           amount
         }
       }
+      ... on OpenAuctionBidAcceptedEventData {
+        previousNftOwner {
+          __typename
+        }
+        winningBid {
+          amount
+          bidder {
+            controllerAccount
+          }
+          nft {
+            creatorRoyalty
+            video {
+              title
+            }
+          }
+        }
+      }
+
+      ... on ChannelRewardClaimedEventData {
+        amount
+      }
+      ... on ChannelFundsWithdrawnEventData {
+        amount
+        actor {
+          __typename
+          ... on ContentActorCurator {
+            __typename
+          }
+          ... on ContentActorLead {
+            __typename
+          }
+          ... on ContentActorMember {
+            member {
+              controllerAccount
+            }
+          }
+        }
+      }
+      ... on ChannelPaymentMadeEventData {
+        amount
+        rationale
+        payer {
+          controllerAccount
+        }
+      }
+      ... on ChannelPaymentMadeEventData {
+        amount
+        rationale
+        payer {
+          controllerAccount
+        }
+      }
     }
   }
-
-  #  channelRewardClaimedEvents(where: { channel: { id_eq: $channelId } }) {
-  #    amount
-  #    createdAt
-  #    inBlock
-  #  }
-
-  #  channelFundsWithdrawnEvents(where: { channel: { id_eq: $channelId } }) {
-  #    amount
-  #    createdAt
-  #    inBlock
-  #  }
 }

+ 1 - 0
packages/atlas/src/api/queries/fragments.graphql

@@ -25,6 +25,7 @@ fragment FullChannelFields on Channel {
   videoViewsNum # CHANGE: Instead of `views`
   description
   isPublic
+  cumulativeRewardClaimed
   isCensored
   language # CHANGE: Language is no longer a separate entity
   ownerMember {

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
packages/atlas/src/api/schemas/orion.json


+ 1 - 1
packages/atlas/src/api/schemas/schema.client.graphql

@@ -1,3 +1,3 @@
 type StorageDataObject {
   resolvedUrl: String
-}
+}

+ 14 - 0
packages/atlas/src/assets/icons/ActionCouncil.tsx

@@ -0,0 +1,14 @@
+// THIS FILE WAS AUTOGENERATED BY SVGR. DO NOT MODIFY IT MANUALLY;
+import { Ref, SVGProps, forwardRef, memo } from 'react'
+
+const SvgActionCouncil = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => (
+  <svg width={16} height={16} viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" ref={ref} {...props}>
+    <path
+      d="M2 4a2 2 0 0 0 2 2c0-1.309.628-2.47 1.6-3.2A2 2 0 0 0 2 4ZM4 7c.042 0 .085 0 .127.002.098.381.251.74.45 1.07A5.993 5.993 0 0 0 2 13H1a1 1 0 0 1-1-1v-1a4 4 0 0 1 4-4ZM4 13c0-1.506.832-2.818 2.062-3.5.574.319 1.235.5 1.938.5.703 0 1.364-.181 1.938-.5A3.999 3.999 0 0 1 12 13v1a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1ZM14 13a5.993 5.993 0 0 0-2.577-4.929c.199-.328.352-.688.45-1.069A4 4 0 0 1 16 11v1a1 1 0 0 1-1 1h-1ZM14 4a2 2 0 0 1-2 2c0-1.309-.628-2.47-1.6-3.2A2 2 0 0 1 14 4ZM8 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"
+      fill="#F4F6F8"
+    />
+  </svg>
+))
+SvgActionCouncil.displayName = 'SvgActionCouncil'
+const Memo = memo(SvgActionCouncil)
+export { Memo as SvgActionCouncil }

+ 14 - 0
packages/atlas/src/assets/icons/ActionCrown.tsx

@@ -0,0 +1,14 @@
+// THIS FILE WAS AUTOGENERATED BY SVGR. DO NOT MODIFY IT MANUALLY;
+import { Ref, SVGProps, forwardRef, memo } from 'react'
+
+const SvgActionCrown = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => (
+  <svg width={16} height={16} viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" ref={ref} {...props}>
+    <path
+      d="M9 3a1 1 0 0 1-.629.929l1.532 3.829a.2.2 0 0 0 .306.085L13.2 5.6a1 1 0 1 1 .525.362l-1.684 5.893a.2.2 0 0 1-.192.145H4.151a.2.2 0 0 1-.192-.145L2.275 5.962A1 1 0 1 1 2.8 5.6l2.991 2.243a.2.2 0 0 0 .306-.085l1.532-3.83A1 1 0 1 1 9 3ZM4 14.167c0-.092.075-.167.167-.167h7.666c.092 0 .167.075.167.167 0 .46-.373.833-.833.833H4.833A.833.833 0 0 1 4 14.167Z"
+      fill="#F4F6F8"
+    />
+  </svg>
+))
+SvgActionCrown.displayName = 'SvgActionCrown'
+const Memo = memo(SvgActionCrown)
+export { Memo as SvgActionCrown }

+ 16 - 0
packages/atlas/src/assets/icons/ActionNft.tsx

@@ -0,0 +1,16 @@
+// THIS FILE WAS AUTOGENERATED BY SVGR. DO NOT MODIFY IT MANUALLY;
+import { Ref, SVGProps, forwardRef, memo } from 'react'
+
+const SvgActionNft = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => (
+  <svg width={16} height={16} viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" ref={ref} {...props}>
+    <path
+      fillRule="evenodd"
+      clipRule="evenodd"
+      d="M14.062 4.5 8 1 1.938 4.5v7L8 15l6.062-3.5v-7ZM6 11.464 12 8 6 4.536v6.928Z"
+      fill="#fff"
+    />
+  </svg>
+))
+SvgActionNft.displayName = 'SvgActionNft'
+const Memo = memo(SvgActionNft)
+export { Memo as SvgActionNft }

+ 14 - 0
packages/atlas/src/assets/icons/ActionPayment.tsx

@@ -0,0 +1,14 @@
+// THIS FILE WAS AUTOGENERATED BY SVGR. DO NOT MODIFY IT MANUALLY;
+import { Ref, SVGProps, forwardRef, memo } from 'react'
+
+const SvgActionPayment = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => (
+  <svg width={16} height={16} viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" ref={ref} {...props}>
+    <path
+      d="M5 9a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM12.707 1h-2v10.619l-1.37-1.326-1.415 1.414 3.785 3.707 3.707-3.707L14 10.293l-1.293 1.293V1Z"
+      fill="#F4F6F8"
+    />
+  </svg>
+))
+SvgActionPayment.displayName = 'SvgActionPayment'
+const Memo = memo(SvgActionPayment)
+export { Memo as SvgActionPayment }

+ 15 - 0
packages/atlas/src/assets/icons/ActionRevenueShare.tsx

@@ -0,0 +1,15 @@
+// THIS FILE WAS AUTOGENERATED BY SVGR. DO NOT MODIFY IT MANUALLY;
+import { Ref, SVGProps, forwardRef, memo } from 'react'
+
+const SvgActionRevenueShare = forwardRef((props: SVGProps<SVGSVGElement>, ref: Ref<SVGSVGElement>) => (
+  <svg width={16} height={16} viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" ref={ref} {...props}>
+    <path d="M9 4a3 3 0 1 1 6 0 3 3 0 0 1-6 0Z" fill="#fff" />
+    <path
+      d="M1 7h2v8H1V7ZM10.275 8.793 4 7v6l4.166 1.666a4.667 4.667 0 0 0 3.82-.159L15 13v-.5a1.5 1.5 0 0 0-1.5-1.5h-2.669c-.193 0-.385.016-.575.048l-1.659.276a2.5 2.5 0 0 1-2.178-.698l-.273-.272a.5.5 0 0 1 .708-.708l.272.273a1.5 1.5 0 0 0 1.307.419l1.658-.277c.245-.04.492-.061.74-.061H11v-.246a1 1 0 0 0-.725-.961Z"
+      fill="#F4F6F8"
+    />
+  </svg>
+))
+SvgActionRevenueShare.displayName = 'SvgActionRevenueShare'
+const Memo = memo(SvgActionRevenueShare)
+export { Memo as SvgActionRevenueShare }

+ 5 - 0
packages/atlas/src/assets/icons/index.ts

@@ -26,6 +26,8 @@ export * from './ActionClock'
 export * from './ActionClose'
 export * from './ActionClosedCaptions'
 export * from './ActionCopy'
+export * from './ActionCouncil'
+export * from './ActionCrown'
 export * from './ActionDislikeOutline'
 export * from './ActionDislikeSolid'
 export * from './ActionDownload'
@@ -61,11 +63,13 @@ export * from './ActionMore'
 export * from './ActionNewChannel'
 export * from './ActionNewDraftTab'
 export * from './ActionNewTab'
+export * from './ActionNft'
 export * from './ActionNotForSale'
 export * from './ActionNotifications'
 export * from './ActionOrderedList'
 export * from './ActionPan'
 export * from './ActionPause'
+export * from './ActionPayment'
 export * from './ActionPlaceholder'
 export * from './ActionPlayAlt'
 export * from './ActionPlay'
@@ -75,6 +79,7 @@ export * from './ActionReplay'
 export * from './ActionReply'
 export * from './ActionResize'
 export * from './ActionReupload'
+export * from './ActionRevenueShare'
 export * from './ActionSearch'
 export * from './ActionSell'
 export * from './ActionSeparator'

+ 8 - 0
packages/atlas/src/assets/icons/svgs/action-council.svg

@@ -0,0 +1,8 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2 4C2 5.10457 2.89543 6 4 6C4 4.69137 4.62842 3.52951 5.59995 2.79974C5.23506 2.31411 4.65421 2 4 2C2.89543 2 2 2.89543 2 4Z" fill="#F4F6F8"/>
+<path d="M4 7C4.04233 7 4.08451 7.00066 4.12653 7.00196C4.22492 7.38343 4.37817 7.74285 4.57737 8.07131C3.01961 9.1551 2 10.9585 2 13H1C0.447715 13 0 12.5523 0 12V11C0 8.79086 1.79086 7 4 7Z" fill="#F4F6F8"/>
+<path d="M4 13C4 11.494 4.83229 10.1824 6.062 9.5C6.63612 9.81858 7.29688 10 8 10C8.70312 10 9.36388 9.81858 9.938 9.5C11.1677 10.1824 12 11.494 12 13V14C12 14.5523 11.5523 15 11 15H5C4.44772 15 4 14.5523 4 14V13Z" fill="#F4F6F8"/>
+<path d="M14 13C14 10.9585 12.9804 9.1551 11.4226 8.07131C11.6218 7.74285 11.7751 7.38343 11.8735 7.00196C11.9155 7.00066 11.9577 7 12 7C14.2091 7 16 8.79086 16 11V12C16 12.5523 15.5523 13 15 13H14Z" fill="#F4F6F8"/>
+<path d="M14 4C14 5.10457 13.1046 6 12 6C12 4.69137 11.3716 3.52951 10.4 2.79974C10.7649 2.31411 11.3458 2 12 2C13.1046 2 14 2.89543 14 4Z" fill="#F4F6F8"/>
+<path d="M8 8C9.10457 8 10 7.10457 10 6C10 4.89543 9.10457 4 8 4C6.89543 4 6 4.89543 6 6C6 7.10457 6.89543 8 8 8Z" fill="#F4F6F8"/>
+</svg>

+ 4 - 0
packages/atlas/src/assets/icons/svgs/action-crown.svg

@@ -0,0 +1,4 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9 3C9 3.42101 8.73983 3.78126 8.37149 3.92872L9.90308 7.7577C9.95196 7.87989 10.1035 7.92238 10.2088 7.84342L13.2 5.60004C13.0744 5.4329 13 5.22514 13 5C13 4.44772 13.4477 4 14 4C14.5523 4 15 4.44772 15 5C15 5.55228 14.5523 6 14 6C13.9047 6 13.8125 5.98667 13.7252 5.96177L12.0414 11.8549C12.0169 11.9408 11.9384 12 11.8491 12H4.15086C4.06156 12 3.98309 11.9408 3.95856 11.8549L2.27479 5.96177C2.18748 5.98667 2.0953 6 2 6C1.44772 6 1 5.55228 1 5C1 4.44772 1.44772 4 2 4C2.55228 4 3 4.44772 3 5C3 5.22514 2.9256 5.4329 2.80005 5.60004L5.79123 7.84342C5.89651 7.92238 6.04804 7.87989 6.09692 7.7577L7.62851 3.92872C7.26017 3.78126 7 3.42101 7 3C7 2.44772 7.44772 2 8 2C8.55228 2 9 2.44772 9 3Z" fill="#F4F6F8"/>
+<path d="M4 14.1667C4 14.0746 4.07462 14 4.16667 14H11.8333C11.9254 14 12 14.0746 12 14.1667C12 14.6269 11.6269 15 11.1667 15H4.83333C4.3731 15 4 14.6269 4 14.1667Z" fill="#F4F6F8"/>
+</svg>

+ 3 - 0
packages/atlas/src/assets/icons/svgs/action-nft.svg

@@ -0,0 +1,3 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M14.0621 4.5L7.99992 1L1.93774 4.5V11.5L7.99992 15L14.0621 11.5V4.5ZM6 11.4641L12 8L6 4.5359L6 11.4641Z" fill="white"/>
+</svg>

+ 4 - 0
packages/atlas/src/assets/icons/svgs/action-payment.svg

@@ -0,0 +1,4 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5 9C7.20914 9 9 7.20914 9 5C9 2.79086 7.20914 1 5 1C2.79086 1 1 2.79086 1 5C1 7.20914 2.79086 9 5 9Z" fill="#F4F6F8"/>
+<path d="M12.7072 1H10.7072V11.6186L9.33645 10.2929L7.92224 11.7071L11.7072 15.4142L15.4143 11.7071L14.0001 10.2929L12.7072 11.5858L12.7072 1Z" fill="#F4F6F8"/>
+</svg>

+ 5 - 0
packages/atlas/src/assets/icons/svgs/action-revenue-share.svg

@@ -0,0 +1,5 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9 4C9 2.34315 10.3431 1 12 1C13.6569 1 15 2.34315 15 4C15 5.65685 13.6569 7 12 7C10.3431 7 9 5.65685 9 4Z" fill="white"/>
+<path d="M1 7H3V15H1V7Z" fill="#F4F6F8"/>
+<path d="M10.2747 8.79278L4 7V13L8.16572 14.6663C8.71684 14.8867 9.30497 15 9.89855 15C10.6229 15 11.3373 14.8314 11.9852 14.5074L15 13V12.5C15 11.6716 14.3284 11 13.5 11H10.8311C10.6383 11 10.4458 11.0159 10.2557 11.0476L8.59743 11.324C7.80104 11.4567 6.98957 11.1967 6.41867 10.6258L6.14645 10.3536C5.95118 10.1583 5.95118 9.84171 6.14645 9.64645C6.34171 9.45118 6.65829 9.45118 6.85355 9.64645L7.12577 9.91867C7.46832 10.2612 7.9552 10.4172 8.43303 10.3376L10.0913 10.0612C10.3357 10.0205 10.5832 10 10.8311 10H11V9.7543C11 9.30782 10.704 8.91543 10.2747 8.79278Z" fill="#F4F6F8"/>
+</svg>

BIN
packages/atlas/src/assets/images/crt-dashboard-1x.webp


BIN
packages/atlas/src/assets/images/crt-dashboard-2x.webp


BIN
packages/atlas/src/assets/images/crt-form-1x.webp


BIN
packages/atlas/src/assets/images/crt-form-2x.webp


+ 68 - 0
packages/atlas/src/components/CrtPreviewLayout/CrtPreviewLayout.styles.ts

@@ -0,0 +1,68 @@
+import styled from '@emotion/styled'
+
+import { LimitedWidthContainer } from '@/components/LimitedWidthContainer'
+import { TextButton } from '@/components/_buttons/Button'
+import { cVar, media, sizes } from '@/styles'
+
+export const Wrapper = styled(LimitedWidthContainer)`
+  display: grid;
+  row-gap: ${sizes(16)};
+  margin-top: ${sizes(8)};
+
+  ${media.md} {
+    grid-template-columns: 1fr 1fr;
+    column-gap: ${sizes(6)};
+  }
+`
+
+export const HeaderContainer = styled.div`
+  display: flex;
+  align-items: center;
+  gap: ${sizes(4)};
+
+  svg {
+    cursor: pointer;
+    margin-right: ${sizes(4)};
+  }
+
+  ${media.md} {
+    grid-column: 1/3;
+  }
+`
+
+export const HeaderButton = styled(TextButton)`
+  margin-left: auto;
+`
+
+export const HeaderInnerContainer = styled.div`
+  display: flex;
+  flex-wrap: wrap;
+  gap: ${sizes(4)};
+  border-left: 1px solid ${cVar('colorCoreNeutral600')};
+  padding-left: ${sizes(4)};
+  min-height: 40px;
+  align-items: center;
+`
+
+export const FirstColumn = styled.div`
+  display: flex;
+  flex-direction: column;
+  gap: ${sizes(12)};
+
+  ${media.md} {
+    gap: ${sizes(16)};
+  }
+`
+
+export const SecondColumn = styled.div`
+  display: flex;
+  flex-direction: column;
+  gap: ${sizes(6)};
+`
+
+export const Placeholder = styled.div<{ height: number }>`
+  height: ${({ height }) => height + 'px'};
+  background-color: #2b2d42;
+  display: grid;
+  place-items: center;
+`

+ 60 - 0
packages/atlas/src/components/CrtPreviewLayout/CrtPreviewLayout.tsx

@@ -0,0 +1,60 @@
+import { ReactElement } from 'react'
+
+import { SvgActionChevronL, SvgActionNewTab } from '@/assets/icons'
+import { OutputPill } from '@/components/OutputPill'
+import { Text } from '@/components/Text'
+import { useMediaMatch } from '@/hooks/useMediaMatch'
+
+import {
+  FirstColumn,
+  HeaderButton,
+  HeaderContainer,
+  HeaderInnerContainer,
+  Placeholder,
+  SecondColumn,
+  Wrapper,
+} from './CrtPreviewLayout.styles'
+
+type CrtPreviewViewProps = {
+  mode: 'edit' | 'preview'
+  videoTrailerComponent?: ReactElement
+  benefitsComponent?: ReactElement
+  aboutComponent?: ReactElement
+}
+export const CrtPreviewLayout = ({
+  videoTrailerComponent = <Placeholder height={400}>Video trailer</Placeholder>,
+  benefitsComponent = <Placeholder height={400}>Benefits</Placeholder>,
+  aboutComponent = <Placeholder height={400}>About</Placeholder>,
+  mode,
+}: CrtPreviewViewProps) => {
+  const lgMatch = useMediaMatch('lg')
+  return (
+    <Wrapper>
+      <HeaderContainer>
+        <SvgActionChevronL />
+        <HeaderInnerContainer>
+          <Text variant="h400" as="p">
+            Token page preview
+          </Text>
+          <OutputPill handle={mode === 'edit' ? 'Edit mode' : 'Preview mode'} />
+        </HeaderInnerContainer>
+        {lgMatch && (
+          <HeaderButton variant="tertiary" icon={<SvgActionNewTab />} iconPlacement="right">
+            See your token
+          </HeaderButton>
+        )}
+      </HeaderContainer>
+      <FirstColumn>
+        {videoTrailerComponent}
+        {benefitsComponent}
+        {aboutComponent}
+      </FirstColumn>
+      <SecondColumn>
+        {/* these components are the same for each mode */}
+        <Placeholder height={192}>Token details</Placeholder>
+        <Placeholder height={248}>Token status</Placeholder>
+        <Placeholder height={368}>Token holders</Placeholder>
+      </SecondColumn>
+    </Wrapper>
+  )
+}

+ 1 - 0
packages/atlas/src/components/CrtPreviewLayout/index.ts

@@ -0,0 +1 @@
+export * from './CrtPreviewLayout'

+ 3 - 2
packages/atlas/src/components/ListItem/ListItem.styles.ts

@@ -49,6 +49,7 @@ type ContainerProps = {
   disabled?: boolean
   highlight?: boolean
   isSeparator?: boolean
+  isInteractive?: boolean
 }
 export const Container = styled('div', { shouldForwardProp: isPropValid })<ContainerProps>`
   border: none;
@@ -60,14 +61,14 @@ export const Container = styled('div', { shouldForwardProp: isPropValid })<Conta
   grid-template-columns: ${({ hasNodeStart }) => (hasNodeStart ? 'auto 1fr' : '1fr')};
   align-items: center;
   user-select: none;
-  cursor: pointer;
+  cursor: ${({ isInteractive }) => (isInteractive ? 'cursor' : 'unset')};
   background-color: ${({ highlight }) => (highlight ? cVar('colorBackgroundMutedAlpha') : 'unset')};
   text-decoration: none;
   position: relative;
 
   ${({ disabled, isSeparator }) => disabled && !isSeparator && disabledStyles};
   ${({ size }) => getContainerPadding(size)};
-  ${({ disabled, isSeparator }) => !disabled && !isSeparator && interactiveStyles};
+  ${({ disabled, isSeparator, isInteractive }) => isInteractive && !disabled && !isSeparator && interactiveStyles};
   ${({ isSeparator }) => isSeparator && separatorStyles};
 `
 

+ 6 - 3
packages/atlas/src/components/ListItem/ListItem.tsx

@@ -39,6 +39,7 @@ export type ListItemProps = {
     download?: string
   }
   isSeparator?: boolean
+  isInteractive?: boolean
 }
 
 export const ListItem = forwardRef<HTMLDivElement, ListItemProps>(
@@ -61,6 +62,7 @@ export const ListItem = forwardRef<HTMLDivElement, ListItemProps>(
       to,
       externalLink,
       isSeparator,
+      isInteractive = true,
     },
     ref
   ) => {
@@ -74,11 +76,11 @@ export const ListItem = forwardRef<HTMLDivElement, ListItemProps>(
       if (isSeparator) {
         return 'colorTextMuted'
       }
-      if (isHovering || selected || highlight) {
+      if (isInteractive && (isHovering || selected || highlight)) {
         return
       }
       return 'colorText'
-    }, [destructive, highlight, isHovering, isSeparator, selected])
+    }, [destructive, highlight, isHovering, isInteractive, isSeparator, selected])
 
     return (
       <>
@@ -92,6 +94,7 @@ export const ListItem = forwardRef<HTMLDivElement, ListItemProps>(
           hasNodeStart={!!nodeStart}
           size={size}
           isSeparator={isSeparator}
+          isInteractive={isInteractive}
           ref={mergeRefs([hoverRef, ref])}
           {...linkProps}
           {...externalLink}
@@ -113,7 +116,7 @@ export const ListItem = forwardRef<HTMLDivElement, ListItemProps>(
           </LabelCaptionContainer>
           {selected && <SelectedIcon />}
           {!!nodeEnd && (
-            <NodeContainer isSelected={selected} isHovering={isHovering} destructive={destructive}>
+            <NodeContainer isSelected={selected} isHovering={isInteractive && isHovering} destructive={destructive}>
               {nodeEnd}
             </NodeContainer>
           )}

+ 22 - 0
packages/atlas/src/components/TablePagination/TablePagination.styles.ts

@@ -0,0 +1,22 @@
+import styled from '@emotion/styled'
+
+import { Text } from '@/components/Text'
+import { sizes } from '@/styles'
+
+export const Container = styled.div`
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  gap: ${sizes(4)};
+  padding: ${sizes(6)};
+`
+
+export const HorizontalContainer = styled.div`
+  display: flex;
+  gap: ${sizes(4)};
+  align-items: center;
+`
+
+export const PageInfo = styled(Text)`
+  white-space: nowrap;
+`

+ 117 - 0
packages/atlas/src/components/TablePagination/TablePagination.tsx

@@ -0,0 +1,117 @@
+import { FC, useCallback, useMemo } from 'react'
+
+import { SvgActionChevronL, SvgActionChevronR } from '@/assets/icons'
+import { Container, HorizontalContainer, PageInfo } from '@/components/TablePagination/TablePagination.styles'
+import { Text } from '@/components/Text'
+import { Button } from '@/components/_buttons/Button'
+
+import { Select, SelectItem } from '../_inputs/Select'
+
+const PER_PAGE_ITEMS: SelectItem[] = [
+  {
+    value: '10',
+    name: '10',
+  },
+  {
+    value: '20',
+    name: '20',
+  },
+
+  {
+    value: '50',
+    name: '50',
+  },
+
+  {
+    value: '100',
+    name: '100',
+  },
+]
+
+type TablePaginationProps = {
+  totalItemCount: number
+  currentPage: number
+  setPage: (page: number) => void
+  perPage: number
+  setPerPage: (perPage: number) => void
+}
+
+export const TablePagination: FC<TablePaginationProps> = ({
+  perPage,
+  setPerPage,
+  totalItemCount,
+  currentPage,
+  setPage,
+}) => {
+  const pagesCount = Math.max(Math.ceil(totalItemCount / perPage), 1)
+  const pageItems = useMemo(
+    (): SelectItem[] =>
+      Array.from({ length: pagesCount }, (_, idx) => ({
+        name: String(idx + 1),
+        value: String(idx + 1),
+      })),
+    [pagesCount]
+  )
+
+  const handlePerPageChange = useCallback(
+    (value?: string | null) => {
+      if (value) {
+        setPerPage(+value)
+        setPage(0)
+      }
+    },
+    [setPage, setPerPage]
+  )
+
+  return (
+    <Container>
+      <HorizontalContainer>
+        <Select
+          icon={
+            <Text as="p" variant="t200" color="colorText">
+              Rows per page:
+            </Text>
+          }
+          value={String(perPage)}
+          onChange={handlePerPageChange}
+          items={PER_PAGE_ITEMS}
+        />
+        <PageInfo as="p" variant="t200" color="colorTextStrong">
+          {!totalItemCount
+            ? 0
+            : `${1 + perPage * currentPage}-${Math.min(
+                perPage + perPage * currentPage,
+                totalItemCount
+              )} of ${totalItemCount}`}{' '}
+          items
+        </PageInfo>
+      </HorizontalContainer>
+      <HorizontalContainer>
+        <HorizontalContainer>
+          <Select
+            value={String(currentPage + 1)}
+            onChange={(value) => value && setPage(+value - 1)}
+            items={pageItems}
+          />
+          <PageInfo as="p" variant="t200" color="colorTextStrong">
+            of {pagesCount} pages
+          </PageInfo>
+        </HorizontalContainer>
+        <HorizontalContainer>
+          <Button
+            variant="tertiary"
+            icon={<SvgActionChevronL />}
+            onClick={() => setPage(currentPage - 1)}
+            disabled={currentPage === 0}
+          />
+          <Button
+            variant="tertiary"
+            icon={<SvgActionChevronR />}
+            onClick={() => setPage(currentPage + 1)}
+            disabled={currentPage + 1 === pagesCount}
+          />
+        </HorizontalContainer>
+      </HorizontalContainer>
+    </Container>
+  )
+}

+ 1 - 0
packages/atlas/src/components/TablePagination/index.ts

@@ -0,0 +1 @@
+export * from './TablePagination'

+ 60 - 0
packages/atlas/src/components/TablePaymentsHistory/TablePaymentsHistory.styles.ts

@@ -1,7 +1,10 @@
 import styled from '@emotion/styled'
+import { Link } from 'react-router-dom'
 
 import { JoyTokenIcon } from '@/components/JoyTokenIcon'
+import { ListItem } from '@/components/ListItem'
 import { NumberFormat } from '@/components/NumberFormat'
+import { Text } from '@/components/Text'
 import { cVar, sizes } from '@/styles'
 
 export const TypeWrapper = styled.div`
@@ -33,3 +36,60 @@ export const StyledJoyTokenIcon = styled(JoyTokenIcon)<{ error: boolean }>`
     fill: ${({ error }) => (error ? cVar('colorTextError') : undefined)};
   }
 `
+
+export const JoystreamSvgWrapper = styled.div`
+  height: 31px;
+  width: 31px;
+  border-radius: 50%;
+  display: grid;
+  place-items: center;
+  overflow: hidden;
+  background-color: #5d5d5d;
+
+  svg {
+    height: 20px;
+
+    g {
+      fill: ${cVar('colorCoreBaseWhite')};
+    }
+  }
+`
+
+export const StyledLink = styled(Link)`
+  text-decoration: none;
+`
+
+export const SenderItem = styled(ListItem)`
+  padding-left: 0;
+
+  & span[color] {
+    color: ${cVar('colorTextStrong')};
+  }
+`
+
+export const TextWrapper = styled.div`
+  display: inline-flex;
+  overflow: hidden;
+  width: 100%;
+
+  button > * {
+    width: max-content;
+  }
+`
+
+export const DialogText = styled(Text)`
+  text-align: justify;
+`
+
+export const RowBox = styled.div<{ align?: 'start' | 'end' }>`
+  display: flex;
+  flex-direction: column;
+  gap: ${sizes(1)};
+  align-items: ${(props) => (props.align === 'end' ? 'flex-end' : 'flex-start')};
+`
+
+export const ColumnBox = styled.div`
+  display: flex;
+  gap: ${sizes(2)};
+  align-items: center;
+`

+ 114 - 47
packages/atlas/src/components/TablePaymentsHistory/TablePaymentsHistory.tsx

@@ -1,74 +1,149 @@
 import BN from 'bn.js'
-import { FC, useMemo } from 'react'
+import { FC, useEffect, useMemo, useRef, useState } from 'react'
 
-import { SvgActionBuyNow } from '@/assets/icons'
-import { SvgEmptyStateIllustration } from '@/assets/illustrations'
+import { useMemberships } from '@/api/hooks/membership'
+import { SvgJoystreamLogoShort } from '@/assets/logos'
+import { Avatar } from '@/components/Avatar'
 import { Table, TableProps } from '@/components/Table'
 import { Text } from '@/components/Text'
+import { TextButton } from '@/components/_buttons/Button'
+import { DialogModal } from '@/components/_overlays/DialogModal'
+import { absoluteRoutes } from '@/config/routes'
 import { useBlockTimeEstimation } from '@/hooks/useBlockTimeEstimation'
+import { getMemberAvatar } from '@/providers/assets/assets.helpers'
+import { SentryLogger } from '@/utils/logs'
+import { shortenString } from '@/utils/misc'
 import { formatNumber } from '@/utils/number'
 import { formatDateTime } from '@/utils/time'
 
 import {
+  DialogText,
   JoyAmountWrapper,
+  JoystreamSvgWrapper,
+  SenderItem,
   StyledJoyTokenIcon,
+  StyledLink,
   StyledNumberFormat,
+  TextWrapper,
   TypeIconWrapper,
   TypeWrapper,
 } from './TablePaymentsHistory.styles'
-
-const COLUMNS: TableProps['columns'] = [
-  {
-    Header: 'Date',
-    accessor: 'date',
-  },
-  {
-    Header: 'Type',
-    accessor: 'type',
-  },
-  {
-    Header: 'Amount',
-    accessor: 'amount',
-  },
-  {
-    Header: 'Channel balance',
-    accessor: 'channelBalance',
-  },
-]
-
-const tableEmptyState = {
-  title: 'No payments here yet',
-  description:
-    'Here you will see proceedings to your channel balance from sold NFTs and royalties, claimed council rewards, direct payments from members to your channel and withdrawals from channel balance.',
-  icon: <SvgEmptyStateIllustration />,
-}
-
-type PaymentType = 'nft-sale' | 'nft-royalty' | 'claimed-reward' | 'withdrawal' | 'ypp-reward'
+import {
+  COLUMNS,
+  PaymentType,
+  paymentTypeMappings,
+  tableEmptyState,
+  tableLoadingData,
+} from './TablePaymentsHistory.utils'
 
 export type PaymentHistory = {
   type: PaymentType
   block: number
   date: Date
-  channelBalance: BN
+  sender: string
   amount: BN
+  description?: string
 }
 
 export type TablePaymentsHistoryProps = {
   data: PaymentHistory[]
+  isLoading: boolean
 }
 
-export const TablePaymentsHistory: FC<TablePaymentsHistoryProps> = ({ data }) => {
+export const TablePaymentsHistory: FC<TablePaymentsHistoryProps> = ({ data, isLoading }) => {
+  const [dialogText, setDialogText] = useState('')
   const mappedData: TableProps['data'] = useMemo(
     () =>
       data.map((data) => ({
         date: <Date date={data.date} />,
         type: <Type type={data.type} />,
         amount: <TokenAmount tokenAmount={data.amount} />,
-        channelBalance: <TokenAmount tokenAmount={data.channelBalance} />,
+        sender: <Sender sender={data.sender} />,
+        description: (
+          <TableText onShowMoreClick={() => setDialogText(data.description ?? '')} text={data.description} />
+        ),
       })),
     [data]
   )
-  return <Table title="History" columns={COLUMNS} data={mappedData} emptyState={tableEmptyState} />
+  return (
+    <>
+      <DialogModal title="Payout info" show={!!dialogText} size="small" onExitClick={() => setDialogText('')}>
+        <DialogText as="p" variant="t200" color="colorText">
+          {dialogText}
+        </DialogText>
+      </DialogModal>
+      <Table
+        title="History"
+        columns={COLUMNS}
+        data={isLoading ? tableLoadingData : mappedData}
+        emptyState={tableEmptyState}
+      />
+    </>
+  )
+}
+
+const TableText = ({ text, onShowMoreClick }: { text?: string; onShowMoreClick: () => void }) => {
+  const commentBodyRef = useRef<HTMLParagraphElement>(null)
+  const [isTruncated, setIsTruncated] = useState(false)
+
+  useEffect(() => {
+    if (!commentBodyRef.current) {
+      return
+    }
+    setIsTruncated(commentBodyRef.current?.offsetWidth < commentBodyRef.current?.scrollWidth)
+  }, [])
+
+  return (
+    <TextWrapper>
+      <Text variant="t200" as="p" ref={commentBodyRef}>
+        {text ?? '-'}
+      </Text>
+      {isTruncated && (
+        <TextButton variant="primary" size="medium" onClick={onShowMoreClick}>
+          Show more
+        </TextButton>
+      )}
+    </TextWrapper>
+  )
+}
+
+const Sender = ({ sender }: { sender: PaymentHistory['sender'] }) => {
+  const { memberships } = useMemberships(
+    { where: { controllerAccount_eq: sender } },
+    {
+      onError: (error) => SentryLogger.error('Failed to fetch memberships', 'ActiveUserProvider', error),
+      skip: sender === 'council',
+    }
+  )
+  const member = memberships?.find((member) => member.controllerAccount === sender)
+  const { url: avatarUrl, isLoadingAsset: avatarLoading } = getMemberAvatar(member)
+
+  if (sender === 'council') {
+    return (
+      <SenderItem
+        nodeStart={
+          <JoystreamSvgWrapper>
+            <SvgJoystreamLogoShort />
+          </JoystreamSvgWrapper>
+        }
+        label="Joystream Council"
+        isInteractive={false}
+      />
+    )
+  }
+  if (member) {
+    return (
+      <StyledLink to={absoluteRoutes.viewer.member(member.handle)}>
+        <SenderItem
+          nodeStart={<Avatar assetUrl={avatarUrl} loading={avatarLoading} />}
+          label={member?.handle}
+          isInteractive={false}
+        />
+      </StyledLink>
+    )
+  } else {
+    return <SenderItem nodeStart={<Avatar />} label={shortenString(sender, 6, 4)} isInteractive={false} />
+  }
 }
 
 const Date = ({ date }: { date: Date }) => {
@@ -79,27 +154,18 @@ const Date = ({ date }: { date: Date }) => {
         {formatDateTime(date)}
       </Text>
       <Text as="p" variant="t100" margin={{ top: 1 }} color="colorText">
-        {formatNumber(convertMsTimestampToBlock(date.getTime()) || 0)} blocks
+        {formatNumber(convertMsTimestampToBlock(date.getTime()) || 0)} block
       </Text>
     </>
   )
 }
 
 const Type = ({ type }: { type: PaymentType }) => {
-  const translatedPaymentType = {
-    'nft-sale': 'NFT sale',
-    'nft-royalty': 'NFT royalty',
-    'claimed-reward': 'Claimed reward',
-    'withdrawal': 'Withdrawal',
-    'ypp-reward': 'YPP reward',
-  }
   return (
     <TypeWrapper>
-      <TypeIconWrapper>
-        <SvgActionBuyNow />
-      </TypeIconWrapper>
+      <TypeIconWrapper>{paymentTypeMappings[type].icon}</TypeIconWrapper>
       <Text variant="t200" as="p" margin={{ left: 2 }}>
-        {translatedPaymentType[type]}
+        {paymentTypeMappings[type].title}
       </Text>
     </TypeWrapper>
   )
@@ -115,6 +181,7 @@ const TokenAmount = ({ tokenAmount }: { tokenAmount: BN }) => {
         as="p"
         value={tokenAmount}
         margin={{ left: 1 }}
+        format="short"
         color={isNegative ? 'colorTextError' : 'colorTextStrong'}
       />
     </JoyAmountWrapper>

+ 121 - 0
packages/atlas/src/components/TablePaymentsHistory/TablePaymentsHistory.utils.tsx

@@ -0,0 +1,121 @@
+import { ReactElement } from 'react'
+
+import { SvgActionCouncil, SvgActionCrown, SvgActionNft, SvgActionPayment, SvgActionRevenueShare } from '@/assets/icons'
+import { SvgEmptyStateIllustration } from '@/assets/illustrations'
+import { TableProps } from '@/components/Table'
+import { ColumnBox, RowBox } from '@/components/TablePaymentsHistory/TablePaymentsHistory.styles'
+import { SkeletonLoader } from '@/components/_loaders/SkeletonLoader'
+
+export const tableLoadingData = Array.from({ length: 5 }, () => ({
+  date: (
+    <RowBox>
+      <SkeletonLoader height={20} width="70%" />
+      <SkeletonLoader height={20} width="50%" />
+    </RowBox>
+  ),
+  type: (
+    <ColumnBox>
+      <SkeletonLoader rounded height={32} width={32} />
+      <SkeletonLoader height={20} width="40%" />
+    </ColumnBox>
+  ),
+  sender: (
+    <RowBox align="end">
+      <SkeletonLoader height={20} width="60%" />
+      <SkeletonLoader height={20} width="40%" />
+    </RowBox>
+  ),
+  amount: <SkeletonLoader height={20} width="40%" />,
+  description: (
+    <RowBox>
+      <SkeletonLoader height={20} width="100%" />
+      <SkeletonLoader height={20} width="20%" />
+    </RowBox>
+  ),
+}))
+
+export const tableEmptyState = {
+  title: 'No payments here yet',
+  description:
+    'Here you will see proceedings to your channel balance from sold NFTs and royalties, claimed council rewards, direct payments from members to your channel and withdrawals from channel balance.',
+  icon: <SvgEmptyStateIllustration />,
+}
+
+export type PaymentType =
+  | 'nft-sale'
+  | 'nft-royalty'
+  | 'claimed-reward'
+  | 'withdrawal'
+  | 'ypp-reward'
+  | 'council-reward'
+  | 'direct-payment'
+  | 'revenue-share'
+
+export const paymentTypeMappings: Record<
+  PaymentType,
+  {
+    title: string
+    icon?: ReactElement
+  }
+> = {
+  'nft-sale': {
+    title: 'NFT sale',
+    icon: <SvgActionNft />,
+  },
+  'nft-royalty': {
+    title: 'NFT royalty',
+    icon: <SvgActionCrown />,
+  },
+  'claimed-reward': {
+    title: 'Council reward',
+    icon: <SvgActionCouncil />,
+  },
+  'withdrawal': {
+    title: 'Withdrawal',
+    icon: <SvgActionRevenueShare />,
+  },
+  'ypp-reward': {
+    title: 'YPP reward',
+    icon: <SvgActionRevenueShare />,
+  },
+  'council-reward': {
+    title: 'Council reward',
+    icon: <SvgActionCouncil />,
+  },
+  'direct-payment': {
+    title: 'Direct payment',
+    icon: <SvgActionPayment />,
+  },
+  'revenue-share': {
+    title: 'Revenue share',
+    icon: <SvgActionRevenueShare />,
+  },
+}
+
+export const COLUMNS: TableProps['columns'] = [
+  {
+    Header: 'Date',
+    accessor: 'date',
+    width: 100,
+  },
+  {
+    Header: 'Type',
+    accessor: 'type',
+    width: 100,
+  },
+  {
+    Header: 'Sender',
+    accessor: 'sender',
+    width: 100,
+  },
+  {
+    Header: 'Amount',
+    accessor: 'amount',
+    width: 100,
+  },
+  {
+    Header: 'Description',
+    accessor: 'description',
+    width: 200,
+  },
+]

+ 203 - 0
packages/atlas/src/components/WelcomeView/WelcomeView.styles.ts

@@ -0,0 +1,203 @@
+import { css } from '@emotion/react'
+import styled from '@emotion/styled'
+import { Link } from 'react-router-dom'
+
+import { SvgJoystreamLogoFull } from '@/assets/logos'
+import { GridItem, LayoutGrid } from '@/components/LayoutGrid'
+import { Text } from '@/components/Text'
+import { Button } from '@/components/_buttons/Button'
+import { cVar, media, sizes } from '@/styles'
+
+const XXS_IMAGE_WIDTH = 360
+const XXS_IMAGE_HEIGHT = 225
+const XS_IMAGE_WIDTH = 480
+const XS_IMAGE_HEIGHT = 300
+const SM_IMAGE_WIDTH = 720
+const SM_IMAGE_HEIGHT = 450
+
+export const LEFT_ANIMATION_MD = 'left-animation-md'
+
+export const OverflowHiddenContainer = styled.div`
+  margin: 0 calc(-1 * var(--size-global-horizontal-padding)) 0;
+  overflow: hidden;
+
+  [data-aos=${LEFT_ANIMATION_MD}] {
+    opacity: 0;
+    transform: translateX(0);
+    transition-property: transform, opacity;
+
+    &.aos-animate {
+      opacity: 1;
+      transform: translateX(117px);
+    }
+  }
+`
+
+export const StyledContainer = styled.div`
+  max-width: 1440px;
+  padding-bottom: ${sizes(12)};
+  ${media.md} {
+    margin: 0 auto;
+    padding: 0;
+  }
+`
+export const ContentLayoutGrid = styled(LayoutGrid)`
+  align-items: center;
+  grid-row-gap: 0;
+  margin: 0 ${sizes(4)};
+  ${media.md} {
+    margin: 0 ${sizes(8)};
+  }
+`
+
+export const HeaderGridItem = styled(GridItem)`
+  ${media.md} {
+    margin: 0;
+    padding: ${sizes(8)};
+  }
+  ${media.lg} {
+    padding: ${sizes(8)} ${sizes(20)};
+  }
+`
+
+export const ContentWrapper = styled.div`
+  margin-top: ${sizes(12)};
+  display: flex;
+  justify-content: center;
+  flex-direction: column;
+  align-self: center;
+  ${media.md} {
+    margin-top: unset;
+  }
+`
+
+export const ButtonGroup = styled.div`
+  display: flex;
+  flex-direction: column;
+  flex-grow: 1;
+  gap: ${sizes(6)};
+`
+
+export const StyledButton = styled(Button)`
+  margin-bottom: ${sizes(6)};
+
+  :last-of-type {
+    margin-bottom: 0;
+  }
+`
+
+export const SpecificComponentPlaceholer = styled.div`
+  margin: ${sizes(3)} 0;
+
+  ${media.md} {
+    margin: ${sizes(4)} 0;
+  }
+`
+
+export const SubTitle = styled(Text)`
+  display: block;
+  margin-top: ${sizes(4)};
+`
+
+const linkStyles = css`
+  text-decoration: none;
+  color: ${cVar('colorTextMuted')};
+  align-items: center;
+  display: flex;
+
+  :hover,
+  :focus {
+    color: ${cVar('colorText')};
+  }
+
+  :hover path,
+  :focus path {
+    fill: ${cVar('colorText')};
+  }
+`
+
+export const LinksGroupHeaderItem = styled(GridItem)`
+  align-self: end;
+  justify-content: start;
+  display: flex;
+  flex-wrap: wrap;
+  color: ${cVar('colorTextMuted')};
+  grid-auto-flow: column;
+  align-items: center;
+  margin: ${sizes(10)} 0 ${sizes(12)};
+  ${media.md} {
+    margin: 0;
+    padding: ${sizes(8)};
+  }
+  ${media.lg} {
+    padding: ${sizes(8)} ${sizes(20)};
+  }
+`
+
+export const StyledAnchor = styled.a`
+  ${linkStyles}
+`
+
+export const StyledSvgJoystreamLogoFull = styled(SvgJoystreamLogoFull)`
+  height: 16px;
+  margin-left: ${sizes(2)};
+  width: unset;
+
+  path {
+    fill: ${cVar('colorTextMuted')};
+  }
+`
+
+export const StyledLink = styled(Link)`
+  ${linkStyles}
+`
+
+export const ImageGridItem = styled(GridItem)`
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  ${media.md} {
+    flex-direction: column-reverse;
+    height: calc(100vh - 80px);
+  }
+`
+
+type IllustrationWrapperProps = {
+  moveToTheLeft?: boolean
+  topMargin?: number
+}
+
+export const IllustrationWrapper = styled.div<IllustrationWrapperProps>`
+  position: relative;
+  height: ${XXS_IMAGE_HEIGHT}px;
+  margin-top: ${({ topMargin }) => (topMargin ? sizes(topMargin) : 'unset')};
+
+  ${media.xs} {
+    height: ${XS_IMAGE_HEIGHT}px;
+  }
+  ${media.sm} {
+    height: ${SM_IMAGE_HEIGHT}px;
+  }
+`
+
+type StyledIllustrationProps = {
+  stickToTheRightEdge?: boolean
+}
+
+export const StyledIllustration = styled.img<StyledIllustrationProps>`
+  position: absolute;
+  right: ${({ stickToTheRightEdge }) => (stickToTheRightEdge ? '0' : 'unset')};
+  width: ${XXS_IMAGE_WIDTH}px;
+  height: ${XXS_IMAGE_HEIGHT}px;
+  ${media.xs} {
+    height: ${XS_IMAGE_HEIGHT}px;
+    width: ${XS_IMAGE_WIDTH}px;
+  }
+  ${media.sm} {
+    height: ${SM_IMAGE_HEIGHT}px;
+    width: ${SM_IMAGE_WIDTH}px;
+  }
+  ${media.md} {
+    position: static;
+  }
+`

+ 209 - 0
packages/atlas/src/components/WelcomeView/WelcomeView.tsx

@@ -0,0 +1,209 @@
+import AOS from 'aos'
+import 'aos/dist/aos.css'
+import { ReactElement, ReactNode, useEffect } from 'react'
+
+// import crtDashbaord1x from '@/assets/images/crt-dashboard-1x.webp'
+import crtDashbaord2x from '@/assets/images/crt-dashboard-2x.webp'
+// import crtForm1x from '@/assets/images/crt-form-1x.webp'
+import crtForm2x from '@/assets/images/crt-form-2x.webp'
+import myUploads1x from '@/assets/images/my-uploads-1x.webp'
+import myUploads2x from '@/assets/images/my-uploads-2x.webp'
+import myVideos1x from '@/assets/images/my-videos-view-1x.webp'
+import myVideos2x from '@/assets/images/my-videos-view-2x.webp'
+import nftWorkspace1x from '@/assets/images/nft-workspace-1x.webp'
+import nftWorkspace2x from '@/assets/images/nft-workspace-2x.webp'
+import videoWorkspace1x from '@/assets/images/video-workspace-1x.webp'
+import videoWorkspace2x from '@/assets/images/video-workspace-2x.webp'
+import { Text } from '@/components/Text'
+import { ButtonProps } from '@/components/_buttons/Button'
+import { atlasConfig } from '@/config'
+import { absoluteRoutes } from '@/config/routes'
+import { useHeadTags } from '@/hooks/useHeadTags'
+import { useMediaMatch } from '@/hooks/useMediaMatch'
+import { useUser } from '@/providers/user/user.hooks'
+
+import {
+  ButtonGroup,
+  ContentLayoutGrid,
+  ContentWrapper,
+  HeaderGridItem,
+  IllustrationWrapper,
+  ImageGridItem,
+  LEFT_ANIMATION_MD,
+  LinksGroupHeaderItem,
+  OverflowHiddenContainer,
+  SpecificComponentPlaceholer,
+  StyledAnchor,
+  StyledButton,
+  StyledContainer,
+  StyledIllustration,
+  StyledLink,
+  StyledSvgJoystreamLogoFull,
+  SubTitle,
+} from './WelcomeView.styles'
+
+interface WelcomeViewProps {
+  headTagTitle: string
+  pageTitle: string
+
+  title: string | ReactNode
+
+  subtitle: string | ReactNode
+
+  specificComponent?: ReactElement
+
+  buttons: ButtonProps[]
+
+  showLegalLinks?: boolean
+
+  type: 'studio' | 'crt'
+}
+
+const typeIllustrationsFactory = (
+  isLoggedIn: boolean
+): Record<WelcomeViewProps['type'], { srcSet: string; alt: string }[]> => ({
+  'crt': [
+    {
+      srcSet: `${crtForm2x} 1x, ${crtForm2x} 2x`,
+      alt: 'CRT creation form image',
+    },
+    {
+      srcSet: `${crtDashbaord2x} 1x, ${crtDashbaord2x} 2x`,
+      alt: 'CRT dashboard image',
+    },
+  ],
+  // be aware that we reverse the order of image on md
+  studio: [
+    {
+      srcSet: isLoggedIn ? `${myUploads1x} 1x, ${myUploads2x} 2x` : `${myVideos1x} 1x, ${myVideos2x} 2x`,
+      alt: isLoggedIn
+        ? `${atlasConfig.general.appName} studio downloads dashboard`
+        : `${atlasConfig.general.appName} studio my videos dashboard`,
+    },
+    {
+      srcSet: isLoggedIn
+        ? `${nftWorkspace1x} 1x, ${nftWorkspace2x} 2x`
+        : `${videoWorkspace1x} 1x, ${videoWorkspace2x} 2x`,
+      alt: isLoggedIn
+        ? `${atlasConfig.general.appName} studio nft workspace form`
+        : `${atlasConfig.general.appName} studio video workspace form`,
+    },
+  ],
+})
+
+export const WelcomeView = ({
+  headTagTitle,
+  subtitle,
+  title,
+  pageTitle,
+  specificComponent = <SpecificComponentPlaceholer />,
+  buttons,
+  showLegalLinks,
+  type,
+}: WelcomeViewProps) => {
+  const mdMatch = useMediaMatch('md')
+  const headTags = useHeadTags(headTagTitle)
+  const { isLoggedIn } = useUser()
+
+  const [firstIllustration, secondIllustration] = typeIllustrationsFactory(isLoggedIn)[type]
+
+  useEffect(() => {
+    AOS.init({
+      duration: 750,
+      once: true,
+    })
+  }, [])
+
+  return (
+    <>
+      <OverflowHiddenContainer>
+        {headTags}
+        <StyledContainer>
+          <ContentLayoutGrid>
+            <HeaderGridItem
+              colSpan={{ xxs: 12, sm: 8, md: 5 }}
+              colStart={{ sm: 3, md: 1 }}
+              rowStart={1}
+              rowSpan={{ md: 2 }}
+            >
+              <ContentWrapper>
+                <Text as="h1" variant="h100" color="colorTextPrimary">
+                  {pageTitle}
+                </Text>
+                {typeof title === 'string' ? (
+                  <Text as="h1" variant={mdMatch ? 'h700' : 'h600'} margin={{ top: 2 }}>
+                    {title}
+                  </Text>
+                ) : (
+                  title
+                )}
+                {typeof subtitle === 'string' ? (
+                  <SubTitle as="span" variant="t300">
+                    {subtitle}
+                  </SubTitle>
+                ) : (
+                  subtitle
+                )}
+                {specificComponent}
+                <ButtonGroup>
+                  {buttons.map((buttonProps, idx) => (
+                    <StyledButton key={idx} {...buttonProps} />
+                  ))}
+                </ButtonGroup>
+              </ContentWrapper>
+            </HeaderGridItem>
+
+            {showLegalLinks && (
+              <LinksGroupHeaderItem colSpan={{ xxs: 12, sm: 8, md: 5 }} colStart={{ sm: 3, md: 1 }} rowStart={2}>
+                <Text as="span" variant="t100" color="inherit" margin={{ top: 2 }}>
+                  <StyledAnchor href={atlasConfig.general.joystreamLandingPageUrl} target="_blank">
+                    Powered by
+                    <StyledSvgJoystreamLogoFull />
+                  </StyledAnchor>
+                </Text>
+                <Text as="span" variant="t100" color="inherit" margin={{ top: 2, left: 2, right: 2 }}>
+                  •
+                </Text>
+                <StyledLink to={absoluteRoutes.legal.termsOfService()}>
+                  <Text as="span" variant="t100" color="inherit" margin={{ top: 2 }}>
+                    Terms of service
+                  </Text>
+                </StyledLink>
+                <Text as="span" variant="t100" color="inherit" margin={{ top: 2, left: 2, right: 2 }}>
+                  •
+                </Text>
+                <StyledLink to={absoluteRoutes.legal.copyright()}>
+                  <Text as="span" variant="t100" color="inherit" margin={{ top: 2 }}>
+                    Copyright policy
+                  </Text>
+                </StyledLink>
+              </LinksGroupHeaderItem>
+            )}
+            <ImageGridItem
+              colSpan={{ xxs: 12, sm: 8, md: 6 }}
+              colStart={{ sm: 3, md: 6 }}
+              rowStart={{ base: 3, md: 1 }}
+              rowSpan={{ md: 2 }}
+            >
+              <IllustrationWrapper
+                topMargin={!mdMatch ? undefined : 6}
+                data-aos="fade-left"
+                data-aos-easing="atlas-easing"
+              >
+                <StyledIllustration {...firstIllustration} width="720" height="450" />
+              </IllustrationWrapper>
+              <IllustrationWrapper
+                moveToTheLeft
+                topMargin={mdMatch ? undefined : 6}
+                data-aos={mdMatch ? LEFT_ANIMATION_MD : 'fade-right'}
+                data-aos-easing="atlas-easing"
+              >
+                <StyledIllustration {...secondIllustration} width="720" height="450" stickToTheRightEdge={!mdMatch} />
+              </IllustrationWrapper>
+            </ImageGridItem>
+          </ContentLayoutGrid>
+        </StyledContainer>
+      </OverflowHiddenContainer>
+    </>
+  )
+}

+ 2 - 0
packages/atlas/src/components/WelcomeView/index.ts

@@ -0,0 +1,2 @@
+export * from './WelcomeView'
+export * from './WelcomeView.styles'

+ 1 - 1
packages/atlas/src/components/_navigation/SidenavStudio/SidenavStudio.tsx

@@ -49,7 +49,7 @@ const studioNavbarItems: NavItemType[] = [
     icon: <SvgSidebarToken />,
     name: 'Token',
     expandedName: 'Creator token',
-    to: absoluteRoutes.studio.crt(),
+    to: absoluteRoutes.studio.crtWelcome(),
   },
   ...(atlasConfig.features.ypp.googleConsoleClientId
     ? [

+ 2 - 0
packages/atlas/src/components/_overlays/AdminModal/AdminModal.tsx

@@ -29,6 +29,8 @@ const ENVIRONMENT_NAMES: Record<string, string> = {
   production: 'Joystream Mainnet',
   development: `${atlasConfig.general.appName} Dev Testnet`,
   next: `${atlasConfig.general.appName} Next Testnet`,
+  // todo for removal, created only for testing purposes
+  orion2test: `${atlasConfig.general.appName} Orion v2 production Testnet`,
   local: 'Local chain',
 }
 

+ 3 - 4
packages/atlas/src/components/_overlays/SendTransferDialogs/WithdrawFundsDialog.tsx

@@ -16,6 +16,7 @@ import { hapiBnToTokenNumber, tokenNumberToHapiBn } from '@/joystream-lib/utils'
 import { useFee, useJoystream, useTokenPrice } from '@/providers/joystream/joystream.hooks'
 import { useTransaction } from '@/providers/transactions/transactions.hooks'
 import { formatNumber } from '@/utils/number'
+import { useChannelPaymentsHistory } from '@/views/studio/MyPaymentsView/PaymentsTransactions/PaymentTransactions.hooks'
 
 import { PriceWrapper, StyledMaxButton, Summary, SummaryRow, VerticallyCenteredDiv } from './SendTransferDialogs.styles'
 
@@ -48,8 +49,7 @@ export const WithdrawFundsDialog: FC<WithdrawFundsDialogProps> = ({
     setValue,
     formState: { errors },
   } = useForm<{ amount: number | null }>()
-  // todo uncomment once payments table is back
-  // const { fetchPaymentsData } = useChannelPaymentsHistory()
+  const { fetchPaymentsData } = useChannelPaymentsHistory(channelId || '')
   const { convertHapiToUSD } = useTokenPrice()
   const amountBn = tokenNumberToHapiBn(watch('amount') || 0)
   const { joystream, proxyCallback } = useJoystream()
@@ -86,8 +86,7 @@ export const WithdrawFundsDialog: FC<WithdrawFundsDialogProps> = ({
             proxyCallback(updateStatus)
           ),
         onTxSync: async () => {
-          // todo uncomment once payments table is back
-          // fetchPaymentsData()
+          fetchPaymentsData()
           onExitClick()
         },
       })

+ 3 - 1
packages/atlas/src/config/routes.ts

@@ -48,7 +48,9 @@ export const relativeRoutes = {
     newChannel: () => 'channel/new',
     editChannel: () => 'channel',
     videos: () => 'videos',
-    crt: () => 'crt',
+    crtWelcome: () => 'crt-welcome',
+    crtTokenPreview: () => 'crt-preview',
+    crtTokenPreviewEdit: () => 'crt-preview-edit',
     videoWorkspace: () => 'video-workspace',
     uploads: () => 'uploads',
     signIn: () => 'signin',

+ 1 - 1
packages/atlas/src/hooks/useBlockTimeEstimation.ts

@@ -2,7 +2,7 @@ import { useCallback } from 'react'
 
 import { useJoystreamStore } from '@/providers/joystream/joystream.store'
 
-const ESTIMATED_BLOCK_TIME_MS = 6000
+export const ESTIMATED_BLOCK_TIME_MS = 6000
 
 export const useBlockTimeEstimation = () => {
   const { currentBlock, currentBlockMsTimestamp } = useJoystreamStore()

+ 1 - 1
packages/atlas/src/joystream-lib/extrinsics.ts

@@ -162,7 +162,7 @@ export class JoystreamLibExtrinsics {
     await this.ensureApi()
 
     const metadata = wrapMetadata(MemberRemarked.encode(msg).finish()).unwrap()
-    const tx = this.api.tx.members.memberRemark(memberId, metadata)
+    const tx = this.api.tx.members.memberRemark(memberId, metadata, null)
     return tx
   }
 

+ 1 - 1
packages/atlas/src/providers/environment/store.ts

@@ -8,7 +8,7 @@ export type EnvironmentState = {
 }
 
 const INITIAL_STATE: EnvironmentState = {
-  targetDevEnv: 'development',
+  targetDevEnv: 'next',
   nodeOverride: null,
 }
 

+ 1 - 0
packages/atlas/src/utils/polling.ts

@@ -0,0 +1 @@
+export const YPP_POLL_INTERVAL = 3000

+ 5 - 0
packages/atlas/src/views/studio/CrtPreviewEditView/CrtPreviewEditView.tsx

@@ -0,0 +1,5 @@
+import { CrtPreviewLayout } from '@/components/CrtPreviewLayout'
+
+export const CrtPreviewEditView = () => {
+  return <CrtPreviewLayout mode="edit" />
+}

+ 1 - 0
packages/atlas/src/views/studio/CrtPreviewEditView/index.ts

@@ -0,0 +1 @@
+export * from './CrtPreviewEditView'

+ 5 - 0
packages/atlas/src/views/studio/CrtPreviewView/CrtPreviewView.tsx

@@ -0,0 +1,5 @@
+import { CrtPreviewLayout } from '@/components/CrtPreviewLayout'
+
+export const CrtPreviewView = () => {
+  return <CrtPreviewLayout mode="preview" />
+}

+ 1 - 0
packages/atlas/src/views/studio/CrtPreviewView/index.ts

@@ -0,0 +1 @@
+export * from './CrtPreviewView'

+ 26 - 0
packages/atlas/src/views/studio/CrtWelcomeView/CrtWelcomeView.tsx

@@ -0,0 +1,26 @@
+import { CrtView } from '@/views/studio/CrtView'
+
+export const CrtWelcomeView = () => {
+  return (
+    <CrtView />
+    // todo: uncomment when CRT are ready
+    // <WelcomeView
+    //   headTagTitle="Creator tokens"
+    //   title="Ready to create your channel token?"
+    //   pageTitle="Creator tokens"
+    //   subtitle="Create your very own channel token, sell it on your own terms and share your success with your token holders."
+    //   type="crt"
+    //   buttons={[
+    //     { children: 'Create token', size: 'large', to: absoluteRoutes.studio.crtTokenPreview() },
+    //     {
+    //       children: 'Learn more',
+    //       size: 'large',
+    //       variant: 'tertiary',
+    //       to: '',
+    //       _textOnly: true,
+    //       icon: <SvgActionPlay />,
+    //     },
+    //   ]}
+    // />
+  )
+}

+ 2 - 47
packages/atlas/src/views/studio/MyPaymentsView/MyPayments.styles.ts

@@ -1,6 +1,6 @@
 import styled from '@emotion/styled'
 
-import { Svg404PatternBottomLeft, Svg404PatternTopRight, SvgSmallTokens } from '@/assets/illustrations'
+import { SvgSmallTokens } from '@/assets/illustrations'
 import { cVar, media, sizes, square } from '@/styles'
 
 export const TabsContainer = styled.div`
@@ -35,51 +35,6 @@ export const TextContainer = styled.div`
   }
 
   ${media.md} {
-    width: 584px;
-  }
-
-  ${media.lg} {
-    width: 640px;
-  }
-
-  ${media.xl} {
-    width: 880px;
-  }
-
-  ${media.xxl} {
-    width: 724px;
-  }
-`
-
-export const BottomPattern = styled(Svg404PatternBottomLeft)`
-  position: absolute;
-  bottom: 0;
-  left: calc(var(--size-global-horizontal-padding) * -1);
-
-  ${square('216px')};
-
-  ${media.sm} {
-    ${square('unset')};
-  }
-
-  ${media.xxl} {
-    left: 0;
-  }
-`
-
-export const TopPattern = styled(Svg404PatternTopRight)`
-  position: absolute;
-  top: 0;
-  right: calc(var(--size-global-horizontal-padding) * -1);
-  width: 270px;
-  height: 216px;
-
-  ${media.sm} {
-    width: unset;
-    height: unset;
-  }
-
-  ${media.xxl} {
-    right: 0;
+    margin-bottom: ${sizes(6)};
   }
 `

+ 0 - 27
packages/atlas/src/views/studio/MyPaymentsView/MyPaymentsHiddenView.tsx

@@ -1,27 +0,0 @@
-import { Text } from '@/components/Text'
-import { useHeadTags } from '@/hooks/useHeadTags'
-import { useMediaMatch } from '@/hooks/useMediaMatch'
-
-import { BottomPattern, StyledSvgSmallTokens, TextContainer, TopPattern, Wrapper } from './MyPayments.styles'
-
-export const MyPaymentsHiddenView = () => {
-  const headTags = useHeadTags('My payments')
-  const smMatch = useMediaMatch('sm')
-  return (
-    <Wrapper>
-      <BottomPattern />
-      <TopPattern />
-      {headTags}
-      <StyledSvgSmallTokens />
-      <TextContainer>
-        <Text variant={smMatch ? 'h600' : 'h500'} as="h1" margin={{ bottom: 4, top: 8 }}>
-          My Payments are coming {!smMatch && <br />} later this year
-        </Text>
-        <Text variant="t300" as="p" color="colorText">
-          My Payments will give you an overview of incomes and outcomes of your channel balance, let you claim rewards
-          from the council, and withdraw tokens to your personal Joystream membership.
-        </Text>
-      </TextContainer>
-    </Wrapper>
-  )
-}

+ 30 - 33
packages/atlas/src/views/studio/MyPaymentsView/PaymentsOverview/PaymentsOverview.hooks.ts

@@ -1,24 +1,27 @@
-// eslint-disable-next-line @typescript-eslint/ban-ts-comment
-// @ts-nocheck
-// TODO: remove nocheck when payments functionality is restored
 import { useApolloClient } from '@apollo/client'
 import BN from 'bn.js'
 import { useCallback, useEffect, useState } from 'react'
 
 import { useFullChannel } from '@/api/hooks/channel'
-import '@/api/queries/__generated__/channels.generated'
+import {
+  GetPayloadDataByCommitmentDocument,
+  GetPayloadDataByCommitmentQuery,
+  GetPayloadDataByCommitmentQueryVariables,
+} from '@/api/queries/__generated__/channels.generated'
 import { atlasConfig } from '@/config'
+import { ESTIMATED_BLOCK_TIME_MS } from '@/hooks/useBlockTimeEstimation'
 import { getClaimableReward } from '@/joystream-lib/channelPayouts'
 import { JoystreamLibExtrinsics } from '@/joystream-lib/extrinsics'
 import { hapiBnToTokenNumber } from '@/joystream-lib/utils'
-import { useDistributionOperators } from '@/providers/assets/assets.provider'
 import { useJoystream } from '@/providers/joystream/joystream.hooks'
 import { useSnackbar } from '@/providers/snackbars'
 import { useTransaction } from '@/providers/transactions/transactions.hooks'
 import { useUser } from '@/providers/user/user.hooks'
-import { createAssetDownloadEndpoint } from '@/utils/asset'
 import { ConsoleLogger, SentryLogger } from '@/utils/logs'
-import { formatNumber, getRandomIntInclusive } from '@/utils/number'
+import { wait } from '@/utils/misc'
+import { formatNumber } from '@/utils/number'
+
+import { useChannelPaymentsHistory } from '../PaymentsTransactions/PaymentTransactions.hooks'
 
 const TOKEN_TICKER = atlasConfig.joystream.tokenTicker
 
@@ -34,36 +37,28 @@ export const useChannelPayout = (txCallback?: () => void) => {
   const [claimError, setClaimError] = useState<string | null>(null)
   const [txParams, setTxParams] = useState<Parameters<JoystreamLibExtrinsics['claimRewardTx']> | undefined>(undefined)
   const { channel, loading, refetch } = useFullChannel(channelId || '')
+  const { fetchPaymentsData } = useChannelPaymentsHistory(channelId || '')
   const handleTransaction = useTransaction()
   const client = useApolloClient()
   const { displaySnackbar } = useSnackbar()
 
-  const { getAllDistributionOperatorsForBag } = useDistributionOperators()
-
-  const getPayloadDataObjectIdAndNodeEndpoint = useCallback(
+  const getPayloadUrl = useCallback(
     async (commitment: string) => {
       const {
-        data: { channelPayoutsUpdatedEvents },
-      } = await client.query<GetPayloadDataObjectIdByCommitmentQuery, GetPayloadDataObjectIdByCommitmentQueryVariables>(
-        {
-          query: GetPayloadDataObjectIdByCommitmentDocument,
-          variables: {
-            commitment,
-          },
-        }
-      )
+        data: { events },
+      } = await client.query<GetPayloadDataByCommitmentQuery, GetPayloadDataByCommitmentQueryVariables>({
+        query: GetPayloadDataByCommitmentDocument,
+        variables: {
+          commitment,
+        },
+      })
 
-      const operators = await getAllDistributionOperatorsForBag(
-        channelPayoutsUpdatedEvents[0]?.payloadDataObject.storageBagId
-      )
-      const randomOperatorIdx = getRandomIntInclusive(0, operators?.length ? operators.length - 1 : 0)
+      const payloadUrl =
+        events[0]?.data.__typename === 'ChannelPayoutsUpdatedEventData' && events[0].data.payloadDataObject?.resolvedUrl
 
-      return {
-        nodeEndpoint: operators?.[randomOperatorIdx].endpoint,
-        payloadDataObjectId: channelPayoutsUpdatedEvents?.[0].payloadDataObject.id,
-      }
+      return payloadUrl
     },
-    [client, getAllDistributionOperatorsForBag]
+    [client]
   )
 
   const getRewardData = useCallback(
@@ -75,11 +70,10 @@ export const useChannelPayout = (txCallback?: () => void) => {
       try {
         const commitment = await joystream.getContentCommitment()
 
-        const { payloadDataObjectId, nodeEndpoint } = await getPayloadDataObjectIdAndNodeEndpoint(commitment)
-        if (!payloadDataObjectId || !nodeEndpoint) {
+        const payloadUrl = await getPayloadUrl(commitment)
+        if (!payloadUrl) {
           return
         }
-        const payloadUrl = createAssetDownloadEndpoint(nodeEndpoint, payloadDataObjectId)
         const { reward } = await getClaimableReward(channelId, cumulativeRewardClaimed, payloadUrl)
 
         if (reward.gt(maxCashoutAllowed) || reward.lt(minCashoutAllowed)) {
@@ -100,7 +94,7 @@ export const useChannelPayout = (txCallback?: () => void) => {
         SentryLogger.error("Couldn't get reward data", 'PaymentOverviewTab.hooks', error)
       }
     },
-    [getPayloadDataObjectIdAndNodeEndpoint, joystream, maxCashoutAllowed, minCashoutAllowed]
+    [getPayloadUrl, joystream, maxCashoutAllowed, minCashoutAllowed]
   )
 
   const handleFetchReward = useCallback(async () => {
@@ -159,8 +153,11 @@ export const useChannelPayout = (txCallback?: () => void) => {
           commitment,
           proxyCallback(updateStatus)
         ),
-      onTxSync: () => {
+      onTxSync: async () => {
         txCallback?.()
+        // wait at least for one block before refetching
+        await wait(ESTIMATED_BLOCK_TIME_MS)
+        await fetchPaymentsData()
         return refetch()
       },
     })

+ 12 - 64
packages/atlas/src/views/studio/MyPaymentsView/PaymentsTransactions/PaymentTransactions.hooks.ts

@@ -1,76 +1,24 @@
-// eslint-disable-next-line @typescript-eslint/ban-ts-comment
-// @ts-nocheck
-import { useCallback, useEffect, useState } from 'react'
-
-import { GetFullChannelsQuery, useGetChannelPaymentEventsQuery } from '@/api/queries/__generated__/channels.generated'
-import { PaymentHistory } from '@/components/TablePaymentsHistory'
+import { useGetChannelPaymentEventsQuery } from '@/api/queries/__generated__/channels.generated'
 import { useJoystream } from '@/providers/joystream/joystream.hooks'
 
-import { mapEventToPaymentHistoryFactory } from './PaymentTransactions.utils'
-
-//! WARNING todo needs to be rewritten with orion v2
-export const useChannelPaymentsHistory = (channel?: GetFullChannelsQuery['channels'][number]) => {
-  const { joystream } = useJoystream()
-  const [paymentData, setPaymentData] = useState<PaymentHistory[]>([])
-  const [loading, setLoading] = useState<boolean>(false)
+import { mapEventToPaymentHistory } from './PaymentTransactions.utils'
 
-  const { data, ...rest } = useGetChannelPaymentEventsQuery({
+export const useChannelPaymentsHistory = (channelId: string) => {
+  const {
+    chainState: { nftPlatformFeePercentage },
+  } = useJoystream()
+  const { data, refetch, ...rest } = useGetChannelPaymentEventsQuery({
     variables: {
-      channelId: channel?.id ?? '-1',
-      ownerMemberId: channel?.ownerMember?.id ?? '-1',
+      channelId: channelId ?? '-1',
     },
-    skip: !channel,
+    skip: !channelId,
   })
 
-  const fetchPaymentsData = useCallback(() => {
-    if (joystream && data && channel) {
-      setLoading(true)
-      const mapEventToPaymentHistory = mapEventToPaymentHistoryFactory(joystream, channel.rewardAccount)
-      const rewardPromises = data.channelRewardClaimedEvents.map((event) =>
-        mapEventToPaymentHistory(event, 'claimed-reward')
-      )
-      const ntfBoughtPromises = data.nftBoughtEvents.map((event) =>
-        mapEventToPaymentHistory({ ...event, amount: event.price }, 'nft-sale')
-      )
-      const withdrawalPromises = data?.channelFundsWithdrawnEvents.map((event) =>
-        mapEventToPaymentHistory(event, 'withdrawal')
-      )
-      const openAuctionAcceptedPromises = data?.openAuctionBidAcceptedEvents.map((event) =>
-        mapEventToPaymentHistory({ ...event, amount: event.winningBid?.amount ?? '0' }, 'nft-sale')
-      )
-      const auctionCompletingBidPromises = data?.bidMadeCompletingAuctionEvents.map((event) =>
-        mapEventToPaymentHistory({ ...event, amount: event.price }, 'nft-sale')
-      )
-      const auctionSettledPromises = data?.englishAuctionSettledEvents.map((event) =>
-        mapEventToPaymentHistory({ ...event, amount: event.winningBid.amount ?? '0' }, 'nft-sale')
-      )
-
-      Promise.all([
-        ...rewardPromises,
-        ...withdrawalPromises,
-        ...ntfBoughtPromises,
-        ...auctionSettledPromises,
-        ...auctionCompletingBidPromises,
-        ...openAuctionAcceptedPromises,
-      ])
-        .then((result) => {
-          setPaymentData(result.sort((a, b) => b.block - a.block))
-        })
-        .finally(() => {
-          setLoading(false)
-        })
-    }
-  }, [joystream, data, channel])
-
-  useEffect(() => {
-    fetchPaymentsData()
-  }, [joystream, data, channel, fetchPaymentsData])
-
   return {
     ...rest,
     rawData: data,
-    paymentData,
-    loading: rest.loading || loading,
-    fetchPaymentsData,
+    paymentData: data?.events.map(mapEventToPaymentHistory(nftPlatformFeePercentage)),
+    loading: rest.loading,
+    fetchPaymentsData: refetch,
   }
 }

+ 1 - 1
packages/atlas/src/views/studio/MyPaymentsView/PaymentsTransactions/PaymentTransactions.styles.ts

@@ -25,7 +25,7 @@ export const TableWrapper = styled.div<{ isEmpty?: boolean }>`
     !isEmpty
       ? css`
           > * {
-            min-width: 750px;
+            min-width: 900px;
           }
         `
       : ''}

+ 5 - 7
packages/atlas/src/views/studio/MyPaymentsView/PaymentsTransactions/PaymentTransactions.tsx

@@ -1,6 +1,5 @@
 import { useMemo } from 'react'
 
-import { useFullChannel } from '@/api/hooks/channel'
 import { SvgJoyTokenMonochrome24 } from '@/assets/icons'
 import { TablePaymentsHistory } from '@/components/TablePaymentsHistory'
 import { WidgetTile } from '@/components/WidgetTile'
@@ -14,10 +13,9 @@ import { TableWrapper, TilesWrapper } from './PaymentTransactions.styles'
 
 export const PaymentTransactions = () => {
   const { channelId } = useUser()
-  const { channel } = useFullChannel(channelId ?? '')
 
-  const { paymentData, loading } = useChannelPaymentsHistory(channel)
-  const paymentHistoryOverview = useMemo(() => aggregatePaymentHistory(paymentData), [paymentData])
+  const { paymentData, loading } = useChannelPaymentsHistory(channelId || '')
+  const paymentHistoryOverview = useMemo(() => aggregatePaymentHistory(paymentData || []), [paymentData])
 
   return (
     <>
@@ -31,12 +29,12 @@ export const PaymentTransactions = () => {
         <WidgetTile
           title="Total withdrawn"
           loading={loading}
-          text={formatNumber(hapiBnToTokenNumber(paymentHistoryOverview.totalWithdrawn))}
+          text={formatNumber(hapiBnToTokenNumber(paymentHistoryOverview.totalWithdrawn.abs()))}
           icon={<SvgJoyTokenMonochrome24 />}
         />
       </TilesWrapper>
-      <TableWrapper isEmpty={!paymentData.length}>
-        <TablePaymentsHistory data={paymentData} />
+      <TableWrapper isEmpty={!paymentData?.length}>
+        <TablePaymentsHistory isLoading={loading} data={paymentData ?? []} />
       </TableWrapper>
     </>
   )

+ 110 - 20
packages/atlas/src/views/studio/MyPaymentsView/PaymentsTransactions/PaymentTransactions.utils.ts

@@ -1,28 +1,118 @@
-// eslint-disable-next-line @typescript-eslint/ban-ts-comment
-// @ts-nocheck
 import BN from 'bn.js'
-import { Remote } from 'comlink'
 
 import { GetChannelPaymentEventsQuery } from '@/api/queries/__generated__/channels.generated'
 import { PaymentHistory } from '@/components/TablePaymentsHistory'
-import { JoystreamLib } from '@/joystream-lib/lib'
-
-type CommonEvent = Pick<
-  GetChannelPaymentEventsQuery['channelRewardClaimedEvents'][number],
-  'createdAt' | 'inBlock' | 'amount'
->
-
-export const mapEventToPaymentHistoryFactory =
-  (joystream: Remote<JoystreamLib>, address: string) =>
-  async <T extends CommonEvent>(event: T, type: PaymentHistory['type']): Promise<PaymentHistory> => {
-    const channelBalance = await joystream.getAccountBalanceAtBlock(event.inBlock, address)
-    const { inBlock, amount, createdAt } = event
+
+type EventData = GetChannelPaymentEventsQuery['events'][number]['data'] & {
+  nftPlatformFeePercentage: number
+}
+
+const getType = (eventData: EventData): PaymentHistory['type'] => {
+  switch (eventData.__typename) {
+    case 'NftBoughtEventData':
+    case 'BidMadeCompletingAuctionEventData':
+    case 'OpenAuctionBidAcceptedEventData':
+    case 'EnglishAuctionSettledEventData':
+      if (eventData.previousNftOwner.__typename !== 'NftOwnerChannel') {
+        return 'nft-royalty'
+      }
+      return 'nft-sale'
+    case 'ChannelRewardClaimedEventData':
+      return 'claimed-reward'
+    case 'ChannelFundsWithdrawnEventData':
+      return 'withdrawal'
+    case 'ChannelPaymentMadeEventData':
+      return 'direct-payment'
+    default:
+      throw Error('Unknown event')
+  }
+}
+
+const getAmount = (eventData: EventData): BN => {
+  switch (eventData.__typename) {
+    case 'NftBoughtEventData': {
+      if (eventData.previousNftOwner.__typename !== 'NftOwnerChannel') {
+        return new BN(eventData.price)?.muln(eventData.nft.creatorRoyalty ? eventData.nft.creatorRoyalty : 0).divn(100)
+      }
+      return new BN(eventData.price).muln(100 - eventData.nftPlatformFeePercentage).divn(100)
+    }
+    case 'BidMadeCompletingAuctionEventData':
+    case 'OpenAuctionBidAcceptedEventData':
+    case 'EnglishAuctionSettledEventData': {
+      if (eventData.previousNftOwner.__typename !== 'NftOwnerChannel') {
+        return new BN(eventData.winningBid.amount)
+          ?.muln(eventData.winningBid.nft.creatorRoyalty ? eventData.winningBid.nft.creatorRoyalty : 0)
+          .divn(100)
+      }
+      return new BN(eventData.winningBid.amount).muln(100 - eventData.nftPlatformFeePercentage).divn(100)
+    }
+    case 'ChannelFundsWithdrawnEventData':
+      return new BN(-eventData.amount)
+    case 'ChannelRewardClaimedEventData':
+    case 'ChannelPaymentMadeEventData':
+      return new BN(eventData.amount)
+    default:
+      throw Error('Unknown event')
+  }
+}
+
+const getSender = (eventData: EventData) => {
+  switch (eventData.__typename) {
+    case 'NftBoughtEventData':
+      return eventData.buyer.controllerAccount
+    case 'BidMadeCompletingAuctionEventData':
+    case 'OpenAuctionBidAcceptedEventData':
+    case 'EnglishAuctionSettledEventData':
+      return eventData.winningBid.bidder.controllerAccount
+    case 'ChannelRewardClaimedEventData':
+      return 'council'
+    case 'ChannelFundsWithdrawnEventData':
+      return eventData.actor.__typename === 'ContentActorMember' ? eventData.actor.member.controllerAccount : 'council'
+    case 'ChannelPaymentMadeEventData':
+      return eventData.payer.controllerAccount
+    default:
+      throw Error('Unknown event')
+  }
+}
+
+const getDescription = (eventData: EventData) => {
+  switch (eventData.__typename) {
+    case 'NftBoughtEventData': {
+      if (eventData.previousNftOwner.__typename !== 'NftOwnerChannel') {
+        return `Royalty from NFT: ${eventData.nft.video.title}`
+      }
+      return `Sold NFT: ${eventData.nft.video.title}`
+    }
+    case 'BidMadeCompletingAuctionEventData':
+    case 'OpenAuctionBidAcceptedEventData':
+    case 'EnglishAuctionSettledEventData': {
+      if (eventData.previousNftOwner.__typename !== 'NftOwnerChannel') {
+        return `Royalty from NFT: ${eventData.winningBid.nft.video.title}`
+      }
+      return `Sold NFT: ${eventData.winningBid.nft.video.title}`
+    }
+    case 'ChannelRewardClaimedEventData':
+    case 'ChannelFundsWithdrawnEventData':
+      return ''
+    case 'ChannelPaymentMadeEventData':
+      return eventData.rationale
+    default:
+      return undefined
+  }
+}
+
+export const mapEventToPaymentHistory =
+  (nftPlatformFeePercentage: number) =>
+  (event: GetChannelPaymentEventsQuery['events'][number]): PaymentHistory => {
+    const { inBlock, timestamp } = event
+    const eventData = { ...event.data, nftPlatformFeePercentage }
     return {
-      type,
+      type: getType(eventData),
       block: inBlock + 1,
-      amount: new BN(amount),
-      date: new Date(createdAt),
-      channelBalance: new BN(channelBalance),
+      amount: getAmount(eventData),
+      date: new Date(timestamp),
+      description: getDescription(eventData) || '-',
+      sender: getSender(eventData),
     }
   }
 
@@ -30,7 +120,7 @@ export const aggregatePaymentHistory = (arg: PaymentHistory[]) =>
   arg.reduce(
     (prev, next) => {
       if (next.type === 'withdrawal') {
-        prev.totalWithdrawn.iadd(next.amount)
+        prev.totalWithdrawn.iadd(next.amount.abs())
         return prev
       }
       prev.totalEarned.iadd(next.amount)

+ 21 - 5
packages/atlas/src/views/studio/StudioLayout.tsx

@@ -22,10 +22,12 @@ import { VideoWorkspaceProvider, useVideoWorkspaceRouting } from '@/providers/vi
 import { transitions } from '@/styles'
 import { isAllowedBrowser } from '@/utils/browser'
 import { NotificationsView } from '@/views/notifications'
-import { MyPaymentsHiddenView } from '@/views/studio/MyPaymentsView/MyPaymentsHiddenView'
+import { CrtPreviewEditView } from '@/views/studio/CrtPreviewEditView'
+import { CrtPreviewView } from '@/views/studio/CrtPreviewView'
+import { CrtWelcomeView } from '@/views/studio/CrtWelcomeView/CrtWelcomeView'
+import { MyPaymentsView } from '@/views/studio/MyPaymentsView'
 
 import { CreateEditChannelView } from './CreateEditChannelView'
-import { CrtView } from './CrtView'
 import { MyUploadsView } from './MyUploadsView'
 import { MyVideosView } from './MyVideosView'
 import { StudioWelcomeView } from './StudioWelcomeView'
@@ -146,7 +148,7 @@ const StudioLayout = () => {
               <Route
                 path={relativeRoutes.studio.payments()}
                 element={
-                  <PrivateRoute element={<MyPaymentsHiddenView />} isAuth={channelSet} redirectTo={ENTRY_POINT_ROUTE} />
+                  <PrivateRoute element={<MyPaymentsView />} isAuth={channelSet} redirectTo={ENTRY_POINT_ROUTE} />
                 }
               />
               <Route
@@ -154,8 +156,22 @@ const StudioLayout = () => {
                 element={<PrivateRoute element={<MyVideosView />} isAuth={channelSet} redirectTo={ENTRY_POINT_ROUTE} />}
               />
               <Route
-                path={relativeRoutes.studio.crt()}
-                element={<PrivateRoute element={<CrtView />} isAuth={channelSet} redirectTo={ENTRY_POINT_ROUTE} />}
+                path={relativeRoutes.studio.crtWelcome()}
+                element={
+                  <PrivateRoute element={<CrtWelcomeView />} isAuth={channelSet} redirectTo={ENTRY_POINT_ROUTE} />
+                }
+              />
+              <Route
+                path={relativeRoutes.studio.crtTokenPreview()}
+                element={
+                  <PrivateRoute element={<CrtPreviewView />} isAuth={channelSet} redirectTo={ENTRY_POINT_ROUTE} />
+                }
+              />
+              <Route
+                path={relativeRoutes.studio.crtTokenPreviewEdit()}
+                element={
+                  <PrivateRoute element={<CrtPreviewEditView />} isAuth={channelSet} redirectTo={ENTRY_POINT_ROUTE} />
+                }
               />
               <Route
                 path={relativeRoutes.studio.notifications()}

+ 2 - 205
packages/atlas/src/views/studio/StudioWelcomeView/StudioWelcomeView.styles.ts

@@ -1,94 +1,13 @@
 import { css } from '@emotion/react'
 import styled from '@emotion/styled'
-import { Link } from 'react-router-dom'
 
 import { SvgActionChevronR } from '@/assets/icons'
-import { SvgSigninIllustration } from '@/assets/illustrations'
-import { SvgJoystreamLogoFull } from '@/assets/logos'
-import { GridItem, LayoutGrid } from '@/components/LayoutGrid'
 import { Step } from '@/components/Step'
 import { Text } from '@/components/Text'
-import { Button } from '@/components/_buttons/Button'
 import { cVar, media, sizes } from '@/styles'
 
-const XXS_IMAGE_WIDTH = 360
-const XXS_IMAGE_HEIGHT = 225
-const XS_IMAGE_WIDTH = 480
-const XS_IMAGE_HEIGHT = 300
-const SM_IMAGE_WIDTH = 720
-const SM_IMAGE_HEIGHT = 450
-
-export const LEFT_ANIMATION_MD = 'left-animation-md'
-
-export const OverflowHiddenContainer = styled.div`
-  margin: 0 calc(-1 * var(--size-global-horizontal-padding)) 0;
-  overflow: hidden;
-
-  [data-aos=${LEFT_ANIMATION_MD}] {
-    opacity: 0;
-    transform: translateX(0);
-    transition-property: transform, opacity;
-
-    &.aos-animate {
-      opacity: 1;
-      transform: translateX(117px);
-    }
-  }
-`
-
-export const StyledContainer = styled.div`
-  max-width: 1440px;
-  padding-bottom: ${sizes(12)};
-  ${media.md} {
-    margin: 0 auto;
-    padding: 0;
-  }
-`
-export const ContentLayoutGrid = styled(LayoutGrid)`
-  align-items: center;
-  grid-row-gap: 0;
-  margin: 0 ${sizes(4)};
-  ${media.md} {
-    margin: 0 ${sizes(8)};
-  }
-`
-
-export const HeaderGridItem = styled(GridItem)`
-  ${media.md} {
-    margin: 0;
-    padding: ${sizes(8)};
-  }
-  ${media.lg} {
-    padding: ${sizes(8)} ${sizes(20)};
-  }
-`
-
-export const ContentWrapper = styled.div`
-  margin-top: ${sizes(12)};
-  display: flex;
-  justify-content: center;
-  flex-direction: column;
-  align-self: center;
-  ${media.md} {
-    margin-top: unset;
-  }
-`
-
-export const StyledSignInIllustrationSVG = styled(SvgSigninIllustration)`
-  margin-top: 60px;
-  align-self: center;
-  width: 100%;
-  ${media.md} {
-    position: relative;
-    left: -50px;
-    margin-top: 0;
-  }
-  ${media.lg} {
-    max-width: 1000px;
-  }
-  ${media.xxl} {
-    max-width: unset;
-  }
+export const InlineText = styled(Text)`
+  display: inline-block;
 `
 
 export const StepsContainer = styled.div`
@@ -152,125 +71,3 @@ export const StyledSvgActionChevronR = styled(SvgActionChevronR)`
     margin: 0 ${sizes(4)};
   }
 `
-
-export const ButtonGroup = styled.div`
-  display: flex;
-  flex-direction: column;
-  flex-grow: 1;
-`
-
-export const SignInButton = styled(Button)`
-  margin-bottom: ${sizes(6)};
-`
-
-export const SubTitle = styled(Text)`
-  display: block;
-  margin-top: ${sizes(4)};
-`
-
-const linkStyles = css`
-  text-decoration: none;
-  color: ${cVar('colorTextMuted')};
-  align-items: center;
-  display: flex;
-
-  :hover,
-  :focus {
-    color: ${cVar('colorText')};
-  }
-
-  :hover path,
-  :focus path {
-    fill: ${cVar('colorText')};
-  }
-`
-
-export const LinksGroupHeaderItem = styled(GridItem)`
-  align-self: end;
-  justify-content: start;
-  display: flex;
-  flex-wrap: wrap;
-  color: ${cVar('colorTextMuted')};
-  grid-auto-flow: column;
-  align-items: center;
-  margin: ${sizes(10)} 0 ${sizes(12)};
-  ${media.md} {
-    margin: 0;
-    padding: ${sizes(8)};
-  }
-  ${media.lg} {
-    padding: ${sizes(8)} ${sizes(20)};
-  }
-`
-
-export const StyledAnchor = styled.a`
-  ${linkStyles}
-`
-
-export const StyledSvgJoystreamLogoFull = styled(SvgJoystreamLogoFull)`
-  height: 16px;
-  margin-left: ${sizes(2)};
-  width: unset;
-
-  path {
-    fill: ${cVar('colorTextMuted')};
-  }
-`
-
-export const StyledLink = styled(Link)`
-  ${linkStyles}
-`
-
-export const ImageGridItem = styled(GridItem)`
-  display: flex;
-  flex-direction: column;
-  justify-content: center;
-  ${media.md} {
-    flex-direction: column-reverse;
-    height: calc(100vh - 80px);
-  }
-`
-
-type IllustrationWrapperProps = {
-  moveToTheLeft?: boolean
-  topMargin?: number
-}
-
-export const IllustrationWrapper = styled.div<IllustrationWrapperProps>`
-  position: relative;
-  height: ${XXS_IMAGE_HEIGHT}px;
-  margin-top: ${({ topMargin }) => (topMargin ? sizes(topMargin) : 'unset')};
-
-  ${media.xs} {
-    height: ${XS_IMAGE_HEIGHT}px;
-  }
-  ${media.sm} {
-    height: ${SM_IMAGE_HEIGHT}px;
-  }
-`
-
-type StyledIllustrationProps = {
-  stickToTheRightEdge?: boolean
-}
-
-export const StyledIllustration = styled.img<StyledIllustrationProps>`
-  position: absolute;
-  right: ${({ stickToTheRightEdge }) => (stickToTheRightEdge ? '0' : 'unset')};
-  width: ${XXS_IMAGE_WIDTH}px;
-  height: ${XXS_IMAGE_HEIGHT}px;
-  ${media.xs} {
-    height: ${XS_IMAGE_HEIGHT}px;
-    width: ${XS_IMAGE_WIDTH}px;
-  }
-  ${media.sm} {
-    height: ${SM_IMAGE_HEIGHT}px;
-    width: ${SM_IMAGE_WIDTH}px;
-  }
-  ${media.md} {
-    position: static;
-  }
-`
-
-export const InlineText = styled(Text)`
-  display: inline-block;
-`

+ 83 - 210
packages/atlas/src/views/studio/StudioWelcomeView/StudioWelcomeView.tsx

@@ -1,48 +1,15 @@
-import AOS from 'aos'
-import 'aos/dist/aos.css'
-import { FC, useEffect } from 'react'
+import { FC } from 'react'
 
 import { SvgActionPlay } from '@/assets/icons'
-import myUploads1x from '@/assets/images/my-uploads-1x.webp'
-import myUploads2x from '@/assets/images/my-uploads-2x.webp'
-import myVideos1x from '@/assets/images/my-videos-view-1x.webp'
-import myVideos2x from '@/assets/images/my-videos-view-2x.webp'
-import nftWorkspace1x from '@/assets/images/nft-workspace-1x.webp'
-import nftWorkspace2x from '@/assets/images/nft-workspace-2x.webp'
-import videoWorkspace1x from '@/assets/images/video-workspace-1x.webp'
-import videoWorkspace2x from '@/assets/images/video-workspace-2x.webp'
 import { Text } from '@/components/Text'
-import { TextButton } from '@/components/_buttons/Button'
+import { SubTitle, WelcomeView } from '@/components/WelcomeView'
 import { atlasConfig } from '@/config'
 import { absoluteRoutes } from '@/config/routes'
 import { useDisplaySignInDialog } from '@/hooks/useDisplaySignInDialog'
-import { useHeadTags } from '@/hooks/useHeadTags'
 import { useMediaMatch } from '@/hooks/useMediaMatch'
 import { useUser } from '@/providers/user/user.hooks'
 
-import {
-  ButtonGroup,
-  ContentLayoutGrid,
-  ContentWrapper,
-  HeaderGridItem,
-  IllustrationWrapper,
-  ImageGridItem,
-  InlineText,
-  LEFT_ANIMATION_MD,
-  LeftStep,
-  LinksGroupHeaderItem,
-  OverflowHiddenContainer,
-  RightStep,
-  SignInButton,
-  StepsContainer,
-  StyledAnchor,
-  StyledContainer,
-  StyledIllustration,
-  StyledLink,
-  StyledSvgActionChevronR,
-  StyledSvgJoystreamLogoFull,
-  SubTitle,
-} from './StudioWelcomeView.styles'
+import { InlineText, LeftStep, RightStep, StepsContainer, StyledSvgActionChevronR } from './StudioWelcomeView.styles'
 
 export type Membership = {
   id: string
@@ -53,183 +20,89 @@ export type Membership = {
 
 export const StudioWelcomeView: FC = () => {
   const { signIn, isLoggedIn } = useUser()
-  const headTags = useHeadTags('Studio')
   const { openSignInDialog } = useDisplaySignInDialog()
   const mdMatch = useMediaMatch('md')
 
-  useEffect(() => {
-    AOS.init({
-      duration: 750,
-      once: true,
-    })
-  }, [])
-
   return (
-    <>
-      <OverflowHiddenContainer>
-        {headTags}
-        <StyledContainer>
-          <ContentLayoutGrid>
-            <HeaderGridItem
-              colSpan={{ xxs: 12, sm: 8, md: 5 }}
-              colStart={{ sm: 3, md: 1 }}
-              rowStart={1}
-              rowSpan={{ md: 2 }}
-            >
-              <ContentWrapper>
-                <Text as="h1" variant="h100" color="colorTextPrimary">
-                  {atlasConfig.general.appName} studio
-                </Text>
-                <Text
-                  as="h1"
-                  variant={mdMatch ? 'h700' : 'h600'}
-                  color={isLoggedIn || !atlasConfig.general.appContentFocus ? undefined : 'colorTextMuted'}
-                  margin={{ top: 2 }}
-                >
-                  {isLoggedIn ? (
-                    'Ready to create your channel?'
-                  ) : atlasConfig.general.appContentFocus ? (
-                    <>
-                      Your{' '}
-                      <InlineText variant={mdMatch ? 'h700' : 'h600'} as="p">
-                        {atlasConfig.general.appContentFocus}
-                      </InlineText>{' '}
-                      creator journey starts here
-                    </>
-                  ) : (
-                    'Your creator journey starts here'
-                  )}
-                </Text>
-                <SubTitle
-                  as="span"
-                  variant="t300"
-                  color={isLoggedIn || !atlasConfig.general.appContentFocus ? undefined : 'colorTextMuted'}
-                >
-                  {isLoggedIn ? (
-                    'Create a channel to upload videos, sell NFTs, make playlists (coming soon), and more!'
-                  ) : atlasConfig.general.appContentFocus ? (
-                    <>
-                      Welcome to {atlasConfig.general.appName}, a video platform focused on{' '}
-                      <InlineText as="p" variant="t300">
-                        {atlasConfig.general.appContentFocus}
-                      </InlineText>{' '}
-                      content. To create a channel, first set up a free Joystream membership with our simple
-                      step-by-step wizard.
-                    </>
-                  ) : (
-                    'To create a channel, first set up a free Joystream membership with our simple step-by-step wizard.'
-                  )}
-                </SubTitle>
-                <StepsContainer>
-                  <LeftStep
-                    title="Set up membership"
-                    number={1}
-                    variant={isLoggedIn ? 'completed' : 'current'}
-                    showOtherStepsOnMobile
-                  />
-                  <StyledSvgActionChevronR />
-                  <RightStep
-                    title="Create channel"
-                    number={2}
-                    variant={isLoggedIn ? 'current' : 'future'}
-                    showOtherStepsOnMobile
-                  />
-                </StepsContainer>
-                <ButtonGroup>
-                  {isLoggedIn ? (
-                    <SignInButton size="large" to={absoluteRoutes.studio.newChannel()}>
-                      Create channel
-                    </SignInButton>
-                  ) : (
-                    <SignInButton size="large" onClick={() => signIn(undefined, openSignInDialog)}>
-                      Set up membership
-                    </SignInButton>
-                  )}
-                  <TextButton
-                    variant="tertiary"
-                    icon={<SvgActionPlay />}
-                    size="large"
-                    to={absoluteRoutes.viewer.index()}
-                  >
-                    Go to {atlasConfig.general.appName}
-                  </TextButton>
-                </ButtonGroup>
-              </ContentWrapper>
-            </HeaderGridItem>
-
-            <LinksGroupHeaderItem colSpan={{ xxs: 12, sm: 8, md: 5 }} colStart={{ sm: 3, md: 1 }} rowStart={2}>
-              <Text as="span" variant="t100" color="inherit" margin={{ top: 2 }}>
-                <StyledAnchor href={atlasConfig.general.joystreamLandingPageUrl} target="_blank">
-                  Powered by
-                  <StyledSvgJoystreamLogoFull />
-                </StyledAnchor>
-              </Text>
-              <Text as="span" variant="t100" color="inherit" margin={{ top: 2, left: 2, right: 2 }}>
-                •
-              </Text>
-              <StyledLink to={absoluteRoutes.legal.termsOfService()}>
-                <Text as="span" variant="t100" color="inherit" margin={{ top: 2 }}>
-                  Terms of service
-                </Text>
-              </StyledLink>
-              <Text as="span" variant="t100" color="inherit" margin={{ top: 2, left: 2, right: 2 }}>
-                •
-              </Text>
-              <StyledLink to={absoluteRoutes.legal.copyright()}>
-                <Text as="span" variant="t100" color="inherit" margin={{ top: 2 }}>
-                  Copyright policy
-                </Text>
-              </StyledLink>
-            </LinksGroupHeaderItem>
-            <ImageGridItem
-              colSpan={{ xxs: 12, sm: 8, md: 6 }}
-              colStart={{ sm: 3, md: 6 }}
-              rowStart={{ base: 3, md: 1 }}
-              rowSpan={{ md: 2 }}
-            >
-              {/* be aware that we reverse the order of image on md */}
-              <IllustrationWrapper
-                topMargin={!mdMatch ? undefined : 6}
-                data-aos="fade-left"
-                data-aos-easing="atlas-easing"
-              >
-                <StyledIllustration
-                  srcSet={isLoggedIn ? `${myUploads1x} 1x, ${myUploads2x} 2x` : `${myVideos1x} 1x, ${myVideos2x} 2x`}
-                  width="720"
-                  height="450"
-                  alt={
-                    isLoggedIn
-                      ? `${atlasConfig.general.appName} studio downloads dashboard`
-                      : `${atlasConfig.general.appName} studio my videos dashboard`
-                  }
-                />
-              </IllustrationWrapper>
-              <IllustrationWrapper
-                moveToTheLeft
-                topMargin={mdMatch ? undefined : 6}
-                data-aos={mdMatch ? LEFT_ANIMATION_MD : 'fade-right'}
-                data-aos-easing="atlas-easing"
-              >
-                <StyledIllustration
-                  srcSet={
-                    isLoggedIn
-                      ? `${nftWorkspace1x} 1x, ${nftWorkspace2x} 2x`
-                      : `${videoWorkspace1x} 1x, ${videoWorkspace2x} 2x`
-                  }
-                  width="720"
-                  height="450"
-                  alt={
-                    isLoggedIn
-                      ? `${atlasConfig.general.appName} studio nft workspace form`
-                      : `${atlasConfig.general.appName} studio video workspace form`
-                  }
-                  stickToTheRightEdge={!mdMatch}
-                />
-              </IllustrationWrapper>
-            </ImageGridItem>
-          </ContentLayoutGrid>
-        </StyledContainer>
-      </OverflowHiddenContainer>
-    </>
+    <WelcomeView
+      headTagTitle="Studio"
+      pageTitle={`${atlasConfig.general.appName} studio`}
+      title={
+        <Text
+          as="h1"
+          variant={mdMatch ? 'h700' : 'h600'}
+          color={isLoggedIn || !atlasConfig.general.appContentFocus ? undefined : 'colorTextMuted'}
+          margin={{ top: 2 }}
+        >
+          {isLoggedIn ? (
+            'Ready to create your channel?'
+          ) : atlasConfig.general.appContentFocus ? (
+            <>
+              Your{' '}
+              <InlineText variant={mdMatch ? 'h700' : 'h600'} as="p">
+                {atlasConfig.general.appContentFocus}
+              </InlineText>{' '}
+              creator journey starts here
+            </>
+          ) : (
+            'Your creator journey starts here'
+          )}
+        </Text>
+      }
+      subtitle={
+        <SubTitle
+          as="span"
+          variant="t300"
+          color={isLoggedIn || !atlasConfig.general.appContentFocus ? undefined : 'colorTextMuted'}
+        >
+          {isLoggedIn ? (
+            'Create a channel to upload videos, sell NFTs, make playlists (coming soon), and more!'
+          ) : atlasConfig.general.appContentFocus ? (
+            <>
+              Welcome to {atlasConfig.general.appName}, a video platform focused on{' '}
+              <InlineText as="p" variant="t300">
+                {atlasConfig.general.appContentFocus}
+              </InlineText>{' '}
+              content. To create a channel, first set up a free Joystream membership with our simple step-by-step
+              wizard.
+            </>
+          ) : (
+            'To create a channel, first set up a free Joystream membership with our simple step-by-step wizard.'
+          )}
+        </SubTitle>
+      }
+      specificComponent={
+        <StepsContainer>
+          <LeftStep
+            title="Set up membership"
+            number={1}
+            variant={isLoggedIn ? 'completed' : 'current'}
+            showOtherStepsOnMobile
+          />
+          <StyledSvgActionChevronR />
+          <RightStep
+            title="Create channel"
+            number={2}
+            variant={isLoggedIn ? 'current' : 'future'}
+            showOtherStepsOnMobile
+          />
+        </StepsContainer>
+      }
+      buttons={[
+        isLoggedIn
+          ? { size: 'large', to: absoluteRoutes.studio.newChannel(), children: 'Create channel' }
+          : { size: 'large', onClick: () => signIn(undefined, openSignInDialog), children: 'Set up membership' },
+        {
+          size: 'large',
+          variant: 'tertiary',
+          to: absoluteRoutes.viewer.index(),
+          _textOnly: true,
+          children: `Go to ${atlasConfig.general.appName}`,
+          icon: <SvgActionPlay />,
+        },
+      ]}
+      type="studio"
+      showLegalLinks
+    />
   )
 }

+ 2 - 18
yarn.lock

@@ -3567,7 +3567,7 @@ __metadata:
     "@joystream/js": ^1.4.0
     "@joystream/metadata-protobuf": 2.8.1
     "@joystream/prettier-config": ^1.0.0
-    "@joystream/types": 0.20.5
+    "@joystream/types": 2.1.0
     "@livesession/sdk": ^1.1.4
     "@loadable/component": ^5.15.2
     "@lottiefiles/react-lottie-player": ^3.5.0
@@ -3707,23 +3707,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@joystream/types@npm:0.20.5":
-  version: 0.20.5
-  resolution: "@joystream/types@npm:0.20.5"
-  dependencies:
-    "@polkadot/api": 8.9.1
-    "@polkadot/keyring": 9.5.1
-    "@polkadot/types": 8.9.1
-    "@types/lodash": ^4.14.157
-    "@types/vfile": ^4.0.0
-    ajv: ^6.11.0
-    lodash: ^4.17.15
-    moment: ^2.24.0
-  checksum: a3e310f358d7aa6d51a39d639f6ceec5052959abd38bc3ef34339a3c411ea91647d4fe50d09361d2aecd7d254da5d90b774e44dc67656cf1a5cd72aa89b0ba7b
-  languageName: node
-  linkType: hard
-
-"@joystream/types@npm:^2.0.0":
+"@joystream/types@npm:2.1.0, @joystream/types@npm:^2.0.0":
   version: 2.1.0
   resolution: "@joystream/types@npm:2.1.0"
   dependencies:

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.