@learncard/core 5.1.1 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/core.cjs.development.js +41 -11
- package/dist/core.cjs.development.js.map +3 -3
- package/dist/core.cjs.production.min.js +46 -46
- package/dist/core.cjs.production.min.js.map +3 -3
- package/dist/core.d.ts +362 -199
- package/dist/core.esm.js +41 -11
- package/dist/core.esm.js.map +3 -3
- package/package.json +2 -2
package/dist/core.d.ts
CHANGED
@@ -4605,8 +4605,11 @@ declare const IDXCredentialValidator: z.ZodObject<{
|
|
4605
4605
|
id: string;
|
4606
4606
|
title: string;
|
4607
4607
|
}>;
|
4608
|
+
/** @group IDXPlugin */
|
4608
4609
|
export declare type IDXCredential = z.infer<typeof IDXCredentialValidator>;
|
4610
|
+
/** @group DIDKit Plugin */
|
4609
4611
|
export declare type DidMethod = "key" | "tz" | "ethr" | `pkh:${"tz" | "tezos" | "sol" | "solana" | "eth" | "celo" | "poly" | "btc" | "doge" | "eip155" | "bip122"}` | `pkh:eip155:${string}` | `pkh:bip122:${string}`;
|
4612
|
+
/** @group DIDKit Plugin */
|
4610
4613
|
export declare type KeyPair = {
|
4611
4614
|
kty: string;
|
4612
4615
|
crv: string;
|
@@ -4614,10 +4617,12 @@ export declare type KeyPair = {
|
|
4614
4617
|
y?: string;
|
4615
4618
|
d: string;
|
4616
4619
|
};
|
4620
|
+
/** @group DIDKit Plugin */
|
4617
4621
|
export declare type ProofOptions = {
|
4618
4622
|
verificationMethod: string;
|
4619
4623
|
proofPurpose: string;
|
4620
4624
|
};
|
4625
|
+
/** @group DIDKit Plugin */
|
4621
4626
|
export declare type DidkitPluginMethods = {
|
4622
4627
|
generateEd25519KeyFromBytes: (bytes: Uint8Array) => KeyPair;
|
4623
4628
|
generateSecp256k1KeyFromBytes: (bytes: Uint8Array) => KeyPair;
|
@@ -4630,7 +4635,32 @@ export declare type DidkitPluginMethods = {
|
|
4630
4635
|
contextLoader: (url: string) => Promise<Record<string, any>>;
|
4631
4636
|
resolveDid: (did: string) => Promise<Record<string, any>>;
|
4632
4637
|
};
|
4638
|
+
/** @group DidKey Plugin */
|
4633
4639
|
export declare type Algorithm = "ed25519" | "secp256k1";
|
4640
|
+
/** @group DidKey Plugin */
|
4641
|
+
export declare type DependentMethods<T extends string> = {
|
4642
|
+
generateEd25519KeyFromBytes: (bytes: Uint8Array) => KeyPair;
|
4643
|
+
generateSecp256k1KeyFromBytes: (bytes: Uint8Array) => KeyPair;
|
4644
|
+
keyToDid: (type: T, keypair: KeyPair) => string;
|
4645
|
+
};
|
4646
|
+
/** @group DidKey Plugin */
|
4647
|
+
export declare type JWK = {
|
4648
|
+
id: string;
|
4649
|
+
type: string | string[];
|
4650
|
+
controller?: string;
|
4651
|
+
publicKeyJwk?: any;
|
4652
|
+
privateKeyJwk?: any;
|
4653
|
+
"@context": string[];
|
4654
|
+
name: string;
|
4655
|
+
image: string;
|
4656
|
+
description: string;
|
4657
|
+
tags: string[];
|
4658
|
+
value?: string;
|
4659
|
+
generatedFrom?: [
|
4660
|
+
string
|
4661
|
+
];
|
4662
|
+
};
|
4663
|
+
/** @group DidKey Plugin */
|
4634
4664
|
export declare type DidKeyPluginMethods<DidMethod extends string> = {
|
4635
4665
|
getSubjectDid: (type: DidMethod) => string;
|
4636
4666
|
getSubjectKeypair: (type?: Algorithm) => {
|
@@ -4642,6 +4672,7 @@ export declare type DidKeyPluginMethods<DidMethod extends string> = {
|
|
4642
4672
|
};
|
4643
4673
|
getKey: () => string;
|
4644
4674
|
};
|
4675
|
+
/** @group Ethereum Plugin */
|
4645
4676
|
export declare type EthereumPluginMethods = {
|
4646
4677
|
getEthereumAddress: () => string;
|
4647
4678
|
getBalance: (symbolOrAddress?: string) => Promise<string>;
|
@@ -4651,10 +4682,31 @@ export declare type EthereumPluginMethods = {
|
|
4651
4682
|
changeNetwork: (network: providers.Networkish) => void;
|
4652
4683
|
addInfuraProjectId: (infuraProjectIdToAdd: string) => void;
|
4653
4684
|
};
|
4685
|
+
/** @group Ethereum Plugin */
|
4654
4686
|
export declare type EthereumConfig = {
|
4655
4687
|
infuraProjectId?: string;
|
4656
4688
|
network?: providers.Networkish;
|
4657
4689
|
};
|
4690
|
+
/** @group Ethereum Plugin */
|
4691
|
+
export declare type Token = {
|
4692
|
+
chainId: number;
|
4693
|
+
address: string;
|
4694
|
+
name: string;
|
4695
|
+
symbol: string;
|
4696
|
+
decimals: number;
|
4697
|
+
logoURI: string;
|
4698
|
+
extensions: any;
|
4699
|
+
};
|
4700
|
+
/** @group Ethereum Plugin */
|
4701
|
+
export declare type TokenList = Token[];
|
4702
|
+
/** @group IDXPlugin */
|
4703
|
+
export declare type CeramicIDXArgs = {
|
4704
|
+
modelData: ModelAliases;
|
4705
|
+
credentialAlias: string;
|
4706
|
+
ceramicEndpoint: string;
|
4707
|
+
defaultContentFamily: string;
|
4708
|
+
};
|
4709
|
+
/** @group IDXPlugin */
|
4658
4710
|
export declare type IDXPluginMethods = {
|
4659
4711
|
getCredentialsListFromIdx: (alias?: string) => Promise<CredentialsList>;
|
4660
4712
|
publishContentToCeramic: (cred: any) => Promise<string>;
|
@@ -4664,107 +4716,40 @@ export declare type IDXPluginMethods = {
|
|
4664
4716
|
addVerifiableCredentialInIdx: (cred: IDXCredential) => Promise<StreamID>;
|
4665
4717
|
removeVerifiableCredentialInIdx: (title: string) => Promise<StreamID>;
|
4666
4718
|
};
|
4667
|
-
|
4668
|
-
|
4669
|
-
title: z.ZodString;
|
4670
|
-
storageType: z.ZodOptional<z.ZodEnum<[
|
4671
|
-
"ceramic"
|
4672
|
-
]>>;
|
4673
|
-
metadata: z.ZodOptional<z.ZodObject<{
|
4674
|
-
name: z.ZodOptional<z.ZodString>;
|
4675
|
-
image: z.ZodOptional<z.ZodString>;
|
4676
|
-
}, "strip", z.ZodAny, {
|
4677
|
-
[x: string]: any;
|
4678
|
-
name?: string | undefined;
|
4679
|
-
image?: string | undefined;
|
4680
|
-
}, {
|
4681
|
-
[x: string]: any;
|
4682
|
-
name?: string | undefined;
|
4683
|
-
image?: string | undefined;
|
4684
|
-
}>>;
|
4685
|
-
}, "strict", z.ZodTypeAny, {
|
4686
|
-
storageType?: "ceramic" | undefined;
|
4687
|
-
metadata?: {
|
4688
|
-
[x: string]: any;
|
4689
|
-
name?: string | undefined;
|
4690
|
-
image?: string | undefined;
|
4691
|
-
} | undefined;
|
4692
|
-
id: string;
|
4693
|
-
title: string;
|
4694
|
-
}, {
|
4695
|
-
storageType?: "ceramic" | undefined;
|
4696
|
-
metadata?: {
|
4697
|
-
[x: string]: any;
|
4698
|
-
name?: string | undefined;
|
4699
|
-
image?: string | undefined;
|
4700
|
-
} | undefined;
|
4701
|
-
id: string;
|
4702
|
-
title: string;
|
4703
|
-
}>;
|
4704
|
-
export declare type IDXCredential = z.infer<typeof IDXCredentialValidator>;
|
4705
|
-
declare const CredentialsListValidator: z.ZodObject<{
|
4719
|
+
/** @group IDXPlugin */
|
4720
|
+
export declare const CredentialsListValidator: z.ZodObject<{
|
4706
4721
|
credentials: z.ZodArray<z.ZodObject<{
|
4707
4722
|
id: z.ZodString;
|
4708
4723
|
title: z.ZodString;
|
4709
4724
|
storageType: z.ZodOptional<z.ZodEnum<[
|
4710
4725
|
"ceramic"
|
4711
4726
|
]>>;
|
4712
|
-
|
4713
|
-
name: z.ZodOptional<z.ZodString>;
|
4714
|
-
image: z.ZodOptional<z.ZodString>;
|
4715
|
-
}, "strip", z.ZodAny, {
|
4716
|
-
[x: string]: any;
|
4717
|
-
name?: string | undefined;
|
4718
|
-
image?: string | undefined;
|
4719
|
-
}, {
|
4720
|
-
[x: string]: any;
|
4721
|
-
name?: string | undefined;
|
4722
|
-
image?: string | undefined;
|
4723
|
-
}>>;
|
4724
|
-
}, "strict", z.ZodTypeAny, {
|
4727
|
+
}, "strip", z.ZodTypeAny, {
|
4725
4728
|
storageType?: "ceramic" | undefined;
|
4726
|
-
metadata?: {
|
4727
|
-
[x: string]: any;
|
4728
|
-
name?: string | undefined;
|
4729
|
-
image?: string | undefined;
|
4730
|
-
} | undefined;
|
4731
4729
|
id: string;
|
4732
4730
|
title: string;
|
4733
4731
|
}, {
|
4734
4732
|
storageType?: "ceramic" | undefined;
|
4735
|
-
metadata?: {
|
4736
|
-
[x: string]: any;
|
4737
|
-
name?: string | undefined;
|
4738
|
-
image?: string | undefined;
|
4739
|
-
} | undefined;
|
4740
4733
|
id: string;
|
4741
4734
|
title: string;
|
4742
4735
|
}>, "many">;
|
4743
4736
|
}, "strict", z.ZodTypeAny, {
|
4744
4737
|
credentials: {
|
4745
4738
|
storageType?: "ceramic" | undefined;
|
4746
|
-
metadata?: {
|
4747
|
-
[x: string]: any;
|
4748
|
-
name?: string | undefined;
|
4749
|
-
image?: string | undefined;
|
4750
|
-
} | undefined;
|
4751
4739
|
id: string;
|
4752
4740
|
title: string;
|
4753
4741
|
}[];
|
4754
4742
|
}, {
|
4755
4743
|
credentials: {
|
4756
4744
|
storageType?: "ceramic" | undefined;
|
4757
|
-
metadata?: {
|
4758
|
-
[x: string]: any;
|
4759
|
-
name?: string | undefined;
|
4760
|
-
image?: string | undefined;
|
4761
|
-
} | undefined;
|
4762
4745
|
id: string;
|
4763
4746
|
title: string;
|
4764
4747
|
}[];
|
4765
4748
|
}>;
|
4749
|
+
/** @group IDXPlugin */
|
4766
4750
|
export declare type CredentialsList = z.infer<typeof CredentialsListValidator>;
|
4767
|
-
|
4751
|
+
/** @group VC Plugin */
|
4752
|
+
export declare type VCPluginDependentMethods = {
|
4768
4753
|
getSubjectDid: (type: "key") => string;
|
4769
4754
|
getSubjectKeypair: () => KeyPair;
|
4770
4755
|
keyToVerificationMethod: (type: string, keypair: KeyPair) => Promise<string>;
|
@@ -4773,7 +4758,8 @@ export declare type DependentMethods = {
|
|
4773
4758
|
issuePresentation: (presentation: UnsignedVP, options: ProofOptions, keypair: KeyPair) => Promise<VP>;
|
4774
4759
|
verifyPresentation: (presentation: VP) => Promise<VerificationCheck>;
|
4775
4760
|
};
|
4776
|
-
|
4761
|
+
/** @group VC Plugin */
|
4762
|
+
export declare type VCPluginMethods = VCPluginDependentMethods & {
|
4777
4763
|
issueCredential: (credential: UnsignedVC) => Promise<VC>;
|
4778
4764
|
verifyCredential: (credential: VC) => Promise<VerificationCheck>;
|
4779
4765
|
issuePresentation: (credential: UnsignedVP) => Promise<VP>;
|
@@ -4781,27 +4767,40 @@ export declare type VCPluginMethods = DependentMethods & {
|
|
4781
4767
|
getTestVc: (subject?: string) => UnsignedVC;
|
4782
4768
|
getTestVp: (credential?: VC) => Promise<UnsignedVP>;
|
4783
4769
|
};
|
4770
|
+
/** @group VC Plugin */
|
4784
4771
|
export declare type VerifyExtension = {
|
4785
4772
|
verifyCredential: (credential: VC) => Promise<VerificationCheck>;
|
4786
4773
|
};
|
4774
|
+
/** @group VPQR Plugin */
|
4787
4775
|
export declare type VpqrPluginMethods = {
|
4788
4776
|
vpFromQrCode: (text: string) => Promise<VP>;
|
4789
4777
|
vpToQrCode: (vp: VP) => Promise<string>;
|
4790
4778
|
};
|
4779
|
+
/** @group VPQR Plugin */
|
4780
|
+
export declare type VpqrPluginDependentMethods = {
|
4781
|
+
contextLoader: (url: string) => Promise<Record<string, any>>;
|
4782
|
+
};
|
4791
4783
|
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
4792
4784
|
export declare type InitFunction<Args extends Record<string, any> | undefined = Record<string, any>, Config extends keyof LearnCardConfig = keyof LearnCardConfig, ReturnValue extends LearnCard<any, any> = LearnCard<any, any>> = {
|
4793
4785
|
args: undefined extends Args ? Partial<Pick<LearnCardConfig, Config>> : Args & Partial<Pick<LearnCardConfig, Config>>;
|
4794
4786
|
returnValue: ReturnValue;
|
4795
4787
|
};
|
4788
|
+
export declare type GenericInitFunction<InitFunctions extends InitFunction<any, any, any>[]> = {
|
4789
|
+
args: InitFunctions[number]["args"];
|
4790
|
+
returnValue: Promise<InitFunctions[number]["returnValue"]>;
|
4791
|
+
};
|
4792
|
+
/** @group Universal Wallets */
|
4796
4793
|
export declare type Plugin<Name extends string, PublicMethods extends Record<string, (...args: any[]) => any> = Record<never, never>> = {
|
4797
4794
|
name?: Name;
|
4798
4795
|
pluginMethods: {
|
4799
4796
|
[Key in keyof PublicMethods]: <T extends Wallet<any, PublicMethods>>(wallet: T, ...args: Parameters<PublicMethods[Key]>) => ReturnType<PublicMethods[Key]>;
|
4800
4797
|
};
|
4801
4798
|
};
|
4799
|
+
/** @group Universal Wallets */
|
4802
4800
|
export declare type PublicFieldsObj<PluginMethods extends Record<string, (...args: any[]) => any> = Record<never, never>> = {
|
4803
4801
|
pluginMethods: PluginMethods;
|
4804
4802
|
};
|
4803
|
+
/** @group Universal Wallets */
|
4805
4804
|
export declare type Wallet<PluginNames extends string = "", PluginMethods extends Record<string, (...args: any[]) => any> = Record<never, never>> = PublicFieldsObj<PluginMethods> & {
|
4806
4805
|
contents: any[];
|
4807
4806
|
plugins: Plugin<PluginNames, Record<string, (...args: any[]) => any>>[];
|
@@ -4809,153 +4808,317 @@ export declare type Wallet<PluginNames extends string = "", PluginMethods extend
|
|
4809
4808
|
remove: (contentId: string) => Promise<Wallet<PluginNames, PluginMethods>>;
|
4810
4809
|
addPlugin: <Name extends string, Methods extends Record<string, (...args: any[]) => any> = Record<never, never>>(plugin: Plugin<Name, Methods>) => Promise<Wallet<"" extends PluginNames ? Name : PluginNames | Name, Record<never, never> extends PluginMethods ? Methods : PluginMethods & Methods>>;
|
4811
4810
|
};
|
4812
|
-
|
4811
|
+
/**
|
4812
|
+
* Wallet holder's did
|
4813
|
+
*
|
4814
|
+
* @group LearnCard Methods
|
4815
|
+
*/
|
4816
|
+
export declare type Did = (type?: DidMethod) => string;
|
4817
|
+
/**
|
4818
|
+
* Wallet holder's ed25519 key pair
|
4819
|
+
*
|
4820
|
+
* @group LearnCard Methods
|
4821
|
+
*/
|
4822
|
+
export declare type Keypair = (type?: Algorithm) => {
|
4823
|
+
kty: string;
|
4824
|
+
crv: string;
|
4825
|
+
x: string;
|
4826
|
+
y?: string;
|
4827
|
+
d: string;
|
4828
|
+
};
|
4829
|
+
/**
|
4830
|
+
* Signs an unsigned Verifiable Credential, returning the signed VC
|
4831
|
+
*
|
4832
|
+
* @group LearnCard Methods
|
4833
|
+
*/
|
4834
|
+
export declare type IssueCredential = (credential: UnsignedVC) => Promise<VC>;
|
4835
|
+
/**
|
4836
|
+
* Verifies a signed Verifiable Credential
|
4837
|
+
*
|
4838
|
+
* Empty error/warnings arrays means verification was successful
|
4839
|
+
*
|
4840
|
+
* @group LearnCard Methods
|
4841
|
+
*/
|
4842
|
+
export declare type VerifyCredential = (credential: VC) => Promise<VerificationItem[]>;
|
4843
|
+
/**
|
4844
|
+
* Signs an unsigned Verifiable Presentation, returning the signed VP
|
4845
|
+
*
|
4846
|
+
* @group LearnCard Methods
|
4847
|
+
*/
|
4848
|
+
export declare type IssuePresentation = (presentation: UnsignedVP) => Promise<VP>;
|
4849
|
+
/**
|
4850
|
+
* Verifies a signed Verifiable Presentation
|
4851
|
+
*
|
4852
|
+
* Empry error/warnings arrays means verification was successful
|
4853
|
+
*
|
4854
|
+
* @group LearnCard Methods
|
4855
|
+
*/
|
4856
|
+
export declare type VerifyPresentation = (presentation: VP) => Promise<VerificationCheck>;
|
4857
|
+
/**
|
4858
|
+
* Returns the credential marked with `title` from IDX
|
4859
|
+
*
|
4860
|
+
* @group LearnCard Methods
|
4861
|
+
*/
|
4862
|
+
export declare type GetCredential = (title: string) => Promise<VC>;
|
4863
|
+
/**
|
4864
|
+
* Returns all credentials from IDX
|
4865
|
+
*
|
4866
|
+
* @group LearnCard Methods
|
4867
|
+
*/
|
4868
|
+
export declare type GetCredentials = () => Promise<VC[]>;
|
4869
|
+
/**
|
4870
|
+
* Returns all credentials from IDX
|
4871
|
+
*
|
4872
|
+
* @group LearnCard Methods
|
4873
|
+
*/
|
4874
|
+
export declare type GetCredentialsList = () => Promise<IDXCredential[]>;
|
4875
|
+
/**
|
4876
|
+
* Publishes a credential to Ceramic, returning the credential's stream ID
|
4877
|
+
*
|
4878
|
+
* This stream ID may then be shared/persisted/resolved to gain access to the credential
|
4879
|
+
*
|
4880
|
+
* Resolving a stream ID can be done by passing the stream ID to `readFromCeramic`
|
4881
|
+
*
|
4882
|
+
* @group LearnCard Methods
|
4883
|
+
*/
|
4884
|
+
export declare type PublishCredential = (credential: VC) => Promise<string>;
|
4885
|
+
/**
|
4886
|
+
* Adds a stream ID pointing to a credential (such as the one returned by `publishCredential`)
|
4887
|
+
* to IDX with a bespoke title
|
4888
|
+
*
|
4889
|
+
* The credential may then be retrieved using `getCredential` and passing in that bespoke title,
|
4890
|
+
* or by using `getCredentials` to get a list of all credentials that have been added to IDX
|
4891
|
+
*
|
4892
|
+
* @group LearnCard Methods
|
4893
|
+
*/
|
4894
|
+
export declare type AddCredential = (credential: IDXCredential) => Promise<void>;
|
4895
|
+
/**
|
4896
|
+
* Adds a stream ID pointing to a credential (such as the one returned by `publishCredential`)
|
4897
|
+
* to IDX with a bespoke title
|
4898
|
+
*
|
4899
|
+
* The credential may then be retrieved using `getCredential` and passing in that bespoke title,
|
4900
|
+
* or by using `getCredentials` to get a list of all credentials that have been added to IDX
|
4901
|
+
*
|
4902
|
+
* @group LearnCard Methods
|
4903
|
+
*/
|
4904
|
+
export declare type RemoveCredential = (title: string) => Promise<void>;
|
4905
|
+
/**
|
4906
|
+
* Resolves a did to its did document
|
4907
|
+
*
|
4908
|
+
* @group LearnCard Methods
|
4909
|
+
*/
|
4910
|
+
export declare type ResolveDid = (did: string) => Promise<Record<string, any>>;
|
4911
|
+
/**
|
4912
|
+
* Resolves a stream ID, returning its contents
|
4913
|
+
*
|
4914
|
+
* This can be given the return value of `publishCredential` to gain access to the credential
|
4915
|
+
* that was published
|
4916
|
+
*
|
4917
|
+
* @group LearnCard Methods
|
4918
|
+
*/
|
4919
|
+
export declare type ReadFromCeramic = (streamId: string) => Promise<any>;
|
4920
|
+
/**
|
4921
|
+
* Returns an example credential, optionally allowing a subject's did to be passed in
|
4922
|
+
*
|
4923
|
+
* You can use this to test out implementations that use this library!
|
4924
|
+
*
|
4925
|
+
* @group LearnCard Methods
|
4926
|
+
*/
|
4927
|
+
export declare type GetTestVc = (subject?: string) => UnsignedVC;
|
4928
|
+
/**
|
4929
|
+
* Wraps a crednetial in an exmaple presentaion. If no credential is provided, a new one will be
|
4930
|
+
* generated using getTestVc
|
4931
|
+
*
|
4932
|
+
* You can use this to test out implementations that use this library!
|
4933
|
+
*
|
4934
|
+
* @group LearnCard Methods
|
4935
|
+
*/
|
4936
|
+
export declare type GetTestVp = (credential?: VC) => Promise<UnsignedVP>;
|
4937
|
+
/**
|
4938
|
+
* Returns Ethereum public address
|
4939
|
+
*
|
4940
|
+
* @group LearnCard Methods
|
4941
|
+
*/
|
4942
|
+
export declare type GetEthereumAddress = () => string;
|
4943
|
+
/**
|
4944
|
+
* Get the balance of an ERC20 token
|
4945
|
+
* Defaults to ETH if symbolOrAddress is not provided
|
4946
|
+
*
|
4947
|
+
* @group LearnCard Methods
|
4948
|
+
*/
|
4949
|
+
export declare type GetBalance = (symbolOrAddress?: string) => Promise<string>;
|
4950
|
+
/**
|
4951
|
+
* Get the balance of an ERC20 token for a given address
|
4952
|
+
* Defaults to ETH if symbolOrAddress is not provided
|
4953
|
+
*
|
4954
|
+
* @group LearnCard Methods
|
4955
|
+
*/
|
4956
|
+
export declare type GetBalanceForAddress = (walletAddress: string, symbolOrAddress?: string) => Promise<string>;
|
4957
|
+
/**
|
4958
|
+
* Transfer tokens to a given address
|
4959
|
+
*
|
4960
|
+
* @group LearnCard Methods
|
4961
|
+
*/
|
4962
|
+
export declare type TransferTokens = (tokenSymbolOrAddress: string, amount: number, toAddress: string) => Promise<string>;
|
4963
|
+
/**
|
4964
|
+
* Get your current Ethereum network
|
4965
|
+
*
|
4966
|
+
* @group LearnCard Methods
|
4967
|
+
*/
|
4968
|
+
export declare type GetCurrentNetwork = () => ethers.providers.Networkish;
|
4969
|
+
/**
|
4970
|
+
* Change your Ethereum network
|
4971
|
+
*
|
4972
|
+
* @group LearnCard Methods
|
4973
|
+
*/
|
4974
|
+
export declare type ChangeNetwork = (network: ethers.providers.Networkish) => void;
|
4975
|
+
/**
|
4976
|
+
* Add an infura project id to an existing wallet.
|
4977
|
+
* Really only useful for testing with the CLI right now...
|
4978
|
+
*
|
4979
|
+
* @group LearnCard Methods
|
4980
|
+
*/
|
4981
|
+
export declare type AddInfuraProjectId = (infuraProjectIdToAdd: string) => void;
|
4982
|
+
/**
|
4983
|
+
* Returns a Verifiable Presentation (VP) from a QR code base-64 image data string containing a VP compressed by CBOR-LD.
|
4984
|
+
*
|
4985
|
+
* @group LearnCard Methods
|
4986
|
+
*/
|
4987
|
+
export declare type VpFromQrCode = (text: string) => Promise<VP>;
|
4988
|
+
/**
|
4989
|
+
* Returns a QR-embeddable base-64 image data string from a Verifiable Presentation, compressed using CBOR-LD.
|
4990
|
+
*
|
4991
|
+
* @group LearnCard Methods
|
4992
|
+
*/
|
4993
|
+
export declare type VpToQrCode = (vp: VP) => Promise<string>;
|
4994
|
+
/**
|
4995
|
+
* @group LearnCard Methods
|
4996
|
+
*/
|
4813
4997
|
export declare type AllLearnCardMethods = {
|
4814
|
-
|
4815
|
-
|
4816
|
-
|
4817
|
-
|
4818
|
-
|
4819
|
-
|
4820
|
-
|
4821
|
-
|
4822
|
-
|
4823
|
-
|
4824
|
-
|
4825
|
-
|
4826
|
-
|
4827
|
-
|
4828
|
-
|
4829
|
-
|
4830
|
-
|
4831
|
-
|
4832
|
-
|
4833
|
-
|
4834
|
-
|
4835
|
-
|
4836
|
-
|
4837
|
-
|
4838
|
-
|
4839
|
-
verifyPresentation: (presentation: VP) => Promise<VerificationCheck>;
|
4840
|
-
/** Returns the credential marked with `title` from IDX */
|
4841
|
-
getCredential: (title: string) => Promise<VC>;
|
4842
|
-
/** Returns all credentials from IDX */
|
4843
|
-
getCredentials: () => Promise<VC[]>;
|
4844
|
-
/** Returns all credentials from IDX */
|
4845
|
-
getCredentialsList: () => Promise<IDXCredential[]>;
|
4846
|
-
/**
|
4847
|
-
* Publishes a credential to Ceramic, returning the credential's stream ID
|
4848
|
-
*
|
4849
|
-
* This stream ID may then be shared/persisted/resolved to gain access to the credential
|
4850
|
-
*
|
4851
|
-
* Resolving a stream ID can be done by passing the stream ID to `readFromCeramic`
|
4852
|
-
*/
|
4853
|
-
publishCredential: (credential: VC) => Promise<string>;
|
4854
|
-
/**
|
4855
|
-
* Adds a stream ID pointing to a credential (such as the one returned by `publishCredential`)
|
4856
|
-
* to IDX with a bespoke title
|
4857
|
-
*
|
4858
|
-
* The credential may then be retrieved using `getCredential` and passing in that bespoke title,
|
4859
|
-
* or by using `getCredentials` to get a list of all credentials that have been added to IDX
|
4860
|
-
*/
|
4861
|
-
addCredential: (credential: IDXCredential) => Promise<void>;
|
4862
|
-
/**
|
4863
|
-
* Adds a stream ID pointing to a credential (such as the one returned by `publishCredential`)
|
4864
|
-
* to IDX with a bespoke title
|
4865
|
-
*
|
4866
|
-
* The credential may then be retrieved using `getCredential` and passing in that bespoke title,
|
4867
|
-
* or by using `getCredentials` to get a list of all credentials that have been added to IDX
|
4868
|
-
*/
|
4869
|
-
removeCredential: (title: string) => Promise<void>;
|
4870
|
-
resolveDid: (did: string) => Promise<Record<string, any>>;
|
4871
|
-
/**
|
4872
|
-
* Resolves a stream ID, returning its contents
|
4873
|
-
*
|
4874
|
-
* This can be given the return value of `publishCredential` to gain access to the credential
|
4875
|
-
* that was published
|
4876
|
-
*/
|
4877
|
-
readFromCeramic: (streamId: string) => Promise<any>;
|
4878
|
-
/**
|
4879
|
-
* Returns an example credential, optionally allowing a subject's did to be passed in
|
4880
|
-
*
|
4881
|
-
* You can use this to test out implementations that use this library!
|
4882
|
-
*/
|
4883
|
-
getTestVc: (subject?: string) => UnsignedVC;
|
4884
|
-
/**
|
4885
|
-
* Wraps a crednetial in an exmaple presentaion. If no credential is provided, a new one will be
|
4886
|
-
* generated using getTestVc
|
4887
|
-
*
|
4888
|
-
* You can use this to test out implementations that use this library!
|
4889
|
-
*/
|
4890
|
-
getTestVp: (credential?: VC) => Promise<UnsignedVP>;
|
4891
|
-
/**
|
4892
|
-
* Returns Ethereum public address
|
4893
|
-
*/
|
4894
|
-
getEthereumAddress: () => string;
|
4895
|
-
/**
|
4896
|
-
* Get the balance of an ERC20 token
|
4897
|
-
* Defaults to ETH if symbolOrAddress is not provided
|
4898
|
-
*/
|
4899
|
-
getBalance: (symbolOrAddress?: string) => Promise<string>;
|
4900
|
-
/**
|
4901
|
-
* Get the balance of an ERC20 token for a given address
|
4902
|
-
* Defaults to ETH if symbolOrAddress is not provided
|
4903
|
-
*/
|
4904
|
-
getBalanceForAddress: (walletAddress: string, symbolOrAddress?: string) => Promise<string>;
|
4905
|
-
/**
|
4906
|
-
* Transfer tokens to a given address
|
4907
|
-
*/
|
4908
|
-
transferTokens: (tokenSymbolOrAddress: string, amount: number, toAddress: string) => Promise<string>;
|
4909
|
-
/**
|
4910
|
-
* Get your current Ethereum network
|
4911
|
-
*/
|
4912
|
-
getCurrentNetwork: () => ethers.providers.Networkish;
|
4913
|
-
/**
|
4914
|
-
* Change your Ethereum network
|
4915
|
-
*/
|
4916
|
-
changeNetwork: (network: ethers.providers.Networkish) => void;
|
4917
|
-
/**
|
4918
|
-
* Add an infura project id to an existing wallet.
|
4919
|
-
* Really only useful for testing with the CLI right now...
|
4920
|
-
*/
|
4921
|
-
addInfuraProjectId: (infuraProjectIdToAdd: string) => void;
|
4922
|
-
/**
|
4923
|
-
* Returns a Verifiable Presentation (VP) from a QR code base-64 image data string containing a VP compressed by CBOR-LD.
|
4924
|
-
*/
|
4925
|
-
vpFromQrCode: (text: string) => Promise<VP>;
|
4926
|
-
/**
|
4927
|
-
* Returns a QR-embeddable base-64 image data string from a Verifiable Presentation, compressed using CBOR-LD.
|
4928
|
-
*/
|
4929
|
-
vpToQrCode: (vp: VP) => Promise<string>;
|
4998
|
+
did: Did;
|
4999
|
+
keypair: Keypair;
|
5000
|
+
issueCredential: IssueCredential;
|
5001
|
+
verifyCredential: VerifyCredential;
|
5002
|
+
issuePresentation: IssuePresentation;
|
5003
|
+
verifyPresentation: VerifyPresentation;
|
5004
|
+
getCredential: GetCredential;
|
5005
|
+
getCredentials: GetCredentials;
|
5006
|
+
getCredentialsList: GetCredentialsList;
|
5007
|
+
publishCredential: PublishCredential;
|
5008
|
+
addCredential: AddCredential;
|
5009
|
+
removeCredential: RemoveCredential;
|
5010
|
+
resolveDid: ResolveDid;
|
5011
|
+
readFromCeramic: ReadFromCeramic;
|
5012
|
+
getTestVc: GetTestVc;
|
5013
|
+
getTestVp: GetTestVp;
|
5014
|
+
getEthereumAddress: GetEthereumAddress;
|
5015
|
+
getBalance: GetBalance;
|
5016
|
+
getBalanceForAddress: GetBalanceForAddress;
|
5017
|
+
transferTokens: TransferTokens;
|
5018
|
+
getCurrentNetwork: GetCurrentNetwork;
|
5019
|
+
changeNetwork: ChangeNetwork;
|
5020
|
+
addInfuraProjectId: AddInfuraProjectId;
|
5021
|
+
vpFromQrCode: VpFromQrCode;
|
5022
|
+
vpToQrCode: VpToQrCode;
|
4930
5023
|
};
|
5024
|
+
/** @group Universal Wallets */
|
5025
|
+
export declare type LearnCardRawWallet = Wallet<"DIDKit" | "DID Key" | "VC" | "IDX" | "Expiration" | "Ethereum" | "Vpqr", DidKeyPluginMethods<DidMethod> & VCPluginMethods & IDXPluginMethods & EthereumPluginMethods & VpqrPluginMethods>;
|
5026
|
+
/**
|
5027
|
+
* @group LearnCard
|
5028
|
+
*/
|
4931
5029
|
export declare type LearnCard<Methods extends keyof AllLearnCardMethods = keyof AllLearnCardMethods, RawWallet extends Wallet<any, any> = LearnCardRawWallet> = {
|
4932
5030
|
/** Raw IoE wallet instance. You shouldn't need to drop down to this level! */
|
4933
5031
|
_wallet: RawWallet;
|
4934
5032
|
} & Pick<AllLearnCardMethods, Methods>;
|
5033
|
+
/**
|
5034
|
+
* @group LearnCard
|
5035
|
+
*/
|
4935
5036
|
export declare type EmptyLearnCard = LearnCard<"verifyCredential" | "verifyPresentation" | "resolveDid", Wallet<"DIDKit" | "Expiration", DidkitPluginMethods & VerifyExtension>>;
|
4936
|
-
|
4937
|
-
modelData: ModelAliases;
|
4938
|
-
credentialAlias: string;
|
4939
|
-
ceramicEndpoint: string;
|
4940
|
-
defaultContentFamily: string;
|
4941
|
-
};
|
5037
|
+
/** @group LearnCard */
|
4942
5038
|
export declare type LearnCardConfig = {
|
4943
5039
|
ceramicIdx: CeramicIDXArgs;
|
4944
5040
|
didkit: InitInput | Promise<InitInput>;
|
4945
5041
|
defaultContents: any[];
|
4946
5042
|
ethereumConfig: EthereumConfig;
|
4947
5043
|
};
|
5044
|
+
/** @group Init Functions */
|
4948
5045
|
export declare type EmptyWallet = InitFunction<undefined, "didkit", EmptyLearnCard>;
|
5046
|
+
/** @group Init Functions */
|
4949
5047
|
export declare type WalletFromKey = InitFunction<{
|
4950
5048
|
seed: string;
|
4951
5049
|
}, keyof LearnCardConfig, LearnCard>;
|
4952
|
-
/**
|
5050
|
+
/** @group Init Functions */
|
5051
|
+
export declare type InitLearnCard = GenericInitFunction<[
|
5052
|
+
EmptyWallet,
|
5053
|
+
WalletFromKey
|
5054
|
+
]>;
|
5055
|
+
/**
|
5056
|
+
* Generates an empty wallet with no key material
|
5057
|
+
*
|
5058
|
+
* @group Init Functions
|
5059
|
+
*/
|
4953
5060
|
export declare const emptyWallet: ({ didkit }?: EmptyWallet["args"]) => Promise<EmptyWallet["returnValue"]>;
|
4954
|
-
/**
|
5061
|
+
/**
|
5062
|
+
* Generates a LearnCard Wallet from a 64 character seed string
|
5063
|
+
*
|
5064
|
+
* @group Init Functions
|
5065
|
+
*/
|
4955
5066
|
export declare const walletFromKey: (key: string, { ceramicIdx, didkit, defaultContents, ethereumConfig, }?: Partial<LearnCardConfig>) => Promise<LearnCard>;
|
5067
|
+
/**
|
5068
|
+
* Generates an Empty Wallet
|
5069
|
+
*
|
5070
|
+
* @group Init Functions
|
5071
|
+
*/
|
4956
5072
|
export declare function initLearnCard(config?: EmptyWallet["args"]): Promise<EmptyWallet["returnValue"]>;
|
5073
|
+
/**
|
5074
|
+
* Generates a full wallet from a 32 byte seed
|
5075
|
+
*
|
5076
|
+
* @group Init Functions
|
5077
|
+
*/
|
4957
5078
|
export declare function initLearnCard(config: WalletFromKey["args"]): Promise<WalletFromKey["returnValue"]>;
|
5079
|
+
export declare const passwordToKey: (password: string, salt?: string, iterations?: number, digest?: string) => Promise<Uint8Array>;
|
5080
|
+
export declare const seedToId: (seed: Uint8Array) => Promise<string>;
|
5081
|
+
/** @group Universal Wallets */
|
5082
|
+
export declare const generateWallet: <PluginNames extends string, PluginMethods extends Record<string, (...args: any[]) => any> = Record<never, never>>(contents?: any[], _wallet?: Partial<Wallet<any, PluginMethods>>) => Promise<Wallet<PluginNames, PluginMethods>>;
|
5083
|
+
/**
|
5084
|
+
*
|
5085
|
+
* @group Plugins
|
5086
|
+
*/
|
5087
|
+
export declare const getDidKitPlugin: (input?: InitInput | Promise<InitInput>) => Promise<Plugin<"DIDKit", DidkitPluginMethods>>;
|
5088
|
+
/**
|
5089
|
+
*
|
5090
|
+
* @group Plugins
|
5091
|
+
*/
|
5092
|
+
export declare const getDidKeyPlugin: <DidMethod extends string>(wallet: Wallet<string, DependentMethods<DidMethod>>, key: string) => Promise<Plugin<"DID Key", DidKeyPluginMethods<DidMethod>>>;
|
5093
|
+
/**
|
5094
|
+
* @group Plugins
|
5095
|
+
*/
|
5096
|
+
export declare const getVCPlugin: (wallet: Wallet<string, VCPluginDependentMethods>) => Promise<Plugin<"VC", VCPluginMethods>>;
|
5097
|
+
/**
|
5098
|
+
* @group Plugins
|
5099
|
+
*/
|
5100
|
+
export declare const getIDXPlugin: (wallet: Wallet<any, {
|
5101
|
+
getKey: () => string;
|
5102
|
+
}>, { modelData, credentialAlias, ceramicEndpoint, defaultContentFamily }: CeramicIDXArgs) => Promise<Plugin<"IDX", IDXPluginMethods>>;
|
5103
|
+
/**
|
5104
|
+
* @group Plugins
|
5105
|
+
*/
|
5106
|
+
export declare const ExpirationPlugin: (wallet: Wallet<any, VerifyExtension>) => Plugin<"Expiration", VerifyExtension>;
|
5107
|
+
/**
|
5108
|
+
* @group Plugins
|
5109
|
+
*/
|
5110
|
+
export declare const getEthereumPlugin: (initWallet: Wallet<string, {
|
5111
|
+
getSubjectDid: (type: DidMethod) => string;
|
5112
|
+
getSubjectKeypair: (type?: Algorithm) => KeyPair;
|
5113
|
+
}>, config: EthereumConfig) => Plugin<"Ethereum", EthereumPluginMethods>;
|
5114
|
+
/**
|
5115
|
+
* @group Plugins
|
5116
|
+
*/
|
5117
|
+
export declare const getVpqrPlugin: (wallet: Wallet<string, VpqrPluginDependentMethods>) => Plugin<"Vpqr", VpqrPluginMethods>;
|
4958
5118
|
export * from "@wallet/init";
|
4959
5119
|
export { Wallet, Plugin } from "types/wallet";
|
5120
|
+
export * from "types/LearnCard";
|
5121
|
+
export * from "@wallet/base";
|
5122
|
+
export * from "@wallet/plugins";
|
4960
5123
|
|
4961
5124
|
export {};
|