@learncard/core 3.0.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
package/dist/core.d.ts CHANGED
@@ -4602,6 +4602,17 @@ export declare type ProofOptions = {
4602
4602
  verificationMethod: string;
4603
4603
  proofPurpose: string;
4604
4604
  };
4605
+ export declare type DidkitPluginMethods = {
4606
+ generateEd25519KeyFromBytes: (bytes: Uint8Array) => KeyPair;
4607
+ generateSecp256k1KeyFromBytes: (bytes: Uint8Array) => KeyPair;
4608
+ keyToDid: (type: DidMethod, keypair: KeyPair) => string;
4609
+ keyToVerificationMethod: (type: string, keypair: KeyPair) => Promise<string>;
4610
+ issueCredential: (credential: UnsignedVC, options: ProofOptions, keypair: KeyPair) => Promise<VC>;
4611
+ verifyCredential: (credential: VC) => Promise<VerificationCheck>;
4612
+ issuePresentation: (presentation: UnsignedVP, options: ProofOptions, keypair: KeyPair) => Promise<VP>;
4613
+ verifyPresentation: (presentation: VP) => Promise<VerificationCheck>;
4614
+ contextLoader: (url: string) => Promise<Record<string, any>>;
4615
+ };
4605
4616
  export declare type Algorithm = "ed25519" | "secp256k1";
