-
Notifications
You must be signed in to change notification settings - Fork 217
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test the generation of change maps for non-user-specified assets. #2692
Test the generation of change maps for non-user-specified assets. #2692
Conversation
da08f18
to
6baac80
Compare
discardUserSpecifiedAssets | ||
:: TokenBundle | ||
:: TokenMap |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that we're not interested in ada quantities here.
This is great, thank you 👍 |
bors r+ |
2692: Test the collation of non-user-specified asset quantities within `makeChange`. r=jonathanknowles a=jonathanknowles # Issue Number ADP-346 # Overview This PR: - extracts out function `collateNonUserSpecifiedAssetQuantities`. - adds a property test to verify the expected behaviour. - adds unit tests to illustrate the expected behaviour. The `collateNonUserSpecifiedAssetQuantities` function is designed to product a map of all assets that do **NOT** appear in the user-specified outputs of a coin selection. Each asset `a` is mapped to the complete list of discrete quantities of `a` found in the selected inputs. Co-authored-by: Jonathan Knowles <[email protected]>
Build failed:
#2472 (Mac) Q: Could this also related to the MVar properties?Comparing with https://hydra.iohk.io/build/6593101/nixlog/1/tail, starting from where this failure timed out:
Not sure to what extent log lines could be buffered / yet to be shown, but it would have to be quite a lot of them for this to be a MVar property timeout. |
makeChange
.1775a16
to
8f2e54d
Compare
bors r+ |
2680: Update cardano-node to 1.27.0. r=jonathanknowles a=jonathanknowles # Issue Number ADP-914 # Overview Updates the dependencies of `cardano-wallet` to include version 1.27.0 of `cardano-node`. 2692: Test the generation of change maps for non-user-specified assets. r=jonathanknowles a=jonathanknowles # Issue Number ADP-346 # Overview This PR: - extracts out function `collateNonUserSpecifiedAssetQuantities`. - extracts out function `makeChangeForNonUserSpecifiedAssets`. - adds property tests to verify the expected behaviour of each function. - adds unit tests to illustrate the expected behaviour of each function. The `collateNonUserSpecifiedAssetQuantities` function is designed to produce a map of all assets that do **NOT** appear in the user-specified outputs of a coin selection. Each asset `a` is mapped to the complete list of discrete quantities of `a` found in the selected inputs. The `makeChangeForNonUserSpecifiedAssets` function is designed to make a list of change maps for all assets that do **NOT** appear in the user-specified outputs of coin selection. The number of change maps is intended to be exactly equal to the number of user-specified outputs. Co-authored-by: Jonathan Knowles <[email protected]> Co-authored-by: Johannes Lund <[email protected]>
Build failed (retrying...): Failure: src/Test/Integration/Framework/DSL.hs:971:11:
1) API Specifications, SHELLEY_STAKE_POOLS, STAKE_POOLS_JOIN_01rewards - Can join a pool, earn rewards and collect them
Quantity {getQuantity = 0} does not satisfy (> Quantity {getQuantity = 0})
While verifying (Status {statusCode = 200, statusMessage = "OK"},Right (ApiWallet {id = ApiT {getApiT = WalletId {getWalletId = 4828e1ca3ef03e7fdf30b166fa16520f483f6b2e}}, addressPoolGap = ApiT {getApiT = AddressPoolGap {getAddressPoolGap = 20}}, balance = ApiWalletBalance {available = Quantity {getQuantity = 999998855100}, total = Quantity {getQuantity = 999998855100}, reward = Quantity {getQuantity = 0}}, assets = ApiWalletAssetsBalance {available = ApiT {getApiT = TokenMap (fromList [])}, total = ApiT {getApiT = TokenMap (fromList [])}}, delegation = ApiWalletDelegation {active = ApiWalletDelegationNext {status = Delegating, target = Just (ApiT {getApiT = PoolId {getPoolId = "\236(\243=\203\230\214@\n\RS^3\155\208d\|\ts\202l\f\249\194\187\230\131\141\198"}}), changesAt = Nothing}, next = []}, name = ApiT {getApiT = WalletName {getWalletName = "Faucet Wallet"}}, passphrase = Just (ApiWalletPassphraseInfo {lastUpdatedAt = 2021-06-08 08:30:58.823407645 UTC}), state = ApiT {getApiT = Ready}, tip = ApiBlockReference {absoluteSlotNumber = ApiT {getApiT = SlotNo 4249}, slotId = ApiSlotId {epochNumber = ApiT {getApiT = EpochNo {unEpochNo = 84}}, slotNumber = ApiT {getApiT = SlotInEpoch {unSlotInEpoch = 49}}}, time = 2021-06-08 08:32:47.8 UTC, block = ApiBlockInfo {height = Quantity {getQuantity = 1496}}}}))
Waited longer than 90s to resolve action: "Wallet gets rewards".
cardano-wallet
To rerun use: --match "/API Specifications/SHELLEY_STAKE_POOLS/STAKE_POOLS_JOIN_01rewards - Can join a pool, earn rewards and collect them/"
cardano-wallet
src/Test/Integration/Framework/DSL.hs:971:11:
2) API Specifications, SHELLEY_STAKE_POOLS, STAKE_POOLS_JOIN_04 - Rewards accumulate
Quantity {getQuantity = 0} does not satisfy (> Quantity {getQuantity = 0})
While verifying (Status {statusCode = 200, statusMessage = "OK"},Right (ApiWallet {id = ApiT {getApiT = WalletId {getWalletId = 08e85bba85772dae58b18193182614952e478cec}}, addressPoolGap = ApiT {getApiT = AddressPoolGap {getAddressPoolGap = 20}}, balance = ApiWalletBalance {available = Quantity {getQuantity = 999998855100}, total = Quantity {getQuantity = 999998855100}, reward = Quantity {getQuantity = 0}}, assets = ApiWalletAssetsBalance {available = ApiT {getApiT = TokenMap (fromList [])}, total = ApiT {getApiT = TokenMap (fromList [])}}, delegation = ApiWalletDelegation {active = ApiWalletDelegationNext {status = Delegating, target = Just (ApiT {getApiT = PoolId {getPoolId = "\236(\243=\203\230\214@\n\RS^3\155\208d\|\ts\202l\f\249\194\187\230\131\141\198"}}), changesAt = Nothing}, next = []}, name = ApiT {getApiT = WalletName {getWalletName = "Faucet Wallet"}}, passphrase = Just (ApiWalletPassphraseInfo {lastUpdatedAt = 2021-06-08 08:31:25.725897931 UTC}), state = ApiT {getApiT = Ready}, tip = ApiBlockReference {absoluteSlotNumber = ApiT {getApiT = SlotNo 4352}, slotId = ApiSlotId {epochNumber = ApiT {getApiT = EpochNo {unEpochNo = 87}}, slotNumber = ApiT {getApiT = SlotInEpoch {unSlotInEpoch = 2}}}, time = 2021-06-08 08:33:08.4 UTC, block = ApiBlockInfo {height = Quantity {getQuantity = 1543}}}}))
Waited longer than 90s to resolve action: "Wallet gets rewards".
cardano-wallet
To rerun use: --match "/API Specifications/SHELLEY_STAKE_POOLS/STAKE_POOLS_JOIN_04 - Rewards accumulate/"
cardano-wallet
src/Test/Integration/Framework/DSL.hs:971:11:
3) API Specifications, SHELLEY_STAKE_POOLS, STAKE_POOLS_LIST_01 - List stake pools, has non-zero saturation & stake
Quantity {getQuantity = Percentage {getPercentage = 0 % 1}} does not satisfy (> Quantity {getQuantity = Percentage {getPercentage = 0 % 1}})
While verifying (Status {statusCode = 200, statusMessage = "OK"},Right [ApiStakePool {id = ApiT {getApiT = PoolId {getPoolId = "\236(\243=\203\230\214@\n\RS^3\155\208d\|\ts\202l\f\249\194\187\230\131\141\198"}}, metrics = ApiStakePoolMetrics {nonMyopicMemberRewards = Quantity {getQuantity = 627337175132}, relativeStake = Quantity {getQuantity = Percentage {getPercentage = 0 % 1}}, saturation = 8.105442711135319e-6, producedBlocks = Quantity {getQuantity = 1}}, metadata = Nothing, cost = Quantity {getQuantity = 0}, margin = Quantity {getQuantity = Percentage {getPercentage = 1 % 10}}, pledge = Quantity {getQuantity = 2000000000000}, retirement = Nothing, flags = []},ApiStakePool {id = ApiT {getApiT = PoolId {getPoolId = "\180Wh\193\162\218K\209>\188\170\RS\165\DC4\b\237\163\GS\204!v\\\203\212\a\205\169\242"}}, metrics = ApiStakePoolMetrics {nonMyopicMemberRewards = Quantity {getQuantity = 479836022907}, relativeStake = Quantity {getQuantity = Percentage {getPercentage = 4307 % 10000}}, saturation = 1.2921513072316304, producedBlocks = Quantity {getQuantity = 908}}, metadata = Nothing, cost = Quantity {getQuantity = 0}, margin = Quantity {getQuantity = Percentage {getPercentage = 1 % 10}}, pledge = Quantity {getQuantity = 1000000000000}, retirement = Just (ApiEpochInfo {epochNumber = ApiT {getApiT = EpochNo {unEpochNo = 100000}}, epochStartTime = 2021-06-19 22:05:18 UTC}), flags = []},ApiStakePool {id = ApiT {getApiT = PoolId {getPoolId = "\187\DC1L\179}u\250\ENQ&\ETX(\194\&5\163\218\226\149\163=\v\166t\165\235\RS>V\142"}}, metrics = ApiStakePoolMetrics {nonMyopicMemberRewards = Quantity {getQuantity = 456823856704}, relativeStake = Quantity {getQuantity = Percentage {getPercentage = 4477 % 10000}}, saturation = 1.3432376892064584, producedBlocks = Quantity {getQuantity = 927}}, metadata = Nothing, cost = Quantity {getQuantity = 0}, margin = Quantity {getQuantity = Percentage {getPercentage = 1 % 10}}, pledge = Quantity {getQuantity = 1000000000000}, retirement = Just (ApiEpochInfo {epochNumber = ApiT {getApiT = EpochNo {unEpochNo = 1000000}}, epochStartTime = 2021-10-02 02:05:18 UTC}), flags = []}]) |
2692: Test the generation of change maps for non-user-specified assets. r=jonathanknowles a=jonathanknowles # Issue Number ADP-346 # Overview This PR: - extracts out function `collateNonUserSpecifiedAssetQuantities`. - extracts out function `makeChangeForNonUserSpecifiedAssets`. - adds property tests to verify the expected behaviour of each function. - adds unit tests to illustrate the expected behaviour of each function. The `collateNonUserSpecifiedAssetQuantities` function is designed to produce a map of all assets that do **NOT** appear in the user-specified outputs of a coin selection. Each asset `a` is mapped to the complete list of discrete quantities of `a` found in the selected inputs. The `makeChangeForNonUserSpecifiedAssets` function is designed to make a list of change maps for all assets that do **NOT** appear in the user-specified outputs of coin selection. The number of change maps is intended to be exactly equal to the number of user-specified outputs. Co-authored-by: Jonathan Knowles <[email protected]>
Build failed: Timed out here: Cardano.Wallet.DB.MVar
MVar
Extra Properties about DB initialization
createWallet . listWallets yields expected results
+++ OK, passed 100 tests.
creating same wallet twice yields an error
+++ OK, passed 100 tests.
removing the same wallet twice yields an error
+++ OK, passed 100 tests.
put . read yields a result
Checkpoint
+++ OK, passed 100 tests.
Wallet Metadata
+++ OK, passed 100 tests.
Tx History
+++ OK, passed 100 tests.
Private Key
+++ OK, passed 100 tests.
getTx properties
can read after putting tx history for valid tx id
+++ OK, passed 100 tests.
cannot read after putting tx history for invalid tx id
+++ OK, passed 100 tests.
cannot read after putting tx history for invalid wallet id
+++ OK, passed 100 tests; 9 discarded.
can't put before wallet exists
Checkpoint
+++ OK, passed 100 tests.
Wallet Metadata
+++ OK, passed 100 tests.
Tx History
+++ OK, passed 100 tests.
Private Key
+++ OK, passed 100 tests.
put doesn't affect other resources
Checkpoint vs Wallet Metadata & Tx History & Private Key
building of '/nix/store/2kaha7iv2qj7b5sylz88ydsbnclh9iy8-cardano-wallet-core-test-unit-2021.5.26-check' timed out after 900 seconds of silence #2472 (Mac) |
bors r+ |
2692: Test the generation of change maps for non-user-specified assets. r=jonathanknowles a=jonathanknowles # Issue Number ADP-346 # Overview This PR: - extracts out function `collateNonUserSpecifiedAssetQuantities`. - extracts out function `makeChangeForNonUserSpecifiedAssets`. - adds property tests to verify the expected behaviour of each function. - adds unit tests to illustrate the expected behaviour of each function. The `collateNonUserSpecifiedAssetQuantities` function is designed to produce a map of all assets that do **NOT** appear in the user-specified outputs of a coin selection. Each asset `a` is mapped to the complete list of discrete quantities of `a` found in the selected inputs. The `makeChangeForNonUserSpecifiedAssets` function is designed to make a list of change maps for all assets that do **NOT** appear in the user-specified outputs of coin selection. The number of change maps is intended to be exactly equal to the number of user-specified outputs. 2693: Allow specifying purpose for acc x pub r=paweljakubas a=paweljakubas # Issue Number <!-- Put here a reference to the issue that this PR relates to and which requirements it tackles. Jira issues of the form ADP- will be auto-linked. --> adp-950 # Overview <!-- Detail in a few bullet points the work accomplished in this PR --> - [x] updated swagger - [x] enable passing purpose - [x] adjust core unit tests - [x] add integration test - [x] guard purpose with integration test # Comments <!-- Additional comments or screenshots to attach if any --> <!-- Don't forget to: ✓ Self-review your changes to make sure nothing unexpected slipped through ✓ Assign yourself to the PR ✓ Assign one or several reviewer(s) ✓ Jira will detect and link to this PR once created, but you can also link this PR in the description of the corresponding ticket ✓ Acknowledge any changes required to the Wiki ✓ Finally, in the PR description delete any empty sections and all text commented in <!--, so that this text does not appear in merge commit messages. --> Co-authored-by: Jonathan Knowles <[email protected]> Co-authored-by: Pawel Jakubas <[email protected]>
Build failed (retrying...):
|
bors r+ |
Already running a review |
2692: Test the generation of change maps for non-user-specified assets. r=jonathanknowles a=jonathanknowles # Issue Number ADP-346 # Overview This PR: - extracts out function `collateNonUserSpecifiedAssetQuantities`. - extracts out function `makeChangeForNonUserSpecifiedAssets`. - adds property tests to verify the expected behaviour of each function. - adds unit tests to illustrate the expected behaviour of each function. The `collateNonUserSpecifiedAssetQuantities` function is designed to produce a map of all assets that do **NOT** appear in the user-specified outputs of a coin selection. Each asset `a` is mapped to the complete list of discrete quantities of `a` found in the selected inputs. The `makeChangeForNonUserSpecifiedAssets` function is designed to make a list of change maps for all assets that do **NOT** appear in the user-specified outputs of coin selection. The number of change maps is intended to be exactly equal to the number of user-specified outputs. Co-authored-by: Jonathan Knowles <[email protected]>
Build failed:
|
bors r+ |
2691: Additional checks for listing stake keys in e2e tests r=piotr-iohk a=piotr-iohk # Issue Number <!-- Put here a reference to the issue that this PR relates to and which requirements it tackles. Jira issues of the form ADP- will be auto-linked. --> # Overview <!-- Detail in a few bullet points the work accomplished in this PR --> - [ ] Additional checks for listing stake keys in e2e tests # Comments <!-- Additional comments or screenshots to attach if any --> <!-- Don't forget to: ✓ Self-review your changes to make sure nothing unexpected slipped through ✓ Assign yourself to the PR ✓ Assign one or several reviewer(s) ✓ Jira will detect and link to this PR once created, but you can also link this PR in the description of the corresponding ticket ✓ Acknowledge any changes required to the Wiki ✓ Finally, in the PR description delete any empty sections and all text commented in <!--, so that this text does not appear in merge commit messages. --> 2692: Test the generation of change maps for non-user-specified assets. r=jonathanknowles a=jonathanknowles # Issue Number ADP-346 # Overview This PR: - extracts out function `collateNonUserSpecifiedAssetQuantities`. - extracts out function `makeChangeForNonUserSpecifiedAssets`. - adds property tests to verify the expected behaviour of each function. - adds unit tests to illustrate the expected behaviour of each function. The `collateNonUserSpecifiedAssetQuantities` function is designed to produce a map of all assets that do **NOT** appear in the user-specified outputs of a coin selection. Each asset `a` is mapped to the complete list of discrete quantities of `a` found in the selected inputs. The `makeChangeForNonUserSpecifiedAssets` function is designed to make a list of change maps for all assets that do **NOT** appear in the user-specified outputs of coin selection. The number of change maps is intended to be exactly equal to the number of user-specified outputs. Co-authored-by: Piotr Stachyra <[email protected]> Co-authored-by: Jonathan Knowles <[email protected]>
Build failed (retrying...):
|
bors r+ |
Already running a review |
2692: Test the generation of change maps for non-user-specified assets. r=jonathanknowles a=jonathanknowles # Issue Number ADP-346 # Overview This PR: - extracts out function `collateNonUserSpecifiedAssetQuantities`. - extracts out function `makeChangeForNonUserSpecifiedAssets`. - adds property tests to verify the expected behaviour of each function. - adds unit tests to illustrate the expected behaviour of each function. The `collateNonUserSpecifiedAssetQuantities` function is designed to produce a map of all assets that do **NOT** appear in the user-specified outputs of a coin selection. Each asset `a` is mapped to the complete list of discrete quantities of `a` found in the selected inputs. The `makeChangeForNonUserSpecifiedAssets` function is designed to make a list of change maps for all assets that do **NOT** appear in the user-specified outputs of coin selection. The number of change maps is intended to be exactly equal to the number of user-specified outputs. Co-authored-by: Jonathan Knowles <[email protected]>
Build failed: Failure: src/Test/Integration/Scenario/API/Shelley/Transactions.hs:335:22:
1) API Specifications, SHELLEY_TRANSACTIONS, TRANS_CREATE_01x - Single Output Transaction
While verifying (Status {statusCode = 200, statusMessage = "OK"},Right (ApiWallet {id = ApiT {getApiT = WalletId {getWalletId = a64a62c65b6ce7829d002452bc235a32beea87c6}}, addressPoolGap = ApiT {getApiT = AddressPoolGap {getAddressPoolGap = 20}}, balance = ApiWalletBalance {available = Quantity {getQuantity = 1869500}, total = Quantity {getQuantity = 1869500}, reward = Quantity {getQuantity = 0}}, assets = ApiWalletAssetsBalance {available = ApiT {getApiT = TokenMap (fromList [])}, total = ApiT {getApiT = TokenMap (fromList [])}}, delegation = ApiWalletDelegation {active = ApiWalletDelegationNext {status = NotDelegating, target = Nothing, changesAt = Nothing}, next = []}, name = ApiT {getApiT = WalletName {getWalletName = "Empty Wallet"}}, passphrase = Just (ApiWalletPassphraseInfo {lastUpdatedAt = 2021-06-08 16:57:47.554275 UTC}), state = ApiT {getApiT = Ready}, tip = ApiBlockReference {absoluteSlotNumber = ApiT {getApiT = SlotNo 3293}, slotId = ApiSlotId {epochNumber = ApiT {getApiT = EpochNo {unEpochNo = 65}}, slotNumber = ApiT {getApiT = SlotInEpoch {unSlotInEpoch = 43}}}, time = 2021-06-08 16:58:29.6 UTC, block = ApiBlockInfo {height = Quantity {getQuantity = 1632}}}}))
[cardano-wallet.network:Warning:50918] [2021-06-08 17:13:53.40 UTC] Connection lost with the node.
[cardano-wallet.network:Warning:50722] [2021-06-08 17:13:53.40 UTC] Connection lost with the node.
[cardano-wallet.network:Warning:50449] [2021-06-08 17:13:53.42 UTC] Connection lost with the node.
[cardano-wallet.network:Warning:50890] [2021-06-08 17:13:53.42 UTC] Connection lost with the node.
expected: Quantity {getQuantity = 0}
but got: Quantity {getQuantity = 1869500}
To rerun use: --match "/API Specifications/SHELLEY_TRANSACTIONS/TRANS_CREATE_01x - Single Output Transaction/"
Randomized with seed 275432475 |
bors r+ |
2692: Test the generation of change maps for non-user-specified assets. r=jonathanknowles a=jonathanknowles # Issue Number ADP-346 # Overview This PR: - extracts out function `collateNonUserSpecifiedAssetQuantities`. - extracts out function `makeChangeForNonUserSpecifiedAssets`. - adds property tests to verify the expected behaviour of each function. - adds unit tests to illustrate the expected behaviour of each function. The `collateNonUserSpecifiedAssetQuantities` function is designed to produce a map of all assets that do **NOT** appear in the user-specified outputs of a coin selection. Each asset `a` is mapped to the complete list of discrete quantities of `a` found in the selected inputs. The `makeChangeForNonUserSpecifiedAssets` function is designed to make a list of change maps for all assets that do **NOT** appear in the user-specified outputs of coin selection. The number of change maps is intended to be exactly equal to the number of user-specified outputs. Co-authored-by: Jonathan Knowles <[email protected]>
Build failed: #duplicate (Cached failure) |
bors r+ |
2692: Test the generation of change maps for non-user-specified assets. r=jonathanknowles a=jonathanknowles # Issue Number ADP-346 # Overview This PR: - extracts out function `collateNonUserSpecifiedAssetQuantities`. - extracts out function `makeChangeForNonUserSpecifiedAssets`. - adds property tests to verify the expected behaviour of each function. - adds unit tests to illustrate the expected behaviour of each function. The `collateNonUserSpecifiedAssetQuantities` function is designed to produce a map of all assets that do **NOT** appear in the user-specified outputs of a coin selection. Each asset `a` is mapped to the complete list of discrete quantities of `a` found in the selected inputs. The `makeChangeForNonUserSpecifiedAssets` function is designed to make a list of change maps for all assets that do **NOT** appear in the user-specified outputs of coin selection. The number of change maps is intended to be exactly equal to the number of user-specified outputs. Co-authored-by: Jonathan Knowles <[email protected]>
Build failed: (Cached failure) |
This function computes the value assigned to `nonUserSpecifiedAssets`, so that the expected behaviour can be tested in isolation.
This change makes it very clear that the contents of the supplied list are not used in any way by the function: the list is used only for its length.
…dAsset`. The `makeChangeForNonUserSpecifiedAsset` function ignores the contents of the list parameter, and only uses the list as a proxy for the desired length of the output. Therefore, within our tests for this function, there's no point in going to the effort of generating values to put in the list.
This function computes the value assigned to `changeForNonUserSpecifiedAssets`, so that the expected behaviour can be tested in isolation.
These unit tests illustrate how the function is expected to behave when different assets have different numbers of token quantities.
8f2e54d
to
68a5854
Compare
bors r+ |
2692: Test the generation of change maps for non-user-specified assets. r=jonathanknowles a=jonathanknowles # Issue Number ADP-346 # Overview This PR: - extracts out function `collateNonUserSpecifiedAssetQuantities`. - extracts out function `makeChangeForNonUserSpecifiedAssets`. - adds property tests to verify the expected behaviour of each function. - adds unit tests to illustrate the expected behaviour of each function. The `collateNonUserSpecifiedAssetQuantities` function is designed to produce a map of all assets that do **NOT** appear in the user-specified outputs of a coin selection. Each asset `a` is mapped to the complete list of discrete quantities of `a` found in the selected inputs. The `makeChangeForNonUserSpecifiedAssets` function is designed to make a list of change maps for all assets that do **NOT** appear in the user-specified outputs of coin selection. The number of change maps is intended to be exactly equal to the number of user-specified outputs. Co-authored-by: Jonathan Knowles <[email protected]>
Build failed: (Cached failure) |
bors r+ |
2692: Test the generation of change maps for non-user-specified assets. r=jonathanknowles a=jonathanknowles # Issue Number ADP-346 # Overview This PR: - extracts out function `collateNonUserSpecifiedAssetQuantities`. - extracts out function `makeChangeForNonUserSpecifiedAssets`. - adds property tests to verify the expected behaviour of each function. - adds unit tests to illustrate the expected behaviour of each function. The `collateNonUserSpecifiedAssetQuantities` function is designed to produce a map of all assets that do **NOT** appear in the user-specified outputs of a coin selection. Each asset `a` is mapped to the complete list of discrete quantities of `a` found in the selected inputs. The `makeChangeForNonUserSpecifiedAssets` function is designed to make a list of change maps for all assets that do **NOT** appear in the user-specified outputs of coin selection. The number of change maps is intended to be exactly equal to the number of user-specified outputs. Co-authored-by: Jonathan Knowles <[email protected]>
Build failed: (Cached failure: will try restarting the parts of the build that failed, to clear the cached failure.) |
bors r+ |
Build succeeded: |
Issue Number
ADP-346
Overview
This PR:
collateNonUserSpecifiedAssetQuantities
.makeChangeForNonUserSpecifiedAssets
.The
collateNonUserSpecifiedAssetQuantities
function is designed to produce a map of all assets that do NOT appear in the user-specified outputs of a coin selection. Each asseta
is mapped to the complete list of discrete quantities ofa
found in the selected inputs.The
makeChangeForNonUserSpecifiedAssets
function is designed to make a list of change maps for all assets that do NOT appear in the user-specified outputs of coin selection. The number of change maps is intended to be exactly equal to the number of user-specified outputs.