Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/cw2 info #230

Merged
merged 6 commits into from
Mar 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Features

- [#230](https://github.com/alleslabs/celatone-frontend/pull/230) Add cw2info to code table
- [#228](https://github.com/alleslabs/celatone-frontend/pull/228) Add Faucet testnet page
- [#79](https://github.com/alleslabs/celatone-frontend/pull/79) Add dropdown menu and wireup up json attach funds
- [#225](https://github.com/alleslabs/celatone-frontend/pull/225) Add assets section in account details page
Expand Down
36 changes: 18 additions & 18 deletions src/lib/gql/gql.ts

Large diffs are not rendered by default.

73 changes: 73 additions & 0 deletions src/lib/gql/graphql.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1439,6 +1439,8 @@ export type Codes = {
contracts: Array<Contracts>;
/** An aggregate relationship */
contracts_aggregate: Contracts_Aggregate;
cw2_contract?: Maybe<Scalars["String"]>;
cw2_version?: Maybe<Scalars["String"]>;
id: Scalars["Int"];
/** An object relationship */
transaction?: Maybe<Transactions>;
Expand Down Expand Up @@ -1599,6 +1601,8 @@ export type Codes_Bool_Exp = {
contract_instantiated?: InputMaybe<Int_Comparison_Exp>;
contracts?: InputMaybe<Contracts_Bool_Exp>;
contracts_aggregate?: InputMaybe<Contracts_Aggregate_Bool_Exp>;
cw2_contract?: InputMaybe<String_Comparison_Exp>;
cw2_version?: InputMaybe<String_Comparison_Exp>;
id?: InputMaybe<Int_Comparison_Exp>;
transaction?: InputMaybe<Transactions_Bool_Exp>;
transaction_id?: InputMaybe<Int_Comparison_Exp>;
Expand Down Expand Up @@ -1628,6 +1632,8 @@ export type Codes_Insert_Input = {
contract_histories?: InputMaybe<Contract_Histories_Arr_Rel_Insert_Input>;
contract_instantiated?: InputMaybe<Scalars["Int"]>;
contracts?: InputMaybe<Contracts_Arr_Rel_Insert_Input>;
cw2_contract?: InputMaybe<Scalars["String"]>;
cw2_version?: InputMaybe<Scalars["String"]>;
id?: InputMaybe<Scalars["Int"]>;
transaction?: InputMaybe<Transactions_Obj_Rel_Insert_Input>;
transaction_id?: InputMaybe<Scalars["Int"]>;
Expand All @@ -1639,6 +1645,8 @@ export type Codes_Max_Fields = {
__typename?: "codes_max_fields";
access_config_permission?: Maybe<Scalars["String"]>;
contract_instantiated?: Maybe<Scalars["Int"]>;
cw2_contract?: Maybe<Scalars["String"]>;
cw2_version?: Maybe<Scalars["String"]>;
id?: Maybe<Scalars["Int"]>;
transaction_id?: Maybe<Scalars["Int"]>;
uploader?: Maybe<Scalars["Int"]>;
Expand All @@ -1648,6 +1656,8 @@ export type Codes_Max_Fields = {
export type Codes_Max_Order_By = {
access_config_permission?: InputMaybe<Order_By>;
contract_instantiated?: InputMaybe<Order_By>;
cw2_contract?: InputMaybe<Order_By>;
cw2_version?: InputMaybe<Order_By>;
id?: InputMaybe<Order_By>;
transaction_id?: InputMaybe<Order_By>;
uploader?: InputMaybe<Order_By>;
Expand All @@ -1658,6 +1668,8 @@ export type Codes_Min_Fields = {
__typename?: "codes_min_fields";
access_config_permission?: Maybe<Scalars["String"]>;
contract_instantiated?: Maybe<Scalars["Int"]>;
cw2_contract?: Maybe<Scalars["String"]>;
cw2_version?: Maybe<Scalars["String"]>;
id?: Maybe<Scalars["Int"]>;
transaction_id?: Maybe<Scalars["Int"]>;
uploader?: Maybe<Scalars["Int"]>;
Expand All @@ -1667,6 +1679,8 @@ export type Codes_Min_Fields = {
export type Codes_Min_Order_By = {
access_config_permission?: InputMaybe<Order_By>;
contract_instantiated?: InputMaybe<Order_By>;
cw2_contract?: InputMaybe<Order_By>;
cw2_version?: InputMaybe<Order_By>;
id?: InputMaybe<Order_By>;
transaction_id?: InputMaybe<Order_By>;
uploader?: InputMaybe<Order_By>;
Expand Down Expand Up @@ -1704,6 +1718,8 @@ export type Codes_Order_By = {
contract_histories_aggregate?: InputMaybe<Contract_Histories_Aggregate_Order_By>;
contract_instantiated?: InputMaybe<Order_By>;
contracts_aggregate?: InputMaybe<Contracts_Aggregate_Order_By>;
cw2_contract?: InputMaybe<Order_By>;
cw2_version?: InputMaybe<Order_By>;
id?: InputMaybe<Order_By>;
transaction?: InputMaybe<Transactions_Order_By>;
transaction_id?: InputMaybe<Order_By>;
Expand All @@ -1724,6 +1740,10 @@ export enum Codes_Select_Column {
/** column name */
ContractInstantiated = "contract_instantiated",
/** column name */
Cw2Contract = "cw2_contract",
/** column name */
Cw2Version = "cw2_version",
/** column name */
Id = "id",
/** column name */
TransactionId = "transaction_id",
Expand All @@ -1736,6 +1756,8 @@ export type Codes_Set_Input = {
access_config_addresses?: InputMaybe<Scalars["json"]>;
access_config_permission?: InputMaybe<Scalars["String"]>;
contract_instantiated?: InputMaybe<Scalars["Int"]>;
cw2_contract?: InputMaybe<Scalars["String"]>;
cw2_version?: InputMaybe<Scalars["String"]>;
id?: InputMaybe<Scalars["Int"]>;
transaction_id?: InputMaybe<Scalars["Int"]>;
uploader?: InputMaybe<Scalars["Int"]>;
Expand Down Expand Up @@ -1805,6 +1827,8 @@ export type Codes_Stream_Cursor_Value_Input = {
access_config_addresses?: InputMaybe<Scalars["json"]>;
access_config_permission?: InputMaybe<Scalars["String"]>;
contract_instantiated?: InputMaybe<Scalars["Int"]>;
cw2_contract?: InputMaybe<Scalars["String"]>;
cw2_version?: InputMaybe<Scalars["String"]>;
id?: InputMaybe<Scalars["Int"]>;
transaction_id?: InputMaybe<Scalars["Int"]>;
uploader?: InputMaybe<Scalars["Int"]>;
Expand Down Expand Up @@ -1836,6 +1860,10 @@ export enum Codes_Update_Column {
/** column name */
ContractInstantiated = "contract_instantiated",
/** column name */
Cw2Contract = "cw2_contract",
/** column name */
Cw2Version = "cw2_version",
/** column name */
Id = "id",
/** column name */
TransactionId = "transaction_id",
Expand Down Expand Up @@ -6904,6 +6932,8 @@ export type GetCodeListQueryQuery = {
id: number;
access_config_permission: string;
access_config_addresses: any;
cw2_contract?: string | null;
cw2_version?: string | null;
contracts_aggregate: {
__typename?: "contracts_aggregate";
aggregate?: {
Expand All @@ -6926,6 +6956,8 @@ export type GetCodeListByUserQueryQuery = {
id: number;
access_config_permission: string;
access_config_addresses: any;
cw2_contract?: string | null;
cw2_version?: string | null;
contracts_aggregate: {
__typename?: "contracts_aggregate";
aggregate?: {
Expand All @@ -6948,6 +6980,8 @@ export type GetCodeListByIDsQueryQuery = {
id: number;
access_config_permission: string;
access_config_addresses: any;
cw2_contract?: string | null;
cw2_version?: string | null;
contracts_aggregate: {
__typename?: "contracts_aggregate";
aggregate?: {
Expand All @@ -6970,6 +7004,8 @@ export type GetCodeDataByCodeIdQuery = {
id: number;
access_config_permission: string;
access_config_addresses: any;
cw2_contract?: string | null;
cw2_version?: string | null;
account: { __typename?: "accounts"; address: string };
transaction?: {
__typename?: "transactions";
Expand Down Expand Up @@ -6997,6 +7033,8 @@ export type GetCodeListByWalletAddressPaginationQuery = {
id: number;
access_config_permission: string;
access_config_addresses: any;
cw2_contract?: string | null;
cw2_version?: string | null;
contracts_aggregate: {
__typename?: "contracts_aggregate";
aggregate?: {
Expand Down Expand Up @@ -7150,6 +7188,8 @@ export type GetMigrationHistoriesByContractAddressQuery = {
block: { __typename?: "blocks"; height: number; timestamp: any };
code: {
__typename?: "codes";
cw2_contract?: string | null;
cw2_version?: string | null;
account: { __typename?: "accounts"; address: string };
};
}>;
Expand Down Expand Up @@ -7541,6 +7581,11 @@ export const GetCodeListQueryDocument = {
kind: "Field",
name: { kind: "Name", value: "access_config_addresses" },
},
{
kind: "Field",
name: { kind: "Name", value: "cw2_contract" },
},
{ kind: "Field", name: { kind: "Name", value: "cw2_version" } },
],
},
},
Expand Down Expand Up @@ -7690,6 +7735,11 @@ export const GetCodeListByUserQueryDocument = {
kind: "Field",
name: { kind: "Name", value: "access_config_addresses" },
},
{
kind: "Field",
name: { kind: "Name", value: "cw2_contract" },
},
{ kind: "Field", name: { kind: "Name", value: "cw2_version" } },
],
},
},
Expand Down Expand Up @@ -7809,6 +7859,11 @@ export const GetCodeListByIDsQueryDocument = {
kind: "Field",
name: { kind: "Name", value: "access_config_addresses" },
},
{
kind: "Field",
name: { kind: "Name", value: "cw2_contract" },
},
{ kind: "Field", name: { kind: "Name", value: "cw2_version" } },
],
},
},
Expand Down Expand Up @@ -7945,6 +8000,11 @@ export const GetCodeDataByCodeIdDocument = {
kind: "Field",
name: { kind: "Name", value: "access_config_addresses" },
},
{
kind: "Field",
name: { kind: "Name", value: "cw2_contract" },
},
{ kind: "Field", name: { kind: "Name", value: "cw2_version" } },
],
},
},
Expand Down Expand Up @@ -8125,6 +8185,11 @@ export const GetCodeListByWalletAddressPaginationDocument = {
kind: "Field",
name: { kind: "Name", value: "access_config_addresses" },
},
{
kind: "Field",
name: { kind: "Name", value: "cw2_contract" },
},
{ kind: "Field", name: { kind: "Name", value: "cw2_version" } },
],
},
},
Expand Down Expand Up @@ -9390,6 +9455,14 @@ export const GetMigrationHistoriesByContractAddressDocument = {
],
},
},
{
kind: "Field",
name: { kind: "Name", value: "cw2_contract" },
},
{
kind: "Field",
name: { kind: "Name", value: "cw2_version" },
},
],
},
},
Expand Down
6 changes: 4 additions & 2 deletions src/lib/model/code.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ import type {
CodeData,
PublicDetail,
Option,
PublicCodeData,
HumanAddr,
CodeInfo,
PublicCode,
} from "lib/types";
import { InstantiatePermission } from "lib/types";

Expand All @@ -27,7 +27,7 @@ export interface CodeDataState {
chainId: string;
codeData: Option<CodeData>;
publicProject: {
publicCodeData: Option<PublicCodeData>;
publicCodeData: Option<PublicCode>;
publicDetail: Option<PublicDetail>;
};
}
Expand Down Expand Up @@ -87,6 +87,8 @@ export const useSavedCodes = () => {
instantiatePermission:
rawSavedCode?.instantiatePermission ?? InstantiatePermission.UNKNOWN,
permissionAddresses: rawSavedCode?.permissionAddresses ?? [],
cw2Contract: rawSavedCode?.cw2Contract,
cw2Version: rawSavedCode?.cw2Version,
isSaved: true,
};
});
Expand Down
20 changes: 18 additions & 2 deletions src/lib/pages/code-details/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import { useCodeData } from "lib/model/code";
import { useCodeStore } from "lib/providers/store";
import { AmpEvent, AmpTrack } from "lib/services/amplitude";
import { InstantiatePermission } from "lib/types";
import { getFirstQueryParam, isCodeId } from "lib/utils";
import { getCw2Info, getFirstQueryParam, isCodeId } from "lib/utils";

import { CodeInfoSection } from "./components/CodeInfoSection";
import { CTASection } from "./components/CTASection";
Expand All @@ -34,6 +34,8 @@ const CodeDetailsBody = observer(

if (!codeData) return <InvalidCode />;

const cw2Info = getCw2Info(codeData.cw2Contract, codeData.cw2Version);

return (
<>
<Flex align="center" justify="space-between" mt={6}>
Expand All @@ -56,10 +58,22 @@ const CodeDetailsBody = observer(
</Flex>
<Flex gap={2}>
<Text fontWeight={500} color="text.dark" variant="body2">
Code ID
Code ID:
</Text>
<ExplorerLink type="code_id" value={codeId.toString()} />
</Flex>
<Flex gap={2}>
<Text fontWeight={500} color="text.dark" variant="body2">
CW2 Info:
</Text>
<Text
color={cw2Info ? "text.main" : "text.disabled"}
variant="body2"
wordBreak="break-all"
>
{cw2Info ?? "N/A"}
</Text>
</Flex>
</Flex>
<CTASection
id={codeId}
Expand All @@ -70,6 +84,8 @@ const CodeDetailsBody = observer(
}
permissionAddresses={codeData.permissionAddresses ?? []}
contractCount={undefined}
cw2Contract={undefined}
cw2Version={undefined}
/>
</Flex>
<Divider borderColor="pebble.700" my={12} />
Expand Down
13 changes: 12 additions & 1 deletion src/lib/pages/codes/components/CodesTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import {
CodeNameCell,
} from "lib/components/table";
import type { CodeInfo } from "lib/types";
import { getCw2Info } from "lib/utils";

// Types of Table: Recent Codes / My Stored Codes / My Saved Codes
type TableType = "recent" | "stored" | "saved";
Expand All @@ -47,7 +48,7 @@ interface OtherTBodyProps {
}

const TEMPLATE_COLUMNS =
"max(80px) minmax(320px, 1fr) max(120px) max(160px) minmax(320px, 0.75fr)";
"max(80px) minmax(300px, 1fr) minmax(220px, 1fr) max(120px) max(160px) minmax(320px, 0.75fr)";

const StateContainer = ({ children }: { children: ReactNode }) => (
<VStack
Expand Down Expand Up @@ -110,6 +111,7 @@ const CodeTableHead = () => (
>
<TableHeaderNoBorder>Code ID</TableHeaderNoBorder>
<TableHeaderNoBorder>Code Name</TableHeaderNoBorder>
<TableHeaderNoBorder>CW2 Info</TableHeaderNoBorder>
<TableHeaderNoBorder textAlign="center">Contracts</TableHeaderNoBorder>
<TableHeaderNoBorder>Uploader</TableHeaderNoBorder>
<TableHeaderNoBorder>Permission</TableHeaderNoBorder>
Expand All @@ -121,6 +123,7 @@ const CodeTableRow = ({ code }: CodesRowProps) => {
const goToCodeDetails = () => {
navigate({ pathname: `/code/${code.id}` });
};
const cw2Info = getCw2Info(code.cw2Contract, code.cw2Version);

return (
<Grid
Expand All @@ -144,6 +147,14 @@ const CodeTableRow = ({ code }: CodesRowProps) => {
<TableRowNoBorder>
<CodeNameCell code={code} />
</TableRowNoBorder>
<TableRowNoBorder>
<Text
color={cw2Info ? "text.main" : "text.disabled"}
wordBreak="break-all"
>
{cw2Info ?? "N/A"}
</Text>
</TableRowNoBorder>
<TableRowNoBorder>
<Text
variant="body2"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export const MigrationHeader = ({
<Grid templateColumns={templateColumns}>
<TableHeader>Code ID</TableHeader>
<TableHeader>Code Name</TableHeader>
<TableHeader>CW2 Info</TableHeader>
<TableHeader>Sender</TableHeader>
<TableHeader>Block Height</TableHeader>
<TableHeader>Timestamp</TableHeader>
Expand Down
Loading