mirror of
				https://github.com/Instadapp/compound-dsa-managers.git
				synced 2024-07-29 21:48:19 +00:00 
			
		
		
		
	updated to call handlers
This commit is contained in:
		
							parent
							
								
									45b01d593c
								
							
						
					
					
						commit
						b7b990a703
					
				|  | @ -31,8 +31,6 @@ type TransactionData @entity { | |||
|   id: ID! | ||||
|   # transaction index | ||||
|   txnIndex: BigInt! | ||||
|   # transaction log index | ||||
|   txnLogIndex: BigInt! | ||||
|   # from | ||||
|   from: Bytes! | ||||
|   # to | ||||
|  |  | |||
|  | @ -1,38 +1,86 @@ | |||
| import { | ||||
|   cUSDCv3, | ||||
|   Approval | ||||
| } from "../generated/cUSDCv3/cUSDCv3" | ||||
| import { createOrLoadManager, createOrLoadOwner, createOrLoadTransaction, isDSA, ZERO } from "./utils"; | ||||
|   Approval, | ||||
|   AllowCall, | ||||
|   AllowBySigCall, | ||||
| } from "../generated/cUSDCv3/cUSDCv3"; | ||||
| import { | ||||
|   createOrLoadManager, | ||||
|   createOrLoadOwner, | ||||
|   createOrLoadTransaction, | ||||
|   isDSA, | ||||
|   ZERO, | ||||
| } from "./utils"; | ||||
| 
 | ||||
