@@ -724,6 +724,12 @@ func filterMinAmt(amt uint64) filterOpt {
724
724
}
725
725
}
726
726
727
+ func filterMaxAmt (amt uint64 ) filterOpt {
728
+ return func (f * AssetQueryFilters ) {
729
+ f .MaxAmt = amt
730
+ }
731
+ }
732
+
727
733
func filterCoinSelectType (typ tapsend.CoinSelectType ) filterOpt {
728
734
return func (f * AssetQueryFilters ) {
729
735
f .CoinSelectType = typ
@@ -742,6 +748,18 @@ func filterAnchorHeight(height int32) filterOpt {
742
748
}
743
749
}
744
750
751
+ func filterAnchorPoint (point * wire.OutPoint ) filterOpt {
752
+ return func (f * AssetQueryFilters ) {
753
+ f .AnchorPoint = point
754
+ }
755
+ }
756
+
757
+ func filterScriptKey (key * asset.ScriptKey ) filterOpt {
758
+ return func (f * AssetQueryFilters ) {
759
+ f .ScriptKey = key
760
+ }
761
+ }
762
+
745
763
// TestFetchAllAssets tests that the different AssetQueryFilters work as
746
764
// expected.
747
765
func TestFetchAllAssets (t * testing.T ) {
@@ -780,6 +798,7 @@ func TestFetchAllAssets(t *testing.T) {
780
798
assetGen : assetGen .assetGens [2 ],
781
799
anchorPoint : assetGen .anchorPoints [0 ],
782
800
amt : 34 ,
801
+ scriptKey : scriptKeyWithScript ,
783
802
}, {
784
803
assetGen : assetGen .assetGens [3 ],
785
804
anchorPoint : assetGen .anchorPoints [1 ],
@@ -898,6 +917,38 @@ func TestFetchAllAssets(t *testing.T) {
898
917
includeLeased : true ,
899
918
includeSpent : true ,
900
919
numAssets : 8 ,
920
+ }, {
921
+ name : "max amount" ,
922
+ filter : makeFilter (
923
+ filterMaxAmt (100 ),
924
+ filterCoinSelectType (tapsend .ScriptTreesAllowed ),
925
+ ),
926
+ numAssets : 6 ,
927
+ }, {
928
+ name : "max amount, include spent" ,
929
+ filter : makeFilter (
930
+ filterMaxAmt (100 ),
931
+ filterCoinSelectType (tapsend .ScriptTreesAllowed ),
932
+ ),
933
+ includeSpent : true ,
934
+ numAssets : 7 ,
935
+ }, {
936
+ name : "max amount, include leased" ,
937
+ filter : makeFilter (
938
+ filterMaxAmt (100 ),
939
+ filterCoinSelectType (tapsend .ScriptTreesAllowed ),
940
+ ),
941
+ includeLeased : true ,
942
+ numAssets : 8 ,
943
+ }, {
944
+ name : "max amount, include leased, include spent" ,
945
+ filter : makeFilter (
946
+ filterMaxAmt (100 ),
947
+ filterCoinSelectType (tapsend .ScriptTreesAllowed ),
948
+ ),
949
+ includeLeased : true ,
950
+ includeSpent : true ,
951
+ numAssets : 9 ,
901
952
}, {
902
953
name : "default min height, include spent" ,
903
954
filter : makeFilter (
@@ -914,7 +965,7 @@ func TestFetchAllAssets(t *testing.T) {
914
965
),
915
966
numAssets : 0 ,
916
967
}, {
917
- name : "default min height, include spent" ,
968
+ name : "specific height, include spent" ,
918
969
filter : makeFilter (
919
970
filterAnchorHeight (502 ),
920
971
filterCoinSelectType (tapsend .ScriptTreesAllowed ),
@@ -928,6 +979,21 @@ func TestFetchAllAssets(t *testing.T) {
928
979
filterCoinSelectType (tapsend .Bip86Only ),
929
980
),
930
981
numAssets : 0 ,
982
+ }, {
983
+ name : "query by script key" ,
984
+ filter : makeFilter (
985
+ filterScriptKey (scriptKeyWithScript ),
986
+ filterCoinSelectType (tapsend .ScriptTreesAllowed ),
987
+ ),
988
+ numAssets : 1 ,
989
+ }, {
990
+ name : "query by script key, include leased" ,
991
+ filter : makeFilter (
992
+ filterScriptKey (scriptKeyWithScript ),
993
+ filterCoinSelectType (tapsend .ScriptTreesAllowed ),
994
+ ),
995
+ includeLeased : true ,
996
+ numAssets : 2 ,
931
997
}, {
932
998
name : "query by group key only" ,
933
999
filter : makeFilter (
@@ -952,6 +1018,13 @@ func TestFetchAllAssets(t *testing.T) {
952
1018
)), filterDistinctSpecifier (),
953
1019
),
954
1020
numAssets : 2 ,
1021
+ }, {
1022
+ name : "query by anchor point" ,
1023
+ filter : makeFilter (
1024
+ filterAnchorPoint (& assetGen .anchorPoints [0 ]),
1025
+ filterCoinSelectType (tapsend .ScriptTreesAllowed ),
1026
+ ),
1027
+ numAssets : 3 ,
955
1028
}}
956
1029
957
1030
for _ , tc := range testCases {
0 commit comments