@unique.vc/udm.js
Version:
UDM - Unique Delegation Manager is a simple yet efficient solution allowing to bridge self-custody and user experience, have best from both worlds and potentially extend the reach of the industry.
130 lines (129 loc) • 3.57 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.IDL = void 0;
exports.IDL = {
version: '0.1.0',
name: 'delegation_manager',
docs: ["Unique program library's Delegation Manager program."],
instructions: [
{
name: 'initializeDelegate',
docs: ['Initializes delegation account'],
accounts: [
{
name: 'master',
isMut: true,
isSigner: true,
},
{
name: 'representative',
isMut: false,
isSigner: false,
},
{
name: 'delegation',
isMut: true,
isSigner: false,
},
{
name: 'systemProgram',
isMut: false,
isSigner: false,
},
],
args: [],
},
{
name: 'confirmDelegate',
docs: ['Confirms delegation'],
accounts: [
{
name: 'representative',
isMut: true,
isSigner: true,
},
{
name: 'delegation',
isMut: true,
isSigner: false,
},
{
name: 'systemProgram',
isMut: false,
isSigner: false,
},
],
args: [],
},
{
name: 'cancelDelegate',
docs: ['Cancels delegation'],
accounts: [
{
name: 'delegation',
isMut: true,
isSigner: false,
},
{
name: 'systemProgram',
isMut: false,
isSigner: false,
},
],
args: [],
},
],
accounts: [
{
name: 'delegation',
docs: ['State account storing the delegation'],
type: {
kind: 'struct',
fields: [
{
name: 'master',
docs: ['The creator of the delegation'],
type: 'publicKey',
},
{
name: 'representative',
docs: ['The wallet who delegates'],
type: 'publicKey',
},
{
name: 'authorised',
docs: ['Confirmation flag'],
type: 'bool',
},
],
},
},
],
errors: [
{
code: 6000,
name: 'WrongRepresentative',
msg: 'Wrong representative!',
},
{
code: 6001,
name: 'WrongMaster',
msg: 'Wrong authority!',
},
{
code: 6002,
name: 'WrongSigner',
msg: 'Wrong signer!',
},
{
code: 6003,
name: 'AlreadyAuthorised',
msg: 'Authorization already approved!',
},
{
code: 6004,
name: 'NotAuthorized',
msg: 'The account provided has no authority!',
},
],
};