Skip to content

Commit d4abe0e

Browse files
authored
feat: update deal interface (#1107)
* feat: update deal interface * rename and simplify * use separate getDealV2 * simplify * simplify
1 parent db2c75b commit d4abe0e

File tree

6 files changed

+37
-57
lines changed

6 files changed

+37
-57
lines changed

packages/cli/package/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
"whatwg-url": "^14.0.0"
5757
},
5858
"dependencies": {
59-
"@fluencelabs/deal-ts-clients": "0.23.2-feat-marketplace-v2-resources-d1eaf27-7661-1.0",
59+
"@fluencelabs/deal-ts-clients": "0.23.2-update-deal-interface-c153307-7773-1.0",
6060
"@kubernetes/client-node": "github:fluencelabs/kubernetes-client-javascript#e72ee00a52fec4eb4a8327632895d888ee504f4d",
6161
"@libp2p/crypto": "4.0.1",
6262
"@libp2p/peer-id-factory": "4.0.5",

packages/cli/package/src/commands/provider/deal-exit.ts

Lines changed: 20 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import {
2626
} from "../../lib/const.js";
2727
import {
2828
getContracts,
29-
getSignerAddress,
3029
multicallRead,
3130
populateTx,
3231
signBatch,
@@ -54,7 +53,6 @@ export default class DealExit extends BaseCommand<typeof DealExit> {
5453
async run(): Promise<void> {
5554
const { flags } = await initCli(this, await this.parse(DealExit));
5655
const { contracts } = await getContracts();
57-
const signerAddress = await getSignerAddress();
5856

5957
const dealIds =
6058
// flags.all
@@ -78,62 +76,45 @@ export default class DealExit extends BaseCommand<typeof DealExit> {
7876
}
7977

8078
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
81-
const workersFromRPC = (await multicallRead(
79+
const workerIdsFromRPC = (await multicallRead(
8280
dealIds.map((id): MulticallReadItem => {
83-
const deal = contracts.getDeal(id);
81+
const deal = contracts.getDealV2(id);
8482
return {
8583
target: id,
86-
callData: deal.interface.encodeFunctionData("getWorkers"),
84+
callData: deal.interface.encodeFunctionData("getWorkerIds"),
8785
decode(returnData) {
8886
return deal.interface.decodeFunctionResult(
89-
"getWorkers",
87+
"getWorkerIds",
9088
returnData,
9189
);
9290
},
9391
};
9492
}),
95-
)) as Awaited<ReturnType<ReturnType<Contracts["getDeal"]>["getWorkers"]>>[];
93+
)) as Awaited<
94+
ReturnType<ReturnType<Contracts["getDealV2"]>["getWorkerIds"]>
95+
>[];
9696

97-
const dealWorkers = dealIds.map((id, i) => {
98-
const deal = contracts.getDeal(id);
99-
const workers = workersFromRPC[i];
100-
101-
return {
102-
dealId: id,
103-
workers: (workers ?? [])
104-
.filter((worker) => {
105-
return worker.provider.toLowerCase() === signerAddress;
106-
})
107-
.map((worker) => {
108-
return { worker, deal };
109-
}),
110-
};
97+
const dealWorkerIds = dealIds.map((dealId, i) => {
98+
return { dealId, workerIds: workerIdsFromRPC[i] ?? [] };
11199
});
112100

113-
for (const { dealId, workers } of dealWorkers) {
114-
const [firstWorker, ...restWorkers] = workers;
115-
116-
if (firstWorker === undefined) {
117-
commandObj.warn(
118-
`No workers found for address ${signerAddress} and deal id: ${dealId}`,
119-
);
101+
for (const { dealId, workerIds } of dealWorkerIds) {
102+
const deal = contracts.getDealV2(dealId);
103+
const [firstWorkerId, ...restWorkerIds] = workerIds;
120104

105+
if (firstWorkerId === undefined) {
106+
commandObj.warn(`No workers found for deal id: ${dealId}`);
121107
continue;
122108
}
123109

124110
await signBatch({
125-
title: `Remove the following workers from deal ${dealId}:\n\n${workers
126-
.map(({ worker: { onchainId } }) => {
127-
return onchainId;
128-
})
129-
.join("\n")}`,
111+
title: `Remove the following workers from deal ${dealId}:\n\n${workerIds.join(
112+
"\n",
113+
)}`,
130114
populatedTxs: [
131-
populateTx(
132-
firstWorker.deal.removeWorker,
133-
firstWorker.worker.onchainId,
134-
),
135-
...restWorkers.map(({ deal, worker: { onchainId } }) => {
136-
return populateTx(deal.removeWorker, onchainId);
115+
populateTx(deal.removeWorker, firstWorkerId),
116+
...restWorkerIds.map((workerId) => {
117+
return populateTx(deal.removeWorker, workerId);
137118
}),
138119
],
139120
});

packages/cli/package/src/commands/provider/deal-rewards-info.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export default class DealRewardsInfo extends BaseCommand<
5656
(await input({ message: "Enter on-chain worker id" }));
5757

5858
const { readonlyContracts } = await getReadonlyContracts();
59-
const deal = readonlyContracts.getDeal(dealAddress);
59+
const deal = readonlyContracts.getDealV2(dealAddress);
6060
const rewardAmount = await deal.getRewardAmount(onChainWorkerId);
6161

6262
commandObj.log(

packages/cli/package/src/commands/provider/deal-rewards-withdraw.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
*/
1717

1818
import { BaseCommand } from "../../baseCommand.js";
19-
import { peerIdHexStringToBase58String } from "../../lib/chain/conversions.js";
2019
import { ptFormatWithSymbol } from "../../lib/chain/currencies.js";
2120
import { commandObj } from "../../lib/commandObj.js";
2221
import {
@@ -69,30 +68,30 @@ export default class DealRewardsWithdraw extends BaseCommand<
6968
const { contracts } = await getContracts();
7069

7170
for (const dealId of dealIds) {
72-
const deal = contracts.getDeal(dealId);
73-
const workers = await deal.getWorkers();
71+
const deal = contracts.getDealV2(dealId);
72+
const workersIds = await deal.getWorkerIds();
7473

7574
let providerRewards = 0n;
7675
let stakerRewards = 0n;
7776

78-
for (const { onchainId, peerId } of workers) {
79-
const rewardAmount = await deal.getRewardAmount(onchainId);
77+
for (const workerId of workersIds) {
78+
const rewardAmount = await deal.getRewardAmount(workerId);
8079

8180
if (
8281
rewardAmount.providerReward === 0n &&
8382
rewardAmount.stakerReward === 0n
8483
) {
8584
commandObj.logToStderr(
86-
`No rewards to withdraw for worker ${onchainId} (${await peerIdHexStringToBase58String(peerId)})`,
85+
`No rewards to withdraw for worker ${workerId}`,
8786
);
8887

8988
continue;
9089
}
9190

9291
const txReceipt = await sign({
93-
title: `Withdraw rewards for worker ${onchainId}`,
92+
title: `Withdraw rewards for worker ${workerId}`,
9493
method: deal.withdrawRewards,
95-
args: [onchainId],
94+
args: [workerId],
9695
});
9796

9897
const providerReward = getEventValue({
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"protocolVersion": 2,
3-
"chain-rpc": "docker.fluence.dev/chain-rpc:feat-marketplace-v2-resources-d1eaf27-7661-1",
4-
"chain-deploy-script": "docker.fluence.dev/chain-deploy-script:feat-marketplace-v2-resources-d1eaf27-7661-1",
5-
"subgraph-deploy-script": "docker.fluence.dev/subgraph-deploy-script:feat-marketplace-v2-resources-d1eaf27-7661-1"
3+
"chain-rpc": "docker.fluence.dev/chain-rpc:update-deal-interface-c153307-7773-1",
4+
"chain-deploy-script": "docker.fluence.dev/chain-deploy-script:update-deal-interface-c153307-7773-1",
5+
"subgraph-deploy-script": "docker.fluence.dev/subgraph-deploy-script:update-deal-interface-c153307-7773-1"
66
}

packages/cli/package/yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1964,7 +1964,7 @@ __metadata:
19641964
dependencies:
19651965
"@actions/core": "npm:1.11.1"
19661966
"@aws-sdk/lib-storage": "npm:^3.501.0"
1967-
"@fluencelabs/deal-ts-clients": "npm:0.23.2-feat-marketplace-v2-resources-d1eaf27-7661-1.0"
1967+
"@fluencelabs/deal-ts-clients": "npm:0.23.2-update-deal-interface-c153307-7773-1.0"
19681968
"@graphql-codegen/cli": "npm:^5.0.3"
19691969
"@graphql-codegen/typescript": "npm:^4.1.1"
19701970
"@graphql-codegen/typescript-graphql-request": "npm:^6.2.0"
@@ -2038,9 +2038,9 @@ __metadata:
20382038
languageName: unknown
20392039
linkType: soft
20402040

2041-
"@fluencelabs/deal-ts-clients@npm:0.23.2-feat-marketplace-v2-resources-d1eaf27-7661-1.0":
2042-
version: 0.23.2-feat-marketplace-v2-resources-d1eaf27-7661-1.0
2043-
resolution: "@fluencelabs/deal-ts-clients@npm:0.23.2-feat-marketplace-v2-resources-d1eaf27-7661-1.0"
2041+
"@fluencelabs/deal-ts-clients@npm:0.23.2-update-deal-interface-c153307-7773-1.0":
2042+
version: 0.23.2-update-deal-interface-c153307-7773-1.0
2043+
resolution: "@fluencelabs/deal-ts-clients@npm:0.23.2-update-deal-interface-c153307-7773-1.0"
20442044
dependencies:
20452045
"@graphql-typed-document-node/core": "npm:^3.2.0"
20462046
debug: "npm:^4.3.4"
@@ -2052,7 +2052,7 @@ __metadata:
20522052
graphql-tag: "npm:^2.12.6"
20532053
ipfs-http-client: "npm:^60.0.1"
20542054
multiformats: "npm:^13.0.1"
2055-
checksum: 10c0/de15f6704ce019eb5ed0f2f4a8a6714c1b3770eea0acba6c2cd5426c0ebdd5055a48f0c0262f4532bd1adfbde9f7490e483a0014616e14b0612a57b042a2a9c4
2055+
checksum: 10c0/b35fabbd4db97676a50b221805e048912553c84b65c9bd0b09274d5ced72a56f209ef20ddfd0a087fce36e8a82047a2ccfdbb906a94fe996f1d75c011f5f57cf
20562056
languageName: node
20572057
linkType: hard
20582058

0 commit comments

Comments
 (0)