ApeWorX / ApePay

A smart contract payment system built for automated service management
https://apeworx.io/apepay
Apache License 2.0
19 stars 6 forks source link

Refacto onstreamcreate and create in index [SBK-335] #64

Open alexisnsns opened 11 months ago

alexisnsns commented 11 months ago

This refactored code below throws some errors like 'no account' error when calling create or 'hash undefined' on streamcreate; Not ready for prod but can be used as a draft.

` // new create function // async create( // token: Address, // amountPerSecond: bigint, // reason?: string, // startTime?: number, // accountOverride?: Address // ): Promise { // if (!accountOverride && !this.walletClient?.account) // throw new Error("No account");

// const account = // accountOverride || (this.walletClient?.account?.address ?? "0x0");

// const args: Array<number | string | bigint | Address | ByteArray> = [ // token, // amountPerSecond, // ]; // if (startTime) { // args.push(reason ? stringToHex(reason) : ""); // args.push(startTime); // } else if (reason) { // args.push(stringToHex(reason)); // }

// // Step 1: Run the transaction // const hash = await this.walletClient?.writeContract({ // chain: null, // address: this.address, // abi: StreamManagerContractType.abi as Abi, // functionName: "create_stream", // args, // account, // });

// console.log("writeContract params:", { // chain: null, // address: this.address, // abi: StreamManagerContractType.abi, // functionName: "create_stream", // args, // account, // });

// if (hash === undefined) // throw new Error("Error while processing transaction. Hash undefined.");

// // Step 2: Wait for transaction to be confirmed // const receipt = await this.publicClient.waitForTransactionReceipt({ // hash: hash, // });

// if (!receipt || !receipt.logs || receipt.logs.length === 0) { // throw new Error("Transaction failed or logs are missing"); // }

// // Step 3: Use the last log for creating the Stream instance // const lastLog = receipt.logs[receipt.logs.length - 1];

// return Stream.fromEventLog( // this, // lastLog, // this.publicClient, // this.walletClient // ); // }

// new onstreamcreated // onStreamCreated( // handleStream: (stream: Stream) => null, // creator?: Address // ): void { // const onLogs = (logs: Log[]) => { // Promise.all( // logs.map((log: Log) => // Stream.fromEventLog(this, log, this.publicClient, this.walletClient) // .then(handleStream) // .catch(console.error) // ) // ); // };

// this.publicClient.watchContractEvent({ // address: this.address, // abi: StreamManagerContractType.abi as Abi, // eventName: "StreamCreated", // args: creator ? { creator } : {}, // onLogs, // }); // } `