-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathschema.graphql
More file actions
208 lines (145 loc) · 6.51 KB
/
schema.graphql
File metadata and controls
208 lines (145 loc) · 6.51 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
type Wallet @entity {
"Unique identifier of the MultiSig wallet (contract Address)"
id : ID!
"Indication of the Address who created the contract"
creator : Bytes!
"Network where the Multisig wallet is deployed (plain text: rinkeby, mainnet, etc.)"
network : String!
"Timestamp when the Multisig wallet was deployed"
stamp : BigInt!
"Block number when the Multisig wallet was deployed"
block : BigInt!
"Transaction hash when the Multisig wallet was deployed"
hash : Bytes!
"Factory Address which deployed the Multisig wallet"
factory : Bytes!
"Ether balance of the Multisig wallet (in WEI 10^18 ETH)"
balanceEther : BigInt!
"List of past and pending transactions linked to the Multisig wallet "
transactions : [Transaction!]!
"List of owner Addresses of the Multisig wallet"
owners : [Bytes!]!
"Number of confirmation required to execute a transaction out of the Multisig wallet "
required : BigInt!
"Daily Limit (in WEI) - Maximum amount of ether than can be sent out of the Multisig wallet by an owner without requiring x confirmations"
dailyLimit : BigInt
"Next ID (transaction-id) for outgoing transactions - represents getTransactionCount(pending:true, executed:true)"
nextId : BigInt!
"Amount of ETH available for the Multisig wallet on GSN"
balanceGSN : BigInt!
}
type Transaction @entity {
"Unique identifier of the Multisig transaction (can be `sha3(multisig-addr, transaction-id)` for outgoing tx - otherwise `sha3(multisig-addr, tx-hash)` for incoming transactions and direct transfers)"
id : ID!
"Timestamp when the transaction was executed (past) or submitted (pending) or deposit event"
stamp : BigInt!
"Transaction hash of the execution (past) or submission (pending) or deposit event"
hash : Bytes!
"Block mumber of the execution (past) or submission (pending) or deposit event"
block : BigInt!
"Log Index of the execution or deposit event"
logIndex : BigInt
"Transaction ID used to keep track of the outgoing transactions within the Multisig wallet (only outgoing transactions)"
transactionId : BigInt
"Ether amount (in WEI)"
amount : BigInt
#"Token (only ETHER)"
#token : Token
"Creator (or submittor) Address of the transaction"
creator : Bytes
"Counter-party Address (sender or receiver)"
counterparty : Bytes
"Status of the transaction"
status : TransactionStatus
"List of actions (CONFIRM, REVOKE) executed against the transaction (only for outgoing transactions)"
timeline : [Action!]
"Type of the transaction"
type : TransactionType
"Sub-Type of the transaction (only if applicable)"
subType : TransactionSubType
"Ether Amount (in WEI) included in the Multisig transaction - transfered from the Multisig wallet when the transaction is executed (only for outgoing transactions) - equals to amount after execution"
value : BigInt
"Destination of the transaction (only for outgoing transactions) - equals to counterParty after execution"
destination : Bytes
"Data of the transaction - smart contract input data bytecode (only for outgoing transactions) - see https://lab.miguelmota.com/ethereum-input-data-decoder/example/"
data : Bytes
"Current confirmation count"
confirmationCount : BigInt
"Optional field to store extra information of type BigInt"
extraBigInt1 : BigInt
"Optional field to store extra information of type BigInt"
extraBigInt2 : BigInt
"Optional field to store extra information of type Bytes"
extraBytes1 : Bytes
"Optional field to store extra information of type Bytes"
extraBytes2 : Bytes
"Optional field to store extra information of type String"
extraString1 : String
"Optional field to store extra information of type String"
extraString2 : String
"Wallet parent"
wallet : Wallet! @derivedFrom(field: "transactions")
}
enum TransactionStatus {
"Transaction hasn't been executed yet and is waiting for confirmation or revokation from an owner to be executed"
PENDING
"Transaction was executed successfully"
EXECUTED
"Transaction failed during the execution "
FAILED
"Transaction was cancelled"
CANCELLED
}
enum TransactionType {
"Incoming or outgoing transaction of value only"
VALUE
"Outgoing transaction of data and optionally value"
CONTRACT
"Transaction against the Multisig Wallet in order to change the settings (e.g add/remove owner, change daily limit)"
ADMIN
}
enum TransactionSubType {
ADMIN_ADD_OWNER
ADMIN_REMOVE_OWNER
ADMIN_CHANGE_REQUIREMENT
ADMIN_CHANGE_DAILY_LIMIT
ADMIN_ALLOWANCE
VALUE_ETHER_DEBIT
VALUE_ETHER_CREDIT
VALUE_ERC20_DEBIT
VALUE_ERC20_CREDIT
}
type Action @entity {
"Unique identifier of the Action `sha3(multisig-addr, tx-hash, transaction-id)"
id : ID!
"Timestamp when the action was sent"
stamp : BigInt
"Transaction hash when the action was sent"
hash : Bytes
"Transaction ID associated to the action"
transactionId : BigInt
"Type of the action (CONFIRM or REVOKE)"
type : ActionsType
"Boolean flag to express if the action results of a submission"
isSubmission : Boolean!
"Boolean flag to express if the action results of a conformation"
isConfirmation : Boolean!
"Boolean flag to express if the action results of an execution"
isExecution : Boolean!
"Boolean flag to express if the action results of a failed execution"
isExecutionFailed : Boolean!
"Boolean flag to express if the action results of a revokation"
isRevokation : Boolean!
"Sender Address of the action"
sender : Bytes
"Transaction parent"
transaction : Transaction! @derivedFrom(field: "timeline")
}
enum ActionsType {
"action of confirmation "
CONFIRM
"action of revokation (cancel transaction)"
REVOKE
"action of execution"
EXECUTE
}