mirror of
https://github.com/Instadapp/instadapp-dsa-subgraph.git
synced 2024-07-29 21:48:18 +00:00
Added connector contract data, and instaConnectors chief data
This commit is contained in:
parent
64e8fc41d1
commit
af73724a65
33
abis/Connector.json
Normal file
33
abis/Connector.json
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "connectorID",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "_type",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "_id",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "pure",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "name",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "string",
|
||||||
|
"name": "",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
}
|
||||||
|
]
|
||||||
80
abis/InstaEvent.json
Normal file
80
abis/InstaEvent.json
Normal file
|
|
@ -0,0 +1,80 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint64",
|
||||||
|
"name": "connectorType",
|
||||||
|
"type": "uint64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "uint64",
|
||||||
|
"name": "connectorID",
|
||||||
|
"type": "uint64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "uint64",
|
||||||
|
"name": "accountID",
|
||||||
|
"type": "uint64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "bytes32",
|
||||||
|
"name": "eventCode",
|
||||||
|
"type": "bytes32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "bytes",
|
||||||
|
"name": "eventData",
|
||||||
|
"type": "bytes"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "LogEvent",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "_connectorType",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "_connectorID",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "bytes32",
|
||||||
|
"name": "_eventCode",
|
||||||
|
"type": "bytes32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "bytes",
|
||||||
|
"name": "_eventData",
|
||||||
|
"type": "bytes"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "emitEvent",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "instaList",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
@ -45,10 +45,13 @@ type InstaConnector @entity {
|
||||||
"Address of the InstaConnector contract. This contract has a list of connectors tracked."
|
"Address of the InstaConnector contract. This contract has a list of connectors tracked."
|
||||||
id: ID!
|
id: ID!
|
||||||
|
|
||||||
|
chiefs: [Chief!]! @derivedFrom(field: "instaConnector")
|
||||||
|
|
||||||
connectors: [Connector!]! @derivedFrom(field: "instaConnector")
|
connectors: [Connector!]! @derivedFrom(field: "instaConnector")
|
||||||
}
|
}
|
||||||
|
|
||||||
type Connector @entity {
|
type Connector @entity {
|
||||||
|
"Connector ID includes the ID of the InstaConnector it belongs to and the internal ID of the connector"
|
||||||
id: ID!
|
id: ID!
|
||||||
|
|
||||||
isStatic: Boolean!
|
isStatic: Boolean!
|
||||||
|
|
@ -56,4 +59,20 @@ type Connector @entity {
|
||||||
isEnabled: Boolean!
|
isEnabled: Boolean!
|
||||||
|
|
||||||
instaConnector: InstaConnector!
|
instaConnector: InstaConnector!
|
||||||
|
|
||||||
|
name: String!
|
||||||
|
|
||||||
|
connectorID: BigInt!
|
||||||
|
|
||||||
|
connectorType: BigInt!
|
||||||
|
|
||||||
|
address: String!
|
||||||
|
}
|
||||||
|
|
||||||
|
type Chief @entity {
|
||||||
|
id: ID!
|
||||||
|
|
||||||
|
isActive: Boolean!
|
||||||
|
|
||||||
|
instaConnector: InstaConnector!
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,5 +11,7 @@ export {
|
||||||
export {
|
export {
|
||||||
handleLogEnableConnector,
|
handleLogEnableConnector,
|
||||||
handleLogDisableConnector,
|
handleLogDisableConnector,
|
||||||
handleLogEnableStaticConnector
|
handleLogEnableStaticConnector,
|
||||||
|
handleLogAddController,
|
||||||
|
handleLogRemoveController
|
||||||
} from "./mappings/instaConnectors";
|
} from "./mappings/instaConnectors";
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,31 @@
|
||||||
import {
|
import {
|
||||||
LogDisable,
|
LogDisable,
|
||||||
LogEnable,
|
LogEnable,
|
||||||
LogEnableStatic
|
LogEnableStatic,
|
||||||
|
LogAddController,
|
||||||
|
LogRemoveController
|
||||||
} from "../../generated/templates/InstaConnectors/InstaConnectors";
|
} from "../../generated/templates/InstaConnectors/InstaConnectors";
|
||||||
import { getOrCreateConnector } from "../utils/helpers";
|
import { Connector as ConnectorContract } from "../../generated/templates/InstaConnectors/Connector";
|
||||||
|
import { getOrCreateConnector, getOrCreateChief } from "../utils/helpers";
|
||||||
|
|
||||||
// - event: LogDisable(indexed address)
|
// - event: LogDisable(indexed address)
|
||||||
// handler: handleLogDisableConnector
|
// handler: handleLogDisableConnector
|
||||||
|
|
||||||
export function handleLogDisableConnector(event: LogDisable): void {
|
export function handleLogDisableConnector(event: LogDisable): void {
|
||||||
let connector = getOrCreateConnector(event.params.connector.toHexString())
|
let contract = ConnectorContract.bind(event.params.connector);
|
||||||
|
let connectorIDResult = contract.connectorID();
|
||||||
|
let instaConnectorAddress = event.address.toHexString();
|
||||||
|
let entityId = instaConnectorAddress
|
||||||
|
.concat("-")
|
||||||
|
.concat(connectorIDResult.value1.toString());
|
||||||
|
let connector = getOrCreateConnector(entityId);
|
||||||
|
|
||||||
connector.isEnabled = false;
|
connector.isEnabled = false;
|
||||||
connector.instaConnector = event.address.toHexString();
|
connector.instaConnector = event.address.toHexString();
|
||||||
|
connector.name = contract.name();
|
||||||
|
connector.address = event.params.connector.toHexString();
|
||||||
|
connector.connectorType = connectorIDResult.value0;
|
||||||
|
connector.connectorID = connectorIDResult.value1;
|
||||||
|
|
||||||
connector.save();
|
connector.save();
|
||||||
}
|
}
|
||||||
|
|
@ -21,11 +34,21 @@ export function handleLogDisableConnector(event: LogDisable): void {
|
||||||
// handler: handleLogEnableConnector
|
// handler: handleLogEnableConnector
|
||||||
|
|
||||||
export function handleLogEnableConnector(event: LogEnable): void {
|
export function handleLogEnableConnector(event: LogEnable): void {
|
||||||
let connector = getOrCreateConnector(event.params.connector.toHexString())
|
let contract = ConnectorContract.bind(event.params.connector);
|
||||||
|
let connectorIDResult = contract.connectorID();
|
||||||
|
let instaConnectorAddress = event.address.toHexString();
|
||||||
|
let entityId = instaConnectorAddress
|
||||||
|
.concat("-")
|
||||||
|
.concat(connectorIDResult.value1.toString());
|
||||||
|
let connector = getOrCreateConnector(entityId);
|
||||||
|
|
||||||
connector.isEnabled = true;
|
connector.isEnabled = true;
|
||||||
connector.isStatic = false;
|
connector.isStatic = false;
|
||||||
connector.instaConnector = event.address.toHexString();
|
connector.instaConnector = event.address.toHexString();
|
||||||
|
connector.name = contract.name();
|
||||||
|
connector.address = event.params.connector.toHexString();
|
||||||
|
connector.connectorType = connectorIDResult.value0;
|
||||||
|
connector.connectorID = connectorIDResult.value1;
|
||||||
|
|
||||||
connector.save();
|
connector.save();
|
||||||
}
|
}
|
||||||
|
|
@ -34,11 +57,45 @@ export function handleLogEnableConnector(event: LogEnable): void {
|
||||||
// handler: handleLogEnableStaticConnector
|
// handler: handleLogEnableStaticConnector
|
||||||
|
|
||||||
export function handleLogEnableStaticConnector(event: LogEnableStatic): void {
|
export function handleLogEnableStaticConnector(event: LogEnableStatic): void {
|
||||||
let connector = getOrCreateConnector(event.params.connector.toHexString())
|
let contract = ConnectorContract.bind(event.params.connector);
|
||||||
|
let connectorIDResult = contract.connectorID();
|
||||||
|
let instaConnectorAddress = event.address.toHexString();
|
||||||
|
let entityId = instaConnectorAddress
|
||||||
|
.concat("-")
|
||||||
|
.concat(connectorIDResult.value1.toString());
|
||||||
|
let connector = getOrCreateConnector(entityId);
|
||||||
|
|
||||||
connector.isEnabled = true;
|
connector.isEnabled = true;
|
||||||
connector.isStatic = true;
|
connector.isStatic = true;
|
||||||
connector.instaConnector = event.address.toHexString();
|
connector.instaConnector = instaConnectorAddress;
|
||||||
|
connector.name = contract.name();
|
||||||
|
connector.address = event.params.connector.toHexString();
|
||||||
|
connector.connectorType = connectorIDResult.value0;
|
||||||
|
connector.connectorID = connectorIDResult.value1;
|
||||||
|
|
||||||
connector.save();
|
connector.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// - event: LogAddController(indexed address)
|
||||||
|
// handler: handleLogAddController
|
||||||
|
|
||||||
|
export function handleLogAddController(event: LogAddController): void {
|
||||||
|
let chief = getOrCreateChief(event.params.addr.toHexString())
|
||||||
|
|
||||||
|
chief.isActive = true;
|
||||||
|
chief.instaConnector = event.address.toHexString();
|
||||||
|
|
||||||
|
chief.save()
|
||||||
|
}
|
||||||
|
|
||||||
|
// - event: LogRemoveController(indexed address)
|
||||||
|
// handler: handleLogRemoveController
|
||||||
|
|
||||||
|
export function handleLogRemoveController(event: LogRemoveController): void {
|
||||||
|
let chief = getOrCreateChief(event.params.addr.toHexString())
|
||||||
|
|
||||||
|
chief.isActive = false;
|
||||||
|
chief.instaConnector = event.address.toHexString();
|
||||||
|
|
||||||
|
chief.save()
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,5 +7,6 @@ export {
|
||||||
|
|
||||||
export {
|
export {
|
||||||
getOrCreateConnector,
|
getOrCreateConnector,
|
||||||
getOrCreateInstaConnector
|
getOrCreateInstaConnector,
|
||||||
|
getOrCreateChief
|
||||||
} from "./instaConnectors";
|
} from "./instaConnectors";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { InstaConnectors as ConnectorsTemplate } from "../../../generated/templates";
|
import { InstaConnectors as ConnectorsTemplate } from "../../../generated/templates";
|
||||||
import { InstaConnector, Connector } from "../../../generated/schema";
|
import { InstaConnector, Connector, Chief } from "../../../generated/schema";
|
||||||
import { Address } from "@graphprotocol/graph-ts";
|
import { Address } from "@graphprotocol/graph-ts";
|
||||||
|
|
||||||
export function getOrCreateInstaConnector(
|
export function getOrCreateInstaConnector(
|
||||||
|
|
@ -30,3 +30,16 @@ export function getOrCreateConnector(
|
||||||
|
|
||||||
return connector as Connector;
|
return connector as Connector;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getOrCreateChief(
|
||||||
|
id: String,
|
||||||
|
createIfNotFound: boolean = true
|
||||||
|
): Chief {
|
||||||
|
let chief = Chief.load(id);
|
||||||
|
|
||||||
|
if (chief == null && createIfNotFound) {
|
||||||
|
chief = new Chief(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
return chief as Chief;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,8 @@ templates:
|
||||||
abis:
|
abis:
|
||||||
- name: InstaConnectors
|
- name: InstaConnectors
|
||||||
file: ./abis/InstaConnectors.json
|
file: ./abis/InstaConnectors.json
|
||||||
|
- name: Connector
|
||||||
|
file: ./abis/Connector.json
|
||||||
eventHandlers:
|
eventHandlers:
|
||||||
- event: LogDisable(indexed address)
|
- event: LogDisable(indexed address)
|
||||||
handler: handleLogDisableConnector
|
handler: handleLogDisableConnector
|
||||||
|
|
@ -62,6 +64,10 @@ templates:
|
||||||
handler: handleLogEnableConnector
|
handler: handleLogEnableConnector
|
||||||
- event: LogEnableStatic(indexed address)
|
- event: LogEnableStatic(indexed address)
|
||||||
handler: handleLogEnableStaticConnector
|
handler: handleLogEnableStaticConnector
|
||||||
|
- event: LogAddController(indexed address)
|
||||||
|
handler: handleLogAddController
|
||||||
|
- event: LogRemoveController(indexed address)
|
||||||
|
handler: handleLogRemoveController
|
||||||
# - LogAddController(indexed address)
|
# - LogAddController(indexed address)
|
||||||
# - LogDisable(indexed address)
|
# - LogDisable(indexed address)
|
||||||
# - LogEnable(indexed address)
|
# - LogEnable(indexed address)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user