diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js index 1ff862f..7f60c3b 100644 --- a/docs/assets/hierarchy.js +++ b/docs/assets/hierarchy.js @@ -1 +1 @@ -window.hierarchyData = "eJyVj70KwjAUhd/lzKliKI1k9wkEF+kQkkiDtwncG6eSd5fQRXDqdOD88HE2cClVYJ9mNLMCxxdFX1PJArvB6KlLdmuExT3Qw1EKruc35sJQeKccYC/6qvBhgoUnJxLl/N8+LXUlqL0Biyph6PNhN5qCGc0P7wDsGEnBL4kCx9yP62lurX0BRG9ZbQ==" \ No newline at end of file +window.hierarchyData = "eJyVj70KwjAUhd/lzKmipY1k9wmELtIhJJEGbxO4N04l7y6hi+DU6cD54eNs4JyLwDz1oGcFDi8KrsScBGaD7scmya4BBg9Pk6XobcvvzJmh8I7Jw1yuN4UPEwwcWZEg5//2aSkrQe0NGBTxXZt3u1EV9KB/eAdgx0gKbonkOaR2vB/nWusXRthZcQ==" \ No newline at end of file diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js index a3d9f3f..8353dc0 100644 --- a/docs/assets/navigation.js +++ b/docs/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "eJyVlmFv2jAQhv+LP6NtZW3X8a2CrKtGgSW001RVlWtfg4UTZ/bRDlX77xMNECc2TviGkveeO7++u3D/RhD+IhkQBhrFs2AUgfRIQXFBBiRTfCXBfLReflhgJkmPLEXOyeC0R9hCSK4hJ4P7PayAzFQUkSPoZ8oaoI2oTuufnf/r7SHDSjuDbASFhs1vXoFxXTSYh2IaeT59/XJy1u8RJqkxZEB4BbcKeNKKckYNDn3ePK9yhkLl9QJ8MfXk56dWCqaBIhzBdwIC8D8r0GtLatrgTkAAruFFLY+p3Alw4A8WfgmF1G4jvj/u1IIpoK+iEpACBo6WAg4XVORev/aAUhLGJCLNQQcxpSToRQ74qvTSdWP7opMf15NSfANIOUXqHc8dsCkOjWk0Gc2m15P54/z3LGrO5g5YE3mH0SJOovmvafwjCLQ1bbwUMMp5oUSO34FKXCRIceW93R3+QEj4tncRXcldcYnStbUXhpbqMNptAi/Tf/2N7iy0QsWkgBzdDrVedurScr1dZiJXN2AMTb1rxaa6Ea3rNkGqryjCURkaQUFLdMFcK3TBui6uG5MOG4ZWpW04tiZ80z/fV3obzFKFcbF9MgcTN4/Y8MVw6fpiuOzkSzIaV8HvH+5tcDIa1wEn/Qsr6dXs9jG5nc2m8TwaPV5P5lH87XIYJRXshWpBn3a1HNLXc3zuH0xxF01G07gjfyt24DXbkOrU+79s96aTgU67Q77KLIa3sy/q93+5pGYxXxcQQyoM6rWvG/ZEX0C4vzbKWy3bqFtZsNleqZTgWUnl82O2EWNq5R+fLaumCx+wHVaJwqQxNThWlPu/DBWs0gV4IiuU7lBcTRe0P+HyjkrB6SY+0lppd3pdTWiQW3GtrIf/u0p4ow==" \ No newline at end of file +window.navigationData = "eJyVlltvm0AQhf/LPltt4yZp6jcLSGrVwRRw0iqKrA1M8MrLpbvjpFbV/145YHPZ9ULeLPacb4azo8EPfwnCHyQTEoFA9swiikBGpKC4JhOS5vGWg/zYOPywxpSTEdmwLCaT8xGJ1ozHAjIyeTjCCkhlTWEZgnimUQe0F7Vp44vLf6MjxKq1HqQ2FAL2v+MajLuiwzzl6dT59PXL2cV4RCJOpSQTEtfwRgNPIqdxRCVaumyet1mELM/aDeg87eKX540SkQCK8A6+YjDAf29B7BpS2QdXDAa4gJd8857OFYMCf2zgN1BwoQ7i2+NBI5gA6joqAQmg4dUSQGtNWabN6wgoJWZMwJIMhBFTSoxZZICvudioaVQHg/JwXNtbzNxwFf7ynBoF2TatQS1RG3vVaMh1wvuF/92IampOk2ZuKb8FpDFFql0aB2RXbFoeCaCTxUXOMvwGlOM6QIpb7Y0e8Ccs5hs+OIaSh+KCXLRWnRlaqs1oNWItUx9uZyILkWMecQYZqlPZOBw0meVKm6Ysy29BSppoV0mTqjp6V2yAVNxQhHdV6JiMkYgiUqMQRTR0Wd3KxOoEWre25zQ15pv+8bbG+2ANlRnnN99MwfjdV+zkImOu5iJjPiiXwJ7X5rePdWUO7HkbcDZurpUbb7kKlp638EPHXs3c0PGvp5YT1LAXKhh9OvRySt+u8Xl8ssSd49oLfyC/EivwVmxIRaL9L3Y4GRSgMu7lkj4ytJN91b7/6YbKdbgrwIeESRQ73TQciTqDeb72yqXgfdRKZhy2V8o5aFZS+XxQYrZzPV3Ow9XUshZLN1x50yC4X/i27mor7CmLYXqOFtv2nSBYeb5zPfs5pEbLYKhQ7cgoyrf6NVCBWzrzRfXDapGZNKcS5zmN9V+4GlbrDDyWFrkY0FxLZxyjIOZ3lLOY7v2OELlQt5CqMS2kXlwv6/E/Um+00w==" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index fc99355..79d1475 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "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"; \ No newline at end of file +window.searchData = "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"; \ No newline at end of file diff --git a/docs/classes/SdlValidationError.html b/docs/classes/SdlValidationError.html index 6897fe1..12f2bfd 100644 --- a/docs/classes/SdlValidationError.html +++ b/docs/classes/SdlValidationError.html @@ -1,6 +1,6 @@ SdlValidationError | @akashnetwork/akashjs

Represents an SDL validation error. Extends the base ValidationError class.

-

Hierarchy (View Summary)

Constructors

Hierarchy (View Summary)

Constructors

Properties

Constructors

Properties

message: string
name: string
stack?: string
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Optional override for formatting stack traces

+

Returns SdlValidationError

Properties

message: string
name: string
stack?: string
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Optional override for formatting stack traces

stackTraceLimit: number

Methods

  • Asserts a condition and throws an SdlValidationError if the condition is false.

    Parameters

    • condition: unknown

      The condition to assert.

      @@ -18,5 +18,5 @@

    Returns asserts condition

    SdlValidationError.assert(someCondition, "Condition failed");
     
    -
  • Create .stack property on a target object

    +
diff --git a/docs/classes/ValidationError.html b/docs/classes/ValidationError.html index 0073369..0c1f15b 100644 --- a/docs/classes/ValidationError.html +++ b/docs/classes/ValidationError.html @@ -1,6 +1,6 @@ ValidationError | @akashnetwork/akashjs

Represents a generic validation error. Extends the native Error class.

-

Hierarchy (View Summary)

Constructors

Hierarchy (View Summary)

Constructors

Properties

Constructors

Properties

message: string
name: string
stack?: string
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Optional override for formatting stack traces

+

Returns ValidationError

Properties

message: string
name: string
stack?: string
prepareStackTrace?: (err: Error, stackTraces: CallSite[]) => any

Optional override for formatting stack traces

stackTraceLimit: number

Methods

  • Asserts a condition and throws a ValidationError if the condition is false.

    Parameters

    • condition: unknown

      The condition to assert.

      @@ -18,5 +18,5 @@

    Returns asserts condition

    ValidationError.assert(someCondition, "Condition failed");
     
    -
  • Create .stack property on a target object

    +
diff --git a/docs/classes/sdl.SDL.html b/docs/classes/sdl.SDL.html index c20359f..1172418 100644 --- a/docs/classes/sdl.SDL.html +++ b/docs/classes/sdl.SDL.html @@ -3,7 +3,7 @@
import { SDL } from './SDL';

const yaml = `
version: "2.0"
services:
web:
image: nginx
expose:
- port: 80
as: 80
to:
- global: true
`;

// Parse SDL from YAML string
const sdl = SDL.fromString(yaml);

// Get deployment manifest
const manifest = sdl.manifest();

// Get deployment groups
const groups = sdl.groups();
-

Constructors

Constructors

  • Parameters

    • data: v2Sdl
    • version: NetworkVersion = "beta2"
    • networkId: NetworkId = MAINNET_ID

    Returns SDL

Properties

data: v2Sdl
version: NetworkVersion = "beta2"

Methods

  • Computes the endpoint sequence numbers for the given SDL.

    +

Constructors

  • Parameters

    • data: v2Sdl
    • version: NetworkVersion = "beta2"
    • networkId: NetworkId = MAINNET_ID

    Returns SDL

Properties

data: v2Sdl
version: NetworkVersion = "beta2"

