diff --git a/packages/graph-node/src/eden.test.ts b/packages/graph-node/src/eden.test.ts index 25970b7d..c275f60c 100644 --- a/packages/graph-node/src/eden.test.ts +++ b/packages/graph-node/src/eden.test.ts @@ -6,19 +6,22 @@ import path from 'path'; import { instantiate } from './index'; -xdescribe('eden wasm loader tests', () => { +describe('eden wasm loader tests', () => { it('should load the subgraph network wasm', async () => { const filePath = path.resolve(__dirname, '../test/subgraph/eden/EdenNetwork/EdenNetwork.wasm'); - await instantiate(filePath); + const { exports: { _start } } = await instantiate(filePath); + _start(); }); it('should load the subgraph network distribution wasm', async () => { const filePath = path.resolve(__dirname, '../test/subgraph/eden/EdenNetworkDistribution/EdenNetworkDistribution.wasm'); - await instantiate(filePath); + const { exports: { _start } } = await instantiate(filePath); + _start(); }); it('should load the subgraph network governance wasm', async () => { const filePath = path.resolve(__dirname, '../test/subgraph/eden/EdenNetworkGovernance/EdenNetworkGovernance.wasm'); - await instantiate(filePath); + const { exports: { _start } } = await instantiate(filePath); + _start(); }); }); diff --git a/packages/graph-node/src/index.ts b/packages/graph-node/src/index.ts index 727d2dd0..1e465fb6 100644 --- a/packages/graph-node/src/index.ts +++ b/packages/graph-node/src/index.ts @@ -6,21 +6,21 @@ import fs from 'fs/promises'; import loader from 'assemblyscript/lib/loader'; import { utils, - BigNumber - // getDefaultProvider, - // Contract + BigNumber, + getDefaultProvider, + Contract } from 'ethers'; import { TypeId } from './types'; -// import exampleAbi from '../test/subgraph/example1/build/Example1/abis/Example1.json'; +import exampleAbi from '../test/subgraph/example1/build/Example1/abis/Example1.json'; -// const NETWORK_URL = 'http://127.0.0.1:8545'; +const NETWORK_URL = 'http://127.0.0.1:8081'; type idOfType = (TypeId: number) => number export const instantiate = async (filePath: string): Promise => { const buffer = await fs.readFile(filePath); - // const provider = getDefaultProvider(NETWORK_URL); + const provider = getDefaultProvider(NETWORK_URL); const imports: WebAssembly.Imports = { index: { @@ -112,29 +112,23 @@ export const instantiate = async (filePath: string): Promise { - // TODO: Create Value instance according to type. + // TODO: Create Value instance according to return type. const ethValue = await ethereum.Value.fromString(await __newString(value)); return ethValue; @@ -282,6 +276,11 @@ export const instantiate = async (filePath: string): Promise { console.log('bigInt.pow'); } + }, + datasource: { + 'dataSource.address': () => { + console.log('dataSource.address'); + } } }; diff --git a/packages/graph-node/test/subgraph/eden/EdenNetwork/EdenNetwork.wasm b/packages/graph-node/test/subgraph/eden/EdenNetwork/EdenNetwork.wasm index 8b8583e5..e1e2facc 100644 Binary files a/packages/graph-node/test/subgraph/eden/EdenNetwork/EdenNetwork.wasm and b/packages/graph-node/test/subgraph/eden/EdenNetwork/EdenNetwork.wasm differ diff --git a/packages/graph-node/test/subgraph/eden/EdenNetworkDistribution/EdenNetworkDistribution.wasm b/packages/graph-node/test/subgraph/eden/EdenNetworkDistribution/EdenNetworkDistribution.wasm index d1168073..5517ffd3 100644 Binary files a/packages/graph-node/test/subgraph/eden/EdenNetworkDistribution/EdenNetworkDistribution.wasm and b/packages/graph-node/test/subgraph/eden/EdenNetworkDistribution/EdenNetworkDistribution.wasm differ diff --git a/packages/graph-node/test/subgraph/eden/EdenNetworkGovernance/EdenNetworkGovernance.wasm b/packages/graph-node/test/subgraph/eden/EdenNetworkGovernance/EdenNetworkGovernance.wasm index 4f505074..9860cd7d 100644 Binary files a/packages/graph-node/test/subgraph/eden/EdenNetworkGovernance/EdenNetworkGovernance.wasm and b/packages/graph-node/test/subgraph/eden/EdenNetworkGovernance/EdenNetworkGovernance.wasm differ diff --git a/packages/graph-node/test/subgraph/eden/schema.graphql b/packages/graph-node/test/subgraph/eden/schema.graphql index 27df2a51..14c64d82 100644 --- a/packages/graph-node/test/subgraph/eden/schema.graphql +++ b/packages/graph-node/test/subgraph/eden/schema.graphql @@ -32,7 +32,7 @@ enum ProducerSetChangeType { } type ProducerSetChange @entity { - # Transaction + # Transaction id: ID! # Block change occured in (effective next block) @@ -152,7 +152,7 @@ type Epoch @entity { # Producer blocks producerBlocks: BigInt! - + # All blocks allBlocks: BigInt! @@ -215,7 +215,8 @@ type Slot @entity { taxRatePerDay: BigDecimal! # Slot claims - claims: [SlotClaim]! @derivedFrom(field: "slot") + # https://thegraph.com/docs/developer/assemblyscript-migration-guide#graphql-schema + claims: [SlotClaim!]! @derivedFrom(field: "slot") } type Staker @entity { @@ -230,7 +231,7 @@ type Staker @entity { } type Network @entity { - # Address of contract + # Address of contract id: ID! slot0: Slot @@ -258,7 +259,7 @@ type Distributor @entity { } type Distribution @entity { - # Transaction + # Transaction id: ID! # Distributor @@ -278,7 +279,7 @@ type Distribution @entity { } type Claim @entity { - # Transaction + # Transaction id: ID! # Timestamp claim was made @@ -298,7 +299,7 @@ type Claim @entity { } type Slash @entity { - # Transaction + # Transaction id: ID! # Timestamp slash was made diff --git a/packages/graph-node/test/subgraph/eden/subgraph.yaml b/packages/graph-node/test/subgraph/eden/subgraph.yaml index 0ba875a8..67bedead 100644 --- a/packages/graph-node/test/subgraph/eden/subgraph.yaml +++ b/packages/graph-node/test/subgraph/eden/subgraph.yaml @@ -11,7 +11,7 @@ dataSources: startBlock: 12948292 mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyScript entities: - Producer @@ -47,7 +47,7 @@ dataSources: startBlock: 12948381 mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyScript entities: - Slot @@ -77,7 +77,7 @@ dataSources: startBlock: 12948356 mapping: kind: ethereum/events - apiVersion: 0.0.4 + apiVersion: 0.0.5 language: wasm/assemblyScript entities: - Distributor diff --git a/packages/graph-node/test/subgraph/example1/package.json b/packages/graph-node/test/subgraph/example1/package.json index 1db38323..b8b0ae48 100644 --- a/packages/graph-node/test/subgraph/example1/package.json +++ b/packages/graph-node/test/subgraph/example1/package.json @@ -10,7 +10,7 @@ "deploy-local": "graph deploy --node http://localhost:8020/ --ipfs http://localhost:5001 example1" }, "dependencies": { - "@graphprotocol/graph-cli": "ssh://git@github.com:vulcanize/graph-cli.git#ng-export-graph-ts", + "@graphprotocol/graph-cli": "ssh://git@github.com:vulcanize/graph-cli.git#graph-watcher-v0.22.1", "@graphprotocol/graph-ts": "0.22.0" } } diff --git a/packages/graph-node/test/subgraph/example1/yarn.lock b/packages/graph-node/test/subgraph/example1/yarn.lock index 4b4d4ce3..cfcca4b0 100644 --- a/packages/graph-node/test/subgraph/example1/yarn.lock +++ b/packages/graph-node/test/subgraph/example1/yarn.lock @@ -23,9 +23,9 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@graphprotocol/graph-cli@ssh://git@github.com:vulcanize/graph-cli.git#ng-export-graph-ts": +"@graphprotocol/graph-cli@ssh://git@github.com:vulcanize/graph-cli.git#graph-watcher-v0.22.1": version "0.22.1" - resolved "ssh://git@github.com:vulcanize/graph-cli.git#a7c51114fc6fab9445a315110338f2e93476d989" + resolved "ssh://git@github.com:vulcanize/graph-cli.git#4241570e91578a0128deccc518d52eca00bd587c" dependencies: assemblyscript "0.19.10" binary-install-raw "0.0.13" @@ -80,14 +80,14 @@ integrity sha512-XmdEOrKQ8a1Y/yxQFOMbC47G/V2VDO1GvMRnl4O75M4GW/abC5tnfzadQYkqEveqRM1dEJGFFegfPNA2vvx2iw== "@types/node@*": - version "16.10.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.2.tgz#5764ca9aa94470adb4e1185fe2e9f19458992b2e" - integrity sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ== + version "16.10.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.3.tgz#7a8f2838603ea314d1d22bb3171d899e15c57bd5" + integrity sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ== "@types/node@^12.12.54": - version "12.20.27" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.27.tgz#4141fcad57c332a120591de883e26fe4bb14aaea" - integrity sha512-qZdePUDSLAZRXXV234bLBEUM0nAQjoxbcSwp1rqSMUe1rZ47mwU6OjciR/JvF1Oo8mc0ys6GE0ks0HGgqAZoGg== + version "12.20.28" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.28.tgz#4b20048c6052b5f51a8d5e0d2acbf63d5a17e1e2" + integrity sha512-cBw8gzxUPYX+/5lugXIPksioBSbE42k0fZ39p+4yRzfYjN6++eq9kAPdlY9qm+MXyfbk9EmvCYAYRn380sF46w== "@types/parse-json@^4.0.0": version "4.0.0" @@ -182,11 +182,11 @@ anymatch@~3.1.2: picomatch "^2.0.4" apisauce@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-2.1.1.tgz#0b8bc7f2544e6ef710a6fa1d6f49583856940dd2" - integrity sha512-P4SsLvmsH8BLLruBn/nsO+65j+ChZlGQ2zC5avCIjbWstYS4PgjxeVWtbeVwFGEWX7dEkLp85OvdapGXy1zS8g== + version "2.1.2" + resolved "https://registry.yarnpkg.com/apisauce/-/apisauce-2.1.2.tgz#4cd988d5612a34f051523ef7b2b75338afd37a55" + integrity sha512-2/9tz9uR/56UfZpzeMkGyX33tNjYpBNjhwvT/yyYIItulboxzTqZTD3F3Q7WJVXl8fvX6PZDMaxoFH4r/sXkEA== dependencies: - axios "^0.21.1" + axios "^0.21.4" ramda "^0.25.0" app-module-path@^2.2.0: @@ -263,7 +263,7 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@^0.21.1: +axios@^0.21.1, axios@^0.21.4: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== @@ -575,9 +575,9 @@ cli-cursor@^3.1.0: restore-cursor "^3.1.0" cli-spinners@^2.2.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" - integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== + version "2.6.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" + integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== cli-table3@~0.5.0: version "0.5.1" @@ -1107,9 +1107,9 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0: integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== graphql@^15.5.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.6.0.tgz#e69323c6a9780a1a4b9ddf7e35ca8904bb04df02" - integrity sha512-WJR872Zlc9hckiEPhXgyUftXH48jp2EjO5tgBBOyNMRJZ9fviL2mJBD6CAysk6N5S0r9BTs09Qk39nnJBkvOXQ== + version "15.6.1" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.6.1.tgz#9125bdf057553525da251e19e96dab3d3855ddfc" + integrity sha512-3i5lu0z6dRvJ48QP9kFxBkJ7h4Kso7PS8eahyTFz5Jm6CvQfLtNIE8LX9N6JLnXTuwR+sIYnXzaWp6anOg0QQw== har-schema@^2.0.0: version "2.0.0" @@ -1808,17 +1808,17 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -mime-db@1.49.0: - version "1.49.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" - integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== +mime-db@1.50.0: + version "1.50.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" + integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.32" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" - integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== + version "2.1.33" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb" + integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g== dependencies: - mime-db "1.49.0" + mime-db "1.50.0" mimic-fn@^2.1.0: version "2.1.0"