import { TransactionBuilder } from "./transaction.builder"; describe("buildAuxiliaryDataHash", () => { test("should correctly hash data", () => { expect( TransactionBuilder.buildAuxiliaryDataHash({ 0: "e922e8166852073d6c1c9be0736530404c9c26d9ba1773e11d32d11c", }) ).toBe("8d1b307edb2cc7a89e50a8a53fe13ad38929b2018e51d9d108112b530f771eaa"); }); describe("calculateFee", () => { let buyScript: string; beforeAll(() => { buyScript = "590CB7010000332333222332233223322323233322232333222323333333322222222323332223233332222323233223233322232333222323233223322323233333222223322332233223322332233222232323232232232325335303633300B3333573466E1CD55CEA804A4000466660A46EB8D5D0A8049BAD35742A0106EB8D5D0A8039BAE357426AE89401C8D4130D4C134CD5CE2481035054310004E499263333573466E1D40112002205423333573466E1D40152000205623504D35304E335738921035054310004F49926498CCCD5CD19B8735573AA004900011980719191919191919191919191999AB9A3370E6AAE75402920002333333333301C33502A232323333573466E1CD55CEA80124000466044607A6AE854008C0BCD5D09ABA2500223505C35305D3357389201035054310005E49926135573CA00226EA8004D5D0A80519A8150159ABA150093335503175CA0606AE854020CCD540C5D728181ABA1500733502A04635742A00C66A05466AA0AE09EEB4D5D0A8029919191999AB9A3370E6AAE754009200023350243232323333573466E1CD55CEA80124000466A05866A08AEB4D5D0A80118251ABA135744A00446A0C06A60C266AE712401035054310006249926135573CA00226EA8004D5D0A8011919191999AB9A3370E6AAE7540092000233502A33504575A6AE854008C128D5D09ABA250022350603530613357389201035054310006249926135573CA00226EA8004D5D09ABA2500223505C35305D3357389201035054310005E49926135573CA00226EA8004D5D0A80219A8153AE35742A00666A05466AA0AEEB88004D5D0A801181E1ABA135744A00446A0B06A60B266AE71241035054310005A49926135744A00226AE8940044D5D1280089ABA25001135744A00226AE8940044D5D1280089ABA25001135573CA00226EA8004D5D0A8011919191999AB9A3370EA002900311810981F1ABA135573CA00646666AE68CDC3A801240084604060906AE84D55CF280211999AB9A3370EA00690011181018199ABA135573CA00A46666AE68CDC3A80224000460466EB8D5D09AAB9E50062350533530543357389201035054310005549926499264984D55CEA80089BAA001357426AE8940088D4130D4C134CD5CE249035054310004E49926104D13504B35304C3357389201035054350004D4984D55CF280089BAA001135573A6EA80044D5D1280089ABA25001135573CA00226EA80048848CC00400C0088004888888888848CCCCCCCCCC00402C02802402001C01801401000C00880048848CC00400C008800448848CC00400C0084800448848CC00400C0084800448848CC00400C00848004848888C010014848888C00C014848888C008014848888C004014800448C88C008DD6000990009AA81C911999AAB9F0012500E233500D30043574200460066AE880080CC8C8C8C8CCCD5CD19B8735573AA006900011998039919191999AB9A3370E6AAE754009200023300D303135742A00466A02605A6AE84D5D1280111A81B1A981B99AB9C491035054310003849926135573CA00226EA8004D5D0A801999AA805BAE500A35742A00466A01EEB8D5D09ABA25002235032353033335738921035054310003449926135744A00226AAE7940044DD50009110919980080200180110009109198008018011000899AA800BAE75A224464460046EAC004C8004D540CC88C8CCCD55CF80112804919A80419AA81898031AAB9D5002300535573CA00460086AE8800C0B84D5D08008891001091091198008020018900089119191999AB9A3370EA002900011A80418029ABA135573CA00646666AE68CDC3A801240044A01046A0526A605466AE712401035054310002B499264984D55CEA80089BAA001121223002003112200112001232323333573466E1CD55CEA8012400046600C600E6AE854008DD69ABA135744A00446A0466A604866AE71241035054310002549926135573CA00226EA80048848CC00400C00880048C8CCCD5CD19B8735573AA002900011BAE357426AAE7940088D407CD4C080CD5CE24810350543100021499261375400224464646666AE68CDC3A800A40084A00E46666AE68CDC3A8012400446A014600C6AE84D55CF280211999AB9A3370EA00690001280511A8111A981199AB9C490103505431000244992649926135573AA00226EA8004484888C00C0104488800844888004480048C8CCCD5CD19B8750014800880188CCCD5CD19B8750024800080188D4068D4C06CCD5CE249035054310001C499264984D55CE9BAA0011220021220012001232323232323333573466E1D4005200C200B23333573466E1D4009200A200D23333573466E1D400D200823300B375C6AE854014DD69ABA135744A00A46666AE68CDC3A8022400C46601A6EB8D5D0A8039BAE357426AE89401C8CCCD5CD19B875005480108CC048C050D5D0A8049BAE357426AE8940248CCCD5CD19B875006480088C050C054D5D09AAB9E500B23333573466E1D401D2000230133016357426AAE7940308D407CD4C080CD5CE2481035054310002149926499264992649926135573AA00826AAE79400C4D55CF280109AAB9E500113754002424444444600E01044244444446600C012010424444444600A010244444440082444444400644244444446600401201044244444446600201201040024646464646666AE68CDC3A800A400446660106EB4D5D0A8021BAD35742A0066EB4D5D09ABA2500323333573466E1D400920002300A300B357426AAE7940188D4040D4C044CD5CE2490350543100012499264984D55CEA80189ABA25001135573CA00226EA80048488C00800C888488CCC00401401000C80048C8C8CCCD5CD19B875001480088C018DD71ABA135573CA00646666AE68CDC3A80124000460106EB8D5D09AAB9E500423500A35300B3357389201035054310000C499264984D55CEA80089BAA001212230020032122300100320011122232323333573466E1CD55CEA80124000466AA016600C6AE854008C014D5D09ABA25002235007353008335738921035054310000949926135573CA00226EA8004498480048004448848CC00400C008448004888848CCCC00401401000C00880044880084880048004448C8C00400488CC00CC008008004CC8CCC888CC88CCC888C8C8C8CCC888CC88CCC888CCC888CCCCCCCC88888888CC88CCCCC88888CCCC8888CC88CC88CC88CCC888CC88CC88CC88CC88CC88C8C8CC88C88888C8D4C0DC01088C8C8894CD4C0FC02454CD4C1294CD4C128CC108CDC0802A8019980780328038826099AB9C4911373656C6C6572206D75737420626520706169640004B15335304A3304250033300F00B5007104C13357389201176D61726B657420666565206D75737420626520706169640004B104B15335304A332235301500222222222225335350273335530181200133501A225335350290022100310015028253353057333573466E3C0300041641604D40A8004540A400C84164415D401C01841304CD5CE2491C6D757374206265207369676E6564206279207468652073656C6C65720004B153353047333573466E2540052080897A04904814820225E8540044CDC1800A41900226A601400244004640026AA0824422444A66A6A07C00226A6A00C00644002442666A6A01000A440046008004666AA600E2400200A008002244246600200600424002446A600C0024444444444666AA601A24002446A602C0044446A60360064466A607C0044A66A609E666AE68CDC780A000828828099A82580280388039003A822004990009AA81E9108911299A9A81D000880111099802801199AA980389000802802000910919800801801100091111111110919999999998008058050048040038030028020018011000910919800801801100091109199800802001801100091091980080180110008909118010018891000890008910919800801801090008910919800801801090008910919800801801090008909111801802089110010891100089000909111180200290911118018029091111801002909111180080290009109198008018011000909111111180380411091111111980300480410911111118028040911111100209111111001910911111119801004804110911111119800804804100090911801001911091199800802802001900090911801001909118008019000911109199980080280200180110008910010910009000990009AA805911299A9A8030008806110A99A9806999AB9A3370E600C00400801E01C201E26600A008002640026AA0144466A6A0080029000111A9AA80480111299A9806999AB9A3371E0049110000F00E13007001130060033200135500922335350030014800088D4D54020008894CD4C030CCD5CD19B8F00248810000E00D10011300600311220021221223300100400312001112212330010030021120011220021220012001112323001001223300330020020014891C95A54EF67FE3E962E3F40FE80C087749B4801670E4CF118B930F671B0001"; }); test("case 1 - fee must be 1229749", async () => { // Full transaction 84a50082825820348928f0d19b89a78dba8882073b12ce17e326f32d55a25fb2a42cd47cbab8a602825820ac4824eb07e539456a3199080621a9c41c2a8218adb70c1a5a6d8019c5ee6902010185825839005e173b9fe7f966cab3de465af557e14e4751234ef542d2a03ad4cc4712d6c2d8b2d7630ee503f407e8d9fc80363ba57ea321be23eb61bf7d1a77363b03825839005e173b9fe7f966cab3de465af557e14e4751234ef542d2a03ad4cc4712d6c2d8b2d7630ee503f407e8d9fc80363ba57ea321be23eb61bf7d821a001a4ec4a1581c12b9e177c14fb0f9836c46fa423dba1a5ab63b39489b413304888d64a14f4d7574616e7443726f6330313037330182583900e922e8166852073d6c1c9be0736530404c9c26d9ba1773e11d32d11c0f7b2c7f8924528d797a8f86d8210d6276e09f47b82ecd53a24900e71a04821f148258390095a54ef67fe3e962e3f40fe80c087749b4801670e4cf118b930f671bd01d85c8a4a620082ff4be3f60f6f1560a4130c9202480495f07efde1a000f4240825839006fedcb7aa63429a56bf18f3e3e5f37722a289221544400e24f6ed208b9050671e9105889ec53a190b8a2858d573b4f641feb42320fc972171a003d8bdc021a00030d400b5820fe3e693534bd88dcf09a7fdd89acb0d1015bc48bf32511041bcf994cbfb839ea0d81825820f1ef3f688d25418053d522cc0142bdb62ac8136486492c300967aa1674805f2100a40081825820f402e4c19123c86e2bd5ba64d067196890a4c516501c604ebb2907ab193709f25840cc4064ac5ee7134ca3de60dac96f35009e934c2d45443a4eeeae269c9e2afeb7600ad923970c43f2609c3d04127154f7cb573eca1dd519fa8bf6b9a3bc8b92030381590d1b590d180100003323332223322332233223232333222323332223233333333222222223233322232333322223232332232333222323332223232332233223232333332222233223322332233223322332222323232323232232232325335303833300d3333573466e1cd55cea805a400046666660a86eb8d5d0a8059bad35742a0146eb8d5d0a8049bae35742a0106eb8d5d0a8039bad357426ae89401c8d4138d4c13ccd5ce2490350543100050499263333573466e1d40112002205623333573466e1d40152000205823504f353050335738921035054310005149926498cccd5cd19b8735573aa004900011980819191919191919191919191999ab9a3370e6aae75402920002333333333301e33502c232323333573466e1cd55cea80124000466048607e6ae854008c0c4d5d09aba2500223505e35305f3357389201035054310006049926135573ca00226ea8004d5d0a80519a8160169aba150093335503375ca0646ae854020ccd540cdd728191aba1500733502c04835742a00c66a05866aa0b20a2eb4d5d0a8029919191999ab9a3370e6aae754009200023350263232323333573466e1cd55cea80124000466a05c66a08eeb4d5d0a80118261aba135744a00446a0c46a60c666ae712401035054310006449926135573ca00226ea8004d5d0a8011919191999ab9a3370e6aae7540092000233502c33504775a6ae854008c130d5d09aba250022350623530633357389201035054310006449926135573ca00226ea8004d5d09aba2500223505e35305f3357389201035054310006049926135573ca00226ea8004d5d0a80219a8163ae35742a00666a05866aa0b2eb88004d5d0a801181f1aba135744a00446a0b46a60b666ae71241035054310005c49926135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135573ca00226ea8004d5d0a8011919191999ab9a3370ea00290031181198201aba135573ca00646666ae68cdc3a801240084604460946ae84d55cf280211999ab9a3370ea006900111811181a9aba135573ca00a46666ae68cdc3a802240004604a6eb8d5d09aab9e50062350553530563357389201035054310005749926499264984d55cea80089baa001357426ae8940088d4138d4c13ccd5ce249035054310005049926104f13504d35304e3357389201035054350004f4984d55cf280089baa001135573a6ea80044d5d1280089aba25001135744a00226ae8940044d55cf280089baa0012212330010030022001222222222212333333333300100b00a00900800700600500400300220012212330010030022001122123300100300212001122123300100300212001122123300100300212001212222300400521222230030052122223002005212222300100520011232230023758002640026aa072446666aae7c004940388cd4034c010d5d080118019aba200203323232323333573466e1cd55cea801a4000466600e6464646666ae68cdc39aab9d5002480008cc034c0c4d5d0a80119a8098169aba135744a00446a06c6a606e66ae71241035054310003849926135573ca00226ea8004d5d0a801999aa805bae500a35742a00466a01eeb8d5d09aba25002235032353033335738921035054310003449926135744a00226aae7940044dd50009110919980080200180110009109198008018011000899aa800bae75a224464460046eac004c8004d540cc88c8cccd55cf80112804919a80419aa81898031aab9d5002300535573ca00460086ae8800c0b84d5d08008891001091091198008020018900089119191999ab9a3370ea002900011a80418029aba135573ca00646666ae68cdc3a801240044a01046a0526a605466ae712401035054310002b499264984d55cea80089baa001121223002003112200112001232323333573466e1cd55cea8012400046600c600e6ae854008dd69aba135744a00446a0466a604866ae71241035054310002549926135573ca00226ea80048848cc00400c00880048c8cccd5cd19b8735573aa002900011bae357426aae7940088d407cd4c080cd5ce24810350543100021499261375400224464646666ae68cdc3a800a40084a00e46666ae68cdc3a8012400446a014600c6ae84d55cf280211999ab9a3370ea00690001280511a8111a981199ab9c490103505431000244992649926135573aa00226ea8004484888c00c0104488800844888004480048c8cccd5cd19b8750014800880188cccd5cd19b8750024800080188d4068d4c06ccd5ce249035054310001c499264984d55ce9baa0011220021220012001232323232323333573466e1d4005200c200b23333573466e1d4009200a200d23333573466e1d400d200823300b375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c46601a6eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc048c050d5d0a8049bae357426ae8940248cccd5cd19b875006480088c050c054d5d09aab9e500b23333573466e1d401d2000230133016357426aae7940308d407cd4c080cd5ce2481035054310002149926499264992649926135573aa00826aae79400c4d55cf280109aab9e500113754002424444444600e01044244444446600c012010424444444600a010244444440082444444400644244444446600401201044244444446600201201040024646464646666ae68cdc3a800a400446660106eb4d5d0a8021bad35742a0066eb4d5d09aba2500323333573466e1d400920002300a300b357426aae7940188d4040d4c044cd5ce2490350543100012499264984d55cea80189aba25001135573ca00226ea80048488c00800c888488ccc00401401000c80048c8c8cccd5cd19b875001480088c018dd71aba135573ca00646666ae68cdc3a80124000460106eb8d5d09aab9e500423500a35300b3357389201035054310000c499264984d55cea80089baa001212230020032122300100320011122232323333573466e1cd55cea80124000466aa016600c6ae854008c014d5d09aba25002235007353008335738921035054310000949926135573ca00226ea8004498480048004448848cc00400c00844800488888848cccccc00401c01801401000c00880044880084880048004448c8c00400488cc00cc008008004cc8ccc888cc88ccc888c8c8c8ccc888cc88ccc888ccc888cccccccc88888888cc88ccccc88888cccc8888cc88cc88cc88ccc888cc88cc88cc88cc88cc88c8c8cc88c88888c8d4c0dc01088c8c888894cd4c10402c54cd4c1314cd4c130cc110cdc099b810075005001330110085009104e13357389211373656c6c6572206d75737420626520706169640004d15335304c5335304c3304450053301100d5009104e13357389201176d61726b657420666565206d75737420626520706169640004d15335304c33044001330110025009104e13357389211a726f79616c7469657320666565206d75737420626520706169640004d104d104d15335304c3322353017002222222222253353502933355301a1200133501c2253353502b002210031001502a253353059333573466e3c03000416c1684d40b0004540ac00c8416c4165402402041384cd5ce2491c6d757374206265207369676e6564206279207468652073656c6c65720004d153353047333573466e2540052080897a04904814820225e8540044cdc1800a41900226a601400244004640026aa0824422444a66a6a07c00226a6a00c00644002442666a6a01000a440046008004666aa600e2400200a008002244246600200600424002446a600c0024444444444666aa601a24002446a602c0044446a60360064466a607c0044a66a609e666ae68cdc780a000828828099a82580280388039003a822004990009aa81e9108911299a9a81d000880111099802801199aa9803890008028020009109198008018011000911111111109199999999980080580500480400380300280200180110009109198008018011000911091998008020018011000910919800801801100089091180100188910008900089109198008018010900089109198008018010900089109198008018010900089091118018020891100108911000890009091111802002909111180180290911118010029091111800802900091091980080180110009091111111803804110911111119803004804109111111180280409111111002091111110019109111111198010048041109111111198008048041000909118010019110911998008028020019000909118010019091180080190009111110919999980080380300280200180110008910010910009000990009aa805911299a9a8030008806110a99a9806999ab9a3370e600c00400801e01c201e26600a008002640026aa0144466a6a0080029000111a9aa80480111299a9806999ab9a3371e0049110000f00e13007001130060033200135500922335350030014800088d4d54020008894cd4c030ccd5cd19b8f00248810000e00d10011300600311220021221223300100400312001112212330010030021120011220021220012001112323001001223300330020020014891c95a54ef67fe3e962e3f40fe80c087749b4801670e4cf118b930f671b00010481d8799f581ce922e8166852073d6c1c9be0736530404c9c26d9ba1773e11d32d11c1a04ceed30581c12b9e177c14fb0f9836c46fa423dba1a5ab63b39489b413304888d644f4d7574616e7443726f633031303733581c6fedcb7aa63429a56bf18f3e3e5f37722a289221544400e24f6ed2081a003d8bdcff0581840001d8799fff821a006acfc01ab2d05e00f5f6 const transactionBody = "a50082825820348928f0d19b89a78dba8882073b12ce17e326f32d55a25fb2a42cd47cbab8a602825820ac4824eb07e539456a3199080621a9c41c2a8218adb70c1a5a6d8019c5ee6902010185825839005e173b9fe7f966cab3de465af557e14e4751234ef542d2a03ad4cc4712d6c2d8b2d7630ee503f407e8d9fc80363ba57ea321be23eb61bf7d1a77363b03825839005e173b9fe7f966cab3de465af557e14e4751234ef542d2a03ad4cc4712d6c2d8b2d7630ee503f407e8d9fc80363ba57ea321be23eb61bf7d821a001a4ec4a1581c12b9e177c14fb0f9836c46fa423dba1a5ab63b39489b413304888d64a14f4d7574616e7443726f6330313037330182583900e922e8166852073d6c1c9be0736530404c9c26d9ba1773e11d32d11c0f7b2c7f8924528d797a8f86d8210d6276e09f47b82ecd53a24900e71a04821f148258390095a54ef67fe3e962e3f40fe80c087749b4801670e4cf118b930f671bd01d85c8a4a620082ff4be3f60f6f1560a4130c9202480495f07efde1a000f4240825839006fedcb7aa63429a56bf18f3e3e5f37722a289221544400e24f6ed208b9050671e9105889ec53a190b8a2858d573b4f641feb42320fc972171a003d8bdc021a00030d400b5820fe3e693534bd88dcf09a7fdd89acb0d1015bc48bf32511041bcf994cbfb839ea0d81825820f1ef3f688d25418053d522cc0142bdb62ac8136486492c300967aa1674805f2100"; jest .spyOn(TransactionBuilder, "buildTransactionBody") .mockResolvedValueOnce({ encoded: transactionBody, length: transactionBody.length, }); const transactionWitness = "a40081825820f402e4c19123c86e2bd5ba64d067196890a4c516501c604ebb2907ab193709f25840cc4064ac5ee7134ca3de60dac96f35009e934c2d45443a4eeeae269c9e2afeb7600ad923970c43f2609c3d04127154f7cb573eca1dd519fa8bf6b9a3bc8b92030381590d1b590d180100003323332223322332233223232333222323332223233333333222222223233322232333322223232332232333222323332223232332233223232333332222233223322332233223322332222323232323232232232325335303833300d3333573466e1cd55cea805a400046666660a86eb8d5d0a8059bad35742a0146eb8d5d0a8049bae35742a0106eb8d5d0a8039bad357426ae89401c8d4138d4c13ccd5ce2490350543100050499263333573466e1d40112002205623333573466e1d40152000205823504f353050335738921035054310005149926498cccd5cd19b8735573aa004900011980819191919191919191919191999ab9a3370e6aae75402920002333333333301e33502c232323333573466e1cd55cea80124000466048607e6ae854008c0c4d5d09aba2500223505e35305f3357389201035054310006049926135573ca00226ea8004d5d0a80519a8160169aba150093335503375ca0646ae854020ccd540cdd728191aba1500733502c04835742a00c66a05866aa0b20a2eb4d5d0a8029919191999ab9a3370e6aae754009200023350263232323333573466e1cd55cea80124000466a05c66a08eeb4d5d0a80118261aba135744a00446a0c46a60c666ae712401035054310006449926135573ca00226ea8004d5d0a8011919191999ab9a3370e6aae7540092000233502c33504775a6ae854008c130d5d09aba250022350623530633357389201035054310006449926135573ca00226ea8004d5d09aba2500223505e35305f3357389201035054310006049926135573ca00226ea8004d5d0a80219a8163ae35742a00666a05866aa0b2eb88004d5d0a801181f1aba135744a00446a0b46a60b666ae71241035054310005c49926135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135573ca00226ea8004d5d0a8011919191999ab9a3370ea00290031181198201aba135573ca00646666ae68cdc3a801240084604460946ae84d55cf280211999ab9a3370ea006900111811181a9aba135573ca00a46666ae68cdc3a802240004604a6eb8d5d09aab9e50062350553530563357389201035054310005749926499264984d55cea80089baa001357426ae8940088d4138d4c13ccd5ce249035054310005049926104f13504d35304e3357389201035054350004f4984d55cf280089baa001135573a6ea80044d5d1280089aba25001135744a00226ae8940044d55cf280089baa0012212330010030022001222222222212333333333300100b00a00900800700600500400300220012212330010030022001122123300100300212001122123300100300212001122123300100300212001212222300400521222230030052122223002005212222300100520011232230023758002640026aa072446666aae7c004940388cd4034c010d5d080118019aba200203323232323333573466e1cd55cea801a4000466600e6464646666ae68cdc39aab9d5002480008cc034c0c4d5d0a80119a8098169aba135744a00446a06c6a606e66ae71241035054310003849926135573ca00226ea8004d5d0a801999aa805bae500a35742a00466a01eeb8d5d09aba25002235032353033335738921035054310003449926135744a00226aae7940044dd50009110919980080200180110009109198008018011000899aa800bae75a224464460046eac004c8004d540cc88c8cccd55cf80112804919a80419aa81898031aab9d5002300535573ca00460086ae8800c0b84d5d08008891001091091198008020018900089119191999ab9a3370ea002900011a80418029aba135573ca00646666ae68cdc3a801240044a01046a0526a605466ae712401035054310002b499264984d55cea80089baa001121223002003112200112001232323333573466e1cd55cea8012400046600c600e6ae854008dd69aba135744a00446a0466a604866ae71241035054310002549926135573ca00226ea80048848cc00400c00880048c8cccd5cd19b8735573aa002900011bae357426aae7940088d407cd4c080cd5ce24810350543100021499261375400224464646666ae68cdc3a800a40084a00e46666ae68cdc3a8012400446a014600c6ae84d55cf280211999ab9a3370ea00690001280511a8111a981199ab9c490103505431000244992649926135573aa00226ea8004484888c00c0104488800844888004480048c8cccd5cd19b8750014800880188cccd5cd19b8750024800080188d4068d4c06ccd5ce249035054310001c499264984d55ce9baa0011220021220012001232323232323333573466e1d4005200c200b23333573466e1d4009200a200d23333573466e1d400d200823300b375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c46601a6eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc048c050d5d0a8049bae357426ae8940248cccd5cd19b875006480088c050c054d5d09aab9e500b23333573466e1d401d2000230133016357426aae7940308d407cd4c080cd5ce2481035054310002149926499264992649926135573aa00826aae79400c4d55cf280109aab9e500113754002424444444600e01044244444446600c012010424444444600a010244444440082444444400644244444446600401201044244444446600201201040024646464646666ae68cdc3a800a400446660106eb4d5d0a8021bad35742a0066eb4d5d09aba2500323333573466e1d400920002300a300b357426aae7940188d4040d4c044cd5ce2490350543100012499264984d55cea80189aba25001135573ca00226ea80048488c00800c888488ccc00401401000c80048c8c8cccd5cd19b875001480088c018dd71aba135573ca00646666ae68cdc3a80124000460106eb8d5d09aab9e500423500a35300b3357389201035054310000c499264984d55cea80089baa001212230020032122300100320011122232323333573466e1cd55cea80124000466aa016600c6ae854008c014d5d09aba25002235007353008335738921035054310000949926135573ca00226ea8004498480048004448848cc00400c00844800488888848cccccc00401c01801401000c00880044880084880048004448c8c00400488cc00cc008008004cc8ccc888cc88ccc888c8c8c8ccc888cc88ccc888ccc888cccccccc88888888cc88ccccc88888cccc8888cc88cc88cc88ccc888cc88cc88cc88cc88cc88c8c8cc88c88888c8d4c0dc01088c8c888894cd4c10402c54cd4c1314cd4c130cc110cdc099b810075005001330110085009104e13357389211373656c6c6572206d75737420626520706169640004d15335304c5335304c3304450053301100d5009104e13357389201176d61726b657420666565206d75737420626520706169640004d15335304c33044001330110025009104e13357389211a726f79616c7469657320666565206d75737420626520706169640004d104d104d15335304c3322353017002222222222253353502933355301a1200133501c2253353502b002210031001502a253353059333573466e3c03000416c1684d40b0004540ac00c8416c4165402402041384cd5ce2491c6d757374206265207369676e6564206279207468652073656c6c65720004d153353047333573466e2540052080897a04904814820225e8540044cdc1800a41900226a601400244004640026aa0824422444a66a6a07c00226a6a00c00644002442666a6a01000a440046008004666aa600e2400200a008002244246600200600424002446a600c0024444444444666aa601a24002446a602c0044446a60360064466a607c0044a66a609e666ae68cdc780a000828828099a82580280388039003a822004990009aa81e9108911299a9a81d000880111099802801199aa9803890008028020009109198008018011000911111111109199999999980080580500480400380300280200180110009109198008018011000911091998008020018011000910919800801801100089091180100188910008900089109198008018010900089109198008018010900089109198008018010900089091118018020891100108911000890009091111802002909111180180290911118010029091111800802900091091980080180110009091111111803804110911111119803004804109111111180280409111111002091111110019109111111198010048041109111111198008048041000909118010019110911998008028020019000909118010019091180080190009111110919999980080380300280200180110008910010910009000990009aa805911299a9a8030008806110a99a9806999ab9a3370e600c00400801e01c201e26600a008002640026aa0144466a6a0080029000111a9aa80480111299a9806999ab9a3371e0049110000f00e13007001130060033200135500922335350030014800088d4d54020008894cd4c030ccd5cd19b8f00248810000e00d10011300600311220021221223300100400312001112212330010030021120011220021220012001112323001001223300330020020014891c95a54ef67fe3e962e3f40fe80c087749b4801670e4cf118b930f671b00010481d8799f581ce922e8166852073d6c1c9be0736530404c9c26d9ba1773e11d32d11c1a04ceed30581c12b9e177c14fb0f9836c46fa423dba1a5ab63b39489b413304888d644f4d7574616e7443726f633031303733581c6fedcb7aa63429a56bf18f3e3e5f37722a289221544400e24f6ed2081a003d8bdcff0581840001d8799fff821a006acfc01ab2d05e00f5f6"; jest .spyOn(TransactionBuilder, "buildTransactionWitness") .mockReturnValueOnce(transactionWitness); const fee = await TransactionBuilder.calculateFee( { inputsUtxo: [], requiredInputs: {}, requiredOutputs: {}, }, { script: buyScript, }, { minFeeA: 44, minFeeB: 155381, priceMem: 0.0577, priceStep: 0.0000721, scriptCpuUnits: 4000000000, scriptMemUnits: 2000000, } ); expect(fee).toBe(1229749); }); test("case 2 - fee must be 1212413", async () => { // Full transaction 84a500828258200a43aae1284b319f9c3463429a4d0f0db7c83287c670a6c72139474b056dde4f0182582061c010d4bea9bc10b28a50e5c7801d9d2a481c995441fe10f436ff36a35c661d02018482583900ae0632f3ef54ba8b5c091a51538ea455abf4964daad14fb11c095adde2ae76c413c16de4c36978df59d47d884a3837347bbbcef28762a5c11a4086229482583900ae0632f3ef54ba8b5c091a51538ea455abf4964daad14fb11c095adde2ae76c413c16de4c36978df59d47d884a3837347bbbcef28762a5c1821a001a4ec4a1581cd36e188f6b8187743597990cdde785ab95ccb5fd2cb95e80af7280c3a14f4d7574616e74546f616430313038330182583900e922e8166852073d6c1c9be0736530404c9c26d9ba1773e11d32d11c0f7b2c7f8924528d797a8f86d8210d6276e09f47b82ecd53a24900e71a07512b408258390095a54ef67fe3e962e3f40fe80c087749b4801670e4cf118b930f671bd01d85c8a4a620082ff4be3f60f6f1560a4130c9202480495f07efde1a0012ebc0021a00030d400b582072a3ad3bc871861604f95d6f2c0811d34ddbfea6b4876acd13ffdb6967c4a6d60d81825820cf7a63bf953d5b7b526e8feda05ba4d26fd584e7aaa431394406cded058e085f00a40081825820e2ed6a33cc9bf109fef8dd6eac572bef6add89fc32ae0e87acefc6b738a0d6be58403f33da43645c01cb4c69914be84b329bb81af4b552528f8edefd5565e624cda3f1b2b452042f0509d75e01cfd015d9ade58e6507abf9f60498075731b4c903020381590cba590cb7010000332333222332233223322323233322232333222323333333322222222323332223233332222323233223233322232333222323233223322323233333222223322332233223322332233222232323232232232325335303633300b3333573466e1cd55cea804a4000466660a46eb8d5d0a8049bad35742a0106eb8d5d0a8039bae357426ae89401c8d4130d4c134cd5ce2481035054310004e499263333573466e1d40112002205423333573466e1d40152000205623504d35304e335738921035054310004f49926498cccd5cd19b8735573aa004900011980719191919191919191919191999ab9a3370e6aae75402920002333333333301c33502a232323333573466e1cd55cea80124000466044607a6ae854008c0bcd5d09aba2500223505c35305d3357389201035054310005e49926135573ca00226ea8004d5d0a80519a8150159aba150093335503175ca0606ae854020ccd540c5d728181aba1500733502a04635742a00c66a05466aa0ae09eeb4d5d0a8029919191999ab9a3370e6aae754009200023350243232323333573466e1cd55cea80124000466a05866a08aeb4d5d0a80118251aba135744a00446a0c06a60c266ae712401035054310006249926135573ca00226ea8004d5d0a8011919191999ab9a3370e6aae7540092000233502a33504575a6ae854008c128d5d09aba250022350603530613357389201035054310006249926135573ca00226ea8004d5d09aba2500223505c35305d3357389201035054310005e49926135573ca00226ea8004d5d0a80219a8153ae35742a00666a05466aa0aeeb88004d5d0a801181e1aba135744a00446a0b06a60b266ae71241035054310005a49926135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135573ca00226ea8004d5d0a8011919191999ab9a3370ea002900311810981f1aba135573ca00646666ae68cdc3a801240084604060906ae84d55cf280211999ab9a3370ea00690011181018199aba135573ca00a46666ae68cdc3a80224000460466eb8d5d09aab9e50062350533530543357389201035054310005549926499264984d55cea80089baa001357426ae8940088d4130d4c134cd5ce249035054310004e49926104d13504b35304c3357389201035054350004d4984d55cf280089baa001135573a6ea80044d5d1280089aba25001135573ca00226ea80048848cc00400c0088004888888888848cccccccccc00402c02802402001c01801401000c00880048848cc00400c008800448848cc00400c0084800448848cc00400c0084800448848cc00400c00848004848888c010014848888c00c014848888c008014848888c004014800448c88c008dd6000990009aa81c911999aab9f0012500e233500d30043574200460066ae880080cc8c8c8c8cccd5cd19b8735573aa006900011998039919191999ab9a3370e6aae754009200023300d303135742a00466a02605a6ae84d5d1280111a81b1a981b99ab9c491035054310003849926135573ca00226ea8004d5d0a801999aa805bae500a35742a00466a01eeb8d5d09aba25002235032353033335738921035054310003449926135744a00226aae7940044dd50009110919980080200180110009109198008018011000899aa800bae75a224464460046eac004c8004d540cc88c8cccd55cf80112804919a80419aa81898031aab9d5002300535573ca00460086ae8800c0b84d5d08008891001091091198008020018900089119191999ab9a3370ea002900011a80418029aba135573ca00646666ae68cdc3a801240044a01046a0526a605466ae712401035054310002b499264984d55cea80089baa001121223002003112200112001232323333573466e1cd55cea8012400046600c600e6ae854008dd69aba135744a00446a0466a604866ae71241035054310002549926135573ca00226ea80048848cc00400c00880048c8cccd5cd19b8735573aa002900011bae357426aae7940088d407cd4c080cd5ce24810350543100021499261375400224464646666ae68cdc3a800a40084a00e46666ae68cdc3a8012400446a014600c6ae84d55cf280211999ab9a3370ea00690001280511a8111a981199ab9c490103505431000244992649926135573aa00226ea8004484888c00c0104488800844888004480048c8cccd5cd19b8750014800880188cccd5cd19b8750024800080188d4068d4c06ccd5ce249035054310001c499264984d55ce9baa0011220021220012001232323232323333573466e1d4005200c200b23333573466e1d4009200a200d23333573466e1d400d200823300b375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c46601a6eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc048c050d5d0a8049bae357426ae8940248cccd5cd19b875006480088c050c054d5d09aab9e500b23333573466e1d401d2000230133016357426aae7940308d407cd4c080cd5ce2481035054310002149926499264992649926135573aa00826aae79400c4d55cf280109aab9e500113754002424444444600e01044244444446600c012010424444444600a010244444440082444444400644244444446600401201044244444446600201201040024646464646666ae68cdc3a800a400446660106eb4d5d0a8021bad35742a0066eb4d5d09aba2500323333573466e1d400920002300a300b357426aae7940188d4040d4c044cd5ce2490350543100012499264984d55cea80189aba25001135573ca00226ea80048488c00800c888488ccc00401401000c80048c8c8cccd5cd19b875001480088c018dd71aba135573ca00646666ae68cdc3a80124000460106eb8d5d09aab9e500423500a35300b3357389201035054310000c499264984d55cea80089baa001212230020032122300100320011122232323333573466e1cd55cea80124000466aa016600c6ae854008c014d5d09aba25002235007353008335738921035054310000949926135573ca00226ea8004498480048004448848cc00400c008448004888848cccc00401401000c00880044880084880048004448c8c00400488cc00cc008008004cc8ccc888cc88ccc888c8c8c8ccc888cc88ccc888ccc888cccccccc88888888cc88ccccc88888cccc8888cc88cc88cc88ccc888cc88cc88cc88cc88cc88c8c8cc88c88888c8d4c0dc01088c8c8894cd4c0fc02454cd4c1294cd4c128cc108cdc0802a8019980780328038826099ab9c4911373656c6c6572206d75737420626520706169640004b15335304a3304250033300f00b5007104c13357389201176d61726b657420666565206d75737420626520706169640004b104b15335304a332235301500222222222225335350273335530181200133501a225335350290022100310015028253353057333573466e3c0300041641604d40a8004540a400c84164415d401c01841304cd5ce2491c6d757374206265207369676e6564206279207468652073656c6c65720004b153353047333573466e2540052080897a04904814820225e8540044cdc1800a41900226a601400244004640026aa0824422444a66a6a07c00226a6a00c00644002442666a6a01000a440046008004666aa600e2400200a008002244246600200600424002446a600c0024444444444666aa601a24002446a602c0044446a60360064466a607c0044a66a609e666ae68cdc780a000828828099a82580280388039003a822004990009aa81e9108911299a9a81d000880111099802801199aa980389000802802000910919800801801100091111111110919999999998008058050048040038030028020018011000910919800801801100091109199800802001801100091091980080180110008909118010018891000890008910919800801801090008910919800801801090008910919800801801090008909111801802089110010891100089000909111180200290911118018029091111801002909111180080290009109198008018011000909111111180380411091111111980300480410911111118028040911111100209111111001910911111119801004804110911111119800804804100090911801001911091199800802802001900090911801001909118008019000911109199980080280200180110008910010910009000990009aa805911299a9a8030008806110a99a9806999ab9a3370e600c00400801e01c201e26600a008002640026aa0144466a6a0080029000111a9aa80480111299a9806999ab9a3371e0049110000f00e13007001130060033200135500922335350030014800088d4d54020008894cd4c030ccd5cd19b8f00248810000e00d10011300600311220021221223300100400312001112212330010030021120011220021220012001112323001001223300330020020014891c95a54ef67fe3e962e3f40fe80c087749b4801670e4cf118b930f671b00010481d8799f581ce922e8166852073d6c1c9be0736530404c9c26d9ba1773e11d32d11c1a07641700581cd36e188f6b8187743597990cdde785ab95ccb5fd2cb95e80af7280c34f4d7574616e74546f61643031303833ff0581840000d8799fff821a006acfc01ab2d05e00f5f6 const transactionBody = "a500828258200a43aae1284b319f9c3463429a4d0f0db7c83287c670a6c72139474b056dde4f0182582061c010d4bea9bc10b28a50e5c7801d9d2a481c995441fe10f436ff36a35c661d02018482583900ae0632f3ef54ba8b5c091a51538ea455abf4964daad14fb11c095adde2ae76c413c16de4c36978df59d47d884a3837347bbbcef28762a5c11a4086229482583900ae0632f3ef54ba8b5c091a51538ea455abf4964daad14fb11c095adde2ae76c413c16de4c36978df59d47d884a3837347bbbcef28762a5c1821a001a4ec4a1581cd36e188f6b8187743597990cdde785ab95ccb5fd2cb95e80af7280c3a14f4d7574616e74546f616430313038330182583900e922e8166852073d6c1c9be0736530404c9c26d9ba1773e11d32d11c0f7b2c7f8924528d797a8f86d8210d6276e09f47b82ecd53a24900e71a07512b408258390095a54ef67fe3e962e3f40fe80c087749b4801670e4cf118b930f671bd01d85c8a4a620082ff4be3f60f6f1560a4130c9202480495f07efde1a0012ebc0021a00030d400b582072a3ad3bc871861604f95d6f2c0811d34ddbfea6b4876acd13ffdb6967c4a6d60d81825820cf7a63bf953d5b7b526e8feda05ba4d26fd584e7aaa431394406cded058e085f00"; jest .spyOn(TransactionBuilder, "buildTransactionBody") .mockResolvedValueOnce({ encoded: transactionBody, length: transactionBody.length, }); const transactionWitness = "a40081825820e2ed6a33cc9bf109fef8dd6eac572bef6add89fc32ae0e87acefc6b738a0d6be58403f33da43645c01cb4c69914be84b329bb81af4b552528f8edefd5565e624cda3f1b2b452042f0509d75e01cfd015d9ade58e6507abf9f60498075731b4c903020381590cba590cb7010000332333222332233223322323233322232333222323333333322222222323332223233332222323233223233322232333222323233223322323233333222223322332233223322332233222232323232232232325335303633300b3333573466e1cd55cea804a4000466660a46eb8d5d0a8049bad35742a0106eb8d5d0a8039bae357426ae89401c8d4130d4c134cd5ce2481035054310004e499263333573466e1d40112002205423333573466e1d40152000205623504d35304e335738921035054310004f49926498cccd5cd19b8735573aa004900011980719191919191919191919191999ab9a3370e6aae75402920002333333333301c33502a232323333573466e1cd55cea80124000466044607a6ae854008c0bcd5d09aba2500223505c35305d3357389201035054310005e49926135573ca00226ea8004d5d0a80519a8150159aba150093335503175ca0606ae854020ccd540c5d728181aba1500733502a04635742a00c66a05466aa0ae09eeb4d5d0a8029919191999ab9a3370e6aae754009200023350243232323333573466e1cd55cea80124000466a05866a08aeb4d5d0a80118251aba135744a00446a0c06a60c266ae712401035054310006249926135573ca00226ea8004d5d0a8011919191999ab9a3370e6aae7540092000233502a33504575a6ae854008c128d5d09aba250022350603530613357389201035054310006249926135573ca00226ea8004d5d09aba2500223505c35305d3357389201035054310005e49926135573ca00226ea8004d5d0a80219a8153ae35742a00666a05466aa0aeeb88004d5d0a801181e1aba135744a00446a0b06a60b266ae71241035054310005a49926135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135573ca00226ea8004d5d0a8011919191999ab9a3370ea002900311810981f1aba135573ca00646666ae68cdc3a801240084604060906ae84d55cf280211999ab9a3370ea00690011181018199aba135573ca00a46666ae68cdc3a80224000460466eb8d5d09aab9e50062350533530543357389201035054310005549926499264984d55cea80089baa001357426ae8940088d4130d4c134cd5ce249035054310004e49926104d13504b35304c3357389201035054350004d4984d55cf280089baa001135573a6ea80044d5d1280089aba25001135573ca00226ea80048848cc00400c0088004888888888848cccccccccc00402c02802402001c01801401000c00880048848cc00400c008800448848cc00400c0084800448848cc00400c0084800448848cc00400c00848004848888c010014848888c00c014848888c008014848888c004014800448c88c008dd6000990009aa81c911999aab9f0012500e233500d30043574200460066ae880080cc8c8c8c8cccd5cd19b8735573aa006900011998039919191999ab9a3370e6aae754009200023300d303135742a00466a02605a6ae84d5d1280111a81b1a981b99ab9c491035054310003849926135573ca00226ea8004d5d0a801999aa805bae500a35742a00466a01eeb8d5d09aba25002235032353033335738921035054310003449926135744a00226aae7940044dd50009110919980080200180110009109198008018011000899aa800bae75a224464460046eac004c8004d540cc88c8cccd55cf80112804919a80419aa81898031aab9d5002300535573ca00460086ae8800c0b84d5d08008891001091091198008020018900089119191999ab9a3370ea002900011a80418029aba135573ca00646666ae68cdc3a801240044a01046a0526a605466ae712401035054310002b499264984d55cea80089baa001121223002003112200112001232323333573466e1cd55cea8012400046600c600e6ae854008dd69aba135744a00446a0466a604866ae71241035054310002549926135573ca00226ea80048848cc00400c00880048c8cccd5cd19b8735573aa002900011bae357426aae7940088d407cd4c080cd5ce24810350543100021499261375400224464646666ae68cdc3a800a40084a00e46666ae68cdc3a8012400446a014600c6ae84d55cf280211999ab9a3370ea00690001280511a8111a981199ab9c490103505431000244992649926135573aa00226ea8004484888c00c0104488800844888004480048c8cccd5cd19b8750014800880188cccd5cd19b8750024800080188d4068d4c06ccd5ce249035054310001c499264984d55ce9baa0011220021220012001232323232323333573466e1d4005200c200b23333573466e1d4009200a200d23333573466e1d400d200823300b375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c46601a6eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc048c050d5d0a8049bae357426ae8940248cccd5cd19b875006480088c050c054d5d09aab9e500b23333573466e1d401d2000230133016357426aae7940308d407cd4c080cd5ce2481035054310002149926499264992649926135573aa00826aae79400c4d55cf280109aab9e500113754002424444444600e01044244444446600c012010424444444600a010244444440082444444400644244444446600401201044244444446600201201040024646464646666ae68cdc3a800a400446660106eb4d5d0a8021bad35742a0066eb4d5d09aba2500323333573466e1d400920002300a300b357426aae7940188d4040d4c044cd5ce2490350543100012499264984d55cea80189aba25001135573ca00226ea80048488c00800c888488ccc00401401000c80048c8c8cccd5cd19b875001480088c018dd71aba135573ca00646666ae68cdc3a80124000460106eb8d5d09aab9e500423500a35300b3357389201035054310000c499264984d55cea80089baa001212230020032122300100320011122232323333573466e1cd55cea80124000466aa016600c6ae854008c014d5d09aba25002235007353008335738921035054310000949926135573ca00226ea8004498480048004448848cc00400c008448004888848cccc00401401000c00880044880084880048004448c8c00400488cc00cc008008004cc8ccc888cc88ccc888c8c8c8ccc888cc88ccc888ccc888cccccccc88888888cc88ccccc88888cccc8888cc88cc88cc88ccc888cc88cc88cc88cc88cc88c8c8cc88c88888c8d4c0dc01088c8c8894cd4c0fc02454cd4c1294cd4c128cc108cdc0802a8019980780328038826099ab9c4911373656c6c6572206d75737420626520706169640004b15335304a3304250033300f00b5007104c13357389201176d61726b657420666565206d75737420626520706169640004b104b15335304a332235301500222222222225335350273335530181200133501a225335350290022100310015028253353057333573466e3c0300041641604d40a8004540a400c84164415d401c01841304cd5ce2491c6d757374206265207369676e6564206279207468652073656c6c65720004b153353047333573466e2540052080897a04904814820225e8540044cdc1800a41900226a601400244004640026aa0824422444a66a6a07c00226a6a00c00644002442666a6a01000a440046008004666aa600e2400200a008002244246600200600424002446a600c0024444444444666aa601a24002446a602c0044446a60360064466a607c0044a66a609e666ae68cdc780a000828828099a82580280388039003a822004990009aa81e9108911299a9a81d000880111099802801199aa980389000802802000910919800801801100091111111110919999999998008058050048040038030028020018011000910919800801801100091109199800802001801100091091980080180110008909118010018891000890008910919800801801090008910919800801801090008910919800801801090008909111801802089110010891100089000909111180200290911118018029091111801002909111180080290009109198008018011000909111111180380411091111111980300480410911111118028040911111100209111111001910911111119801004804110911111119800804804100090911801001911091199800802802001900090911801001909118008019000911109199980080280200180110008910010910009000990009aa805911299a9a8030008806110a99a9806999ab9a3370e600c00400801e01c201e26600a008002640026aa0144466a6a0080029000111a9aa80480111299a9806999ab9a3371e0049110000f00e13007001130060033200135500922335350030014800088d4d54020008894cd4c030ccd5cd19b8f00248810000e00d10011300600311220021221223300100400312001112212330010030021120011220021220012001112323001001223300330020020014891c95a54ef67fe3e962e3f40fe80c087749b4801670e4cf118b930f671b00010481d8799f581ce922e8166852073d6c1c9be0736530404c9c26d9ba1773e11d32d11c1a07641700581cd36e188f6b8187743597990cdde785ab95ccb5fd2cb95e80af7280c34f4d7574616e74546f61643031303833ff0581840000d8799fff821a006acfc01ab2d05e00f5f6"; jest .spyOn(TransactionBuilder, "buildTransactionWitness") .mockReturnValueOnce(transactionWitness); const fee = await TransactionBuilder.calculateFee( { inputsUtxo: [], requiredInputs: {}, requiredOutputs: {}, }, { script: buyScript, }, { minFeeA: 44, minFeeB: 155381, priceMem: 0.0577, priceStep: 0.0000721, scriptCpuUnits: 4000000000, scriptMemUnits: 2000000, } ); expect(fee).toBe(1212413); }); test("case 3 - fee must be 1212061", async () => { // Full transaction 84a500828258201e968873fd9b0e6fdedcc0bedb820f52797d8c624888a8456e3f1481ecb498080082582090932bad97fe5f76fe0d2d7a021f722359d8ea598a5e9b3312870f488fb1321b01018482583900ae0632f3ef54ba8b5c091a51538ea455abf4964daad14fb11c095adde2ae76c413c16de4c36978df59d47d884a3837347bbbcef28762a5c11a3d324d6982583900ae0632f3ef54ba8b5c091a51538ea455abf4964daad14fb11c095adde2ae76c413c16de4c36978df59d47d884a3837347bbbcef28762a5c1821a001a4ec4a1581c3f5265ef14f89e948fd5b5f55419712ad1f0dd4d75ab26be13444171a14e4672656547686f7374303133303401825839000c88ba122b220ad19904257edb0865849dd65101a59fbb938c6165061359e32ed7a7cacd646c755d9b93f04da50206d1831708f22ee2e08e1a179a7b008258390095a54ef67fe3e962e3f40fe80c087749b4801670e4cf118b930f671bd01d85c8a4a620082ff4be3f60f6f1560a4130c9202480495f07efde1a003d0900021a00030d400b58205f829f96d1cf672d5c3207202cbdc3a8f55d59975454fd5fabbc7384b6145e420d81825820cf7a63bf953d5b7b526e8feda05ba4d26fd584e7aaa431394406cded058e085f00a40081825820e2ed6a33cc9bf109fef8dd6eac572bef6add89fc32ae0e87acefc6b738a0d6be58404b55266bce329c9d281c0e9e38e53cf96433a85dc06f1e7089e33a7c277ce3c5028b3f8c44771730bb8c38d47495264850fcaa84cf760ec3b47427d4b11af50d0381590cba590cb7010000332333222332233223322323233322232333222323333333322222222323332223233332222323233223233322232333222323233223322323233333222223322332233223322332233222232323232232232325335303633300b3333573466e1cd55cea804a4000466660a46eb8d5d0a8049bad35742a0106eb8d5d0a8039bae357426ae89401c8d4130d4c134cd5ce2481035054310004e499263333573466e1d40112002205423333573466e1d40152000205623504d35304e335738921035054310004f49926498cccd5cd19b8735573aa004900011980719191919191919191919191999ab9a3370e6aae75402920002333333333301c33502a232323333573466e1cd55cea80124000466044607a6ae854008c0bcd5d09aba2500223505c35305d3357389201035054310005e49926135573ca00226ea8004d5d0a80519a8150159aba150093335503175ca0606ae854020ccd540c5d728181aba1500733502a04635742a00c66a05466aa0ae09eeb4d5d0a8029919191999ab9a3370e6aae754009200023350243232323333573466e1cd55cea80124000466a05866a08aeb4d5d0a80118251aba135744a00446a0c06a60c266ae712401035054310006249926135573ca00226ea8004d5d0a8011919191999ab9a3370e6aae7540092000233502a33504575a6ae854008c128d5d09aba250022350603530613357389201035054310006249926135573ca00226ea8004d5d09aba2500223505c35305d3357389201035054310005e49926135573ca00226ea8004d5d0a80219a8153ae35742a00666a05466aa0aeeb88004d5d0a801181e1aba135744a00446a0b06a60b266ae71241035054310005a49926135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135573ca00226ea8004d5d0a8011919191999ab9a3370ea002900311810981f1aba135573ca00646666ae68cdc3a801240084604060906ae84d55cf280211999ab9a3370ea00690011181018199aba135573ca00a46666ae68cdc3a80224000460466eb8d5d09aab9e50062350533530543357389201035054310005549926499264984d55cea80089baa001357426ae8940088d4130d4c134cd5ce249035054310004e49926104d13504b35304c3357389201035054350004d4984d55cf280089baa001135573a6ea80044d5d1280089aba25001135573ca00226ea80048848cc00400c0088004888888888848cccccccccc00402c02802402001c01801401000c00880048848cc00400c008800448848cc00400c0084800448848cc00400c0084800448848cc00400c00848004848888c010014848888c00c014848888c008014848888c004014800448c88c008dd6000990009aa81c911999aab9f0012500e233500d30043574200460066ae880080cc8c8c8c8cccd5cd19b8735573aa006900011998039919191999ab9a3370e6aae754009200023300d303135742a00466a02605a6ae84d5d1280111a81b1a981b99ab9c491035054310003849926135573ca00226ea8004d5d0a801999aa805bae500a35742a00466a01eeb8d5d09aba25002235032353033335738921035054310003449926135744a00226aae7940044dd50009110919980080200180110009109198008018011000899aa800bae75a224464460046eac004c8004d540cc88c8cccd55cf80112804919a80419aa81898031aab9d5002300535573ca00460086ae8800c0b84d5d08008891001091091198008020018900089119191999ab9a3370ea002900011a80418029aba135573ca00646666ae68cdc3a801240044a01046a0526a605466ae712401035054310002b499264984d55cea80089baa001121223002003112200112001232323333573466e1cd55cea8012400046600c600e6ae854008dd69aba135744a00446a0466a604866ae71241035054310002549926135573ca00226ea80048848cc00400c00880048c8cccd5cd19b8735573aa002900011bae357426aae7940088d407cd4c080cd5ce24810350543100021499261375400224464646666ae68cdc3a800a40084a00e46666ae68cdc3a8012400446a014600c6ae84d55cf280211999ab9a3370ea00690001280511a8111a981199ab9c490103505431000244992649926135573aa00226ea8004484888c00c0104488800844888004480048c8cccd5cd19b8750014800880188cccd5cd19b8750024800080188d4068d4c06ccd5ce249035054310001c499264984d55ce9baa0011220021220012001232323232323333573466e1d4005200c200b23333573466e1d4009200a200d23333573466e1d400d200823300b375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c46601a6eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc048c050d5d0a8049bae357426ae8940248cccd5cd19b875006480088c050c054d5d09aab9e500b23333573466e1d401d2000230133016357426aae7940308d407cd4c080cd5ce2481035054310002149926499264992649926135573aa00826aae79400c4d55cf280109aab9e500113754002424444444600e01044244444446600c012010424444444600a010244444440082444444400644244444446600401201044244444446600201201040024646464646666ae68cdc3a800a400446660106eb4d5d0a8021bad35742a0066eb4d5d09aba2500323333573466e1d400920002300a300b357426aae7940188d4040d4c044cd5ce2490350543100012499264984d55cea80189aba25001135573ca00226ea80048488c00800c888488ccc00401401000c80048c8c8cccd5cd19b875001480088c018dd71aba135573ca00646666ae68cdc3a80124000460106eb8d5d09aab9e500423500a35300b3357389201035054310000c499264984d55cea80089baa001212230020032122300100320011122232323333573466e1cd55cea80124000466aa016600c6ae854008c014d5d09aba25002235007353008335738921035054310000949926135573ca00226ea8004498480048004448848cc00400c008448004888848cccc00401401000c00880044880084880048004448c8c00400488cc00cc008008004cc8ccc888cc88ccc888c8c8c8ccc888cc88ccc888ccc888cccccccc88888888cc88ccccc88888cccc8888cc88cc88cc88ccc888cc88cc88cc88cc88cc88c8c8cc88c88888c8d4c0dc01088c8c8894cd4c0fc02454cd4c1294cd4c128cc108cdc0802a8019980780328038826099ab9c4911373656c6c6572206d75737420626520706169640004b15335304a3304250033300f00b5007104c13357389201176d61726b657420666565206d75737420626520706169640004b104b15335304a332235301500222222222225335350273335530181200133501a225335350290022100310015028253353057333573466e3c0300041641604d40a8004540a400c84164415d401c01841304cd5ce2491c6d757374206265207369676e6564206279207468652073656c6c65720004b153353047333573466e2540052080897a04904814820225e8540044cdc1800a41900226a601400244004640026aa0824422444a66a6a07c00226a6a00c00644002442666a6a01000a440046008004666aa600e2400200a008002244246600200600424002446a600c0024444444444666aa601a24002446a602c0044446a60360064466a607c0044a66a609e666ae68cdc780a000828828099a82580280388039003a822004990009aa81e9108911299a9a81d000880111099802801199aa980389000802802000910919800801801100091111111110919999999998008058050048040038030028020018011000910919800801801100091109199800802001801100091091980080180110008909118010018891000890008910919800801801090008910919800801801090008910919800801801090008909111801802089110010891100089000909111180200290911118018029091111801002909111180080290009109198008018011000909111111180380411091111111980300480410911111118028040911111100209111111001910911111119801004804110911111119800804804100090911801001911091199800802802001900090911801001909118008019000911109199980080280200180110008910010910009000990009aa805911299a9a8030008806110a99a9806999ab9a3370e600c00400801e01c201e26600a008002640026aa0144466a6a0080029000111a9aa80480111299a9806999ab9a3371e0049110000f00e13007001130060033200135500922335350030014800088d4d54020008894cd4c030ccd5cd19b8f00248810000e00d10011300600311220021221223300100400312001112212330010030021120011220021220012001112323001001223300330020020014891c95a54ef67fe3e962e3f40fe80c087749b4801670e4cf118b930f671b00010481d8799f581c0c88ba122b220ad19904257edb0865849dd65101a59fbb938c6165061a17d78400581c3f5265ef14f89e948fd5b5f55419712ad1f0dd4d75ab26be134441714e4672656547686f73743031333034ff0581840001d8799fff821a006acfc01ab2d05e00f5f6 const transactionBody = "a500828258201e968873fd9b0e6fdedcc0bedb820f52797d8c624888a8456e3f1481ecb498080082582090932bad97fe5f76fe0d2d7a021f722359d8ea598a5e9b3312870f488fb1321b01018482583900ae0632f3ef54ba8b5c091a51538ea455abf4964daad14fb11c095adde2ae76c413c16de4c36978df59d47d884a3837347bbbcef28762a5c11a3d324d6982583900ae0632f3ef54ba8b5c091a51538ea455abf4964daad14fb11c095adde2ae76c413c16de4c36978df59d47d884a3837347bbbcef28762a5c1821a001a4ec4a1581c3f5265ef14f89e948fd5b5f55419712ad1f0dd4d75ab26be13444171a14e4672656547686f7374303133303401825839000c88ba122b220ad19904257edb0865849dd65101a59fbb938c6165061359e32ed7a7cacd646c755d9b93f04da50206d1831708f22ee2e08e1a179a7b008258390095a54ef67fe3e962e3f40fe80c087749b4801670e4cf118b930f671bd01d85c8a4a620082ff4be3f60f6f1560a4130c9202480495f07efde1a003d0900021a00030d400b58205f829f96d1cf672d5c3207202cbdc3a8f55d59975454fd5fabbc7384b6145e420d81825820cf7a63bf953d5b7b526e8feda05ba4d26fd584e7aaa431394406cded058e085f00"; jest .spyOn(TransactionBuilder, "buildTransactionBody") .mockResolvedValueOnce({ encoded: transactionBody, length: transactionBody.length, }); const transactionWitness = "a40081825820e2ed6a33cc9bf109fef8dd6eac572bef6add89fc32ae0e87acefc6b738a0d6be58404b55266bce329c9d281c0e9e38e53cf96433a85dc06f1e7089e33a7c277ce3c5028b3f8c44771730bb8c38d47495264850fcaa84cf760ec3b47427d4b11af50d0381590cba590cb7010000332333222332233223322323233322232333222323333333322222222323332223233332222323233223233322232333222323233223322323233333222223322332233223322332233222232323232232232325335303633300b3333573466e1cd55cea804a4000466660a46eb8d5d0a8049bad35742a0106eb8d5d0a8039bae357426ae89401c8d4130d4c134cd5ce2481035054310004e499263333573466e1d40112002205423333573466e1d40152000205623504d35304e335738921035054310004f49926498cccd5cd19b8735573aa004900011980719191919191919191919191999ab9a3370e6aae75402920002333333333301c33502a232323333573466e1cd55cea80124000466044607a6ae854008c0bcd5d09aba2500223505c35305d3357389201035054310005e49926135573ca00226ea8004d5d0a80519a8150159aba150093335503175ca0606ae854020ccd540c5d728181aba1500733502a04635742a00c66a05466aa0ae09eeb4d5d0a8029919191999ab9a3370e6aae754009200023350243232323333573466e1cd55cea80124000466a05866a08aeb4d5d0a80118251aba135744a00446a0c06a60c266ae712401035054310006249926135573ca00226ea8004d5d0a8011919191999ab9a3370e6aae7540092000233502a33504575a6ae854008c128d5d09aba250022350603530613357389201035054310006249926135573ca00226ea8004d5d09aba2500223505c35305d3357389201035054310005e49926135573ca00226ea8004d5d0a80219a8153ae35742a00666a05466aa0aeeb88004d5d0a801181e1aba135744a00446a0b06a60b266ae71241035054310005a49926135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135573ca00226ea8004d5d0a8011919191999ab9a3370ea002900311810981f1aba135573ca00646666ae68cdc3a801240084604060906ae84d55cf280211999ab9a3370ea00690011181018199aba135573ca00a46666ae68cdc3a80224000460466eb8d5d09aab9e50062350533530543357389201035054310005549926499264984d55cea80089baa001357426ae8940088d4130d4c134cd5ce249035054310004e49926104d13504b35304c3357389201035054350004d4984d55cf280089baa001135573a6ea80044d5d1280089aba25001135573ca00226ea80048848cc00400c0088004888888888848cccccccccc00402c02802402001c01801401000c00880048848cc00400c008800448848cc00400c0084800448848cc00400c0084800448848cc00400c00848004848888c010014848888c00c014848888c008014848888c004014800448c88c008dd6000990009aa81c911999aab9f0012500e233500d30043574200460066ae880080cc8c8c8c8cccd5cd19b8735573aa006900011998039919191999ab9a3370e6aae754009200023300d303135742a00466a02605a6ae84d5d1280111a81b1a981b99ab9c491035054310003849926135573ca00226ea8004d5d0a801999aa805bae500a35742a00466a01eeb8d5d09aba25002235032353033335738921035054310003449926135744a00226aae7940044dd50009110919980080200180110009109198008018011000899aa800bae75a224464460046eac004c8004d540cc88c8cccd55cf80112804919a80419aa81898031aab9d5002300535573ca00460086ae8800c0b84d5d08008891001091091198008020018900089119191999ab9a3370ea002900011a80418029aba135573ca00646666ae68cdc3a801240044a01046a0526a605466ae712401035054310002b499264984d55cea80089baa001121223002003112200112001232323333573466e1cd55cea8012400046600c600e6ae854008dd69aba135744a00446a0466a604866ae71241035054310002549926135573ca00226ea80048848cc00400c00880048c8cccd5cd19b8735573aa002900011bae357426aae7940088d407cd4c080cd5ce24810350543100021499261375400224464646666ae68cdc3a800a40084a00e46666ae68cdc3a8012400446a014600c6ae84d55cf280211999ab9a3370ea00690001280511a8111a981199ab9c490103505431000244992649926135573aa00226ea8004484888c00c0104488800844888004480048c8cccd5cd19b8750014800880188cccd5cd19b8750024800080188d4068d4c06ccd5ce249035054310001c499264984d55ce9baa0011220021220012001232323232323333573466e1d4005200c200b23333573466e1d4009200a200d23333573466e1d400d200823300b375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c46601a6eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc048c050d5d0a8049bae357426ae8940248cccd5cd19b875006480088c050c054d5d09aab9e500b23333573466e1d401d2000230133016357426aae7940308d407cd4c080cd5ce2481035054310002149926499264992649926135573aa00826aae79400c4d55cf280109aab9e500113754002424444444600e01044244444446600c012010424444444600a010244444440082444444400644244444446600401201044244444446600201201040024646464646666ae68cdc3a800a400446660106eb4d5d0a8021bad35742a0066eb4d5d09aba2500323333573466e1d400920002300a300b357426aae7940188d4040d4c044cd5ce2490350543100012499264984d55cea80189aba25001135573ca00226ea80048488c00800c888488ccc00401401000c80048c8c8cccd5cd19b875001480088c018dd71aba135573ca00646666ae68cdc3a80124000460106eb8d5d09aab9e500423500a35300b3357389201035054310000c499264984d55cea80089baa001212230020032122300100320011122232323333573466e1cd55cea80124000466aa016600c6ae854008c014d5d09aba25002235007353008335738921035054310000949926135573ca00226ea8004498480048004448848cc00400c008448004888848cccc00401401000c00880044880084880048004448c8c00400488cc00cc008008004cc8ccc888cc88ccc888c8c8c8ccc888cc88ccc888ccc888cccccccc88888888cc88ccccc88888cccc8888cc88cc88cc88ccc888cc88cc88cc88cc88cc88c8c8cc88c88888c8d4c0dc01088c8c8894cd4c0fc02454cd4c1294cd4c128cc108cdc0802a8019980780328038826099ab9c4911373656c6c6572206d75737420626520706169640004b15335304a3304250033300f00b5007104c13357389201176d61726b657420666565206d75737420626520706169640004b104b15335304a332235301500222222222225335350273335530181200133501a225335350290022100310015028253353057333573466e3c0300041641604d40a8004540a400c84164415d401c01841304cd5ce2491c6d757374206265207369676e6564206279207468652073656c6c65720004b153353047333573466e2540052080897a04904814820225e8540044cdc1800a41900226a601400244004640026aa0824422444a66a6a07c00226a6a00c00644002442666a6a01000a440046008004666aa600e2400200a008002244246600200600424002446a600c0024444444444666aa601a24002446a602c0044446a60360064466a607c0044a66a609e666ae68cdc780a000828828099a82580280388039003a822004990009aa81e9108911299a9a81d000880111099802801199aa980389000802802000910919800801801100091111111110919999999998008058050048040038030028020018011000910919800801801100091109199800802001801100091091980080180110008909118010018891000890008910919800801801090008910919800801801090008910919800801801090008909111801802089110010891100089000909111180200290911118018029091111801002909111180080290009109198008018011000909111111180380411091111111980300480410911111118028040911111100209111111001910911111119801004804110911111119800804804100090911801001911091199800802802001900090911801001909118008019000911109199980080280200180110008910010910009000990009aa805911299a9a8030008806110a99a9806999ab9a3370e600c00400801e01c201e26600a008002640026aa0144466a6a0080029000111a9aa80480111299a9806999ab9a3371e0049110000f00e13007001130060033200135500922335350030014800088d4d54020008894cd4c030ccd5cd19b8f00248810000e00d10011300600311220021221223300100400312001112212330010030021120011220021220012001112323001001223300330020020014891c95a54ef67fe3e962e3f40fe80c087749b4801670e4cf118b930f671b00010481d8799f581c0c88ba122b220ad19904257edb0865849dd65101a59fbb938c6165061a17d78400581c3f5265ef14f89e948fd5b5f55419712ad1f0dd4d75ab26be134441714e4672656547686f73743031333034ff0581840001d8799fff821a006acfc01ab2d05e00"; jest .spyOn(TransactionBuilder, "buildTransactionWitness") .mockReturnValueOnce(transactionWitness); const fee = await TransactionBuilder.calculateFee( { inputsUtxo: [], requiredInputs: {}, requiredOutputs: {}, }, { script: buyScript, }, { minFeeA: 44, minFeeB: 155381, priceMem: 0.0577, priceStep: 0.0000721, scriptCpuUnits: 4000000000, scriptMemUnits: 2000000, } ); expect(fee).toBe(1212061); }); }); });