Methods

  • Computes the endpoint sequence numbers for the given SDL.

    Parameters

    • sdl: v2Sdl

      The SDL data.

    Returns { [k: string]: number }

    An object mapping IPs to their sequence numbers.

    const sequenceNumbers = sdl.computeEndpointSequenceNumbers(sdlData);
    // sequenceNumbers might be { "192.168.1.1": 1, "192.168.1.2": 2 }
    -
  • Returns Record<string, v2Deployment>

  • Parameters

    • placement: string

    Returns [string, any][]

  • Returns Record<string, v2Deployment>

  • Parameters

    • placement: string

    Returns [string, any][]

  • Escapes HTML characters in a string.

    Parameters

    • raw: string

      The raw string to escape.

    Returns string

    The escaped string.

    const escaped = sdl.escapeHtml("<div>Hello</div>");
    // escaped is "\\u003cdiv\\u003eHello\\u003c/div\\u003e"
    -
  • Parameters

    • expose: { externalPort: number; global: boolean; port: number; proto: string }

    Returns boolean

  • Parameters

    • resource: undefined | v2ComputeResources
    • asString: boolean

    Returns any

  • Parameters

    • asString: boolean = false

    Returns v2Manifest | v3Manifest

  • Parameters

    • to: v2ExposeTo

    Returns boolean

  • Parameters

    • expose: v2Expose

    Returns v2Accept

  • Parameters

    • to: v2ExposeTo

    Returns string

  • Returns Promise<Uint8Array<ArrayBuffer>>

  • Parameters

    • expose: { externalPort: number; global: boolean; port: number; proto: string }

    Returns boolean

  • Parameters

    • resource: undefined | v2ComputeResources
    • asString: boolean

    Returns any

  • Parameters

    • asString: boolean = false

    Returns v2Manifest | v3Manifest

  • Parameters

    • to: v2ExposeTo

    Returns boolean

  • Parameters

    • expose: v2Expose

    Returns v2Accept

  • Parameters

    • to: v2ExposeTo

    Returns string

  • Returns Promise<Uint8Array<ArrayBuffer>>

  • Parses the service protocol.

    Parameters

    • Optionalproto: string

      The protocol string (e.g., "TCP", "UDP").

    Returns string

    The parsed protocol.

    Will throw an error if the protocol is unsupported.

    const protocol = SDL.parseServiceProto("TCP");
    // protocol is "TCP"
    -
  • Returns Record<string, v2ProfilePlacement>

  • Parameters

    • val: string
    • asString: boolean

    Returns { val: string } | { val: number }

  • Parameters

    • computeResources: v2ComputeResources
    • asString: boolean

    Returns {
        attributes: undefined | { key: string; value: any }[];
        units: { val: null | string | Uint8Array<ArrayBufferLike> };
    }

  • Parameters

    • computeResources: v3ComputeResources
    • asString: boolean

    Returns {
        attributes: undefined | { key: string; value: string }[];
        units: { val: null | string | Uint8Array<ArrayBufferLike> };
    }

  • Parameters

    • computeResources: v2ComputeResources
    • asString: boolean

    Returns {
        attributes: undefined | { key: string; value: any }[];
        quantity: { val: null | string | Uint8Array<ArrayBufferLike> };
    }

  • Parameters

    • computeResources: v2ComputeResources
    • asString: boolean

    Returns {
        attributes: undefined | { key: string; value: any }[];
        name: string;
        quantity: { val: null | string | Uint8Array<ArrayBufferLike> };
    }[]

  • Parameters

    • value: null | { toString: () => string }
    • asString: boolean

    Returns null | string | Uint8Array<ArrayBufferLike>

  • Parameters

    • Optionalattributes: Record<string, any>

    Returns undefined | { key: string; value: any }[]

  • Parameters

    • resource: v2ResourceCPU

    Returns
        | {
            attributes: undefined
            | { key: string; value: any }[];
            units: { val: string };
        }
        | { attributes?: undefined; units: { val: string } }

  • Parameters

    • resource: undefined | v3ResourceGPU
    • asString: boolean

    Returns
        | {
            attributes: { key: string; value: string }[];
            units: { val: string } | { val: number | Buffer };
        }
        | {
            attributes?: undefined;
            units: { val: string }
            | { val: number | Buffer };
        }

  • Parameters

    • resource: v2ResourceMemory
    • asString: boolean

    Returns
        | {
            attributes: undefined
            | { key: string; value: any }[];
            [key: string]:
                | undefined
                | { val: string }
                | { val: number }
                | { key: string; value: any }[];
        }
        | {
            attributes?: undefined;
            [key: string]: { val: string }
            | { val: number };
        }

  • Parameters

    • profile: v2ProfileCompute
    • service: v2Service
    • asString: boolean = false

    Returns {
        cpu:
            | {
                attributes: undefined
                | { key: string; value: any }[];
                units: { val: string };
            }
            | { attributes?: undefined; units: { val: string } };
        endpoints: null | { kind: number; sequence_number: number }[];
        memory:
            | {
                attributes: undefined
                | { key: string; value: any }[];
                [key: string]:
                    | undefined
                    | { val: string }
                    | { val: number }
                    | { key: string; value: any }[];
            }
            | {
                attributes?: undefined;
                [key: string]: { val: string }
                | { val: number };
            };
        storage: (
            | {
                attributes: undefined
                | { key: string; value: any }[];
                name: string;
                [key: string]:
                    | undefined
                    | string
                    | { val: string }
                    | { val: number }
                    | { key: string; value: any }[];
            }
            | {
                attributes?: undefined;
                name: string;
                [key: string]: string
                | { val: string }
                | { val: number };
            }
        )[];
    }

  • Parameters

    • id: number
    • profile: v3ProfileCompute
    • service: v2Service
    • asString: boolean = false

    Returns {
        cpu:
            | {
                attributes: undefined
                | { key: string; value: any }[];
                units: { val: string };
            }
            | { attributes?: undefined; units: { val: string } };
        endpoints: (
            | { kind: number; sequence_number: number }
            | { kind?: undefined; sequence_number: number }
        )[];
        gpu:
            | {
                attributes: { key: string; value: string }[];
                units: { val: string } | { val: number | Buffer };
            }
            | {
                attributes?: undefined;
                units: { val: string }
                | { val: number | Buffer };
            };
        id: number;
        memory: | {
            attributes: undefined
            | { key: string; value: any }[];
            [key: string]:
                | undefined
                | { val: string }
                | { val: number }
                | { key: string; value: any }[];
        }
        | {
            attributes?: undefined;
            [key: string]: { val: string }
            | { val: number };
        };
        storage: (
            | {
                attributes: undefined
                | { key: string; value: any }[];
                name: string;
                [key: string]:
                    | undefined
                    | string
                    | { val: string }
                    | { val: number }
                    | { key: string; value: any }[];
            }
            | {
                attributes?: undefined;
                name: string;
                [key: string]: string
                | { val: string }
                | { val: number };
            }
        )[];
    }

  • Parameters

    • resource: v2ResourceStorage | v2ResourceStorageArray
    • asString: boolean

    Returns (
        | {
            attributes: undefined
            | { key: string; value: any }[];
            name: string;
            [key: string]:
                | undefined
                | string
                | { val: string }
                | { val: number }
                | { key: string; value: any }[];
        }
        | {
            attributes?: undefined;
            name: string;
            [key: string]: string
            | { val: string }
            | { val: number };
        }
    )[]

  • Parameters

    • Optionalattributes: v2StorageAttributes

    Returns undefined | { key: string; value: any }[]

  • Parameters

    • attributes: v3GPUAttributes

    Returns { key: string; value: string }[]

  • Parameters

    • http_options: undefined | v2HTTPOptions

    Returns {
        MaxBodySize: number;
        NextCases: string[];
        NextTimeout: number;
        NextTries: number;
        ReadTimeout: number;
        SendTimeout: number;
    }

  • Parameters

    • asString: boolean = false

    Returns v2Manifest

  • Parameters

    • service: v2Service

    Returns v2ServiceExpose[]

  • Parameters

    • expose: v2Expose

    Returns v2ServiceExposeHttpOptions

  • Parameters

    • placement: string
    • name: string
    • asString: boolean

    Returns v2ManifestService

  • Parameters

    • params: v2ServiceParams

    Returns undefined | v2ManifestServiceParams

  • Parameters

    • service: v2Service

    Returns null | { kind: number; sequence_number: number }[]

  • Parameters

    • http_options: undefined | v2HTTPOptions

    Returns {
        maxBodySize: number;
        nextCases: string[];
        nextTimeout: number;
        nextTries: number;
        readTimeout: number;
        sendTimeout: number;
    }

  • Parameters

    • asString: boolean = false

    Returns v3Manifest

  • Parameters

    • service: v2Service

    Returns v3ServiceExpose[]

  • Parameters

    • expose: v2Expose

    Returns v3ServiceExposeHttpOptions

  • Parameters

    • id: number
    • placement: string
    • name: string
    • asString: boolean

    Returns v3ManifestService

  • Parameters

    • params: undefined | v2ServiceParams

    Returns null | v3ManifestServiceParams

  • Parameters

    • service: v2Service

    Returns (
        | { kind: number; sequence_number: number }
        | { kind?: undefined; sequence_number: number }
    )[]

  • Creates an SDL instance from a YAML string.

    +
  • Returns Record<string, v2ProfilePlacement>

  • Parameters

    • val: string
    • asString: boolean

    Returns { val: string } | { val: number }

  • Parameters

    • computeResources: v2ComputeResources
    • asString: boolean

    Returns {
        attributes: undefined | { key: string; value: any }[];
        units: { val: null | string | Uint8Array<ArrayBufferLike> };
    }

  • Parameters

    • computeResources: v3ComputeResources
    • asString: boolean

    Returns {
        attributes: undefined | { key: string; value: string }[];
        units: { val: null | string | Uint8Array<ArrayBufferLike> };
    }

  • Parameters

    • computeResources: v2ComputeResources
    • asString: boolean

    Returns {
        attributes: undefined | { key: string; value: any }[];
        quantity: { val: null | string | Uint8Array<ArrayBufferLike> };
    }

  • Parameters

    • computeResources: v2ComputeResources
    • asString: boolean

    Returns {
        attributes: undefined | { key: string; value: any }[];
        name: string;
        quantity: { val: null | string | Uint8Array<ArrayBufferLike> };
    }[]

  • Parameters

    • value: null | { toString: () => string }
    • asString: boolean

    Returns null | string | Uint8Array<ArrayBufferLike>

  • Parameters

    • Optionalattributes: Record<string, any>

    Returns undefined | { key: string; value: any }[]

  • Parameters

    • resource: v2ResourceCPU

    Returns
        | {
            attributes: undefined
            | { key: string; value: any }[];
            units: { val: string };
        }
        | { attributes?: undefined; units: { val: string } }

  • Parameters

    • resource: undefined | v3ResourceGPU
    • asString: boolean

    Returns
        | {
            attributes: { key: string; value: string }[];
            units: { val: string } | { val: number | Buffer };
        }
        | {
            attributes?: undefined;
            units: { val: string }
            | { val: number | Buffer };
        }

  • Parameters

    • resource: v2ResourceMemory
    • asString: boolean

    Returns
        | {
            attributes: undefined
            | { key: string; value: any }[];
            [key: string]:
                | undefined
                | { val: string }
                | { val: number }
                | { key: string; value: any }[];
        }
        | {
            attributes?: undefined;
            [key: string]: { val: string }
            | { val: number };
        }

  • Parameters

    • profile: v2ProfileCompute
    • service: v2Service
    • asString: boolean = false

    Returns {
        cpu:
            | {
                attributes: undefined
                | { key: string; value: any }[];
                units: { val: string };
            }
            | { attributes?: undefined; units: { val: string } };
        endpoints: null | { kind: number; sequence_number: number }[];
        memory:
            | {
                attributes: undefined
                | { key: string; value: any }[];
                [key: string]:
                    | undefined
                    | { val: string }
                    | { val: number }
                    | { key: string; value: any }[];
            }
            | {
                attributes?: undefined;
                [key: string]: { val: string }
                | { val: number };
            };
        storage: (
            | {
                attributes: undefined
                | { key: string; value: any }[];
                name: string;
                [key: string]:
                    | undefined
                    | string
                    | { val: string }
                    | { val: number }
                    | { key: string; value: any }[];
            }
            | {
                attributes?: undefined;
                name: string;
                [key: string]: string
                | { val: string }
                | { val: number };
            }
        )[];
    }

  • Parameters

    • id: number
    • profile: v3ProfileCompute
    • service: v2Service
    • asString: boolean = false

    Returns {
        cpu:
            | {
                attributes: undefined
                | { key: string; value: any }[];
                units: { val: string };
            }
            | { attributes?: undefined; units: { val: string } };
        endpoints: (
            | { kind: number; sequence_number: number }
            | { kind?: undefined; sequence_number: number }
        )[];
        gpu:
            | {
                attributes: { key: string; value: string }[];
                units: { val: string } | { val: number | Buffer };
            }
            | {
                attributes?: undefined;
                units: { val: string }
                | { val: number | Buffer };
            };
        id: number;
        memory: | {
            attributes: undefined
            | { key: string; value: any }[];
            [key: string]:
                | undefined
                | { val: string }
                | { val: number }
                | { key: string; value: any }[];
        }
        | {
            attributes?: undefined;
            [key: string]: { val: string }
            | { val: number };
        };
        storage: (
            | {
                attributes: undefined
                | { key: string; value: any }[];
                name: string;
                [key: string]:
                    | undefined
                    | string
                    | { val: string }
                    | { val: number }
                    | { key: string; value: any }[];
            }
            | {
                attributes?: undefined;
                name: string;
                [key: string]: string
                | { val: string }
                | { val: number };
            }
        )[];
    }

  • Parameters

    • resource: v2ResourceStorage | v2ResourceStorageArray
    • asString: boolean

    Returns (
        | {
            attributes: undefined
            | { key: string; value: any }[];
            name: string;
            [key: string]:
                | undefined
                | string
                | { val: string }
                | { val: number }
                | { key: string; value: any }[];
        }
        | {
            attributes?: undefined;
            name: string;
            [key: string]: string
            | { val: string }
            | { val: number };
        }
    )[]

  • Parameters

    • Optionalattributes: v2StorageAttributes

    Returns undefined | { key: string; value: any }[]

  • Parameters

    • attributes: v3GPUAttributes

    Returns { key: string; value: string }[]

  • Parameters

    • http_options: undefined | v2HTTPOptions

    Returns {
        MaxBodySize: number;
        NextCases: string[];
        NextTimeout: number;
        NextTries: number;
        ReadTimeout: number;
        SendTimeout: number;
    }

  • Parameters

    • asString: boolean = false

    Returns v2Manifest

  • Parameters

    • service: v2Service

    Returns v2ServiceExpose[]

  • Parameters

    • expose: v2Expose

    Returns v2ServiceExposeHttpOptions

  • Parameters

    • placement: string
    • name: string
    • asString: boolean

    Returns v2ManifestService

  • Parameters

    • params: v2ServiceParams

    Returns undefined | v2ManifestServiceParams

  • Parameters

    • service: v2Service

    Returns null | { kind: number; sequence_number: number }[]

  • Parameters

    • http_options: undefined | v2HTTPOptions

    Returns {
        maxBodySize: number;
        nextCases: string[];
        nextTimeout: number;
        nextTries: number;
        readTimeout: number;
        sendTimeout: number;
    }

  • Parameters

    • asString: boolean = false

    Returns v3Manifest

  • Parameters

    • service: v2Service

    Returns v3ServiceExpose[]

  • Parameters

    • expose: v2Expose

    Returns v3ServiceExposeHttpOptions

  • Parameters

    • id: number
    • placement: string
    • name: string
    • asString: boolean

    Returns v3ManifestService

  • Parameters

    • params: undefined | v2ServiceParams

    Returns null | v3ManifestServiceParams

  • Parameters

    • service: v2Service

    Returns (
        | { kind: number; sequence_number: number }
        | { kind?: undefined; sequence_number: number }
    )[]

  • Creates an SDL instance from a YAML string.

    Parameters

    • yaml: string

      The YAML string containing the SDL definition.

    • Optionalversion: NetworkVersion = "beta2"

      The SDL version (beta2 or beta3).

    • OptionalnetworkId: NetworkId = MAINNET_ID

      The network ID to validate against.

      @@ -88,20 +88,20 @@
      const yaml = `
      version: "2.0"
      services:
      web:
      image: nginx
      expose:
      - port: 80
      as: 80
      to:
      - global: true
      `;
      const sdl = SDL.fromString(yaml);
      -
  • Validates SDL YAML string (deprecated)

    Parameters

    • yaml: string

    Returns v3Sdl

    Use SDL.constructor directly

    -
  • Validates the GPU configuration for a given service profile.

    +
  • Validates the GPU configuration for a given service profile.

    Parameters

    • name: string

      The name of the service profile.

    • gpu: undefined | v3ResourceGPU

      The GPU resource configuration.

    Returns void

    Will throw an error if the GPU configuration is invalid.

    const gpuConfig = { units: "1", attributes: { vendor: { nvidia: [{ model: "RTX 3080", ram: "10GB" }] } } };
    SDL.validateGPU("web", gpuConfig);
    -
  • Validates the storage configuration for a given service.

    +
  • Validates the storage configuration for a given service.

    Parameters

    • name: string

      The name of the service.

    • Optionalstorage: v2ResourceStorage | v2ResourceStorageArray

      The storage resource configuration.

    Returns void

    Will throw an error if the storage configuration is invalid.

    const storageConfig = { size: "10Gi", attributes: { class: "ssd" } };
    SDL.validateStorage("web", storageConfig);
    -
