Principal
To understand this principal module, it might be helpful to learn about Principles first.
The convention is to name the module alias after the file name it is defined in:
import Principal "mo:base/Principal";
Conversion
Function fromActor
Function fromText
Function toText
Function toBlob
Function fromBlob
Utility
Function isAnonymous
Function hash
Comparison
Function equal
Function notEqual
Function less
Function lessOrEqual
Function greater
Function greaterOrEqual
Function compare
Principal.fromActor
func fromActor(a : actor { }) : Principal
The function fromActor
takes one actor
value and returns a Principal
value.
import Principal "mo:base/Principal";
type Account = { owner : Principal; subaccount : ?Blob };
type Ledger = actor {
icrc1_balance_of : shared query Account -> async Nat;
};
let ledger = actor ("ryjl3-tyaaa-aaaaa-aaaba-cai") : Ledger;
Principal.fromActor(ledger);
Principal.fromText
func fromText(t : Text) : Principal
The function fromText
takes one Text
value and returns a Principal
value.
import Principal "mo:base/Principal";
let textualPrincipal : Text = "un4fu-tqaaa-aaaab-qadjq-cai";
Principal.fromText(textualPrincipal);
Principal.toText
func toText(p : Principal) : Text
The function toText
takes one Principal
value and returns a Text
value.
import Principal "mo:base/Principal";
let principal : Principal = Principal.fromText("un4fu-tqaaa-aaaab-qadjq-cai");
Principal.toText(principal);
Principal.toBlob
func toBlob(p : Principal) : Blob
The function toBlob
takes one Principal
value and returns a Blob
value.
import Principal "mo:base/Principal";
let principal : Principal = Principal.fromText("un4fu-tqaaa-aaaab-qadjq-cai");
Principal.toBlob(principal);
Principal.fromBlob
func fromBlob(b : Blob) : Principal
The function fromBlob
takes one BLob
value and returns a Principal
value.
import Principal "mo:base/Principal";
let principal : Principal = Principal.fromText("un4fu-tqaaa-aaaab-qadjq-cai");
let blob : Blob = Principal.toBlob(principal);
Principal.fromBlob(blob);
Principal.isAnonymous
func isAnonymous(p : Principal) : Bool
The function isAnonymous
takes one Principal
value and returns a Bool
value.
import Principal "mo:base/Principal";
let principal : Principal = Principal.fromText("un4fu-tqaaa-aaaab-qadjq-cai");
Principal.isAnonymous(principal);
Principal.hash
func hash(principal : Principal) : Hash.Hash
The function hash
takes one Principal
value and returns a Hash
value.
import Principal "mo:base/Principal";
let principal = Principal.fromText("m7sm4-2iaaa-aaaab-qabra-cai");
Principal.hash(principal);
Principal.equal
func equal(principal1 : Principal, principal2 : Principal) : Bool
The function equal
takes two Principal
value and returns a Bool
value.
import Principal "mo:base/Principal";
let principal1 = Principal.fromText("m7sm4-2iaaa-aaaab-qabra-cai");
let principal2 = Principal.fromText("m7sm4-2iaaa-aaaab-qabra-cai");
Principal.equal(principal1, principal2);
Principal.notEqual
func notEqual(principal1 : Principal, principal2 : Principal) : Bool
The function notEqual
takes two Principal
value and returns a Bool
value.
import Principal "mo:base/Principal";
let principal1 = Principal.fromText("m7sm4-2iaaa-aaaab-qabra-cai");
let principal2 = Principal.fromText("m7sm4-2iaaa-aaaab-qabra-cai");
Principal.notEqual(principal1, principal2);
Principal.less
func less(principal1 : Principal, principal2 : Principal) : Bool
The function less
takes two Principal
value and returns a Bool
value.
import Principal "mo:base/Principal";
let principal1 = Principal.fromText("m7sm4-2iaaa-aaaab-qabra-cai");
let principal2 = Principal.fromText("jr7pa-rnspg-drbf2-ooaap-gmfep-773oe-z5oua-hiycn-q3sjg-ffwie-tae");
Principal.less(principal1, principal2);
Principal.lessOrEqual
func lessOrEqual(principal1 : Principal, principal2 : Principal) : Bool
The function lessOrEqual
takes two Principal
value and returns a Bool
value.
import Principal "mo:base/Principal";
let principal1 = Principal.fromText("m7sm4-2iaaa-aaaab-qabra-cai");
let principal2 = Principal.fromText("m7sm4-2iaaa-aaaab-qabra-cai");
Principal.lessOrEqual(principal1, principal2);
Principal.greater
func greater(principal1 : Principal, principal2 : Principal) : Bool
The function greater
takes two Principal
value and returns a Bool
value.
import Principal "mo:base/Principal";
let principal1 = Principal.fromText("m7sm4-2iaaa-aaaab-qabra-cai");
let principal2 = Principal.fromText("m7sm4-2iaaa-aaaab-qabra-cai");
Principal.greater(principal1, principal2);
Principal.greaterOrEqual
func greaterOrEqual(principal1 : Principal, principal2 : Principal) : Bool
The function greaterOrEqual
takes two Principal
value and returns a Bool
value.
import Principal "mo:base/Principal";
let principal1 = Principal.fromText("2vxsx-fae");
let principal2 = Principal.fromText("m7sm4-2iaaa-aaaab-qabra-cai");
Principal.greaterOrEqual(principal1, principal2);
Principal.compare
func compare(principal1 : Principal, principal2 : Principal) : {#less; #equal; #greater}
The function compare
takes two Principal
value and returns an Order value.
import Principal "mo:base/Principal";
let principal1 = Principal.fromText("m7sm4-2iaaa-aaaab-qabra-cai");
let principal2 = Principal.fromText("m7sm4-2iaaa-aaaab-qabra-cai");
Principal.compare(principal1, principal2);