From 3b8896f0595d43c2b52221a5b42560ee3270ea7c Mon Sep 17 00:00:00 2001 From: cha0sg0d Date: Mon, 4 Oct 2021 13:55:56 -0400 Subject: [PATCH 1/8] move isFindable into helpers --- plugins/helpers/df.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/plugins/helpers/df.ts b/plugins/helpers/df.ts index 33fef0b..0ec0ddb 100644 --- a/plugins/helpers/df.ts +++ b/plugins/helpers/df.ts @@ -102,6 +102,29 @@ export const isFindable = (planetDetails: any, currentBlockNumber: number) => { // !prospectExpired(currentBlockNumber, planet.prospectedBlockNumber) ); } +export function blocksLeftToProspectExpiration( + currentBlockNumber: number, + prospectedBlockNumber: number + ) { + return (prospectedBlockNumber || 0) + 255 - currentBlockNumber; + } + +function prospectExpired(currentBlockNumber: number, prospectedBlockNumber: number) { + return blocksLeftToProspectExpiration(currentBlockNumber, prospectedBlockNumber) <= 0; +} + +export function isFindableClient(planet: Planet) { + // @ts-expect-error + let currentBlockNumber = df.contractsAPI.ethConnection.blockNumber; + if(!planet) return false; + return ( + currentBlockNumber !== undefined && + planet.planetType === PlanetType.RUINS && + planet.prospectedBlockNumber !== undefined && + !planet.hasTriedFindingArtifact && + !prospectExpired(currentBlockNumber, planet.prospectedBlockNumber) + ); +} export const isProspectable = (planet: Planet) => { return isFoundry(planet) && enoughEnergyToProspect(planet) && planet.prospectedBlockNumber === undefined && !planet.unconfirmedProspectPlanet; From 67d31973d64d42a340937170d4dd003913c486b7 Mon Sep 17 00:00:00 2001 From: cha0sg0d Date: Mon, 4 Oct 2021 13:56:38 -0400 Subject: [PATCH 2/8] instructions for Colossus exports --- plugins/views/HelpView.tsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/plugins/views/HelpView.tsx b/plugins/views/HelpView.tsx index 07c5a84..0eac964 100644 --- a/plugins/views/HelpView.tsx +++ b/plugins/views/HelpView.tsx @@ -61,6 +61,23 @@ export function HelpView() { - Receive a score on dfdao’s astral colossus community leaderboard.
  • - Have your spacetime rips and foundries returned to you.
  • +
  • - Make sure your gas setting is manually set (not auto!).
  • + + +

    Module Exports

    +

    You can access the following functions with window.Colossus

    +
    From 1b5527a8f4f5f2e413c27e865738db240708e2b5 Mon Sep 17 00:00:00 2001 From: cha0sg0d Date: Mon, 4 Oct 2021 13:58:18 -0400 Subject: [PATCH 3/8] clean up contribute --- plugins/hooks/use-contribute.ts | 140 +++----------------------------- 1 file changed, 13 insertions(+), 127 deletions(-) diff --git a/plugins/hooks/use-contribute.ts b/plugins/hooks/use-contribute.ts index 08ee575..cc4db9b 100644 --- a/plugins/hooks/use-contribute.ts +++ b/plugins/hooks/use-contribute.ts @@ -2,22 +2,13 @@ import { Planet, PlanetType } from "@darkforest_eth/types"; import { ethers, ContractReceipt } from "ethers"; import { useState } from "preact/hooks"; import { useContract, useSelectedPlanet, useColossus, useStore } from '.' -import { getPlanetName } from "../lib/darkforest"; export const useContribute = () => { const { isContributing, setIsContributing } = useStore() const { coreContract } = useContract() const { - processAndReturnPlanets, - handleFind, - updatePlanetOwners, - transferPlanets, - getRandomActionId, - getProspectablePlanets, - isFindable, - confirmedDaoOwners, - confirmedPlayerOwners, - confirmedRegisteredPlanets + handleFindAndReturn, + handleWithdrawAndReturn, } = useColossus() const [status, setStatus] = useState('') const [error, setError] = useState('') @@ -32,116 +23,6 @@ export const useContribute = () => { setStatus(msg) }; - const bulkUiRefresh = async (planets: Planet[]) => { - const locationIds = planets.map((p) => p.locationId); - // @ts-expect-error - await df.bulkHardRefreshPlanets(locationIds); - }; - - const handleRips = async (rips: Planet[]) => { - /* TODO: filter this more */ - let planetsToGift = rips; - planetsToGift = rips.filter((p) => p.silver > 100); - - /* TODO remove -> this for testing purposes*/ - planetsToGift = planetsToGift.slice(0, 5); - print(`found ${planetsToGift.length} rips to gift`); - if (!planetsToGift.length) { - print(`no rips, moving on...`); - return; - } - await bulkUiRefresh(planetsToGift); - - // will call refreshPlanet in contract - print("updating owners... (block needs to be mined, see df console for tx link)"); - await updatePlanetOwners(planetsToGift); - const confirmedRegistered = await confirmedRegisteredPlanets(planetsToGift); - print(`registered ${confirmedRegistered.length} owners`); - print(`transferring ${confirmedRegistered.length} planets to dao`); - await transferPlanets(confirmedRegistered); - await bulkUiRefresh(confirmedRegistered); - const confirmedOwned = await confirmedDaoOwners(confirmedRegistered); - print(`transferred ${confirmedOwned.length} planets to dao`); - print(`processing and returning ${confirmedOwned.length} planets...`); - await processAndReturnPlanets(confirmedOwned, []); - const returned = confirmedPlayerOwners(confirmedOwned); - }; - - const handleFoundries = async (foundries: Planet[]) => { - let planetsToGift = await getProspectablePlanets(foundries); - /* TODO remove -> this for testing purposes*/ - planetsToGift = planetsToGift.slice(0, 2); - print(`found ${planetsToGift.length} foundries to gift`); - if (!planetsToGift.length) { - print(`no foundries, moving on...`); - return; - } - - // will call refreshPlanet in contract - await updatePlanetOwners(planetsToGift); - const confirmedRegistered = await confirmedRegisteredPlanets(planetsToGift); - print(`registered ${confirmedRegistered.length} owners`); - print(`transferring ${confirmedRegistered.length} planets to dao`); - - for (let p of planetsToGift) { - const pBigNumber = ethers.BigNumber.from(`0x${p.locationId}`); - - const pName = getPlanetName(p.locationId); - - // also slow af. waits for each prospect to be mined - let prospectStatus: number = 0; - let planetDetails = await coreContract.getRefreshedPlanet( - pBigNumber, - Date.now() - ); - console.log("details before prospect", planetDetails); - try { - print(`attempting to prospect ${pName}`); - const actionId = getRandomActionId(); - // @ts-expect-error - const prospectReceipt = (await df.contractsAPI.prospectPlanet( - p.locationId, - actionId - )) as ContractReceipt; - print(`prospected block number ${prospectReceipt.blockNumber}`); - print(`prospected succeeded: ${prospectReceipt.status}`); - prospectStatus = prospectReceipt.status || 0; - // @ts-expect-error - await df.hardRefreshPlanet(p.locationId); - } catch (error) { - console.log(error); - print(`prospecting ${pName} failed. Trying next planet`); - setError(JSON.stringify(error)) - continue; - } - - // sanity check but should only get here if prospect succeeds - if (prospectStatus) { - await coreContract.refreshPlanet(pBigNumber); - let planetDetails = await coreContract.getRefreshedPlanet( - pBigNumber, - Date.now() - ); - console.log("prospect details", planetDetails); - - if (isFindable(planetDetails, Date.now())) { - print(`${pName} is findable. transferring...`); - // transfer ownership - // await handleFind(p, confirmedRegistered); - await transferPlanets([p]); - await bulkUiRefresh([p]); - const confirmedOwned = await confirmedDaoOwners(confirmedRegistered); - print(`transferred ${confirmedOwned.length} planets to dao`); - await handleFind(p); - } else { - print( - `planet is not findable. Stopping here so you don't gift the planet.` - ); - continue; - } - } - } - }; const giftPlanets = async (planets: Planet[]) => { print(`examinining ${planets.length} planets`); @@ -151,12 +32,19 @@ export const useContribute = () => { print(`gifting planets`); // await returnPlanets(planets); - await handleRips(rips); - await handleFoundries(foundries); + // await handleRips(rips); + const res = await handleWithdrawAndReturn(rips); + // await handleFoundries(foundries); + if (foundries.length == 1) { + const response = await handleFindAndReturn(foundries[0]); + } + else { + print(`can only handle 1 foundry`) + } + print(`finished gifting`); setLoading(false) setSuccess(true) - // await handleRips(rips); }; const contribute = async () => { @@ -173,9 +61,7 @@ export const useContribute = () => { if (planet) { planets = [planet]; } - // planets = [planet]; - // @ts-expect-error - df.terminal.current.println( + print( `sending ${planets.length} candidates to giftPlanets` ); await giftPlanets(planets); From c18bea858a6440a36e07ed83c6a20c57265355ef Mon Sep 17 00:00:00 2001 From: cha0sg0d Date: Mon, 4 Oct 2021 13:58:34 -0400 Subject: [PATCH 4/8] add exported functions --- plugins/views/AppView.jsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/views/AppView.jsx b/plugins/views/AppView.jsx index c2beef4..8205d49 100644 --- a/plugins/views/AppView.jsx +++ b/plugins/views/AppView.jsx @@ -1,5 +1,5 @@ import { h } from "preact"; -import { useState } from "preact/hooks"; +import { useState, useEffect } from "preact/hooks"; import { Navigation } from "../components/Navigation"; import { ContributeView } from "./ContributeView"; import { LeaderboardView } from "./LeaderboardView"; @@ -9,6 +9,7 @@ import { CoreContractProvider } from "../components/CoreContractContext"; import { ContractProvider } from "../components/ContractContext"; import { StoreProvider } from "../components/StoreContext"; import { TransactionProvider } from "../components/TransactionContext"; +import { useColossus, useContribute } from "../hooks"; export function AppView({ contract, coreContract }) { const [isContributing, setIsContributing] = useState(false); @@ -19,6 +20,7 @@ export function AppView({ contract, coreContract }) { + ); } +function PluginExport () { + const { returnSelected, readyToFind, handleWithdrawAndReturn, handleFindAndReturn } = useColossus() + + useEffect(() => { + window.Colossus = { returnSelected, readyToFind, handleWithdrawAndReturn, handleFindAndReturn } + console.log(`Colossus exports`, window.Colossus); + }, []) + + return null +} \ No newline at end of file From a5f7e4981bc31a88a18f3b0725b4b7aa71065c19 Mon Sep 17 00:00:00 2001 From: cha0sg0d Date: Mon, 4 Oct 2021 13:59:19 -0400 Subject: [PATCH 5/8] explain need for prospected foundries --- plugins/views/ContributeView.tsx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/plugins/views/ContributeView.tsx b/plugins/views/ContributeView.tsx index 9ff5d83..e874a7d 100644 --- a/plugins/views/ContributeView.tsx +++ b/plugins/views/ContributeView.tsx @@ -3,7 +3,7 @@ import { Planet, PlanetType } from "@darkforest_eth/types"; import { colors } from "../helpers/theme"; import { useColossus, useContribute } from "../hooks"; -import { isProspectable } from "../helpers/df"; +import { isProspectable, isFindableClient, isFindable } from "../helpers/df"; import { getPlanetName, useSelectedPlanet } from "../lib/darkforest"; import { Button } from "../components/Button"; import { Loading } from "../components/Loading"; @@ -44,7 +44,7 @@ export function ContributeView() { // @ts-expect-error const isOwnedByPlayer = planet?.owner === df.account; const isValidPlanet = (isOwnedByPlayer && isFoundry) || isRip; - const isValidFoundry = planet && isProspectable(planet); + const isValidFoundry = planet && isFindableClient(planet); const isValidRip = isRip && planet.silver > 100; const canContribute = isValidFoundry || isValidRip; const isContributeDisabled = !canContribute; @@ -53,7 +53,7 @@ export function ContributeView() { if (!isValidPlanet) return ( -

    Select a Rip or Foundry to contribute to the Colossus.

    +

    Select a Rip w Silver or prospected Foundry to contribute to the Colossus.

    ); @@ -61,8 +61,7 @@ export function ContributeView() { return (

    - The Foundry selected has either already been prospected or has - insufficient energy. + The Foundry selected needs to be prospected or already has an artifact.

    ); From 3807d7ba28ca876691b4faffcdee42137faf7028 Mon Sep 17 00:00:00 2001 From: cha0sg0d Date: Mon, 4 Oct 2021 13:59:52 -0400 Subject: [PATCH 6/8] remove log statements for performance --- plugins/hooks/use-leaderboard.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/hooks/use-leaderboard.ts b/plugins/hooks/use-leaderboard.ts index db6b34a..d433a90 100644 --- a/plugins/hooks/use-leaderboard.ts +++ b/plugins/hooks/use-leaderboard.ts @@ -32,14 +32,14 @@ export const useLeaderboard = () => { const getLeaderboardPlayer = (address: string) => officialLeaderboard.entries.find((entry: ScoreOfficial) => { entry.ethAddress === address }) - console.log('lb', officialLeaderboard.entries) + // console.log('lb', officialLeaderboard.entries) return colossus.playerCounter().then(async count => { const lb = [] for(let i = 0; i < Number(count); i++) { const address = await colossus.players(i); const playerScore = await colossus.contributions(address); const score = Number(playerScore) - console.log(`addy ${address} score ${score}`); + // console.log(`addy ${address} score ${score}`); lb.push({ address, score, rank: 0 }) } const leaderboardRanked = lb.sort((a, b) => b.score - a.score ).map((entry, index) => { From f581187e93af9b0969802b37c228eecb6a7a5902 Mon Sep 17 00:00:00 2001 From: cha0sg0d Date: Mon, 4 Oct 2021 14:00:34 -0400 Subject: [PATCH 7/8] refactor logic for more modularity and exports, and for prospected foundries --- plugins/hooks/use-colossus.ts | 206 +++++++++++++++++++++++++--------- 1 file changed, 151 insertions(+), 55 deletions(-) diff --git a/plugins/hooks/use-colossus.ts b/plugins/hooks/use-colossus.ts index 73c27b5..f917e4e 100644 --- a/plugins/hooks/use-colossus.ts +++ b/plugins/hooks/use-colossus.ts @@ -1,10 +1,20 @@ import { DFAnimation, Planet, PlanetType } from "@darkforest_eth/types"; import { ethers } from "ethers"; import { getPlanetName } from "../lib/darkforest"; +import { isFindableClient, isProspectable } from "../helpers/df"; import { useState } from "preact/hooks"; import { useContract, usePlayer, useSelectedPlanet, useCoreContract, useGasPrice } from '.' + +enum ColossusStatus { + NotRegisteredOrOwned = "NotRegisteredOrOwned", + Registered = "REGISTERED", + Owned = "OWNED", + RegisteredAndOwned = "REGISTEREDANDOWNED", +} + export function useColossus() { + const { colossus, coreContract } = useContract() const player = usePlayer() const selectedPlanet = useSelectedPlanet(); @@ -16,6 +26,7 @@ export function useColossus() { df.terminal.current.println(msg); }; + const getRandomActionId = () => { const hex = "0123456789abcdef"; @@ -25,7 +36,6 @@ export function useColossus() { } return ret; }; - const confirmedRegisteredPlanets = async (planets: Planet[]) => { let confirmedPlanets: Array = []; @@ -36,9 +46,9 @@ export function useColossus() { if (registrar == player.address) { confirmedPlanets.push(p); - print(`dao recognizes ${pName} is owned by player`); + print(`colossus recognizes ${pName} is owned by player`); } else { - print(`dao DOESNT recognize ${pName} is owned by player`); + print(`colossus DOESNT recognize ${pName} is owned by player`); } } return confirmedPlanets; @@ -48,20 +58,19 @@ export function useColossus() { // await bulkPlanetRefresh(planets); let confirmedPlanets = []; for (let p of planets) { - console.log(`confirmed check`, p); const pName = getPlanetName(p.locationId); const id = ethers.BigNumber.from(`0x${p.locationId}`); - console.log('AA', coreContract, id) const planet = await coreContract.planets(id); if (planet.owner == colossus.address) { confirmedPlanets.push(p); - print(`${pName} is owned by dao`); + print(`${pName} is owned by colossus`); } else { - print(`${pName} is not owned by dao`); + print(`${pName} is not owned by colossus`); } } return confirmedPlanets; }; + const confirmedPlayerOwners = async (planets: Planet[]) => { // await bulkPlanetRefresh(planets); let confirmedPlanets = []; @@ -80,36 +89,34 @@ export function useColossus() { return confirmedPlanets; }; - const energy = (planet: Planet) => { - return Math.floor((planet.energy / planet.energyCap) * 100); - }; - - const isFoundry = (planet: Planet) => { - return planet.planetType == PlanetType.RUINS; - }; - - const canHaveArtifact = (planet: Planet) => { - return isFoundry(planet) && !planet.hasTriedFindingArtifact; + const bulkUiRefresh = async (planets: Planet[]) => { + const locationIds = planets.map((p) => p.locationId); + // @ts-expect-error + await df.bulkHardRefreshPlanets(locationIds); }; - const enoughEnergyToProspect = (planet: Planet) => { - return energy(planet) >= 96; - }; + const getColossusStatus = async (planet: Planet): Promise => { + const isRegistered = (await confirmedRegisteredPlanets([planet])).length; + const isOwned = (await confirmedDaoOwners([planet])).length; + let status: ColossusStatus; + if (isRegistered && isOwned) { + status = ColossusStatus.RegisteredAndOwned; + } + else if (isRegistered && !isOwned) { + status = ColossusStatus.Registered; + } + else if (!isRegistered && isOwned) { + status = ColossusStatus.Owned; + } + else { + status = ColossusStatus.NotRegisteredOrOwned + } - function isProspectable(planet: Planet) { - return ( - isFoundry(planet) && - planet.prospectedBlockNumber === undefined && - !planet.unconfirmedProspectPlanet - ); + return status; } const getProspectablePlanets = async (planets: Planet[]) => { - let prospectablePlanets = planets - .filter(canHaveArtifact) - .filter(isProspectable) - .filter(enoughEnergyToProspect); - + let prospectablePlanets = planets.filter(isProspectable); return prospectablePlanets; }; @@ -126,24 +133,6 @@ export function useColossus() { return prospectedBlockNumber !== 0 && !hasTriedFindingArtifact }; - const blocksLeftToProspectExpiration = ( - currentBlockNumber: number, - prospectedBlockNumber: number - ) => { - return (prospectedBlockNumber || 0) + 255 - currentBlockNumber; - }; - const prospectExpired = ( - currentBlockNumber: number, - prospectedBlockNumber: number - ) => { - return ( - blocksLeftToProspectExpiration( - currentBlockNumber, - prospectedBlockNumber - ) <= 0 - ); - }; - const checkDaoOwnership = async () => { if (!selectedPlanet) { print(`no planet selected to check`); @@ -153,10 +142,9 @@ export function useColossus() { const pName = getPlanetName(selectedPlanet); const pBigNumber = ethers.BigNumber.from(`0x${selectedPlanet}`); const owner = await colossus.planetOwners(pBigNumber); - print(`dao says ${pName} is owned by ${owner}`); + print(`colossus says ${pName} is owned by ${owner}`); }; - // TODO: import findMoveArgs type const processAndReturnPlanets = async ( rips: Planet[], findArgsList: any[] @@ -235,10 +223,9 @@ export function useColossus() { // setError(`error mining transfer calls: ${JSON.stringify(error)}`) } - print(`transferred ${numTransferred} planets to dao`); + print(`transferred ${numTransferred} planets to colossus`); }; - const returnSelected = async () => { // @ts-expect-error const planet = await df.getPlanetWithId(selectedPlanet); @@ -249,7 +236,6 @@ export function useColossus() { } }; - const makeFindArtifactArgs = async (planets: Planet[]) => { let findArgsList = []; for (let p of planets) { @@ -288,7 +274,7 @@ export function useColossus() { console.log(`locIDs`, locationIds); if (locationIds.length == 0) { - print(`no owned planets to register with dao`); + print(`no owned planets to register with colossus`); return; } @@ -321,6 +307,113 @@ export function useColossus() { await updatePlanetOwners([planet]); } + const handleRegistration = async (planets: Planet[]) => { + print(`registering ${planets.length} w colossus... (block needs to be mined)`); + await updatePlanetOwners(planets); + const confirmedRegistered = await confirmedRegisteredPlanets(planets); + print(`registered ${confirmedRegistered.length} owners w colossus`); + if (confirmedRegistered.length == 0) { + print(`register failed, returning...`); + return []; + } + return confirmedRegistered; + } + + const handleTransfer = async (planets: Planet[]) => { + print(`transferring ${planets.length} to colossus...`); + await transferPlanets(planets); + await bulkUiRefresh(planets); + const confirmedOwned = await confirmedDaoOwners(planets); + print(`transferred ${confirmedOwned.length} planets to colossus`); + if (confirmedOwned.length == 0) { + print(`register failed, returning...`); + return []; + } + return confirmedOwned; + } + + /* only handles one planet for now */ + const makeConfirmedPlanets = async (planets: Planet[]) => { + let confirmedPlanets: Array = []; + if (planets.length == 0) { + return confirmedPlanets; + } + if (planets.length == 1) { + const planet = planets[0]; + const status = await getColossusStatus(planet); + if (status == ColossusStatus.NotRegisteredOrOwned) { + const registered = await handleRegistration([planet]); + confirmedPlanets = await handleTransfer(registered); + } + else if (status == ColossusStatus.Registered) { + confirmedPlanets = await handleTransfer([planet]); + } + else if (status == ColossusStatus.Owned) { + print(`this should never happen`); + confirmedPlanets = []; + } + else if (status == ColossusStatus.RegisteredAndOwned) { + confirmedPlanets = [planet]; + } + } + else { + const registered = await handleRegistration(planets); + confirmedPlanets = await handleTransfer(registered); + } + return confirmedPlanets; + + } + /* takes one prospected foundry through the colossus loop */ + const handleFindAndReturn = async (planet: Planet) => { + const pName = getPlanetName(planet.locationId); + if (isFindableClient(planet)) { + print(`${pName} is findable...`) + + const confirmedPlanets = await makeConfirmedPlanets([planet]); + + if(confirmedPlanets.length == 0) { + print(`planet is not valid candidate`); + return; + } + /* assume that planet is registered and owned by colossus */ + const findArgs = await makeFindArtifactArgs(confirmedPlanets); + console.log(`findArgs`, findArgs); + // process and return the planet + await processAndReturnPlanets([], findArgs); + const returned = await confirmedPlayerOwners(confirmedPlanets); + print(`returned ${returned.length} planets to player`) + if (returned.length == 0) { + print(`~ ERROR RETURNING ~ please manually retrieve your planet with Return Selected button`) + return; + } + // @ts-expect-error + await df.hardRefreshPlanet(planet.locationId); + print(`finished foundry cycle`); + return planet; + } + else { + print(`${pName} is not findable. Returning...`) + if (isProspectable(planet)) print(`prospect this foundry first!`); + return null; + } + } + + const handleWithdrawAndReturn = async (planets: Planet[]) => { + /* sanity check */ + const rips = planets.filter((p) => p.planetType == PlanetType.TRADING_POST); + const confirmedPlanets = await makeConfirmedPlanets(rips); + await processAndReturnPlanets(confirmedPlanets, []); + await bulkUiRefresh(rips); + const returned = await confirmedPlayerOwners(confirmedPlanets); + print(`returned ${returned.length} planets to player`) + if (returned.length == 0) { + print(`~ ERROR RETURNING ~ please manually retrieve your planet with Return Selected button`) + return; + } + print(`finished rip cycle`); + return returned; + } + return { transferPlanets, processAndReturnPlanets, @@ -329,10 +422,13 @@ export function useColossus() { checkDaoOwnership, readyToFind, handleFind, + handleFindAndReturn, + handleWithdrawAndReturn, registerOwnership, getRandomActionId, getProspectablePlanets, isFindable, + makeFindArtifactArgs, confirmedDaoOwners, confirmedPlayerOwners, confirmedRegisteredPlanets, From 690cfcefb6b09bddb5d355ff837b0ee147d96e97 Mon Sep 17 00:00:00 2001 From: cha0sg0d Date: Mon, 4 Oct 2021 14:01:55 -0400 Subject: [PATCH 8/8] module exports and find prospected foundries --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index f785be0..c5772e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "dev", - "version": "1.0.0", + "version": "1.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 27aeec2..7a096e6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dev", - "version": "1.0.0", + "version": "1.0.1", "description": "", "homepage": "https://astralcolossus.xyz", "main": "index.js",