- No matches
Organizations
An organization is a contract. You deploy UmbroOrg26 once. The transaction returns an address. That address is the organization.
The contract stores the organization name, the members, and the T-RAIN balance of the contract. The standard id is UMBRO-ORG-26. standard() returns that string.
Admins and members
The contract has no owner role. It has an operator, admins, and members.
- The constructor sets
operator, abytes32identity,firstAdmin, and the name.firstAdminis the first member and an admin. operatorSetAdminlets the operator set or clear the admin flag later.- A member has a status: Active, Suspended, or Removed.
isAdmin(account)is true only when the account is an admin and Active.isEnrolled(account)is true when the membership is Active.hasRoleis false unless the member is Active. Admins name the roles.
Invites are on the same contract. An invite carries roles, spending limits, and a gas budget. Accepting one is bound to this contract, this chain, and the account.
The balance
Anyone can send T-RAIN to the contract. receive() and depositFor(member) record a deposit. balanceOf(token) is the native balance when token is the zero address.
pay is still in the interface and always reverts FeesOnly. An approve that would complete a payout reverts FeesOnly as well. Members cannot send the contract's T-RAIN to an arbitrary address. The outflow the contract does perform is reimburseGas: a registered sponsor (the relay) is repaid for a sponsored network fee, inside the member's gas budget and the organization's monthly cap.
Gas
setSponsor names the relay and an organization-wide monthly cap. setGasBudget sets the member's cap. That is gas sponsorship, described on Accounts. It is not a separate fee.
The full function list, the ABI, and how to read standard() on a deployment are on UMBRO-ORG. Deploying one is Create an organization.