-
Notifications
You must be signed in to change notification settings - Fork 53
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
TIP-38: Building Blocks for IOTA 2.0 Output Types #140
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: Thibault Martinez <thibault@iota.org>
<td>Set to <strong>value 0</strong> to denote an <i>Address Unlock Condition</i>.</td> | ||
</tr> | ||
<tr> | ||
<td valign="top">Address <code>oneOf</code></td> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is not very clear if something is omitted because it's contextual (like ImplicitAccountCreationAddress only being allowed in Basic outputs) or because it simply is disallowed (like I assume ImplicitAccountCreationAddress is in StorageDepositReturn and Expiration?).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So maybe put an explicit note in StorageDepositReturn and Expiration that ImplicitAccountCreationAddress is disallowed or in TIP 42 be a bit more explicit that it can only be used in an AddressUnlockCondition.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ignore me if it's said already somewhere, may have missed it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's tricky to express this correctly here where Address UC is generically defined, because it suggest that this always is the schema of an Address UC, which is a reasonable assumption given that it's true for every other schema.
Every output currently expresses which address is allowed in its Address UC (Basic allows Impliciti Acc Creation Addresses while others don't).
- One option is to omit the addresses here and adding a note that each output specifies which addresses it allows.
- Another one is to only include the ones that are always allowed to be present and add a note that each occurence of the Address UC can specify additional ones or something along those lines. Basically how it is now, minus the note.
I think I like the latter one more because it doesn't break the schema definitions as much as the other one and every other schema can be left as-is.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok but if we do that, it means that I have to look at ALL tips to see if something is allowed or not. Like, how do I come to the conclusion whether ImplicitAddress is allowed in a StorageDeposit or Expiration? If it just doesn't make sense to start with, I would put a note in this TIP.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd say you can come to the conclusion that Implicit Account Creation Address it not allowed in the SDRUC because it's not in the SDRUC schema and there's no note that occurences of the SDRUC may change that.
Conversely, for Address UC I would add such a note.
I know it's somewhat implicit that way, but it's also not sensible to add a note to every schema that no changes are allowed to it. So in essence, I'd make the changes opt-in by adding a note (like for Addres UC).
Does that sound reasonable?
Co-authored-by: Thibault Martinez <thibault@iota.org>
Rendered Version
Note that: