Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
zapaz committed Apr 24, 2024
1 parent 1cf1f19 commit 0a8e35f
Show file tree
Hide file tree
Showing 12 changed files with 113 additions and 68 deletions.
9 changes: 7 additions & 2 deletions common/src/common/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ const addresses = JSON.parse(JSON.stringify(addressesRaw));
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return
const getAddresses = (chainId: number | string): AddressesType | undefined => addresses[String(chainId)];

const getAddressOpenNFTsTemplate = (chainId: number): string => getAddresses(chainId)?.OpenNFTsV4 || "";
const getAddressOpenAutoMarket = (chainId: number): string => getAddresses(chainId)?.OpenAutoMarket || "";

// GET OpenMulti address
const getOpenBound = (chainId: number): string => getAddresses(chainId)?.OpenBound || "";
const hasOpenBound = (chainId: number): boolean => isAddress(getOpenBound(chainId));
Expand Down Expand Up @@ -113,11 +116,11 @@ const textShort = (str: string, n = 16, p = n): string => {
return str.substring(0, n) + (l < n ? "" : "..." + (p > 0 ? str.substring(l - p, l) : ""));
};

const getShortAddress = (address: string, n = 8): string =>
const getShortAddress = (address: string, n = 4): string =>
address
? address.endsWith(".eth")
? textShort(address, 2 * n, 0)
: textShort(getChecksumAddress(address), n, n)
: textShort(getChecksumAddress(address), n + 2, n)
: "?";