+
diff --git a/docs/enums/network.ENDPOINT_TYPE.html b/docs/enums/network.ENDPOINT_TYPE.html new file mode 100644 index 0000000..4550e2e --- /dev/null +++ b/docs/enums/network.ENDPOINT_TYPE.html @@ -0,0 +1,4 @@ +ENDPOINT_TYPE | @akashnetwork/akashjs

Network endpoint type

+

Enumeration Members

Enumeration Members

REST: "rest"
RPC: "rpc"
diff --git a/docs/enums/network.NETWORK_TYPE.html b/docs/enums/network.NETWORK_TYPE.html new file mode 100644 index 0000000..41e1890 --- /dev/null +++ b/docs/enums/network.NETWORK_TYPE.html @@ -0,0 +1,5 @@ +NETWORK_TYPE | @akashnetwork/akashjs

Network type identifier

+

Enumeration Members

Enumeration Members

EDGENET: "edgenet"
MAINNET: "mainnet"
TESTNET: "testnet"
diff --git a/docs/enums/stargate.Message.html b/docs/enums/stargate.Message.html index 02d62ce..7da1723 100644 --- a/docs/enums/stargate.Message.html +++ b/docs/enums/stargate.Message.html @@ -1,5 +1,5 @@ Message | @akashnetwork/akashjs

