Overview
The AccessClient provides methods to configure access controls, enable/disable protocols, manage delegate permissions, and handle emergency access updates.
Methods
emergencyAccessUpdate
Performs emergency access control changes that bypass the timelock mechanism for critical security updates.
emergencyAccessUpdate(
args: Partial<EmergencyAccessUpdateArgs>,
txOptions?: TxOptions
): Promise<TransactionSignature>
args
Partial<EmergencyAccessUpdateArgs>
required
Emergency access update parameters
Transaction options including signer and compute budget
Example
const signature = await glamClient.access.emergencyAccessUpdate({
// emergency access parameters
});
enableProtocols
Enables specific protocols for an integration program using a bitmask.
enableProtocols(
integrationProgram: PublicKey,
protocolBitmask: number,
txOptions?: TxOptions
): Promise<TransactionSignature>
The integration program to configure
Bitmask representing which protocols to enable
Example
const signature = await glamClient.access.enableProtocols(
integrationProgramId,
0b01 // Enable first protocol
);
disableProtocols
Disables specific protocols for an integration program.
disableProtocols(
integrationProgram: PublicKey,
protocolBitmask: number,
txOptions?: TxOptions
): Promise<TransactionSignature>
The integration program to configure
Bitmask representing which protocols to disable
Example
const signature = await glamClient.access.disableProtocols(
integrationProgramId,
0b10 // Disable second protocol
);
grantDelegatePermissions
Grants specific permissions to a delegate for a protocol.
grantDelegatePermissions(
delegate: PublicKey,
integrationProgram: PublicKey,
protocolBitflag: number,
permissionsBitmask: BN,
txOptions?: TxOptions
): Promise<TransactionSignature>
The delegate address to grant permissions to
Bitmask of permissions to grant
Example
import { BN } from "@coral-xyz/anchor";
const signature = await glamClient.access.grantDelegatePermissions(
delegateAddress,
integrationProgramId,
1,
new BN(0b111) // Grant multiple permissions
);
revokeDelegatePermissions
Revokes specific permissions from a delegate for a protocol.
revokeDelegatePermissions(
delegate: PublicKey,
integrationProgram: PublicKey,
protocolBitflag: number,
permissionsBitmask: BN,
txOptions?: TxOptions
): Promise<TransactionSignature>
The delegate address to revoke permissions from
Bitmask of permissions to revoke
Example
const signature = await glamClient.access.revokeDelegatePermissions(
delegateAddress,
integrationProgramId,
1,
new BN(0b100)
);
setProtocolPolicy
Sets protocol-specific policy data for an integration.
setProtocolPolicy(
integrationProgram: PublicKey,
protocolBitflag: number,
data: Buffer,
txOptions?: TxOptions
): Promise<TransactionSignature>
Example
const policyData = Buffer.from([/* policy bytes */]);
const signature = await glamClient.access.setProtocolPolicy(
integrationProgramId,
1,
policyData
);
Types
TxOptions
interface TxOptions {
signer?: PublicKey;
computeUnitLimit?: number;
computeUnitPrice?: number;
}