Skip to content

feat(1739): schedule transaction implementation#1752

Open
mmyslblocky wants to merge 8 commits intomainfrom
feat/1739-schedule-transaction-implementation
Open

feat(1739): schedule transaction implementation#1752
mmyslblocky wants to merge 8 commits intomainfrom
feat/1739-schedule-transaction-implementation

Conversation

@mmyslblocky
Copy link
Copy Markdown
Contributor

@mmyslblocky mmyslblocky commented Mar 31, 2026

Issue #1739
Issue #1741

Signed-off-by: mmyslblocky <michal.myslinski@blockydevs.com>
…:hiero-ledger/hiero-cli into feat/1739-schedule-transaction-implementation
@mmyslblocky mmyslblocky requested a review from a team as a code owner March 31, 2026 15:25
@mmyslblocky mmyslblocky changed the title Feat/1739 schedule transaction implementation feat(1739): schedule transaction implementation Mar 31, 2026
@github-actions
Copy link
Copy Markdown

Unit Test Results

1 100 tests  ±0   1 100 ✅ ±0   1m 45s ⏱️ +3s
  113 suites ±0       0 💤 ±0 
    1 files   ±0       0 ❌ ±0 

Results for commit 16e0e26. ± Comparison against base commit 3bfb547.

@github-actions
Copy link
Copy Markdown

Integration Test Results

37 tests  ±0   35 ✅ ±0   3m 52s ⏱️ -1s
21 suites ±0    2 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 16e0e26. ± Comparison against base commit 3bfb547.

Signed-off-by: mmyslblocky <michal.myslinski@blockydevs.com>
Signed-off-by: mmyslblocky <michal.myslinski@blockydevs.com>
Signed-off-by: mmyslblocky <michal.myslinski@blockydevs.com>
Signed-off-by: mmyslblocky <michal.myslinski@blockydevs.com>
Comment on lines +9 to +22
export const ScheduleVerifyInputSchema = z
.object({
name: AliasNameSchema.optional().describe(
'Local alias of a schedule created with schedule create',
),
scheduleId: EntityIdSchema.optional().describe(
'Schedule id (0.0.x) when not using a saved name',
),
keyManager: KeyManagerTypeSchema.optional(),
})
.refine(
(schema) => !(schema.name && schema.scheduleId),
'Either schedule name or schedule ID must be provided',
);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that alias or id should be required, right? Right now validation will only reject if the user will pass both parameters

name: 'create',
summary: 'Register a named schedule in local state',
description:
'Like batch create: stores a name and schedule options (admin, execution payer, memo, expiration, wait-for-expiry). Use --scheduled <name> on a supported transaction command to submit ScheduleCreateTransaction.',
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to keep "Like batch create" here in the description?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also in general: do we want to use a technical language in the description like submit ScheduleCreateTransaction etc? Correct me if I'm wrong but I'm pretty sure that we don't do that anywhere else like that.

type: OptionType.STRING,
required: false,
description:
'Account id or key reference for the execution fee payer (optional)',
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we don't need to write (optional) - it's enough to not say (required), right?

@@ -0,0 +1,764 @@
### ADR-011: Schedule Transaction Plugin
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General documentation for schedule plugin is missing like README.

Comment on lines +885 to +886
expect(result.creator_account_id).toBe('0.0.1234');
expect(result.payer_account_id).toBe('0.0.1234');
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please do not use string literals. Maybe it's worth to change the name of MOCK_CONTRACT_ID to somrhing more generic so we can reuse it across the tests? Just a suggestion.

topicId?: string;
contractId?: string;
topicSequenceNumber?: number;
/** Present on ScheduleCreateTransaction receipts when the schedule entity is created. */
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need this comment?

piotrswierzy
piotrswierzy previously approved these changes Apr 1, 2026
Signed-off-by: mmyslblocky <michal.myslinski@blockydevs.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants