From c8801544356af2d76e46d410e1e1960af94d23ca Mon Sep 17 00:00:00 2001 From: Joaquim Verges Date: Fri, 24 Jun 2022 11:38:54 -0700 Subject: [PATCH] extract licenses from metadata --- src/common/feature-detection.ts | 6 ++++++ src/schema/contracts/custom.ts | 1 + test/custom.test.ts | 1 + 3 files changed, 8 insertions(+) diff --git a/src/common/feature-detection.ts b/src/common/feature-detection.ts index 0942fff00..dae12e182 100644 --- a/src/common/feature-detection.ts +++ b/src/common/feature-detection.ts @@ -288,11 +288,17 @@ async function fetchContractMetadata( details: metadata.output.devdoc.detail, notice: metadata.output.userdoc.notice, }); + const licenses: string[] = [ + ...new Set( + Object.entries(metadata.sources).map(([_, src]) => (src as any).license), + ), + ]; return { name, abi, metadata, info, + licenses, }; } diff --git a/src/schema/contracts/custom.ts b/src/schema/contracts/custom.ts index 7bc5db7df..25bffae71 100644 --- a/src/schema/contracts/custom.ts +++ b/src/schema/contracts/custom.ts @@ -138,4 +138,5 @@ export type PublishedMetadata = { abi: z.infer; metadata: Record; info: z.infer; + licenses: string[]; }; diff --git a/test/custom.test.ts b/test/custom.test.ts index 80889f346..35fdbd703 100644 --- a/test/custom.test.ts +++ b/test/custom.test.ts @@ -124,6 +124,7 @@ describe("Custom Contracts", async () => { invariant(c, "Contract undefined"); const meta = await c.publishedMetadata.get(); expect(meta.name).to.eq("Greeter"); + expect(meta.licenses.length).gt(0); }); it("should extract functions", async () => {