aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2020-05-18 17:53:08 -0700
committerAdam Soltys <[email protected]>2020-05-18 17:53:08 -0700
commitb8e8ed1e0c1bc181eaab91d5f299a512a25a4cd2 (patch)
treeae6b209fd2cba819d4b6a0d6956e2f2006559866
parentaf2d18b6508a3b50ee8272850707b5bf8c0e50a2 (diff)
downloadcoinos-server-b8e8ed1e0c1bc181eaab91d5f299a512a25a4cd2.tar.gz
coinos-server-b8e8ed1e0c1bc181eaab91d5f299a512a25a4cd2.zip
handle no token
-rw-r--r--routes/assets.js85
-rw-r--r--routes/liquid/receive.js32
2 files changed, 62 insertions, 55 deletions
diff --git a/routes/assets.js b/routes/assets.js
index 4a963b48..9b91f359 100644
--- a/routes/assets.js
+++ b/routes/assets.js
@@ -45,16 +45,17 @@ app.post("/assets", auth, async (req, res) => {
.join("");
const rawtx = await lq.createRawTransaction([], { data: "00" });
const funded = await lq.fundRawTransaction(rawtx, { feeRate: 0.000003 });
- const ria = await lq.rawIssueAsset(funded.hex, [
- {
- asset_amount,
- token_amount,
- asset_address,
- token_address,
- blind,
- contract_hash
- }
- ]);
+ const params = {
+ asset_amount,
+ asset_address,
+ token_address,
+ blind,
+ contract_hash
+ };
+
+ if (token_amount) params.token_amount = token_amount;
+
+ const ria = await lq.rawIssueAsset(funded.hex, [params]);
const { asset, hex, token } = ria[0];
const brt = await lq.blindRawTransaction(hex, true, [], false);
const srt = await lq.signRawTransactionWithWallet(brt);
@@ -112,43 +113,47 @@ app.post("/assets", auth, async (req, res) => {
{ transaction }
);
- account = await db.Account.create(
- {
- asset: token,
- user_id,
- ticker: `${ticker}REISSUANCETOKEN`,
- precision: 8,
- name: `${name} Reissuance Token`,
- balance: 0,
- pending: token_amount * SATS
- },
- { transaction }
- );
-
- const token_payment = await db.Payment.create(
- {
- account_id: account.id,
- user_id,
- hash: txid,
- amount: token_amount * SATS,
- received: true,
- confirmed: false,
- address: token_address,
- network: "LBTC"
- },
- { transaction }
- );
-
issuances[txid] = {
user_id,
asset,
asset_amount,
- token,
- token_amount,
asset_payment_id: asset_payment.id,
- token_payment_id: token_payment.id,
};
+ if (token_amount) {
+ account = await db.Account.create(
+ {
+ asset: token,
+ user_id,
+ ticker: `${ticker}REISSUANCETOKEN`,
+ precision: 8,
+ name: `${name} Reissuance Token`,
+ balance: 0,
+ pending: token_amount * SATS
+ },
+ { transaction }
+ );
+
+ const token_payment = await db.Payment.create(
+ {
+ account_id: account.id,
+ user_id,
+ hash: txid,
+ amount: token_amount * SATS,
+ received: true,
+ confirmed: false,
+ address: token_address,
+ network: "LBTC"
+ },
+ { transaction }
+ );
+
+ issuances[txid].token = token;
+ issuances[txid].token_amount = token_amount;
+ issuances[txid].token_payment_id = token_payment.id;
+ }
+
+
let user = await getUserById(user_id, transaction);
emit(user.username, "user", user);
});
diff --git a/routes/liquid/receive.js b/routes/liquid/receive.js
index 581d7ebc..47058c4d 100644
--- a/routes/liquid/receive.js
+++ b/routes/liquid/receive.js
@@ -175,23 +175,25 @@ zmqRawBlock.on("message", async (topic, message, sequence) => {
payment.confirmed = true;
await payment.save({ transaction });
- account = await db.Account.findOne({
- where: { user_id, asset: token },
- lock: transaction.LOCK.UPDATE,
- transaction
- });
- account.balance = token_amount * SATS;
- account.pending = 0;
- await account.save({ transaction });
+ if (token) {
+ account = await db.Account.findOne({
+ where: { user_id, asset: token },
+ lock: transaction.LOCK.UPDATE,
+ transaction
+ });
+ account.balance = token_amount * SATS;
+ account.pending = 0;
+ await account.save({ transaction });
- payment = await db.Payment.findOne({
- where: { id: token_payment_id },
- lock: transaction.LOCK.UPDATE,
- transaction
- });
+ payment = await db.Payment.findOne({
+ where: { id: token_payment_id },
+ lock: transaction.LOCK.UPDATE,
+ transaction
+ });
- payment.confirmed = true;
- await payment.save({ transaction });
+ payment.confirmed = true;
+ await payment.save({ transaction });
+ }
const user = await getUserById(user_id, transaction);
emit(user.username, "user", user);