From a9b89173245a636b506747493cf6b9e7507368c6 Mon Sep 17 00:00:00 2001 From: Paul Razvan Berg Date: Sat, 14 Nov 2020 14:25:22 +0200 Subject: [PATCH 1/5] feat: mStable template for both React and Vue test: integration test mStable template --- src/helpers/constants.ts | 3 + templates/react/mstable/README.md.ctx | 11 + templates/react/mstable/package.json.ctx | 7 + .../mstable/packages/contracts/README.md.ctx | 3 + .../packages/contracts/package.json.ctx | 3 + .../mstable/packages/contracts/src/abis.js | 13 + .../packages/contracts/src/abis/mAsset.json | 453 +++++++++++++ .../contracts/src/abis/metaToken.json | 239 +++++++ .../packages/contracts/src/abis/nexus.json | 606 ++++++++++++++++++ .../contracts/src/abis/savingsContract.json | 254 ++++++++ .../contracts/src/abis/savingsManager.json | 479 ++++++++++++++ .../packages/contracts/src/addresses.js | 20 + .../packages/contracts/src/index.js.ctx | 1 + .../mstable/packages/react-app/README.md.ctx | 3 + .../packages/react-app/package.json.ctx | 13 + .../mstable/packages/react-app/src/App.js.ctx | 27 + .../react-app/src/graphql/subgraph.js | 20 + .../packages/react-app/src/index.js.ctx | 4 + templates/vue/mstable/README.md.ctx | 11 + templates/vue/mstable/package.json.ctx | 7 + .../mstable/packages/contracts/README.md.ctx | 3 + .../packages/contracts/package.json.ctx | 3 + .../mstable/packages/contracts/src/abis.js | 13 + .../packages/contracts/src/abis/mAsset.json | 453 +++++++++++++ .../contracts/src/abis/metaToken.json | 239 +++++++ .../packages/contracts/src/abis/nexus.json | 606 ++++++++++++++++++ .../contracts/src/abis/savingsContract.json | 254 ++++++++ .../contracts/src/abis/savingsManager.json | 479 ++++++++++++++ .../packages/contracts/src/addresses.js | 20 + .../packages/contracts/src/index.js.ctx | 1 + .../mstable/packages/vue-app/README.md.ctx | 3 + .../mstable/packages/vue-app/package.json.ctx | 13 + .../vue-app/src/components/HelloWorld.vue.ctx | 40 ++ .../packages/vue-app/src/graphql/subgraph.js | 20 + .../mstable/packages/vue-app/src/main.js.ctx | 3 + test/integration/templates.test.ts | 60 +- 36 files changed, 4357 insertions(+), 30 deletions(-) create mode 100644 templates/react/mstable/README.md.ctx create mode 100644 templates/react/mstable/package.json.ctx create mode 100644 templates/react/mstable/packages/contracts/README.md.ctx create mode 100644 templates/react/mstable/packages/contracts/package.json.ctx create mode 100644 templates/react/mstable/packages/contracts/src/abis.js create mode 100644 templates/react/mstable/packages/contracts/src/abis/mAsset.json create mode 100644 templates/react/mstable/packages/contracts/src/abis/metaToken.json create mode 100644 templates/react/mstable/packages/contracts/src/abis/nexus.json create mode 100644 templates/react/mstable/packages/contracts/src/abis/savingsContract.json create mode 100644 templates/react/mstable/packages/contracts/src/abis/savingsManager.json create mode 100644 templates/react/mstable/packages/contracts/src/addresses.js create mode 100644 templates/react/mstable/packages/contracts/src/index.js.ctx create mode 100644 templates/react/mstable/packages/react-app/README.md.ctx create mode 100644 templates/react/mstable/packages/react-app/package.json.ctx create mode 100644 templates/react/mstable/packages/react-app/src/App.js.ctx create mode 100644 templates/react/mstable/packages/react-app/src/graphql/subgraph.js create mode 100644 templates/react/mstable/packages/react-app/src/index.js.ctx create mode 100644 templates/vue/mstable/README.md.ctx create mode 100644 templates/vue/mstable/package.json.ctx create mode 100644 templates/vue/mstable/packages/contracts/README.md.ctx create mode 100644 templates/vue/mstable/packages/contracts/package.json.ctx create mode 100644 templates/vue/mstable/packages/contracts/src/abis.js create mode 100644 templates/vue/mstable/packages/contracts/src/abis/mAsset.json create mode 100644 templates/vue/mstable/packages/contracts/src/abis/metaToken.json create mode 100644 templates/vue/mstable/packages/contracts/src/abis/nexus.json create mode 100644 templates/vue/mstable/packages/contracts/src/abis/savingsContract.json create mode 100644 templates/vue/mstable/packages/contracts/src/abis/savingsManager.json create mode 100644 templates/vue/mstable/packages/contracts/src/addresses.js create mode 100644 templates/vue/mstable/packages/contracts/src/index.js.ctx create mode 100644 templates/vue/mstable/packages/vue-app/README.md.ctx create mode 100644 templates/vue/mstable/packages/vue-app/package.json.ctx create mode 100644 templates/vue/mstable/packages/vue-app/src/components/HelloWorld.vue.ctx create mode 100644 templates/vue/mstable/packages/vue-app/src/graphql/subgraph.js create mode 100644 templates/vue/mstable/packages/vue-app/src/main.js.ctx diff --git a/src/helpers/constants.ts b/src/helpers/constants.ts index 1900993d..0d4faa12 100644 --- a/src/helpers/constants.ts +++ b/src/helpers/constants.ts @@ -53,6 +53,7 @@ export const HardcodedTemplateFiles: Record { return [template]; }); -describe("templates", function () { +describe("templates", function() { let getRefsMock: jest.SpyInstance; - beforeAll(function () { + beforeAll(function() { getRefsMock = jest.spyOn(envHelpers, "getRefs"); }); - describe("downloadAndExtractTemplateContext", function () { + describe("downloadAndExtractTemplateContext", function() { let testDirPath: string; - beforeEach(function () { + beforeEach(function() { testDirPath = tempy.directory(); }); - describe("when the framework = react", function () { + describe("when the framework = react", function() { const framework: FrameworkKey = "react"; describe.each(templateTable)("when the template = %s", function (template: TemplateKey) { const sourceCodePath: string = path.join(__dirname, "..", "..", "templates", framework, template); - test("it works", async function () { + test("it works", async function() { try { await downloadAndExtractTemplateContext(testDirPath, framework, template); } catch (error) { @@ -44,15 +44,15 @@ describe("templates", function () { }); }); - describe("when the framework = vue", function () { + describe("when the framework = vue", function() { const framework: FrameworkKey = "vue"; describe.each(templateTable)("when the template = %s", function (template: TemplateKey) { const sourceCodePath: string = path.join(__dirname, "..", "..", "templates", framework, template); - test("it works", async function () { + test("it works", async function() { try { - await downloadAndExtractTemplateContext(testDirPath, framework, template); + await downloadAndExtractTemplateContext(testDirPath, framework, template); } catch (error) { console.log({ error }); } @@ -62,83 +62,83 @@ describe("templates", function () { }); }); - afterEach(function () { + afterEach(function() { fsExtra.removeSync(testDirPath); }); }); - describe("hasTemplate", function () { - describe("when the framework is not valid", function () { + describe("hasTemplate", function() { + describe("when the framework is not valid", function() { const framework: string = "angular"; const template: string = "default"; const ref: string = "develop"; - beforeEach(function () { + beforeEach(function() { getRefsMock.mockReturnValueOnce({ ref, tarGzRef: ref }); }); - test("it returns false", async function () { + test("it returns false", async function() { const result: boolean = await hasTemplate(framework, template); expect(result).toBe(false); }); }); - describe("when the framework is valid", function () { + describe("when the framework is valid", function() { const framework: string = "react"; - describe("when the template is not valid", function () { + describe("when the template is not valid", function() { const framework: string = "react"; const template: string = "bitconnect"; const ref: string = "develop"; - beforeEach(function () { + beforeEach(function() { getRefsMock.mockReturnValueOnce({ ref, tarGzRef: ref }); }); - test("it returns false", async function () { + test("it returns false", async function() { const result: boolean = await hasTemplate(framework, template); expect(result).toBe(false); }); }); - describe("when the template is valid", function () { + describe("when the template is valid", function() { const template: string = "default"; - describe("when the ref is not valid", function () { + describe("when the ref is not valid", function() { const ref: string = "invalid-ref"; - beforeEach(function () { + beforeEach(function() { getRefsMock.mockReturnValueOnce({ ref, tarGzRef: ref }); }); - test("it returns false", async function () { + test("it returns false", async function() { const result: boolean = await hasTemplate(framework, template); expect(result).toBe(false); }); }); - describe("when the ref is valid", function () { - describe("when the ref is a branch", function () { + describe("when the ref is valid", function() { + describe("when the ref is a branch", function() { const ref: string = "develop"; - beforeEach(function () { + beforeEach(function() { getRefsMock.mockReturnValueOnce({ ref, tarGzRef: ref }); }); - test("it returns true", async function () { + test("it returns true", async function() { const result: boolean = await hasTemplate(framework, template); expect(result).toBe(true); }); }); - describe("when the ref is a semver", function () { + describe("when the ref is a semver", function() { const tarGzRef: string = "1.5.0"; - beforeEach(function () { + beforeEach(function() { getRefsMock.mockReturnValueOnce({ ref: "v" + tarGzRef, tarGzRef }); }); - test("it returns true", async function () { + test("it returns true", async function() { const result: boolean = await hasTemplate(framework, template); expect(result).toBe(true); }); @@ -148,7 +148,7 @@ describe("templates", function () { }); }); - afterAll(function () { + afterAll(function() { getRefsMock.mockRestore(); }); }); From 6360f85827d4e4fc7b0ba022e598967dda16d153 Mon Sep 17 00:00:00 2001 From: Paul Razvan Berg Date: Sat, 14 Nov 2020 14:27:50 +0200 Subject: [PATCH 2/5] style: apply prettier --- .eslintignore | 3 +- test/integration/templates.test.ts | 58 +++++++++++++++--------------- 2 files changed, 30 insertions(+), 31 deletions(-) diff --git a/.eslintignore b/.eslintignore index 56723e5d..01bd7b53 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,10 +1,9 @@ # folders +.vscode/ dist/ handlebars/ templates/ # files -.solcover.js -coverage.json jest.config.js jest.setup.js diff --git a/test/integration/templates.test.ts b/test/integration/templates.test.ts index 05246e62..126cec7c 100644 --- a/test/integration/templates.test.ts +++ b/test/integration/templates.test.ts @@ -12,27 +12,27 @@ const templateTable = Templates.map(template => { return [template]; }); -describe("templates", function() { +describe("templates", function () { let getRefsMock: jest.SpyInstance; - beforeAll(function() { + beforeAll(function () { getRefsMock = jest.spyOn(envHelpers, "getRefs"); }); - describe("downloadAndExtractTemplateContext", function() { + describe("downloadAndExtractTemplateContext", function () { let testDirPath: string; - beforeEach(function() { + beforeEach(function () { testDirPath = tempy.directory(); }); - describe("when the framework = react", function() { + describe("when the framework = react", function () { const framework: FrameworkKey = "react"; describe.each(templateTable)("when the template = %s", function (template: TemplateKey) { const sourceCodePath: string = path.join(__dirname, "..", "..", "templates", framework, template); - test("it works", async function() { + test("it works", async function () { try { await downloadAndExtractTemplateContext(testDirPath, framework, template); } catch (error) { @@ -44,13 +44,13 @@ describe("templates", function() { }); }); - describe("when the framework = vue", function() { + describe("when the framework = vue", function () { const framework: FrameworkKey = "vue"; describe.each(templateTable)("when the template = %s", function (template: TemplateKey) { const sourceCodePath: string = path.join(__dirname, "..", "..", "templates", framework, template); - test("it works", async function() { + test("it works", async function () { try { await downloadAndExtractTemplateContext(testDirPath, framework, template); } catch (error) { @@ -62,83 +62,83 @@ describe("templates", function() { }); }); - afterEach(function() { + afterEach(function () { fsExtra.removeSync(testDirPath); }); }); - describe("hasTemplate", function() { - describe("when the framework is not valid", function() { + describe("hasTemplate", function () { + describe("when the framework is not valid", function () { const framework: string = "angular"; const template: string = "default"; const ref: string = "develop"; - beforeEach(function() { + beforeEach(function () { getRefsMock.mockReturnValueOnce({ ref, tarGzRef: ref }); }); - test("it returns false", async function() { + test("it returns false", async function () { const result: boolean = await hasTemplate(framework, template); expect(result).toBe(false); }); }); - describe("when the framework is valid", function() { + describe("when the framework is valid", function () { const framework: string = "react"; - describe("when the template is not valid", function() { + describe("when the template is not valid", function () { const framework: string = "react"; const template: string = "bitconnect"; const ref: string = "develop"; - beforeEach(function() { + beforeEach(function () { getRefsMock.mockReturnValueOnce({ ref, tarGzRef: ref }); }); - test("it returns false", async function() { + test("it returns false", async function () { const result: boolean = await hasTemplate(framework, template); expect(result).toBe(false); }); }); - describe("when the template is valid", function() { + describe("when the template is valid", function () { const template: string = "default"; - describe("when the ref is not valid", function() { + describe("when the ref is not valid", function () { const ref: string = "invalid-ref"; - beforeEach(function() { + beforeEach(function () { getRefsMock.mockReturnValueOnce({ ref, tarGzRef: ref }); }); - test("it returns false", async function() { + test("it returns false", async function () { const result: boolean = await hasTemplate(framework, template); expect(result).toBe(false); }); }); - describe("when the ref is valid", function() { - describe("when the ref is a branch", function() { + describe("when the ref is valid", function () { + describe("when the ref is a branch", function () { const ref: string = "develop"; - beforeEach(function() { + beforeEach(function () { getRefsMock.mockReturnValueOnce({ ref, tarGzRef: ref }); }); - test("it returns true", async function() { + test("it returns true", async function () { const result: boolean = await hasTemplate(framework, template); expect(result).toBe(true); }); }); - describe("when the ref is a semver", function() { + describe("when the ref is a semver", function () { const tarGzRef: string = "1.5.0"; - beforeEach(function() { + beforeEach(function () { getRefsMock.mockReturnValueOnce({ ref: "v" + tarGzRef, tarGzRef }); }); - test("it returns true", async function() { + test("it returns true", async function () { const result: boolean = await hasTemplate(framework, template); expect(result).toBe(true); }); @@ -148,7 +148,7 @@ describe("templates", function() { }); }); - afterAll(function() { + afterAll(function () { getRefsMock.mockRestore(); }); }); From b6e93a51924676a0becc582f43a0c8bbd95086f6 Mon Sep 17 00:00:00 2001 From: Paul Razvan Berg Date: Sat, 14 Nov 2020 14:49:29 +0200 Subject: [PATCH 3/5] fix: make package names all-lowercase fix: wrong package name in mstable vue-app --- templates/react/mstable/package.json.ctx | 4 ++-- templates/react/mstable/packages/contracts/README.md.ctx | 2 +- templates/react/mstable/packages/contracts/package.json.ctx | 2 +- templates/react/mstable/packages/react-app/README.md.ctx | 2 +- templates/react/mstable/packages/react-app/package.json.ctx | 6 +++--- templates/react/mstable/packages/react-app/src/App.js.ctx | 2 +- templates/vue/mstable/package.json.ctx | 4 ++-- templates/vue/mstable/packages/contracts/README.md.ctx | 2 +- templates/vue/mstable/packages/contracts/package.json.ctx | 2 +- templates/vue/mstable/packages/vue-app/README.md.ctx | 2 +- templates/vue/mstable/packages/vue-app/package.json.ctx | 6 +++--- .../packages/vue-app/src/components/HelloWorld.vue.ctx | 2 +- 12 files changed, 18 insertions(+), 18 deletions(-) diff --git a/templates/react/mstable/package.json.ctx b/templates/react/mstable/package.json.ctx index 4ac0a806..f04b4dd4 100644 --- a/templates/react/mstable/package.json.ctx +++ b/templates/react/mstable/package.json.ctx @@ -1,6 +1,6 @@ { - "orgName": "@mStable-app", - "packageName": "@mStable-app/monorepo", + "orgName": "@mstable-app", + "packageName": "@mstable-app/monorepo", "keywords": [ "mstable" ] diff --git a/templates/react/mstable/packages/contracts/README.md.ctx b/templates/react/mstable/packages/contracts/README.md.ctx index 504b5475..4f81ece8 100644 --- a/templates/react/mstable/packages/contracts/README.md.ctx +++ b/templates/react/mstable/packages/contracts/README.md.ctx @@ -1,3 +1,3 @@ { - "title": "@mStable-app/contracts" + "title": "@mstable-app/contracts" } diff --git a/templates/react/mstable/packages/contracts/package.json.ctx b/templates/react/mstable/packages/contracts/package.json.ctx index 27479722..4ff80585 100644 --- a/templates/react/mstable/packages/contracts/package.json.ctx +++ b/templates/react/mstable/packages/contracts/package.json.ctx @@ -1,3 +1,3 @@ { - "packageName": "@mStable-app/contracts" + "packageName": "@mstable-app/contracts" } diff --git a/templates/react/mstable/packages/react-app/README.md.ctx b/templates/react/mstable/packages/react-app/README.md.ctx index 015d5ecb..c76d2b59 100644 --- a/templates/react/mstable/packages/react-app/README.md.ctx +++ b/templates/react/mstable/packages/react-app/README.md.ctx @@ -1,3 +1,3 @@ { - "title": "@mStable-app/react-app" + "title": "@mstable-app/react-app" } diff --git a/templates/react/mstable/packages/react-app/package.json.ctx b/templates/react/mstable/packages/react-app/package.json.ctx index 496a65f4..96052091 100644 --- a/templates/react/mstable/packages/react-app/package.json.ctx +++ b/templates/react/mstable/packages/react-app/package.json.ctx @@ -1,9 +1,9 @@ { - "packageName": "@mStable-app/react-app", + "packageName": "@mstable-app/react-app", "dependencies": { "keys": [ - "@mStable/protocol", - "@mStable/mstable-js" + "@mstable/protocol", + "@mstable/mstable-js" ], "values": [ "^1.3.0", diff --git a/templates/react/mstable/packages/react-app/src/App.js.ctx b/templates/react/mstable/packages/react-app/src/App.js.ctx index 16441a25..f8157d4b 100644 --- a/templates/react/mstable/packages/react-app/src/App.js.ctx +++ b/templates/react/mstable/packages/react-app/src/App.js.ctx @@ -2,7 +2,7 @@ "callToAction": "Read On-Chain mAssets", "graphqlQueryName": "GET_MASSETS", "imports": [ - "import { MAINNET_ID, addresses, abis } from \"@mStable-app/contracts\";", + "import { MAINNET_ID, addresses, abis } from \"@mstable-app/contracts\";", "import GET_MASSETS from \"./graphql/subgraph\";" ], "hooks": { diff --git a/templates/vue/mstable/package.json.ctx b/templates/vue/mstable/package.json.ctx index 4ac0a806..f04b4dd4 100644 --- a/templates/vue/mstable/package.json.ctx +++ b/templates/vue/mstable/package.json.ctx @@ -1,6 +1,6 @@ { - "orgName": "@mStable-app", - "packageName": "@mStable-app/monorepo", + "orgName": "@mstable-app", + "packageName": "@mstable-app/monorepo", "keywords": [ "mstable" ] diff --git a/templates/vue/mstable/packages/contracts/README.md.ctx b/templates/vue/mstable/packages/contracts/README.md.ctx index 504b5475..4f81ece8 100644 --- a/templates/vue/mstable/packages/contracts/README.md.ctx +++ b/templates/vue/mstable/packages/contracts/README.md.ctx @@ -1,3 +1,3 @@ { - "title": "@mStable-app/contracts" + "title": "@mstable-app/contracts" } diff --git a/templates/vue/mstable/packages/contracts/package.json.ctx b/templates/vue/mstable/packages/contracts/package.json.ctx index 27479722..4ff80585 100644 --- a/templates/vue/mstable/packages/contracts/package.json.ctx +++ b/templates/vue/mstable/packages/contracts/package.json.ctx @@ -1,3 +1,3 @@ { - "packageName": "@mStable-app/contracts" + "packageName": "@mstable-app/contracts" } diff --git a/templates/vue/mstable/packages/vue-app/README.md.ctx b/templates/vue/mstable/packages/vue-app/README.md.ctx index c4a8e661..149c5213 100644 --- a/templates/vue/mstable/packages/vue-app/README.md.ctx +++ b/templates/vue/mstable/packages/vue-app/README.md.ctx @@ -1,3 +1,3 @@ { - "title": "@mStable-app/vue-app" + "title": "@mstable-app/vue-app" } diff --git a/templates/vue/mstable/packages/vue-app/package.json.ctx b/templates/vue/mstable/packages/vue-app/package.json.ctx index 496a65f4..f4d36297 100644 --- a/templates/vue/mstable/packages/vue-app/package.json.ctx +++ b/templates/vue/mstable/packages/vue-app/package.json.ctx @@ -1,9 +1,9 @@ { - "packageName": "@mStable-app/react-app", + "packageName": "@mstable-app/vue-app", "dependencies": { "keys": [ - "@mStable/protocol", - "@mStable/mstable-js" + "@mstable/protocol", + "@mstable/mstable-js" ], "values": [ "^1.3.0", diff --git a/templates/vue/mstable/packages/vue-app/src/components/HelloWorld.vue.ctx b/templates/vue/mstable/packages/vue-app/src/components/HelloWorld.vue.ctx index 0befc8cd..d76be57f 100644 --- a/templates/vue/mstable/packages/vue-app/src/components/HelloWorld.vue.ctx +++ b/templates/vue/mstable/packages/vue-app/src/components/HelloWorld.vue.ctx @@ -2,7 +2,7 @@ "callToAction": "Read On-Chain mAssets", "graphqlQueryName": "GET_MASSETS", "imports": [ - "import { MAINNET_ID, addresses, abis } from \"@maker-app/contracts\";", + "import { MAINNET_ID, addresses, abis } from \"@mstable-app/contracts\";", "import GET_MASSETS from \"../graphql/subgraph\";" ], "learnItems": [ From 9a60cc769f4fb6308f13e2fe8fc8a724d8a7fbc9 Mon Sep 17 00:00:00 2001 From: Paul Razvan Berg Date: Sat, 14 Nov 2020 15:05:28 +0200 Subject: [PATCH 4/5] fix: graphql-tag instead of apollo-boost in mstable vue app --- templates/vue/mstable/packages/vue-app/src/graphql/subgraph.js | 2 +- test/integration/templates.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/vue/mstable/packages/vue-app/src/graphql/subgraph.js b/templates/vue/mstable/packages/vue-app/src/graphql/subgraph.js index ba06df23..dd8a45b4 100644 --- a/templates/vue/mstable/packages/vue-app/src/graphql/subgraph.js +++ b/templates/vue/mstable/packages/vue-app/src/graphql/subgraph.js @@ -1,4 +1,4 @@ -import { gql } from "apollo-boost"; +import gql from "graphql-tag"; // See more example queries on https://thegraph.com/explorer/subgraph/mstable/mstable-protocol const GET_MASSETS = gql` diff --git a/test/integration/templates.test.ts b/test/integration/templates.test.ts index 126cec7c..d6ec5b38 100644 --- a/test/integration/templates.test.ts +++ b/test/integration/templates.test.ts @@ -52,7 +52,7 @@ describe("templates", function () { test("it works", async function () { try { - await downloadAndExtractTemplateContext(testDirPath, framework, template); + await downloadAndExtractTemplateContext(testDirPath, framework, template); } catch (error) { console.log({ error }); } From 2e22449f36ff454060f1862507cad35ad4326e7d Mon Sep 17 00:00:00 2001 From: Tom French Date: Fri, 20 Nov 2020 22:00:35 +0000 Subject: [PATCH 5/5] fix: fix mStable graphql request --- .../react/mstable/packages/react-app/src/graphql/subgraph.js | 4 +++- .../vue/mstable/packages/vue-app/src/graphql/subgraph.js | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/templates/react/mstable/packages/react-app/src/graphql/subgraph.js b/templates/react/mstable/packages/react-app/src/graphql/subgraph.js index ba06df23..acb4ae1a 100644 --- a/templates/react/mstable/packages/react-app/src/graphql/subgraph.js +++ b/templates/react/mstable/packages/react-app/src/graphql/subgraph.js @@ -11,7 +11,9 @@ const GET_MASSETS = gql` decimals name symbol - totalSupply + totalSupply { + exact + } } } } diff --git a/templates/vue/mstable/packages/vue-app/src/graphql/subgraph.js b/templates/vue/mstable/packages/vue-app/src/graphql/subgraph.js index dd8a45b4..738b2040 100644 --- a/templates/vue/mstable/packages/vue-app/src/graphql/subgraph.js +++ b/templates/vue/mstable/packages/vue-app/src/graphql/subgraph.js @@ -11,7 +11,9 @@ const GET_MASSETS = gql` decimals name symbol - totalSupply + totalSupply { + exact + } } } }