fix: routes ui for bridging (#19959)
Signed-off-by: Brian Sztamfater <brian@status.im>
This commit is contained in:
parent
29b02a544c
commit
dc551031fe
|
@ -35,6 +35,7 @@
|
||||||
receiver-networks (get-in db [:wallet :ui :send :receiver-networks])
|
receiver-networks (get-in db [:wallet :ui :send :receiver-networks])
|
||||||
receiver-network-values (get-in db [:wallet :ui :send :receiver-network-values])
|
receiver-network-values (get-in db [:wallet :ui :send :receiver-network-values])
|
||||||
sender-network-values (get-in db [:wallet :ui :send :sender-network-values])
|
sender-network-values (get-in db [:wallet :ui :send :sender-network-values])
|
||||||
|
tx-type (get-in db [:wallet :ui :send :tx-type])
|
||||||
disabled-from-chain-ids (or (get-in db [:wallet :ui :send :disabled-from-chain-ids]) [])
|
disabled-from-chain-ids (or (get-in db [:wallet :ui :send :disabled-from-chain-ids]) [])
|
||||||
token-decimals (if collectible 0 (:decimals token))
|
token-decimals (if collectible 0 (:decimals token))
|
||||||
native-token? (and token (= token-display-name "ETH"))
|
native-token? (and token (= token-display-name "ETH"))
|
||||||
|
@ -61,6 +62,7 @@
|
||||||
:disabled-chain-ids disabled-from-chain-ids
|
:disabled-chain-ids disabled-from-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? false})
|
:receiver? false})
|
||||||
(send-utils/reset-network-amounts-to-zero
|
(send-utils/reset-network-amounts-to-zero
|
||||||
sender-network-values))
|
sender-network-values))
|
||||||
|
@ -70,6 +72,7 @@
|
||||||
:disabled-chain-ids disabled-from-chain-ids
|
:disabled-chain-ids disabled-from-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? true})
|
:receiver? true})
|
||||||
(send-utils/reset-network-amounts-to-zero
|
(send-utils/reset-network-amounts-to-zero
|
||||||
receiver-network-values))
|
receiver-network-values))
|
||||||
|
@ -343,18 +346,28 @@
|
||||||
token-networks-ids (when token (mapv #(:chain-id %) (:networks token)))
|
token-networks-ids (when token (mapv #(:chain-id %) (:networks token)))
|
||||||
sender-network-values (when token-available-networks-for-suggested-routes
|
sender-network-values (when token-available-networks-for-suggested-routes
|
||||||
(send-utils/loading-network-amounts
|
(send-utils/loading-network-amounts
|
||||||
{:valid-networks token-available-networks-for-suggested-routes
|
{:valid-networks (if (= transaction-type :tx/bridge)
|
||||||
|
(filter
|
||||||
|
#(not= bridge-to-chain-id %)
|
||||||
|
token-available-networks-for-suggested-routes)
|
||||||
|
token-available-networks-for-suggested-routes)
|
||||||
:disabled-chain-ids disabled-from-chain-ids
|
:disabled-chain-ids disabled-from-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type transaction-type
|
||||||
:receiver? false}))
|
:receiver? false}))
|
||||||
receiver-network-values (when token-available-networks-for-suggested-routes
|
receiver-network-values (when token-available-networks-for-suggested-routes
|
||||||
(send-utils/loading-network-amounts
|
(send-utils/loading-network-amounts
|
||||||
{:valid-networks token-available-networks-for-suggested-routes
|
{:valid-networks (if (= transaction-type :tx/bridge)
|
||||||
|
(filter
|
||||||
|
#(= bridge-to-chain-id %)
|
||||||
|
token-available-networks-for-suggested-routes)
|
||||||
|
token-available-networks-for-suggested-routes)
|
||||||
:disabled-chain-ids disabled-from-chain-ids
|
:disabled-chain-ids disabled-from-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
:receiver? true}))
|
:tx-type transaction-type
|
||||||
|
:receiver? true}))
|
||||||
request-params [transaction-type-param
|
request-params [transaction-type-param
|
||||||
from-address
|
from-address
|
||||||
to-address
|
to-address
|
||||||
|
|
|
@ -310,7 +310,7 @@
|
||||||
:button-one-label (if should-try-again?
|
:button-one-label (if should-try-again?
|
||||||
(i18n/label :t/try-again)
|
(i18n/label :t/try-again)
|
||||||
button-one-label)
|
button-one-label)
|
||||||
:button-one-props (merge button-one-props
|
:button-one-props (merge (when-not should-try-again? button-one-props)
|
||||||
{:disabled? (and (not should-try-again?) confirm-disabled?)
|
{:disabled? (and (not should-try-again?) confirm-disabled?)
|
||||||
:on-press (cond
|
:on-press (cond
|
||||||
should-try-again?
|
should-try-again?
|
||||||
|
|
|
@ -94,7 +94,7 @@
|
||||||
network-amounts))
|
network-amounts))
|
||||||
|
|
||||||
(defn network-amounts
|
(defn network-amounts
|
||||||
[{:keys [network-values disabled-chain-ids receiver-networks token-networks-ids receiver?]}]
|
[{:keys [network-values disabled-chain-ids receiver-networks token-networks-ids tx-type receiver?]}]
|
||||||
(let [disabled-set (set disabled-chain-ids)
|
(let [disabled-set (set disabled-chain-ids)
|
||||||
receiver-networks-set (set receiver-networks)
|
receiver-networks-set (set receiver-networks)
|
||||||
network-values-keys (set (keys network-values))
|
network-values-keys (set (keys network-values))
|
||||||
|
@ -150,11 +150,12 @@
|
||||||
(vec))
|
(vec))
|
||||||
(and receiver?
|
(and receiver?
|
||||||
routes-found?
|
routes-found?
|
||||||
(< (count network-values-with-not-available-chains) available-networks-count))
|
(< (count network-values-with-not-available-chains) available-networks-count)
|
||||||
|
(not= tx-type :tx/bridge))
|
||||||
(conj {:type :add}))))
|
(conj {:type :add}))))
|
||||||
|
|
||||||
(defn loading-network-amounts
|
(defn loading-network-amounts
|
||||||
[{:keys [valid-networks disabled-chain-ids receiver-networks token-networks-ids receiver?]}]
|
[{:keys [valid-networks disabled-chain-ids receiver-networks token-networks-ids tx-type receiver?]}]
|
||||||
(let [disabled-set (set disabled-chain-ids)
|
(let [disabled-set (set disabled-chain-ids)
|
||||||
receiver-networks-set (set receiver-networks)
|
receiver-networks-set (set receiver-networks)
|
||||||
receiver-networks-count (count receiver-networks)
|
receiver-networks-count (count receiver-networks)
|
||||||
|
@ -164,11 +165,13 @@
|
||||||
(filter #(not (token-networks-ids-set %)) receiver-networks)
|
(filter #(not (token-networks-ids-set %)) receiver-networks)
|
||||||
[])
|
[])
|
||||||
not-available-networks-set (set not-available-networks)
|
not-available-networks-set (set not-available-networks)
|
||||||
valid-networks (concat valid-networks
|
valid-networks (-> (concat valid-networks
|
||||||
disabled-chain-ids
|
(when (not (and receiver? (= tx-type :tx/bridge)))
|
||||||
(when receiver?
|
disabled-chain-ids)
|
||||||
(filter #(not (valid-networks-set %))
|
(when receiver?
|
||||||
not-available-networks)))]
|
(filter #(not (valid-networks-set %))
|
||||||
|
not-available-networks)))
|
||||||
|
(distinct))]
|
||||||
(cond-> (->> valid-networks
|
(cond-> (->> valid-networks
|
||||||
(map
|
(map
|
||||||
(fn [chain-id]
|
(fn [chain-id]
|
||||||
|
@ -181,16 +184,18 @@
|
||||||
(and (not receiver?) (contains? disabled-set chain-id)) :disabled)}
|
(and (not receiver?) (contains? disabled-set chain-id)) :disabled)}
|
||||||
(and (not receiver?) (contains? disabled-set chain-id))
|
(and (not receiver?) (contains? disabled-set chain-id))
|
||||||
(assoc :total-amount (money/bignumber "0")))))
|
(assoc :total-amount (money/bignumber "0")))))
|
||||||
|
(filter
|
||||||
|
(fn [network-amount]
|
||||||
|
(or (and receiver?
|
||||||
|
(or (= tx-type :tx/bridge)
|
||||||
|
(contains? receiver-networks-set (:chain-id network-amount))))
|
||||||
|
(not receiver?))))
|
||||||
(sort-by (fn [network-amount]
|
(sort-by (fn [network-amount]
|
||||||
(get network-priority-score
|
(get network-priority-score
|
||||||
(network-utils/id->network (:chain-id network-amount)))))
|
(network-utils/id->network (:chain-id network-amount)))))
|
||||||
(filter
|
|
||||||
(fn [network-amount]
|
|
||||||
(or (and receiver? (contains? receiver-networks-set (:chain-id network-amount)))
|
|
||||||
(and (not receiver?)
|
|
||||||
(not (contains? disabled-chain-ids (:chain-id network-amount)))))))
|
|
||||||
(vec))
|
(vec))
|
||||||
(and receiver? (< receiver-networks-count available-networks-count)) (conj {:type :add}))))
|
(and receiver? (< receiver-networks-count available-networks-count) (not= tx-type :tx/bridge))
|
||||||
|
(conj {:type :add}))))
|
||||||
|
|
||||||
(defn network-links
|
(defn network-links
|
||||||
[route from-values-by-chain to-values-by-chain]
|
[route from-values-by-chain to-values-by-chain]
|
||||||
|
|
|
@ -33,9 +33,9 @@
|
||||||
(deftest test-network-amounts-by-chain
|
(deftest test-network-amounts-by-chain
|
||||||
(testing "Correctly calculates network amounts for transaction with native token"
|
(testing "Correctly calculates network amounts for transaction with native token"
|
||||||
(let [route [{:amount-in "0xde0b6b3a7640000"
|
(let [route [{:amount-in "0xde0b6b3a7640000"
|
||||||
:to {:chain-id "1"}}
|
:to {:chain-id 1}}
|
||||||
{:amount-in "0xde0b6b3a7640000"
|
{:amount-in "0xde0b6b3a7640000"
|
||||||
:to {:chain-id "2"}}]
|
:to {:chain-id 10}}]
|
||||||
token-decimals 18
|
token-decimals 18
|
||||||
native-token? true
|
native-token? true
|
||||||
receiver? true
|
receiver? true
|
||||||
|
@ -43,17 +43,17 @@
|
||||||
:token-decimals token-decimals
|
:token-decimals token-decimals
|
||||||
:native-token? native-token?
|
:native-token? native-token?
|
||||||
:receiver? receiver?})
|
:receiver? receiver?})
|
||||||
expected {"1" (money/bignumber "1")
|
expected {1 (money/bignumber "1")
|
||||||
"2" (money/bignumber "1")}]
|
10 (money/bignumber "1")}]
|
||||||
(doseq [[chain-id exp-value] expected]
|
(doseq [[chain-id exp-value] expected]
|
||||||
(is (money/equal-to (get result chain-id) exp-value)))))
|
(is (money/equal-to (get result chain-id) exp-value)))))
|
||||||
|
|
||||||
(testing
|
(testing
|
||||||
"Correctly calculates network amounts for transaction with native token and multiple routes to same chain-id"
|
"Correctly calculates network amounts for transaction with native token and multiple routes to same chain-id"
|
||||||
(let [route [{:amount-in "0xde0b6b3a7640000"
|
(let [route [{:amount-in "0xde0b6b3a7640000"
|
||||||
:to {:chain-id "1"}}
|
:to {:chain-id 1}}
|
||||||
{:amount-in "0xde0b6b3a7640000"
|
{:amount-in "0xde0b6b3a7640000"
|
||||||
:to {:chain-id "1"}}]
|
:to {:chain-id 1}}]
|
||||||
token-decimals 18
|
token-decimals 18
|
||||||
native-token? true
|
native-token? true
|
||||||
receiver? true
|
receiver? true
|
||||||
|
@ -61,15 +61,15 @@
|
||||||
:token-decimals token-decimals
|
:token-decimals token-decimals
|
||||||
:native-token? native-token?
|
:native-token? native-token?
|
||||||
:receiver? receiver?})
|
:receiver? receiver?})
|
||||||
expected {"1" (money/bignumber "2")}]
|
expected {1 (money/bignumber "2")}]
|
||||||
(doseq [[chain-id exp-value] expected]
|
(doseq [[chain-id exp-value] expected]
|
||||||
(is (money/equal-to (get result chain-id) exp-value)))))
|
(is (money/equal-to (get result chain-id) exp-value)))))
|
||||||
|
|
||||||
(testing "Correctly calculates network amounts for transaction with non-native token"
|
(testing "Correctly calculates network amounts for transaction with non-native token"
|
||||||
(let [route [{:amount-out "0x1e8480"
|
(let [route [{:amount-out "0x1e8480"
|
||||||
:from {:chain-id "1"}}
|
:from {:chain-id 1}}
|
||||||
{:amount-out "0x1e8480"
|
{:amount-out "0x1e8480"
|
||||||
:from {:chain-id "2"}}]
|
:from {:chain-id 10}}]
|
||||||
token-decimals 6
|
token-decimals 6
|
||||||
native-token? false
|
native-token? false
|
||||||
receiver? false
|
receiver? false
|
||||||
|
@ -77,20 +77,20 @@
|
||||||
:token-decimals token-decimals
|
:token-decimals token-decimals
|
||||||
:native-token? native-token?
|
:native-token? native-token?
|
||||||
:receiver? receiver?})
|
:receiver? receiver?})
|
||||||
expected {"1" (money/bignumber "2")
|
expected {1 (money/bignumber "2")
|
||||||
"2" (money/bignumber "2")}]
|
10 (money/bignumber "2")}]
|
||||||
(doseq [[chain-id exp-value] expected]
|
(doseq [[chain-id exp-value] expected]
|
||||||
(is (money/equal-to (get result chain-id) exp-value))))))
|
(is (money/equal-to (get result chain-id) exp-value))))))
|
||||||
|
|
||||||
(deftest test-network-values-for-ui
|
(deftest test-network-values-for-ui
|
||||||
(testing "Sanitizes values correctly for display"
|
(testing "Sanitizes values correctly for display"
|
||||||
(let [amounts {"1" (money/bignumber "0")
|
(let [amounts {1 (money/bignumber "0")
|
||||||
"2" (money/bignumber "2.5")
|
10 (money/bignumber "2.5")
|
||||||
"3" (money/bignumber "0.005")}
|
42161 (money/bignumber "0.005")}
|
||||||
result (utils/network-values-for-ui amounts)
|
result (utils/network-values-for-ui amounts)
|
||||||
expected {"1" "<0.01"
|
expected {1 "<0.01"
|
||||||
"2" (money/bignumber "2.5")
|
10 (money/bignumber "2.5")
|
||||||
"3" (money/bignumber "0.005")}]
|
42161 (money/bignumber "0.005")}]
|
||||||
(doseq [[chain-id exp-value] expected]
|
(doseq [[chain-id exp-value] expected]
|
||||||
(is #(or (= (get result chain-id) exp-value)
|
(is #(or (= (get result chain-id) exp-value)
|
||||||
(money/equal-to (get result chain-id) exp-value)))))))
|
(money/equal-to (get result chain-id) exp-value)))))))
|
||||||
|
@ -168,32 +168,32 @@
|
||||||
|
|
||||||
(deftest test-token-available-networks-for-suggested-routes
|
(deftest test-token-available-networks-for-suggested-routes
|
||||||
(testing "Excludes disabled chain-ids correctly"
|
(testing "Excludes disabled chain-ids correctly"
|
||||||
(let [balances-per-chain {"1" {:chain-id "1" :balance 100}
|
(let [balances-per-chain {1 {:chain-id 1 :balance 100}
|
||||||
"10" {:chain-id "10" :balance 200}
|
10 {:chain-id 10 :balance 200}
|
||||||
"42161" {:chain-id "42161" :balance 300}}
|
42161 {:chain-id 42161 :balance 300}}
|
||||||
disabled-chain-ids ["10"]
|
disabled-chain-ids [10]
|
||||||
expected ["1" "42161"]]
|
expected [1 42161]]
|
||||||
(is (= expected
|
(is (= expected
|
||||||
(utils/token-available-networks-for-suggested-routes {:balances-per-chain balances-per-chain
|
(utils/token-available-networks-for-suggested-routes {:balances-per-chain balances-per-chain
|
||||||
:disabled-chain-ids
|
:disabled-chain-ids
|
||||||
disabled-chain-ids})))))
|
disabled-chain-ids})))))
|
||||||
|
|
||||||
(testing "Returns all chains when no disabled chains are specified"
|
(testing "Returns all chains when no disabled chains are specified"
|
||||||
(let [balances-per-chain {"1" {:chain-id "1" :balance 100}
|
(let [balances-per-chain {1 {:chain-id 1 :balance 100}
|
||||||
"10" {:chain-id "10" :balance 200}
|
10 {:chain-id 10 :balance 200}
|
||||||
"42161" {:chain-id "42161" :balance 300}}
|
42161 {:chain-id 42161 :balance 300}}
|
||||||
disabled-chain-ids []
|
disabled-chain-ids []
|
||||||
expected ["1" "10" "42161"]]
|
expected [1 10 42161]]
|
||||||
(is (= expected
|
(is (= expected
|
||||||
(utils/token-available-networks-for-suggested-routes {:balances-per-chain balances-per-chain
|
(utils/token-available-networks-for-suggested-routes {:balances-per-chain balances-per-chain
|
||||||
:disabled-chain-ids
|
:disabled-chain-ids
|
||||||
disabled-chain-ids})))))
|
disabled-chain-ids})))))
|
||||||
|
|
||||||
(testing "Returns empty list when all chains are disabled"
|
(testing "Returns empty list when all chains are disabled"
|
||||||
(let [balances-per-chain {"1" {:chain-id "1" :balance 100}
|
(let [balances-per-chain {1 {:chain-id 1 :balance 100}
|
||||||
"10" {:chain-id "10" :balance 200}
|
10 {:chain-id 10 :balance 200}
|
||||||
"42161" {:chain-id "42161" :balance 300}}
|
42161 {:chain-id 42161 :balance 300}}
|
||||||
disabled-chain-ids ["1" "10" "42161"]
|
disabled-chain-ids [1 10 42161]
|
||||||
expected []]
|
expected []]
|
||||||
(is (= expected
|
(is (= expected
|
||||||
(utils/token-available-networks-for-suggested-routes {:balances-per-chain balances-per-chain
|
(utils/token-available-networks-for-suggested-routes {:balances-per-chain balances-per-chain
|
||||||
|
@ -201,9 +201,9 @@
|
||||||
disabled-chain-ids})))))
|
disabled-chain-ids})))))
|
||||||
|
|
||||||
(testing "Handles non-existent chain-ids gracefully"
|
(testing "Handles non-existent chain-ids gracefully"
|
||||||
(let [balances-per-chain {"59144" {:chain-id "59144" :balance 400}}
|
(let [balances-per-chain {59144 {:chain-id 59144 :balance 400}}
|
||||||
disabled-chain-ids ["1" "10" "42161"]
|
disabled-chain-ids [1 10 42161]
|
||||||
expected ["59144"]]
|
expected [59144]]
|
||||||
(is (= expected
|
(is (= expected
|
||||||
(utils/token-available-networks-for-suggested-routes {:balances-per-chain balances-per-chain
|
(utils/token-available-networks-for-suggested-routes {:balances-per-chain balances-per-chain
|
||||||
:disabled-chain-ids
|
:disabled-chain-ids
|
||||||
|
@ -211,10 +211,10 @@
|
||||||
|
|
||||||
(deftest test-reset-network-amounts-to-zero
|
(deftest test-reset-network-amounts-to-zero
|
||||||
(testing "Correctly resets loading network amounts to zero and changes type to default"
|
(testing "Correctly resets loading network amounts to zero and changes type to default"
|
||||||
(let [network-amounts [{:chain-id "1" :total-amount (money/bignumber "100") :type :loading}
|
(let [network-amounts [{:chain-id 1 :total-amount (money/bignumber "100") :type :loading}
|
||||||
{:chain-id "10" :total-amount (money/bignumber "200") :type :default}]
|
{:chain-id 10 :total-amount (money/bignumber "200") :type :default}]
|
||||||
expected [{:chain-id "1" :total-amount (money/bignumber "0") :type :default}
|
expected [{:chain-id 1 :total-amount (money/bignumber "0") :type :default}
|
||||||
{:chain-id "10" :total-amount (money/bignumber "200") :type :default}]
|
{:chain-id 10 :total-amount (money/bignumber "200") :type :default}]
|
||||||
result (utils/reset-network-amounts-to-zero network-amounts)
|
result (utils/reset-network-amounts-to-zero network-amounts)
|
||||||
comparisons (map #(map/deep-compare %1 %2)
|
comparisons (map #(map/deep-compare %1 %2)
|
||||||
expected
|
expected
|
||||||
|
@ -222,10 +222,10 @@
|
||||||
(is (every? identity comparisons))))
|
(is (every? identity comparisons))))
|
||||||
|
|
||||||
(testing "Leaves non-loading types unchanged"
|
(testing "Leaves non-loading types unchanged"
|
||||||
(let [network-amounts [{:chain-id "1" :total-amount (money/bignumber "100") :type :default}
|
(let [network-amounts [{:chain-id 1 :total-amount (money/bignumber "100") :type :default}
|
||||||
{:chain-id "10" :total-amount (money/bignumber "0") :type :disabled}]
|
{:chain-id 10 :total-amount (money/bignumber "0") :type :disabled}]
|
||||||
expected [{:chain-id "1" :total-amount (money/bignumber "100") :type :default}
|
expected [{:chain-id 1 :total-amount (money/bignumber "100") :type :default}
|
||||||
{:chain-id "10" :total-amount (money/bignumber "0") :type :disabled}]
|
{:chain-id 10 :total-amount (money/bignumber "0") :type :disabled}]
|
||||||
result (utils/reset-network-amounts-to-zero network-amounts)
|
result (utils/reset-network-amounts-to-zero network-amounts)
|
||||||
comparisons (map #(map/deep-compare %1 %2)
|
comparisons (map #(map/deep-compare %1 %2)
|
||||||
expected
|
expected
|
||||||
|
@ -242,10 +242,10 @@
|
||||||
(is (every? identity comparisons))))
|
(is (every? identity comparisons))))
|
||||||
|
|
||||||
(testing "Applies transformations to multiple loading entries"
|
(testing "Applies transformations to multiple loading entries"
|
||||||
(let [network-amounts [{:chain-id "1" :total-amount (money/bignumber "100") :type :loading}
|
(let [network-amounts [{:chain-id 1 :total-amount (money/bignumber "100") :type :loading}
|
||||||
{:chain-id "10" :total-amount (money/bignumber "200") :type :loading}]
|
{:chain-id 10 :total-amount (money/bignumber "200") :type :loading}]
|
||||||
expected [{:chain-id "1" :total-amount (money/bignumber "0") :type :default}
|
expected [{:chain-id 1 :total-amount (money/bignumber "0") :type :default}
|
||||||
{:chain-id "10" :total-amount (money/bignumber "0") :type :default}]
|
{:chain-id 10 :total-amount (money/bignumber "0") :type :default}]
|
||||||
result (utils/reset-network-amounts-to-zero network-amounts)
|
result (utils/reset-network-amounts-to-zero network-amounts)
|
||||||
comparisons (map #(map/deep-compare %1 %2)
|
comparisons (map #(map/deep-compare %1 %2)
|
||||||
expected
|
expected
|
||||||
|
@ -253,14 +253,14 @@
|
||||||
(is (every? identity comparisons))))
|
(is (every? identity comparisons))))
|
||||||
|
|
||||||
(testing "Mix of loading and non-loading types"
|
(testing "Mix of loading and non-loading types"
|
||||||
(let [network-amounts [{:chain-id "1" :total-amount (money/bignumber "100") :type :loading}
|
(let [network-amounts [{:chain-id 1 :total-amount (money/bignumber "100") :type :loading}
|
||||||
{:chain-id "10" :total-amount (money/bignumber "200") :type :default}
|
{:chain-id 10 :total-amount (money/bignumber "200") :type :default}
|
||||||
{:chain-id "42161" :total-amount (money/bignumber "300") :type :loading}
|
{:chain-id 42161 :total-amount (money/bignumber "300") :type :loading}
|
||||||
{:chain-id "59144" :total-amount (money/bignumber "0") :type :disabled}]
|
{:chain-id 59144 :total-amount (money/bignumber "0") :type :disabled}]
|
||||||
expected [{:chain-id "1" :total-amount (money/bignumber "0") :type :default}
|
expected [{:chain-id 1 :total-amount (money/bignumber "0") :type :default}
|
||||||
{:chain-id "10" :total-amount (money/bignumber "200") :type :default}
|
{:chain-id 10 :total-amount (money/bignumber "200") :type :default}
|
||||||
{:chain-id "42161" :total-amount (money/bignumber "0") :type :default}
|
{:chain-id 42161 :total-amount (money/bignumber "0") :type :default}
|
||||||
{:chain-id "59144" :total-amount (money/bignumber "0") :type :disabled}]
|
{:chain-id 59144 :total-amount (money/bignumber "0") :type :disabled}]
|
||||||
result (utils/reset-network-amounts-to-zero network-amounts)
|
result (utils/reset-network-amounts-to-zero network-amounts)
|
||||||
comparisons (map #(map/deep-compare %1 %2)
|
comparisons (map #(map/deep-compare %1 %2)
|
||||||
expected
|
expected
|
||||||
|
@ -269,42 +269,46 @@
|
||||||
|
|
||||||
(deftest test-network-amounts
|
(deftest test-network-amounts
|
||||||
(testing "Handles disabled and receiver networks correctly when receiver? is true"
|
(testing "Handles disabled and receiver networks correctly when receiver? is true"
|
||||||
(let [network-values {"1" (money/bignumber "100")
|
(let [network-values {1 (money/bignumber "100")
|
||||||
"10" (money/bignumber "200")}
|
10 (money/bignumber "200")}
|
||||||
disabled-chain-ids ["1"]
|
disabled-chain-ids [1]
|
||||||
receiver-networks ["10"]
|
receiver-networks [10]
|
||||||
token-networks-ids ["1" "10" "42161"]
|
token-networks-ids [1 10 42161]
|
||||||
receiver? true
|
receiver? true
|
||||||
expected [{:chain-id "1"
|
expected [{:chain-id 1
|
||||||
:total-amount (money/bignumber "100")
|
:total-amount (money/bignumber "100")
|
||||||
:type :default}
|
:type :default}
|
||||||
{:chain-id "10"
|
{:chain-id 10
|
||||||
:total-amount (money/bignumber "200")
|
:total-amount (money/bignumber "200")
|
||||||
:type :default}
|
:type :default}
|
||||||
{:type :add}]
|
{:type :add}]
|
||||||
|
tx-type :send
|
||||||
result (utils/network-amounts {:network-values network-values
|
result (utils/network-amounts {:network-values network-values
|
||||||
:disabled-chain-ids disabled-chain-ids
|
:disabled-chain-ids disabled-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? receiver?})]
|
:receiver? receiver?})]
|
||||||
(is (every? identity (map #(map/deep-compare %1 %2) expected result)))))
|
(is (every? identity (map #(map/deep-compare %1 %2) expected result)))))
|
||||||
|
|
||||||
(testing "Adds default amount for non-disabled non-receiver networks when receiver? is false"
|
(testing "Adds default amount for non-disabled non-receiver networks when receiver? is false"
|
||||||
(let [network-values {"1" (money/bignumber "100")}
|
(let [network-values {1 (money/bignumber "100")}
|
||||||
disabled-chain-ids ["10"]
|
disabled-chain-ids [10]
|
||||||
receiver-networks []
|
receiver-networks []
|
||||||
token-networks-ids ["1" "10" "42161"]
|
token-networks-ids [1 10 42161]
|
||||||
receiver? false
|
receiver? false
|
||||||
expected [{:chain-id "1"
|
expected [{:chain-id 1
|
||||||
:total-amount (money/bignumber "100")
|
:total-amount (money/bignumber "100")
|
||||||
:type :default}
|
:type :default}
|
||||||
{:chain-id "10"
|
{:chain-id 10
|
||||||
:total-amount (money/bignumber "0")
|
:total-amount (money/bignumber "0")
|
||||||
:type :disabled}]
|
:type :disabled}]
|
||||||
|
tx-type :send
|
||||||
result (utils/network-amounts {:network-values network-values
|
result (utils/network-amounts {:network-values network-values
|
||||||
:disabled-chain-ids disabled-chain-ids
|
:disabled-chain-ids disabled-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? receiver?})]
|
:receiver? receiver?})]
|
||||||
(is (every? identity (map #(map/deep-compare %1 %2) expected result)))))
|
(is (every? identity (map #(map/deep-compare %1 %2) expected result)))))
|
||||||
|
|
||||||
|
@ -315,90 +319,139 @@
|
||||||
token-networks-ids []
|
token-networks-ids []
|
||||||
receiver? true
|
receiver? true
|
||||||
expected []
|
expected []
|
||||||
|
tx-type :send
|
||||||
result (utils/network-amounts {:network-values network-values
|
result (utils/network-amounts {:network-values network-values
|
||||||
:disabled-chain-ids disabled-chain-ids
|
:disabled-chain-ids disabled-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? receiver?})]
|
:receiver? receiver?})]
|
||||||
(is (= expected result))))
|
(is (= expected result))))
|
||||||
|
|
||||||
(testing "Processes case with multiple network interactions"
|
(testing "Processes case with multiple network interactions"
|
||||||
(let [network-values {"1" (money/bignumber "300")
|
(let [network-values {1 (money/bignumber "300")
|
||||||
"10" (money/bignumber "400")
|
10 (money/bignumber "400")
|
||||||
"42161" (money/bignumber "500")}
|
42161 (money/bignumber "500")}
|
||||||
disabled-chain-ids ["1" "42161"]
|
disabled-chain-ids [1 42161]
|
||||||
receiver-networks ["10"]
|
receiver-networks [10]
|
||||||
token-networks-ids ["1" "10" "42161"]
|
token-networks-ids [1 10 42161]
|
||||||
receiver? true
|
receiver? true
|
||||||
expected [{:chain-id "1"
|
expected [{:chain-id 1
|
||||||
:total-amount (money/bignumber "300")
|
:total-amount (money/bignumber "300")
|
||||||
:type :default}
|
:type :default}
|
||||||
{:chain-id "10"
|
{:chain-id 10
|
||||||
:total-amount (money/bignumber "400")
|
:total-amount (money/bignumber "400")
|
||||||
:type :default}
|
:type :default}
|
||||||
{:chain-id "42161"
|
{:chain-id 42161
|
||||||
:total-amount (money/bignumber "500")
|
:total-amount (money/bignumber "500")
|
||||||
:type :default}]
|
:type :default}]
|
||||||
|
tx-type :send
|
||||||
result (utils/network-amounts {:network-values network-values
|
result (utils/network-amounts {:network-values network-values
|
||||||
:disabled-chain-ids disabled-chain-ids
|
:disabled-chain-ids disabled-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? receiver?})]
|
:receiver? receiver?})]
|
||||||
(is (every? identity (map #(map/deep-compare %1 %2) expected result)))))
|
(is (every? identity (map #(map/deep-compare %1 %2) expected result)))))
|
||||||
|
|
||||||
(testing "Does not assign :not-available type when receiver? is false"
|
(testing "Does not assign :not-available type when receiver? is false"
|
||||||
(let [network-values {"1" (money/bignumber "100")}
|
(let [network-values {1 (money/bignumber "100")}
|
||||||
disabled-chain-ids ["10"]
|
disabled-chain-ids [10]
|
||||||
receiver-networks ["1"]
|
receiver-networks [1]
|
||||||
token-networks-ids ["1" "10"]
|
token-networks-ids [1 10]
|
||||||
receiver? false
|
receiver? false
|
||||||
expected [{:chain-id "1"
|
expected [{:chain-id 1
|
||||||
:total-amount (money/bignumber "100")
|
:total-amount (money/bignumber "100")
|
||||||
:type :default}
|
:type :default}
|
||||||
{:chain-id "10"
|
{:chain-id 10
|
||||||
:total-amount (money/bignumber "0")
|
:total-amount (money/bignumber "0")
|
||||||
:type :disabled}]
|
:type :disabled}]
|
||||||
|
tx-type :send
|
||||||
result (utils/network-amounts {:network-values network-values
|
result (utils/network-amounts {:network-values network-values
|
||||||
:disabled-chain-ids disabled-chain-ids
|
:disabled-chain-ids disabled-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? receiver?})]
|
:receiver? receiver?})]
|
||||||
(is (every? identity (map #(map/deep-compare %1 %2) expected result)))))
|
(is (every? identity (map #(map/deep-compare %1 %2) expected result)))))
|
||||||
|
|
||||||
(testing
|
(testing
|
||||||
"Assigns :not-available type to networks not available in token-networks-ids when receiver? is true"
|
"Assigns :not-available type to networks not available in token-networks-ids when receiver? is true"
|
||||||
(let [network-values {"1" (money/bignumber "100")}
|
(let [network-values {1 (money/bignumber "100")}
|
||||||
disabled-chain-ids []
|
disabled-chain-ids []
|
||||||
receiver-networks ["1" "10"]
|
receiver-networks [1 10]
|
||||||
token-networks-ids ["1"]
|
token-networks-ids [1]
|
||||||
receiver? false
|
receiver? false
|
||||||
expected [{:chain-id "1"
|
expected [{:chain-id 1
|
||||||
:total-amount (money/bignumber "100")
|
:total-amount (money/bignumber "100")
|
||||||
:type :default}
|
:type :default}
|
||||||
{:chain-id "10"
|
{:chain-id 10
|
||||||
:total-amount nil
|
:total-amount nil
|
||||||
:type :not-available}]
|
:type :not-available}]
|
||||||
|
tx-type :send
|
||||||
result (utils/network-amounts {:network-values network-values
|
result (utils/network-amounts {:network-values network-values
|
||||||
:disabled-chain-ids disabled-chain-ids
|
:disabled-chain-ids disabled-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
|
:receiver? receiver?})]
|
||||||
|
(is (every? identity (map #(map/deep-compare %1 %2) expected result)))))
|
||||||
|
|
||||||
|
(testing "Handles disabled and receiver networks correctly when to? is false and tx-type is :tx/bridge"
|
||||||
|
(let [network-values {10 (money/bignumber "200")}
|
||||||
|
disabled-chain-ids [1]
|
||||||
|
receiver-networks [10]
|
||||||
|
token-networks-ids [1 10]
|
||||||
|
tx-type :tx/bridge
|
||||||
|
receiver? false
|
||||||
|
expected [{:chain-id 1
|
||||||
|
:total-amount (money/bignumber "0")
|
||||||
|
:type :disabled}
|
||||||
|
{:chain-id 10
|
||||||
|
:total-amount (money/bignumber "200")
|
||||||
|
:type :default}]
|
||||||
|
result (utils/network-amounts {:network-values network-values
|
||||||
|
:disabled-chain-ids disabled-chain-ids
|
||||||
|
:receiver-networks receiver-networks
|
||||||
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
|
:receiver? receiver?})]
|
||||||
|
(is (every? identity (map #(map/deep-compare %1 %2) expected result)))))
|
||||||
|
|
||||||
|
(testing "Handles disabled and receiver networks correctly when to? is true and tx-type is :tx/bridge"
|
||||||
|
(let [network-values {10 (money/bignumber "200")}
|
||||||
|
disabled-chain-ids [1]
|
||||||
|
receiver-networks [10]
|
||||||
|
token-networks-ids [1 10]
|
||||||
|
tx-type :tx/bridge
|
||||||
|
receiver? true
|
||||||
|
expected [{:chain-id 10
|
||||||
|
:total-amount (money/bignumber "200")
|
||||||
|
:type :default}]
|
||||||
|
result (utils/network-amounts {:network-values network-values
|
||||||
|
:disabled-chain-ids disabled-chain-ids
|
||||||
|
:receiver-networks receiver-networks
|
||||||
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? receiver?})]
|
:receiver? receiver?})]
|
||||||
(is (every? identity (map #(map/deep-compare %1 %2) expected result))))))
|
(is (every? identity (map #(map/deep-compare %1 %2) expected result))))))
|
||||||
|
|
||||||
(deftest test-loading-network-amounts
|
(deftest test-loading-network-amounts
|
||||||
(testing "Assigns :loading type to valid networks except for disabled ones"
|
(testing "Assigns :loading type to valid networks except for disabled ones"
|
||||||
(let [valid-networks ["1" "10" "42161"]
|
(let [valid-networks [1 10 42161]
|
||||||
disabled-chain-ids ["42161"]
|
disabled-chain-ids [42161]
|
||||||
receiver-networks ["1" "10"]
|
receiver-networks [1 10]
|
||||||
token-networks-ids ["1" "10" "42161"]
|
token-networks-ids [1 10 42161]
|
||||||
receiver? true
|
receiver? true
|
||||||
expected [{:chain-id "1" :type :loading}
|
expected [{:chain-id 1 :type :loading}
|
||||||
{:chain-id "10" :type :loading}
|
{:chain-id 10 :type :loading}
|
||||||
{:type :add}]
|
{:type :add}]
|
||||||
|
tx-type :send
|
||||||
result (utils/loading-network-amounts {:valid-networks valid-networks
|
result (utils/loading-network-amounts {:valid-networks valid-networks
|
||||||
:disabled-chain-ids disabled-chain-ids
|
:disabled-chain-ids disabled-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? receiver?})
|
:receiver? receiver?})
|
||||||
comparisons (map #(map/deep-compare %1 %2)
|
comparisons (map #(map/deep-compare %1 %2)
|
||||||
expected
|
expected
|
||||||
|
@ -406,18 +459,20 @@
|
||||||
(is (every? identity comparisons))))
|
(is (every? identity comparisons))))
|
||||||
|
|
||||||
(testing "Assigns :disabled type with zero total-amount to disabled networks when receiver? is false"
|
(testing "Assigns :disabled type with zero total-amount to disabled networks when receiver? is false"
|
||||||
(let [valid-networks ["1" "10" "42161"]
|
(let [valid-networks [1 10 42161]
|
||||||
disabled-chain-ids ["10" "42161"]
|
disabled-chain-ids [10 42161]
|
||||||
receiver-networks ["1"]
|
receiver-networks [1]
|
||||||
token-networks-ids ["1" "10" "42161"]
|
token-networks-ids [1 10 42161]
|
||||||
receiver? false
|
receiver? false
|
||||||
expected [{:chain-id "1" :type :loading}
|
expected [{:chain-id 1 :type :loading}
|
||||||
{:chain-id "10" :type :disabled :total-amount (money/bignumber "0")}
|
{:chain-id 10 :type :disabled :total-amount (money/bignumber "0")}
|
||||||
{:chain-id "42161" :type :disabled :total-amount (money/bignumber "0")}]
|
{:chain-id 42161 :type :disabled :total-amount (money/bignumber "0")}]
|
||||||
|
tx-type :send
|
||||||
result (utils/loading-network-amounts {:valid-networks valid-networks
|
result (utils/loading-network-amounts {:valid-networks valid-networks
|
||||||
:disabled-chain-ids disabled-chain-ids
|
:disabled-chain-ids disabled-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? receiver?})
|
:receiver? receiver?})
|
||||||
comparisons (map #(map/deep-compare %1 %2)
|
comparisons (map #(map/deep-compare %1 %2)
|
||||||
expected
|
expected
|
||||||
|
@ -425,17 +480,19 @@
|
||||||
(is (every? identity comparisons))))
|
(is (every? identity comparisons))))
|
||||||
|
|
||||||
(testing "Filters out networks not in receiver networks when receiver? is true"
|
(testing "Filters out networks not in receiver networks when receiver? is true"
|
||||||
(let [valid-networks ["1" "10" "42161" "59144"]
|
(let [valid-networks [1 10 42161 59144]
|
||||||
disabled-chain-ids ["10"]
|
disabled-chain-ids [10]
|
||||||
receiver-networks ["1" "42161"]
|
receiver-networks [1 42161]
|
||||||
token-networks-ids ["1" "10" "42161"]
|
token-networks-ids [1 10 42161]
|
||||||
receiver? true
|
receiver? true
|
||||||
expected [{:chain-id "1" :type :loading}
|
expected [{:chain-id 1 :type :loading}
|
||||||
{:chain-id "42161" :type :loading}]
|
{:chain-id 42161 :type :loading}]
|
||||||
|
tx-type :send
|
||||||
result (utils/loading-network-amounts {:valid-networks valid-networks
|
result (utils/loading-network-amounts {:valid-networks valid-networks
|
||||||
:disabled-chain-ids disabled-chain-ids
|
:disabled-chain-ids disabled-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? receiver?})
|
:receiver? receiver?})
|
||||||
comparisons (map #(map/deep-compare %1 %2)
|
comparisons (map #(map/deep-compare %1 %2)
|
||||||
expected
|
expected
|
||||||
|
@ -444,17 +501,19 @@
|
||||||
|
|
||||||
(testing
|
(testing
|
||||||
"Appends :add type if receiver network count is less than available networks and receiver? is true"
|
"Appends :add type if receiver network count is less than available networks and receiver? is true"
|
||||||
(let [valid-networks ["1" "10" "42161"]
|
(let [valid-networks [1 10 42161]
|
||||||
disabled-chain-ids ["10"]
|
disabled-chain-ids [10]
|
||||||
receiver-networks ["1"]
|
receiver-networks [1]
|
||||||
token-networks-ids ["1" "10" "42161"]
|
token-networks-ids [1 10 42161]
|
||||||
receiver? true
|
receiver? true
|
||||||
expected [{:chain-id "1" :type :loading}
|
expected [{:chain-id 1 :type :loading}
|
||||||
{:type :add}]
|
{:type :add}]
|
||||||
|
tx-type :send
|
||||||
result (utils/loading-network-amounts {:valid-networks valid-networks
|
result (utils/loading-network-amounts {:valid-networks valid-networks
|
||||||
:disabled-chain-ids disabled-chain-ids
|
:disabled-chain-ids disabled-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? receiver?})
|
:receiver? receiver?})
|
||||||
comparisons (map #(map/deep-compare %1 %2)
|
comparisons (map #(map/deep-compare %1 %2)
|
||||||
expected
|
expected
|
||||||
|
@ -463,16 +522,18 @@
|
||||||
|
|
||||||
(testing
|
(testing
|
||||||
"Assigns :not-available type to networks not available in token-networks-ids when receiver? is false"
|
"Assigns :not-available type to networks not available in token-networks-ids when receiver? is false"
|
||||||
(let [valid-networks ["42161"]
|
(let [valid-networks [42161]
|
||||||
disabled-chain-ids []
|
disabled-chain-ids []
|
||||||
receiver-networks ["1"]
|
receiver-networks [1]
|
||||||
token-networks-ids ["42161"]
|
token-networks-ids [42161]
|
||||||
receiver? false
|
receiver? false
|
||||||
expected [{:chain-id "42161" :type :loading}]
|
expected [{:chain-id 42161 :type :loading}]
|
||||||
|
tx-type :send
|
||||||
result (utils/loading-network-amounts {:valid-networks valid-networks
|
result (utils/loading-network-amounts {:valid-networks valid-networks
|
||||||
:disabled-chain-ids disabled-chain-ids
|
:disabled-chain-ids disabled-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? receiver?})
|
:receiver? receiver?})
|
||||||
comparisons (map #(map/deep-compare %1 %2)
|
comparisons (map #(map/deep-compare %1 %2)
|
||||||
expected
|
expected
|
||||||
|
@ -481,17 +542,60 @@
|
||||||
|
|
||||||
(testing
|
(testing
|
||||||
"Assigns :not-available type to networks not available in token-networks-ids when receiver? is true"
|
"Assigns :not-available type to networks not available in token-networks-ids when receiver? is true"
|
||||||
(let [valid-networks ["42161"]
|
(let [valid-networks [42161]
|
||||||
disabled-chain-ids []
|
disabled-chain-ids []
|
||||||
receiver-networks ["1"]
|
receiver-networks [1]
|
||||||
token-networks-ids ["42161"]
|
token-networks-ids [42161]
|
||||||
receiver? true
|
receiver? true
|
||||||
expected [{:chain-id "1" :type :not-available}
|
expected [{:chain-id 1 :type :not-available}
|
||||||
{:type :add}]
|
{:type :add}]
|
||||||
|
tx-type :send
|
||||||
result (utils/loading-network-amounts {:valid-networks valid-networks
|
result (utils/loading-network-amounts {:valid-networks valid-networks
|
||||||
:disabled-chain-ids disabled-chain-ids
|
:disabled-chain-ids disabled-chain-ids
|
||||||
:receiver-networks receiver-networks
|
:receiver-networks receiver-networks
|
||||||
:token-networks-ids token-networks-ids
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
|
:receiver? receiver?})
|
||||||
|
comparisons (map #(map/deep-compare %1 %2)
|
||||||
|
expected
|
||||||
|
result)]
|
||||||
|
(is (every? identity comparisons))))
|
||||||
|
|
||||||
|
(testing
|
||||||
|
"Assigns :loading type to valid networks and :disabled for disabled ones when tx-type is :tx/bridge and to? false"
|
||||||
|
(let [valid-networks [1 10]
|
||||||
|
disabled-chain-ids [10]
|
||||||
|
receiver-networks []
|
||||||
|
token-networks-ids [1 10]
|
||||||
|
tx-type :tx/bridge
|
||||||
|
receiver? false
|
||||||
|
expected [{:chain-id 1 :type :loading}
|
||||||
|
{:chain-id 10 :type :disabled :total-amount (money/bignumber "0")}]
|
||||||
|
result (utils/loading-network-amounts {:valid-networks valid-networks
|
||||||
|
:disabled-chain-ids disabled-chain-ids
|
||||||
|
:receiver-networks receiver-networks
|
||||||
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
|
:receiver? receiver?})
|
||||||
|
comparisons (map #(map/deep-compare %1 %2)
|
||||||
|
expected
|
||||||
|
result)]
|
||||||
|
(is (every? identity comparisons))))
|
||||||
|
|
||||||
|
(testing
|
||||||
|
"Assigns :loading type to valid networks, ignore disabled ones and do not add {:type :add} when tx-type is :tx/bridge and to? true"
|
||||||
|
(let [valid-networks [1]
|
||||||
|
disabled-chain-ids [10]
|
||||||
|
receiver-networks []
|
||||||
|
token-networks-ids [1 10]
|
||||||
|
tx-type :tx/bridge
|
||||||
|
receiver? true
|
||||||
|
expected [{:chain-id 1 :type :loading}]
|
||||||
|
result (utils/loading-network-amounts {:valid-networks valid-networks
|
||||||
|
:disabled-chain-ids disabled-chain-ids
|
||||||
|
:receiver-networks receiver-networks
|
||||||
|
:token-networks-ids token-networks-ids
|
||||||
|
:tx-type tx-type
|
||||||
:receiver? receiver?})
|
:receiver? receiver?})
|
||||||
comparisons (map #(map/deep-compare %1 %2)
|
comparisons (map #(map/deep-compare %1 %2)
|
||||||
expected
|
expected
|
||||||
|
@ -500,22 +604,22 @@
|
||||||
|
|
||||||
(deftest test-network-links
|
(deftest test-network-links
|
||||||
(testing "Calculates position differences correctly"
|
(testing "Calculates position differences correctly"
|
||||||
(let [route [{:from {:chain-id "1"} :to {:chain-id "42161"}}
|
(let [route [{:from {:chain-id 1} :to {:chain-id 42161}}
|
||||||
{:from {:chain-id "10"} :to {:chain-id "1"}}
|
{:from {:chain-id 10} :to {:chain-id 1}}
|
||||||
{:from {:chain-id "42161"} :to {:chain-id "10"}}]
|
{:from {:chain-id 42161} :to {:chain-id 10}}]
|
||||||
from-values-by-chain [{:chain-id "1"} {:chain-id "10"} {:chain-id "42161"}]
|
from-values-by-chain [{:chain-id 1} {:chain-id 10} {:chain-id 42161}]
|
||||||
to-values-by-chain [{:chain-id "42161"} {:chain-id "1"} {:chain-id "10"}]
|
to-values-by-chain [{:chain-id 42161} {:chain-id 1} {:chain-id 10}]
|
||||||
expected [{:from-chain-id "1" :to-chain-id "42161" :position-diff 0}
|
expected [{:from-chain-id 1 :to-chain-id 42161 :position-diff 0}
|
||||||
{:from-chain-id "10" :to-chain-id "1" :position-diff 0}
|
{:from-chain-id 10 :to-chain-id 1 :position-diff 0}
|
||||||
{:from-chain-id "42161" :to-chain-id "10" :position-diff 0}]
|
{:from-chain-id 42161 :to-chain-id 10 :position-diff 0}]
|
||||||
result (utils/network-links route from-values-by-chain to-values-by-chain)]
|
result (utils/network-links route from-values-by-chain to-values-by-chain)]
|
||||||
(is (= expected result))))
|
(is (= expected result))))
|
||||||
|
|
||||||
(testing "Handles cases with no position difference"
|
(testing "Handles cases with no position difference"
|
||||||
(let [route [{:from {:chain-id "1"} :to {:chain-id "1"}}]
|
(let [route [{:from {:chain-id 1} :to {:chain-id 1}}]
|
||||||
from-values-by-chain [{:chain-id "1"} {:chain-id "10"} {:chain-id "42161"}]
|
from-values-by-chain [{:chain-id 1} {:chain-id 10} {:chain-id 42161}]
|
||||||
to-values-by-chain [{:chain-id "1"} {:chain-id "10"} {:chain-id "42161"}]
|
to-values-by-chain [{:chain-id 1} {:chain-id 10} {:chain-id 42161}]
|
||||||
expected [{:from-chain-id "1" :to-chain-id "1" :position-diff 0}]
|
expected [{:from-chain-id 1 :to-chain-id 1 :position-diff 0}]
|
||||||
result (utils/network-links route from-values-by-chain to-values-by-chain)]
|
result (utils/network-links route from-values-by-chain to-values-by-chain)]
|
||||||
(is (= expected result))))
|
(is (= expected result))))
|
||||||
|
|
||||||
|
@ -528,9 +632,9 @@
|
||||||
(is (= expected result))))
|
(is (= expected result))))
|
||||||
|
|
||||||
(testing "Verifies negative position differences"
|
(testing "Verifies negative position differences"
|
||||||
(let [route [{:from {:chain-id "1"} :to {:chain-id "42161"}}]
|
(let [route [{:from {:chain-id 1} :to {:chain-id 42161}}]
|
||||||
from-values-by-chain [{:chain-id "1"} {:chain-id "10"} {:chain-id "42161"}]
|
from-values-by-chain [{:chain-id 1} {:chain-id 10} {:chain-id 42161}]
|
||||||
to-values-by-chain [{:chain-id "1"} {:chain-id "10"} {:chain-id "42161"}]
|
to-values-by-chain [{:chain-id 1} {:chain-id 10} {:chain-id 42161}]
|
||||||
expected [{:from-chain-id "1" :to-chain-id "42161" :position-diff -2}]
|
expected [{:from-chain-id 1 :to-chain-id 42161 :position-diff -2}]
|
||||||
result (utils/network-links route from-values-by-chain to-values-by-chain)]
|
result (utils/network-links route from-values-by-chain to-values-by-chain)]
|
||||||
(is (= expected result)))))
|
(is (= expected result)))))
|
||||||
|
|
Loading…
Reference in New Issue