diff --git a/contracts/examples/digital-cash/scenarios/claim-egld.scen.json b/contracts/examples/digital-cash/scenarios/claim-egld.scen.json index 961ee49589..88d88c553b 100644 --- a/contracts/examples/digital-cash/scenarios/claim-egld.scen.json +++ b/contracts/examples/digital-cash/scenarios/claim-egld.scen.json @@ -138,7 +138,7 @@ "5-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -152,20 +152,20 @@ "4-fees": { "0-num_token_to_transfer": "u32:3", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", - "str:collectedFees|nested:str:EGLD": "10" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1", + "str:collectedFees|nested:str:EGLD-000000": "10" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, diff --git a/contracts/examples/digital-cash/scenarios/claim-esdt.scen.json b/contracts/examples/digital-cash/scenarios/claim-esdt.scen.json index be3dfece94..ec45a15c21 100644 --- a/contracts/examples/digital-cash/scenarios/claim-esdt.scen.json +++ b/contracts/examples/digital-cash/scenarios/claim-esdt.scen.json @@ -131,13 +131,13 @@ "storage": { "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { "0-depositor_address": "address:acc1", - "1-funds": "u32:1|nested:str:EGLD|u64:0|biguint:1,000", + "1-funds": "u32:1|nested:str:EGLD-000000|u64:0|biguint:1,000", "2-valability": "u64:60", "3-expiration_round": "u64:10", "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -151,20 +151,20 @@ "4-fees": { "0-num_token_to_transfer": "u32:3", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", - "str:collectedFees|nested:str:EGLD": "10" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1", + "str:collectedFees|nested:str:EGLD-000000": "10" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, diff --git a/contracts/examples/digital-cash/scenarios/claim-fees.scen.json b/contracts/examples/digital-cash/scenarios/claim-fees.scen.json index ce690f2aed..cbf8e6106b 100644 --- a/contracts/examples/digital-cash/scenarios/claim-fees.scen.json +++ b/contracts/examples/digital-cash/scenarios/claim-fees.scen.json @@ -75,7 +75,7 @@ "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -89,19 +89,19 @@ "4-fees": { "0-num_token_to_transfer": "u32:3", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, diff --git a/contracts/examples/digital-cash/scenarios/claim-multi-esdt.scen.json b/contracts/examples/digital-cash/scenarios/claim-multi-esdt.scen.json index 296d5de04d..8ab63ff5f8 100644 --- a/contracts/examples/digital-cash/scenarios/claim-multi-esdt.scen.json +++ b/contracts/examples/digital-cash/scenarios/claim-multi-esdt.scen.json @@ -129,13 +129,13 @@ "storage": { "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { "0-depositor_address": "address:acc1", - "1-funds": "u32:1|nested:str:EGLD|u64:0|biguint:1,000", + "1-funds": "u32:1|nested:str:EGLD-000000|u64:0|biguint:1,000", "2-valability": "u64:60", "3-expiration_round": "u64:10", "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -149,20 +149,20 @@ "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", - "str:collectedFees|nested:str:EGLD": "30" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1", + "str:collectedFees|nested:str:EGLD-000000": "30" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, diff --git a/contracts/examples/digital-cash/scenarios/forward.scen.json b/contracts/examples/digital-cash/scenarios/forward.scen.json index 15a6331caf..7c1d423972 100644 --- a/contracts/examples/digital-cash/scenarios/forward.scen.json +++ b/contracts/examples/digital-cash/scenarios/forward.scen.json @@ -162,13 +162,13 @@ "storage": { "str:deposit|0xa40e72cdac3580e7203a4c2565c932f7691c35e624bcfd82718d7f559c88f440": { "0-depositor_address": "address:acc2", - "1-funds": "u32:1|nested:str:EGLD|u64:0|biguint:1,000", + "1-funds": "u32:1|nested:str:EGLD-000000|u64:0|biguint:1,000", "2-valability": "u64:60", "3-expiration_round": "u64:10", "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -182,7 +182,7 @@ "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -196,20 +196,20 @@ "4-fees": { "0-num_token_to_transfer": "u32:3", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", - "str:collectedFees|nested:str:EGLD": "40" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1", + "str:collectedFees|nested:str:EGLD-000000": "40" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, diff --git a/contracts/examples/digital-cash/scenarios/fund-egld-and-esdt.scen.json b/contracts/examples/digital-cash/scenarios/fund-egld-and-esdt.scen.json index 725f393995..d3e0f4a8ab 100644 --- a/contracts/examples/digital-cash/scenarios/fund-egld-and-esdt.scen.json +++ b/contracts/examples/digital-cash/scenarios/fund-egld-and-esdt.scen.json @@ -85,25 +85,25 @@ "storage": { "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { "0-depositor_address": "address:acc1", - "1-funds": "u32:1|nested:str:EGLD|u64:0|biguint:1000", + "1-funds": "u32:1|nested:str:EGLD-000000|u64:0|biguint:1000", "2-valability": "u64:60", "3-expiration_round": "u64:10", "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, @@ -200,13 +200,13 @@ "storage": { "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { "0-depositor_address": "address:acc1", - "1-funds": "u32:1|nested:str:EGLD|u64:0|biguint:1000", + "1-funds": "u32:1|nested:str:EGLD-000000|u64:0|biguint:1000", "2-valability": "u64:60", "3-expiration_round": "u64:10", "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -220,19 +220,19 @@ "5-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, @@ -404,13 +404,13 @@ "storage": { "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { "0-depositor_address": "address:acc1", - "1-funds": "u32:1|nested:str:EGLD|u64:0|biguint:1,000", + "1-funds": "u32:1|nested:str:EGLD-000000|u64:0|biguint:1,000", "2-valability": "u64:60", "3-expiration_round": "u64:10", "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -424,7 +424,7 @@ "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -438,19 +438,19 @@ "4-fees": { "0-num_token_to_transfer": "u32:3", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, diff --git a/contracts/examples/digital-cash/scenarios/pay-fee-and-fund-egld.scen.json b/contracts/examples/digital-cash/scenarios/pay-fee-and-fund-egld.scen.json index 9f93b6f2de..f43dad3d1b 100644 --- a/contracts/examples/digital-cash/scenarios/pay-fee-and-fund-egld.scen.json +++ b/contracts/examples/digital-cash/scenarios/pay-fee-and-fund-egld.scen.json @@ -62,30 +62,30 @@ "storage": { "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { "0-depositor_address": "address:acc3", - "1-funds": "u32:1|nested:str:EGLD|u64:0|biguint:990", + "1-funds": "u32:1|nested:str:EGLD-000000|u64:0|biguint:990", "2-valability": "u64:100", "3-expiration_round": "u64:16", "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:10" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:fee|nested:str:CASHTOKEN-778899": "3", "str:whitelistedFeeTokens|str:.len": "2", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", "str:whitelistedFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:whitelistedFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", "str:allTimeFeeTokens|str:.len": "3", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", "str:allTimeFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", "str:allTimeFeeTokens|str:.item|u32:3": "str:ESDT-778899", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", "str:allTimeFeeTokens|str:.index|nested:str:ESDT-778899": "3" }, diff --git a/contracts/examples/digital-cash/scenarios/pay-fee-and-fund-esdt-multiple.scen.json b/contracts/examples/digital-cash/scenarios/pay-fee-and-fund-esdt-multiple.scen.json index e9f57b8f4c..12d6f36af7 100644 --- a/contracts/examples/digital-cash/scenarios/pay-fee-and-fund-esdt-multiple.scen.json +++ b/contracts/examples/digital-cash/scenarios/pay-fee-and-fund-esdt-multiple.scen.json @@ -129,18 +129,18 @@ } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:fee|nested:str:CASHTOKEN-778899": "3", "str:whitelistedFeeTokens|str:.len": "2", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", "str:whitelistedFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:whitelistedFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", "str:allTimeFeeTokens|str:.len": "3", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", "str:allTimeFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", "str:allTimeFeeTokens|str:.item|u32:3": "str:ESDT-778899", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", "str:allTimeFeeTokens|str:.index|nested:str:ESDT-778899": "3" }, diff --git a/contracts/examples/digital-cash/scenarios/pay-fee-and-fund-esdt-single.scen.json b/contracts/examples/digital-cash/scenarios/pay-fee-and-fund-esdt-single.scen.json index 2d0204b050..f9053e669f 100644 --- a/contracts/examples/digital-cash/scenarios/pay-fee-and-fund-esdt-single.scen.json +++ b/contracts/examples/digital-cash/scenarios/pay-fee-and-fund-esdt-single.scen.json @@ -63,18 +63,18 @@ } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:fee|nested:str:CASHTOKEN-778899": "3", "str:whitelistedFeeTokens|str:.len": "2", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", "str:whitelistedFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:whitelistedFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", "str:allTimeFeeTokens|str:.len": "3", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", "str:allTimeFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", "str:allTimeFeeTokens|str:.item|u32:3": "str:ESDT-778899", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", "str:allTimeFeeTokens|str:.index|nested:str:ESDT-778899": "3" }, diff --git a/contracts/examples/digital-cash/scenarios/set-accounts.scen.json b/contracts/examples/digital-cash/scenarios/set-accounts.scen.json index 550268266b..35ee849fc5 100644 --- a/contracts/examples/digital-cash/scenarios/set-accounts.scen.json +++ b/contracts/examples/digital-cash/scenarios/set-accounts.scen.json @@ -45,7 +45,7 @@ "contractCode": "mxsc:../output/digital-cash.mxsc.json", "arguments": [ "10", - "str:EGLD" + "str:EGLD-000000" ], "gasLimit": "5,000,000", "gasPrice": "0" @@ -64,13 +64,13 @@ "nonce": "0", "balance": "0", "storage": { - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, diff --git a/contracts/examples/digital-cash/scenarios/whitelist-blacklist-fee-tokens.scen.json b/contracts/examples/digital-cash/scenarios/whitelist-blacklist-fee-tokens.scen.json index f88f0e0073..740b3fd7c0 100644 --- a/contracts/examples/digital-cash/scenarios/whitelist-blacklist-fee-tokens.scen.json +++ b/contracts/examples/digital-cash/scenarios/whitelist-blacklist-fee-tokens.scen.json @@ -14,7 +14,7 @@ "function": "whitelistFeeToken", "arguments": [ "biguint:10", - "str:EGLD" + "str:EGLD-000000" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -125,18 +125,18 @@ "nonce": "0", "balance": "0", "storage": { - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:fee|nested:str:CASHTOKEN-778899": "3", "str:whitelistedFeeTokens|str:.len": "2", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", "str:whitelistedFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:whitelistedFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", "str:allTimeFeeTokens|str:.len": "3", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", "str:allTimeFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", "str:allTimeFeeTokens|str:.item|u32:3": "str:ESDT-778899", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", "str:allTimeFeeTokens|str:.index|nested:str:ESDT-778899": "3" }, diff --git a/contracts/examples/digital-cash/scenarios/withdraw-egld.scen.json b/contracts/examples/digital-cash/scenarios/withdraw-egld.scen.json index 80678fe11e..805f81d2ec 100644 --- a/contracts/examples/digital-cash/scenarios/withdraw-egld.scen.json +++ b/contracts/examples/digital-cash/scenarios/withdraw-egld.scen.json @@ -42,13 +42,13 @@ "storage": { "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { "0-depositor_address": "address:acc1", - "1-funds": "u32:1|nested:str:EGLD|u64:0|biguint:1,000", + "1-funds": "u32:1|nested:str:EGLD-000000|u64:0|biguint:1,000", "2-valability": "u64:60", "3-expiration_round": "u64:10", "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -62,7 +62,7 @@ "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -76,19 +76,19 @@ "4-fees": { "0-num_token_to_transfer": "u32:3", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, @@ -197,7 +197,7 @@ "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -211,19 +211,19 @@ "4-fees": { "0-num_token_to_transfer": "u32:3", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, diff --git a/contracts/examples/digital-cash/scenarios/withdraw-esdt.scen.json b/contracts/examples/digital-cash/scenarios/withdraw-esdt.scen.json index dc3bdfb807..011461ea05 100644 --- a/contracts/examples/digital-cash/scenarios/withdraw-esdt.scen.json +++ b/contracts/examples/digital-cash/scenarios/withdraw-esdt.scen.json @@ -42,13 +42,13 @@ "storage": { "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { "0-depositor_address": "address:acc1", - "1-funds": "u32:1|nested:str:EGLD|u64:0|biguint:1,000", + "1-funds": "u32:1|nested:str:EGLD-000000|u64:0|biguint:1,000", "2-valability": "u64:60", "3-expiration_round": "u64:10", "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -62,7 +62,7 @@ "5-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -76,19 +76,19 @@ "4-fees": { "0-num_token_to_transfer": "u32:3", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, @@ -190,13 +190,13 @@ "storage": { "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { "0-depositor_address": "address:acc1", - "1-funds": "u32:1|nested:str:EGLD|u64:0|biguint:1,000", + "1-funds": "u32:1|nested:str:EGLD-000000|u64:0|biguint:1,000", "2-valability": "u64:60", "3-expiration_round": "u64:10", "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -210,19 +210,19 @@ "4-fees": { "0-num_token_to_transfer": "u32:3", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, diff --git a/contracts/examples/digital-cash/scenarios/withdraw-multi-esdt.scen.json b/contracts/examples/digital-cash/scenarios/withdraw-multi-esdt.scen.json index 649d6881e9..0cdaaac9b1 100644 --- a/contracts/examples/digital-cash/scenarios/withdraw-multi-esdt.scen.json +++ b/contracts/examples/digital-cash/scenarios/withdraw-multi-esdt.scen.json @@ -42,13 +42,13 @@ "storage": { "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { "0-depositor_address": "address:acc1", - "1-funds": "u32:1|nested:str:EGLD|u64:0|biguint:1,000", + "1-funds": "u32:1|nested:str:EGLD-000000|u64:0|biguint:1,000", "2-valability": "u64:60", "3-expiration_round": "u64:10", "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -62,7 +62,7 @@ "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -76,19 +76,19 @@ "4-fees": { "0-num_token_to_transfer": "u32:3", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, @@ -188,13 +188,13 @@ "storage": { "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { "0-depositor_address": "address:acc1", - "1-funds": "u32:1|nested:str:EGLD|u64:0|biguint:1,000", + "1-funds": "u32:1|nested:str:EGLD-000000|u64:0|biguint:1,000", "2-valability": "u64:60", "3-expiration_round": "u64:10", "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } @@ -208,19 +208,19 @@ "4-fees": { "0-num_token_to_transfer": "u32:1", "1-value": { - "0-tokenIdentifier": "nested:str:EGLD", + "0-tokenIdentifier": "nested:str:EGLD-000000", "1-nonce": "u64:0", "2-amount": "biguint:1,000" } } }, - "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:EGLD-000000": "10", "str:whitelistedFeeTokens|str:.len": "1", - "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", - "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD-000000": "1", "str:allTimeFeeTokens|str:.len": "1", - "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", - "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD-000000", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD-000000": "1" }, "code": "mxsc:../output/digital-cash.mxsc.json" }, diff --git a/contracts/examples/digital-cash/src/deposit_info.rs b/contracts/examples/digital-cash/src/deposit_info.rs index 839acd3cc1..c7212d5e1f 100644 --- a/contracts/examples/digital-cash/src/deposit_info.rs +++ b/contracts/examples/digital-cash/src/deposit_info.rs @@ -4,7 +4,7 @@ use multiversx_sc::{derive_imports::*, imports::*}; #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct DepositInfo { pub depositor_address: ManagedAddress, - pub funds: ManagedVec>, + pub funds: ManagedVec>, pub valability: u64, pub expiration_round: u64, pub fees: Fee, @@ -14,5 +14,5 @@ pub struct DepositInfo { #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct Fee { pub num_token_to_transfer: usize, - pub value: EgldOrEsdtTokenPayment, + pub value: Payment, } diff --git a/contracts/examples/digital-cash/src/digital_cash.rs b/contracts/examples/digital-cash/src/digital_cash.rs index ab65c9f55f..555479be02 100644 --- a/contracts/examples/digital-cash/src/digital_cash.rs +++ b/contracts/examples/digital-cash/src/digital_cash.rs @@ -21,13 +21,13 @@ pub trait DigitalCash: + storage::StorageModule { #[init] - fn init(&self, fee: BigUint, token: EgldOrEsdtTokenIdentifier) { + fn init(&self, fee: BigUint, token: TokenId) { self.whitelist_fee_token(fee, token); } #[endpoint(whitelistFeeToken)] #[only_owner] - fn whitelist_fee_token(&self, fee: BigUint, token: EgldOrEsdtTokenIdentifier) { + fn whitelist_fee_token(&self, fee: BigUint, token: TokenId) { require!(self.fee(&token).is_empty(), "Token already whitelisted"); self.fee(&token).set(fee); self.whitelisted_fee_tokens().insert(token.clone()); @@ -36,7 +36,7 @@ pub trait DigitalCash: #[endpoint(blacklistFeeToken)] #[only_owner] - fn blacklist_fee_token(&self, token: EgldOrEsdtTokenIdentifier) { + fn blacklist_fee_token(&self, token: TokenId) { require!(!self.fee(&token).is_empty(), "Token is not whitelisted"); self.fee(&token).clear(); self.whitelisted_fee_tokens().swap_remove(&token); @@ -54,12 +54,8 @@ pub trait DigitalCash: if fee == 0 { continue; } - if token == EgldOrEsdtTokenIdentifier::egld() { - self.tx().to(&caller_address).egld(&fee).transfer(); - } else { - let collected_fee = EsdtTokenPayment::new(token.unwrap_esdt(), 0, fee); - collected_esdt_fees.push(collected_fee); - } + let collected_fee = Payment::new(token, 0, fee); + collected_esdt_fees.push(collected_fee); } if !collected_esdt_fees.is_empty() { self.tx() @@ -70,12 +66,7 @@ pub trait DigitalCash: } #[view(getAmount)] - fn get_amount( - &self, - address: ManagedAddress, - token: EgldOrEsdtTokenIdentifier, - nonce: u64, - ) -> BigUint { + fn get_amount(&self, address: ManagedAddress, token: TokenId, nonce: u64) -> BigUint { let deposit_mapper = self.deposit(&address); require!(!deposit_mapper.is_empty(), NON_EXISTENT_KEY_ERR_MSG); diff --git a/contracts/examples/digital-cash/src/digital_cash_proxy.rs b/contracts/examples/digital-cash/src/digital_cash_proxy.rs index 591897d914..31fa8a08be 100644 --- a/contracts/examples/digital-cash/src/digital_cash_proxy.rs +++ b/contracts/examples/digital-cash/src/digital_cash_proxy.rs @@ -45,7 +45,7 @@ where { pub fn init< Arg0: ProxyArg>, - Arg1: ProxyArg>, + Arg1: ProxyArg>, >( self, fee: Arg0, @@ -71,7 +71,7 @@ where { pub fn whitelist_fee_token< Arg0: ProxyArg>, - Arg1: ProxyArg>, + Arg1: ProxyArg>, >( self, fee: Arg0, @@ -86,7 +86,7 @@ where } pub fn blacklist_fee_token< - Arg0: ProxyArg>, + Arg0: ProxyArg>, >( self, token: Arg0, @@ -109,7 +109,7 @@ where pub fn get_amount< Arg0: ProxyArg>, - Arg1: ProxyArg>, + Arg1: ProxyArg>, Arg2: ProxyArg, >( self, @@ -236,7 +236,7 @@ where Api: ManagedTypeApi, { pub depositor_address: ManagedAddress, - pub funds: ManagedVec>, + pub funds: ManagedVec>, pub valability: u64, pub expiration_round: u64, pub fees: Fee, @@ -249,5 +249,5 @@ where Api: ManagedTypeApi, { pub num_token_to_transfer: usize, - pub value: EgldOrEsdtTokenPayment, + pub value: Payment, } diff --git a/contracts/examples/digital-cash/src/helpers.rs b/contracts/examples/digital-cash/src/helpers.rs index 1c0520d26c..71eadb6ab2 100644 --- a/contracts/examples/digital-cash/src/helpers.rs +++ b/contracts/examples/digital-cash/src/helpers.rs @@ -7,16 +7,8 @@ use crate::{ }; #[multiversx_sc::module] pub trait HelpersModule: storage::StorageModule { - fn send_fee_to_address(&self, fee: &EgldOrEsdtTokenPayment, address: &ManagedAddress) { - if fee.token_identifier == EgldOrEsdtTokenIdentifier::egld() { - self.tx().to(address).egld(&fee.amount).transfer(); - } else { - let esdt_fee = fee.clone().unwrap_esdt(); - self.tx() - .to(address) - .single_esdt(&esdt_fee.token_identifier, 0, &esdt_fee.amount) - .transfer(); - } + fn send_fee_to_address(&self, fee: &Payment, address: &ManagedAddress) { + self.tx().to(address).payment(fee).transfer(); } fn get_expiration_round(&self, valability: u64) -> u64 { @@ -24,7 +16,7 @@ pub trait HelpersModule: storage::StorageModule { self.blockchain().get_block_round() + valability_rounds } - fn get_fee_for_token(&self, token: &EgldOrEsdtTokenIdentifier) -> BigUint { + fn get_fee_for_token(&self, token: &TokenId) -> BigUint { require!( self.whitelisted_fee_tokens().contains(token), "invalid fee toke provided" @@ -33,12 +25,7 @@ pub trait HelpersModule: storage::StorageModule { fee_token.get() } - fn make_fund( - &self, - payment: ManagedVec, - address: ManagedAddress, - valability: u64, - ) { + fn make_fund(&self, payment: ManagedVec, address: ManagedAddress, valability: u64) { let deposit_mapper = self.deposit(&address); deposit_mapper.update(|deposit| { @@ -68,7 +55,7 @@ pub trait HelpersModule: storage::StorageModule { &self, caller_address: ManagedAddress, address: &ManagedAddress, - payment: EgldOrEsdtTokenPayment, + payment: Payment, ) { self.get_fee_for_token(&payment.token_identifier); let deposit_mapper = self.deposit(address); diff --git a/contracts/examples/digital-cash/src/pay_fee_and_fund.rs b/contracts/examples/digital-cash/src/pay_fee_and_fund.rs index 648ce19b11..0415062471 100644 --- a/contracts/examples/digital-cash/src/pay_fee_and_fund.rs +++ b/contracts/examples/digital-cash/src/pay_fee_and_fund.rs @@ -7,7 +7,7 @@ pub trait PayFeeAndFund: storage::StorageModule + helpers::HelpersModule { #[endpoint(payFeeAndFund)] #[payable] fn pay_fee_and_fund(&self, address: ManagedAddress, valability: u64) { - let mut payments = self.call_value().all_transfers().clone_value(); + let mut payments = self.call_value().all().clone_value(); require!(!payments.is_empty(), "no payment was provided"); let mut fee_token = payments.get(0).clone(); @@ -30,7 +30,7 @@ pub trait PayFeeAndFund: storage::StorageModule + helpers::HelpersModule { if provided_fee_token.amount > fee_without_first_token { fee_token.amount = fee_with_first_token; - let extracted_fee = EgldOrEsdtTokenPayment::new( + let extracted_fee = Payment::new( provided_fee_token.token_identifier, provided_fee_token.token_nonce, provided_fee_token.amount - &fee_token.amount, @@ -60,7 +60,7 @@ pub trait PayFeeAndFund: storage::StorageModule + helpers::HelpersModule { let deposited_fee_token = deposit_mapper.fees.value; let fee_amount = self.fee(&deposited_fee_token.token_identifier).get(); // TODO: switch to egld+esdt multi transfer handling - let payment = self.call_value().all_transfers().clone_value(); + let payment = self.call_value().all().clone_value(); let num_tokens = payment.len(); self.check_fees_cover_number_of_tokens(num_tokens, fee_amount, deposited_fee_token.amount); @@ -71,8 +71,8 @@ pub trait PayFeeAndFund: storage::StorageModule + helpers::HelpersModule { #[endpoint(depositFees)] #[payable("EGLD")] fn deposit_fees(&self, address: &ManagedAddress) { - let payment = self.call_value().egld_or_single_esdt(); + let payment = self.call_value().single(); let caller_address = self.blockchain().get_caller(); - self.update_fees(caller_address, address, payment); + self.update_fees(caller_address, address, payment.clone()); } } diff --git a/contracts/examples/digital-cash/src/signature_operations.rs b/contracts/examples/digital-cash/src/signature_operations.rs index 8035560490..208dd09d63 100644 --- a/contracts/examples/digital-cash/src/signature_operations.rs +++ b/contracts/examples/digital-cash/src/signature_operations.rs @@ -22,8 +22,7 @@ pub trait SignatureOperationsModule: storage::StorageModule + helpers::HelpersMo let mut funds = deposit.funds; - let fee = - EgldOrEsdtTokenPayment::new(paid_fee_token.token_identifier, 0, paid_fee_token.amount); + let fee = Payment::new(paid_fee_token.token_identifier, 0, paid_fee_token.amount); funds.push(fee); if !funds.is_empty() { @@ -80,14 +79,19 @@ pub trait SignatureOperationsModule: storage::StorageModule + helpers::HelpersMo forward_address: ManagedAddress, signature: ManagedByteArray, ) { - let paid_fee = self.call_value().egld_or_single_esdt(); + let transfers = self.call_value().all(); + let paid_fee = match transfers.len() { + // TODO: the zero fee representation is a little dubious, maybe handle separately + 0 => Payment::new(self.blockchain().get_native_token().clone(), 0, 0u32.into()), + 1 => transfers.get(0).clone(), + _ => sc_panic!("only one fee transfer allowed"), + }; let caller_address = self.blockchain().get_caller(); - let fee_token = paid_fee.token_identifier.clone(); self.require_signature(&address, &caller_address, signature); - self.update_fees(caller_address, &forward_address, paid_fee); + self.update_fees(caller_address, &forward_address, paid_fee.clone()); let new_deposit = self.deposit(&forward_address); - let fee = self.fee(&fee_token).get(); + let fee = self.fee(&paid_fee.token_identifier).get(); let mut current_deposit = self.deposit(&address).take(); let num_tokens = current_deposit.funds.len(); @@ -107,7 +111,7 @@ pub trait SignatureOperationsModule: storage::StorageModule + helpers::HelpersMo let forward_fee = &fee * num_tokens as u64; current_deposit.fees.value.amount -= &forward_fee; - self.collected_fees(&fee_token) + self.collected_fees(&paid_fee.token_identifier) .update(|collected_fees| *collected_fees += forward_fee); if current_deposit.fees.value.amount > 0 { diff --git a/contracts/examples/digital-cash/src/storage.rs b/contracts/examples/digital-cash/src/storage.rs index 2e18503ccd..1a3805128b 100644 --- a/contracts/examples/digital-cash/src/storage.rs +++ b/contracts/examples/digital-cash/src/storage.rs @@ -9,14 +9,14 @@ pub trait StorageModule { fn deposit(&self, donor: &ManagedAddress) -> SingleValueMapper>; #[storage_mapper("fee")] - fn fee(&self, token: &EgldOrEsdtTokenIdentifier) -> SingleValueMapper; + fn fee(&self, token: &TokenId) -> SingleValueMapper; #[storage_mapper("collectedFees")] - fn collected_fees(&self, token: &EgldOrEsdtTokenIdentifier) -> SingleValueMapper; + fn collected_fees(&self, token: &TokenId) -> SingleValueMapper; #[storage_mapper("whitelistedFeeTokens")] - fn whitelisted_fee_tokens(&self) -> UnorderedSetMapper; + fn whitelisted_fee_tokens(&self) -> UnorderedSetMapper; #[storage_mapper("allTimeFeeTokens")] - fn all_time_fee_tokens(&self) -> UnorderedSetMapper; + fn all_time_fee_tokens(&self) -> UnorderedSetMapper; }