| export function handleManagerToggled(event: Approval): void { | ||||
|   let ownerID = event.params.owner.toHexString() + "#" + event.address.toHexString(); | ||||
|   let managerID = event.params.spender.toHexString() + "#" + event.params.owner.toHexString() + "#" + event.address.toHexString(); | ||||
|   let transactionID = event.transaction.hash.toHexString() +  "#" + event.logIndex.toString(); | ||||
| export function handleManagerToggledByAllow(call: AllowCall): void { | ||||
|   let ownerID = | ||||
|     call.transaction.from.toHexString() + "#" + call.to.toHexString(); | ||||
|   let managerID = call.inputs.manager.toHexString() + "#" + ownerID; | ||||
|   let transactionID = | ||||
|     call.transaction.hash.toHexString() + | ||||
|     "#" + | ||||
|     call.transaction.index.toString(); | ||||
| 
 | ||||
|   let transactionData = createOrLoadTransaction(transactionID); | ||||
|   transactionData.txnIndex = event.transaction.index; | ||||
|   transactionData.txnLogIndex = event.transactionLogIndex; | ||||
|   transactionData.from = event.transaction.from; | ||||
|   transactionData.to = event.transaction.to; | ||||
|   transactionData.input = event.transaction.input; | ||||
|   transactionData.blockNumber = event.block.number; | ||||
|   transactionData.timestamp = event.block.timestamp; | ||||
|   transactionData.gasLimit = event.block.gasLimit; | ||||
|   transactionData.blockGasUsed = event.block.gasUsed; | ||||
|   transactionData.gasPrice = event.transaction.gasPrice; | ||||
|   transactionData.value = event.transaction.value; | ||||
|   transactionData.txnIndex = call.transaction.index; | ||||
|   transactionData.from = call.transaction.from; | ||||
|   transactionData.to = call.transaction.to; | ||||
|   transactionData.input = call.transaction.input; | ||||
|   transactionData.blockNumber = call.block.number; | ||||
|   transactionData.timestamp = call.block.timestamp; | ||||
|   transactionData.gasLimit = call.block.gasLimit; | ||||
|   transactionData.blockGasUsed = call.block.gasUsed; | ||||
|   transactionData.gasPrice = call.transaction.gasPrice; | ||||
|   transactionData.value = call.transaction.value; | ||||
| 
 | ||||
|   let manager = createOrLoadManager(managerID); | ||||
|   manager.address = event.params.spender; | ||||
|   manager.isAllowed = event.params.amount == ZERO ? false : true; | ||||
|   manager.address = call.inputs.manager; | ||||
|   manager.isAllowed = call.inputs.isAllowed_; | ||||
|   manager.owner = ownerID; | ||||
|   manager.market = event.address; | ||||
|   manager.isDSA = isDSA(event.params.spender); | ||||
|   manager.market = call.to; | ||||
|   manager.isDSA = isDSA(call.inputs.manager); | ||||
|   manager.transactionData = transactionID; | ||||
| 
 | ||||
|   let owner = createOrLoadOwner(ownerID); | ||||
|   owner.address = event.params.owner; | ||||
|   owner.market = event.address; | ||||
|   owner.address = call.transaction.from; | ||||
|   owner.market = call.to; | ||||
| 
 | ||||
|   transactionData.save(); | ||||
|   manager.save(); | ||||
|   owner.save(); | ||||
| } | ||||
| 
 | ||||
| export function handleMnaagerToggledByPermit(call: AllowBySigCall): void { | ||||
|   let ownerID = call.inputs.owner.toHexString() + "#" + call.to.toHexString(); | ||||
|   let managerID = call.inputs.manager.toHexString() + "#" + ownerID; | ||||
|   let transactionID = | ||||
|     call.transaction.hash.toHexString() + | ||||
|     "#" + | ||||
|     call.transaction.index.toString(); | ||||
| 
 | ||||
|   let transactionData = createOrLoadTransaction(transactionID); | ||||
|   transactionData.txnIndex = call.transaction.index; | ||||
|   transactionData.from = call.transaction.from; | ||||
|   transactionData.to = call.transaction.to; | ||||
|   transactionData.input = call.transaction.input; | ||||
|   transactionData.blockNumber = call.block.number; | ||||
|   transactionData.timestamp = call.block.timestamp; | ||||
|   transactionData.gasLimit = call.block.gasLimit; | ||||
|   transactionData.blockGasUsed = call.block.gasUsed; | ||||
|   transactionData.gasPrice = call.transaction.gasPrice; | ||||
|   transactionData.value = call.transaction.value; | ||||
| 
 | ||||
|   let manager = createOrLoadManager(managerID); | ||||
|   manager.address = call.inputs.manager; | ||||
|   manager.isAllowed = call.inputs.isAllowed_; | ||||
|   manager.owner = ownerID; | ||||
|   manager.market = call.to; | ||||
|   manager.isDSA = isDSA(call.inputs.manager); | ||||
|   manager.transactionData = transactionID; | ||||
| 
 | ||||
|   let owner = createOrLoadOwner(ownerID); | ||||
|   owner.address = call.inputs.owner; | ||||
|   owner.market = call.to; | ||||
| 
 | ||||
|   transactionData.save(); | ||||
|   manager.save(); | ||||
|  |  | |||
|  | @ -52,7 +52,6 @@ export function createOrLoadTransaction(id: string): TransactionData { | |||
|   if (txn == null) { | ||||
|     txn = new TransactionData(id); | ||||
|     txn.txnIndex = ZERO; | ||||
|     txn.txnLogIndex = ZERO; | ||||
|     txn.from = new Address(0); | ||||
|     txn.to = new Address(0); | ||||
|     txn.input = new Bytes(0); | ||||
|  |  | |||
|  | @ -22,7 +22,9 @@ dataSources: | |||
|           file: ./abis/cUSDCv3.json | ||||
|         - name: InstaList | ||||
|           file: ./abis/InstaList.json | ||||
|       eventHandlers: | ||||
|         - event: Approval(indexed address,indexed address,uint256) | ||||
|           handler: handleManagerToggled | ||||
|       callHandlers: | ||||
|         - function: allow(address,bool) | ||||
|           handler: handleManagerToggledByAllow | ||||
|         - function: allowBySig(address,address,bool,uint256,uint256,uint8,bytes32,bytes32) | ||||
|           handler: handleManagerToggledByPermit | ||||
|       file: ./src/compound-v3-managers.ts | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Richa-iitr
						Richa-iitr