-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschema.graphql
More file actions
67 lines (61 loc) · 1.24 KB
/
schema.graphql
File metadata and controls
67 lines (61 loc) · 1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# Contract address as ID
type Ethunes @entity {
id: ID!
name: String
totalSupply: BigInt
}
# LicenseId (ERC11555 tokenId) as ID
type License @entity {
id: ID!
song: Song
categoryId: BigInt
purposeId: BigInt
totalSupply: BigInt!
}
# SongId (ERC721 tokenId) as ID
type Song @entity {
id: ID!
creator: Account!
owner: Account!
licenses: [License!] @derivedFrom(field: "song")
metadataUrl: String!
title: String
description: String
url: String
image: String
}
# LicenseId as ID (tracking only primary sales)
type Listing @entity {
id: ID!
license: License!
amount: BigInt
price: BigInt!
issuer: Account!
}
# TxnHash-timestamp as ID
type Activity @entity {
id: ID!
action: String!
license: License
song: Song
from: Bytes!
to: Bytes!
price: BigInt!
txnHash: String!
timestamp: BigInt!
}
# Account EOA address as ID
type Account @entity {
id: ID!
listings: [Listing!] @derivedFrom(field: "issuer")
songsCreated: [Song!] @derivedFrom(field: "creator")
songsOwned: [Song!] @derivedFrom(field: "owner")
licensesOwned: [LicensesOwnership!] @derivedFrom(field: "account")
}
# LicenseId-Account as ID
type LicensesOwnership @entity {
id: ID!
account: Account!
license: License!
quantity: BigInt!
}