From 99df14935f6420d3afe66b945b47234a6e570cc0 Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Thu, 16 Jun 2022 09:55:08 +0530 Subject: [PATCH 01/41] enable token support --- .../families/cardano/js-synchronisation.ts | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts b/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts index 5d6035bc6e1..cd52a6812b9 100644 --- a/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts +++ b/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts @@ -21,6 +21,7 @@ import { getMemoFromTx, getOperationType, isHexString, + mergeTokens, } from "./logic"; import { encodeOperationId } from "../../operation"; import { getNetworkParameters } from "./networks"; @@ -28,6 +29,7 @@ import { getNetworkInfo } from "./api/getNetworkInfo"; import uniqBy from "lodash/uniqBy"; import postSyncPatch from "./postSyncPatch"; import { getTransactions } from "./api/getTransactions"; +import { buildSubAccounts } from "./buildSubAccounts"; function mapTxToAccountOperation( tx: APITransaction, @@ -196,16 +198,15 @@ export const getAccountShape: GetAccountShape = async (info) => { (total, u) => total.plus(u.amount), new BigNumber(0) ); - // const tokenBalance = mergeTokens(utxos.map((u) => u.tokens).flat()); - // const subAccounts = buildSubAccounts({ - // initialAccount, - // parentAccountId: accountId, - // parentCurrency: currency, - // newTransactions, - // tokens: tokenBalance, - // accountCredentialsMap, - // }); - const subAccounts = []; + const tokenBalance = mergeTokens(utxos.map((u) => u.tokens).flat()); + const subAccounts = buildSubAccounts({ + initialAccount, + parentAccountId: accountId, + parentCurrency: currency, + newTransactions, + tokens: tokenBalance, + accountCredentialsMap, + }); const newOperations = newTransactions.map((t) => mapTxToAccountOperation(t, accountId, accountCredentialsMap, subAccounts) From 9b395a61d230311111ddd948a2b310db51854960 Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Thu, 16 Jun 2022 10:13:08 +0530 Subject: [PATCH 02/41] add support for top100 cardano native tokens --- .../cryptoassets/data/cardanoNative.js | 912 ++++++++++++++++++ .../packages/cryptoassets/src/tokens.ts | 33 + 2 files changed, 945 insertions(+) create mode 100644 libs/ledgerjs/packages/cryptoassets/data/cardanoNative.js diff --git a/libs/ledgerjs/packages/cryptoassets/data/cardanoNative.js b/libs/ledgerjs/packages/cryptoassets/data/cardanoNative.js new file mode 100644 index 00000000000..674ccfdaebc --- /dev/null +++ b/libs/ledgerjs/packages/cryptoassets/data/cardanoNative.js @@ -0,0 +1,912 @@ +// [network_id, policyId, assetName, name, ticker, decimals, delisted] +module.exports = [ + [ + "cardano_testnet", + "581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865", + "544553545f544f4b454e", + "TEST_TOKEN", + "tToken", + 0, + false, + ], + [ + "cardano", + "a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235", + "484f534b59", + "HOSKY Token", + "HOSKY", + 0, + false, + ], + [ + "cardano", + "af2e27f580f7f08e93190a81f72462f153026d06450924726645891b", + "44524950", + "DRIP", + "DRIP", + 6, + false, + ], + [ + "cardano", + "9a9693a9a37912a5097918f97918d15240c92ab729a0b7c4aa144d77", + "53554e444145", + "SUNDAE", + "SUNDAE", + 6, + false, + ], + [ + "cardano", + "4247d5091db82330100904963ab8d0850976c80d3f1b927e052e07bd", + "546f6b68756e", + "Tokhun.io Token", + "Tokhun", + 0, + false, + ], + [ + "cardano", + "d894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a0", + "7370616365636f696e73", + "spacecoins", + "SPACE", + 0, + false, + ], + [ + "cardano", + "29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c6", + "4d494e", + "Minswap", + "MIN", + 6, + false, + ], + [ + "cardano", + "afc910d7a306d20c12903979d4935ae4307241d03245743548e76783", + "4153484942", + "ADA Shiba Inu", + "ASHIB", + 6, + false, + ], + [ + "cardano", + "5ad8deb64bfec21ad2d96e1270b5873d0c4d0f231b928b4c39eb2435", + "61646f736961", + "Adosia", + "ADO", + 6, + false, + ], + [ + "cardano", + "8654e8b350e298c80d2451beb5ed80fc9eee9f38ce6b039fb8706bc3", + "4c4f4253544552", + "LOBSTER", + "$LOBSTER", + 0, + false, + ], + [ + "cardano", + "d030b626219d81673bd32932d2245e0c71ae5193281f971022b23a78", + "436172646f67656f", + "Cardogeo", + "CDOG", + 0, + false, + ], + [ + "cardano", + "a4da8764a57e66a0085b5bfcde96c89b798d92ee83a75f59237e375b", + "46495245", + "FIRE Token", + "FIRE", + 0, + false, + ], + [ + "cardano", + "2afb448ef716bfbed1dcb676102194c3009bee5399e93b90def9db6a", + "4249534f4e", + "Bison Coin", + "BISON", + 0, + false, + ], + [ + "cardano", + "f28f457472e539dc75e1598a2beddf49ce5a717998c708f05f5de610", + "44454653", + "Defender Silver", + "DEFS", + 0, + false, + ], + [ + "cardano", + "544571c086d0e5c5022aca9717dd0f438e21190abb48f37b3ae129f0", + "47524f57", + "GROW Token", + "GROW", + 0, + false, + ], + [ + "cardano", + "1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6", + "574f4c46", + "$WOLF", + "WOLF", + 0, + false, + ], + [ + "cardano", + "884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903ae", + "5041564941", + "PAVIA Token", + "PAVIA", + 0, + false, + ], + [ + "cardano", + "7f376e3d1cf52e6c4350a1a91c8f8d0f0b63baedd443999ebe8fe57a", + "424f52475a", + "BORGZ", + "BORGZ", + 0, + false, + ], + [ + "cardano", + "987c1f90efe1c95957509b460e0e4f6d6b3f7025a7aca99cd2909037", + "4d595448", + "MYTH", + "MYTH", + 0, + false, + ], + [ + "cardano", + "6954264b15bc92d6d592febeac84f14645e1ed46ca5ebb9acdb5c15f", + "5354524950", + "StripperCoin", + "STRIP", + 3, + false, + ], + [ + "cardano", + "6ac8ef33b510ec004fe11585f7c5a9f0c07f0c23428ab4f29c1d7d10", + "4d454c44", + "MELD", + "MELD", + 6, + false, + ], + [ + "cardano", + "b0446f1c9105f0cc5bb6bd092f5c3e523e13f8a999b31c870298fa40", + "51554944", + "QUID", + "QUID", + 0, + false, + ], + [ + "cardano", + "025146866af908340247fe4e9672d5ac7059f1e8534696b5f920c9e6", + "6362544843", + "cbTHC", + "cbTHC", + 6, + false, + ], + [ + "cardano", + "c68307e7ca850513507f1498862a57c7f4fae7ba8e84b8bc074093a9", + "44494253", + "DIBS", + "DIBS", + 0, + false, + ], + [ + "cardano", + "1d7f33bd23d85e1a25d87d86fac4f199c3197a2f7afeb662a0f34e1e", + "776f726c646d6f62696c65746f6b656e", + "World Mobile Token", + "WMT", + 6, + false, + ], + [ + "cardano", + "1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d", + "4849", + "Hosky Inu", + "HI", + 0, + false, + ], + [ + "cardano", + "8d0ae3c5b13b47907b16511a540d47436d12dcc96453c0f59089b451", + "42524f4f4d", + "BROOM Token", + "BROOM", + 0, + false, + ], + [ + "cardano", + "d3558649b7874a1a596378515f9b80da63e73f324439ea113d34c9bb", + "42454147", + "Beagle Bucks", + "BEAG", + 0, + false, + ], + [ + "cardano", + "5029eeccd52fef299509d509a8318fd7930c3dffcce1f9f39ff11ef9", + "464743", + "FabianGamerCoin", + "FGC", + 0, + false, + ], + [ + "cardano", + "88691a70bb0fe49cf9124b4f78553c36c09fa6264844e2b294119173", + "4575736b6f", + "Eusko", + "EUS", + 0, + false, + ], + [ + "cardano", + "cfee97ff8359f07a0a395a72b424bc6e030503390d864b86d4e0ecf8", + "4b41495a454e", + "KAIZEN", + "", + 6, + false, + ], + [ + "cardano", + "e14fe3ab348f9a6198359481472601f4557b9f86984f40a186a3b1e8", + "434845525259", + "CHERRY Token", + "CHERRY", + 0, + false, + ], + [ + "cardano", + "e98165a25cd0320b25f22d686268e58e66f855b6d85974947ccd708d", + "414441464f58", + "ADAFOX", + "ADAFOX", + 0, + false, + ], + [ + "cardano", + "da8c30857834c6ae7203935b89278c532b3995245295456f993e1d24", + "4c51", + "Liqwid DAO Token", + "LQ", + 6, + false, + ], + [ + "cardano", + "b34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757a", + "634e455441", + "anetaBTC", + "cNETA", + 0, + false, + ], + [ + "cardano", + "300ec0d82a79acdc0616fdc0ef615e7deeddb03275e834685e9ee8a6", + "5854", + "XT", + "XT", + 0, + false, + ], + [ + "cardano", + "682fe60c9918842b3323c43b5144bc3d52a23bd2fb81345560d73f63", + "4e45574d", + "NEWM", + "NEWM", + 6, + false, + ], + [ + "cardano", + "d3a034e403b98cbdb0adbc8a3144d7779330916e190d387815bb85c6", + "50555252", + "CatKinson", + "$PURR", + 0, + false, + ], + [ + "cardano", + "007394e3117755fbb0558b93c54ce3bc6c85770920044ade143dc742", + "505443", + "Pocket Change", + "PTC", + 0, + false, + ], + [ + "cardano", + "a3914cb7a564d010c7b67774ac8720a8ece3a758279b51d8a1c05cc5", + "5745444e4553444159", + "Wednesday", + "WDAY", + 0, + false, + ], + [ + "cardano", + "d01794c4604f3c0e544c537bb1f4268c0e81f45880c00c09ebe4b4a7", + "4d595354", + "Mystery Token", + "MYST", + 0, + false, + ], + [ + "cardano", + "29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c6", + "4d494e74", + "Minswap MINt", + "MINt", + 6, + false, + ], + [ + "cardano", + "8a1cfae21368b8bebbbed9800fec304e95cce39a2a57dc35e2e3ebaa", + "4d494c4b", + "MILK", + "MILK", + 0, + false, + ], + [ + "cardano", + "a89568bb399d0cdc38367e47831c95186f5c79e58174e08a18232396", + "4554424643546f6b656e", + "ETBFCToken", + "ETB", + 6, + false, + ], + [ + "cardano", + "c88bbd1848db5ea665b1fffbefba86e8dcd723b5085348e8a8d2260f", + "44414e41", + "DANA", + "DANA", + 6, + false, + ], + [ + "cardano", + "47959e79846b8bdcacb91f586408d97e2dff44f31a04f03902cba818", + "5357454554", + "SWEET", + "SWEET", + 0, + false, + ], + [ + "cardano", + "0171c997b8853fde686763d93b36ab8e04ce947bb6aa09a9ee5c4401", + "544f4b454e", + "TOKEN", + "TOKEN", + 0, + false, + ], + [ + "cardano", + "d5dec6074942b36b50975294fd801f7f28c907476b1ecc1b57c916ed", + "524154", + "RAT", + "RAT", + 6, + false, + ], + [ + "cardano", + "8fef2d34078659493ce161a6c7fba4b56afefa8535296a5743f69587", + "41414441", + "Aada DAO Token", + "AADA", + 6, + false, + ], + [ + "cardano", + "0c78f619e54a5d00e143f66181a2c500d0c394b38a10e86cd1a23c5f", + "41444158", + "ADAX", + "ADAX", + 0, + false, + ], + [ + "cardano", + "585cfcbdd0786e961187999e5d5d36b38d1ebc1c4112a0a95a8bd477", + "424c43", + "Ibilecoin", + "BLC", + 6, + false, + ], + [ + "cardano", + "0c442180dd6163682d8e03b271caefb4944a24412bdd07adafb04ccb", + "50494e41434f4c414441", + "PinacolADA", + "", + 0, + false, + ], + [ + "cardano", + "f4d97191f857096b441a410c036f63d6697dde0c71d2755dd664e302", + "4d4b41", + "Merkaba", + "MKA", + 2, + false, + ], + [ + "cardano", + "804f5544c1962a40546827cab750a88404dc7108c0f588b72964754f", + "56594649", + "VYFI", + "VYFI", + 6, + false, + ], + [ + "cardano", + "ae2a0aa5a24b27d9868c4a73b7c08077ac21baade5eca0fa467a2bbd", + "58524159", + "XRAY", + "XRAY", + 0, + false, + ], + [ + "cardano", + "0fd9819a9d7fb414880883f43a42d33458f12bc5f9841cec6457dc15", + "5669527553", + "Virus", + "virus", + 0, + false, + ], + [ + "cardano", + "df0172804f8418afc4e5b0a15b8fc78bdc3ca6d179405a7cd194f3b4", + "464c49434b", + "Flickto", + "FLICK", + 0, + false, + ], + [ + "cardano", + "20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3c", + "50524f584945", + "PROXIE", + "PROXIE", + 6, + false, + ], + [ + "cardano", + "e9c28a71273f825b13f38244ccf1fea97c4025813610d01a7c5d681f", + "436861726c7a20546f6b656e", + "Charlz Token", + "CHRLZ", + 0, + false, + ], + [ + "cardano", + "6787a47e9f73efe4002d763337140da27afa8eb9a39413d2c39d4286", + "524144546f6b656e73", + "RADTokens", + "RAD", + 0, + false, + ], + [ + "cardano", + "db30c7905f598ed0154de14f970de0f61f0cb3943ed82c891968480a", + "434c4150", + "CLAP", + "CLAP", + 3, + false, + ], + [ + "cardano", + "aea1ceb3625680e2f7a31ea1a64c9c430c34d8588bf4f8e3c7f9b1dd", + "476f74636869", + "Gotchi", + "GTCHI", + 6, + false, + ], + [ + "cardano", + "14a3455f71c435a04ea1fdb50a3ef4c1cab0e79fb1565627ac66a575", + "52415645", + "Ravendex", + "RAVE", + 0, + false, + ], + [ + "cardano", + "2b0a04a7b60132b1805b296c7fcb3b217ff14413991bf76f72663c30", + "67696d62616c", + "gimbal", + "GMBL", + 6, + false, + ], + [ + "cardano", + "4c17b7009448a33d1834b0946ea752ecd0cc61c7bb25cd9ff18cff58", + "426c6f6f6d", + "Bloom", + "BLOOM", + 6, + false, + ], + [ + "cardano", + "94cbb4fcbcaa2975779f273b263eb3b5f24a9951e446d6dc4c135864", + "52455655", + "Revuto", + "REVU", + 8, + false, + ], + [ + "cardano", + "63766427b4499dd678cb8b715dec3265dd292279ce7779447e3651e5", + "4b4f5a", + "Politikoz Token", + "KOZ", + 0, + false, + ], + [ + "cardano", + "885742cd7e0dad321622b5d3ad186797bd50c44cbde8b48be1583fbd", + "534b554c4c", + "SKULL", + "SKULL", + 0, + false, + ], + [ + "cardano", + "f7c777fdd4531cf1c477551360e45b9684073c05c2fa61334f8f9add", + "5665726974726565546f6b656e", + "VeritreeToken", + "TREES", + 0, + false, + ], + [ + "cardano", + "aa2797739e4f4a1efd5346998febff59909e425b5fddb1b0ec4a24f8", + "4c6f6f6b7a", + "Lookz", + "LOOKZ", + 0, + false, + ], + [ + "cardano", + "dca54ecf37b0e3af2fdfd336e1d21fadcc45b3261b0f73a095631dfe", + "444f4558", + "DOEX", + "DOEX", + 0, + false, + ], + [ + "cardano", + "25f0fc240e91bd95dcdaebd2ba7713fc5168ac77234a3d79449fc20c", + "534f4349455459", + "SOCIETY", + "SOCIETY", + 6, + false, + ], + [ + "cardano", + "57684adcb032c8dbc40179841bed987d8dee7472617a0e5c25ef4140", + "59617953776170", + "YaySwap", + "YAY", + 0, + false, + ], + [ + "cardano", + "c9f955eeffa84e42363b4992281d32dd2f9239153d6c66420a9acc15", + "4c4f47", + "Life Log Token", + "LOG", + 6, + false, + ], + [ + "cardano", + "240fb00eff73acc51c09e81dae6628c4bedb9964151d45e3faed874f", + "434c4157", + "Claw Token", + "$CLAW", + 0, + false, + ], + [ + "cardano", + "2aa9c1557fcf8e7caa049fa0911a8724a1cdaf8037fe0b431c6ac664", + "50494759546f6b656e", + "PIGY Token", + "PIGY", + 0, + false, + ], + [ + "cardano", + "2c96f49b6e6e32ae69a182e85b74db4edfc9539496a13ab76d1258fa", + "434e54", + "Cardano Native Token", + "CNT", + 0, + false, + ], + [ + "cardano", + "b6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0", + "436f726e75636f70696173205b76696120436861696e506f72742e696f5d", + "Cornucopias Token", + "COPI", + 6, + false, + ], + [ + "cardano", + "208a2ca888886921513cb777bb832a8dc685c04de990480151f12150", + "53484942414441", + "SHIBADA", + "SHIBA", + 0, + false, + ], + [ + "cardano", + "c4c00fbd8fa227442a5e7cdecde33b24588494d05a2c50fda8938c6d", + "4b49445a", + "Kidz Coin", + "KIDZ", + 0, + false, + ], + [ + "cardano", + "dbc31b04d90b37332813cb4cee3e8f79994643d899a5366797e745ee", + "465544", + "FudCoin", + "FUD", + 6, + false, + ], + [ + "cardano", + "d0af056c509b6b1133cd83a750b7245e561169281fde3df1cb6e2d96", + "506f6f6c5065656b436f696e", + "PoolPeekCoin", + "", + 0, + false, + ], + [ + "cardano", + "8f52f6a88acf6127bc4758a16b6047afc4da7887feae121ec217b75a", + "534e4f57", + "SNOW", + "SNOW", + 0, + false, + ], + [ + "cardano", + "2441ab3351c3b80213a98f4e09ddcf7dabe4879c3c94cc4e7205cb63", + "46495245", + "FIRE", + "FIRE", + 0, + false, + ], + [ + "cardano", + "c7dcfa416c127f630b263c7e0fe0564430cfa9c56bba43e1a37c6915", + "474f4b4559", + "GoKey", + "GOKEY", + 0, + false, + ], + [ + "cardano", + "97747aa3c33fdfe4b5faa7bb8b4534932c6d980cb13c14c5a547e7ca", + "70757272414441", + "purrADA", + "purrADA", + 6, + false, + ], + [ + "cardano", + "ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd9", + "43617264616e6961466f756e646572426c7565", + "CardaniaFounderBlue", + "", + 0, + false, + ], + [ + "cardano", + "ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd9", + "43617264616e6961466f756e646572526564", + "CardaniaFounderRed", + "", + 0, + false, + ], + [ + "cardano", + "1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d", + "484953", + "Hosky Inu Silver", + "HIS", + 0, + false, + ], + [ + "cardano", + "ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd9", + "43617264616e6961466f756e646572477265656e", + "CardaniaFounderGreen", + "", + 0, + false, + ], + [ + "cardano", + "b4273f1d8d0021d188784c3d72dc514f602b7ab8cfb87e3134550c42", + "446f6765414441", + "DogeADA", + "DGADA", + 0, + false, + ], + [ + "cardano", + "133fac9e153194428eb0919be39837b42b9e977fc7298f3ff1b76ef9", + "5055444759", + "$PUDGY Token", + "PUDGY", + 0, + false, + ], + [ + "cardano", + "f555c46bad0731d080c9381d7fff6f82839946a66bd070d185e1ea2f", + "42444f4745", + "BlackDoge", + "BDOGE", + 0, + false, + ], + [ + "cardano", + "1dd1a7dde0e1e82761325ee5f4719d0d4b7c24dfba77d9bee01eed4b", + "4d454f57", + "MEOW", + "MEOW", + 6, + false, + ], + [ + "cardano", + "a00fdf4fb9ab6c8c2bd1533a2f14855edf12aed5ecbf96d4b5f5b939", + "4334", + "Cardano Crocs Club Coin", + "C4", + 0, + false, + ], + [ + "cardano", + "f4364875e75320d405ceadebdf0db63fadaff55c72d4ff6b82f0676a", + "434152474f", + "Cardano Gold", + "CARGO", + 6, + false, + ], + [ + "cardano", + "59e31d17e4d212ea35df6088e0395455c40f5ad463d161497a89c567", + "426162795365616c", + "BabySeal", + "BSEAL", + 0, + false, + ], + [ + "cardano", + "b0af30edf2c7f11465853821137e0a6ebc395cab71ee39c24127ffb4", + "4e465443", + "NFT Creative Coin", + "NFTC", + 0, + false, + ], + [ + "cardano", + "6c8642400e8437f737eb86df0fc8a8437c760f48592b1ba8f5767e81", + "456d706f7761", + "Empowa", + "EMP", + 6, + false, + ], + [ + "cardano", + "ca942cb8bb5d1ef750766ded355f320880539111f10efa2b1a478ff9", + "524147", + "RaggieCoin", + "RAG", + 0, + false, + ], + [ + "cardano", + "0c92aabef5a8f91a36470d0762806c165c0d04aa992541e25d55486a", + "424347", + "Blockchaingames", + "BCG", + 6, + false, + ], +]; diff --git a/libs/ledgerjs/packages/cryptoassets/src/tokens.ts b/libs/ledgerjs/packages/cryptoassets/src/tokens.ts index d592d77cf45..233931de3e4 100644 --- a/libs/ledgerjs/packages/cryptoassets/src/tokens.ts +++ b/libs/ledgerjs/packages/cryptoassets/src/tokens.ts @@ -7,6 +7,7 @@ import bep20tokens from "../data/bep20"; import polygonTokens from "../data/polygon-erc20"; import asatokens from "../data/asa"; import esdttokens from "../data/esdt"; +import cardanoNativeTokens from "../data/cardanoNative"; //import spltokens from "../data/spl"; const emptyArray = []; const tokensArray: TokenCurrency[] = []; @@ -24,6 +25,7 @@ addTokens(trc20tokens.map(convertTRONTokens("trc20"))); addTokens(bep20tokens.map(convertBEP20)); addTokens(asatokens.map(convertAlgorandASATokens)); addTokens(esdttokens.map(convertElrondESDTTokens)); +addTokens(cardanoNativeTokens.map(convertCardanoNativeTokens)); //addTokens(spltokens.map(convertSplTokens)); type TokensListOptions = { withDelisted: boolean; @@ -371,3 +373,34 @@ function convertSplTokens([ ], }; } + +function convertCardanoNativeTokens([ + parentCurrencyId, + policyId, + assetName, + name, + ticker, + decimals, + delisted, +]): TokenCurrency { + const assetId = policyId + assetName; + return { + type: "TokenCurrency", + id: `${parentCurrencyId}/native/${assetId}`, + // Tracking and accounting of native tokens is natively supported by cardano ledger. + // As there's no contract for native tokens, using unique assetId in place of contractAddress + contractAddress: assetId, + parentCurrency: getCryptoCurrencyById(parentCurrencyId), + tokenType: "native", + name, + ticker, + delisted, + units: [ + { + name, + code: ticker, + magnitude: decimals, + }, + ], + }; +} From e414b3891bec7e64eb3cb560d37b97952e84afff Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Mon, 20 Jun 2022 10:59:16 +0530 Subject: [PATCH 03/41] spendableBalance update --- .../src/families/cardano/js-synchronisation.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts b/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts index cd52a6812b9..dc377e9375d 100644 --- a/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts +++ b/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts @@ -30,6 +30,7 @@ import uniqBy from "lodash/uniqBy"; import postSyncPatch from "./postSyncPatch"; import { getTransactions } from "./api/getTransactions"; import { buildSubAccounts } from "./buildSubAccounts"; +import { calculateMinUtxoAmount } from "@stricahq/typhonjs/dist/utils/utils"; function mapTxToAccountOperation( tx: APITransaction, @@ -73,7 +74,7 @@ function mapTxToAccountOperation( }; } -function syncUtxos( +function prepareUtxos( newTransactions: Array, stableUtxos: Array, accountCredentialsMap: Record @@ -193,7 +194,11 @@ export const getAccountShape: GetAccountShape = async (info) => { (u) => stableOperationsByIds[u.hash] ); - const utxos = syncUtxos(newTransactions, stableUtxos, accountCredentialsMap); + const utxos = prepareUtxos( + newTransactions, + stableUtxos, + accountCredentialsMap + ); const accountBalance = utxos.reduce( (total, u) => total.plus(u.amount), new BigNumber(0) @@ -230,12 +235,19 @@ export const getAccountShape: GetAccountShape = async (info) => { }).getBech32(), })); const cardanoNetworkInfo = await getNetworkInfo(initialAccount, currency); + const minAdaBalanceForTokens = tokenBalance.length + ? calculateMinUtxoAmount( + tokenBalance, + new BigNumber(cardanoNetworkInfo.protocolParams.lovelacePerUtxoWord), + false + ) + : new BigNumber(0); return { id: accountId, xpub, balance: accountBalance, - spendableBalance: accountBalance, + spendableBalance: accountBalance.minus(minAdaBalanceForTokens), operations: operations, subAccounts, freshAddresses, From f694f13af771a251d93915d7cfb15c06943c9ec7 Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Mon, 20 Jun 2022 19:33:35 +0530 Subject: [PATCH 04/41] add deviceTransactionConfig --- .../cardano/deviceTransactionConfig.ts | 59 +++++++++++++++++++ .../src/generated/deviceTransactionConfig.ts | 3 + 2 files changed, 62 insertions(+) create mode 100644 libs/ledger-live-common/src/families/cardano/deviceTransactionConfig.ts diff --git a/libs/ledger-live-common/src/families/cardano/deviceTransactionConfig.ts b/libs/ledger-live-common/src/families/cardano/deviceTransactionConfig.ts new file mode 100644 index 00000000000..b29bc181720 --- /dev/null +++ b/libs/ledger-live-common/src/families/cardano/deviceTransactionConfig.ts @@ -0,0 +1,59 @@ +import BigNumber from "bignumber.js"; +import { getAccountUnit, getMainAccount } from "../../account"; +import { formatCurrencyUnit } from "../../currencies"; +import { DeviceTransactionField } from "../../transaction"; +import { Account, AccountLike, TransactionStatus } from "../../types"; +import { decodeTokenAssetId, decodeTokenCurrencyId } from "./buildSubAccounts"; +import { CardanoResources, Transaction } from "./types"; +import { utils as TyphonUtils } from "@stricahq/typhonjs"; + +function getDeviceTransactionConfig({ + account, + transaction, + parentAccount, +}: { + account: AccountLike; + parentAccount: Account | null | undefined; + transaction: Transaction; + status: TransactionStatus; +}): Array { + const { mode } = transaction; + const fields: DeviceTransactionField[] = []; + const mainAccount = getMainAccount(account, parentAccount); + + if (mode === "send" && account.type === "TokenAccount") { + const cardanoResources = mainAccount.cardanoResources as CardanoResources; + + const { assetId } = decodeTokenCurrencyId(account.token.id); + const { policyId, assetName } = decodeTokenAssetId(assetId); + const transactionAmount = transaction.useAllAmount + ? account.balance + : transaction.amount; + + const tokensToSend = [ + { + policyId, + assetName, + amount: transactionAmount, + }, + ]; + + const requiredMinAdaForTokens = TyphonUtils.calculateMinUtxoAmount( + tokensToSend, + new BigNumber(cardanoResources.protocolParams.lovelacePerUtxoWord) + ); + fields.push({ + type: "text", + label: "Amount", + value: formatCurrencyUnit( + getAccountUnit(mainAccount), + requiredMinAdaForTokens, + { showCode: true, disableRounding: true } + ), + }); + } + + return fields; +} + +export default getDeviceTransactionConfig; diff --git a/libs/ledger-live-common/src/generated/deviceTransactionConfig.ts b/libs/ledger-live-common/src/generated/deviceTransactionConfig.ts index 9bf7efc95c6..ccf56461bd1 100644 --- a/libs/ledger-live-common/src/generated/deviceTransactionConfig.ts +++ b/libs/ledger-live-common/src/generated/deviceTransactionConfig.ts @@ -2,6 +2,8 @@ import algorand from "../families/algorand/deviceTransactionConfig"; import bitcoin from "../families/bitcoin/deviceTransactionConfig"; +import cardano from "../families/cardano/deviceTransactionConfig"; + import celo from "../families/celo/deviceTransactionConfig"; import cosmos from "../families/cosmos/deviceTransactionConfig"; @@ -32,6 +34,7 @@ import tron from "../families/tron/deviceTransactionConfig"; export default { algorand, bitcoin, + cardano, celo, cosmos, crypto_org, From d026797ffe396bf060165e7a36977f3abc85eb26 Mon Sep 17 00:00:00 2001 From: Prashanth Date: Tue, 21 Jun 2022 09:32:33 +0530 Subject: [PATCH 05/41] add available balance --- .../cardano/AccountBalanceSummaryFooter.js | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.js diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.js b/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.js new file mode 100644 index 00000000000..5a087defbb3 --- /dev/null +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.js @@ -0,0 +1,100 @@ +// @flow + +import React from "react"; +import styled from "styled-components"; +import { useSelector } from "react-redux"; + +import { Trans } from "react-i18next"; +import { getAccountUnit } from "@ledgerhq/live-common/lib/account"; +import { formatCurrencyUnit } from "@ledgerhq/live-common/lib/currencies"; + +import type { ThemedComponent } from "~/renderer/styles/StyleProvider"; + +import { localeSelector } from "~/renderer/reducers/settings"; + +import Discreet, { useDiscreetMode } from "~/renderer/components/Discreet"; + +import Box from "~/renderer/components/Box/Box"; +import Text from "~/renderer/components/Text"; +import InfoCircle from "~/renderer/icons/InfoCircle"; +import ToolTip from "~/renderer/components/Tooltip"; + +const Wrapper: ThemedComponent<*> = styled(Box).attrs(() => ({ + horizontal: true, + mt: 4, + p: 5, + pb: 0, +}))` + border-top: 1px solid ${p => p.theme.colors.palette.text.shade10}; +`; + +const BalanceDetail = styled(Box).attrs(() => ({ + flex: "0.25 0 auto", + vertical: true, + alignItems: "start", +}))` + &:nth-child(n + 3) { + flex: 0.75; + } +`; + +const TitleWrapper = styled(Box).attrs(() => ({ horizontal: true, alignItems: "center", mb: 1 }))``; + +const Title = styled(Text).attrs(() => ({ + fontSize: 4, + ff: "Inter|Medium", + color: "palette.text.shade60", +}))` + line-height: ${p => p.theme.space[4]}px; + margin-right: ${p => p.theme.space[1]}px; +`; + +const AmountValue = styled(Text).attrs(() => ({ + fontSize: 6, + ff: "Inter|SemiBold", + color: "palette.text.shade100", +}))``; + +type Props = { + account: any, + countervalue: any, +}; + +const AccountBalanceSummaryFooter = ({ account, countervalue }: Props) => { + const discreet = useDiscreetMode(); + const locale = useSelector(localeSelector); + + const { spendableBalance: _spendableBalance } = account; + + const unit = getAccountUnit(account); + + const formatConfig = { + disableRounding: true, + alwaysShowSign: false, + showCode: true, + discreet, + locale, + }; + + const spendableBalance = formatCurrencyUnit(unit, _spendableBalance, formatConfig); + + return ( + + + }> + + + <Trans i18nKey="account.availableBalance" /> + + + + + + {spendableBalance} + + + + ); +}; + +export default AccountBalanceSummaryFooter; From d79a97e648f9a3a0cda0152de696c685d2dbc135 Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Tue, 21 Jun 2022 10:02:19 +0530 Subject: [PATCH 06/41] update getTransactionStatus for tokens --- .../src/families/cardano/js-getTransactionStatus.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libs/ledger-live-common/src/families/cardano/js-getTransactionStatus.ts b/libs/ledger-live-common/src/families/cardano/js-getTransactionStatus.ts index 6023f81224c..03cfec7f5a7 100644 --- a/libs/ledger-live-common/src/families/cardano/js-getTransactionStatus.ts +++ b/libs/ledger-live-common/src/families/cardano/js-getTransactionStatus.ts @@ -93,8 +93,9 @@ const getTransactionStatus = async ( amount: minTransactionAmount.div(1e6).toString(), }); } else if ( - (tokenAccount && totalSpent.gt(tokenAccount.balance)) || - totalSpent.gt(a.balance) + tokenAccount + ? totalSpent.gt(tokenAccount.balance) + : totalSpent.gt(a.balance) ) { errors.amount = new NotEnoughBalance(); } else { From 154ea2f517bf7b1853ecde82641080d72703a374 Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Tue, 21 Jun 2022 10:10:14 +0530 Subject: [PATCH 07/41] prepareTransaction update --- libs/ledger-live-common/src/families/cardano/js-transaction.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/ledger-live-common/src/families/cardano/js-transaction.ts b/libs/ledger-live-common/src/families/cardano/js-transaction.ts index bc41f043866..1985fed68d5 100644 --- a/libs/ledger-live-common/src/families/cardano/js-transaction.ts +++ b/libs/ledger-live-common/src/families/cardano/js-transaction.ts @@ -47,7 +47,7 @@ export const prepareTransaction = async ( try { transaction = await buildTransaction(a, t); } catch (error) { - return { ...t, fees: new BigNumber(0), amount: new BigNumber(0) }; + return { ...t, fees: new BigNumber(0), amount: t.amount }; } const transactionFees = transaction.getFee(); From 8902adab29510255b330350e4b56ecb990277007 Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Thu, 23 Jun 2022 12:11:21 +0530 Subject: [PATCH 08/41] add minimum required cardanoApp version --- libs/ledger-live-common/src/apps/support.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/libs/ledger-live-common/src/apps/support.ts b/libs/ledger-live-common/src/apps/support.ts index d0b24d7ebd7..694be85ea26 100644 --- a/libs/ledger-live-common/src/apps/support.ts +++ b/libs/ledger-live-common/src/apps/support.ts @@ -35,6 +35,7 @@ const appVersionsRequired = { Elrond: ">= 1.0.11", Ethereum: ">= 1.9.17", Solana: ">= 1.2.0", + CardanoADA: ">= 4.1.0", }; export function mustUpgrade( deviceModel: DeviceModelId, From 42065c7e85b8373c79270e9f4b35960a64d9077b Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Thu, 23 Jun 2022 12:34:52 +0530 Subject: [PATCH 09/41] add speculos test for token tx --- .../src/families/cardano/specs.ts | 54 ++++++++++++++++++- .../cardano/speculos-deviceActions.ts | 15 ++++++ 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/libs/ledger-live-common/src/families/cardano/specs.ts b/libs/ledger-live-common/src/families/cardano/specs.ts index 9ba49e76c8d..cbe7bbb7199 100644 --- a/libs/ledger-live-common/src/families/cardano/specs.ts +++ b/libs/ledger-live-common/src/families/cardano/specs.ts @@ -9,10 +9,15 @@ import invariant from "invariant"; import { utils as TyphonUtils } from "@stricahq/typhonjs"; import { mergeTokens } from "./logic"; import { parseCurrencyUnit } from "../../currencies"; +import { SubAccount } from "../../types"; const currency = getCryptoCurrencyById("cardano"); const minBalanceRequired = parseCurrencyUnit(currency.units[0], "2.2"); const minBalanceRequiredForMaxSend = parseCurrencyUnit(currency.units[0], "1"); +const minSpendableRequiredForTokenTx = parseCurrencyUnit( + currency.units[0], + "3" +); const cardano: AppSpec = { name: "cardano", @@ -34,7 +39,12 @@ const cardano: AppSpec = { const updates = [ { recipient }, - { amount: new BigNumber(account.balance.dividedBy(2)).dp(0, 1) }, + { + amount: new BigNumber(account.balance.dividedBy(2)).dp( + 0, + BigNumber.ROUND_CEIL + ), + }, { memo: "LedgerLiveBot" }, ]; @@ -90,6 +100,48 @@ const cardano: AppSpec = { ); }, }, + { + name: "move ~10% token", + maxRun: 1, + transaction: ({ account, siblings, bridge, maxSpendable }) => { + invariant( + maxSpendable.gte(minSpendableRequiredForTokenTx), + "balance is too low" + ); + const sibling = pickSiblings(siblings, 3); + const recipient = sibling.freshAddress; + const transaction = bridge.createTransaction(account); + + const subAccount = account.subAccounts?.find((subAccount) => + subAccount.balance.gt(1) + ) as SubAccount; + invariant(subAccount, "No token account with balance"); + + const updates = [ + { subAccountId: subAccount.id }, + { recipient }, + { + amount: new BigNumber(subAccount.balance.dividedBy(10)).dp( + 0, + BigNumber.ROUND_CEIL + ), + }, + ]; + + return { + transaction, + updates, + }; + }, + test: ({ operation, transaction }): void => { + expect(operation.subOperations).toBeTruthy(); + expect(operation.subOperations?.length).toEqual(1); + + const subOperation = + operation.subOperations && operation.subOperations[0]; + expect(subOperation?.value).toEqual(transaction.amount); + }, + }, ], }; diff --git a/libs/ledger-live-common/src/families/cardano/speculos-deviceActions.ts b/libs/ledger-live-common/src/families/cardano/speculos-deviceActions.ts index f89998f35e2..eab651261a6 100644 --- a/libs/ledger-live-common/src/families/cardano/speculos-deviceActions.ts +++ b/libs/ledger-live-common/src/families/cardano/speculos-deviceActions.ts @@ -39,6 +39,21 @@ const acceptTransaction: DeviceAction = deviceActionFlow({ expectedValue: ({ account, status }) => expectedValue(account.unit, status.amount), }, + { + title: "Asset fingerprint", + button: "LRlr", + }, + { + title: "Token amount", + button: "LRlr", + }, + { + title: "Confirm", + }, + { + title: "output?", + button: "Rr", + }, { title: "Transaction fee", button: "LRlr", From 28f5c819699c55259468175a9c46a589fa2d5532 Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Thu, 23 Jun 2022 15:47:12 +0530 Subject: [PATCH 10/41] update tickers for some native assets --- .../packages/cryptoassets/data/cardanoNative.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libs/ledgerjs/packages/cryptoassets/data/cardanoNative.js b/libs/ledgerjs/packages/cryptoassets/data/cardanoNative.js index 674ccfdaebc..d21e6e572b2 100644 --- a/libs/ledgerjs/packages/cryptoassets/data/cardanoNative.js +++ b/libs/ledgerjs/packages/cryptoassets/data/cardanoNative.js @@ -275,7 +275,7 @@ module.exports = [ "cfee97ff8359f07a0a395a72b424bc6e030503390d864b86d4e0ecf8", "4b41495a454e", "KAIZEN", - "", + "KAIZEN", 6, false, ], @@ -464,7 +464,7 @@ module.exports = [ "0c442180dd6163682d8e03b271caefb4944a24412bdd07adafb04ccb", "50494e41434f4c414441", "PinacolADA", - "", + "PinacolADA", 0, false, ], @@ -734,7 +734,7 @@ module.exports = [ "d0af056c509b6b1133cd83a750b7245e561169281fde3df1cb6e2d96", "506f6f6c5065656b436f696e", "PoolPeekCoin", - "", + "PoolPeekCoin", 0, false, ], @@ -779,7 +779,7 @@ module.exports = [ "ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd9", "43617264616e6961466f756e646572426c7565", "CardaniaFounderBlue", - "", + "CardaniaFounderBlue", 0, false, ], @@ -788,7 +788,7 @@ module.exports = [ "ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd9", "43617264616e6961466f756e646572526564", "CardaniaFounderRed", - "", + "CardaniaFounderRed", 0, false, ], @@ -806,7 +806,7 @@ module.exports = [ "ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd9", "43617264616e6961466f756e646572477265656e", "CardaniaFounderGreen", - "", + "CardaniaFounderGreen", 0, false, ], From 925e49035222b07237c75dfa1dc7811e5ad14944 Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Thu, 23 Jun 2022 16:14:59 +0530 Subject: [PATCH 11/41] add dataset test for tokens --- .../cardano/__snapshots__/bridge.test.ts.snap | 42 ++++++++++++++++++- .../src/families/cardano/test-dataset.ts | 38 +++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) diff --git a/libs/ledger-live-common/src/families/cardano/__snapshots__/bridge.test.ts.snap b/libs/ledger-live-common/src/families/cardano/__snapshots__/bridge.test.ts.snap index 6e70e6eb06b..cfd06710acb 100644 --- a/libs/ledger-live-common/src/families/cardano/__snapshots__/bridge.test.ts.snap +++ b/libs/ledger-live-common/src/families/cardano/__snapshots__/bridge.test.ts.snap @@ -820,7 +820,7 @@ Array [ "operationsCount": 4, "pendingOperations": Array [], "seedIdentifier": "21a6a622d47969ef0b2b89ef7c2e8428f955bae3e52f211e651ccffd", - "spendableBalance": "1021211139", + "spendableBalance": "1019831859", "starred": false, "subAccounts": Array [], "swapHistory": Array [], @@ -829,6 +829,20 @@ Array [ "used": true, "xpub": "a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2", }, + Object { + "approvals": undefined, + "balance": "5000000000", + "compoundBalance": undefined, + "id": "js:2:cardano_testnet:a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2:cardano+cardano_testnet%2Fnative%2F581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e", + "operationsCount": 1, + "parentId": "js:2:cardano_testnet:a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2:cardano", + "pendingOperations": Array [], + "spendableBalance": "5000000000", + "starred": false, + "swapHistory": Array [], + "tokenId": "cardano_testnet/native/581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e", + "type": "TokenAccountRaw", + }, Object { "balance": "0", "cardanoResources": Object { @@ -1662,6 +1676,32 @@ Array [ "value": "1000000000", }, ], + Array [ + Object { + "accountId": "js:2:cardano_testnet:a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2:cardano+cardano_testnet%2Fnative%2F581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e", + "blockHash": undefined, + "blockHeight": 3568569, + "contract": undefined, + "extra": Object { + "memo": undefined, + }, + "fee": "215441", + "hash": "2c8106d296fe10a8e8bf37a0202df048265dc17f2aa6c184bd132960fbb18bae", + "id": "js:2:cardano_testnet:a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2:cardano+cardano_testnet%2Fnative%2F581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e-2c8106d296fe10a8e8bf37a0202df048265dc17f2aa6c184bd132960fbb18bae-IN", + "operator": undefined, + "recipients": Array [ + "addr_test1qqs6df3z63uknmct9wy77lpwss50j4d6u0jj7gg7v5wvll23krjmh2m86v92yu0my7rqydx3h5erqwty82kwgjuc4elsr6hdhy", + "addr_test1qzpdaf0vr0gdsjncllv7cejmpwmwu6m86c3epd8uadv99ktra2x9gp8eakdwsrv4k42ys4ajqy0r7f4k8hwrhcdt6sks7k7alz", + ], + "senders": Array [ + "addr_test1qr4qq9s7cf28zse9t4c46l3utj6ajphx654l8ddcv6rhketra2x9gp8eakdwsrv4k42ys4ajqy0r7f4k8hwrhcdt6sksjh37nz", + ], + "standard": undefined, + "tokenId": undefined, + "type": "IN", + "value": "5000000000", + }, + ], Array [], ] `; diff --git a/libs/ledger-live-common/src/families/cardano/test-dataset.ts b/libs/ledger-live-common/src/families/cardano/test-dataset.ts index be8fac2176b..a04de43d346 100644 --- a/libs/ledger-live-common/src/families/cardano/test-dataset.ts +++ b/libs/ledger-live-common/src/families/cardano/test-dataset.ts @@ -1,3 +1,4 @@ +import { NotEnoughBalance } from "@ledgerhq/errors"; import BigNumber from "bignumber.js"; import type { DatasetTest } from "../../types"; import { cardanoRawAccount1 } from "./datasets/rawAccount.1"; @@ -31,6 +32,43 @@ const dataset: DatasetTest = { }, }, }, + { + name: "token amount more than balance", + transaction: fromTransactionRaw({ + family: "cardano", + recipient: + "addr_test1qpl90kc2jl5kr9tev0s7vays9yhwcdnq8nlylyk4dqsdq3g466elxnxwrzwq72pvp5akenj30t5s9et7frfvrxxx8xcsxrzs87", + amount: "5000000001", + subAccountId: + "js:2:cardano_testnet:a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2:+cardano_testnet%2Fnative%2F581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e", + mode: "send", + }), + expectedStatus: { + amount: new BigNumber("5000000001"), + errors: { + amount: new NotEnoughBalance(), + }, + }, + }, + { + name: "send max token", + transaction: fromTransactionRaw({ + family: "cardano", + recipient: + "addr_test1qpl90kc2jl5kr9tev0s7vays9yhwcdnq8nlylyk4dqsdq3g466elxnxwrzwq72pvp5akenj30t5s9et7frfvrxxx8xcsxrzs87", + amount: "0", + subAccountId: + "js:2:cardano_testnet:a902bc61a79256e1d5858d2ba49cab7011a26ad49580daace7412e255e818b1c1eba2defa321ff2937deba397f639f5bbabb0f0064516301fa4d08663c83f5b2:+cardano_testnet%2Fnative%2F581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e", + mode: "send", + useAllAmount: true, + }), + expectedStatus: { + amount: new BigNumber("5000000000"), + totalSpent: new BigNumber("5000000000"), + errors: {}, + warnings: {}, + }, + }, ], }, ], From ec5cf36171dda6952ce6e3c64a6eb66107e9f578 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Fri, 24 Jun 2022 13:20:24 +0200 Subject: [PATCH 12/41] Add changeset --- .changeset/green-taxis-talk.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/green-taxis-talk.md diff --git a/.changeset/green-taxis-talk.md b/.changeset/green-taxis-talk.md new file mode 100644 index 00000000000..a04d105cad6 --- /dev/null +++ b/.changeset/green-taxis-talk.md @@ -0,0 +1,7 @@ +--- +"ledger-live-desktop": minor +"@ledgerhq/live-common": minor +"@ledgerhq/cryptoassets": minor +--- + +Add support of Cardano tokens in LLD From 42e43e4ced2c6cf79e5f6c046ea520f8c8a7f5ea Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Fri, 24 Jun 2022 13:27:10 +0200 Subject: [PATCH 13/41] Use correct cardano Nano app name --- libs/ledger-live-common/src/apps/support.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/ledger-live-common/src/apps/support.ts b/libs/ledger-live-common/src/apps/support.ts index 694be85ea26..87883c79e7f 100644 --- a/libs/ledger-live-common/src/apps/support.ts +++ b/libs/ledger-live-common/src/apps/support.ts @@ -35,7 +35,7 @@ const appVersionsRequired = { Elrond: ">= 1.0.11", Ethereum: ">= 1.9.17", Solana: ">= 1.2.0", - CardanoADA: ">= 4.1.0", + "Cardano ADA": ">= 4.1.0", }; export function mustUpgrade( deviceModel: DeviceModelId, From 10bad053c941cf43f868b68c75fb4a655cf86140 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Fri, 24 Jun 2022 13:51:33 +0200 Subject: [PATCH 14/41] trigger bot From 3df353c27cac34d42060d6faae8d5df695789e96 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Fri, 24 Jun 2022 13:56:44 +0200 Subject: [PATCH 15/41] Update cryptoassets.md --- apps/ledger-live-desktop/cryptoassets.md | 103 ++++++++++++++++++++++- 1 file changed, 102 insertions(+), 1 deletion(-) diff --git a/apps/ledger-live-desktop/cryptoassets.md b/apps/ledger-live-desktop/cryptoassets.md index 4ed3fb773ed..6fb5e4cd6fe 100644 --- a/apps/ledger-live-desktop/cryptoassets.md +++ b/apps/ledger-live-desktop/cryptoassets.md @@ -109,7 +109,7 @@ | lisk | LSK | NO | lisk | | æternity | AE | NO | aeternity | -## Tokens (10042) +## Tokens (10143) | parent currency | ticker | contract | name | status | ledger id | |--|--|--|--|--|--| | Algorand | ARCC | MESEJMPXKL7YUWEQGNRCKSLMQDKHOHWIZ3RBWP7BV4JDMUJXFUVQZWUBJM | Asia Reserve Currency Coin | countervalues disabled | algorand/asa/163650 | @@ -752,6 +752,107 @@ | Binance Smart Chain | VBSWAP | 0x4f0ed527e8A95ecAA132Af214dFd41F30b361600 | vSWAP.fi | countervalues disabled | bsc/bep20/vswap.fi | | Binance Smart Chain | WRX | 0x8e17ed70334C87eCE574C9d537BC153d8609e2a3 | wazirx token | countervalues disabled | bsc/bep20/wazirx_token | | Binance Smart Chain | WATCH | 0x7A9f28EB62C791422Aa23CeAE1dA9C847cBeC9b0 | yieldwatch | | bsc/bep20/yieldwatch | +| Cardano | PUDGY | 133fac9e153194428eb0919be39837b42b9e977fc7298f3ff1b76ef95055444759 | $PUDGY Token | | cardano/native/133fac9e153194428eb0919be39837b42b9e977fc7298f3ff1b76ef95055444759 | +| Cardano | WOLF | 1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6574f4c46 | $WOLF | | cardano/native/1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6574f4c46 | +| Cardano | ASHIB | afc910d7a306d20c12903979d4935ae4307241d03245743548e767834153484942 | ADA Shiba Inu | | cardano/native/afc910d7a306d20c12903979d4935ae4307241d03245743548e767834153484942 | +| Cardano | ADAFOX | e98165a25cd0320b25f22d686268e58e66f855b6d85974947ccd708d414441464f58 | ADAFOX | | cardano/native/e98165a25cd0320b25f22d686268e58e66f855b6d85974947ccd708d414441464f58 | +| Cardano | ADAX | 0c78f619e54a5d00e143f66181a2c500d0c394b38a10e86cd1a23c5f41444158 | ADAX | | cardano/native/0c78f619e54a5d00e143f66181a2c500d0c394b38a10e86cd1a23c5f41444158 | +| Cardano | AADA | 8fef2d34078659493ce161a6c7fba4b56afefa8535296a5743f6958741414441 | Aada DAO Token | | cardano/native/8fef2d34078659493ce161a6c7fba4b56afefa8535296a5743f6958741414441 | +| Cardano | ADO | 5ad8deb64bfec21ad2d96e1270b5873d0c4d0f231b928b4c39eb243561646f736961 | Adosia | | cardano/native/5ad8deb64bfec21ad2d96e1270b5873d0c4d0f231b928b4c39eb243561646f736961 | +| Cardano | BORGZ | 7f376e3d1cf52e6c4350a1a91c8f8d0f0b63baedd443999ebe8fe57a424f52475a | BORGZ | | cardano/native/7f376e3d1cf52e6c4350a1a91c8f8d0f0b63baedd443999ebe8fe57a424f52475a | +| Cardano | BROOM | 8d0ae3c5b13b47907b16511a540d47436d12dcc96453c0f59089b45142524f4f4d | BROOM Token | | cardano/native/8d0ae3c5b13b47907b16511a540d47436d12dcc96453c0f59089b45142524f4f4d | +| Cardano | BSEAL | 59e31d17e4d212ea35df6088e0395455c40f5ad463d161497a89c567426162795365616c | BabySeal | | cardano/native/59e31d17e4d212ea35df6088e0395455c40f5ad463d161497a89c567426162795365616c | +| Cardano | BEAG | d3558649b7874a1a596378515f9b80da63e73f324439ea113d34c9bb42454147 | Beagle Bucks | | cardano/native/d3558649b7874a1a596378515f9b80da63e73f324439ea113d34c9bb42454147 | +| Cardano | BISON | 2afb448ef716bfbed1dcb676102194c3009bee5399e93b90def9db6a4249534f4e | Bison Coin | | cardano/native/2afb448ef716bfbed1dcb676102194c3009bee5399e93b90def9db6a4249534f4e | +| Cardano | BDOGE | f555c46bad0731d080c9381d7fff6f82839946a66bd070d185e1ea2f42444f4745 | BlackDoge | | cardano/native/f555c46bad0731d080c9381d7fff6f82839946a66bd070d185e1ea2f42444f4745 | +| Cardano | BCG | 0c92aabef5a8f91a36470d0762806c165c0d04aa992541e25d55486a424347 | Blockchaingames | | cardano/native/0c92aabef5a8f91a36470d0762806c165c0d04aa992541e25d55486a424347 | +| Cardano | BLOOM | 4c17b7009448a33d1834b0946ea752ecd0cc61c7bb25cd9ff18cff58426c6f6f6d | Bloom | | cardano/native/4c17b7009448a33d1834b0946ea752ecd0cc61c7bb25cd9ff18cff58426c6f6f6d | +| Cardano | CHERRY | e14fe3ab348f9a6198359481472601f4557b9f86984f40a186a3b1e8434845525259 | CHERRY Token | | cardano/native/e14fe3ab348f9a6198359481472601f4557b9f86984f40a186a3b1e8434845525259 | +| Cardano | CLAP | db30c7905f598ed0154de14f970de0f61f0cb3943ed82c891968480a434c4150 | CLAP | | cardano/native/db30c7905f598ed0154de14f970de0f61f0cb3943ed82c891968480a434c4150 | +| Cardano | CardaniaFounderBlue | ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572426c7565 | CardaniaFounderBlue | | cardano/native/ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572426c7565 | +| Cardano | CardaniaFounderGreen | ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572477265656e | CardaniaFounderGreen | | cardano/native/ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572477265656e | +| Cardano | CardaniaFounderRed | ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572526564 | CardaniaFounderRed | | cardano/native/ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572526564 | +| Cardano | C4 | a00fdf4fb9ab6c8c2bd1533a2f14855edf12aed5ecbf96d4b5f5b9394334 | Cardano Crocs Club Coin | | cardano/native/a00fdf4fb9ab6c8c2bd1533a2f14855edf12aed5ecbf96d4b5f5b9394334 | +| Cardano | CARGO | f4364875e75320d405ceadebdf0db63fadaff55c72d4ff6b82f0676a434152474f | Cardano Gold | | cardano/native/f4364875e75320d405ceadebdf0db63fadaff55c72d4ff6b82f0676a434152474f | +| Cardano | CNT | 2c96f49b6e6e32ae69a182e85b74db4edfc9539496a13ab76d1258fa434e54 | Cardano Native Token | | cardano/native/2c96f49b6e6e32ae69a182e85b74db4edfc9539496a13ab76d1258fa434e54 | +| Cardano | CDOG | d030b626219d81673bd32932d2245e0c71ae5193281f971022b23a78436172646f67656f | Cardogeo | | cardano/native/d030b626219d81673bd32932d2245e0c71ae5193281f971022b23a78436172646f67656f | +| Cardano | $PURR | d3a034e403b98cbdb0adbc8a3144d7779330916e190d387815bb85c650555252 | CatKinson | | cardano/native/d3a034e403b98cbdb0adbc8a3144d7779330916e190d387815bb85c650555252 | +| Cardano | CHRLZ | e9c28a71273f825b13f38244ccf1fea97c4025813610d01a7c5d681f436861726c7a20546f6b656e | Charlz Token | | cardano/native/e9c28a71273f825b13f38244ccf1fea97c4025813610d01a7c5d681f436861726c7a20546f6b656e | +| Cardano | $CLAW | 240fb00eff73acc51c09e81dae6628c4bedb9964151d45e3faed874f434c4157 | Claw Token | | cardano/native/240fb00eff73acc51c09e81dae6628c4bedb9964151d45e3faed874f434c4157 | +| Cardano | COPI | b6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0436f726e75636f70696173205b76696120436861696e506f72742e696f5d | Cornucopias Token | | cardano/native/b6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0436f726e75636f70696173205b76696120436861696e506f72742e696f5d | +| Cardano | DANA | c88bbd1848db5ea665b1fffbefba86e8dcd723b5085348e8a8d2260f44414e41 | DANA | | cardano/native/c88bbd1848db5ea665b1fffbefba86e8dcd723b5085348e8a8d2260f44414e41 | +| Cardano | DIBS | c68307e7ca850513507f1498862a57c7f4fae7ba8e84b8bc074093a944494253 | DIBS | | cardano/native/c68307e7ca850513507f1498862a57c7f4fae7ba8e84b8bc074093a944494253 | +| Cardano | DOEX | dca54ecf37b0e3af2fdfd336e1d21fadcc45b3261b0f73a095631dfe444f4558 | DOEX | | cardano/native/dca54ecf37b0e3af2fdfd336e1d21fadcc45b3261b0f73a095631dfe444f4558 | +| Cardano | DRIP | af2e27f580f7f08e93190a81f72462f153026d06450924726645891b44524950 | DRIP | | cardano/native/af2e27f580f7f08e93190a81f72462f153026d06450924726645891b44524950 | +| Cardano | DEFS | f28f457472e539dc75e1598a2beddf49ce5a717998c708f05f5de61044454653 | Defender Silver | | cardano/native/f28f457472e539dc75e1598a2beddf49ce5a717998c708f05f5de61044454653 | +| Cardano | DGADA | b4273f1d8d0021d188784c3d72dc514f602b7ab8cfb87e3134550c42446f6765414441 | DogeADA | | cardano/native/b4273f1d8d0021d188784c3d72dc514f602b7ab8cfb87e3134550c42446f6765414441 | +| Cardano | ETB | a89568bb399d0cdc38367e47831c95186f5c79e58174e08a182323964554424643546f6b656e | ETBFCToken | | cardano/native/a89568bb399d0cdc38367e47831c95186f5c79e58174e08a182323964554424643546f6b656e | +| Cardano | EMP | 6c8642400e8437f737eb86df0fc8a8437c760f48592b1ba8f5767e81456d706f7761 | Empowa | | cardano/native/6c8642400e8437f737eb86df0fc8a8437c760f48592b1ba8f5767e81456d706f7761 | +| Cardano | EUS | 88691a70bb0fe49cf9124b4f78553c36c09fa6264844e2b2941191734575736b6f | Eusko | | cardano/native/88691a70bb0fe49cf9124b4f78553c36c09fa6264844e2b2941191734575736b6f | +| Cardano | FIRE | 2441ab3351c3b80213a98f4e09ddcf7dabe4879c3c94cc4e7205cb6346495245 | FIRE | | cardano/native/2441ab3351c3b80213a98f4e09ddcf7dabe4879c3c94cc4e7205cb6346495245 | +| Cardano | FIRE | a4da8764a57e66a0085b5bfcde96c89b798d92ee83a75f59237e375b46495245 | FIRE Token | | cardano/native/a4da8764a57e66a0085b5bfcde96c89b798d92ee83a75f59237e375b46495245 | +| Cardano | FGC | 5029eeccd52fef299509d509a8318fd7930c3dffcce1f9f39ff11ef9464743 | FabianGamerCoin | | cardano/native/5029eeccd52fef299509d509a8318fd7930c3dffcce1f9f39ff11ef9464743 | +| Cardano | FLICK | df0172804f8418afc4e5b0a15b8fc78bdc3ca6d179405a7cd194f3b4464c49434b | Flickto | | cardano/native/df0172804f8418afc4e5b0a15b8fc78bdc3ca6d179405a7cd194f3b4464c49434b | +| Cardano | FUD | dbc31b04d90b37332813cb4cee3e8f79994643d899a5366797e745ee465544 | FudCoin | | cardano/native/dbc31b04d90b37332813cb4cee3e8f79994643d899a5366797e745ee465544 | +| Cardano | GROW | 544571c086d0e5c5022aca9717dd0f438e21190abb48f37b3ae129f047524f57 | GROW Token | | cardano/native/544571c086d0e5c5022aca9717dd0f438e21190abb48f37b3ae129f047524f57 | +| Cardano | GOKEY | c7dcfa416c127f630b263c7e0fe0564430cfa9c56bba43e1a37c6915474f4b4559 | GoKey | | cardano/native/c7dcfa416c127f630b263c7e0fe0564430cfa9c56bba43e1a37c6915474f4b4559 | +| Cardano | GTCHI | aea1ceb3625680e2f7a31ea1a64c9c430c34d8588bf4f8e3c7f9b1dd476f74636869 | Gotchi | | cardano/native/aea1ceb3625680e2f7a31ea1a64c9c430c34d8588bf4f8e3c7f9b1dd476f74636869 | +| Cardano | HOSKY | a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235484f534b59 | HOSKY Token | | cardano/native/a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235484f534b59 | +| Cardano | HI | 1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d4849 | Hosky Inu | | cardano/native/1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d4849 | +| Cardano | HIS | 1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d484953 | Hosky Inu Silver | | cardano/native/1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d484953 | +| Cardano | BLC | 585cfcbdd0786e961187999e5d5d36b38d1ebc1c4112a0a95a8bd477424c43 | Ibilecoin | | cardano/native/585cfcbdd0786e961187999e5d5d36b38d1ebc1c4112a0a95a8bd477424c43 | +| Cardano | KAIZEN | cfee97ff8359f07a0a395a72b424bc6e030503390d864b86d4e0ecf84b41495a454e | KAIZEN | | cardano/native/cfee97ff8359f07a0a395a72b424bc6e030503390d864b86d4e0ecf84b41495a454e | +| Cardano | KIDZ | c4c00fbd8fa227442a5e7cdecde33b24588494d05a2c50fda8938c6d4b49445a | Kidz Coin | | cardano/native/c4c00fbd8fa227442a5e7cdecde33b24588494d05a2c50fda8938c6d4b49445a | +| Cardano | $LOBSTER | 8654e8b350e298c80d2451beb5ed80fc9eee9f38ce6b039fb8706bc34c4f4253544552 | LOBSTER | | cardano/native/8654e8b350e298c80d2451beb5ed80fc9eee9f38ce6b039fb8706bc34c4f4253544552 | +| Cardano | LOG | c9f955eeffa84e42363b4992281d32dd2f9239153d6c66420a9acc154c4f47 | Life Log Token | | cardano/native/c9f955eeffa84e42363b4992281d32dd2f9239153d6c66420a9acc154c4f47 | +| Cardano | LQ | da8c30857834c6ae7203935b89278c532b3995245295456f993e1d244c51 | Liqwid DAO Token | | cardano/native/da8c30857834c6ae7203935b89278c532b3995245295456f993e1d244c51 | +| Cardano | LOOKZ | aa2797739e4f4a1efd5346998febff59909e425b5fddb1b0ec4a24f84c6f6f6b7a | Lookz | | cardano/native/aa2797739e4f4a1efd5346998febff59909e425b5fddb1b0ec4a24f84c6f6f6b7a | +| Cardano | MELD | 6ac8ef33b510ec004fe11585f7c5a9f0c07f0c23428ab4f29c1d7d104d454c44 | MELD | | cardano/native/6ac8ef33b510ec004fe11585f7c5a9f0c07f0c23428ab4f29c1d7d104d454c44 | +| Cardano | MEOW | 1dd1a7dde0e1e82761325ee5f4719d0d4b7c24dfba77d9bee01eed4b4d454f57 | MEOW | | cardano/native/1dd1a7dde0e1e82761325ee5f4719d0d4b7c24dfba77d9bee01eed4b4d454f57 | +| Cardano | MILK | 8a1cfae21368b8bebbbed9800fec304e95cce39a2a57dc35e2e3ebaa4d494c4b | MILK | | cardano/native/8a1cfae21368b8bebbbed9800fec304e95cce39a2a57dc35e2e3ebaa4d494c4b | +| Cardano | MYTH | 987c1f90efe1c95957509b460e0e4f6d6b3f7025a7aca99cd29090374d595448 | MYTH | | cardano/native/987c1f90efe1c95957509b460e0e4f6d6b3f7025a7aca99cd29090374d595448 | +| Cardano | MKA | f4d97191f857096b441a410c036f63d6697dde0c71d2755dd664e3024d4b41 | Merkaba | | cardano/native/f4d97191f857096b441a410c036f63d6697dde0c71d2755dd664e3024d4b41 | +| Cardano | MIN | 29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e | Minswap | | cardano/native/29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e | +| Cardano | MINt | 29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e74 | Minswap MINt | | cardano/native/29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e74 | +| Cardano | MYST | d01794c4604f3c0e544c537bb1f4268c0e81f45880c00c09ebe4b4a74d595354 | Mystery Token | | cardano/native/d01794c4604f3c0e544c537bb1f4268c0e81f45880c00c09ebe4b4a74d595354 | +| Cardano | NEWM | 682fe60c9918842b3323c43b5144bc3d52a23bd2fb81345560d73f634e45574d | NEWM | | cardano/native/682fe60c9918842b3323c43b5144bc3d52a23bd2fb81345560d73f634e45574d | +| Cardano | NFTC | b0af30edf2c7f11465853821137e0a6ebc395cab71ee39c24127ffb44e465443 | NFT Creative Coin | | cardano/native/b0af30edf2c7f11465853821137e0a6ebc395cab71ee39c24127ffb44e465443 | +| Cardano | PAVIA | 884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903ae5041564941 | PAVIA Token | | cardano/native/884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903ae5041564941 | +| Cardano | PIGY | 2aa9c1557fcf8e7caa049fa0911a8724a1cdaf8037fe0b431c6ac66450494759546f6b656e | PIGY Token | | cardano/native/2aa9c1557fcf8e7caa049fa0911a8724a1cdaf8037fe0b431c6ac66450494759546f6b656e | +| Cardano | PROXIE | 20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3c50524f584945 | PROXIE | | cardano/native/20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3c50524f584945 | +| Cardano | PinacolADA | 0c442180dd6163682d8e03b271caefb4944a24412bdd07adafb04ccb50494e41434f4c414441 | PinacolADA | | cardano/native/0c442180dd6163682d8e03b271caefb4944a24412bdd07adafb04ccb50494e41434f4c414441 | +| Cardano | PTC | 007394e3117755fbb0558b93c54ce3bc6c85770920044ade143dc742505443 | Pocket Change | | cardano/native/007394e3117755fbb0558b93c54ce3bc6c85770920044ade143dc742505443 | +| Cardano | KOZ | 63766427b4499dd678cb8b715dec3265dd292279ce7779447e3651e54b4f5a | Politikoz Token | | cardano/native/63766427b4499dd678cb8b715dec3265dd292279ce7779447e3651e54b4f5a | +| Cardano | PoolPeekCoin | d0af056c509b6b1133cd83a750b7245e561169281fde3df1cb6e2d96506f6f6c5065656b436f696e | PoolPeekCoin | | cardano/native/d0af056c509b6b1133cd83a750b7245e561169281fde3df1cb6e2d96506f6f6c5065656b436f696e | +| Cardano | QUID | b0446f1c9105f0cc5bb6bd092f5c3e523e13f8a999b31c870298fa4051554944 | QUID | | cardano/native/b0446f1c9105f0cc5bb6bd092f5c3e523e13f8a999b31c870298fa4051554944 | +| Cardano | RAD | 6787a47e9f73efe4002d763337140da27afa8eb9a39413d2c39d4286524144546f6b656e73 | RADTokens | | cardano/native/6787a47e9f73efe4002d763337140da27afa8eb9a39413d2c39d4286524144546f6b656e73 | +| Cardano | RAT | d5dec6074942b36b50975294fd801f7f28c907476b1ecc1b57c916ed524154 | RAT | | cardano/native/d5dec6074942b36b50975294fd801f7f28c907476b1ecc1b57c916ed524154 | +| Cardano | RAG | ca942cb8bb5d1ef750766ded355f320880539111f10efa2b1a478ff9524147 | RaggieCoin | | cardano/native/ca942cb8bb5d1ef750766ded355f320880539111f10efa2b1a478ff9524147 | +| Cardano | RAVE | 14a3455f71c435a04ea1fdb50a3ef4c1cab0e79fb1565627ac66a57552415645 | Ravendex | | cardano/native/14a3455f71c435a04ea1fdb50a3ef4c1cab0e79fb1565627ac66a57552415645 | +| Cardano | REVU | 94cbb4fcbcaa2975779f273b263eb3b5f24a9951e446d6dc4c13586452455655 | Revuto | | cardano/native/94cbb4fcbcaa2975779f273b263eb3b5f24a9951e446d6dc4c13586452455655 | +| Cardano | SHIBA | 208a2ca888886921513cb777bb832a8dc685c04de990480151f1215053484942414441 | SHIBADA | | cardano/native/208a2ca888886921513cb777bb832a8dc685c04de990480151f1215053484942414441 | +| Cardano | SKULL | 885742cd7e0dad321622b5d3ad186797bd50c44cbde8b48be1583fbd534b554c4c | SKULL | | cardano/native/885742cd7e0dad321622b5d3ad186797bd50c44cbde8b48be1583fbd534b554c4c | +| Cardano | SNOW | 8f52f6a88acf6127bc4758a16b6047afc4da7887feae121ec217b75a534e4f57 | SNOW | | cardano/native/8f52f6a88acf6127bc4758a16b6047afc4da7887feae121ec217b75a534e4f57 | +| Cardano | SOCIETY | 25f0fc240e91bd95dcdaebd2ba7713fc5168ac77234a3d79449fc20c534f4349455459 | SOCIETY | | cardano/native/25f0fc240e91bd95dcdaebd2ba7713fc5168ac77234a3d79449fc20c534f4349455459 | +| Cardano | SUNDAE | 9a9693a9a37912a5097918f97918d15240c92ab729a0b7c4aa144d7753554e444145 | SUNDAE | | cardano/native/9a9693a9a37912a5097918f97918d15240c92ab729a0b7c4aa144d7753554e444145 | +| Cardano | SWEET | 47959e79846b8bdcacb91f586408d97e2dff44f31a04f03902cba8185357454554 | SWEET | | cardano/native/47959e79846b8bdcacb91f586408d97e2dff44f31a04f03902cba8185357454554 | +| Cardano | STRIP | 6954264b15bc92d6d592febeac84f14645e1ed46ca5ebb9acdb5c15f5354524950 | StripperCoin | | cardano/native/6954264b15bc92d6d592febeac84f14645e1ed46ca5ebb9acdb5c15f5354524950 | +| Cardano | TOKEN | 0171c997b8853fde686763d93b36ab8e04ce947bb6aa09a9ee5c4401544f4b454e | TOKEN | | cardano/native/0171c997b8853fde686763d93b36ab8e04ce947bb6aa09a9ee5c4401544f4b454e | +| Cardano | Tokhun | 4247d5091db82330100904963ab8d0850976c80d3f1b927e052e07bd546f6b68756e | Tokhun.io Token | | cardano/native/4247d5091db82330100904963ab8d0850976c80d3f1b927e052e07bd546f6b68756e | +| Cardano | VYFI | 804f5544c1962a40546827cab750a88404dc7108c0f588b72964754f56594649 | VYFI | | cardano/native/804f5544c1962a40546827cab750a88404dc7108c0f588b72964754f56594649 | +| Cardano | TREES | f7c777fdd4531cf1c477551360e45b9684073c05c2fa61334f8f9add5665726974726565546f6b656e | VeritreeToken | | cardano/native/f7c777fdd4531cf1c477551360e45b9684073c05c2fa61334f8f9add5665726974726565546f6b656e | +| Cardano | virus | 0fd9819a9d7fb414880883f43a42d33458f12bc5f9841cec6457dc155669527553 | Virus | | cardano/native/0fd9819a9d7fb414880883f43a42d33458f12bc5f9841cec6457dc155669527553 | +| Cardano | WDAY | a3914cb7a564d010c7b67774ac8720a8ece3a758279b51d8a1c05cc55745444e4553444159 | Wednesday | | cardano/native/a3914cb7a564d010c7b67774ac8720a8ece3a758279b51d8a1c05cc55745444e4553444159 | +| Cardano | WMT | 1d7f33bd23d85e1a25d87d86fac4f199c3197a2f7afeb662a0f34e1e776f726c646d6f62696c65746f6b656e | World Mobile Token | | cardano/native/1d7f33bd23d85e1a25d87d86fac4f199c3197a2f7afeb662a0f34e1e776f726c646d6f62696c65746f6b656e | +| Cardano | XRAY | ae2a0aa5a24b27d9868c4a73b7c08077ac21baade5eca0fa467a2bbd58524159 | XRAY | | cardano/native/ae2a0aa5a24b27d9868c4a73b7c08077ac21baade5eca0fa467a2bbd58524159 | +| Cardano | XT | 300ec0d82a79acdc0616fdc0ef615e7deeddb03275e834685e9ee8a65854 | XT | | cardano/native/300ec0d82a79acdc0616fdc0ef615e7deeddb03275e834685e9ee8a65854 | +| Cardano | YAY | 57684adcb032c8dbc40179841bed987d8dee7472617a0e5c25ef414059617953776170 | YaySwap | | cardano/native/57684adcb032c8dbc40179841bed987d8dee7472617a0e5c25ef414059617953776170 | +| Cardano | cNETA | b34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757a634e455441 | anetaBTC | | cardano/native/b34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757a634e455441 | +| Cardano | cbTHC | 025146866af908340247fe4e9672d5ac7059f1e8534696b5f920c9e66362544843 | cbTHC | | cardano/native/025146866af908340247fe4e9672d5ac7059f1e8534696b5f920c9e66362544843 | +| Cardano | GMBL | 2b0a04a7b60132b1805b296c7fcb3b217ff14413991bf76f72663c3067696d62616c | gimbal | | cardano/native/2b0a04a7b60132b1805b296c7fcb3b217ff14413991bf76f72663c3067696d62616c | +| Cardano | purrADA | 97747aa3c33fdfe4b5faa7bb8b4534932c6d980cb13c14c5a547e7ca70757272414441 | purrADA | | cardano/native/97747aa3c33fdfe4b5faa7bb8b4534932c6d980cb13c14c5a547e7ca70757272414441 | +| Cardano | SPACE | d894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a07370616365636f696e73 | spacecoins | | cardano/native/d894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a07370616365636f696e73 | +| Cardano (Testnet) | tToken | 581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e | TEST_TOKEN | | cardano_testnet/native/581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e | | Elrond | MEX | erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u | MEX | | elrond/esdt/4d45582d343535633537 | | Elrond | USDC | erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u | WrappedUSDC | | elrond/esdt/555344432d633736663166 | | Elrond | RIDE | erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u | holoride | | elrond/esdt/524944452d376431386539 | From 279e7d660c07755723c54264e64b2db7abd77b9c Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Fri, 24 Jun 2022 13:57:47 +0200 Subject: [PATCH 16/41] Update sortByMarketcap.test.ts.snap --- .../sortByMarketcap.test.ts.snap | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/libs/ledger-live-common/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap b/libs/ledger-live-common/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap index 82eb7660795..d295eeda037 100644 --- a/libs/ledger-live-common/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +++ b/libs/ledger-live-common/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap @@ -6387,5 +6387,106 @@ Array [ "algorand/asa/137594422", "elrond/esdt/555344432d633736663166", "elrond/esdt/524944452d376431386539", + "cardano_testnet/native/581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e", + "cardano/native/a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235484f534b59", + "cardano/native/af2e27f580f7f08e93190a81f72462f153026d06450924726645891b44524950", + "cardano/native/9a9693a9a37912a5097918f97918d15240c92ab729a0b7c4aa144d7753554e444145", + "cardano/native/4247d5091db82330100904963ab8d0850976c80d3f1b927e052e07bd546f6b68756e", + "cardano/native/d894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a07370616365636f696e73", + "cardano/native/29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e", + "cardano/native/afc910d7a306d20c12903979d4935ae4307241d03245743548e767834153484942", + "cardano/native/5ad8deb64bfec21ad2d96e1270b5873d0c4d0f231b928b4c39eb243561646f736961", + "cardano/native/8654e8b350e298c80d2451beb5ed80fc9eee9f38ce6b039fb8706bc34c4f4253544552", + "cardano/native/d030b626219d81673bd32932d2245e0c71ae5193281f971022b23a78436172646f67656f", + "cardano/native/a4da8764a57e66a0085b5bfcde96c89b798d92ee83a75f59237e375b46495245", + "cardano/native/2afb448ef716bfbed1dcb676102194c3009bee5399e93b90def9db6a4249534f4e", + "cardano/native/f28f457472e539dc75e1598a2beddf49ce5a717998c708f05f5de61044454653", + "cardano/native/544571c086d0e5c5022aca9717dd0f438e21190abb48f37b3ae129f047524f57", + "cardano/native/1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6574f4c46", + "cardano/native/884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903ae5041564941", + "cardano/native/7f376e3d1cf52e6c4350a1a91c8f8d0f0b63baedd443999ebe8fe57a424f52475a", + "cardano/native/987c1f90efe1c95957509b460e0e4f6d6b3f7025a7aca99cd29090374d595448", + "cardano/native/6954264b15bc92d6d592febeac84f14645e1ed46ca5ebb9acdb5c15f5354524950", + "cardano/native/6ac8ef33b510ec004fe11585f7c5a9f0c07f0c23428ab4f29c1d7d104d454c44", + "cardano/native/b0446f1c9105f0cc5bb6bd092f5c3e523e13f8a999b31c870298fa4051554944", + "cardano/native/025146866af908340247fe4e9672d5ac7059f1e8534696b5f920c9e66362544843", + "cardano/native/c68307e7ca850513507f1498862a57c7f4fae7ba8e84b8bc074093a944494253", + "cardano/native/1d7f33bd23d85e1a25d87d86fac4f199c3197a2f7afeb662a0f34e1e776f726c646d6f62696c65746f6b656e", + "cardano/native/1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d4849", + "cardano/native/8d0ae3c5b13b47907b16511a540d47436d12dcc96453c0f59089b45142524f4f4d", + "cardano/native/d3558649b7874a1a596378515f9b80da63e73f324439ea113d34c9bb42454147", + "cardano/native/5029eeccd52fef299509d509a8318fd7930c3dffcce1f9f39ff11ef9464743", + "cardano/native/88691a70bb0fe49cf9124b4f78553c36c09fa6264844e2b2941191734575736b6f", + "cardano/native/cfee97ff8359f07a0a395a72b424bc6e030503390d864b86d4e0ecf84b41495a454e", + "cardano/native/e14fe3ab348f9a6198359481472601f4557b9f86984f40a186a3b1e8434845525259", + "cardano/native/e98165a25cd0320b25f22d686268e58e66f855b6d85974947ccd708d414441464f58", + "cardano/native/da8c30857834c6ae7203935b89278c532b3995245295456f993e1d244c51", + "cardano/native/b34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757a634e455441", + "cardano/native/300ec0d82a79acdc0616fdc0ef615e7deeddb03275e834685e9ee8a65854", + "cardano/native/682fe60c9918842b3323c43b5144bc3d52a23bd2fb81345560d73f634e45574d", + "cardano/native/d3a034e403b98cbdb0adbc8a3144d7779330916e190d387815bb85c650555252", + "cardano/native/007394e3117755fbb0558b93c54ce3bc6c85770920044ade143dc742505443", + "cardano/native/a3914cb7a564d010c7b67774ac8720a8ece3a758279b51d8a1c05cc55745444e4553444159", + "cardano/native/d01794c4604f3c0e544c537bb1f4268c0e81f45880c00c09ebe4b4a74d595354", + "cardano/native/29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e74", + "cardano/native/8a1cfae21368b8bebbbed9800fec304e95cce39a2a57dc35e2e3ebaa4d494c4b", + "cardano/native/a89568bb399d0cdc38367e47831c95186f5c79e58174e08a182323964554424643546f6b656e", + "cardano/native/c88bbd1848db5ea665b1fffbefba86e8dcd723b5085348e8a8d2260f44414e41", + "cardano/native/47959e79846b8bdcacb91f586408d97e2dff44f31a04f03902cba8185357454554", + "cardano/native/0171c997b8853fde686763d93b36ab8e04ce947bb6aa09a9ee5c4401544f4b454e", + "cardano/native/d5dec6074942b36b50975294fd801f7f28c907476b1ecc1b57c916ed524154", + "cardano/native/8fef2d34078659493ce161a6c7fba4b56afefa8535296a5743f6958741414441", + "cardano/native/0c78f619e54a5d00e143f66181a2c500d0c394b38a10e86cd1a23c5f41444158", + "cardano/native/585cfcbdd0786e961187999e5d5d36b38d1ebc1c4112a0a95a8bd477424c43", + "cardano/native/0c442180dd6163682d8e03b271caefb4944a24412bdd07adafb04ccb50494e41434f4c414441", + "cardano/native/f4d97191f857096b441a410c036f63d6697dde0c71d2755dd664e3024d4b41", + "cardano/native/804f5544c1962a40546827cab750a88404dc7108c0f588b72964754f56594649", + "cardano/native/ae2a0aa5a24b27d9868c4a73b7c08077ac21baade5eca0fa467a2bbd58524159", + "cardano/native/0fd9819a9d7fb414880883f43a42d33458f12bc5f9841cec6457dc155669527553", + "cardano/native/df0172804f8418afc4e5b0a15b8fc78bdc3ca6d179405a7cd194f3b4464c49434b", + "cardano/native/20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3c50524f584945", + "cardano/native/e9c28a71273f825b13f38244ccf1fea97c4025813610d01a7c5d681f436861726c7a20546f6b656e", + "cardano/native/6787a47e9f73efe4002d763337140da27afa8eb9a39413d2c39d4286524144546f6b656e73", + "cardano/native/db30c7905f598ed0154de14f970de0f61f0cb3943ed82c891968480a434c4150", + "cardano/native/aea1ceb3625680e2f7a31ea1a64c9c430c34d8588bf4f8e3c7f9b1dd476f74636869", + "cardano/native/14a3455f71c435a04ea1fdb50a3ef4c1cab0e79fb1565627ac66a57552415645", + "cardano/native/2b0a04a7b60132b1805b296c7fcb3b217ff14413991bf76f72663c3067696d62616c", + "cardano/native/4c17b7009448a33d1834b0946ea752ecd0cc61c7bb25cd9ff18cff58426c6f6f6d", + "cardano/native/94cbb4fcbcaa2975779f273b263eb3b5f24a9951e446d6dc4c13586452455655", + "cardano/native/63766427b4499dd678cb8b715dec3265dd292279ce7779447e3651e54b4f5a", + "cardano/native/885742cd7e0dad321622b5d3ad186797bd50c44cbde8b48be1583fbd534b554c4c", + "cardano/native/f7c777fdd4531cf1c477551360e45b9684073c05c2fa61334f8f9add5665726974726565546f6b656e", + "cardano/native/aa2797739e4f4a1efd5346998febff59909e425b5fddb1b0ec4a24f84c6f6f6b7a", + "cardano/native/dca54ecf37b0e3af2fdfd336e1d21fadcc45b3261b0f73a095631dfe444f4558", + "cardano/native/25f0fc240e91bd95dcdaebd2ba7713fc5168ac77234a3d79449fc20c534f4349455459", + "cardano/native/57684adcb032c8dbc40179841bed987d8dee7472617a0e5c25ef414059617953776170", + "cardano/native/c9f955eeffa84e42363b4992281d32dd2f9239153d6c66420a9acc154c4f47", + "cardano/native/240fb00eff73acc51c09e81dae6628c4bedb9964151d45e3faed874f434c4157", + "cardano/native/2aa9c1557fcf8e7caa049fa0911a8724a1cdaf8037fe0b431c6ac66450494759546f6b656e", + "cardano/native/2c96f49b6e6e32ae69a182e85b74db4edfc9539496a13ab76d1258fa434e54", + "cardano/native/b6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0436f726e75636f70696173205b76696120436861696e506f72742e696f5d", + "cardano/native/208a2ca888886921513cb777bb832a8dc685c04de990480151f1215053484942414441", + "cardano/native/c4c00fbd8fa227442a5e7cdecde33b24588494d05a2c50fda8938c6d4b49445a", + "cardano/native/dbc31b04d90b37332813cb4cee3e8f79994643d899a5366797e745ee465544", + "cardano/native/d0af056c509b6b1133cd83a750b7245e561169281fde3df1cb6e2d96506f6f6c5065656b436f696e", + "cardano/native/8f52f6a88acf6127bc4758a16b6047afc4da7887feae121ec217b75a534e4f57", + "cardano/native/2441ab3351c3b80213a98f4e09ddcf7dabe4879c3c94cc4e7205cb6346495245", + "cardano/native/c7dcfa416c127f630b263c7e0fe0564430cfa9c56bba43e1a37c6915474f4b4559", + "cardano/native/97747aa3c33fdfe4b5faa7bb8b4534932c6d980cb13c14c5a547e7ca70757272414441", + "cardano/native/ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572426c7565", + "cardano/native/ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572526564", + "cardano/native/1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d484953", + "cardano/native/ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572477265656e", + "cardano/native/b4273f1d8d0021d188784c3d72dc514f602b7ab8cfb87e3134550c42446f6765414441", + "cardano/native/133fac9e153194428eb0919be39837b42b9e977fc7298f3ff1b76ef95055444759", + "cardano/native/f555c46bad0731d080c9381d7fff6f82839946a66bd070d185e1ea2f42444f4745", + "cardano/native/1dd1a7dde0e1e82761325ee5f4719d0d4b7c24dfba77d9bee01eed4b4d454f57", + "cardano/native/a00fdf4fb9ab6c8c2bd1533a2f14855edf12aed5ecbf96d4b5f5b9394334", + "cardano/native/f4364875e75320d405ceadebdf0db63fadaff55c72d4ff6b82f0676a434152474f", + "cardano/native/59e31d17e4d212ea35df6088e0395455c40f5ad463d161497a89c567426162795365616c", + "cardano/native/b0af30edf2c7f11465853821137e0a6ebc395cab71ee39c24127ffb44e465443", + "cardano/native/6c8642400e8437f737eb86df0fc8a8437c760f48592b1ba8f5767e81456d706f7761", + "cardano/native/ca942cb8bb5d1ef750766ded355f320880539111f10efa2b1a478ff9524147", + "cardano/native/0c92aabef5a8f91a36470d0762806c165c0d04aa992541e25d55486a424347", ] `; From 80f21750b43735eff220a1b8200934a28df4e6b9 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Fri, 24 Jun 2022 15:19:22 +0200 Subject: [PATCH 17/41] trigger bot From d811fb2d2553e2dabf2fd055c848df928cf5b16c Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Fri, 24 Jun 2022 15:44:49 +0200 Subject: [PATCH 18/41] trigger bot From fbf2d56b83351179547966a267d05bf62476ce99 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Fri, 24 Jun 2022 16:15:14 +0200 Subject: [PATCH 19/41] trigger bot From 9a2866c5adda84ab3aaa1ec47304c7a924509767 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Fri, 24 Jun 2022 17:32:10 +0200 Subject: [PATCH 20/41] trigger bot From a18efba5906d41a4d25a2fa1ef7795bc84f422f2 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Mon, 27 Jun 2022 10:11:19 +0200 Subject: [PATCH 21/41] trigger bot From c403fd6a78810dc0d127478c68f0adc8a9a7c812 Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Tue, 28 Jun 2022 13:23:27 +0530 Subject: [PATCH 22/41] use dummy address for estimateMaxSpendable --- .../src/families/cardano/js-estimateMaxSpendable.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/ledger-live-common/src/families/cardano/js-estimateMaxSpendable.ts b/libs/ledger-live-common/src/families/cardano/js-estimateMaxSpendable.ts index 9383f05c147..1df0a280258 100644 --- a/libs/ledger-live-common/src/families/cardano/js-estimateMaxSpendable.ts +++ b/libs/ledger-live-common/src/families/cardano/js-estimateMaxSpendable.ts @@ -30,10 +30,13 @@ const estimateMaxSpendable = async ({ return account.balance; } + const dummyRecipient = + "addr_test1vqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqd9tg5t"; const a = getMainAccount(account, parentAccount); - const t = { + const t: Transaction = { ...createTransaction(), ...transaction, + recipient: dummyRecipient, // amount field will not be used to build a transaction when useAllAmount is true amount: new BigNumber(0), useAllAmount: true, From 93934c5007e73fdc158b1b6cb25da06df7e103b1 Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Tue, 28 Jun 2022 14:10:42 +0530 Subject: [PATCH 23/41] dummyRecipient change for estimateMaxSpendable --- .../src/families/cardano/js-estimateMaxSpendable.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/ledger-live-common/src/families/cardano/js-estimateMaxSpendable.ts b/libs/ledger-live-common/src/families/cardano/js-estimateMaxSpendable.ts index 1df0a280258..58cb76a8e37 100644 --- a/libs/ledger-live-common/src/families/cardano/js-estimateMaxSpendable.ts +++ b/libs/ledger-live-common/src/families/cardano/js-estimateMaxSpendable.ts @@ -31,7 +31,7 @@ const estimateMaxSpendable = async ({ } const dummyRecipient = - "addr_test1vqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqd9tg5t"; + "addr_test1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq0uk53y"; const a = getMainAccount(account, parentAccount); const t: Transaction = { ...createTransaction(), From e2bfa0c9bcb01271bb7090fd467be1d412de7617 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Tue, 28 Jun 2022 12:07:41 +0200 Subject: [PATCH 24/41] trigger bot From 089ceb7cf46af3dd178e903f6488e44cb32d6765 Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Tue, 28 Jun 2022 15:56:54 +0530 Subject: [PATCH 25/41] add syncHash --- .../families/cardano/js-synchronisation.ts | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts b/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts index dc377e9375d..925c47f62bc 100644 --- a/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts +++ b/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts @@ -31,6 +31,7 @@ import postSyncPatch from "./postSyncPatch"; import { getTransactions } from "./api/getTransactions"; import { buildSubAccounts } from "./buildSubAccounts"; import { calculateMinUtxoAmount } from "@stricahq/typhonjs/dist/utils/utils"; +import { listTokensForCryptoCurrency } from "../../currencies"; function mapTxToAccountOperation( tx: APITransaction, @@ -119,7 +120,10 @@ function prepareUtxos( return utxos; } -export const getAccountShape: GetAccountShape = async (info) => { +export const getAccountShape: GetAccountShape = async ( + info, + { blacklistedTokenIds } +) => { const { transport, currency, @@ -155,13 +159,26 @@ export const getAccountShape: GetAccountShape = async (info) => { derivationMode, }); + // when new tokens are added / blacklist changes, we need to sync again because we need to go through all operations again + const syncHash = + JSON.stringify(blacklistedTokenIds || []) + + "_" + + listTokensForCryptoCurrency(currency, { + withDelisted: true, + }).length; + const outdatedSyncHash = initialAccount?.syncHash !== syncHash; + const requiredConfirmations = 90; - const syncFromBlockHeight = + let syncFromBlockHeight = initialAccount?.blockHeight && initialAccount.blockHeight > requiredConfirmations ? initialAccount.blockHeight - requiredConfirmations : 0; + if (outdatedSyncHash) { + syncFromBlockHeight = 0; + } + const { transactions: newTransactions, blockHeight, @@ -249,6 +266,7 @@ export const getAccountShape: GetAccountShape = async (info) => { balance: accountBalance, spendableBalance: accountBalance.minus(minAdaBalanceForTokens), operations: operations, + syncHash, subAccounts, freshAddresses, freshAddress: freshAddresses[0].address, From 298f22af43ed42543a37e91f40380739ca5cc3be Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Tue, 28 Jun 2022 13:37:48 +0200 Subject: [PATCH 26/41] trigger bot From c9bcd8b348782e5c75753af71f5ffab28197b7f1 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Tue, 28 Jun 2022 14:45:27 +0200 Subject: [PATCH 27/41] trigger bot From 603b21aad5074a53b2e16fbd89fd69213d12ab6f Mon Sep 17 00:00:00 2001 From: Pavan Vora Date: Tue, 28 Jun 2022 20:30:03 +0530 Subject: [PATCH 28/41] optimisticOperation memo fix --- .../src/families/cardano/js-signOperation.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libs/ledger-live-common/src/families/cardano/js-signOperation.ts b/libs/ledger-live-common/src/families/cardano/js-signOperation.ts index 2925a236ea3..77fcf504bf6 100644 --- a/libs/ledger-live-common/src/families/cardano/js-signOperation.ts +++ b/libs/ledger-live-common/src/families/cardano/js-signOperation.ts @@ -83,8 +83,11 @@ const buildOptimisticOperation = ( const memoMetadata = auxiliaryData.metadata.find( (m) => m.label === MEMO_LABEL ); - if (memoMetadata && Array.isArray(memoMetadata.data)) { - memo = memoMetadata.data.join(", "); + if (memoMetadata && memoMetadata.data instanceof Map) { + const msg = memoMetadata.data.get("msg"); + if (Array.isArray(msg) && msg.length) { + memo = msg.join(", "); + } } } From ad1d98cb9ab651ff97ab19d569d578780b36cb86 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Wed, 6 Jul 2022 19:16:02 +0200 Subject: [PATCH 29/41] Lint: rename js files to jsx --- ...untBalanceSummaryFooter.js => AccountBalanceSummaryFooter.jsx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename apps/ledger-live-desktop/src/renderer/families/cardano/{AccountBalanceSummaryFooter.js => AccountBalanceSummaryFooter.jsx} (100%) diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.js b/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.jsx similarity index 100% rename from apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.js rename to apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.jsx From cd98b392ff68ea142d856bb10826f5b1bb1b445c Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Wed, 6 Jul 2022 19:34:46 +0200 Subject: [PATCH 30/41] trigger bot From 1c9a16467c2226f5f43453fca1464d289cb7e57c Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Wed, 6 Jul 2022 19:57:44 +0200 Subject: [PATCH 31/41] Lint: fix imports --- .../renderer/families/cardano/AccountBalanceSummaryFooter.jsx | 4 ++-- .../src/renderer/families/cardano/MemoValueField.jsx | 2 +- .../src/renderer/families/cardano/SendAmountFields.jsx | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.jsx b/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.jsx index 5a087defbb3..79bafab0b99 100644 --- a/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.jsx +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.jsx @@ -5,8 +5,8 @@ import styled from "styled-components"; import { useSelector } from "react-redux"; import { Trans } from "react-i18next"; -import { getAccountUnit } from "@ledgerhq/live-common/lib/account"; -import { formatCurrencyUnit } from "@ledgerhq/live-common/lib/currencies"; +import { getAccountUnit } from "@ledgerhq/live-common/lib/account/index"; +import { formatCurrencyUnit } from "@ledgerhq/live-common/lib/currencies/index"; import type { ThemedComponent } from "~/renderer/styles/StyleProvider"; diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/MemoValueField.jsx b/apps/ledger-live-desktop/src/renderer/families/cardano/MemoValueField.jsx index 12aba00de50..95afb5632d7 100644 --- a/apps/ledger-live-desktop/src/renderer/families/cardano/MemoValueField.jsx +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/MemoValueField.jsx @@ -1,5 +1,5 @@ // @flow -import React, { useCallback } from "react"; +import { useCallback } from "react"; import { useTranslation } from "react-i18next"; import { getAccountBridge } from "@ledgerhq/live-common/bridge/index"; import Input from "~/renderer/components/Input"; diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields.jsx b/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields.jsx index acec4f1df9b..06370bcdfff 100644 --- a/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields.jsx +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields.jsx @@ -1,5 +1,4 @@ // @flow -import React from "react"; import { Trans, withTranslation } from "react-i18next"; import MemoValueField from "./MemoValueField"; import Box from "~/renderer/components/Box"; From 97e9c29d219be04fa965bab8dfc50a104531e703 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Thu, 7 Jul 2022 16:17:53 +0200 Subject: [PATCH 32/41] trigger bot From af1392892f864855363530850cb33ade42f233d3 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Tue, 12 Jul 2022 19:15:02 +0200 Subject: [PATCH 33/41] What the flow --- .../src/renderer/families/cardano/MemoValueField.jsx | 2 +- .../src/renderer/families/cardano/SendAmountFields.jsx | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/MemoValueField.jsx b/apps/ledger-live-desktop/src/renderer/families/cardano/MemoValueField.jsx index 95afb5632d7..12aba00de50 100644 --- a/apps/ledger-live-desktop/src/renderer/families/cardano/MemoValueField.jsx +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/MemoValueField.jsx @@ -1,5 +1,5 @@ // @flow -import { useCallback } from "react"; +import React, { useCallback } from "react"; import { useTranslation } from "react-i18next"; import { getAccountBridge } from "@ledgerhq/live-common/bridge/index"; import Input from "~/renderer/components/Input"; diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields.jsx b/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields.jsx index 06370bcdfff..acec4f1df9b 100644 --- a/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields.jsx +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/SendAmountFields.jsx @@ -1,4 +1,5 @@ // @flow +import React from "react"; import { Trans, withTranslation } from "react-i18next"; import MemoValueField from "./MemoValueField"; import Box from "~/renderer/components/Box"; From de59a14068e116134a61a6de7e1d98ca1d1fabb8 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Tue, 12 Jul 2022 19:31:38 +0200 Subject: [PATCH 34/41] Update cryptoassets.md --- apps/ledger-live-desktop/cryptoassets.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/ledger-live-desktop/cryptoassets.md b/apps/ledger-live-desktop/cryptoassets.md index ddb2ccaf139..0d995147640 100644 --- a/apps/ledger-live-desktop/cryptoassets.md +++ b/apps/ledger-live-desktop/cryptoassets.md @@ -109,7 +109,7 @@ | lisk | LSK | NO | lisk | | æternity | AE | NO | aeternity | -## Tokens (10083) +## Tokens (10184) | parent currency | ticker | contract | name | status | ledger id | |--|--|--|--|--|--| | Algorand | ARCC | MESEJMPXKL7YUWEQGNRCKSLMQDKHOHWIZ3RBWP7BV4JDMUJXFUVQZWUBJM | Asia Reserve Currency Coin | countervalues disabled | algorand/asa/163650 | From 5c78b3fc78eba74c806ba777b95d2b7f602731a6 Mon Sep 17 00:00:00 2001 From: haammar-ledger Date: Mon, 18 Jul 2022 11:33:47 +0200 Subject: [PATCH 35/41] Update cryptoassets.md --- apps/ledger-live-desktop/cryptoassets.md | 103 ++++++++++++++++++++++- 1 file changed, 102 insertions(+), 1 deletion(-) diff --git a/apps/ledger-live-desktop/cryptoassets.md b/apps/ledger-live-desktop/cryptoassets.md index ae885819f90..65f87a2aeaf 100644 --- a/apps/ledger-live-desktop/cryptoassets.md +++ b/apps/ledger-live-desktop/cryptoassets.md @@ -109,7 +109,7 @@ | lisk | LSK | NO | lisk | | æternity | AE | NO | aeternity | -## Tokens (10097) +## Tokens (10198) | parent currency | ticker | contract | name | status | ledger id | |--|--|--|--|--|--| | Algorand | ARCC | MESEJMPXKL7YUWEQGNRCKSLMQDKHOHWIZ3RBWP7BV4JDMUJXFUVQZWUBJM | Asia Reserve Currency Coin | countervalues disabled | algorand/asa/163650 | @@ -769,6 +769,107 @@ | Binance Smart Chain | VBSWAP | 0x4f0ed527e8A95ecAA132Af214dFd41F30b361600 | vSWAP.fi | countervalues disabled | bsc/bep20/vswap.fi | | Binance Smart Chain | WRX | 0x8e17ed70334C87eCE574C9d537BC153d8609e2a3 | wazirx token | countervalues disabled | bsc/bep20/wazirx_token | | Binance Smart Chain | WATCH | 0x7A9f28EB62C791422Aa23CeAE1dA9C847cBeC9b0 | yieldwatch | | bsc/bep20/yieldwatch | +| Cardano | PUDGY | 133fac9e153194428eb0919be39837b42b9e977fc7298f3ff1b76ef95055444759 | $PUDGY Token | | cardano/native/133fac9e153194428eb0919be39837b42b9e977fc7298f3ff1b76ef95055444759 | +| Cardano | WOLF | 1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6574f4c46 | $WOLF | | cardano/native/1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6574f4c46 | +| Cardano | ASHIB | afc910d7a306d20c12903979d4935ae4307241d03245743548e767834153484942 | ADA Shiba Inu | | cardano/native/afc910d7a306d20c12903979d4935ae4307241d03245743548e767834153484942 | +| Cardano | ADAFOX | e98165a25cd0320b25f22d686268e58e66f855b6d85974947ccd708d414441464f58 | ADAFOX | | cardano/native/e98165a25cd0320b25f22d686268e58e66f855b6d85974947ccd708d414441464f58 | +| Cardano | ADAX | 0c78f619e54a5d00e143f66181a2c500d0c394b38a10e86cd1a23c5f41444158 | ADAX | | cardano/native/0c78f619e54a5d00e143f66181a2c500d0c394b38a10e86cd1a23c5f41444158 | +| Cardano | AADA | 8fef2d34078659493ce161a6c7fba4b56afefa8535296a5743f6958741414441 | Aada DAO Token | | cardano/native/8fef2d34078659493ce161a6c7fba4b56afefa8535296a5743f6958741414441 | +| Cardano | ADO | 5ad8deb64bfec21ad2d96e1270b5873d0c4d0f231b928b4c39eb243561646f736961 | Adosia | | cardano/native/5ad8deb64bfec21ad2d96e1270b5873d0c4d0f231b928b4c39eb243561646f736961 | +| Cardano | BORGZ | 7f376e3d1cf52e6c4350a1a91c8f8d0f0b63baedd443999ebe8fe57a424f52475a | BORGZ | | cardano/native/7f376e3d1cf52e6c4350a1a91c8f8d0f0b63baedd443999ebe8fe57a424f52475a | +| Cardano | BROOM | 8d0ae3c5b13b47907b16511a540d47436d12dcc96453c0f59089b45142524f4f4d | BROOM Token | | cardano/native/8d0ae3c5b13b47907b16511a540d47436d12dcc96453c0f59089b45142524f4f4d | +| Cardano | BSEAL | 59e31d17e4d212ea35df6088e0395455c40f5ad463d161497a89c567426162795365616c | BabySeal | | cardano/native/59e31d17e4d212ea35df6088e0395455c40f5ad463d161497a89c567426162795365616c | +| Cardano | BEAG | d3558649b7874a1a596378515f9b80da63e73f324439ea113d34c9bb42454147 | Beagle Bucks | | cardano/native/d3558649b7874a1a596378515f9b80da63e73f324439ea113d34c9bb42454147 | +| Cardano | BISON | 2afb448ef716bfbed1dcb676102194c3009bee5399e93b90def9db6a4249534f4e | Bison Coin | | cardano/native/2afb448ef716bfbed1dcb676102194c3009bee5399e93b90def9db6a4249534f4e | +| Cardano | BDOGE | f555c46bad0731d080c9381d7fff6f82839946a66bd070d185e1ea2f42444f4745 | BlackDoge | | cardano/native/f555c46bad0731d080c9381d7fff6f82839946a66bd070d185e1ea2f42444f4745 | +| Cardano | BCG | 0c92aabef5a8f91a36470d0762806c165c0d04aa992541e25d55486a424347 | Blockchaingames | | cardano/native/0c92aabef5a8f91a36470d0762806c165c0d04aa992541e25d55486a424347 | +| Cardano | BLOOM | 4c17b7009448a33d1834b0946ea752ecd0cc61c7bb25cd9ff18cff58426c6f6f6d | Bloom | | cardano/native/4c17b7009448a33d1834b0946ea752ecd0cc61c7bb25cd9ff18cff58426c6f6f6d | +| Cardano | CHERRY | e14fe3ab348f9a6198359481472601f4557b9f86984f40a186a3b1e8434845525259 | CHERRY Token | | cardano/native/e14fe3ab348f9a6198359481472601f4557b9f86984f40a186a3b1e8434845525259 | +| Cardano | CLAP | db30c7905f598ed0154de14f970de0f61f0cb3943ed82c891968480a434c4150 | CLAP | | cardano/native/db30c7905f598ed0154de14f970de0f61f0cb3943ed82c891968480a434c4150 | +| Cardano | CardaniaFounderBlue | ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572426c7565 | CardaniaFounderBlue | | cardano/native/ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572426c7565 | +| Cardano | CardaniaFounderGreen | ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572477265656e | CardaniaFounderGreen | | cardano/native/ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572477265656e | +| Cardano | CardaniaFounderRed | ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572526564 | CardaniaFounderRed | | cardano/native/ccb3577601d6cf0e021288871112926338bee685c6c37eeadf6dddd943617264616e6961466f756e646572526564 | +| Cardano | C4 | a00fdf4fb9ab6c8c2bd1533a2f14855edf12aed5ecbf96d4b5f5b9394334 | Cardano Crocs Club Coin | | cardano/native/a00fdf4fb9ab6c8c2bd1533a2f14855edf12aed5ecbf96d4b5f5b9394334 | +| Cardano | CARGO | f4364875e75320d405ceadebdf0db63fadaff55c72d4ff6b82f0676a434152474f | Cardano Gold | | cardano/native/f4364875e75320d405ceadebdf0db63fadaff55c72d4ff6b82f0676a434152474f | +| Cardano | CNT | 2c96f49b6e6e32ae69a182e85b74db4edfc9539496a13ab76d1258fa434e54 | Cardano Native Token | | cardano/native/2c96f49b6e6e32ae69a182e85b74db4edfc9539496a13ab76d1258fa434e54 | +| Cardano | CDOG | d030b626219d81673bd32932d2245e0c71ae5193281f971022b23a78436172646f67656f | Cardogeo | | cardano/native/d030b626219d81673bd32932d2245e0c71ae5193281f971022b23a78436172646f67656f | +| Cardano | $PURR | d3a034e403b98cbdb0adbc8a3144d7779330916e190d387815bb85c650555252 | CatKinson | | cardano/native/d3a034e403b98cbdb0adbc8a3144d7779330916e190d387815bb85c650555252 | +| Cardano | CHRLZ | e9c28a71273f825b13f38244ccf1fea97c4025813610d01a7c5d681f436861726c7a20546f6b656e | Charlz Token | | cardano/native/e9c28a71273f825b13f38244ccf1fea97c4025813610d01a7c5d681f436861726c7a20546f6b656e | +| Cardano | $CLAW | 240fb00eff73acc51c09e81dae6628c4bedb9964151d45e3faed874f434c4157 | Claw Token | | cardano/native/240fb00eff73acc51c09e81dae6628c4bedb9964151d45e3faed874f434c4157 | +| Cardano | COPI | b6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0436f726e75636f70696173205b76696120436861696e506f72742e696f5d | Cornucopias Token | | cardano/native/b6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0436f726e75636f70696173205b76696120436861696e506f72742e696f5d | +| Cardano | DANA | c88bbd1848db5ea665b1fffbefba86e8dcd723b5085348e8a8d2260f44414e41 | DANA | | cardano/native/c88bbd1848db5ea665b1fffbefba86e8dcd723b5085348e8a8d2260f44414e41 | +| Cardano | DIBS | c68307e7ca850513507f1498862a57c7f4fae7ba8e84b8bc074093a944494253 | DIBS | | cardano/native/c68307e7ca850513507f1498862a57c7f4fae7ba8e84b8bc074093a944494253 | +| Cardano | DOEX | dca54ecf37b0e3af2fdfd336e1d21fadcc45b3261b0f73a095631dfe444f4558 | DOEX | | cardano/native/dca54ecf37b0e3af2fdfd336e1d21fadcc45b3261b0f73a095631dfe444f4558 | +| Cardano | DRIP | af2e27f580f7f08e93190a81f72462f153026d06450924726645891b44524950 | DRIP | | cardano/native/af2e27f580f7f08e93190a81f72462f153026d06450924726645891b44524950 | +| Cardano | DEFS | f28f457472e539dc75e1598a2beddf49ce5a717998c708f05f5de61044454653 | Defender Silver | | cardano/native/f28f457472e539dc75e1598a2beddf49ce5a717998c708f05f5de61044454653 | +| Cardano | DGADA | b4273f1d8d0021d188784c3d72dc514f602b7ab8cfb87e3134550c42446f6765414441 | DogeADA | | cardano/native/b4273f1d8d0021d188784c3d72dc514f602b7ab8cfb87e3134550c42446f6765414441 | +| Cardano | ETB | a89568bb399d0cdc38367e47831c95186f5c79e58174e08a182323964554424643546f6b656e | ETBFCToken | | cardano/native/a89568bb399d0cdc38367e47831c95186f5c79e58174e08a182323964554424643546f6b656e | +| Cardano | EMP | 6c8642400e8437f737eb86df0fc8a8437c760f48592b1ba8f5767e81456d706f7761 | Empowa | | cardano/native/6c8642400e8437f737eb86df0fc8a8437c760f48592b1ba8f5767e81456d706f7761 | +| Cardano | EUS | 88691a70bb0fe49cf9124b4f78553c36c09fa6264844e2b2941191734575736b6f | Eusko | | cardano/native/88691a70bb0fe49cf9124b4f78553c36c09fa6264844e2b2941191734575736b6f | +| Cardano | FIRE | 2441ab3351c3b80213a98f4e09ddcf7dabe4879c3c94cc4e7205cb6346495245 | FIRE | | cardano/native/2441ab3351c3b80213a98f4e09ddcf7dabe4879c3c94cc4e7205cb6346495245 | +| Cardano | FIRE | a4da8764a57e66a0085b5bfcde96c89b798d92ee83a75f59237e375b46495245 | FIRE Token | | cardano/native/a4da8764a57e66a0085b5bfcde96c89b798d92ee83a75f59237e375b46495245 | +| Cardano | FGC | 5029eeccd52fef299509d509a8318fd7930c3dffcce1f9f39ff11ef9464743 | FabianGamerCoin | | cardano/native/5029eeccd52fef299509d509a8318fd7930c3dffcce1f9f39ff11ef9464743 | +| Cardano | FLICK | df0172804f8418afc4e5b0a15b8fc78bdc3ca6d179405a7cd194f3b4464c49434b | Flickto | | cardano/native/df0172804f8418afc4e5b0a15b8fc78bdc3ca6d179405a7cd194f3b4464c49434b | +| Cardano | FUD | dbc31b04d90b37332813cb4cee3e8f79994643d899a5366797e745ee465544 | FudCoin | | cardano/native/dbc31b04d90b37332813cb4cee3e8f79994643d899a5366797e745ee465544 | +| Cardano | GROW | 544571c086d0e5c5022aca9717dd0f438e21190abb48f37b3ae129f047524f57 | GROW Token | | cardano/native/544571c086d0e5c5022aca9717dd0f438e21190abb48f37b3ae129f047524f57 | +| Cardano | GOKEY | c7dcfa416c127f630b263c7e0fe0564430cfa9c56bba43e1a37c6915474f4b4559 | GoKey | | cardano/native/c7dcfa416c127f630b263c7e0fe0564430cfa9c56bba43e1a37c6915474f4b4559 | +| Cardano | GTCHI | aea1ceb3625680e2f7a31ea1a64c9c430c34d8588bf4f8e3c7f9b1dd476f74636869 | Gotchi | | cardano/native/aea1ceb3625680e2f7a31ea1a64c9c430c34d8588bf4f8e3c7f9b1dd476f74636869 | +| Cardano | HOSKY | a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235484f534b59 | HOSKY Token | | cardano/native/a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235484f534b59 | +| Cardano | HI | 1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d4849 | Hosky Inu | | cardano/native/1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d4849 | +| Cardano | HIS | 1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d484953 | Hosky Inu Silver | | cardano/native/1f4b1b277c9c001c1522727506a2cfb401a0d0ade069b0241f16f07d484953 | +| Cardano | BLC | 585cfcbdd0786e961187999e5d5d36b38d1ebc1c4112a0a95a8bd477424c43 | Ibilecoin | | cardano/native/585cfcbdd0786e961187999e5d5d36b38d1ebc1c4112a0a95a8bd477424c43 | +| Cardano | KAIZEN | cfee97ff8359f07a0a395a72b424bc6e030503390d864b86d4e0ecf84b41495a454e | KAIZEN | | cardano/native/cfee97ff8359f07a0a395a72b424bc6e030503390d864b86d4e0ecf84b41495a454e | +| Cardano | KIDZ | c4c00fbd8fa227442a5e7cdecde33b24588494d05a2c50fda8938c6d4b49445a | Kidz Coin | | cardano/native/c4c00fbd8fa227442a5e7cdecde33b24588494d05a2c50fda8938c6d4b49445a | +| Cardano | $LOBSTER | 8654e8b350e298c80d2451beb5ed80fc9eee9f38ce6b039fb8706bc34c4f4253544552 | LOBSTER | | cardano/native/8654e8b350e298c80d2451beb5ed80fc9eee9f38ce6b039fb8706bc34c4f4253544552 | +| Cardano | LOG | c9f955eeffa84e42363b4992281d32dd2f9239153d6c66420a9acc154c4f47 | Life Log Token | | cardano/native/c9f955eeffa84e42363b4992281d32dd2f9239153d6c66420a9acc154c4f47 | +| Cardano | LQ | da8c30857834c6ae7203935b89278c532b3995245295456f993e1d244c51 | Liqwid DAO Token | | cardano/native/da8c30857834c6ae7203935b89278c532b3995245295456f993e1d244c51 | +| Cardano | LOOKZ | aa2797739e4f4a1efd5346998febff59909e425b5fddb1b0ec4a24f84c6f6f6b7a | Lookz | | cardano/native/aa2797739e4f4a1efd5346998febff59909e425b5fddb1b0ec4a24f84c6f6f6b7a | +| Cardano | MELD | 6ac8ef33b510ec004fe11585f7c5a9f0c07f0c23428ab4f29c1d7d104d454c44 | MELD | | cardano/native/6ac8ef33b510ec004fe11585f7c5a9f0c07f0c23428ab4f29c1d7d104d454c44 | +| Cardano | MEOW | 1dd1a7dde0e1e82761325ee5f4719d0d4b7c24dfba77d9bee01eed4b4d454f57 | MEOW | | cardano/native/1dd1a7dde0e1e82761325ee5f4719d0d4b7c24dfba77d9bee01eed4b4d454f57 | +| Cardano | MILK | 8a1cfae21368b8bebbbed9800fec304e95cce39a2a57dc35e2e3ebaa4d494c4b | MILK | | cardano/native/8a1cfae21368b8bebbbed9800fec304e95cce39a2a57dc35e2e3ebaa4d494c4b | +| Cardano | MYTH | 987c1f90efe1c95957509b460e0e4f6d6b3f7025a7aca99cd29090374d595448 | MYTH | | cardano/native/987c1f90efe1c95957509b460e0e4f6d6b3f7025a7aca99cd29090374d595448 | +| Cardano | MKA | f4d97191f857096b441a410c036f63d6697dde0c71d2755dd664e3024d4b41 | Merkaba | | cardano/native/f4d97191f857096b441a410c036f63d6697dde0c71d2755dd664e3024d4b41 | +| Cardano | MIN | 29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e | Minswap | | cardano/native/29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e | +| Cardano | MINt | 29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e74 | Minswap MINt | | cardano/native/29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e74 | +| Cardano | MYST | d01794c4604f3c0e544c537bb1f4268c0e81f45880c00c09ebe4b4a74d595354 | Mystery Token | | cardano/native/d01794c4604f3c0e544c537bb1f4268c0e81f45880c00c09ebe4b4a74d595354 | +| Cardano | NEWM | 682fe60c9918842b3323c43b5144bc3d52a23bd2fb81345560d73f634e45574d | NEWM | | cardano/native/682fe60c9918842b3323c43b5144bc3d52a23bd2fb81345560d73f634e45574d | +| Cardano | NFTC | b0af30edf2c7f11465853821137e0a6ebc395cab71ee39c24127ffb44e465443 | NFT Creative Coin | | cardano/native/b0af30edf2c7f11465853821137e0a6ebc395cab71ee39c24127ffb44e465443 | +| Cardano | PAVIA | 884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903ae5041564941 | PAVIA Token | | cardano/native/884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903ae5041564941 | +| Cardano | PIGY | 2aa9c1557fcf8e7caa049fa0911a8724a1cdaf8037fe0b431c6ac66450494759546f6b656e | PIGY Token | | cardano/native/2aa9c1557fcf8e7caa049fa0911a8724a1cdaf8037fe0b431c6ac66450494759546f6b656e | +| Cardano | PROXIE | 20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3c50524f584945 | PROXIE | | cardano/native/20cd68533b47565f3c61efb39c30fdace9963bfa4c0060b613448e3c50524f584945 | +| Cardano | PinacolADA | 0c442180dd6163682d8e03b271caefb4944a24412bdd07adafb04ccb50494e41434f4c414441 | PinacolADA | | cardano/native/0c442180dd6163682d8e03b271caefb4944a24412bdd07adafb04ccb50494e41434f4c414441 | +| Cardano | PTC | 007394e3117755fbb0558b93c54ce3bc6c85770920044ade143dc742505443 | Pocket Change | | cardano/native/007394e3117755fbb0558b93c54ce3bc6c85770920044ade143dc742505443 | +| Cardano | KOZ | 63766427b4499dd678cb8b715dec3265dd292279ce7779447e3651e54b4f5a | Politikoz Token | | cardano/native/63766427b4499dd678cb8b715dec3265dd292279ce7779447e3651e54b4f5a | +| Cardano | PoolPeekCoin | d0af056c509b6b1133cd83a750b7245e561169281fde3df1cb6e2d96506f6f6c5065656b436f696e | PoolPeekCoin | | cardano/native/d0af056c509b6b1133cd83a750b7245e561169281fde3df1cb6e2d96506f6f6c5065656b436f696e | +| Cardano | QUID | b0446f1c9105f0cc5bb6bd092f5c3e523e13f8a999b31c870298fa4051554944 | QUID | | cardano/native/b0446f1c9105f0cc5bb6bd092f5c3e523e13f8a999b31c870298fa4051554944 | +| Cardano | RAD | 6787a47e9f73efe4002d763337140da27afa8eb9a39413d2c39d4286524144546f6b656e73 | RADTokens | | cardano/native/6787a47e9f73efe4002d763337140da27afa8eb9a39413d2c39d4286524144546f6b656e73 | +| Cardano | RAT | d5dec6074942b36b50975294fd801f7f28c907476b1ecc1b57c916ed524154 | RAT | | cardano/native/d5dec6074942b36b50975294fd801f7f28c907476b1ecc1b57c916ed524154 | +| Cardano | RAG | ca942cb8bb5d1ef750766ded355f320880539111f10efa2b1a478ff9524147 | RaggieCoin | | cardano/native/ca942cb8bb5d1ef750766ded355f320880539111f10efa2b1a478ff9524147 | +| Cardano | RAVE | 14a3455f71c435a04ea1fdb50a3ef4c1cab0e79fb1565627ac66a57552415645 | Ravendex | | cardano/native/14a3455f71c435a04ea1fdb50a3ef4c1cab0e79fb1565627ac66a57552415645 | +| Cardano | REVU | 94cbb4fcbcaa2975779f273b263eb3b5f24a9951e446d6dc4c13586452455655 | Revuto | | cardano/native/94cbb4fcbcaa2975779f273b263eb3b5f24a9951e446d6dc4c13586452455655 | +| Cardano | SHIBA | 208a2ca888886921513cb777bb832a8dc685c04de990480151f1215053484942414441 | SHIBADA | | cardano/native/208a2ca888886921513cb777bb832a8dc685c04de990480151f1215053484942414441 | +| Cardano | SKULL | 885742cd7e0dad321622b5d3ad186797bd50c44cbde8b48be1583fbd534b554c4c | SKULL | | cardano/native/885742cd7e0dad321622b5d3ad186797bd50c44cbde8b48be1583fbd534b554c4c | +| Cardano | SNOW | 8f52f6a88acf6127bc4758a16b6047afc4da7887feae121ec217b75a534e4f57 | SNOW | | cardano/native/8f52f6a88acf6127bc4758a16b6047afc4da7887feae121ec217b75a534e4f57 | +| Cardano | SOCIETY | 25f0fc240e91bd95dcdaebd2ba7713fc5168ac77234a3d79449fc20c534f4349455459 | SOCIETY | | cardano/native/25f0fc240e91bd95dcdaebd2ba7713fc5168ac77234a3d79449fc20c534f4349455459 | +| Cardano | SUNDAE | 9a9693a9a37912a5097918f97918d15240c92ab729a0b7c4aa144d7753554e444145 | SUNDAE | | cardano/native/9a9693a9a37912a5097918f97918d15240c92ab729a0b7c4aa144d7753554e444145 | +| Cardano | SWEET | 47959e79846b8bdcacb91f586408d97e2dff44f31a04f03902cba8185357454554 | SWEET | | cardano/native/47959e79846b8bdcacb91f586408d97e2dff44f31a04f03902cba8185357454554 | +| Cardano | STRIP | 6954264b15bc92d6d592febeac84f14645e1ed46ca5ebb9acdb5c15f5354524950 | StripperCoin | | cardano/native/6954264b15bc92d6d592febeac84f14645e1ed46ca5ebb9acdb5c15f5354524950 | +| Cardano | TOKEN | 0171c997b8853fde686763d93b36ab8e04ce947bb6aa09a9ee5c4401544f4b454e | TOKEN | | cardano/native/0171c997b8853fde686763d93b36ab8e04ce947bb6aa09a9ee5c4401544f4b454e | +| Cardano | Tokhun | 4247d5091db82330100904963ab8d0850976c80d3f1b927e052e07bd546f6b68756e | Tokhun.io Token | | cardano/native/4247d5091db82330100904963ab8d0850976c80d3f1b927e052e07bd546f6b68756e | +| Cardano | VYFI | 804f5544c1962a40546827cab750a88404dc7108c0f588b72964754f56594649 | VYFI | | cardano/native/804f5544c1962a40546827cab750a88404dc7108c0f588b72964754f56594649 | +| Cardano | TREES | f7c777fdd4531cf1c477551360e45b9684073c05c2fa61334f8f9add5665726974726565546f6b656e | VeritreeToken | | cardano/native/f7c777fdd4531cf1c477551360e45b9684073c05c2fa61334f8f9add5665726974726565546f6b656e | +| Cardano | virus | 0fd9819a9d7fb414880883f43a42d33458f12bc5f9841cec6457dc155669527553 | Virus | | cardano/native/0fd9819a9d7fb414880883f43a42d33458f12bc5f9841cec6457dc155669527553 | +| Cardano | WDAY | a3914cb7a564d010c7b67774ac8720a8ece3a758279b51d8a1c05cc55745444e4553444159 | Wednesday | | cardano/native/a3914cb7a564d010c7b67774ac8720a8ece3a758279b51d8a1c05cc55745444e4553444159 | +| Cardano | WMT | 1d7f33bd23d85e1a25d87d86fac4f199c3197a2f7afeb662a0f34e1e776f726c646d6f62696c65746f6b656e | World Mobile Token | | cardano/native/1d7f33bd23d85e1a25d87d86fac4f199c3197a2f7afeb662a0f34e1e776f726c646d6f62696c65746f6b656e | +| Cardano | XRAY | ae2a0aa5a24b27d9868c4a73b7c08077ac21baade5eca0fa467a2bbd58524159 | XRAY | | cardano/native/ae2a0aa5a24b27d9868c4a73b7c08077ac21baade5eca0fa467a2bbd58524159 | +| Cardano | XT | 300ec0d82a79acdc0616fdc0ef615e7deeddb03275e834685e9ee8a65854 | XT | | cardano/native/300ec0d82a79acdc0616fdc0ef615e7deeddb03275e834685e9ee8a65854 | +| Cardano | YAY | 57684adcb032c8dbc40179841bed987d8dee7472617a0e5c25ef414059617953776170 | YaySwap | | cardano/native/57684adcb032c8dbc40179841bed987d8dee7472617a0e5c25ef414059617953776170 | +| Cardano | cNETA | b34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757a634e455441 | anetaBTC | | cardano/native/b34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757a634e455441 | +| Cardano | cbTHC | 025146866af908340247fe4e9672d5ac7059f1e8534696b5f920c9e66362544843 | cbTHC | | cardano/native/025146866af908340247fe4e9672d5ac7059f1e8534696b5f920c9e66362544843 | +| Cardano | GMBL | 2b0a04a7b60132b1805b296c7fcb3b217ff14413991bf76f72663c3067696d62616c | gimbal | | cardano/native/2b0a04a7b60132b1805b296c7fcb3b217ff14413991bf76f72663c3067696d62616c | +| Cardano | purrADA | 97747aa3c33fdfe4b5faa7bb8b4534932c6d980cb13c14c5a547e7ca70757272414441 | purrADA | | cardano/native/97747aa3c33fdfe4b5faa7bb8b4534932c6d980cb13c14c5a547e7ca70757272414441 | +| Cardano | SPACE | d894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a07370616365636f696e73 | spacecoins | | cardano/native/d894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a07370616365636f696e73 | +| Cardano (Testnet) | tToken | 581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e | TEST_TOKEN | | cardano_testnet/native/581684861359b6d4d00594073a9aa4223c6fc24d24da05e1b34fb865544553545f544f4b454e | | Elrond | MEX | erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u | MEX | | elrond/esdt/4d45582d343535633537 | | Elrond | USDC | erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u | WrappedUSDC | | elrond/esdt/555344432d633736663166 | | Elrond | RIDE | erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u | holoride | | elrond/esdt/524944452d376431386539 | From a17b487a9a1681faf910289a5a2d77d6ff94823f Mon Sep 17 00:00:00 2001 From: Prashanth Date: Mon, 18 Jul 2022 15:40:35 +0530 Subject: [PATCH 36/41] cardano error, transaction summary updates --- .../cardano/AccountBalanceSummaryFooter.jsx | 4 +- .../static/i18n/en/app.json | 6 + .../src/locales/en/common.json | 9 +- .../src/families/cardano/buildSubAccounts.ts | 8 +- .../cardano/deviceTransactionConfig.ts | 104 +++++++++++++----- .../src/families/cardano/errors.ts | 7 ++ .../cardano/js-getTransactionStatus.ts | 9 +- .../src/families/cardano/js-signOperation.ts | 8 +- .../families/cardano/js-synchronisation.ts | 8 +- .../src/families/cardano/logic.ts | 10 ++ 10 files changed, 127 insertions(+), 46 deletions(-) diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.jsx b/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.jsx index 79bafab0b99..6bf7cd38d4e 100644 --- a/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.jsx +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBalanceSummaryFooter.jsx @@ -5,8 +5,8 @@ import styled from "styled-components"; import { useSelector } from "react-redux"; import { Trans } from "react-i18next"; -import { getAccountUnit } from "@ledgerhq/live-common/lib/account/index"; -import { formatCurrencyUnit } from "@ledgerhq/live-common/lib/currencies/index"; +import { getAccountUnit } from "@ledgerhq/live-common/account/index"; +import { formatCurrencyUnit } from "@ledgerhq/live-common/currencies/index"; import type { ThemedComponent } from "~/renderer/styles/StyleProvider"; diff --git a/apps/ledger-live-desktop/static/i18n/en/app.json b/apps/ledger-live-desktop/static/i18n/en/app.json index a2e3caee20a..496e064fe87 100644 --- a/apps/ledger-live-desktop/static/i18n/en/app.json +++ b/apps/ledger-live-desktop/static/i18n/en/app.json @@ -4379,6 +4379,12 @@ }, "NotEnoughNftOwned": { "title": "You have exceeded the number of available tokens" + }, + "CardanoMinAmountError": { + "title": "Minimum sendable amount is {{amount}} ADA" + }, + "CardanoNotEnoughFunds": { + "title": "Please ensure you have enough funds to pay for fees" } }, "cryptoOrg": { diff --git a/apps/ledger-live-mobile/src/locales/en/common.json b/apps/ledger-live-mobile/src/locales/en/common.json index ed8b46da25c..2810eb87a7f 100644 --- a/apps/ledger-live-mobile/src/locales/en/common.json +++ b/apps/ledger-live-mobile/src/locales/en/common.json @@ -644,7 +644,10 @@ "title": "Your transaction may have failed. Please wait a moment then check the transaction history before trying again." }, "CardanoMinAmountError": { - "title": "Minimum {{amount}} ADA required" + "title": "Minimum sendable amount is {{amount}} ADA" + }, + "CardanoNotEnoughFunds": { + "title": "Please ensure you have enough funds to pay for fees" } }, "bluetooth": { @@ -4391,8 +4394,8 @@ "tokenId": "Token ID", "tokenIdCopied": "Token ID copied !", "quantity": "Quantity", - "attributes" : { - "floorPrice" : "Floor Price" + "attributes": { + "floorPrice": "Floor Price" } }, "viewerModal": { diff --git a/libs/ledger-live-common/src/families/cardano/buildSubAccounts.ts b/libs/ledger-live-common/src/families/cardano/buildSubAccounts.ts index 3098ecbf666..7c2fb53dae3 100644 --- a/libs/ledger-live-common/src/families/cardano/buildSubAccounts.ts +++ b/libs/ledger-live-common/src/families/cardano/buildSubAccounts.ts @@ -83,6 +83,10 @@ const mapTxToTokenAccountOperation = ({ const tokenOperationType = token.amount.lt(0) ? "OUT" : "IN"; const memo = getMemoFromTx(tx); + const extra = {}; + if (memo) { + extra["memo"] = memo; + } const operation: Operation = { accountId: tokenAccountId, id: encodeOperationId(tokenAccountId, tx.hash, tokenOperationType), @@ -102,9 +106,7 @@ const mapTxToTokenAccountOperation = ({ ), blockHeight: tx.blockHeight, date: new Date(tx.timestamp), - extra: { - memo, - }, + extra: extra, blockHash: undefined, }; operations.push(operation); diff --git a/libs/ledger-live-common/src/families/cardano/deviceTransactionConfig.ts b/libs/ledger-live-common/src/families/cardano/deviceTransactionConfig.ts index b29bc181720..13f523a59b4 100644 --- a/libs/ledger-live-common/src/families/cardano/deviceTransactionConfig.ts +++ b/libs/ledger-live-common/src/families/cardano/deviceTransactionConfig.ts @@ -6,6 +6,7 @@ import { Account, AccountLike, TransactionStatus } from "../../types"; import { decodeTokenAssetId, decodeTokenCurrencyId } from "./buildSubAccounts"; import { CardanoResources, Transaction } from "./types"; import { utils as TyphonUtils } from "@stricahq/typhonjs"; +import { decodeTokenName } from "./logic"; function getDeviceTransactionConfig({ account, @@ -21,36 +22,85 @@ function getDeviceTransactionConfig({ const fields: DeviceTransactionField[] = []; const mainAccount = getMainAccount(account, parentAccount); - if (mode === "send" && account.type === "TokenAccount") { - const cardanoResources = mainAccount.cardanoResources as CardanoResources; + if (mode === "send") { + if (account.type === "TokenAccount") { + const cardanoResources = mainAccount.cardanoResources as CardanoResources; - const { assetId } = decodeTokenCurrencyId(account.token.id); - const { policyId, assetName } = decodeTokenAssetId(assetId); - const transactionAmount = transaction.useAllAmount - ? account.balance - : transaction.amount; + const { assetId } = decodeTokenCurrencyId(account.token.id); + const { policyId, assetName } = decodeTokenAssetId(assetId); + const transactionAmount = transaction.useAllAmount + ? account.balance + : transaction.amount; + const { fees } = transaction; - const tokensToSend = [ - { - policyId, - assetName, - amount: transactionAmount, - }, - ]; + const tokensToSend = [ + { + policyId, + assetName, + amount: transactionAmount, + }, + ]; - const requiredMinAdaForTokens = TyphonUtils.calculateMinUtxoAmount( - tokensToSend, - new BigNumber(cardanoResources.protocolParams.lovelacePerUtxoWord) - ); - fields.push({ - type: "text", - label: "Amount", - value: formatCurrencyUnit( - getAccountUnit(mainAccount), - requiredMinAdaForTokens, - { showCode: true, disableRounding: true } - ), - }); + const requiredMinAdaForTokens = TyphonUtils.calculateMinUtxoAmount( + tokensToSend, + new BigNumber(cardanoResources.protocolParams.lovelacePerUtxoWord) + ); + fields.push({ + type: "text", + label: "ADA", + value: formatCurrencyUnit( + getAccountUnit(mainAccount), + requiredMinAdaForTokens, + { showCode: true, disableRounding: true } + ), + }); + fields.push({ + type: "text", + label: "Token Name", + value: decodeTokenName(assetName), + }); + fields.push({ + type: "text", + label: "Amount", + value: formatCurrencyUnit(getAccountUnit(account), transactionAmount, { + showCode: true, + disableRounding: true, + }), + }); + if (fees) { + fields.push({ + type: "text", + label: "Fees", + value: formatCurrencyUnit(getAccountUnit(mainAccount), fees, { + showCode: true, + disableRounding: true, + }), + }); + } + } else if (account.type === "Account") { + const { fees } = transaction; + const transactionAmount = transaction.useAllAmount + ? account.balance + : transaction.amount; + fields.push({ + type: "text", + label: "Amount", + value: formatCurrencyUnit(getAccountUnit(account), transactionAmount, { + showCode: true, + disableRounding: true, + }), + }); + if (fees) { + fields.push({ + type: "text", + label: "Fees", + value: formatCurrencyUnit(getAccountUnit(account), fees, { + showCode: true, + disableRounding: true, + }), + }); + } + } } return fields; diff --git a/libs/ledger-live-common/src/families/cardano/errors.ts b/libs/ledger-live-common/src/families/cardano/errors.ts index 299ca3c2b9d..0c60d4fa025 100644 --- a/libs/ledger-live-common/src/families/cardano/errors.ts +++ b/libs/ledger-live-common/src/families/cardano/errors.ts @@ -6,3 +6,10 @@ import { createCustomErrorClass } from "@ledgerhq/errors"; export const CardanoMinAmountError = createCustomErrorClass( "CardanoMinAmountError" ); + +/** + * Cardano error thrown when not enough funds to perform transaction + */ +export const CardanoNotEnoughFunds = createCustomErrorClass( + "CardanoNotEnoughFunds" +); diff --git a/libs/ledger-live-common/src/families/cardano/js-getTransactionStatus.ts b/libs/ledger-live-common/src/families/cardano/js-getTransactionStatus.ts index 03cfec7f5a7..323bc7dbb1f 100644 --- a/libs/ledger-live-common/src/families/cardano/js-getTransactionStatus.ts +++ b/libs/ledger-live-common/src/families/cardano/js-getTransactionStatus.ts @@ -1,6 +1,5 @@ import { BigNumber } from "bignumber.js"; import { - NotEnoughBalance, RecipientRequired, FeeNotLoaded, InvalidAddress, @@ -10,7 +9,7 @@ import type { Account, TransactionStatus } from "../../types"; import type { CardanoResources, Token, Transaction } from "./types"; import { isValidAddress } from "./logic"; import { utils as TyphonUtils } from "@stricahq/typhonjs"; -import { CardanoMinAmountError } from "./errors"; +import { CardanoMinAmountError, CardanoNotEnoughFunds } from "./errors"; import { AccountAwaitingSendPendingOperations } from "../../errors"; import { getNetworkParameters } from "./networks"; import { decodeTokenAssetId, decodeTokenCurrencyId } from "./buildSubAccounts"; @@ -86,7 +85,7 @@ const getTransactionStatus = async ( if (!amount.gt(0)) { errors.amount = useAllAmount - ? new NotEnoughBalance() + ? new CardanoNotEnoughFunds() : new AmountRequired(); } else if (!t.subAccountId && amount.lt(minTransactionAmount)) { errors.amount = new CardanoMinAmountError("", { @@ -97,7 +96,7 @@ const getTransactionStatus = async ( ? totalSpent.gt(tokenAccount.balance) : totalSpent.gt(a.balance) ) { - errors.amount = new NotEnoughBalance(); + errors.amount = new CardanoNotEnoughFunds(); } else { try { await buildTransaction(a, t); @@ -106,7 +105,7 @@ const getTransactionStatus = async ( e.message.toLowerCase() === "not enough ada" || e.message.toLowerCase() === "not enough tokens" ) { - errors.amount = new NotEnoughBalance(); + errors.amount = new CardanoNotEnoughFunds(); } throw e; } diff --git a/libs/ledger-live-common/src/families/cardano/js-signOperation.ts b/libs/ledger-live-common/src/families/cardano/js-signOperation.ts index 77fcf504bf6..b72c4ef5c79 100644 --- a/libs/ledger-live-common/src/families/cardano/js-signOperation.ts +++ b/libs/ledger-live-common/src/families/cardano/js-signOperation.ts @@ -91,6 +91,10 @@ const buildOptimisticOperation = ( } } + const extra = {}; + if (memo) { + extra["memo"] = memo; + } const op: Operation = { id: encodeOperationId(account.id, transactionHash, opType), hash: transactionHash, @@ -103,9 +107,7 @@ const buildOptimisticOperation = ( recipients: transaction.getOutputs().map((o) => o.address.getBech32()), accountId: account.id, date: new Date(), - extra: { - memo, - }, + extra: extra, }; const tokenAccount = t.subAccountId diff --git a/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts b/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts index ccf65413d8d..b93bea0c43c 100644 --- a/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts +++ b/libs/ledger-live-common/src/families/cardano/js-synchronisation.ts @@ -47,6 +47,10 @@ function mapTxToAccountOperation( const subOperations = inferSubOperations(tx.hash, subAccounts); const memo = getMemoFromTx(tx); + const extra = {}; + if (memo) { + extra["memo"] = memo; + } return { accountId, @@ -68,9 +72,7 @@ function mapTxToAccountOperation( subOperations, blockHeight: tx.blockHeight, date: new Date(tx.timestamp), - extra: { - memo, - }, + extra: extra, blockHash: undefined, }; } diff --git a/libs/ledger-live-common/src/families/cardano/logic.ts b/libs/ledger-live-common/src/families/cardano/logic.ts index 48dde894d52..5dcc2015d40 100644 --- a/libs/ledger-live-common/src/families/cardano/logic.ts +++ b/libs/ledger-live-common/src/families/cardano/logic.ts @@ -448,3 +448,13 @@ export function isHexString(value: string): boolean { const regExp = /^[0-9a-fA-F]+$/; return regExp.test(value); } + +export function decodeTokenName(assetName: string): string { + if (assetName.length > 0) { + const bytes = [...Buffer.from(assetName, "hex")]; + if (bytes.filter((byte) => byte <= 32 || byte >= 127).length === 0) { + return String.fromCharCode(...bytes); + } + } + return assetName; +} From 5dd4dae616cf01d43cf0dafaf75da39707f7a9a5 Mon Sep 17 00:00:00 2001 From: Prashanth Date: Mon, 18 Jul 2022 20:48:18 +0530 Subject: [PATCH 37/41] staking rewards info banner --- .../families/cardano/AccountBodyHeader.js | 5 +++ .../families/cardano/StakingRewardsBanner.jsx | 44 +++++++++++++++++++ .../static/i18n/en/app.json | 7 +++ 3 files changed, 56 insertions(+) create mode 100644 apps/ledger-live-desktop/src/renderer/families/cardano/AccountBodyHeader.js create mode 100644 apps/ledger-live-desktop/src/renderer/families/cardano/StakingRewardsBanner.jsx diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBodyHeader.js b/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBodyHeader.js new file mode 100644 index 00000000000..ca51d7d0fa4 --- /dev/null +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/AccountBodyHeader.js @@ -0,0 +1,5 @@ +// @flow + +import StakingRewardsBanner from "./StakingRewardsBanner"; + +export default StakingRewardsBanner; diff --git a/apps/ledger-live-desktop/src/renderer/families/cardano/StakingRewardsBanner.jsx b/apps/ledger-live-desktop/src/renderer/families/cardano/StakingRewardsBanner.jsx new file mode 100644 index 00000000000..410d83606af --- /dev/null +++ b/apps/ledger-live-desktop/src/renderer/families/cardano/StakingRewardsBanner.jsx @@ -0,0 +1,44 @@ +import React from "react"; +import styled from "styled-components"; +import Box, { Card } from "~/renderer/components/Box"; +import Text from "~/renderer/components/Text"; +import { useTranslation } from "react-i18next"; +import InfoCircle from "~/renderer/icons/InfoCircle"; + +const CardContent = styled(Box)` + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + flex: 1; +`; + +const CardHeaderContainer = styled(Box)` + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; +`; + +const CardHeader = styled(Text)` + font-weight: 600; + font-size: 12px; + margin-left: 8px; +`; + +const AccountBodyHeader = function() { + const { t } = useTranslation(); + + return ( + + + + + {t("cardano.account.subHeader.cardTitle")} + + + + ); +}; + +export default AccountBodyHeader; diff --git a/apps/ledger-live-desktop/static/i18n/en/app.json b/apps/ledger-live-desktop/static/i18n/en/app.json index 496e064fe87..ef59f7be1d1 100644 --- a/apps/ledger-live-desktop/static/i18n/en/app.json +++ b/apps/ledger-live-desktop/static/i18n/en/app.json @@ -1996,6 +1996,13 @@ } } }, + "cardano": { + "account": { + "subHeader": { + "cardTitle": "Total balance doesn't include staking rewards" + } + } + }, "tron": { "voting": { "emptyState": { From 3b0b36dd252221b319d945a669fdc127d792ace9 Mon Sep 17 00:00:00 2001 From: Henri Ly Date: Tue, 19 Jul 2022 15:33:37 +0200 Subject: [PATCH 38/41] summary memo fix --- .../src/renderer/modals/Send/steps/StepSummary.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/ledger-live-desktop/src/renderer/modals/Send/steps/StepSummary.jsx b/apps/ledger-live-desktop/src/renderer/modals/Send/steps/StepSummary.jsx index ee4ec422c31..1fe28794160 100644 --- a/apps/ledger-live-desktop/src/renderer/modals/Send/steps/StepSummary.jsx +++ b/apps/ledger-live-desktop/src/renderer/modals/Send/steps/StepSummary.jsx @@ -138,7 +138,7 @@ export default class StepSummary extends PureComponent { {memo && ( - + From d7e13c5252fd04bb4842d0761dab3af373a32ad8 Mon Sep 17 00:00:00 2001 From: Huiqi ZHENG Date: Tue, 19 Jul 2022 15:58:27 +0200 Subject: [PATCH 39/41] update podfile.lock --- apps/ledger-live-mobile/ios/Podfile.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/ledger-live-mobile/ios/Podfile.lock b/apps/ledger-live-mobile/ios/Podfile.lock index fb88158fa2d..4a51482146c 100644 --- a/apps/ledger-live-mobile/ios/Podfile.lock +++ b/apps/ledger-live-mobile/ios/Podfile.lock @@ -556,9 +556,9 @@ PODS: - RNScreens (3.13.1): - React-Core - React-RCTImage - - RNSentry (4.1.3): + - RNSentry (3.4.2): - React-Core - - Sentry (= 7.20.0) + - Sentry (= 7.11.0) - RNShare (6.5.0): - React-Core - RNSVG (12.3.0): @@ -571,9 +571,9 @@ PODS: - SDWebImageWebPCoder (0.8.5): - libwebp (~> 1.0) - SDWebImage/Core (~> 5.10) - - Sentry (7.20.0): - - Sentry/Core (= 7.20.0) - - Sentry/Core (7.20.0) + - Sentry (7.11.0): + - Sentry/Core (= 7.11.0) + - Sentry/Core (7.11.0) - SocketRocket (0.6.0) - Storyly (1.24.0) - storyly-react-native (1.24.0): @@ -687,7 +687,7 @@ DEPENDENCIES: - "RNOS (from `../../../node_modules/.pnpm/react-native-os@1.2.6/node_modules/react-native-os`)" - "RNReanimated (from `../../../node_modules/.pnpm/react-native-reanimated@2.8.0_q4bsppkovizpw5uw6ytm5z2tba/node_modules/react-native-reanimated`)" - "RNScreens (from `../../../node_modules/.pnpm/react-native-screens@3.13.1_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/react-native-screens`)" - - "RNSentry (from `../../../node_modules/.pnpm/@sentry+react-native@4.1.3_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/@sentry/react-native`)" + - "RNSentry (from `../../../node_modules/.pnpm/@sentry+react-native@3.4.2_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/@sentry/react-native`)" - "RNShare (from `../../../node_modules/.pnpm/react-native-share@6.5.0/node_modules/react-native-share`)" - "RNSVG (from `../../../node_modules/.pnpm/react-native-svg@12.3.0_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/react-native-svg`)" - "RNVectorIcons (from `../../../node_modules/.pnpm/react-native-vector-icons@8.1.0/node_modules/react-native-vector-icons`)" @@ -876,7 +876,7 @@ EXTERNAL SOURCES: RNScreens: :path: "../../../node_modules/.pnpm/react-native-screens@3.13.1_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/react-native-screens" RNSentry: - :path: "../../../node_modules/.pnpm/@sentry+react-native@4.1.3_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/@sentry/react-native" + :path: "../../../node_modules/.pnpm/@sentry+react-native@3.4.2_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/@sentry/react-native" RNShare: :path: "../../../node_modules/.pnpm/react-native-share@6.5.0/node_modules/react-native-share" RNSVG: @@ -990,13 +990,13 @@ SPEC CHECKSUMS: RNOS: 6f2f9a70895bbbfbdad7196abd952e7b01d45027 RNReanimated: 64573e25e078ae6bec03b891586d50b9ec284393 RNScreens: 40a2cb40a02a609938137a1e0acfbf8fc9eebf19 - RNSentry: 49ac40f818ad2bb65f3578d400e2474767e12a5b + RNSentry: 2cd1daa124b0d9fd0dfc2cb6094fdd168cb579bc RNShare: 047d42214f875d731bde73a2b67418638af85ad9 RNSVG: 302bfc9905bd8122f08966dc2ce2d07b7b52b9f8 RNVectorIcons: 31cebfcf94e8cf8686eb5303ae0357da64d7a5a4 SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d - Sentry: 9e8ec837fa37e7b397f19f75542800461b138d0e + Sentry: 0c5cd63d714187b4a39c331c1f0eb04ba7868341 SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608 Storyly: a532af158a58795a0c3efe6f13e7545b087fe3d9 storyly-react-native: 15a66fc16250e2f5edce786126a02438182d89f9 From 78d12761e71456cdac72508d5018077b3eea8396 Mon Sep 17 00:00:00 2001 From: Huiqi ZHENG Date: Tue, 19 Jul 2022 18:21:17 +0200 Subject: [PATCH 40/41] update podfile.lock --- apps/ledger-live-mobile/ios/Podfile.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/ledger-live-mobile/ios/Podfile.lock b/apps/ledger-live-mobile/ios/Podfile.lock index e2aa2774913..8e811a3dcb6 100644 --- a/apps/ledger-live-mobile/ios/Podfile.lock +++ b/apps/ledger-live-mobile/ios/Podfile.lock @@ -556,9 +556,9 @@ PODS: - RNScreens (3.13.1): - React-Core - React-RCTImage - - RNSentry (3.4.2): + - RNSentry (4.1.3): - React-Core - - Sentry (= 7.11.0) + - Sentry (= 7.20.0) - RNShare (6.5.0): - React-Core - RNSVG (12.3.0): @@ -571,9 +571,9 @@ PODS: - SDWebImageWebPCoder (0.8.5): - libwebp (~> 1.0) - SDWebImage/Core (~> 5.10) - - Sentry (7.11.0): - - Sentry/Core (= 7.11.0) - - Sentry/Core (7.11.0) + - Sentry (7.20.0): + - Sentry/Core (= 7.20.0) + - Sentry/Core (7.20.0) - SocketRocket (0.6.0) - Storyly (1.24.0) - storyly-react-native (1.24.0): @@ -687,7 +687,7 @@ DEPENDENCIES: - "RNOS (from `../../../node_modules/.pnpm/react-native-os@1.2.6/node_modules/react-native-os`)" - "RNReanimated (from `../../../node_modules/.pnpm/react-native-reanimated@2.8.0_q4bsppkovizpw5uw6ytm5z2tba/node_modules/react-native-reanimated`)" - "RNScreens (from `../../../node_modules/.pnpm/react-native-screens@3.13.1_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/react-native-screens`)" - - "RNSentry (from `../../../node_modules/.pnpm/@sentry+react-native@3.4.2_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/@sentry/react-native`)" + - "RNSentry (from `../../../node_modules/.pnpm/@sentry+react-native@4.1.3_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/@sentry/react-native`)" - "RNShare (from `../../../node_modules/.pnpm/react-native-share@6.5.0/node_modules/react-native-share`)" - "RNSVG (from `../../../node_modules/.pnpm/react-native-svg@12.3.0_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/react-native-svg`)" - "RNVectorIcons (from `../../../node_modules/.pnpm/react-native-vector-icons@8.1.0/node_modules/react-native-vector-icons`)" @@ -876,7 +876,7 @@ EXTERNAL SOURCES: RNScreens: :path: "../../../node_modules/.pnpm/react-native-screens@3.13.1_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/react-native-screens" RNSentry: - :path: "../../../node_modules/.pnpm/@sentry+react-native@3.4.2_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/@sentry/react-native" + :path: "../../../node_modules/.pnpm/@sentry+react-native@4.1.3_zqxy7fpkavjkgz5xll7ed4r6rq/node_modules/@sentry/react-native" RNShare: :path: "../../../node_modules/.pnpm/react-native-share@6.5.0/node_modules/react-native-share" RNSVG: @@ -990,13 +990,13 @@ SPEC CHECKSUMS: RNOS: 6f2f9a70895bbbfbdad7196abd952e7b01d45027 RNReanimated: 64573e25e078ae6bec03b891586d50b9ec284393 RNScreens: 40a2cb40a02a609938137a1e0acfbf8fc9eebf19 - RNSentry: 2cd1daa124b0d9fd0dfc2cb6094fdd168cb579bc + RNSentry: 49ac40f818ad2bb65f3578d400e2474767e12a5b RNShare: 047d42214f875d731bde73a2b67418638af85ad9 RNSVG: 302bfc9905bd8122f08966dc2ce2d07b7b52b9f8 RNVectorIcons: 31cebfcf94e8cf8686eb5303ae0357da64d7a5a4 SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d - Sentry: 0c5cd63d714187b4a39c331c1f0eb04ba7868341 + Sentry: 9e8ec837fa37e7b397f19f75542800461b138d0e SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608 Storyly: a532af158a58795a0c3efe6f13e7545b087fe3d9 storyly-react-native: 15a66fc16250e2f5edce786126a02438182d89f9 From 621e40e57f441145e540f64b7100111b2d9d6a02 Mon Sep 17 00:00:00 2001 From: Huiqi ZHENG Date: Wed, 20 Jul 2022 10:13:49 +0200 Subject: [PATCH 41/41] fix lint error --- libs/ledgerjs/packages/cryptoassets/src/tokens.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/ledgerjs/packages/cryptoassets/src/tokens.ts b/libs/ledgerjs/packages/cryptoassets/src/tokens.ts index 0595e9f474a..30cceeed6b2 100644 --- a/libs/ledgerjs/packages/cryptoassets/src/tokens.ts +++ b/libs/ledgerjs/packages/cryptoassets/src/tokens.ts @@ -432,4 +432,4 @@ function convertStellarTokens([ }, ], }; -} \ No newline at end of file +}