// GENERIC helpers
Expand Down Expand Up @@ -362,6 +365,8 @@ export {
getShortAddress,
getChecksumAddress,
getAddresses,
getAddressOpenNFTsTemplate,
getAddressOpenAutoMarket,
getOpenBound,
hasOpenBound,
getDappUrl,
Expand Down
4 changes: 4 additions & 0 deletions contracts/addresses.json
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,10 @@
"chainName": "fantom"
},
"31337": {
"OpenAutoMarket": "0xd771D7C0e1EBE89C9E9F663824851BB89b926d1a",
"OpenNFTsFactoryV3": "0x0116686E2291dbd5e317F47faDBFb43B599786Ef",
"OpenNFTsResolver": "0x9bAaB117304f7D6517048e371025dB8f89a8DbE5",
"OpenNFTsV4": "0x31A65C6d4EB07ad51E7afc890aC3b7bE84dF2Ead",
"chainName": "local"
},
"3441005": {
Expand Down
4 changes: 2 additions & 2 deletions contracts/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"build:typechain": "typechain --target ethers-v5 --out-dir types out/**/*.json",
"check": "pnpm check:solidity",
"check:solidity": "solhint src/**/*.sol",
"deploy:deploy": "pnpm deploy:all --fork-url $CHAIN --sender $SENDER --account $ACCOUNT --broadcast --with-gas-price 100000000 wei",
"deploy:deploy": "pnpm deploy:all --fork-url $CHAIN --sender $SENDER --account $ACCOUNT --broadcast",
"deploy:validate": "pnpm deploy:all --fork-url $CHAIN --sender $SENDER",
"deploy:testnet": "SENDER=$TESTNET_SENDER ACCOUNT=$TESTNET_ACCOUNT pnpm deploy:deploy",
"deploy:mainnet": "SENDER=$MAINNET_SENDER ACCOUNT=$MAINNET_ACCOUNT pnpm deploy:deploy",
Expand All @@ -44,4 +44,4 @@
"tests": "pnpm tests:forge",
"tests:forge": "forge test"
}
}
}
2 changes: 1 addition & 1 deletion contracts/scripts/deploy/DeployOpenAutoMarket.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ contract DeployOpenAutoMarket is DeployLite {
if (state == DeployState.None) {
vm.startBroadcast();

address openAutoMarket = deployLite("OpenAutoMarket", "");
address openAutoMarket = deploy("OpenAutoMarket", "");

bool[] memory options = new bool[](2);
options[0] = true;
Expand Down
9 changes: 1 addition & 8 deletions contracts/scripts/deploy/DeployOpenNFTsFactoryV3.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,11 @@ import {console} from "forge-std/console.sol";
contract DeployOpenNFTsFactoryV3 is DeployLite {
function deployOpenNFTsFactoryV3() public returns (address) {
address treasuryAccount = vm.envAddress("TREASURY_ACCOUNT");
console.log("deployOpenNFTsFactoryV3 ~ treasuryAccount:", treasuryAccount);
uint96 treasuryFee = 90;

bytes memory args = abi.encode(msg.sender, treasuryAccount, treasuryFee);
DeployState state = deployState("OpenNFTsFactoryV3");

if (state == DeployState.None) {
vm.broadcast();
deployLite("OpenNFTsFactoryV3", args);
}

return readAddress("OpenNFTsFactoryV3");
return deployLite("OpenNFTsFactoryV3", args);
}

function run() public virtual {
Expand Down
4 changes: 2 additions & 2 deletions contracts/scripts/deploy/DeployOpenNFTsResolver.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ contract DeployOpenNFTsResolver is DeployLite, DeployOpenNFTsFactoryV3 {
bytes memory args = abi.encode(msg.sender, openNFTsFactoryV3);
DeployState state = deployState("OpenNFTsResolver");


if (state == DeployState.None) {
vm.startBroadcast();

address openNFTsResolver = deployLite("OpenNFTsResolver", args);
address openNFTsResolver = deploy("OpenNFTsResolver", args);

OpenNFTsFactoryV3(openNFTsFactoryV3).setResolver(openNFTsResolver);

Expand Down
3 changes: 1 addition & 2 deletions contracts/scripts/deploy/DeployOpenNFTsV4.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ contract DeployOpenNFTsV4 is DeployLite {

if (state == DeployState.None) {
vm.startBroadcast(msg.sender);

address openNFTsV4 = deployLite("OpenNFTsV4", "");
address openNFTsV4 = deploy("OpenNFTsV4", "");

bool[] memory options = new bool[](1);
options[0] = true;
Expand Down
41 changes: 3 additions & 38 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion providers/src/callResolver.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import call from "@kredeum/providers/src/call";
import call from "./call";
import networks from "./networks";

const callResolver = (() => {
Expand Down
2 changes: 1 addition & 1 deletion svelte/src/components/Account/Account.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
<img src={accountAvatar} width="30px" alt="avatar" /> &nbsp;&nbsp;
{/if}
<span id="metamaskAccount">
{getShortAddress(accountName, 10)}&nbsp;&nbsp;&nbsp;&nbsp;
{getShortAddress(accountName, 8)}&nbsp;&nbsp;&nbsp;&nbsp;
</span>
</div>
</div>
Expand Down
1 change: 1 addition & 0 deletions sveltekit/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
"dependencies": {
"@kredeum/common": "workspace:^",
"@kredeum/providers": "workspace:^",
"@kredeum/contracts": "workspace:^",
"@kredeum/svelte": "workspace:^"
}
}
100 changes: 89 additions & 11 deletions sveltekit/src/routes/stats/+page.svelte
Original file line number Diff line number Diff line change
@@ -1,21 +1,99 @@
<script lang="ts">
import addressesAll from "../../../../contracts/addresses.json";
import { resolverGetExplorerUrl, resolverGetAddress } from "@kredeum/common/src/resolver/resolver-get";
import { factoryGetExplorerUrl, factoryGetAddress } from "@kredeum/common/src/common/factory-get";
import { networks } from "@kredeum/common/src/common/networks";
import {
getShortAddress,
getAddressOpenNFTsTemplate,
getAddressOpenAutoMarket,
explorerContractUrl
} from "@kredeum/common/src/common/config";
type Addresses = {
chainName: string;
OpenNFTsResolver?: string;
};
console.log("addressesAll:", addressesAll);
const addressesMap = new Map(Object.entries(addressesAll));
console.log("addressesMap:", addressesMap);
</script>

<h1>Stats</h1>

<ul>
{#each addressesMap as [chainId, addresses]}
<li>#{chainId} {addresses.chainName} {"OpenNFTsResolver" in addresses ? addresses.OpenNFTsResolver : ""}</li>
<li>#{chainId} {addresses.chainName} {(addresses as Addresses).OpenNFTsResolver ?? ""}</li>
{/each}
</ul>
<table>
<thead>
<tr>
<th>Chain ID</th>
<th>Chain Name</th>
<th>Collections<br />Count</th>
<th>OpenNFTs<br />Resolver</th>
<th>OpenNFTs<br />Factory</th>
<th>OpenNFTsV4<br />Template</th>
<th>OpenAutoMarket<br />Template</th>
</tr>
</thead>
<tbody>
{#each networks.getAllSameType(1) as network}
<tr>
<td>{network.chainId}</td>
<td>{network.chainName}</td>
<td>000</td>

<td class="addr">
<a href={resolverGetExplorerUrl(network.chainId)} target="_blank">
{getShortAddress(resolverGetAddress(network.chainId))}
</a>
</td>
<td class="addr">
<a href={factoryGetExplorerUrl(network.chainId)} target="_blank">
{getShortAddress(factoryGetAddress(network.chainId))}
</a>
</td>
<td class="addr">
<a href={explorerContractUrl(network.chainId, getAddressOpenNFTsTemplate(network.chainId))} target="_blank">
{getShortAddress(getAddressOpenNFTsTemplate(network.chainId))}
</a>
</td>
<td class="addr">
<a href={explorerContractUrl(network.chainId, getAddressOpenAutoMarket(network.chainId))} target="_blank">
{getShortAddress(getAddressOpenAutoMarket(network.chainId))}
</a>
</td>
</tr>
{/each}
</tbody>
</table>

<style>
table {
border-collapse: collapse;
margin-left: 20px;
}
th,
td {
padding: 8px;
text-align: right;
border-bottom: 1px solid #ddd;
}
th {
background-color: #f2f2f2;
}
tr:hover {
background-color: #f5f5f5;
}
.addr {
font-family: "Courier New", monospace;
}
.addr a {
color: #007bff;
text-decoration: none;
transition: color 0.2s;
}
.addr a:hover {
color: #0056b3;
text-decoration: underline;
}
</style>

0 comments on commit 0a8e35f

Please sign in to comment.