@civic/sol-did-idl
Version:
The official Solana IDL for did:sol
1,048 lines (1,047 loc) • 33.3 kB
TypeScript
/**
* Program IDL in camelCase format in order to be used in JS/TS.
*
* Note that this is only a type helper and is not the actual IDL. The original
* IDL can be found at `target/idl/sol_did.json`.
*/
export type SolDid = {
"address": "didso1Dpqpm4CsiCjzP766BGY89CAdD6ZBL68cRhFPc";
"metadata": {
"name": "solDid";
"version": "3.3.0";
"spec": "0.1.0";
"description": "Martin Riedel";
"repository": "https://github.com/identity-com/sol-did";
};
"instructions": [
{
"name": "addService";
"discriminator": [
133,
207,
106,
32,
91,
111,
153,
30
];
"accounts": [
{
"name": "didData";
"writable": true;
"pda": {
"seeds": [
{
"kind": "const";
"value": [
100,
105,
100,
45,
97,
99,
99,
111,
117,
110,
116
];
},
{
"kind": "account";
"path": "did_data.initial_verification_method.key_data";
"account": "didAccount";
}
];
};
},
{
"name": "authority";
"signer": true;
}
];
"args": [
{
"name": "service";
"type": {
"defined": {
"name": "service";
};
};
},
{
"name": "allowOverwrite";
"type": "bool";
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": {
"name": "secp256k1RawSignature";
};
};
};
}
];
},
{
"name": "addVerificationMethod";
"discriminator": [
213,
200,
190,
61,
28,
104,
245,
25
];
"accounts": [
{
"name": "didData";
"writable": true;
"pda": {
"seeds": [
{
"kind": "const";
"value": [
100,
105,
100,
45,
97,
99,
99,
111,
117,
110,
116
];
},
{
"kind": "account";
"path": "did_data.initial_verification_method.key_data";
"account": "didAccount";
}
];
};
},
{
"name": "authority";
"signer": true;
}
];
"args": [
{
"name": "verificationMethod";
"type": {
"defined": {
"name": "verificationMethod";
};
};
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": {
"name": "secp256k1RawSignature";
};
};
};
}
];
},
{
"name": "close";
"discriminator": [
98,
165,
201,
177,
108,
65,
206,
96
];
"accounts": [
{
"name": "didData";
"writable": true;
"pda": {
"seeds": [
{
"kind": "const";
"value": [
100,
105,
100,
45,
97,
99,
99,
111,
117,
110,
116
];
},
{
"kind": "account";
"path": "did_data.initial_verification_method.key_data";
"account": "didAccount";
}
];
};
},
{
"name": "authority";
"signer": true;
},
{
"name": "destination";
"writable": true;
},
{
"name": "systemProgram";
"address": "11111111111111111111111111111111";
}
];
"args": [
{
"name": "ethSignature";
"type": {
"option": {
"defined": {
"name": "secp256k1RawSignature";
};
};
};
}
];
},
{
"name": "initialize";
"discriminator": [
175,
175,
109,
31,
13,
152,
155,
237
];
"accounts": [
{
"name": "didData";
"writable": true;
"pda": {
"seeds": [
{
"kind": "const";
"value": [
100,
105,
100,
45,
97,
99,
99,
111,
117,
110,
116
];
},
{
"kind": "account";
"path": "authority";
}
];
};
},
{
"name": "authority";
"writable": true;
"signer": true;
},
{
"name": "payer";
"writable": true;
"signer": true;
},
{
"name": "systemProgram";
"address": "11111111111111111111111111111111";
}
];
"args": [
{
"name": "size";
"type": "u32";
}
];
},
{
"name": "removeService";
"discriminator": [
19,
102,
8,
231,
40,
141,
9,
110
];
"accounts": [
{
"name": "didData";
"writable": true;
"pda": {
"seeds": [
{
"kind": "const";
"value": [
100,
105,
100,
45,
97,
99,
99,
111,
117,
110,
116
];
},
{
"kind": "account";
"path": "did_data.initial_verification_method.key_data";
"account": "didAccount";
}
];
};
},
{
"name": "authority";
"signer": true;
}
];
"args": [
{
"name": "fragment";
"type": "string";
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": {
"name": "secp256k1RawSignature";
};
};
};
}
];
},
{
"name": "removeVerificationMethod";
"discriminator": [
33,
238,
66,
183,
62,
210,
133,
150
];
"accounts": [
{
"name": "didData";
"writable": true;
"pda": {
"seeds": [
{
"kind": "const";
"value": [
100,
105,
100,
45,
97,
99,
99,
111,
117,
110,
116
];
},
{
"kind": "account";
"path": "did_data.initial_verification_method.key_data";
"account": "didAccount";
}
];
};
},
{
"name": "authority";
"signer": true;
}
];
"args": [
{
"name": "fragment";
"type": "string";
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": {
"name": "secp256k1RawSignature";
};
};
};
}
];
},
{
"name": "resize";
"discriminator": [
74,
27,
74,
155,
56,
134,
175,
125
];
"accounts": [
{
"name": "didData";
"writable": true;
"pda": {
"seeds": [
{
"kind": "const";
"value": [
100,
105,
100,
45,
97,
99,
99,
111,
117,
110,
116
];
},
{
"kind": "account";
"path": "did_data.initial_verification_method.key_data";
"account": "didAccount";
}
];
};
},
{
"name": "payer";
"writable": true;
"signer": true;
},
{
"name": "authority";
"signer": true;
},
{
"name": "systemProgram";
"address": "11111111111111111111111111111111";
}
];
"args": [
{
"name": "size";
"type": "u32";
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": {
"name": "secp256k1RawSignature";
};
};
};
}
];
},
{
"name": "setControllers";
"discriminator": [
65,
40,
24,
8,
30,
81,
20,
179
];
"accounts": [
{
"name": "didData";
"writable": true;
"pda": {
"seeds": [
{
"kind": "const";
"value": [
100,
105,
100,
45,
97,
99,
99,
111,
117,
110,
116
];
},
{
"kind": "account";
"path": "did_data.initial_verification_method.key_data";
"account": "didAccount";
}
];
};
},
{
"name": "authority";
"signer": true;
}
];
"args": [
{
"name": "setControllersArg";
"type": {
"defined": {
"name": "setControllersArg";
};
};
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": {
"name": "secp256k1RawSignature";
};
};
};
}
];
},
{
"name": "setVmFlags";
"discriminator": [
216,
172,
84,
171,
196,
72,
7,
41
];
"accounts": [
{
"name": "didData";
"writable": true;
"pda": {
"seeds": [
{
"kind": "const";
"value": [
100,
105,
100,
45,
97,
99,
99,
111,
117,
110,
116
];
},
{
"kind": "account";
"path": "did_data.initial_verification_method.key_data";
"account": "didAccount";
}
];
};
},
{
"name": "authority";
"signer": true;
}
];
"args": [
{
"name": "flagsVm";
"type": {
"defined": {
"name": "updateFlagsVerificationMethod";
};
};
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": {
"name": "secp256k1RawSignature";
};
};
};
}
];
},
{
"name": "update";
"discriminator": [
219,
200,
88,
176,
158,
63,
253,
127
];
"accounts": [
{
"name": "didData";
"writable": true;
"pda": {
"seeds": [
{
"kind": "const";
"value": [
100,
105,
100,
45,
97,
99,
99,
111,
117,
110,
116
];
},
{
"kind": "account";
"path": "did_data.initial_verification_method.key_data";
"account": "didAccount";
}
];
};
},
{
"name": "authority";
"signer": true;
}
];
"args": [
{
"name": "updateArg";
"type": {
"defined": {
"name": "updateArg";
};
};
},
{
"name": "ethSignature";
"type": {
"option": {
"defined": {
"name": "secp256k1RawSignature";
};
};
};
}
];
}
];
"accounts": [
{
"name": "didAccount";
"discriminator": [
77,
88,
239,
141,
251,
29,
237,
243
];
}
];
"errors": [
{
"code": 6000;
"name": "vmFragmentNotFound";
"msg": "No VM with the given fragment exists";
},
{
"code": 6001;
"name": "vmFragmentAlreadyInUse";
"msg": "Given VM fragment is already in use";
},
{
"code": 6002;
"name": "vmGuardedFlagOnAdd";
"msg": "Cannot add a verification method with guarded flag (OwnershipProof or Protected)";
},
{
"code": 6003;
"name": "vmCannotRemoveLastAuthority";
"msg": "Removing the last verification method would lead to a lockout";
},
{
"code": 6004;
"name": "serviceFragmentAlreadyInUse";
"msg": "Service already exists in current service list";
},
{
"code": 6005;
"name": "serviceFragmentNotFound";
"msg": "Service doesn't exists in current service list";
},
{
"code": 6006;
"name": "invalidOtherControllers";
"msg": "Invalid other controllers. Invalid DID format or did:sol:<did>";
},
{
"code": 6007;
"name": "invalidNativeControllers";
"msg": "Invalid native controllers. Cannot set itself as a controller";
},
{
"code": 6008;
"name": "insufficientInitialSize";
"msg": "Initial Account size is insufficient for serialization";
},
{
"code": 6009;
"name": "conversionError";
"msg": "Could not convert between data types";
},
{
"code": 6010;
"name": "invalidControllerChain";
"msg": "Invalid chain of controlling DidAccounts";
},
{
"code": 6011;
"name": "errorValidatingSecp256k1Signature";
"msg": "An error occurred while validating Secp256k1 signature";
},
{
"code": 6012;
"name": "wrongAuthorityForDid";
"msg": "Wrong Authority for given DID";
},
{
"code": 6013;
"name": "vmCannotRemoveProtected";
"msg": "Cannot remove a protected verification method. You need to first remove the Protected Verification Method Flag in order for this operation to succeed";
}
];
"types": [
{
"name": "didAccount";
"type": {
"kind": "struct";
"fields": [
{
"name": "version";
"docs": [
"Version identifier"
];
"type": "u8";
},
{
"name": "bump";
"docs": [
"Bump"
];
"type": "u8";
},
{
"name": "nonce";
"docs": [
"Nonce, for protecting against replay attacks around secp256k1 signatures."
];
"type": "u64";
},
{
"name": "initialVerificationMethod";
"docs": [
"The initial authority key, automatically being added to the array of all Verification Methods."
];
"type": {
"defined": {
"name": "verificationMethod";
};
};
},
{
"name": "verificationMethods";
"docs": [
"All verification methods"
];
"type": {
"vec": {
"defined": {
"name": "verificationMethod";
};
};
};
},
{
"name": "services";
"docs": [
"Services"
];
"type": {
"vec": {
"defined": {
"name": "service";
};
};
};
},
{
"name": "nativeControllers";
"docs": [
"Controller (native) - did:sol:<controller>"
];
"type": {
"vec": "pubkey";
};
},
{
"name": "otherControllers";
"docs": [
"Controller (others) - all others"
];
"type": {
"vec": "string";
};
}
];
};
},
{
"name": "secp256k1RawSignature";
"type": {
"kind": "struct";
"fields": [
{
"name": "signature";
"type": {
"array": [
"u8",
64
];
};
},
{
"name": "recoveryId";
"type": "u8";
}
];
};
},
{
"name": "service";
"docs": [
"A Service Definition [`DidAccount`]"
];
"type": {
"kind": "struct";
"fields": [
{
"name": "fragment";
"type": "string";
},
{
"name": "serviceType";
"type": "string";
},
{
"name": "serviceEndpoint";
"type": "string";
}
];
};
},
{
"name": "setControllersArg";
"docs": [
"Argument"
];
"type": {
"kind": "struct";
"fields": [
{
"name": "nativeControllers";
"type": {
"vec": "pubkey";
};
},
{
"name": "otherControllers";
"type": {
"vec": "string";
};
}
];
};
},
{
"name": "updateArg";
"docs": [
"Argument"
];
"type": {
"kind": "struct";
"fields": [
{
"name": "verificationMethods";
"docs": [
"All verification methods"
];
"type": {
"vec": {
"defined": {
"name": "verificationMethod";
};
};
};
},
{
"name": "services";
"docs": [
"Services"
];
"type": {
"vec": {
"defined": {
"name": "service";
};
};
};
},
{
"name": "nativeControllers";
"docs": [
"Controller (native) - did:sol:<controller>"
];
"type": {
"vec": "pubkey";
};
},
{
"name": "otherControllers";
"docs": [
"Controller (others) - all others"
];
"type": {
"vec": "string";
};
}
];
};
},
{
"name": "updateFlagsVerificationMethod";
"docs": [
"Argument"
];
"type": {
"kind": "struct";
"fields": [
{
"name": "fragment";
"type": "string";
},
{
"name": "flags";
"type": "u16";
}
];
};
},
{
"name": "verificationMethod";
"docs": [
"The native authority key for a [`DidAccount`]"
];
"type": {
"kind": "struct";
"fields": [
{
"name": "fragment";
"docs": [
"fragment"
];
"type": "string";
},
{
"name": "flags";
"docs": [
"The permissions this key has"
];
"type": "u16";
},
{
"name": "methodType";
"docs": [
"The actual verification method"
];
"type": "u8";
},
{
"name": "keyData";
"docs": [
"Dynamically sized key matching the given VerificationType"
];
"type": "bytes";
}
];
};
}
];
};