@ecency/wallets 1.4.24 → 1.4.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -662,6 +662,30 @@ function rewardSpk(data, sstats) {
662
662
  }
663
663
  }
664
664
 
665
+ // src/internal/hive-auth.ts
666
+ var broadcastHandler = null;
667
+ function registerHiveAuthBroadcastHandler(handler) {
668
+ broadcastHandler = handler;
669
+ }
670
+ function getHiveAuthBroadcastHandler() {
671
+ return broadcastHandler;
672
+ }
673
+
674
+ // src/modules/assets/utils/hive-auth.ts
675
+ function registerWalletHiveAuthBroadcast(handler) {
676
+ registerHiveAuthBroadcastHandler(handler);
677
+ }
678
+ function broadcastWithWalletHiveAuth(username, operations, keyType) {
679
+ const handler = getHiveAuthBroadcastHandler();
680
+ if (!handler) {
681
+ throw new Error("HiveAuth broadcast handler is not registered");
682
+ }
683
+ return handler(username, operations, keyType);
684
+ }
685
+ function hasWalletHiveAuthBroadcast() {
686
+ return typeof getHiveAuthBroadcastHandler() === "function";
687
+ }
688
+
665
689
  // src/modules/assets/hive/queries/get-hive-asset-general-info-query-options.ts
