Skip to content

Commit 688d8fb

Browse files
committed
prepare for getting resources from chain
1 parent 862d96d commit 688d8fb

File tree

1 file changed

+29
-23
lines changed
  • packages/cli/package/src/lib/configs/project/provider

1 file changed

+29
-23
lines changed

packages/cli/package/src/lib/configs/project/provider/provider4.ts

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ import { stringify } from "yaml";
2626
import { versions } from "../../../../versions.js";
2727
import { ajv, validationErrorToString } from "../../../ajvInstance.js";
2828
import { commandObj } from "../../../commandObj.js";
29+
import { CLI_NAME_FULL } from "../../../const.js";
30+
// import { getReadonlyContracts } from "../../../dealClient.js";
2931
import { stringifyUnknown } from "../../../helpers/stringifyUnknown.js";
3032
import { numToStr } from "../../../helpers/typesafeStringify.js";
3133
import { splitErrorsAndResults } from "../../../helpers/utils.js";
@@ -1039,6 +1041,10 @@ export enum OnChainResourceType {
10391041
GPU,
10401042
}
10411043

1044+
function isOnChainResourceType(value: unknown): value is OnChainResourceType {
1045+
return typeof value === "number" && value in OnChainResourceType;
1046+
}
1047+
10421048
export const resourceTypeToOnChainResourceType: Record<
10431049
ResourceType,
10441050
OnChainResourceType
@@ -1488,62 +1494,53 @@ const resourcesMock = [
14881494
ty: OnChainResourceType.VCPU,
14891495
metadata:
14901496
'{"manufacturer":"Intel","brand":"Xeon","architecture":"x86_64","generation":"Skylake"}',
1491-
resourceId:
1492-
"0x111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC1",
1497+
id: "0x111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC1",
14931498
},
14941499
{
14951500
ty: OnChainResourceType.VCPU,
14961501
metadata:
14971502
'{"manufacturer":"AMD","brand":"EPYC","architecture":"x86_64","generation":"Rome"}',
1498-
resourceId:
1499-
"0x211122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC1",
1503+
id: "0x211122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC1",
15001504
},
15011505
{
15021506
ty: OnChainResourceType.RAM,
15031507
metadata: '{"type":"DDR4","generation":"4"}',
1504-
resourceId:
1505-
"0x111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC2",
1508+
id: "0x111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC2",
15061509
},
15071510
{
15081511
ty: OnChainResourceType.RAM,
15091512
metadata: '{"type":"DDR4","generation":"5"}',
1510-
resourceId:
1511-
"0x211122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC2",
1513+
id: "0x211122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC2",
15121514
},
15131515
{
15141516
ty: OnChainResourceType.STORAGE,
15151517
metadata: '{"type":"SSD"}',
1516-
resourceId:
1517-
"0x111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC3",
1518+
id: "0x111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC3",
15181519
},
15191520
{
15201521
ty: OnChainResourceType.STORAGE,
15211522
metadata: '{"type":"HDD"}',
1522-
resourceId:
1523-
"0x211122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC3",
1523+
id: "0x211122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC3",
15241524
},
15251525
{
15261526
ty: OnChainResourceType.NETWORK_BANDWIDTH,
15271527
metadata: '{"type":"shared"}',
1528-
resourceId:
1529-
"0x111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC4",
1528+
id: "0x111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC4",
15301529
},
15311530
{
15321531
ty: OnChainResourceType.PUBLIC_IP,
15331532
metadata: '{"version":"IPv4"}',
1534-
resourceId:
1535-
"0x111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC5",
1533+
id: "0x111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC5",
15361534
},
15371535
{
15381536
ty: OnChainResourceType.GPU,
15391537
metadata: '{"manufacturer":"Nvidia","model":"RTX 3090"}',
1540-
resourceId:
1541-
"0x111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC6",
1538+
id: "0x111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCC6",
15421539
},
15431540
] as const satisfies {
15441541
ty: OnChainResourceType;
15451542
metadata: string;
1546-
resourceId: string;
1543+
id: string;
15471544
}[];
15481545

15491546
async function getResources() {
@@ -1565,6 +1562,7 @@ async function getResourcesFromChain(): Promise<ChainResources> {
15651562
}
15661563

15671564
async function getResourcesFromChainImpl(): Promise<ChainResources> {
1565+
// TODO: get resources from chain
15681566
// const { readonlyContracts } = await getReadonlyContracts();
15691567
// const resources = await readonlyContracts.diamond.getResources();
15701568
const resources = await getResources();
@@ -1577,13 +1575,21 @@ async function getResourcesFromChainImpl(): Promise<ChainResources> {
15771575
ip: {},
15781576
};
15791577

1580-
for (const { metadata, resourceId, ty } of resources) {
1581-
if (ty === OnChainResourceType.GPU) {
1578+
for (const { metadata, id, ty } of resources) {
1579+
const onChainResourceType = Number(ty);
1580+
1581+
if (!isOnChainResourceType(onChainResourceType)) {
1582+
commandObj.error(
1583+
`Unknown resource type: ${color.yellow(onChainResourceType)}. You may need to update ${CLI_NAME_FULL}`,
1584+
);
1585+
}
1586+
1587+
if (onChainResourceType === OnChainResourceType.GPU) {
15821588
continue;
15831589
}
15841590

1585-
const resourceType = onChainResourceTypeToResourceType[ty];
1586-
const resourceIdWithoutPrefix = resourceId.slice(2);
1591+
const resourceType = onChainResourceTypeToResourceType[onChainResourceType];
1592+
const resourceIdWithoutPrefix = id.slice(2);
15871593

15881594
try {
15891595
const parsedMetadata = JSON.parse(metadata);

0 commit comments

Comments
 (0)