File tree Expand file tree Collapse file tree 6 files changed +119
-0
lines changed
integration-tests/load-save Expand file tree Collapse file tree 6 files changed +119
-0
lines changed Original file line number Diff line number Diff line change 1+ [
2+ {
3+ "inputs": [],
4+ "stateMutability": "nonpayable",
5+ "type": "constructor"
6+ },
7+ {
8+ "anonymous": false,
9+ "inputs": [
10+ {
11+ "indexed": false,
12+ "internalType": "uint16",
13+ "name": "x",
14+ "type": "uint16"
15+ }
16+ ],
17+ "name": "Trigger",
18+ "type": "event"
19+ },
20+ {
21+ "inputs": [
22+ {
23+ "internalType": "uint16",
24+ "name": "x",
25+ "type": "uint16"
26+ }
27+ ],
28+ "name": "emitTrigger",
29+ "outputs": [],
30+ "stateMutability": "nonpayable",
31+ "type": "function"
32+ }
33+ ]
Original file line number Diff line number Diff line change 1+ {
2+ "name" : " load-save" ,
3+ "version" : " 0.1.0" ,
4+ "scripts" : {
5+ "build-contracts" : " ../../common/build-contracts.sh" ,
6+ "codegen" : " graph codegen --skip-migrations" ,
7+ "test" : " yarn build-contracts && truffle test --compile-none --network test" ,
8+ "create:test" : " graph create test/load-save --node $GRAPH_NODE_ADMIN_URI" ,
9+ "deploy:test" : " graph deploy test/load-save --version-label v0.0.1 --ipfs $IPFS_URI --node $GRAPH_NODE_ADMIN_URI"
10+ },
11+ "devDependencies" : {
12+ "@graphprotocol/graph-cli" : " 0.69.0" ,
13+ "@graphprotocol/graph-ts" : " 0.34.0" ,
14+ "solc" : " ^0.8.2"
15+ },
16+ "dependencies" : {
17+ "@truffle/contract" : " ^4.3" ,
18+ "@truffle/hdwallet-provider" : " ^1.2" ,
19+ "apollo-fetch" : " ^0.7.0" ,
20+ "babel-polyfill" : " ^6.26.0" ,
21+ "babel-register" : " ^6.26.0" ,
22+ "gluegun" : " ^4.6.1" ,
23+ "truffle" : " ^5.2"
24+ }
25+ }
Original file line number Diff line number Diff line change 1+ type LSData @entity {
2+ id : ID !
3+ data : String !
4+ blockNumber : BigInt !
5+ }
Original file line number Diff line number Diff line change 1+ import { BigInt , ethereum } from '@graphprotocol/graph-ts'
2+ import { LSData } from '../generated/schema'
3+
4+ export function handleBlock ( block : ethereum . Block ) : void {
5+ let diff = 1
6+ let entity = new LSData ( block . number . toString ( ) )
7+ entity . data = 'original entity'
8+ entity . blockNumber = block . number
9+ entity . save ( )
10+ let block_number = block . number
11+ if ( block_number . gt ( BigInt . fromI32 ( diff ) ) ) {
12+ let bn = block_number . minus ( BigInt . fromI32 ( diff ) ) . toString ( )
13+ let entity2 = LSData . load ( bn ) !
14+ entity2 . data = 'modified entity'
15+ entity2 . save ( )
16+ }
17+ }
Original file line number Diff line number Diff line change 1+ specVersion : 1.2.0
2+ description : Source Subgraph A
3+ repository : https://github.com/graphprotocol/graph-node
4+ schema :
5+ file : ./schema.graphql
6+ dataSources :
7+ - kind : ethereum/contract
8+ name : SimpleContract
9+ network : test
10+ source :
11+ address : " 0x5FbDB2315678afecb367f032d93F642f64180aa3"
12+ abi : SimpleContract
13+ startBlock : 0
14+ mapping :
15+ kind : ethereum/events
16+ apiVersion : 0.0.6
17+ language : wasm/assemblyscript
18+ entities :
19+ - LSData
20+ abis :
21+ - name : SimpleContract
22+ file : ./abis/Contract.abi
23+ blockHandlers :
24+ - handler : handleBlock
25+ file : ./src/mapping.ts
Original file line number Diff line number Diff line change @@ -603,6 +603,19 @@ async fn subgraph_data_sources(ctx: TestContext) -> anyhow::Result<()> {
603603 Ok ( ( ) )
604604}
605605
606+ async fn load_save ( ctx : TestContext ) -> anyhow:: Result < ( ) > {
607+ let subgraph = ctx. subgraph ;
608+ assert ! ( subgraph. healthy) ;
609+
610+ let _contract = ctx
611+ . contracts
612+ . iter ( )
613+ . find ( |x| x. name == "SimpleContract" )
614+ . unwrap ( ) ;
615+
616+ Ok ( ( ) )
617+ }
618+
606619async fn test_topic_filters ( ctx : TestContext ) -> anyhow:: Result < ( ) > {
607620 let subgraph = ctx. subgraph ;
608621 assert ! ( subgraph. healthy) ;
@@ -980,6 +993,7 @@ async fn integration_tests() -> anyhow::Result<()> {
980993 TestCase :: new( "block-handlers" , test_block_handlers) ,
981994 TestCase :: new( "timestamp" , test_timestamp) ,
982995 TestCase :: new( "ethereum-api-tests" , test_eth_api) ,
996+ TestCase :: new( "load-save" , load_save) ,
983997 TestCase :: new( "topic-filter" , test_topic_filters) ,
984998 TestCase :: new_with_source_subgraph(
985999 "subgraph-data-sources" ,
You can’t perform that action at this time.
0 commit comments