Skip to content

Conversation

@Dkwcs
Copy link
Contributor

@Dkwcs Dkwcs commented Aug 19, 2025

Description of change

A new Move type has been introduced:

public struct IOTAccount has key {
  id: UID,
}

What can we do with the introduced account:

  • Create an IOTAccount instance.
  • Use account dynamic fields.
  • Rotate the public key handled by the IOTAccount struct.
  • Use basic authenticator functions.

Links to any relevant issues

Fixes #8238 .

@Dkwcs Dkwcs self-assigned this Aug 19, 2025
@Dkwcs Dkwcs added the vm-language Issues related to the VM & Language Team label Aug 19, 2025
@vercel
Copy link

vercel bot commented Aug 19, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

6 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
apps-backend Ignored Ignored Preview Sep 11, 2025 0:15am
apps-ui-kit Ignored Ignored Preview Comment Sep 11, 2025 0:15am
iota-evm-bridge Ignored Ignored Preview Sep 11, 2025 0:15am
iota-multisig-toolkit Ignored Ignored Preview Sep 11, 2025 0:15am
rebased-explorer Ignored Ignored Preview Sep 11, 2025 0:15am
wallet-dashboard Ignored Ignored Preview Comment Sep 11, 2025 0:15am

@Dkwcs Dkwcs requested a review from miker83z August 19, 2025 09:08
@iota-ci iota-ci added the sc-platform Issues related to the Smart Contract Platform group. label Aug 19, 2025
A verifier for validating `authenticate` functions introduced for
`Move Authentication` (Account Abstraction).
Contrary to other verifiers this shouldn't/can't be executed statically.
This is why it doesn't appear among the list of other verifiers in:
iota_verify_module_metered function.

By design it has to be executed during runtime, as it is only executed
for a single user specified function. The exact identity of this
function will not be known until runtime.
Additionally all relevant components which lacked documentation have been updated.`
…l gas

Otherwise we would need a new cut, which we don't want to have.
@valeriyr valeriyr force-pushed the vm-lang/aa-auth/8238-basic-abstracted-IOTA-account branch from 502da43 to bd23d71 Compare September 8, 2025 14:52
@valeriyr valeriyr changed the base branch from vm-lang/aa-auth/8116-feature-branch to vm-lang/aa-auth/8117-create_auth_info September 8, 2025 14:52
@valeriyr valeriyr force-pushed the vm-lang/aa-auth/8238-basic-abstracted-IOTA-account branch from d4dfee1 to 52761af Compare September 9, 2025 08:10
@TheMrAI TheMrAI force-pushed the vm-lang/aa-auth/8117-create_auth_info branch from 2a17efb to 6ac6db5 Compare September 9, 2025 08:35
@valeriyr valeriyr force-pushed the vm-lang/aa-auth/8238-basic-abstracted-IOTA-account branch from 52761af to daaa870 Compare September 9, 2025 08:35
@valeriyr valeriyr self-assigned this Sep 9, 2025
@valeriyr valeriyr marked this pull request as ready for review September 9, 2025 12:03
@valeriyr valeriyr requested review from a team as code owners September 9, 2025 12:03
@valeriyr valeriyr requested review from TheMrAI and theiari and removed request for a team September 9, 2025 12:04
Copy link
Contributor

@TheMrAI TheMrAI left a comment

Choose a reason for hiding this comment

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

lgtm


/// Checks that the sender of this transaction is the account.
fun ensure_tx_sender_is_account(self: &IOTAccount, ctx: &TxContext) {
assert!(self.id.uid_to_address() == ctx.sender());
Copy link
Contributor

Choose a reason for hiding this comment

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

Probably I'm missing something, but I guess this assert is enough and we don't need any signature verification, right?

Copy link
Contributor

Choose a reason for hiding this comment

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

No, this is a utility function just to check the sender address, nothing more.

Copy link
Contributor

@theiari theiari left a comment

Choose a reason for hiding this comment

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

Looks good to me!
I only left two small comments that are more like personal doubts.

@valeriyr valeriyr force-pushed the vm-lang/aa-auth/8238-basic-abstracted-IOTA-account branch 2 times, most recently from a1b6c73 to 92d67ba Compare September 10, 2025 14:01
@TheMrAI TheMrAI force-pushed the vm-lang/aa-auth/8117-create_auth_info branch from 9f9daca to 458aa71 Compare September 11, 2025 09:44
@TheMrAI TheMrAI requested review from a team as code owners September 11, 2025 09:44
@valeriyr valeriyr force-pushed the vm-lang/aa-auth/8238-basic-abstracted-IOTA-account branch from 92d67ba to aaa3a95 Compare September 11, 2025 11:40
@valeriyr valeriyr removed request for a team September 11, 2025 11:43
Base automatically changed from vm-lang/aa-auth/8117-create_auth_info to vm-lang/aa-auth/8116-feature-branch September 11, 2025 12:05
@TheMrAI TheMrAI requested review from a team as code owners September 11, 2025 12:05
@valeriyr valeriyr merged commit 25f4b30 into vm-lang/aa-auth/8116-feature-branch Sep 11, 2025
33 of 36 checks passed
@valeriyr valeriyr deleted the vm-lang/aa-auth/8238-basic-abstracted-IOTA-account branch September 11, 2025 12:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sc-platform Issues related to the Smart Contract Platform group. vm-language Issues related to the VM & Language Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[AA][move] Implementation of a Move package to represent a basic abstracted IOTA account

7 participants