mirror of
https://github.com/oceanprotocol/ocean-subgraph.git
synced 2024-12-02 05:57:29 +01:00
parent
6148fd260a
commit
2839649b28
File diff suppressed because one or more lines are too long
@ -3,7 +3,7 @@ services:
|
||||
graph-node:
|
||||
image: graphprotocol/graph-node:v0.25.0
|
||||
ports:
|
||||
- '8000:8000'
|
||||
- '9000:8000'
|
||||
- '8001:8001'
|
||||
- '8020:8020'
|
||||
- '8030:8030'
|
||||
|
@ -9,7 +9,7 @@ type Token @entity {
|
||||
isDatatoken: Boolean!
|
||||
|
||||
"address of ERC721 that owns the token, valid only for datatokens"
|
||||
owner: String
|
||||
nft: Nft
|
||||
|
||||
"array of addresses with minter role, can be user wallet address, dispenser etc."
|
||||
minter: [User!]
|
||||
@ -293,7 +293,6 @@ type FixedRateExchange @entity {
|
||||
totalSwapValue: BigDecimal!
|
||||
"address that is allowed to swap tokens"
|
||||
allowedSwapper: String
|
||||
supply: BigInt!
|
||||
"if the owner allowes the fre to mint"
|
||||
withMint: Boolean
|
||||
"if the fre has the minter role on the datatoken"
|
||||
@ -338,11 +337,12 @@ type FixedRateExchangeSwap @entity {
|
||||
|
||||
|
||||
type Dispenser @entity {
|
||||
"datatoken address"
|
||||
"token address"
|
||||
id: ID!
|
||||
active: Boolean!
|
||||
owner: User!
|
||||
datatoken: Token!
|
||||
active: Boolean!
|
||||
"if using the enterprise template the owner will always be the erc721 factory, for normal template it will a user"
|
||||
owner: String
|
||||
token: Token!
|
||||
|
||||
allowedSwapper: String
|
||||
isMinter: Boolean
|
||||
@ -351,7 +351,12 @@ type Dispenser @entity {
|
||||
"max balance of requester. If the balance is higher, the dispense is rejected"
|
||||
maxBalance: BigDecimal!
|
||||
"how many tokens are left"
|
||||
balance: BigDecimal!
|
||||
balance: BigDecimal!
|
||||
|
||||
|
||||
block: Int!
|
||||
createdTimestamp: Int!
|
||||
tx: String!
|
||||
|
||||
dispenses: [DispenserTransaction!] @derivedFrom(field: "dispenser")
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { log } from '@graphprotocol/graph-ts'
|
||||
import {
|
||||
DispenserActivated,
|
||||
DispenserAllowedSwapperChanged,
|
||||
@ -6,13 +7,34 @@ import {
|
||||
TokensDispensed
|
||||
} from '../@types/Dispenser/Dispenser'
|
||||
import { DispenserCreated } from '../@types/ERC721Factory/ERC721Factory'
|
||||
import { DispenserTransaction } from '../@types/schema'
|
||||
import { Dispenser, DispenserTransaction } from '../@types/schema'
|
||||
import { decimal } from './utils/constants'
|
||||
import { createDispenser, getDispenser } from './utils/dispenserUtils'
|
||||
import { getDispenser } from './utils/dispenserUtils'
|
||||
import { weiToDecimal } from './utils/generic'
|
||||
import { getToken } from './utils/tokenUtils'
|
||||
import { getUser } from './utils/userUtils'
|
||||
|
||||
export function handleNewDispenser(event: DispenserCreated): void {
|
||||
createDispenser(event.params.datatokenAddress.toHex())
|
||||
const dispenser = new Dispenser(event.params.datatokenAddress.toHex())
|
||||
const token = getToken(event.params.datatokenAddress.toHex())
|
||||
dispenser.token = token.id
|
||||
|
||||
dispenser.owner = event.params.owner.toHexString()
|
||||
dispenser.maxBalance = weiToDecimal(
|
||||
event.params.maxBalance.toBigDecimal(),
|
||||
token.decimals
|
||||
)
|
||||
dispenser.maxTokens = weiToDecimal(
|
||||
event.params.maxTokens.toBigDecimal(),
|
||||
token.decimals
|
||||
)
|
||||
dispenser.active = true
|
||||
|
||||
dispenser.allowedSwapper = event.params.allowedSwapper.toHex()
|
||||
dispenser.createdTimestamp = event.block.timestamp.toI32()
|
||||
dispenser.tx = event.transaction.hash.toHex()
|
||||
dispenser.block = event.block.number.toI32()
|
||||
dispenser.save()
|
||||
}
|
||||
|
||||
export function handleActivate(event: DispenserActivated): void {
|
||||
|
@ -1,10 +1,13 @@
|
||||
import { log } from '@graphprotocol/graph-ts'
|
||||
import { NFTCreated, TokenCreated } from '../@types/ERC721Factory/ERC721Factory'
|
||||
import { Nft, Token } from '../@types/schema'
|
||||
import { decimal, integer } from './utils/constants'
|
||||
import { weiToDecimal } from './utils/generic'
|
||||
import { getGlobalStats } from './utils/globalUtils'
|
||||
import { getUser } from './utils/userUtils'
|
||||
|
||||
export function handleNftCreated(event: NFTCreated): void {
|
||||
log.warning('handleNftCreated is starting', [])
|
||||
const nft = new Nft(event.params.newTokenAddress.toHexString())
|
||||
|
||||
const user = getUser(event.params.admin.toHexString())
|
||||
@ -24,6 +27,10 @@ export function handleNftCreated(event: NFTCreated): void {
|
||||
}
|
||||
|
||||
export function handleNewToken(event: TokenCreated): void {
|
||||
log.warning('handleNewToken {} {}', [
|
||||
event.transaction.from.toHexString(),
|
||||
event.address.toHexString()
|
||||
])
|
||||
const token = new Token(event.params.newTokenAddress.toHexString())
|
||||
token.isDatatoken = true
|
||||
token.address = event.params.newTokenAddress.toHexString()
|
||||
@ -31,9 +38,13 @@ export function handleNewToken(event: TokenCreated): void {
|
||||
token.tx = event.transaction.hash.toHex()
|
||||
token.block = event.block.number.toI32()
|
||||
|
||||
token.nft = event.params.creator.toHexString()
|
||||
|
||||
token.name = event.params.name
|
||||
token.symbol = event.params.symbol
|
||||
token.decimals = 18
|
||||
token.supply = decimal.ZERO
|
||||
token.cap = weiToDecimal(event.params.cap.toBigDecimal(), 18)
|
||||
|
||||
const globalStats = getGlobalStats()
|
||||
globalStats.datatokenCount = globalStats.datatokenCount.plus(integer.ONE)
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { BigInt } from '@graphprotocol/graph-ts'
|
||||
import { BigInt, log } from '@graphprotocol/graph-ts'
|
||||
import {
|
||||
ExchangeActivated,
|
||||
ExchangeAllowedSwapperChanged,
|
||||
@ -19,20 +19,32 @@ import { getToken } from './utils/tokenUtils'
|
||||
import { getUser } from './utils/userUtils'
|
||||
|
||||
export function handleExchangeCreated(event: ExchangeCreated): void {
|
||||
log.warning(
|
||||
'handleExchangeCreated baseToken {} ; dataToken {} ; exchangeOwner {} ; fixedRate {}',
|
||||
[
|
||||
event.params.baseToken.toHexString(),
|
||||
event.params.dataToken.toHexString(),
|
||||
event.params.exchangeOwner.toHexString(),
|
||||
event.params.fixedRate.toBigDecimal().toString()
|
||||
]
|
||||
)
|
||||
const fixedRateExchange = new FixedRateExchange(
|
||||
event.params.exchangeId.toHexString()
|
||||
)
|
||||
const user = getUser(event.params.exchangeOwner.toHexString())
|
||||
fixedRateExchange.owner = user.id
|
||||
fixedRateExchange.datatoken = event.params.dataToken.toHexString()
|
||||
fixedRateExchange.baseToken = event.params.baseToken.toHexString()
|
||||
// fixedRateExchange.baseTokenSymbol = getTokenSymbol(event.params.baseToken)
|
||||
fixedRateExchange.active = false
|
||||
fixedRateExchange.datatoken = getToken(
|
||||
event.params.dataToken.toHexString()
|
||||
).id
|
||||
fixedRateExchange.baseToken = getToken(
|
||||
event.params.baseToken.toHexString()
|
||||
).id
|
||||
|
||||
fixedRateExchange.price = weiToDecimal(
|
||||
event.params.fixedRate.toBigDecimal(),
|
||||
BigInt.fromI32(18).toI32()
|
||||
)
|
||||
fixedRateExchange.active = false
|
||||
fixedRateExchange.price = event.params.fixedRate.toBigDecimal()
|
||||
fixedRateExchange.createdTimestamp = event.block.timestamp.toI32()
|
||||
fixedRateExchange.tx = event.transaction.hash.toHex()
|
||||
fixedRateExchange.block = event.block.number.toI32()
|
||||
fixedRateExchange.save()
|
||||
}
|
||||
|
||||
@ -145,13 +157,6 @@ export function handleSwap(event: Swapped): void {
|
||||
event.params.exchangeId.toHex()
|
||||
)
|
||||
|
||||
// reduce supply if the fixed rate is not minting tokens
|
||||
if (fixedRateExchange.isMinter || fixedRateExchange.withMint) {
|
||||
fixedRateExchange.supply = fixedRateExchange.supply.minus(
|
||||
event.params.dataTokenSwappedAmount
|
||||
)
|
||||
}
|
||||
|
||||
const swap = new FixedRateExchangeSwap(
|
||||
getUpdateOrSwapId(
|
||||
event.transaction.hash.toHex(),
|
||||
|
@ -3,7 +3,7 @@ import { getToken } from './tokenUtils'
|
||||
|
||||
export function createDispenser(address: string): Dispenser {
|
||||
const dispenser = new Dispenser(address)
|
||||
dispenser.datatoken = getToken(address).id
|
||||
dispenser.token = getToken(address).id
|
||||
dispenser.save()
|
||||
return dispenser
|
||||
}
|
||||
|
@ -1,10 +1,11 @@
|
||||
import { Address } from '@graphprotocol/graph-ts'
|
||||
import { Address, log } from '@graphprotocol/graph-ts'
|
||||
import { Token } from '../../@types/schema'
|
||||
import { ERC20 } from '../../@types/templates/ERC20Template/ERC20'
|
||||
import { integer } from './constants'
|
||||
import { getGlobalStats } from './globalUtils'
|
||||
|
||||
export function createToken(address: string): Token {
|
||||
log.debug('started creating token with address: {}', [address])
|
||||
const token = new Token(address)
|
||||
const contract = ERC20.bind(Address.fromString(address))
|
||||
token.name = contract.name()
|
||||
|
@ -8,9 +8,9 @@ dataSources:
|
||||
name: ERC721Factory
|
||||
network: rinkeby
|
||||
source:
|
||||
address: '0xa15024b732A8f2146423D14209eFd074e61964F3'
|
||||
address: '0xe4B39C90355899DB8f625D879B44Fa9C5Cdde550'
|
||||
abi: ERC721Factory
|
||||
startBlock: 9759283
|
||||
startBlock: 9984045
|
||||
mapping:
|
||||
kind: ethereum/events
|
||||
apiVersion: 0.0.5
|
||||
@ -30,9 +30,9 @@ dataSources:
|
||||
name: FixedRateExchange
|
||||
network: rinkeby
|
||||
source:
|
||||
address: '0x235C9bE4D23dCbd16c1Bf89ec839cb7C452FD9e9'
|
||||
address: '0x7084f7353bB7cfc92A65e7d23987Cb5D1A3Fb9b2'
|
||||
abi: FixedRateExchange
|
||||
startBlock: 9759283
|
||||
startBlock: 9984045
|
||||
mapping:
|
||||
kind: ethereum/events
|
||||
apiVersion: 0.0.5
|
||||
@ -43,6 +43,8 @@ dataSources:
|
||||
abis:
|
||||
- name: FixedRateExchange
|
||||
file: ./abis/FixedRateExchange.json
|
||||
- name: ERC20
|
||||
file: ./abis/ERC20.json
|
||||
eventHandlers:
|
||||
- event: ExchangeCreated(indexed bytes32,indexed address,indexed address,address,uint256)
|
||||
handler: handleExchangeCreated
|
||||
@ -62,9 +64,9 @@ dataSources:
|
||||
name: Dispenser
|
||||
network: rinkeby
|
||||
source:
|
||||
address: '0x5FFE6649C7562F3bee1ca114c7c3316BF4B45b50'
|
||||
address: '0xa8fFDd525835795C940370FB816f82a5F7F5F860'
|
||||
abi: Dispenser
|
||||
startBlock: 9759283
|
||||
startBlock: 9984045
|
||||
mapping:
|
||||
kind: ethereum/events
|
||||
apiVersion: 0.0.5
|
||||
@ -192,6 +194,4 @@ templates:
|
||||
- event: MetadataState(indexed address,uint8,uint256,uint256)
|
||||
handler: handleState
|
||||
- event: TokenURIUpdate(indexed address,string,uint256,uint256,uint256)
|
||||
handler: handleTokenUriUpdate
|
||||
features:
|
||||
- nonFatalErrors
|
||||
handler: handleTokenUriUpdate
|
@ -193,5 +193,3 @@ templates:
|
||||
handler: handleState
|
||||
- event: TokenURIUpdate(indexed address,string,uint256,uint256,uint256)
|
||||
handler: handleTokenUriUpdate
|
||||
features:
|
||||
- nonFatalErrors
|
||||
|
Loading…
Reference in New Issue
Block a user