@hiero-ledger/sdk
Version:
3 lines (2 loc) • 3.77 kB
JavaScript
import t,{QUERY_REGISTRY as e}from"../query/Query.js";import n from"../Status.js";import i from"./TransactionReceipt.js";import s from"./TransactionId.js";import r from"../PrecheckStatusError.js";import a from"../ReceiptStatusError.js";import{ExecutionState as c}from"../Executable.js";import*as o from"@hiero-ledger/proto";const{proto:u}=o;class l extends t{constructor(t={}){super(),this._transactionId=null,this._includeChildren=null,this._includeDuplicates=null,this._validateStatus=!0,null!=t.transactionId&&this.setTransactionId(t.transactionId),null!=t.includeChildren&&this.setIncludeChildren(t.includeChildren),null!=t.includeDuplicates&&this.setIncludeDuplicates(t.includeDuplicates),null!=t.validateStatus&&this.setValidateStatus(t.validateStatus)}static _fromProtobuf(t){const e=t.transactionGetReceipt;return new l({transactionId:e.transactionID?s._fromProtobuf(e.transactionID):void 0,includeDuplicates:null!=e.includeDuplicates?e.includeDuplicates:void 0,includeChildren:null!=e.includeChildReceipts?e.includeChildReceipts:void 0})}get transactionId(){return this._transactionId}setTransactionId(t){return this._transactionId="string"==typeof t?s.fromString(t):t.clone(),this}setIncludeDuplicates(t){return this._includeDuplicates=t,this}get includeDuplicates(){return null!=this._includeDuplicates&&this._includeDuplicates}setIncludeChildren(t){return this._includeChildren=t,this}get includeChildren(){return null!=this._includeChildren&&this._includeChildren}setValidateStatus(t){return this._validateStatus=t,this}get validateStatus(){return this._validateStatus}_isPaymentRequired(){return!1}_shouldRetry(t,e){const{nodeTransactionPrecheckCode:i}=this._mapResponseHeader(e);let s=n._fromCode(null!=i?i:u.ResponseCodeEnum.OK);switch(this._logger&&this._logger.debug(`[${this._getLogId()}] received node precheck status ${s.toString()}`),s){case n.Busy:case n.Unknown:case n.ReceiptNotFound:case n.PlatformNotActive:return[s,c.Retry];case n.Ok:break;default:return[s,c.Error]}const r=e.transactionGetReceipt.receipt.status;switch(s=n._fromCode(r),this._logger&&this._logger.debug(`[${this._getLogId()}] received receipt status ${s.toString()}`),s){case n.Busy:case n.Unknown:case n.ReceiptNotFound:return[s,c.Retry];case n.Success:case n.FeeScheduleFilePartUploaded:return[s,c.Finished];default:return[s,this._validateStatus?c.Error:c.Finished]}}_getTransactionId(){return null!=this._transactionId?this._transactionId:super._getTransactionId()}_mapStatusError(t,e,s){const{nodeTransactionPrecheckCode:c}=this._mapResponseHeader(e);let o=n._fromCode(null!=c?c:u.ResponseCodeEnum.OK);if(o!==n.Ok)return new r({nodeId:s,status:o,transactionId:this._getTransactionId(),contractFunctionResult:null});const l=e.transactionGetReceipt,d=l.receipt.status;if(o=n._fromCode(d),null==this._transactionId)throw new Error("Failed to construct `ReceiptStatusError` because `transactionId` is `null`");return new a({status:o,transactionId:this._transactionId,transactionReceipt:i._fromProtobuf(l)})}_validateChecksums(t){null!=this._transactionId&&null!=this._transactionId.accountId&&this._transactionId.accountId.validateChecksum(t)}_execute(t,e){return t.crypto.getTransactionReceipts(e)}_mapResponseHeader(t){return t.transactionGetReceipt.header}_mapResponse(t,e,n){const s=t.transactionGetReceipt;return Promise.resolve(i._fromProtobuf(s))}_onMakeRequest(t){return{transactionGetReceipt:{header:t,transactionID:null!=this._transactionId?this._transactionId._toProtobuf():null,includeDuplicates:this._includeDuplicates,includeChildReceipts:this._includeChildren}}}_getLogId(){return`TransactionReceiptQuery:${this._timestamp.toString()}`}}e.set("transactionGetReceipt",l._fromProtobuf);export{l as default};
//# sourceMappingURL=TransactionReceiptQuery.js.map