Intent
Intent
class Intent
A Signing Intent
An intent is a compact struct that serves as the domain separator for a message that a signature commits to. It consists of three parts:
- IntentScope (what the type of the message is)
- IntentVersion
- IntentAppId (what application the signature refers to).
The serialization of an Intent is a 3-byte array where each field is represented by a byte and it is prepended onto a message before it is signed in IOTA.
BCS
The BCS serialized form for this type is defined by the following ABNF:
intent = intent-scope intent-version intent-app-id
init(scope:version:appId:)
convenience init(scope: IntentScope, version: IntentVersion, appId: IntentAppId)
Create a new signing intent.
debugDescription
var debugDescription: String { get }
A textual representation of this instance, suitable for debugging.
Calling this property directly is discouraged. Instead, convert an
instance of any type to a string by using the String(reflecting:)
initializer. This initializer works with any type, and uses the custom
debugDescription property for types that conform to
CustomDebugStringConvertible:
struct Point: CustomDebugStringConvertible {
let x: Int, y: Int
var debugDescription: String {
return "(\(x), \(y))"
}
}
let p = Point(x: 21, y: 30)
let s = String(reflecting: p)
print(s)
// Prints "(21, 30)"
The conversion of p to a string in the assignment to s uses the
Point type's debugDescription property.
appId()
func appId() -> IntentAppId
Get the app id of the signing intent.
hash(into:)
func hash(into hasher: inout Hasher)
Hashes the essential components of this value by feeding them into the given hasher.
Implement this method to conform to the Hashable protocol. The
components used for hashing must be the same as the components compared
in your type's == operator implementation. Call hasher.combine(_:)
with each of these components.
-
Important: In your implementation of
hash(into:), don't callfinalize()on thehasherinstance provided, or replace it with a different instance. Doing so may become a compile-time error in the future. -
Parameter hasher: The hasher to use when combining the components of this instance.
scope()
func scope() -> IntentScope
Get the scope of the signing intent.
toBytes()
func toBytes() -> Data
Convert the signing intent to bytes.
version()
func version() -> IntentVersion
Get the version of the signing intent.
fromBytes(bytes:)
static func fromBytes(bytes: Data) throws -> Intent
Create a signing intent from bytes.
fromHex(hex:)
static func fromHex(hex: String) throws -> Intent
Create a signing intent from a hex string.
newConsensusApp(scope:)
static func newConsensusApp(scope: IntentScope) -> Intent
Create a new Consensus app signing intent.
newIotaApp(scope:)
static func newIotaApp(scope: IntentScope) -> Intent
Create a new IOTA app signing intent.
newIotaTransaction()
static func newIotaTransaction() -> Intent
Create a new IOTA transaction signing intent.
newPersonalMessage()
static func newPersonalMessage() -> Intent
Create a new IOTA personal message signing intent.
!=(_:_:)
static func != (lhs: Self, rhs: Self) -> Bool
Returns a Boolean value indicating whether two values are not equal.
Inequality is the inverse of equality. For any values a and b, a != b
implies that a == b is false.
This is the default implementation of the not-equal-to operator (!=)
for any type that conforms to Equatable.
- Parameters:
- lhs: A value to compare.
- rhs: Another value to compare.
==(_:_:)
static func == (self: Intent, other: Intent) -> Bool
Returns a Boolean value indicating whether two values are equal.
Equality is the inverse of inequality. For any values a and b,
a == b implies that a != b is false.
- Parameters:
- lhs: A value to compare.
- rhs: Another value to compare.