Accounts
Every account can be accessed through two types:
As a Public Account with the type
PublicAccount
, which represents the publicly available portion of an account.struct PublicAccount { let address: Address // Storage operations fun getCapability<T>(_ path: Path): Capability<T>? fun getLinkTarget(_ path: Path): Path? }
Any code can get the
PublicAccount
for an account address using the built-ingetAccount
function:fun getAccount(_ address: Address): PublicAccount
As an Authorized Account with type
AuthAccount
, which represents the authorized portion of an account.Access to an
AuthAccount
means having full access to its storage, public keys, and code.Only signed transactions can get the
AuthAccount
for an account. For each script signer of the transaction, the correspondingAuthAccount
is passed to theprepare
phase of the transaction.struct AuthAccount { let address: Address // Contract code fun setCode(_ code: [UInt8], ... contractInitializerArguments) // Key management fun addPublicKey(_ publicKey: [UInt8]) fun removePublicKey(_ index: Int) // Storage operations fun save<T>(_ value: T, to: Path) fun load<T>(from: Path): T? fun copy<T: AnyStruct>(from: Path): T? fun borrow<T: &Any>(from: Path): T? fun link<T: &Any>(_ newCapabilityPath: Path, target: Path): Capability<T>? fun getLinkTarget(_ path: Path): Path? fun unlink(_ path: Path) fun getCapability<T: &Any>(_ path Path): Capability<T>? }
Last updated
Was this helpful?