ITangleServices
Source: https://github.com/tangle-network/tnt-core/blob/main/src/interfaces/ITangleServices.sol
ITangleServices
Service lifecycle management interface
Functions
requestService
function requestService(uint64 blueprintId, address[] operators, bytes config, address[] permittedCallers, uint64 ttl, address paymentToken, uint256 paymentAmount) external payable returns (uint64 requestId)Request a new service
requestServiceWithExposure
function requestServiceWithExposure(uint64 blueprintId, address[] operators, uint16[] exposureBps, bytes config, address[] permittedCallers, uint64 ttl, address paymentToken, uint256 paymentAmount) external payable returns (uint64 requestId)Request a service with explicit exposure commitments
requestServiceWithSecurity
function requestServiceWithSecurity(uint64 blueprintId, address[] operators, struct Types.AssetSecurityRequirement[] securityRequirements, bytes config, address[] permittedCallers, uint64 ttl, address paymentToken, uint256 paymentAmount) external payable returns (uint64 requestId)Request a service with multi-asset security requirements
Each operator must provide security commitments matching these requirements when approving
approveService
function approveService(uint64 requestId, uint8 stakingPercent) externalApprove a service request (as operator) - simple version
approveServiceWithCommitments
function approveServiceWithCommitments(uint64 requestId, struct Types.AssetSecurityCommitment[] commitments) externalApprove a service request with multi-asset security commitments
Commitments must match the security requirements specified in the request
rejectService
function rejectService(uint64 requestId) externalReject a service request (as operator)
createServiceFromQuotes
function createServiceFromQuotes(uint64 blueprintId, struct Types.SignedQuote[] quotes, bytes config, address[] permittedCallers, uint64 ttl) external payable returns (uint64 serviceId)Create a service instantly using pre-signed operator quotes
No approval flow needed - operators have pre-committed via signatures
Parameters
| Name | Type | Description |
|---|---|---|
| blueprintId | uint64 | The blueprint to use |
| quotes | struct Types.SignedQuote[] | Array of signed quotes from operators |
| config | bytes | Service configuration |
| permittedCallers | address[] | Addresses allowed to call jobs |
| ttl | uint64 | Service time-to-live (must match quotes) |
extendServiceFromQuotes
function extendServiceFromQuotes(uint64 serviceId, struct Types.SignedQuote[] quotes, uint64 extensionDuration) external payableExtend a service using pre-signed operator quotes
terminateService
function terminateService(uint64 serviceId) externalTerminate a service (as owner)
addPermittedCaller
function addPermittedCaller(uint64 serviceId, address caller) externalAdd a permitted caller to a service
removePermittedCaller
function removePermittedCaller(uint64 serviceId, address caller) externalRemove a permitted caller from a service
joinService
function joinService(uint64 serviceId, uint16 exposureBps) externalJoin an active service (Dynamic membership only)
joinServiceWithCommitments
function joinServiceWithCommitments(uint64 serviceId, uint16 exposureBps, struct Types.AssetSecurityCommitment[] commitments) externalJoin an active service with per-asset security commitments (Dynamic membership only)
leaveService
function leaveService(uint64 serviceId) externalLeave an active service (Dynamic membership only)
scheduleExit
function scheduleExit(uint64 serviceId) externalSchedule exit from an active service when exit queues are enabled
executeExit
function executeExit(uint64 serviceId) externalExecute a scheduled exit after the queue delay
cancelExit
function cancelExit(uint64 serviceId) externalCancel a scheduled exit before execution
forceExit
function forceExit(uint64 serviceId, address operator) externalForce exit an operator from a service (if permitted by config)
forceRemoveOperator
function forceRemoveOperator(uint64 serviceId, address operator) externalForce remove an operator from a service (blueprint manager only)
Parameters
| Name | Type | Description |
|---|---|---|
| serviceId | uint64 | The service ID |
| operator | address | The operator to remove |
billSubscription
function billSubscription(uint64 serviceId) externalBill a subscription service for the current period
billSubscriptionBatch
function billSubscriptionBatch(uint64[] serviceIds) external returns (uint256 totalBilled, uint256 billedCount)Bill multiple subscription services in one call
getBillableServices
function getBillableServices(uint64[] serviceIds) external view returns (uint64[] billable)Get billable services from a list of candidates
fundService
function fundService(uint64 serviceId, uint256 amount) external payableFund a service escrow balance
getServiceRequest
function getServiceRequest(uint64 requestId) external view returns (struct Types.ServiceRequest)Get service request
getServiceRequestSecurityRequirements
function getServiceRequestSecurityRequirements(uint64 requestId) external view returns (struct Types.AssetSecurityRequirement[])Get security requirements for a service request
getServiceRequestSecurityCommitments
function getServiceRequestSecurityCommitments(uint64 requestId, address operator) external view returns (struct Types.AssetSecurityCommitment[])Get security commitments for a service request by operator
getService
function getService(uint64 serviceId) external view returns (struct Types.Service)Get service info
isServiceActive
function isServiceActive(uint64 serviceId) external view returns (bool)Check if service is active
isServiceOperator
function isServiceOperator(uint64 serviceId, address operator) external view returns (bool)Check if address is operator in service
getServiceOperator
function getServiceOperator(uint64 serviceId, address operator) external view returns (struct Types.ServiceOperator)Get operator info for a service
getServiceOperators
function getServiceOperators(uint64 serviceId) external view returns (address[])Get the list of operators for a service
getServiceSecurityRequirements
function getServiceSecurityRequirements(uint64 serviceId) external view returns (struct Types.AssetSecurityRequirement[])Get persisted security requirements for an active service
getServiceEscrow
function getServiceEscrow(uint64 serviceId) external view returns (struct PaymentLib.ServiceEscrow)Get service escrow details
getExitRequest
function getExitRequest(uint64 serviceId, address operator) external view returns (struct Types.ExitRequest)Get exit request for an operator
getExitStatus
function getExitStatus(uint64 serviceId, address operator) external view returns (enum Types.ExitStatus)Get exit status for an operator
getExitConfig
function getExitConfig(uint64 serviceId) external view returns (struct Types.ExitConfig)Get exit configuration for a service
canScheduleExit
function canScheduleExit(uint64 serviceId, address operator) external view returns (bool canExit, string reason)Check if operator can schedule exit now
getServiceSecurityCommitments
function getServiceSecurityCommitments(uint64 serviceId, address operator) external view returns (struct Types.AssetSecurityCommitment[])Get persisted security commitments for an active service by operator
isPermittedCaller
function isPermittedCaller(uint64 serviceId, address caller) external view returns (bool)Check if address can call jobs on service
serviceCount
function serviceCount() external view returns (uint64)Get current service count
Events
ServiceRequested
event ServiceRequested(uint64 requestId, uint64 blueprintId, address requester)ServiceRequestedWithSecurity
event ServiceRequestedWithSecurity(uint64 requestId, uint64 blueprintId, address requester)ServiceApproved
event ServiceApproved(uint64 requestId, address operator)ServiceRejected
event ServiceRejected(uint64 requestId, address operator)ServiceActivated
event ServiceActivated(uint64 serviceId, uint64 requestId, uint64 blueprintId)ServiceTerminated
event ServiceTerminated(uint64 serviceId)OperatorJoinedService
event OperatorJoinedService(uint64 serviceId, address operator, uint16 exposureBps)OperatorLeftService
event OperatorLeftService(uint64 serviceId, address operator)SubscriptionBilled
event SubscriptionBilled(uint64 serviceId, uint256 amount, uint64 period)