本文整理匯總了TypeScript中nem-library.TransferTransaction.containsMosaics方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript TransferTransaction.containsMosaics方法的具體用法?TypeScript TransferTransaction.containsMosaics怎麽用?TypeScript TransferTransaction.containsMosaics使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類nem-library.TransferTransaction
的用法示例。
在下文中一共展示了TransferTransaction.containsMosaics方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: async
.map( async (transferTransaction: TransferTransaction) => {
try {
const rawMsg = (transferTransaction.message as PlainMessage).plain().replace(/ /g, '');
const hashId = rawMsg.substr(rawMsg.indexOf(':'), rawMsg.length);
/**
* Try finding a transaction in the database that may be a partial payment. Sometimes people will send
* multiple amounts of XEM to purchase a product
*/
let transaction: XemTransaction = await findOneThatContains<XemTransaction>(DB_PARTIAL_XEM_CHARGES, 'message', hashId, TRANSACTION_MESSAGE_LENGTH);
/**
* If it is not partial, we look up pending charges
*/
if (!transaction) {
transaction = await findOneThatContains<XemTransaction>(DB_PENDING_XEM_CHARGES, 'message', hashId, TRANSACTION_MESSAGE_LENGTH);
}
const transfer = await formatIncomingTransaction(transferTransaction);
/**
* Ignore transactions that are confirmed for the holding account - we only want to
* listen for customer transactions
*/
if (transfer.tokenRecipientAddress === tokenHoldingAccountAddress()
|| transfer.tokenRecipientAddress === nemConfig.multisigAddress) {
return;
}
/**
* If the transaction is not in the database someone sent us XEM without using
* our purchase process on the website
*/
if (!transaction) {
saveAnonymousTransaction(transfer);
} else {
/**
* We found the pending transaction in the database
*/
onTransactionConfirmed(transaction, transfer);
}
} catch (err) {
/**
* Save errors to the database so we can handle customer inquiries
*/
const amountPaid = transferTransaction.xem().amount;
const errorTrans: XemTransaction = {
_id: new ObjectID(),
tokenRecipientAddress: transferTransaction.signer.address.plain(),
tokenType: TokenType.NA,
totalPaid: amountPaid,
message: 'Contains mosaics: ' + transferTransaction.containsMosaics(),
createdAt: new Date(),
errMsg: err
};
await saveWithId<XemTransaction>(DB_PROBLEM_XEM_CHARGES, errorTrans);
}
})
示例2: xemToUsd
return new Promise<XemTransaction>(async (resolve, reject) => {
try {
let tokenType = TokenType.NA;
let paid = 0;
let usdPaid = 0;
/**
* This first part is a safeguard - it means someone sent a Mosaic token
* instead of XEM. Handle these scenario accordingly
*/
if (transaction.containsMosaics()) {
transaction.mosaics().map(mosaic => {
if (mosaic.mosaicId.namespaceId === nemConfig.mosaicNamespace
&& mosaic.mosaicId.name === nemConfig.mosaicForTransfer) {
tokenType = TokenType.CHE;
paid += mosaic.quantity;
}
});
} else {
/**
* Someone sent XEM
*/
tokenType = TokenType.XEM;
paid = transaction.xem().amount * 1e6;
usdPaid = await xemToUsd(paid);
}
const formmatedTransaction: XemTransaction = {
_id: new ObjectID(),
tokenRecipientAddress: transaction.signer.address.plain(),
tokenType: tokenType,
totalPaid: paid,
usdPaid: usdPaid,
createdAt: new Date()
};
if (transaction.message) {
formmatedTransaction.message = (transaction.message as PlainMessage).plain().replace(/ /g, '');
}
resolve(formmatedTransaction);
} catch (err) {
reject(err);
}
});