@@ -1873,224 +1873,6 @@ func TestProofVerifyFullValueSplit(t *testing.T) {
1873
1873
require .NoError (t , err )
1874
1874
}
1875
1875
1876
- // TestAddressValidInput tests edge cases around validating inputs for asset
1877
- // transfers with isValidInput.
1878
- func TestAddressValidInput (t * testing.T ) {
1879
- t .Parallel ()
1880
-
1881
- for _ , testCase := range addressValidInputTestCases {
1882
- success := t .Run (testCase .name , func (t * testing.T ) {
1883
- inputAsset , checkedInputAsset , err := testCase .f (t )
1884
- require .ErrorIs (t , err , testCase .err )
1885
- if testCase .err == nil {
1886
- require .True (t , inputAsset .DeepEqual (
1887
- checkedInputAsset ,
1888
- ))
1889
- }
1890
- })
1891
- if ! success {
1892
- return
1893
- }
1894
- }
1895
- }
1896
-
1897
- func addrToFundDesc (addr address.Tap ) * tapsend.FundingDescriptor {
1898
- assetSpecifier := asset .NewSpecifierOptionalGroupPubKey (
1899
- addr .AssetID , addr .GroupKey ,
1900
- )
1901
-
1902
- return & tapsend.FundingDescriptor {
1903
- AssetSpecifier : assetSpecifier ,
1904
- Amount : addr .Amount ,
1905
- }
1906
- }
1907
-
1908
- type addressValidInputTestCase struct {
1909
- name string
1910
- f func (t * testing.T ) (* asset.Asset , * asset.Asset , error )
1911
- err error
1912
- }
1913
-
1914
- var addressValidInputTestCases = []addressValidInputTestCase {{
1915
- name : "valid normal" ,
1916
- f : func (t * testing.T ) (* asset.Asset , * asset.Asset , error ) {
1917
- state := initSpendScenario (t )
1918
- fundDesc := addrToFundDesc (state .address1 )
1919
-
1920
- inputAsset , err := tapsend .AssetFromTapCommitment (
1921
- & state .asset1TapTree , fundDesc .AssetSpecifier ,
1922
- state .spenderScriptKey ,
1923
- )
1924
- if err != nil {
1925
- return nil , nil , err
1926
- }
1927
-
1928
- fullValue , err := tapsend .ValidateInputs (
1929
- tappsbt.InputCommitments {
1930
- state .asset1PrevID : & state .asset1TapTree ,
1931
- }, inputAsset .Type , fundDesc .AssetSpecifier ,
1932
- fundDesc .Amount ,
1933
- )
1934
- if err != nil {
1935
- return nil , nil , err
1936
- }
1937
- require .True (t , fullValue )
1938
-
1939
- return & state .asset1 , inputAsset , nil
1940
- },
1941
- err : nil ,
1942
- }, {
1943
- name : "valid collectible with group key" ,
1944
- f : func (t * testing.T ) (* asset.Asset , * asset.Asset , error ) {
1945
- state := initSpendScenario (t )
1946
- fundDesc := addrToFundDesc (state .address1CollectGroup )
1947
-
1948
- inputAsset , err := tapsend .AssetFromTapCommitment (
1949
- & state .asset1CollectGroupTapTree ,
1950
- fundDesc .AssetSpecifier , state .spenderScriptKey ,
1951
- )
1952
- if err != nil {
1953
- return nil , nil , err
1954
- }
1955
-
1956
- inputCommitment := & state .asset1CollectGroupTapTree
1957
- fullValue , err := tapsend .ValidateInputs (
1958
- tappsbt.InputCommitments {
1959
- state .asset1CollectGroupPrevID : inputCommitment ,
1960
- }, inputAsset .Type , fundDesc .AssetSpecifier ,
1961
- fundDesc .Amount ,
1962
- )
1963
- if err != nil {
1964
- return nil , nil , err
1965
- }
1966
- require .True (t , fullValue )
1967
-
1968
- return & state .asset1CollectGroup , inputAsset , nil
1969
- },
1970
- err : nil ,
1971
- }, {
1972
- name : "valid asset split" ,
1973
- f : func (t * testing.T ) (* asset.Asset , * asset.Asset , error ) {
1974
- state := initSpendScenario (t )
1975
- fundDesc := addrToFundDesc (state .address1 )
1976
-
1977
- inputAsset , err := tapsend .AssetFromTapCommitment (
1978
- & state .asset2TapTree , fundDesc .AssetSpecifier ,
1979
- state .spenderScriptKey ,
1980
- )
1981
- if err != nil {
1982
- return nil , nil , err
1983
- }
1984
-
1985
- fullValue , err := tapsend .ValidateInputs (
1986
- tappsbt.InputCommitments {
1987
- state .asset2PrevID : & state .asset2TapTree ,
1988
- }, inputAsset .Type , fundDesc .AssetSpecifier ,
1989
- fundDesc .Amount ,
1990
- )
1991
- if err != nil {
1992
- return nil , nil , err
1993
- }
1994
- require .False (t , fullValue )
1995
-
1996
- return & state .asset2 , inputAsset , nil
1997
- },
1998
- err : nil ,
1999
- }, {
2000
- name : "normal with insufficient amount" ,
2001
- f : func (t * testing.T ) (* asset.Asset , * asset.Asset , error ) {
2002
- state := initSpendScenario (t )
2003
- fundDesc := addrToFundDesc (state .address2 )
2004
-
2005
- inputAsset , err := tapsend .AssetFromTapCommitment (
2006
- & state .asset1TapTree , fundDesc .AssetSpecifier ,
2007
- state .spenderScriptKey ,
2008
- )
2009
- if err != nil {
2010
- return nil , nil , err
2011
- }
2012
-
2013
- fullValue , err := tapsend .ValidateInputs (
2014
- tappsbt.InputCommitments {
2015
- state .asset1PrevID : & state .asset1TapTree ,
2016
- }, inputAsset .Type , fundDesc .AssetSpecifier ,
2017
- fundDesc .Amount ,
2018
- )
2019
- if err != nil {
2020
- return nil , nil , err
2021
- }
2022
- require .True (t , fullValue )
2023
-
2024
- return & state .asset1 , inputAsset , nil
2025
- },
2026
- err : tapsend .ErrInsufficientInputAssets ,
2027
- }, {
2028
- name : "collectible with missing input asset" ,
2029
- f : func (t * testing.T ) (* asset.Asset , * asset.Asset , error ) {
2030
- state := initSpendScenario (t )
2031
- fundDesc := addrToFundDesc (state .address1CollectGroup )
2032
-
2033
- inputAsset , err := tapsend .AssetFromTapCommitment (
2034
- & state .asset1TapTree , fundDesc .AssetSpecifier ,
2035
- state .spenderScriptKey ,
2036
- )
2037
- if err != nil {
2038
- return nil , nil , err
2039
- }
2040
-
2041
- fullValue , err := tapsend .ValidateInputs (
2042
- tappsbt.InputCommitments {
2043
- state .asset1PrevID : & state .asset1TapTree ,
2044
- }, inputAsset .Type , fundDesc .AssetSpecifier ,
2045
- fundDesc .Amount ,
2046
- )
2047
- if err != nil {
2048
- return nil , nil , err
2049
- }
2050
- require .False (t , fullValue )
2051
-
2052
- return & state .asset1 , inputAsset , nil
2053
- },
2054
- err : tapsend .ErrMissingInputAsset ,
2055
- }, {
2056
- name : "normal with bad sender script key" ,
2057
- f : func (t * testing.T ) (* asset.Asset , * asset.Asset , error ) {
2058
- state := initSpendScenario (t )
2059
-
2060
- address1testnet , err := address .New (
2061
- address .V0 , state .genesis1 , nil , nil ,
2062
- state .receiverPubKey , state .receiverPubKey ,
2063
- state .normalAmt1 , nil , & address .TestNet3Tap ,
2064
- address .RandProofCourierAddr (t ),
2065
- )
2066
- require .NoError (t , err )
2067
-
2068
- fundDesc := addrToFundDesc (* address1testnet )
2069
-
2070
- inputAsset , err := tapsend .AssetFromTapCommitment (
2071
- & state .asset1TapTree , fundDesc .AssetSpecifier ,
2072
- state .receiverPubKey ,
2073
- )
2074
- if err != nil {
2075
- return nil , nil , err
2076
- }
2077
-
2078
- fullValue , err := tapsend .ValidateInputs (
2079
- tappsbt.InputCommitments {
2080
- state .asset1PrevID : & state .asset1TapTree ,
2081
- }, inputAsset .Type , fundDesc .AssetSpecifier ,
2082
- fundDesc .Amount ,
2083
- )
2084
- if err != nil {
2085
- return nil , nil , err
2086
- }
2087
- require .True (t , fullValue )
2088
-
2089
- return & state .asset1 , inputAsset , nil
2090
- },
2091
- err : tapsend .ErrMissingInputAsset ,
2092
- }}
2093
-
2094
1876
// TestPayToAddrScript tests edge cases around creating a P2TR script with
2095
1877
// PayToAddrScript.
2096
1878
func TestPayToAddrScript (t * testing.T ) {
0 commit comments