Enum for Akash message types.

-

Enumeration Members

Enumeration Members

MsgCloseDeployment: "/akash.deployment.v1beta3.MsgCloseDeployment"

Message type for closing a deployment.

-
MsgCloseGroup: "/akash.deployment.v1beta3.MsgCloseGroup"

Message type for closing a group.

-
MsgCreateCertificate: "/akash.cert.v1beta3.MsgCreateCertificate"

Message type for creating a certificate.

-
MsgCreateDeployment: "/akash.deployment.v1beta3.MsgCreateDeployment"

Message type for creating a deployment.

-
MsgCreateLease: "/akash.market.v1beta4.MsgCreateLease"

Message type for creating a lease.

-
MsgDepositDeployment: "/akash.deployment.v1beta3.MsgDepositDeployment"

Message type for depositing into a deployment.

-
MsgPauseGroup: "/akash.deployment.v1beta3.MsgPauseGroup"

Message type for pausing a group.

-
MsgRevokeCertificate: "/akash.cert.v1beta3.MsgRevokeCertificate"

Message type for revoking a certificate.

-
MsgStartGroup: "/akash.deployment.v1beta3.MsgStartGroup"

Message type for starting a group.

-
MsgUpdateDeployment: "/akash.deployment.v1beta3.MsgUpdateDeployment"

Message type for updating a deployment.

-
+
MsgCloseGroup: "/akash.deployment.v1beta3.MsgCloseGroup"

Message type for closing a group.

+
MsgCreateCertificate: "/akash.cert.v1beta3.MsgCreateCertificate"

Message type for creating a certificate.

+
MsgCreateDeployment: "/akash.deployment.v1beta3.MsgCreateDeployment"

Message type for creating a deployment.

+
MsgCreateLease: "/akash.market.v1beta4.MsgCreateLease"

Message type for creating a lease.

+
MsgDepositDeployment: "/akash.deployment.v1beta3.MsgDepositDeployment"

Message type for depositing into a deployment.

+
MsgPauseGroup: "/akash.deployment.v1beta3.MsgPauseGroup"

Message type for pausing a group.

+
MsgRevokeCertificate: "/akash.cert.v1beta3.MsgRevokeCertificate"

Message type for revoking a certificate.

+
MsgStartGroup: "/akash.deployment.v1beta3.MsgStartGroup"

Message type for starting a group.

+
MsgUpdateDeployment: "/akash.deployment.v1beta3.MsgUpdateDeployment"

Message type for updating a deployment.

