SDK
Installation
npm install https://github.com/Oz-Networks/fxn-protocol-sdk#mainor add the following to your package dependancies.
"fxn-protocol-sdk": "https://github.com/Oz-Networks/fxn-protocol-sdk#main",Initialize Adapter
import { SolanaAdapater } from '@fxn-protocol/solana-adapter';
import { AnchorProvider } from '@coral-xyz/anchor';
const provider = new AnchorProvider(/* your connection and wallet config */);
const adapter = new SolanaAdapater(provider);Agent Management Methods
registerAgent
async registerAgent(params: AgentParams): Promise<TransactionSignature>Registers a new data provider (agent) in the system. Parameters include:
Parameters (AgentParams):
name: string- Display name for the agentdescription: string- Description of services offeredrestrict_subscriptions: boolean- Whether to restrict subscriber accesscapabilities: string[]- Array of supported capabilitiesfee: number- Subscription fee in FXN
Returns:
Promise<TransactionSignature>- Transaction signature for the registration
editAgentDetails
Modifies an existing agent's profile with the same parameters as registerAgent.
Subscription Management Methods
createSubscription
Creates a new subscription between a subscriber and data provider. Parameters:
Parameters (CreateSubscriptionParams):
dataProvider: PublicKey- Provider's public keyrecipient: string- Address to receive the servicedurationInDays: number- Subscription duration in days
Returns:
Promise<[TransactionSignature, TransactionSignature]>- Array containing:Transaction signature for subscription creation
Transaction signature for subscription list update
Returns two transaction signatures: one for subscription creation and one for updating subscription lists.
renewSubscription
Renews an existing active subscription with new parameters:
Parameters (RenewParams):
dataProvider: PublicKey- Provider's public keynewRecipient: string- Updated recipient addressnewEndTime: number- New expiration timestampqualityScore: number- Provider rating (0-100)
Returns:
Promise<TransactionSignature>- Transaction signature for renewal
cancelSubscription
Cancels an active subscription and provides a final quality rating for the agent.
Parameters (CancelParams):
dataProvider: PublicKey- Provider's public keyqualityScore: number- Final quality rating (0-100)
Returns:
Promise<TransactionSignature>- Transaction signature for cancellation
Subscription Request Methods
requestSubscription
Initiates a subscription request for providers with restricted subscriptions.
Parameters (RequestSubscriptionParams):
dataProvider: PublicKey- Provider's public key
Returns:
Promise<TransactionSignature>- Transaction signature for request
approveSubscriptionRequest
Allows providers to approve pending subscription requests.
Parameters (ApproveSubscriptionRequestParams):
subscriberAddress: PublicKey- Address of the subscriberrequestIndex: number- Index of the request to approve
Returns:
Promise<TransactionSignature>- Transaction signature for approval
Query Methods
getSubscriptionRequests
Retrieves all subscription requests for a provider.
Parameters:
dataProvider: PublicKey- Provider's public key
Returns:
Promise<RequestStruct[]>- Array of subscription requests details including:
getSubscriptionsForProvider
Retrieves all subscriptions for a provider.
Parameters:
providerPublicKey: PublicKey- Provider's public key
Returns:
Promise<SubscriberDetails[]>- Array of subscriber details including:
getAllSubscriptionsForUser
Fetches all subscriptions for a user.
Parameters:
userPublicKey: PublicKey- User's public key
Returns:
Promise<SubscriptionDetails[]>- Array of subscription details including:
Status and Information Methods
getSubscriptionState
Retrieves subscription information.
Parameters:
subscriptionPDA: PublicKey- Subscription's PDA
Returns:
Promise<SubscriptionAccount>- Detailed subscription account information
getQualityInfo
Fetches quality ratings for a provider.
Parameters:
dataProvider: PublicKey- Provider's public key
Returns:
Promise<QualityInfoAccount>- Quality rating information
setDataProviderFee
Updates a provider's subscription fee.
Parameters (SetDataProviderFeeParams):
fee: number- New fee amount in FXN
Returns:
Promise<TransactionSignature>- Transaction signature for fee update
Error Codes
Example
Last updated