From 0863c255544e42645f8063c8e4a27c5ae07e2c36 Mon Sep 17 00:00:00 2001 From: Asia Date: Fri, 30 Jun 2023 14:56:59 +0200 Subject: [PATCH] feat: replace DataItem and Signer classes with warp-arbundles implementation (#434) --- src/contract/HandlerBasedContract.ts | 1 - src/contract/deploy/CreateContract.ts | 6 ++-- src/contract/deploy/DataItem.ts | 41 --------------------------- src/contract/deploy/Source.ts | 4 +-- src/core/Warp.ts | 4 +-- src/index.ts | 1 - 6 files changed, 7 insertions(+), 50 deletions(-) delete mode 100644 src/contract/deploy/DataItem.ts diff --git a/src/contract/HandlerBasedContract.ts b/src/contract/HandlerBasedContract.ts index e8c8017..4e7262f 100644 --- a/src/contract/HandlerBasedContract.ts +++ b/src/contract/HandlerBasedContract.ts @@ -402,7 +402,6 @@ export class HandlerBasedContract implements Contract { await interactionDataItem.sign(bundlerSigner); } - // TODO: for ethereum owner is set to public key and not the address!! if (!this._evaluationOptions.internalWrites && strict) { await this.checkInteractionInStrictMode(interactionDataItem.owner, input, tags, transfer, strict, vrf); } diff --git a/src/contract/deploy/CreateContract.ts b/src/contract/deploy/CreateContract.ts index 5be7cc2..a966a5f 100644 --- a/src/contract/deploy/CreateContract.ts +++ b/src/contract/deploy/CreateContract.ts @@ -2,7 +2,7 @@ import { JWKInterface } from 'arweave/node/lib/wallet'; import { WarpPluginType } from '../../core/WarpPlugin'; import { EvaluationOptions } from '../../core/modules/StateEvaluator'; import { Source } from './Source'; -import { BundlerSigner } from './DataItem'; +import { Signer } from 'warp-arbundles'; import { CustomSignature } from '../Signature'; import { Tag } from '../../utils/types/arweave-types'; @@ -31,13 +31,13 @@ export const BUNDLR_NODES = ['node1', 'node2'] as const; export type BundlrNodeType = (typeof BUNDLR_NODES)[number]; export interface CommonContractData { - wallet: ArWallet | CustomSignature | BundlerSigner; + wallet: ArWallet | CustomSignature | Signer; initState: string; tags?: Tags; transfer?: ArTransfer; data?: { 'Content-Type': string; - body: string | Uint8Array; + body: string | Buffer; }; evaluationManifest?: EvaluationManifest; } diff --git a/src/contract/deploy/DataItem.ts b/src/contract/deploy/DataItem.ts deleted file mode 100644 index 84562e5..0000000 --- a/src/contract/deploy/DataItem.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Tag } from '../../utils/types/arweave-types'; - -/* eslint-disable */ -export declare abstract class BundlerSigner { - readonly signer?: any; - readonly publicKey: Buffer; - readonly signatureType: number; - readonly signatureLength: number; - readonly ownerLength: number; - readonly pem?: string | Buffer; - abstract sign(message: Uint8Array): Promise | Uint8Array; - abstract signDataItem?(dataItem: string | Buffer | Uint8Array, tags: Tag[]): Promise; - 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: BundlerSigner): Promise; - abstract isValid(): Promise; - static async verify(..._: any[]): Promise { - throw new Error('You must implement `verify`'); - } - abstract getRaw(): Buffer; -} diff --git a/src/contract/deploy/Source.ts b/src/contract/deploy/Source.ts index be95444..364b4de 100644 --- a/src/contract/deploy/Source.ts +++ b/src/contract/deploy/Source.ts @@ -1,7 +1,7 @@ import { ArWallet } from './CreateContract'; import { CustomSignature } from '../../contract/Signature'; import { Transaction } from '../../utils/types/arweave-types'; -import { BundlerSigner, DataItem } from './DataItem'; +import { Signer, DataItem } from 'warp-arbundles'; export interface SourceData { src: string | Buffer; @@ -23,7 +23,7 @@ export interface Source { */ createSource( sourceData: SourceData, - wallet: ArWallet | CustomSignature | BundlerSigner, + wallet: ArWallet | CustomSignature | Signer, disableBundling?: boolean ): Promise; diff --git a/src/core/Warp.ts b/src/core/Warp.ts index e2b2438..ee68a04 100644 --- a/src/core/Warp.ts +++ b/src/core/Warp.ts @@ -32,7 +32,7 @@ import { Transaction } from '../utils/types/arweave-types'; import { DEFAULT_LEVEL_DB_LOCATION, WARP_GW_URL } from './WarpFactory'; import { LevelDbCache } from '../cache/impl/LevelDbCache'; import { SourceData } from '../contract/deploy/Source'; -import { BundlerSigner, DataItem } from '../contract/deploy/DataItem'; +import { Signer, DataItem } from 'warp-arbundles'; import { BasicSortKeyCache } from '../cache/BasicSortKeyCache'; export type WarpEnvironment = 'local' | 'testnet' | 'mainnet' | 'custom'; @@ -121,7 +121,7 @@ export class Warp { async createSource( sourceData: SourceData, - wallet: ArWallet | CustomSignature | BundlerSigner, + wallet: ArWallet | CustomSignature | Signer, disableBundling = false ): Promise { return await this.createContract.createSource(sourceData, wallet, disableBundling); diff --git a/src/index.ts b/src/index.ts index 6fd22cb..d1fe5b2 100644 --- a/src/index.ts +++ b/src/index.ts @@ -53,7 +53,6 @@ export * from './contract/Signature'; export * from './contract/EvaluationOptionsEvaluator'; export * from './contract/deploy/Source'; export * from './contract/deploy/CreateContract'; -export * from './contract/deploy/DataItem'; export * from './legacy/gqlResult'; export * from './legacy/smartweave-global';