diff --git a/src/contract/deploy/DataItem.ts b/src/contract/deploy/DataItem.ts index e69de29..30c212b 100644 --- a/src/contract/deploy/DataItem.ts +++ b/src/contract/deploy/DataItem.ts @@ -0,0 +1,37 @@ +/* eslint-disable */ +export declare abstract class Signer { + readonly publicKey: Buffer; + readonly signatureType: number; + readonly signatureLength: number; + readonly ownerLength: number; + readonly pem?: string | Buffer; + abstract sign(message: Uint8Array): Promise | Uint8Array; + static verify(_: string | Buffer): boolean; +} + +type ResolvesTo = T | Promise | ((...args: any[]) => Promise); + +export abstract class DataItem { + readonly id: string; + readonly signatureType: ResolvesTo; + readonly rawSignature: ResolvesTo; + readonly signature: ResolvesTo; + readonly signatureLength: ResolvesTo; + readonly rawOwner: ResolvesTo; + readonly owner: ResolvesTo; + readonly ownerLength: ResolvesTo; + readonly rawTarget: ResolvesTo; + readonly target: ResolvesTo; + readonly rawAnchor: ResolvesTo; + readonly anchor: ResolvesTo; + readonly rawTags: ResolvesTo; + readonly tags: ResolvesTo<{ name: string; value: string }[]>; + readonly rawData: ResolvesTo; + readonly data: ResolvesTo; + abstract sign(signer: Signer): Promise; + abstract isValid(): Promise; + static async verify(..._: any[]): Promise { + throw new Error('You must implement `verify`'); + } + abstract getRaw(): Buffer; +}