4606
4617
  export declare type DidKeyPluginMethods<DidMethod extends string> = {
4607
4618
  getSubjectDid: (type: DidMethod) => string;
@@ -4615,12 +4626,15 @@ export declare type DidKeyPluginMethods<DidMethod extends string> = {
4615
4626
  getKey: () => string;
4616
4627
  };
4617
4628
  export declare type EthereumPluginMethods = {
4618
- checkMyEth: () => Promise<string>;
4619
- checkMyDai: () => Promise<string>;
4620
- checkMyUsdc: () => Promise<string>;
4629
+ getEthereumAddress: () => string;
4630
+ getBalance: (symbolOrAddress?: string) => Promise<string>;
4631
+ getBalanceForAddress: (walletAddress: string, symbolOrAddress?: string) => Promise<string>;
4632
+ transferTokens: (tokenSymbolOrAddress: string, amount: number, toAddress: string) => Promise<string>;
4633
+ getCurrentNetwork: () => providers.Networkish;
4634
+ changeNetwork: (network: providers.Networkish) => void;
4635
+ addInfuraProjectId: (infuraProjectIdToAdd: string) => void;
4621
4636
  };
4622
4637
  export declare type EthereumConfig = {
4623
- address: string;
4624
4638
  infuraProjectId?: string;
4625
4639
  network?: providers.Networkish;
4626
4640
  };
@@ -4661,7 +4675,14 @@ export declare type VCPluginMethods = DependentMethods & {
4661
4675
  getTestVc: (subject?: string) => UnsignedVC;
4662
4676
  getTestVp: (credential?: VC) => Promise<UnsignedVP>;
4663
4677
  };
4678
+ export declare type VerifyExtension = {
4679
+ verifyCredential: (credential: VC) => Promise<VerificationCheck>;
4680
+ };
4664
4681
  export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
4682
+ 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>> = {
4683
+ args: undefined extends Args ? Partial<Pick<LearnCardConfig, Config>> : Args & Partial<Pick<LearnCardConfig, Config>>;
4684
+ returnValue: ReturnValue;
4685
+ };
4665
4686
  export declare type Plugin<Name extends string, PublicMethods extends Record<string, (...args: any[]) => any> = Record<never, never>> = {
4666
4687
  name?: Name;
4667
4688
  pluginMethods: {
@@ -4679,9 +4700,7 @@ export declare type Wallet<PluginNames extends string = "", PluginMethods extend
4679
4700
  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>>;
4680
4701
  };
4681
4702
  export declare type LearnCardRawWallet = Wallet<"DIDKit" | "DID Key" | "VC" | "IDX" | "Expiration" | "Ethereum", DidKeyPluginMethods<DidMethod> & VCPluginMethods & IDXPluginMethods & EthereumPluginMethods>;
4682
- export declare type LearnCardWallet = {
4683
- /** Raw IoE wallet instance. You shouldn't need to drop down to this level! */
4684
- _wallet: LearnCardRawWallet;
4703
+ export declare type AllLearnCardMethods = {
4685
4704
  /** Wallet holder's did */
4686
4705
  did: (type?: DidMethod) => string;
4687
4706
  /** Wallet holder's ed25519 key pair */
@@ -4759,18 +4778,42 @@ export declare type LearnCardWallet = {
4759
4778
  */
4760
4779
  getTestVp: (credential?: VC) => Promise<UnsignedVP>;
4761
4780
  /**
4762
- * Returns your ETH balance
4781
+ * Returns Ethereum public address
4763
4782
  */
4764
- checkMyEth: () => Promise<string>;
4783
+ getEthereumAddress: () => string;
4765
4784
  /**
4766
- * Returns your DAI balance
4785
+ * Get the balance of an ERC20 token
4786
+ * Defaults to ETH if symbolOrAddress is not provided
4767
4787
  */
4768
- checkMyDai: () => Promise<string>;
4788
+ getBalance: (symbolOrAddress?: string) => Promise<string>;
4769
4789
  /**
4770
- * Returns your USDC balance
4790
+ * Get the balance of an ERC20 token for a given address
4791
+ * Defaults to ETH if symbolOrAddress is not provided
4771
4792
  */
4772
- checkMyUsdc: () => Promise<string>;
4793
+ getBalanceForAddress: (walletAddress: string, symbolOrAddress?: string) => Promise<string>;
4794
+ /**
4795
+ * Transfer tokens to a given address
4796
+ */
4797
+ transferTokens: (tokenSymbolOrAddress: string, amount: number, toAddress: string) => Promise<string>;
4798
+ /**
4799
+ * Get your current Ethereum network
4800
+ */
4801
+ getCurrentNetwork: () => ethers.providers.Networkish;
4802
+ /**
4803
+ * Change your Ethereum network
4804
+ */
4805
+ changeNetwork: (network: ethers.providers.Networkish) => void;
4806
+ /**
4807
+ * Add an infura project id to an existing wallet.
4808
+ * Really only useful for testing with the CLI right now...
4809
+ */
4810
+ addInfuraProjectId: (infuraProjectIdToAdd: string) => void;
4773
4811
  };
4812
+ export declare type LearnCard<Methods extends keyof AllLearnCardMethods = keyof AllLearnCardMethods, RawWallet extends Wallet<any, any> = LearnCardRawWallet> = {
4813
+ /** Raw IoE wallet instance. You shouldn't need to drop down to this level! */
4814
+ _wallet: RawWallet;
4815
+ } & Pick<AllLearnCardMethods, Methods>;
4816
+ export declare type EmptyLearnCard = LearnCard<"verifyCredential" | "verifyPresentation", Wallet<"DIDKit" | "Expiration", DidkitPluginMethods & VerifyExtension>>;
4774
4817
  export declare type CeramicIDXArgs = {
4775
4818
  modelData: ModelAliases;
4776
4819
  credentialAlias: string;
@@ -4783,9 +4826,17 @@ export declare type LearnCardConfig = {
4783
4826
  defaultContents: any[];
4784
4827
  ethereumConfig: EthereumConfig;
4785
4828
  };
4829
+ export declare type EmptyWallet = InitFunction<undefined, "didkit", EmptyLearnCard>;
4830
+ export declare type WalletFromKey = InitFunction<{
4831
+ seed: string;
4832
+ }, keyof LearnCardConfig, LearnCard>;
4833
+ /** Generates an empty wallet with no key material */
4834
+ export declare const emptyWallet: ({ didkit }?: EmptyWallet["args"]) => Promise<EmptyWallet["returnValue"]>;
4786
4835
  /** Generates a LearnCard Wallet from a 64 character seed string */
4787
- export declare const walletFromKey: (key: string, { ceramicIdx, didkit, defaultContents, ethereumConfig, }?: Partial<LearnCardConfig>) => Promise<LearnCardWallet>;
4788
- export { walletFromKey } from "@wallet/init";
4836
+ export declare const walletFromKey: (key: string, { ceramicIdx, didkit, defaultContents, ethereumConfig, }?: Partial<LearnCardConfig>) => Promise<LearnCard>;
4837
+ export declare function initLearnCard(config?: EmptyWallet["args"]): Promise<EmptyWallet["returnValue"]>;
4838
+ export declare function initLearnCard(config: WalletFromKey["args"]): Promise<WalletFromKey["returnValue"]>;
4839
+ export * from "@wallet/init";
4789
4840
  export { Wallet, Plugin } from "types/wallet";
4790
4841
 
4791
4842
  export {};