666
690
  function getHiveAssetGeneralInfoQueryOptions(username) {
667
691
  return reactQuery.queryOptions({
@@ -1220,13 +1244,25 @@ function getHivePowerDelegatingsQueryOptions(username) {
1220
1244
  async function transferHive(payload) {
1221
1245
  const parsedAsset = parseAsset(payload.amount);
1222
1246
  const token = parsedAsset.symbol;
1247
+ const precision = token === "VESTS" /* VESTS */ ? 6 : 3;
1248
+ const formattedAmount = parsedAsset.amount.toFixed(precision);
1249
+ const amountWithSymbol = `${formattedAmount} ${token}`;
1250
+ const operation = [
1251
+ "transfer",
1252
+ {
1253
+ from: payload.from,
1254
+ to: payload.to,
1255
+ amount: amountWithSymbol,
1256
+ memo: payload.memo
1257
+ }
1258
+ ];
1223
1259
  if (payload.type === "key" && "key" in payload) {
1224
1260
  const { key, type, ...params } = payload;
1225
1261
  return sdk.CONFIG.hiveClient.broadcast.transfer(
1226
1262
  {
1227
1263
  from: params.from,
1228
1264
  to: params.to,
1229
- amount: params.amount,
1265
+ amount: amountWithSymbol,
1230
1266
  memo: params.memo
1231
1267
  },
1232
1268
  key
@@ -1236,7 +1272,7 @@ async function transferHive(payload) {
1236
1272
  (resolve, reject) => window.hive_keychain?.requestTransfer(
1237
1273
  payload.from,
1238
1274
  payload.to,
1239
- payload.amount,
1275
+ formattedAmount,
1240
1276
  payload.memo,
1241
1277
  token,
1242
1278
  (resp) => {
@@ -1249,17 +1285,11 @@ async function transferHive(payload) {
1249
1285
  null
1250
1286
  )
1251
1287
  );
1288
+ } else if (payload.type === "hiveauth") {
1289
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
1252
1290
  } else {
1253
1291
  return hs__default.default.sendOperation(
1254
- [
1255
- "transfer",
1256
- {
1257
- from: payload.from,
1258
- to: payload.to,
1259
- amount: payload.amount,
1260
- memo: payload.memo
1261
- }
1262
- ],
1292
+ operation,
1263
1293
  { callback: `https://ecency.com/@${payload.from}/wallet` },
1264
1294
  () => {
1265
1295
  }
@@ -1267,6 +1297,13 @@ async function transferHive(payload) {
1267
1297
  }
1268
1298
  }
1269
1299
  async function transferToSavingsHive(payload) {
1300
+ const operationPayload = {
1301
+ from: payload.from,
1302
+ to: payload.to,
1303
+ amount: payload.amount,
1304
+ memo: payload.memo
1305
+ };
1306
+ const operation = ["transfer_to_savings", operationPayload];
1270
1307
  if (payload.type === "key" && "key" in payload) {
1271
1308
  const { key, type, ...params } = payload;
1272
1309
  return sdk.CONFIG.hiveClient.broadcast.sendOperations(
@@ -1274,18 +1311,12 @@ async function transferToSavingsHive(payload) {
1274
1311
  key
1275
1312
  );
1276
1313
  } else if (payload.type === "keychain") {
1277
- return sdk.Keychain.broadcast(
1278
- payload.from,
1279
- [["transfer_to_savings", payload]],
1280
- "Active"
1281
- );
1314
+ return sdk.Keychain.broadcast(payload.from, [operation], "Active");
1315
+ } else if (payload.type === "hiveauth") {
1316
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
1282
1317
  } else {
1283
- return hs__default.default.sendOperation(
1284
- ["transfer_to_savings", payload],
1285
- { callback: `https://ecency.com/@${payload.from}/wallet` },
1286
- () => {
1287
- }
1288
- );
1318
+ return hs__default.default.sendOperation(operation, { callback: `https://ecency.com/@${payload.from}/wallet` }, () => {
1319
+ });
1289
1320
  }
1290
1321
  }
1291
1322
  async function transferFromSavingsHive(payload) {
@@ -1297,28 +1328,31 @@ async function transferFromSavingsHive(payload) {
1297
1328
  memo: payload.memo,
1298
1329
  request_id: requestId
1299
1330
  };
1331
+ const operation = ["transfer_from_savings", operationPayload];
1300
1332
  if (payload.type === "key" && "key" in payload) {
1301
1333
  const { key } = payload;
1302
1334
  return sdk.CONFIG.hiveClient.broadcast.sendOperations(
1303
- [["transfer_from_savings", operationPayload]],
1335
+ [operation],
1304
1336
  key
1305
1337
  );
1306
1338
  }
1307
1339
  if (payload.type === "keychain") {
1308
- return sdk.Keychain.broadcast(
1309
- payload.from,
1310
- [["transfer_from_savings", operationPayload]],
1311
- "Active"
1312
- );
1340
+ return sdk.Keychain.broadcast(payload.from, [operation], "Active");
1313
1341
  }
1314
- return hs__default.default.sendOperation(
1315
- ["transfer_from_savings", operationPayload],
1316
- { callback: `https://ecency.com/@${payload.from}/wallet` },
1317
- () => {
1318
- }
1319
- );
1342
+ if (payload.type === "hiveauth") {
1343
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
1344
+ }
1345
+ return hs__default.default.sendOperation(operation, { callback: `https://ecency.com/@${payload.from}/wallet` }, () => {
1346
+ });
1320
1347
  }
1321
1348
  async function powerUpHive(payload) {
1349
+ const operationPayload = {
1350
+ from: payload.from,
1351
+ to: payload.to,
1352
+ amount: payload.amount,
1353
+ memo: payload.memo
1354
+ };
1355
+ const operation = ["transfer_to_vesting", operationPayload];
1322
1356
  if (payload.type === "key" && "key" in payload) {
1323
1357
  const { key, type, ...params } = payload;
1324
1358
  return sdk.CONFIG.hiveClient.broadcast.sendOperations(
@@ -1326,18 +1360,12 @@ async function powerUpHive(payload) {
1326
1360
  key
1327
1361
  );
1328
1362
  } else if (payload.type === "keychain") {
1329
- return sdk.Keychain.broadcast(
1330
- payload.from,
1331
- [["transfer_to_vesting", payload]],
1332
- "Active"
1333
- );
1363
+ return sdk.Keychain.broadcast(payload.from, [operation], "Active");
1364
+ } else if (payload.type === "hiveauth") {
1365
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
1334
1366
  } else {
1335
- return hs__default.default.sendOperation(
1336
- ["transfer_to_vesting", payload],
1337
- { callback: `https://ecency.com/@${payload.from}/wallet` },
1338
- () => {
1339
- }
1340
- );
1367
+ return hs__default.default.sendOperation(operation, { callback: `https://ecency.com/@${payload.from}/wallet` }, () => {
1368
+ });
1341
1369
  }
1342
1370
  }
1343
1371
  async function delegateHive(payload) {
@@ -1346,25 +1374,20 @@ async function delegateHive(payload) {
1346
1374
  delegatee: payload.to,
1347
1375
  vesting_shares: payload.amount
1348
1376
  };
1377
+ const operation = ["delegate_vesting_shares", operationPayload];
1349
1378
  if (payload.type === "key" && "key" in payload) {
1350
1379
  const { key } = payload;
1351
1380
  return sdk.CONFIG.hiveClient.broadcast.sendOperations(
1352
- [["delegate_vesting_shares", operationPayload]],
1381
+ [operation],
1353
1382
  key
1354
1383
  );
1355
1384
  } else if (payload.type === "keychain") {
1356
- return sdk.Keychain.broadcast(
1357
- payload.from,
1358
- [["delegate_vesting_shares", operationPayload]],
1359
- "Active"
1360
- );
1385
+ return sdk.Keychain.broadcast(payload.from, [operation], "Active");
1386
+ } else if (payload.type === "hiveauth") {
1387
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
1361
1388
  } else {
1362
- return hs__default.default.sendOperation(
1363
- ["delegate_vesting_shares", operationPayload],
1364
- { callback: `https://ecency.com/@${payload.from}/wallet` },
1365
- () => {
1366
- }
1367
- );
1389
+ return hs__default.default.sendOperation(operation, { callback: `https://ecency.com/@${payload.from}/wallet` }, () => {
1390
+ });
1368
1391
  }
1369
1392
  }
1370
1393
  async function powerDownHive(payload) {
@@ -1372,28 +1395,30 @@ async function powerDownHive(payload) {
1372
1395
  account: payload.from,
1373
1396
  vesting_shares: payload.amount
1374
1397
  };
1398
+ const operation = ["withdraw_vesting", operationPayload];
1375
1399
  if (payload.type === "key" && "key" in payload) {
1376
1400
  const { key } = payload;
1377
1401
  return sdk.CONFIG.hiveClient.broadcast.sendOperations(
1378
- [["withdraw_vesting", operationPayload]],
1402
+ [operation],
1379
1403
  key
1380
1404
  );
1381
1405
  } else if (payload.type === "keychain") {
1382
- return sdk.Keychain.broadcast(
1383
- payload.from,
1384
- [["withdraw_vesting", operationPayload]],
1385
- "Active"
1386
- );
1406
+ return sdk.Keychain.broadcast(payload.from, [operation], "Active");
1407
+ } else if (payload.type === "hiveauth") {
1408
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
1387
1409
  } else {
1388
- return hs__default.default.sendOperation(
1389
- ["withdraw_vesting", operationPayload],
1390
- { callback: `https://ecency.com/@${payload.from}/wallet` },
1391
- () => {
1392
- }
1393
- );
1410
+ return hs__default.default.sendOperation(operation, { callback: `https://ecency.com/@${payload.from}/wallet` }, () => {
1411
+ });
1394
1412
  }
1395
1413
  }
1396
1414
  async function withdrawVestingRouteHive(payload) {
1415
+ const baseParams = {
1416
+ from_account: payload.from_account,
1417
+ to_account: payload.to_account,
1418
+ percent: payload.percent,
1419
+ auto_vest: payload.auto_vest
1420
+ };
1421
+ const operation = ["set_withdraw_vesting_route", baseParams];
1397
1422
  if (payload.type === "key" && "key" in payload) {
1398
1423
  const { key, type: type2, ...params2 } = payload;
1399
1424
  return sdk.CONFIG.hiveClient.broadcast.sendOperations(
@@ -1403,19 +1428,14 @@ async function withdrawVestingRouteHive(payload) {
1403
1428
  }
1404
1429
  if (payload.type === "keychain") {
1405
1430
  const { type: type2, ...params2 } = payload;
1406
- return sdk.Keychain.broadcast(
1407
- params2.from_account,
1408
- [["set_withdraw_vesting_route", params2]],
1409
- "Active"
1410
- );
1431
+ return sdk.Keychain.broadcast(params2.from_account, [operation], "Active");
1432
+ }
1433
+ if (payload.type === "hiveauth") {
1434
+ return broadcastWithWalletHiveAuth(payload.from_account, [operation], "active");
1411
1435
  }
1412
1436
  const { type, ...params } = payload;
1413
- return hs__default.default.sendOperation(
1414
- ["set_withdraw_vesting_route", params],
1415
- { callback: `https://ecency.com/@${params.from_account}/wallet` },
1416
- () => {
1417
- }
1418
- );
1437
+ return hs__default.default.sendOperation(operation, { callback: `https://ecency.com/@${params.from_account}/wallet` }, () => {
1438
+ });
1419
1439
  }
1420
1440
  function useClaimRewards(username, onSuccess) {
1421
1441
  const { data } = reactQuery.useQuery(sdk.getAccountFullQueryOptions(username));
@@ -1469,35 +1489,22 @@ async function claimInterestHive(payload) {
1469
1489
  from: payload.from,
1470
1490
  request_id: requestId
1471
1491
  };
1492
+ const operations = [
1493
+ ["transfer_from_savings", baseOperation],
1494
+ ["cancel_transfer_from_savings", cancelOperation]
1495
+ ];
1472
1496
  if (payload.type === "key" && "key" in payload) {
1473
1497
  const { key } = payload;
1474
- return sdk.CONFIG.hiveClient.broadcast.sendOperations(
1475
- [
1476
- ["transfer_from_savings", baseOperation],
1477
- ["cancel_transfer_from_savings", cancelOperation]
1478
- ],
1479
- key
1480
- );
1498
+ return sdk.CONFIG.hiveClient.broadcast.sendOperations(operations, key);
1481
1499
  }
1482
1500
  if (payload.type === "keychain") {
1483
- return sdk.Keychain.broadcast(
1484
- payload.from,
1485
- [
1486
- ["transfer_from_savings", baseOperation],
1487
- ["cancel_transfer_from_savings", cancelOperation]
1488
- ],
1489
- "Active"
1490
- );
1501
+ return sdk.Keychain.broadcast(payload.from, operations, "Active");
1491
1502
  }
1492
- return hs__default.default.sendOperations(
1493
- [
1494
- ["transfer_from_savings", baseOperation],
1495
- ["cancel_transfer_from_savings", cancelOperation]
1496
- ],
1497
- { callback: `https://ecency.com/@${payload.from}/wallet` },
1498
- () => {
1499
- }
1500
- );
1503
+ if (payload.type === "hiveauth") {
1504
+ return broadcastWithWalletHiveAuth(payload.from, operations, "active");
1505
+ }
1506
+ return hs__default.default.sendOperations(operations, { callback: `https://ecency.com/@${payload.from}/wallet` }, () => {
1507
+ });
1501
1508
  }
1502
1509
 
1503
1510
  // src/modules/assets/types/asset-operation.ts
@@ -1533,6 +1540,15 @@ async function transferSpk(payload) {
1533
1540
  required_auths: [payload.from],
1534
1541
  required_posting_auths: []
1535
1542
  };
1543
+ const operation = [
1544
+ "custom_json",
1545
+ {
1546
+ id: op.id,
1547
+ required_auths: [payload.from],
1548
+ required_posting_auths: [],
1549
+ json
1550
+ }
1551
+ ];
1536
1552
  if (payload.type === "key" && "key" in payload) {
1537
1553
  const { key } = payload;
1538
1554
  return sdk.CONFIG.hiveClient.broadcast.json(op, key);
@@ -1544,6 +1560,8 @@ async function transferSpk(payload) {
1544
1560
  json,
1545
1561
  payload.to
1546
1562
  );
1563
+ } else if (payload.type === "hiveauth") {
1564
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
1547
1565
  } else {
1548
1566
  const { amount } = parseAsset(payload.amount);
1549
1567
  return hs__default.default.sign(
@@ -1571,6 +1589,15 @@ var lockLarynx = async (payload) => {
1571
1589
  required_auths: [payload.from],
1572
1590
  required_posting_auths: []
1573
1591
  };
1592
+ const operation = [
1593
+ "custom_json",
1594
+ {
1595
+ id: op.id,
1596
+ required_auths: [payload.from],
1597
+ required_posting_auths: [],
1598
+ json
1599
+ }
1600
+ ];
1574
1601
  if (payload.type === "key" && "key" in payload) {
1575
1602
  const { key } = payload;
1576
1603
  return sdk.CONFIG.hiveClient.broadcast.json(op, key);
@@ -1582,6 +1609,8 @@ var lockLarynx = async (payload) => {
1582
1609
  json,
1583
1610
  payload.from
1584
1611
  );
1612
+ } else if (payload.type === "hiveauth") {
1613
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
1585
1614
  } else {
1586
1615
  const { amount } = parseAsset(payload.amount);
1587
1616
  return hs__default.default.sign(
@@ -1605,6 +1634,15 @@ async function powerUpLarynx(payload) {
1605
1634
  required_auths: [payload.from],
1606
1635
  required_posting_auths: []
1607
1636
  };
1637
+ const operation = [
1638
+ "custom_json",
1639
+ {
1640
+ id: `spkcc_power_${payload.mode}`,
1641
+ required_auths: [payload.from],
1642
+ required_posting_auths: [],
1643
+ json
1644
+ }
1645
+ ];
1608
1646
  if (payload.type === "key" && "key" in payload) {
1609
1647
  const { key } = payload;
1610
1648
  return sdk.CONFIG.hiveClient.broadcast.json(op, key);
@@ -1616,6 +1654,8 @@ async function powerUpLarynx(payload) {
1616
1654
  json,
1617
1655
  ""
1618
1656
  );
1657
+ } else if (payload.type === "hiveauth") {
1658
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
1619
1659
  } else {
1620
1660
  const { amount } = parseAsset(payload.amount);
1621
1661
  return hs__default.default.sign(
@@ -1643,6 +1683,15 @@ async function transferLarynx(payload) {
1643
1683
  required_auths: [payload.from],
1644
1684
  required_posting_auths: []
1645
1685
  };
1686
+ const operation = [
1687
+ "custom_json",
1688
+ {
1689
+ id: "spkcc_send",
1690
+ required_auths: [payload.from],
1691
+ required_posting_auths: [],
1692
+ json
1693
+ }
1694
+ ];
1646
1695
  if (payload.type === "key" && "key" in payload) {
1647
1696
  const { key } = payload;
1648
1697
  return sdk.CONFIG.hiveClient.broadcast.json(op, key);
@@ -1654,6 +1703,8 @@ async function transferLarynx(payload) {
1654
1703
  json,
1655
1704
  payload.to
1656
1705
  );
1706
+ } else if (payload.type === "hiveauth") {
1707
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
1657
1708
  } else {
1658
1709
  const { amount } = parseAsset(payload.amount);
1659
1710
  return hs__default.default.sign(
@@ -2054,6 +2105,23 @@ function getHiveEngineTokensMetricsQueryOptions(symbol, interval = "daily") {
2054
2105
  async function delegateEngineToken(payload) {
2055
2106
  const parsedAsset = parseAsset(payload.amount);
2056
2107
  const quantity = parsedAsset.amount.toString();
2108
+ const operation = [
2109
+ "custom_json",
2110
+ {
2111
+ id: "ssc-mainnet-hive",
2112
+ required_auths: [payload.from],
2113
+ required_posting_auths: [],
2114
+ json: JSON.stringify({
2115
+ contractName: "tokens",
2116
+ contractAction: "delegate",
2117
+ contractPayload: {
2118
+ symbol: payload.asset,
2119
+ to: payload.to,
2120
+ quantity
2121
+ }
2122
+ })
2123
+ }
2124
+ ];
2057
2125
  if (payload.type === "key" && "key" in payload) {
2058
2126
  const { key, type, ...params } = payload;
2059
2127
  const op = {
@@ -2077,15 +2145,7 @@ async function delegateEngineToken(payload) {
2077
2145
  payload.from,
2078
2146
  "ssc-mainnet-hive",
2079
2147
  "Active",
2080
- JSON.stringify({
2081
- contractName: "tokens",
2082
- contractAction: "delegate",
2083
- contractPayload: {
2084
- symbol: payload.asset,
2085
- to: payload.to,
2086
- quantity
2087
- }
2088
- }),
2148
+ operation[1].json,
2089
2149
  "Token Delegation",
2090
2150
  (resp) => {
2091
2151
  if (!resp.success) {
@@ -2095,25 +2155,11 @@ async function delegateEngineToken(payload) {
2095
2155
  }
2096
2156
  )
2097
2157
  );
2158
+ } else if (payload.type === "hiveauth") {
2159
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
2098
2160
  } else {
2099
2161
  return hs__default.default.sendOperation(
2100
- [
2101
- "custom_json",
2102
- {
2103
- id: "ssc-mainnet-hive",
2104
- required_auths: [payload.from],
2105
- required_posting_auths: [],
2106
- json: JSON.stringify({
2107
- contractName: "tokens",
2108
- contractAction: "delegate",
2109
- contractPayload: {
2110
- symbol: payload.asset,
2111
- to: payload.to,
2112
- quantity
2113
- }
2114
- })
2115
- }
2116
- ],
2162
+ operation,
2117
2163
  { callback: `https://ecency.com/@${payload.from}/wallet` },
2118
2164
  () => {
2119
2165
  }
@@ -2123,6 +2169,23 @@ async function delegateEngineToken(payload) {
2123
2169
  async function undelegateEngineToken(payload) {
2124
2170
  const parsedAsset = parseAsset(payload.amount);
2125
2171
  const quantity = parsedAsset.amount.toString();
2172
+ const operation = [
2173
+ "custom_json",
2174
+ {
2175
+ id: "ssc-mainnet-hive",
2176
+ required_auths: [payload.from],
2177
+ required_posting_auths: [],
2178
+ json: JSON.stringify({
2179
+ contractName: "tokens",
2180
+ contractAction: "undelegate",
2181
+ contractPayload: {
2182
+ symbol: payload.asset,
2183
+ from: payload.to,
2184
+ quantity
2185
+ }
2186
+ })
2187
+ }
2188
+ ];
2126
2189
  if (payload.type === "key" && "key" in payload) {
2127
2190
  const { key, type, ...params } = payload;
2128
2191
  const op = {
@@ -2146,15 +2209,7 @@ async function undelegateEngineToken(payload) {
2146
2209
  payload.from,
2147
2210
  "ssc-mainnet-hive",
2148
2211
  "Active",
2149
- JSON.stringify({
2150
- contractName: "tokens",
2151
- contractAction: "undelegate",
2152
- contractPayload: {
2153
- symbol: payload.asset,
2154
- from: payload.to,
2155
- quantity
2156
- }
2157
- }),
2212
+ operation[1].json,
2158
2213
  "Token Undelegation",
2159
2214
  (resp) => {
2160
2215
  if (!resp.success) {
@@ -2164,25 +2219,11 @@ async function undelegateEngineToken(payload) {
2164
2219
  }
2165
2220
  )
2166
2221
  );
2222
+ } else if (payload.type === "hiveauth") {
2223
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
2167
2224
  } else {
2168
2225
  return hs__default.default.sendOperation(
2169
- [
2170
- "custom_json",
2171
- {
2172
- id: "ssc-mainnet-hive",
2173
- required_auths: [payload.from],
2174
- required_posting_auths: [],
2175
- json: JSON.stringify({
2176
- contractName: "tokens",
2177
- contractAction: "undelegate",
2178
- contractPayload: {
2179
- symbol: payload.asset,
2180
- from: payload.to,
2181
- quantity
2182
- }
2183
- })
2184
- }
2185
- ],
2226
+ operation,
2186
2227
  { callback: `https://ecency.com/@${payload.from}/wallet` },
2187
2228
  () => {
2188
2229
  }
@@ -2192,6 +2233,23 @@ async function undelegateEngineToken(payload) {
2192
2233
  async function stakeEngineToken(payload) {
2193
2234
  const parsedAsset = parseAsset(payload.amount);
2194
2235
  const quantity = parsedAsset.amount.toString();
2236
+ const operation = [
2237
+ "custom_json",
2238
+ {
2239
+ id: "ssc-mainnet-hive",
2240
+ required_auths: [payload.from],
2241
+ required_posting_auths: [],
2242
+ json: JSON.stringify({
2243
+ contractName: "tokens",
2244
+ contractAction: "stake",
2245
+ contractPayload: {
2246
+ symbol: payload.asset,
2247
+ to: payload.to,
2248
+ quantity
2249
+ }
2250
+ })
2251
+ }
2252
+ ];
2195
2253
  if (payload.type === "key" && "key" in payload) {
2196
2254
  const { key, type, ...params } = payload;
2197
2255
  const op = {
@@ -2215,15 +2273,7 @@ async function stakeEngineToken(payload) {
2215
2273
  payload.from,
2216
2274
  "ssc-mainnet-hive",
2217
2275
  "Active",
2218
- JSON.stringify({
2219
- contractName: "tokens",
2220
- contractAction: "stake",
2221
- contractPayload: {
2222
- symbol: payload.asset,
2223
- to: payload.to,
2224
- quantity
2225
- }
2226
- }),
2276
+ operation[1].json,
2227
2277
  "Token Staking",
2228
2278
  (resp) => {
2229
2279
  if (!resp.success) {
@@ -2233,25 +2283,11 @@ async function stakeEngineToken(payload) {
2233
2283
  }
2234
2284
  )
2235
2285
  );
2286
+ } else if (payload.type === "hiveauth") {
2287
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
2236
2288
  } else {
2237
2289
  return hs__default.default.sendOperation(
2238
- [
2239
- "custom_json",
2240
- {
2241
- id: "ssc-mainnet-hive",
2242
- required_auths: [payload.from],
2243
- required_posting_auths: [],
2244
- json: JSON.stringify({
2245
- contractName: "tokens",
2246
- contractAction: "stake",
2247
- contractPayload: {
2248
- symbol: payload.asset,
2249
- to: payload.to,
2250
- quantity
2251
- }
2252
- })
2253
- }
2254
- ],
2290
+ operation,
2255
2291
  { callback: `https://ecency.com/@${payload.from}/wallet` },
2256
2292
  () => {
2257
2293
  }
@@ -2261,6 +2297,23 @@ async function stakeEngineToken(payload) {
2261
2297
  async function unstakeEngineToken(payload) {
2262
2298
  const parsedAsset = parseAsset(payload.amount);
2263
2299
  const quantity = parsedAsset.amount.toString();
2300
+ const operation = [
2301
+ "custom_json",
2302
+ {
2303
+ id: "ssc-mainnet-hive",
2304
+ required_auths: [payload.from],
2305
+ required_posting_auths: [],
2306
+ json: JSON.stringify({
2307
+ contractName: "tokens",
2308
+ contractAction: "unstake",
2309
+ contractPayload: {
2310
+ symbol: payload.asset,
2311
+ to: payload.to,
2312
+ quantity
2313
+ }
2314
+ })
2315
+ }
2316
+ ];
2264
2317
  if (payload.type === "key" && "key" in payload) {
2265
2318
  const { key, type, ...params } = payload;
2266
2319
  const op = {
@@ -2284,15 +2337,7 @@ async function unstakeEngineToken(payload) {
2284
2337
  payload.from,
2285
2338
  "ssc-mainnet-hive",
2286
2339
  "Active",
2287
- JSON.stringify({
2288
- contractName: "tokens",
2289
- contractAction: "unstake",
2290
- contractPayload: {
2291
- symbol: payload.asset,
2292
- to: payload.to,
2293
- quantity
2294
- }
2295
- }),
2340
+ operation[1].json,
2296
2341
  "Token Unstaking",
2297
2342
  (resp) => {
2298
2343
  if (!resp.success) {
@@ -2302,25 +2347,11 @@ async function unstakeEngineToken(payload) {
2302
2347
  }
2303
2348
  )
2304
2349
  );
2350
+ } else if (payload.type === "hiveauth") {
2351
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
2305
2352
  } else {
2306
2353
  return hs__default.default.sendOperation(
2307
- [
2308
- "custom_json",
2309
- {
2310
- id: "ssc-mainnet-hive",
2311
- required_auths: [payload.from],
2312
- required_posting_auths: [],
2313
- json: JSON.stringify({
2314
- contractName: "tokens",
2315
- contractAction: "unstake",
2316
- contractPayload: {
2317
- symbol: payload.asset,
2318
- to: payload.to,
2319
- quantity
2320
- }
2321
- })
2322
- }
2323
- ],
2354
+ operation,
2324
2355
  { callback: `https://ecency.com/@${payload.from}/wallet` },
2325
2356
  () => {
2326
2357
  }
@@ -2330,6 +2361,24 @@ async function unstakeEngineToken(payload) {
2330
2361
  async function transferEngineToken(payload) {
2331
2362
  const parsedAsset = parseAsset(payload.amount);
2332
2363
  const quantity = parsedAsset.amount.toString();
2364
+ const operation = [
2365
+ "custom_json",
2366
+ {
2367
+ id: "ssc-mainnet-hive",
2368
+ required_auths: [payload.from],
2369
+ required_posting_auths: [],
2370
+ json: JSON.stringify({
2371
+ contractName: "tokens",
2372
+ contractAction: "transfer",
2373
+ contractPayload: {
2374
+ symbol: payload.asset,
2375
+ to: payload.to,
2376
+ quantity,
2377
+ memo: payload.memo
2378
+ }
2379
+ })
2380
+ }
2381
+ ];
2333
2382
  if (payload.type === "key" && "key" in payload) {
2334
2383
  const { key, type, ...params } = payload;
2335
2384
  const op = {
@@ -2354,16 +2403,7 @@ async function transferEngineToken(payload) {
2354
2403
  payload.from,
2355
2404
  "ssc-mainnet-hive",
2356
2405
  "Active",
2357
- JSON.stringify({
2358
- contractName: "tokens",
2359
- contractAction: "transfer",
2360
- contractPayload: {
2361
- symbol: payload.asset,
2362
- to: payload.to,
2363
- quantity,
2364
- memo: payload.memo
2365
- }
2366
- }),
2406
+ operation[1].json,
2367
2407
  "Token Transfer",
2368
2408
  (resp) => {
2369
2409
  if (!resp.success) {
@@ -2373,26 +2413,11 @@ async function transferEngineToken(payload) {
2373
2413
  }
2374
2414
  )
2375
2415
  );
2416
+ } else if (payload.type === "hiveauth") {
2417
+ return broadcastWithWalletHiveAuth(payload.from, [operation], "active");
2376
2418
  } else {
2377
2419
  return hs__default.default.sendOperation(
2378
- [
2379
- "custom_json",
2380
- {
2381
- id: "ssc-mainnet-hive",
2382
- required_auths: [payload.from],
2383
- required_posting_auths: [],
2384
- json: JSON.stringify({
2385
- contractName: "tokens",
2386
- contractAction: "transfer",
2387
- contractPayload: {
2388
- symbol: payload.asset,
2389
- to: payload.to,
2390
- quantity,
2391
- memo: payload.memo
2392
- }
2393
- })
2394
- }
2395
- ],
2420
+ operation,
2396
2421
  { callback: `https://ecency.com/@${payload.from}/wallet` },
2397
2422
  () => {
2398
2423
  }
@@ -2555,12 +2580,11 @@ async function transferPoint({
2555
2580
  if (type === "keychain") {
2556
2581
  return sdk.Keychain.broadcast(from, [op], "Active");
2557
2582
  }
2558
- return hs__default.default.sendOperation(
2559
- op,
2560
- { callback: `https://ecency.com/@${from}/wallet` },
2561
- () => {
2562
- }
2563
- );
2583
+ if (type === "hiveauth") {
2584
+ return broadcastWithWalletHiveAuth(from, [op], "active");
2585
+ }
2586
+ return hs__default.default.sendOperation(op, { callback: `https://ecency.com/@${from}/wallet` }, () => {
2587
+ });
2564
2588
  }
2565
2589
 
2566
2590
  // src/modules/assets/points/types/point-transaction-type.ts
@@ -3745,6 +3769,7 @@ exports.HIVE_OPERATION_ORDERS = HIVE_OPERATION_ORDERS;
3745
3769
  exports.NaiMap = NaiMap;
3746
3770
  exports.PointTransactionType = PointTransactionType;
3747
3771
  exports.Symbol = Symbol2;
3772
+ exports.broadcastWithWalletHiveAuth = broadcastWithWalletHiveAuth;
3748
3773
  exports.buildAptTx = buildAptTx;
3749
3774
  exports.buildEthTx = buildEthTx;
3750
3775
  exports.buildExternalTx = buildExternalTx;
@@ -3795,6 +3820,7 @@ exports.getSpkMarketsQueryOptions = getSpkMarketsQueryOptions;
3795
3820
  exports.getTokenOperationsQueryOptions = getTokenOperationsQueryOptions;
3796
3821
  exports.getTokenPriceQueryOptions = getTokenPriceQueryOptions;
3797
3822
  exports.getWallet = getWallet;
3823
+ exports.hasWalletHiveAuthBroadcast = hasWalletHiveAuthBroadcast;
3798
3824
  exports.isEmptyDate = isEmptyDate;
3799
3825
  exports.lockLarynx = lockLarynx;
3800
3826
  exports.mnemonicToSeedBip39 = mnemonicToSeedBip39;
@@ -3802,6 +3828,7 @@ exports.parseAsset = parseAsset;
3802
3828
  exports.powerDownHive = powerDownHive;
3803
3829
  exports.powerUpHive = powerUpHive;
3804
3830
  exports.powerUpLarynx = powerUpLarynx;
3831
+ exports.registerWalletHiveAuthBroadcast = registerWalletHiveAuthBroadcast;
3805
3832
  exports.resolveHiveOperationFilters = resolveHiveOperationFilters;
3806
3833
  exports.rewardSpk = rewardSpk;
3807
3834
  exports.signDigest = signDigest;