+
diff --git a/docs/functions/certificate.broadcastCertificate.html b/docs/functions/certificate.broadcastCertificate.html index fe4209b..f666057 100644 --- a/docs/functions/certificate.broadcastCertificate.html +++ b/docs/functions/certificate.broadcastCertificate.html @@ -3,4 +3,4 @@
  • owner: string

    The owner of the certificate.

  • client: SigningStargateClient

    The Stargate client used for signing and broadcasting.

  • Returns Promise<DeliverTxResponse>

    A promise that resolves to the transaction response.

    -
    +
    diff --git a/docs/functions/certificate.createCertificate.html b/docs/functions/certificate.createCertificate.html index 552de91..de14b2a 100644 --- a/docs/functions/certificate.createCertificate.html +++ b/docs/functions/certificate.createCertificate.html @@ -1,4 +1,4 @@ createCertificate | @akashnetwork/akashjs
    +
    diff --git a/docs/functions/certificate.queryCertificates.html b/docs/functions/certificate.queryCertificates.html index e16b14f..56960e7 100644 --- a/docs/functions/certificate.queryCertificates.html +++ b/docs/functions/certificate.queryCertificates.html @@ -1,4 +1,4 @@ queryCertificates | @akashnetwork/akashjs
    • Queries certificates based on a filter.

      Parameters

      • filter: CertificateFilter

        The filter criteria for querying certificates.

      Returns Promise<QueryCertificatesResponse>

      A promise that resolves to the query response.

      -
    +
    diff --git a/docs/functions/certificate.revokeCertificate.html b/docs/functions/certificate.revokeCertificate.html index 01e18d2..6ea8bbc 100644 --- a/docs/functions/certificate.revokeCertificate.html +++ b/docs/functions/certificate.revokeCertificate.html @@ -3,4 +3,4 @@
  • serial: string

    The serial number of the certificate to revoke.

  • client: SigningStargateClient

    The Stargate client used for signing and broadcasting.

  • Returns Promise<DeliverTxResponse>

    A promise that resolves to the transaction response.

    -
    +
    diff --git a/docs/functions/keplr.get.html b/docs/functions/keplr.get.html index e74a67a..1db22f1 100644 --- a/docs/functions/keplr.get.html +++ b/docs/functions/keplr.get.html @@ -3,4 +3,4 @@
  • signer: OfflineSigner

    The signer to use for the connection.

  • endPoint: string

    The endpoint URL to connect to.

  • Returns Promise<SigningStargateClient>

    A promise that resolves to the connected client.

    -
    +
    diff --git a/docs/functions/keplr.getChains.html b/docs/functions/keplr.getChains.html index 11b1949..5c07270 100644 --- a/docs/functions/keplr.getChains.html +++ b/docs/functions/keplr.getChains.html @@ -1,3 +1,3 @@ getChains | @akashnetwork/akashjs
    • Returns the available blockchain chains.

      Returns {
          mainnet: { id: string; messagePath: string; name: string };
          testnet: { id: string; messagePath: string; name: string };
      }

      An object containing mainnet and testnet chain configurations.

      -
    +
    diff --git a/docs/functions/keplr.getSigner.html b/docs/functions/keplr.getSigner.html index 0839aad..7f9c8f3 100644 --- a/docs/functions/keplr.getSigner.html +++ b/docs/functions/keplr.getSigner.html @@ -1,4 +1,4 @@ getSigner | @akashnetwork/akashjs
    • Retrieves the signer for a given blockchain chain.

      Parameters

      • chain: Chain

        The blockchain chain for which to get the signer.

      Returns Promise<OfflineSigner>

      A promise that resolves to the signer.

      -
    +
    diff --git a/docs/functions/network.getEndpointHealthStatus.html b/docs/functions/network.getEndpointHealthStatus.html index a95997a..dab993a 100644 --- a/docs/functions/network.getEndpointHealthStatus.html +++ b/docs/functions/network.getEndpointHealthStatus.html @@ -1,7 +1,7 @@ -getEndpointHealthStatus | @akashnetwork/akashjs
    • Returns a function that checks the health status of an endpoint

      -

      Parameters

      • timeout: number

        The timeout for the health check request

        -

      Returns (
          __namedParameters: { address: string },
      ) => Promise<
          | { address: string; responseTime: number }
          | { address: string; responseTime: null },
      >

      A function that returns a promise resolving to the endpoint's health status

      -
      async function checkEndpointHealth() {
      try {
      const endpoints = await getEndpoints("mainnet", "rpc");
      const healthStatusPromises = endpoints.map(endpoint => getEndpointHealthStatus(800)(endpoint));
      const healthStatuses = await Promise.all(healthStatusPromises);

      console.log("Endpoint Health Statuses:");
      healthStatuses.forEach(status => {
      console.log(`Address: ${status.address}, Response Time: ${status.responseTime !== null ? status.responseTime + 'ms' : 'Unresponsive'}`);
      });
      } catch (error) {
      console.error("Error checking endpoint health:", error);
      }
      }
      checkEndpointHealth(); +getEndpointHealthStatus | @akashnetwork/akashjs
      • Creates a function to check the health status of an endpoint.

        +

        Parameters

        • timeout: number

          The timeout duration for the health check request in milliseconds.

          +

        Returns (
            __namedParameters: { address: string },
        ) => Promise<
            | { address: string; responseTime: number }
            | { address: string; responseTime: null },
        >

        A function that takes an endpoint object and returns a promise resolving to the endpoint's health status, including its address and response time.

        +
        import { getEndpointHealthStatus, getEndpoints, NETWORK_TYPE, ENDPOINT_TYPE } from "@akashnetwork/akashjs/build/network";

        const checkEndpointHealth = async () => {
        try {
        const endpoints = await getEndpoints(NETWORK_TYPE.MAINNET, ENDPOINT_TYPE.RPC);
        const healthStatusPromises = endpoints.map(endpoint => getEndpointHealthStatus(800)(endpoint));
        const healthStatuses = await Promise.all(healthStatusPromises);

        console.log("Endpoint Health Statuses:");
        healthStatuses.forEach(status => {
        console.log(`Address: ${status.address}, Response Time: ${status.responseTime !== null ? status.responseTime + 'ms' : 'Unresponsive'}`);
        });
        } catch (error) {
        console.error("Error checking endpoint health:", error);
        }
        };
        checkEndpointHealth();
        -
      +
    diff --git a/docs/functions/network.getEndpoints.html b/docs/functions/network.getEndpoints.html index 40ba381..3dfd108 100644 --- a/docs/functions/network.getEndpoints.html +++ b/docs/functions/network.getEndpoints.html @@ -1,8 +1,8 @@ -getEndpoints | @akashnetwork/akashjs
    • Retrieves endpoints for a specific network and type

      -

      Parameters

      Returns Promise<{ address: string }[]>

      A promise that resolves to an array of endpoint addresses

      -
      import { getEndpoints } from "@akashnetwork/akashjs/build/network";
      async function fetchEndpoints() {
      try {
      const endpoints = await getEndpoints("mainnet", "rpc");
      console.log(JSON.stringify(endpoints, null, 2));
      } catch (error) {
      console.error("Error fetching endpoints:", error);
      }
      }

      fetchEndpoints(); +getEndpoints | @akashnetwork/akashjs
      • Retrieves endpoints for a specific network and type.

        +

        Parameters

        Returns Promise<{ address: string }[]>

        A promise that resolves to an array of endpoint addresses.

        +
        import { NETWORK_TYPE, ENDPOINT_TYPE, getEndpoints } from "@akashnetwork/akashjs/build/network";

        async function fetchEndpoints() {
        try {
        const endpoints = await getEndpoints(NETWORK_TYPE.MAINNET, ENDPOINT_TYPE.REST);
        console.log("Endpoints:", JSON.stringify(endpoints, null, 2));
        } catch (error) {
        console.error("Error fetching endpoints:", error);
        }
        }

        fetchEndpoints();
        -
      +
    diff --git a/docs/functions/network.getEndpointsSorted.html b/docs/functions/network.getEndpointsSorted.html index d2e4f7b..061293d 100644 --- a/docs/functions/network.getEndpointsSorted.html +++ b/docs/functions/network.getEndpointsSorted.html @@ -1,8 +1,8 @@ -getEndpointsSorted | @akashnetwork/akashjs
    • Retrieves and sorts endpoints by their health status

      -

      Parameters

      Returns Promise<any[]>

      A promise that resolves to an array of endpoints sorted by response time

      -
      import { getEndpointsSorted } from "@akashnetwork/akashjs/build/network";
      async function exampleUsage() {
      try {
      const endpoints = await getEndpointsSorted("mainnet", "rpc");
      console.log(JSON.stringify(endpoints, null, 2));
      } catch (error) {
      console.error("Error fetching endpoints:", error);
      }
      }

      exampleUsage(); +getEndpointsSorted | @akashnetwork/akashjs
      • Retrieves and sorts endpoints by their health status.

        +

        Parameters

        Returns Promise<{ address: string; responseTime: number | null }[]>

        A promise that resolves to an array of endpoints sorted by response time.

        +
        import { NETWORK_TYPE, ENDPOINT_TYPE, getEndpointsSorted } from "@akashnetwork/akashjs/build/network";

        const displaySortedEndpoints = async () => {
        try {
        const endpoints = await getEndpointsSorted(NETWORK_TYPE.MAINNET, ENDPOINT_TYPE.RPC);
        console.log("Sorted Endpoints:", JSON.stringify(endpoints, null, 2));
        } catch (error) {
        console.error("Error fetching sorted endpoints:", error);
        }
        };

        displaySortedEndpoints();
        -
      +
    diff --git a/docs/functions/network.getMetadata.html b/docs/functions/network.getMetadata.html index 2a2ff94..ba47fac 100644 --- a/docs/functions/network.getMetadata.html +++ b/docs/functions/network.getMetadata.html @@ -1,7 +1,7 @@ -getMetadata | @akashnetwork/akashjs
    • Gets metadata for a specific network

      -

      Parameters

      Returns Promise<INetworkMetadata>

      The network metadata

      -
      import { getMetadata } from "@akashnetwork/akashjs/build/network";
      async function exampleUsage() {
      try {
      const metadata = await getMetadata("mainnet");
      console.log("Network Metadata:", metadata);
      } catch (error) {
      console.error("Error fetching network metadata:", error);
      }
      }

      exampleUsage(); +getMetadata | @akashnetwork/akashjs
      • Fetches metadata for a specified network.

        +

        Parameters

        • network: NETWORK_TYPE

          The network identifier for which to fetch metadata.

          +

        Returns Promise<INetworkMetadata>

        A promise that resolves to the network metadata.

        +
        import { NETWORK_TYPE, getMetadata } from "@akashnetwork/akashjs/build/network";

        async function displayNetworkMetadata() {
        try {
        const metadata = await getMetadata(NETWORK_TYPE.MAINNET);
        console.log("Network Metadata:", metadata);
        } catch (error) {
        console.error("Error fetching network metadata:", error);
        }
        }

        displayNetworkMetadata();
        -
      +
    diff --git a/docs/functions/protoclient.createAminoMessage.html b/docs/functions/protoclient.createAminoMessage.html index 6b44ddb..8b5e484 100644 --- a/docs/functions/protoclient.createAminoMessage.html +++ b/docs/functions/protoclient.createAminoMessage.html @@ -2,4 +2,4 @@

    Parameters

    • message: Message

      The type of the message.

    • messageBody: AminoMsg

      The body of the message.

    Returns { typeUrl: Message; value: AminoMsg }

    The Amino message object.

    -
    +
    diff --git a/docs/functions/protoclient.createStarGateMessage.html b/docs/functions/protoclient.createStarGateMessage.html index 9f643e6..afb750c 100644 --- a/docs/functions/protoclient.createStarGateMessage.html +++ b/docs/functions/protoclient.createStarGateMessage.html @@ -2,4 +2,4 @@

    Type Parameters

    • T extends keyof MessageTypes

    Parameters

    • message: T

      The type of the message.

    • messageBody: MessageTypes[T]

      The body of the message.

    Returns {
        fee: { amount: { amount: string; denom: string }[]; gas: string };
        message: { typeUrl: T; value: MessageTypes[T] };
    }

    The Stargate message object with a fee.

    -
    +
    diff --git a/docs/functions/rpc.getMsgClient.html b/docs/functions/rpc.getMsgClient.html index df32e97..4d1bfba 100644 --- a/docs/functions/rpc.getMsgClient.html +++ b/docs/functions/rpc.getMsgClient.html @@ -3,4 +3,4 @@
  • signer: OfflineSigner

    The signer used to sign transactions

  • Returns Promise<SigningStargateClient>

    A client for signing and sending transactions

    If connection to the endpoint fails or if there are issues with the signer

    -
    +
    diff --git a/docs/functions/rpc.getQueryClient.html b/docs/functions/rpc.getQueryClient.html index 7741dd7..af123c2 100644 --- a/docs/functions/rpc.getQueryClient.html +++ b/docs/functions/rpc.getQueryClient.html @@ -2,4 +2,4 @@

    Parameters

    • endpoint: string

      The RPC endpoint URL to connect to

    Returns Promise<ProtobufRpcClient>

    A protobuf RPC client for queries

    If connection to the endpoint fails

    -
    +
    diff --git a/docs/functions/rpc.getRpc.html b/docs/functions/rpc.getRpc.html index a883ba8..c34647e 100644 --- a/docs/functions/rpc.getRpc.html +++ b/docs/functions/rpc.getRpc.html @@ -2,4 +2,4 @@

    Parameters

    • endpoint: string

      The RPC endpoint URL to connect to

    Returns Promise<ProtobufRpcClient>

    A protobuf RPC client instance

    If connection to the endpoint fails

    -
    +
    diff --git a/docs/functions/stargate.getAkashTypeRegistry.html b/docs/functions/stargate.getAkashTypeRegistry.html index 8968ed1..e886ced 100644 --- a/docs/functions/stargate.getAkashTypeRegistry.html +++ b/docs/functions/stargate.getAkashTypeRegistry.html @@ -1,3 +1,3 @@ getAkashTypeRegistry | @akashnetwork/akashjs

    Retrieves the Akash type registry.

    • Returns [string, MessageType<UnknownMessage>][]

      An array of tuples containing the type URL and the corresponding message type.

      -
    +
    diff --git a/docs/functions/stargate.getTypeUrl.html b/docs/functions/stargate.getTypeUrl.html index 06f7897..7462e6e 100644 --- a/docs/functions/stargate.getTypeUrl.html +++ b/docs/functions/stargate.getTypeUrl.html @@ -1,4 +1,4 @@ getTypeUrl | @akashnetwork/akashjs

    Gets the type URL for a given message type.

    • Parameters

      • type: MessageType<UnknownMessage>

        The message type for which to get the URL.

      Returns string

      The URL string for the specified message type.

      -
    +
    diff --git a/docs/functions/wallet.createAccount.html b/docs/functions/wallet.createAccount.html index 13dc7f4..71000cb 100644 --- a/docs/functions/wallet.createAccount.html +++ b/docs/functions/wallet.createAccount.html @@ -1,3 +1,6 @@ -createAccount | @akashnetwork/akashjs
    • Creates a new wallet account

      -

      Returns Promise<{ address: any; mnemonic: any }>

      The newly created wallet's mnemonic and address

      -
    +createAccount | @akashnetwork/akashjs
    • Creates a new wallet account with a randomly generated mnemonic and returns the mnemonic and address.

      +

      Returns Promise<{ address: any; mnemonic: any }>

      The newly created wallet's mnemonic and address.

      +
      // Example usage:
      createAccount().then(({ mnemonic, address }) => {
      console.log(`Mnemonic: ${mnemonic}`);
      console.log(`Address: ${address}`);
      }); +
      + +
    diff --git a/docs/functions/wallet.getAccount.html b/docs/functions/wallet.getAccount.html index c353f1e..685efb9 100644 --- a/docs/functions/wallet.getAccount.html +++ b/docs/functions/wallet.getAccount.html @@ -1,4 +1,10 @@ -getAccount | @akashnetwork/akashjs
    • Retrieves a wallet account by address

      -

      Parameters

      • address: string

        The address of the account to retrieve

        -

      Returns Promise<any>

      The wallet accounts

      -
    +getAccount | @akashnetwork/akashjs
    • Retrieves a wallet account by address.

      +

      This function fetches the mnemonic associated with the given address from local storage +and imports the account using that mnemonic.

      +

      Parameters

      • address: string

        The address of the account to retrieve.

        +

      Returns Promise<any>

      The wallet accounts associated with the given address.

      +

      Will throw an error if the mnemonic for the given address is not found in local storage.

      +
      // Example usage:
      getAccount("akash1xyz...").then((accounts) => {
      console.log(accounts);
      }).catch((error) => {
      console.error("Error retrieving account:", error);
      }); +
      + +
    diff --git a/docs/functions/wallet.getLastLoaded.html b/docs/functions/wallet.getLastLoaded.html index 4a4372c..7054b7e 100644 --- a/docs/functions/wallet.getLastLoaded.html +++ b/docs/functions/wallet.getLastLoaded.html @@ -1,3 +1,3 @@ getLastLoaded | @akashnetwork/akashjs
    • Gets the most recently loaded wallet

      Returns Promise<any>

      The last loaded wallet instance

      -
    +
    diff --git a/docs/functions/wallet.importAccount.html b/docs/functions/wallet.importAccount.html index 9b9b0d2..200be72 100644 --- a/docs/functions/wallet.importAccount.html +++ b/docs/functions/wallet.importAccount.html @@ -1,4 +1,7 @@ -importAccount | @akashnetwork/akashjs
    • Imports an existing wallet using a mnemonic phrase

      +importAccount | @akashnetwork/akashjs
      • Imports an existing wallet using a mnemonic phrase and returns a promise with algo, pubkey, and address

        Parameters

        • mnemonic: string

          The mnemonic phrase to import

        Returns Promise<any>

        The imported wallet accounts

        -
      +
      // Example usage:
      importAccount("family maximum shoulder all reduce trash across beach gun law flame bird").then((accounts) => {
      console.log(accounts);
      }); +
      + +
    diff --git a/docs/hierarchy.html b/docs/hierarchy.html index d98b7d4..83eba62 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -1 +1 @@ -@akashnetwork/akashjs

    @akashnetwork/akashjs

    Hierarchy Summary

    +@akashnetwork/akashjs

    @akashnetwork/akashjs

    Hierarchy Summary

    diff --git a/docs/interfaces/certificate.pems.html b/docs/interfaces/certificate.pems.html index 458135a..e6a6d54 100644 --- a/docs/interfaces/certificate.pems.html +++ b/docs/interfaces/certificate.pems.html @@ -1,8 +1,8 @@ pems | @akashnetwork/akashjs

    Interface representing the PEM-formatted certificate components

    -
    interface pems {
        csr: string;
        privateKey: string;
        publicKey: string;
    }

    Properties

    csr +
    interface pems {
        csr: string;
        privateKey: string;
        publicKey: string;
    }

    Properties

    csr: string

    The Certificate Signing Request (CSR) in PEM format

    -
    privateKey: string

    The private key in PEM format

    -
    publicKey: string

    The public key in PEM format

    -
    +
    privateKey: string

    The private key in PEM format

    +
    publicKey: string

    The public key in PEM format

    +
    diff --git a/docs/interfaces/network.INetworkMetadata.html b/docs/interfaces/network.INetworkMetadata.html index 217ca37..38267a5 100644 --- a/docs/interfaces/network.INetworkMetadata.html +++ b/docs/interfaces/network.INetworkMetadata.html @@ -1,6 +1,6 @@ INetworkMetadata | @akashnetwork/akashjs

    Network metadata interface INetworkMetadata

    -
    interface INetworkMetadata {
        apis: { [type: string]: { address: string }[] };
        bech32_prefix: string;
        chain_id: string;
        chain_name: string;
        codebase: {
            binaries: { [target: string]: string };
            compatible_versions: string[];
            git_repo: string;
            recommended_version: string;
        };
        daemon_name: string;
        genesis: { genesis_url: string };
        network_type: string;
        node_home: string;
        peers: {
            persistent_peers: { address: string; id: string }[];
            seeds: { address: string; id: string }[];
        };
        pretty_name: string;
        status: string;
    }

    Properties

    interface INetworkMetadata {
        apis: { [type: string]: { address: string }[] };
        bech32_prefix: string;
        chain_id: string;
        chain_name: string;
        codebase: {
            binaries: { [target: string]: string };
            compatible_versions: string[];
            git_repo: string;
            recommended_version: string;
        };
        daemon_name: string;
        genesis: { genesis_url: string };
        network_type: string;
        node_home: string;
        peers: {
            persistent_peers: { address: string; id: string }[];
            seeds: { address: string; id: string }[];
        };
        pretty_name: string;
        status: string;
    }

    Properties

    Properties

    apis: { [type: string]: { address: string }[] }

    A mapping of API types to their respective endpoint addresses.

    -
    bech32_prefix: string

    The prefix used for Bech32 encoded addresses on the network.

    -
    chain_id: string

    A unique identifier for the blockchain network.

    -
    chain_name: string

    The name of the blockchain network.

    -
    codebase: {
        binaries: { [target: string]: string };
        compatible_versions: string[];
        git_repo: string;
        recommended_version: string;
    }

    Details about the codebase of the network.

    -
    daemon_name: string

    The name of the daemon process used by the network.

    -
    genesis: { genesis_url: string }

    Information about the genesis block of the network.

    -
    network_type: string

    The type of network, indicating whether it's a mainnet, testnet, or edgenet.

    -
    node_home: string

    The directory path where the node's data is stored.

    -
    peers: {
        persistent_peers: { address: string; id: string }[];
        seeds: { address: string; id: string }[];
    }

    Information about network peers.

    -
    pretty_name: string

    A human-readable name for the network.

    -
    status: string

    The current operational status of the network (e.g., active, inactive).

    -
    +
    bech32_prefix: string

    The prefix used for Bech32 encoded addresses on the network.

    +
    chain_id: string

    A unique identifier for the blockchain network.

    +
    chain_name: string

    The name of the blockchain network.

    +
    codebase: {
        binaries: { [target: string]: string };
        compatible_versions: string[];
        git_repo: string;
        recommended_version: string;
    }

    Details about the codebase of the network.

    +
    daemon_name: string

    The name of the daemon process used by the network.

    +
    genesis: { genesis_url: string }

    Information about the genesis block of the network.

    +
    network_type: string

    The type of network, indicating whether it's a mainnet, testnet, or edgenet.

    +
    node_home: string

    The directory path where the node's data is stored.

    +
    peers: {
        persistent_peers: { address: string; id: string }[];
        seeds: { address: string; id: string }[];
    }

    Information about network peers.

    +
    pretty_name: string

    A human-readable name for the network.

    +
    status: string

    The current operational status of the network (e.g., active, inactive).

    +
    diff --git a/docs/modules/network.html b/docs/modules/network.html index 4065a45..7eb83f2 100644 --- a/docs/modules/network.html +++ b/docs/modules/network.html @@ -1,3 +1,3 @@ network | @akashnetwork/akashjs

    Network module for network-related operations.

    module:network

    -

    Interfaces

    INetworkMetadata

    Type Aliases

    ENDPOINT_TYPE
    NETWORK_TYPE

    Functions

    getEndpointHealthStatus
    getEndpoints
    getEndpointsSorted
    getMetadata
    +

    Enumerations

    ENDPOINT_TYPE
    NETWORK_TYPE

    Interfaces

    INetworkMetadata

    Functions

    getEndpointHealthStatus
    getEndpoints
    getEndpointsSorted
    getMetadata
    diff --git a/docs/modules/wallet.html b/docs/modules/wallet.html index 0d5833c..a83294f 100644 --- a/docs/modules/wallet.html +++ b/docs/modules/wallet.html @@ -1,3 +1,3 @@ wallet | @akashnetwork/akashjs

    Wallet module for managing cryptocurrency wallets.

    module:wallet

    -

    Functions

    createAccount
    getAccount
    getLastLoaded
    importAccount
    +

    Variables

    DEFAULT_ACCOUNT_PASSWORD
    DEFAULT_ADDRESS_PREFIX

    Functions

    createAccount
    getAccount
    getLastLoaded
    importAccount
    diff --git a/docs/types/certificate.CertificatePemDeprecated.html b/docs/types/certificate.CertificatePemDeprecated.html index 69e170d..397c1d3 100644 --- a/docs/types/certificate.CertificatePemDeprecated.html +++ b/docs/types/certificate.CertificatePemDeprecated.html @@ -1,3 +1,3 @@ CertificatePemDeprecated | @akashnetwork/akashjs
    CertificatePemDeprecated: CertificatePem & { csr: string }

    Deprecated type for CertificatePem with an additional csr field.

    Use CertificatePem with cert instead of csr.

    -
    +
    diff --git a/docs/types/network.ENDPOINT_TYPE.html b/docs/types/network.ENDPOINT_TYPE.html deleted file mode 100644 index 1290162..0000000 --- a/docs/types/network.ENDPOINT_TYPE.html +++ /dev/null @@ -1,2 +0,0 @@ -ENDPOINT_TYPE | @akashnetwork/akashjs
    ENDPOINT_TYPE: "rpc" | "rest"

    Network endpoint type

    -
    diff --git a/docs/types/network.NETWORK_TYPE.html b/docs/types/network.NETWORK_TYPE.html deleted file mode 100644 index 011b084..0000000 --- a/docs/types/network.NETWORK_TYPE.html +++ /dev/null @@ -1,2 +0,0 @@ -NETWORK_TYPE | @akashnetwork/akashjs
    NETWORK_TYPE: "mainnet" | "testnet" | "edgenet"

    Network type identifier

    -
    diff --git a/docs/variables/sdl.GPU_SUPPORTED_INTERFACES.html b/docs/variables/sdl.GPU_SUPPORTED_INTERFACES.html index e8f9f96..1d194cc 100644 --- a/docs/variables/sdl.GPU_SUPPORTED_INTERFACES.html +++ b/docs/variables/sdl.GPU_SUPPORTED_INTERFACES.html @@ -1 +1 @@ -GPU_SUPPORTED_INTERFACES | @akashnetwork/akashjs

    Variable GPU_SUPPORTED_INTERFACESConst

    GPU_SUPPORTED_INTERFACES: string[] = ...
    +GPU_SUPPORTED_INTERFACES | @akashnetwork/akashjs

    Variable GPU_SUPPORTED_INTERFACESConst

    GPU_SUPPORTED_INTERFACES: string[] = ...
    diff --git a/docs/variables/sdl.GPU_SUPPORTED_VENDORS.html b/docs/variables/sdl.GPU_SUPPORTED_VENDORS.html index acad2ed..cf9ba53 100644 --- a/docs/variables/sdl.GPU_SUPPORTED_VENDORS.html +++ b/docs/variables/sdl.GPU_SUPPORTED_VENDORS.html @@ -1 +1 @@ -GPU_SUPPORTED_VENDORS | @akashnetwork/akashjs

    Variable GPU_SUPPORTED_VENDORSConst

    GPU_SUPPORTED_VENDORS: string[] = ...
    +GPU_SUPPORTED_VENDORS | @akashnetwork/akashjs

    Variable GPU_SUPPORTED_VENDORSConst

    GPU_SUPPORTED_VENDORS: string[] = ...
    diff --git a/docs/variables/wallet.DEFAULT_ACCOUNT_PASSWORD.html b/docs/variables/wallet.DEFAULT_ACCOUNT_PASSWORD.html new file mode 100644 index 0000000..d02e67e --- /dev/null +++ b/docs/variables/wallet.DEFAULT_ACCOUNT_PASSWORD.html @@ -0,0 +1 @@ +DEFAULT_ACCOUNT_PASSWORD | @akashnetwork/akashjs

    Variable DEFAULT_ACCOUNT_PASSWORDConst

    DEFAULT_ACCOUNT_PASSWORD: "AkashNetwork"
    diff --git a/docs/variables/wallet.DEFAULT_ADDRESS_PREFIX.html b/docs/variables/wallet.DEFAULT_ADDRESS_PREFIX.html new file mode 100644 index 0000000..821d003 --- /dev/null +++ b/docs/variables/wallet.DEFAULT_ADDRESS_PREFIX.html @@ -0,0 +1 @@ +DEFAULT_ADDRESS_PREFIX | @akashnetwork/akashjs

    Variable DEFAULT_ADDRESS_PREFIXConst

    DEFAULT_ADDRESS_PREFIX: "akash"
    diff --git a/examples/network.ts b/examples/network.ts index 9f83d59..b3312de 100644 --- a/examples/network.ts +++ b/examples/network.ts @@ -2,32 +2,38 @@ import { getEndpointHealthStatus, getEndpointsSorted, getMetadata, - getEndpoints -} from "@akashnetwork/akashjs/build/network"; + getEndpoints, + ENDPOINT_TYPE, + NETWORK_TYPE +} from "../src/network"; +// Example to fetch metadata about Akash Network async function fetchMetadata() { try { console.log("Fetching metadata..."); - const metadata = await getMetadata("mainnet"); + const metadata = await getMetadata(NETWORK_TYPE.MAINNET); console.log(JSON.stringify(metadata, null, 2)); } catch (error) { console.error("Error fetching metadata:", error); } } +// Example to fetch REST endpoints async function fetchEndpoints() { try { - const endpoints = await getEndpoints("mainnet", "rpc"); - console.log(JSON.stringify(endpoints, null, 2)); + const endpoints = await getEndpoints(NETWORK_TYPE.MAINNET, ENDPOINT_TYPE.REST); + endpoints.forEach(endpoint => { + console.log(endpoint.address); + }); } catch (error) { console.error("Error fetching endpoints:", error); } } - +// Example to check endpoint health async function checkEndpointHealth() { try { - const endpoints = await getEndpoints("mainnet", "rpc"); + const endpoints = await getEndpoints(NETWORK_TYPE.MAINNET, ENDPOINT_TYPE.REST); const healthStatusPromises = endpoints.map(getEndpointHealthStatus(800)); const healthStatuses = await Promise.all(healthStatusPromises); diff --git a/examples/wallet.ts b/examples/wallet.ts new file mode 100644 index 0000000..e45d52b --- /dev/null +++ b/examples/wallet.ts @@ -0,0 +1,31 @@ +import { + createAccount, + importAccount, + getAccount +} +from "../src/wallet"; + +// example to create a new wallet account +async function createWalletAccount() { + const account = await createAccount(); + console.log(account); +} + +// createWalletAccount(); + + +// example to import an existing wallet account with menomic family maximum shoulder all reduce trash across beach gun law flame bird +async function importWalletAccount() { + const account = await importAccount("family maximum shoulder all reduce trash across beach gun law flame bird"); + console.log(account); +} + +//importWalletAccount(); + +// example for getAccount +async function getAccountInfo() { + const account = await getAccount("akash1ek67a6maje35nruku3x7np9ewaq2msw7xf3cmt"); + console.log(account); +} + +getAccountInfo(); diff --git a/package.json b/package.json index 68e6481..0ac12bf 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@akashnetwork/akashjs", "version": "0.10.1", - "description": "Akash Network JS SDK", + "description": "Akash Network JavaScript SDK", "repository": { "url": "https://github.com/akash-network/akashjs" }, diff --git a/src/network/index.ts b/src/network/index.ts index 3d8a2f0..31b6404 100644 --- a/src/network/index.ts +++ b/src/network/index.ts @@ -8,10 +8,17 @@ import { performance } from "perf_hooks"; import { awaitAll, filter, map, prop, sortBy } from "../util"; /** Network type identifier */ -export type NETWORK_TYPE = "mainnet" | "testnet" | "edgenet"; +export enum NETWORK_TYPE { + MAINNET = "mainnet", + TESTNET = "testnet", + EDGENET = "edgenet" +} /** Network endpoint type */ -export type ENDPOINT_TYPE = "rpc" | "rest"; +export enum ENDPOINT_TYPE { + RPC = "rpc", + REST = "rest" +} /** * Network metadata interface @@ -73,39 +80,42 @@ export interface INetworkMetadata { } /** - * Gets metadata for a specific network - * @param {NETWORK_TYPE} network - The network to get metadata for - * @returns {Promise} The network metadata + * Fetches metadata for a specified network. + * @param {NETWORK_TYPE} network - The network identifier for which to fetch metadata. + * @returns {Promise} A promise that resolves to the network metadata. * * @example - * import { getMetadata } from "@akashnetwork/akashjs/build/network"; - * async function exampleUsage() { + * import { NETWORK_TYPE, getMetadata } from "@akashnetwork/akashjs/build/network"; + * + * async function displayNetworkMetadata() { * try { - * const metadata = await getMetadata("mainnet"); + * const metadata = await getMetadata(NETWORK_TYPE.MAINNET); * console.log("Network Metadata:", metadata); * } catch (error) { * console.error("Error fetching network metadata:", error); * } * } * - * exampleUsage(); + * displayNetworkMetadata(); */ export async function getMetadata(network: NETWORK_TYPE): Promise { - return fetch(`https://raw.githubusercontent.com/ovrclk/net/master/${network}/meta.json`).then(res => res.json()); + const response = await fetch(`https://raw.githubusercontent.com/ovrclk/net/master/${network}/meta.json`); + return response.json(); } /** - * Retrieves endpoints for a specific network and type - * @param {NETWORK_TYPE} network - The network to get endpoints for - * @param {ENDPOINT_TYPE} type - The type of endpoint to retrieve - * @returns {Promise<{ address: string }[]>} A promise that resolves to an array of endpoint addresses + * Retrieves endpoints for a specific network and type. + * @param {NETWORK_TYPE} network - The network to get endpoints for. + * @param {ENDPOINT_TYPE} type - The type of endpoint to retrieve. + * @returns {Promise>} A promise that resolves to an array of endpoint addresses. * * @example - * import { getEndpoints } from "@akashnetwork/akashjs/build/network"; + * import { NETWORK_TYPE, ENDPOINT_TYPE, getEndpoints } from "@akashnetwork/akashjs/build/network"; + * * async function fetchEndpoints() { * try { - * const endpoints = await getEndpoints("mainnet", "rpc"); - * console.log(JSON.stringify(endpoints, null, 2)); + * const endpoints = await getEndpoints(NETWORK_TYPE.MAINNET, ENDPOINT_TYPE.REST); + * console.log("Endpoints:", JSON.stringify(endpoints, null, 2)); * } catch (error) { * console.error("Error fetching endpoints:", error); * } @@ -113,58 +123,60 @@ export async function getMetadata(network: NETWORK_TYPE): Promise> { return getMetadata(network).then(meta => meta.apis[type]); } /** - * Retrieves and sorts endpoints by their health status - * @param {NETWORK_TYPE} network - The network to get endpoints for - * @param {ENDPOINT_TYPE} type - The type of endpoint to retrieve -* @returns {Promise<{ address: string, responseTime: number | null }[]>} A promise that resolves to an array of endpoints sorted by response time + * Retrieves and sorts endpoints by their health status. + * @param {NETWORK_TYPE} network - The network to get endpoints for. + * @param {ENDPOINT_TYPE} type - The type of endpoint to retrieve. + * @returns {Promise>} A promise that resolves to an array of endpoints sorted by response time. * * @example - * import { getEndpointsSorted } from "@akashnetwork/akashjs/build/network"; - * async function exampleUsage() { + * import { NETWORK_TYPE, ENDPOINT_TYPE, getEndpointsSorted } from "@akashnetwork/akashjs/build/network"; + * + * const displaySortedEndpoints = async () => { * try { - * const endpoints = await getEndpointsSorted("mainnet", "rpc"); - * console.log(JSON.stringify(endpoints, null, 2)); + * const endpoints = await getEndpointsSorted(NETWORK_TYPE.MAINNET, ENDPOINT_TYPE.RPC); + * console.log("Sorted Endpoints:", JSON.stringify(endpoints, null, 2)); * } catch (error) { - * console.error("Error fetching endpoints:", error); + * console.error("Error fetching sorted endpoints:", error); * } - * } + * }; * - * exampleUsage(); + * displaySortedEndpoints(); */ -export function getEndpointsSorted(network: NETWORK_TYPE, type: ENDPOINT_TYPE) { +export function getEndpointsSorted(network: NETWORK_TYPE, type: ENDPOINT_TYPE): Promise> { return getEndpoints(network, type) - .then(map(getEndpointHealthStatus(800))) - .then(awaitAll) - .then(filter(isNodeResponsive)) - .then(sortBy(prop("responseTime"))); + .then(endpoints => Promise.all(endpoints.map(getEndpointHealthStatus(800)))) + .then(healthStatuses => healthStatuses.filter(isNodeResponsive)) + .then(responsiveEndpoints => responsiveEndpoints.sort((a, b) => (a.responseTime ?? Infinity) - (b.responseTime ?? Infinity))); } /** - * Checks if a node is responsive based on its response time - * @param {{ responseTime: number | null }} endpoint - The endpoint to check - * @returns {boolean} True if the node is responsive, false otherwise + * Checks if a node is responsive based on its response time. + * @param {{ responseTime: number | null }} endpoint - The endpoint to check. + * @returns {boolean} True if the node is responsive, false otherwise. */ -function isNodeResponsive(endpoint: { responseTime: number | null }) { +function isNodeResponsive(endpoint: { responseTime: number | null }): boolean { return endpoint.responseTime !== null; } /** - * Returns a function that checks the health status of an endpoint - * @param {number} timeout - The timeout for the health check request - * @returns {function({ address: string }): Promise<{ address: string, responseTime: number | null }>} A function that returns a promise resolving to the endpoint's health status - * + * Creates a function to check the health status of an endpoint. + * @param timeout - The timeout duration for the health check request in milliseconds. + * @returns A function that takes an endpoint object and returns a promise resolving to the endpoint's health status, including its address and response time. + * * @example - * async function checkEndpointHealth() { + * import { getEndpointHealthStatus, getEndpoints, NETWORK_TYPE, ENDPOINT_TYPE } from "@akashnetwork/akashjs/build/network"; + * + * const checkEndpointHealth = async () => { * try { - * const endpoints = await getEndpoints("mainnet", "rpc"); + * const endpoints = await getEndpoints(NETWORK_TYPE.MAINNET, ENDPOINT_TYPE.RPC); * const healthStatusPromises = endpoints.map(endpoint => getEndpointHealthStatus(800)(endpoint)); * const healthStatuses = await Promise.all(healthStatusPromises); - * + * * console.log("Endpoint Health Statuses:"); * healthStatuses.forEach(status => { * console.log(`Address: ${status.address}, Response Time: ${status.responseTime !== null ? status.responseTime + 'ms' : 'Unresponsive'}`); @@ -172,14 +184,14 @@ function isNodeResponsive(endpoint: { responseTime: number | null }) { * } catch (error) { * console.error("Error checking endpoint health:", error); * } - * } + * }; * checkEndpointHealth(); */ export function getEndpointHealthStatus(timeout: number) { return ({ address }: { address: string }) => { const startTime = performance.now(); - return fetch(`${address}/node_info`, { timeout }) + return fetch(`${address}/node_info`, { method: 'GET', timeout }) .then(() => ({ address, responseTime: Math.floor(performance.now() - startTime) diff --git a/src/wallet/index.ts b/src/wallet/index.ts index 28f180f..7e14f68 100644 --- a/src/wallet/index.ts +++ b/src/wallet/index.ts @@ -6,16 +6,30 @@ import { Secp256k1HdWallet } from "@cosmjs/launchpad"; import keytar from "keytar"; +// define default prefix for wallet +export const DEFAULT_ADDRESS_PREFIX = "akash"; + +// default password for wallet +export const DEFAULT_ACCOUNT_PASSWORD = "AkashNetwork"; + let wallet: any; /** - * Creates a new wallet account - * @returns {Promise<{mnemonic: string, address: string}>} The newly created wallet's mnemonic and address + * Creates a new wallet account with a randomly generated mnemonic and returns the mnemonic and address. + * + * @returns {Promise<{mnemonic: string, address: string}>} The newly created wallet's mnemonic and address. + * + * @example + * // Example usage: + * createAccount().then(({ mnemonic, address }) => { + * console.log(`Mnemonic: ${mnemonic}`); + * console.log(`Address: ${address}`); + * }); */ export async function createAccount() { - wallet = await Secp256k1HdWallet.generate(undefined, { prefix: "akash" }); + wallet = await Secp256k1HdWallet.generate(undefined, { prefix: DEFAULT_ADDRESS_PREFIX }); const [{ address }] = await wallet.getAccounts(); - keytar.setPassword("AkashNetwork", address, wallet.mnemonic); + keytar.setPassword(DEFAULT_ACCOUNT_PASSWORD, address, wallet.mnemonic); return { mnemonic: wallet.mnemonic, address @@ -23,23 +37,48 @@ export async function createAccount() { } /** - * Imports an existing wallet using a mnemonic phrase + * Imports an existing wallet using a mnemonic phrase and returns a promise with algo, pubkey, and address + * * @param {string} mnemonic - The mnemonic phrase to import * @returns {Promise} The imported wallet accounts + * + * @example + * // Example usage: + * importAccount("family maximum shoulder all reduce trash across beach gun law flame bird").then((accounts) => { + * console.log(accounts); + * }); */ export async function importAccount(mnemonic: string) { - wallet = await Secp256k1HdWallet.fromMnemonic(mnemonic); + wallet = await Secp256k1HdWallet.fromMnemonic(mnemonic, { prefix: DEFAULT_ADDRESS_PREFIX }); const accounts = await wallet.getAccounts(); return accounts; } /** - * Retrieves a wallet account by address - * @param {string} address - The address of the account to retrieve - * @returns {Promise} The wallet accounts + * Retrieves a wallet account by address. + * + * This function fetches the mnemonic associated with the given address from local storage + * and imports the account using that mnemonic. + * + * @param {string} address - The address of the account to retrieve. + * @returns {Promise} The wallet accounts associated with the given address. + * + * @throws Will throw an error if the mnemonic for the given address is not found in local storage. + * + * @example + * // Example usage: + * getAccount("akash1xyz...").then((accounts) => { + * console.log(accounts); + * }).catch((error) => { + * console.error("Error retrieving account:", error); + * }); */ export async function getAccount(address: string) { - const mnemonic: any = await keytar.getPassword("AkashNetwork", address); + const mnemonic: any = await keytar.getPassword(DEFAULT_ACCOUNT_PASSWORD, address); + // if the mnemonic is not found, throw an error + if (!mnemonic) { + throw new Error("Unable to find mnemonic for the given address from the local storage"); + } return importAccount(mnemonic); }