UNPKG

@hashgraph/sdk

Version:
3 lines (2 loc) 4.8 kB
import r,{TRANSACTION_REGISTRY as o}from"../transaction/Transaction.js";import t from"./AccountId.js";import e from"../contract/ContractId.js";import n from"../token/TokenId.js";import s from"../token/NftId.js";import a from"../Hbar.js";import l from"./HbarAllowance.js";import p from"./TokenAllowance.js";import i from"./TokenNftAllowance.js";import{convertAmountToLong as c}from"../util.js";class A extends r{constructor(r={}){super(),this._hbarApprovals=null!=r.hbarApprovals?r.hbarApprovals:[],this._tokenApprovals=null!=r.tokenApprovals?r.tokenApprovals:[],this._nftApprovals=null!=r.nftApprovals?r.nftApprovals:[]}static _fromProtobuf(o,t,e,n,s){const a=s[0].cryptoApproveAllowance;return r._fromProtobufTransactions(new A({hbarApprovals:(null!=a.cryptoAllowances?a.cryptoAllowances:[]).map(r=>l._fromProtobuf(r)),tokenApprovals:(null!=a.tokenAllowances?a.tokenAllowances:[]).map(r=>p._fromProtobuf(r)),nftApprovals:(null!=a.nftAllowances?a.nftAllowances:[]).map(r=>i._fromProtobuf(r))}),o,t,e,n,s)}get hbarApprovals(){return this._hbarApprovals}approveHbarAllowance(r,o,n){return this._requireNotFrozen(),this._hbarApprovals.push(new l({spenderAccountId:"string"==typeof o?t.fromString(o):o instanceof e?t.fromEvmAddress(o.shard,o.realm,o.toEvmAddress()):o,ownerAccountId:"string"==typeof r?t.fromString(r):r instanceof e?t.fromEvmAddress(r.shard,r.realm,r.toEvmAddress()):r,amount:n instanceof a?n:new a(n)})),this}addHbarAllowance(r,o){return this._requireNotFrozen(),this._hbarApprovals.push(new l({spenderAccountId:"string"==typeof r?t.fromString(r):r,amount:o instanceof a?o:new a(o),ownerAccountId:null})),this}get tokenApprovals(){return this._tokenApprovals}approveTokenAllowance(r,o,s,a){this._requireNotFrozen();const l=c(a);return this._tokenApprovals.push(new p({tokenId:"string"==typeof r?n.fromString(r):r,spenderAccountId:"string"==typeof s?t.fromString(s):s instanceof e?t.fromEvmAddress(s.shard,s.realm,s.toEvmAddress()):s,ownerAccountId:"string"==typeof o?t.fromString(o):o instanceof e?t.fromEvmAddress(o.shard,o.realm,o.toEvmAddress()):o,amount:l})),this}addTokenAllowance(r,o,e){this._requireNotFrozen();const s=c(e);return this._tokenApprovals.push(new p({tokenId:"string"==typeof r?n.fromString(r):r,spenderAccountId:"string"==typeof o?t.fromString(o):o,amount:s,ownerAccountId:null})),this}addTokenNftAllowance(r,o){return this._approveTokenNftAllowance(r,null,o,null)}get tokenNftApprovals(){return this._nftApprovals}_approveTokenNftAllowance(r,o,n,a){this._requireNotFrozen();const l="string"==typeof r?s.fromString(r):r,p="string"==typeof n?t.fromString(n):n instanceof e?t.fromEvmAddress(n.shard,n.realm,n.toEvmAddress()):n;let c=!1;for(const r of this._nftApprovals)if(0===r.tokenId.compare(l.tokenId)&&null!=r.spenderAccountId&&0===r.spenderAccountId.compare(p)){null!=r.serialNumbers&&r.serialNumbers.push(l.serial),c=!0;break}return c||this._nftApprovals.push(new i({tokenId:l.tokenId,spenderAccountId:p,ownerAccountId:"string"==typeof o?t.fromString(o):o instanceof e?t.fromEvmAddress(o.shard,o.realm,o.toEvmAddress()):o,serialNumbers:[l.serial],allSerials:!1,delegatingSpender:"string"==typeof a?t.fromString(a):a})),this}approveTokenNftAllowance(r,o,t){return this._approveTokenNftAllowance(r,o,t,null)}approveTokenNftAllowanceWithDelegatingSpender(r,o,t,e){return this._approveTokenNftAllowance(r,o,t,e)}_approveAllTokenNftAllowance(r,o,s,a){return this._requireNotFrozen(),this._nftApprovals.push(new i({tokenId:"string"==typeof r?n.fromString(r):r,spenderAccountId:"string"==typeof s?t.fromString(s):s instanceof e?t.fromEvmAddress(s.shard,s.realm,s.toEvmAddress()):s,ownerAccountId:"string"==typeof o?t.fromString(o):o instanceof e?t.fromEvmAddress(o.shard,o.realm,o.toEvmAddress()):o,serialNumbers:null,allSerials:a,delegatingSpender:null})),this}addAllTokenNftAllowance(r,o,t){return this._approveAllTokenNftAllowance(r,o,t,!0)}approveTokenNftAllowanceAllSerials(r,o,t){return this._approveAllTokenNftAllowance(r,o,t,!0)}deleteTokenNftAllowanceAllSerials(r,o,t){return this._approveAllTokenNftAllowance(r,o,t,!1)}_validateChecksums(r){this._hbarApprovals.map(o=>o._validateChecksums(r)),this._tokenApprovals.map(o=>o._validateChecksums(r)),this._nftApprovals.map(o=>o._validateChecksums(r))}_execute(r,o){return r.crypto.approveAllowances(o)}_getTransactionDataCase(){return"cryptoApproveAllowance"}_makeTransactionData(){return{cryptoAllowances:this._hbarApprovals.map(r=>r._toProtobuf()),tokenAllowances:this._tokenApprovals.map(r=>r._toProtobuf()),nftAllowances:this._nftApprovals.map(r=>r._toProtobuf())}}_getLogId(){return`AccountAllowanceApproveTransaction:${this._transactionIds.current.validStart.toString()}`}}o.set("cryptoApproveAllowance",A._fromProtobuf);export{A as default}; //# sourceMappingURL=AccountAllowanceApproveTransaction.js.map