@@ -804,152 +804,55 @@ func (f *FSM) FetchSignPushSweeplessSweepTxAction(ctx context.Context,
804804 f .Warnf ("unable to decode sweep address: %v" , err )
805805 }
806806
807- // Standard fee.
808- feeRate := chainfee .SatPerKWeight (fetchResp .StandardFeeInfo .FeeRate )
809- serverNonces , err := toNonces (fetchResp .StandardFeeInfo .Nonces )
810- if err != nil {
811- err = fmt .Errorf ("unable to convert server nonces: %w" , err )
812-
813- return f .HandleError (err )
814- }
815-
816- // High fee.
817- highFeeRate := chainfee .SatPerKWeight (fetchResp .HighFeeInfo .FeeRate )
818- serverHighFeeNonces , err := toNonces (fetchResp .HighFeeInfo .Nonces )
819- if err != nil {
820- err = fmt .Errorf ("unable to convert high fee server " +
821- "nonces: %w" , err )
822-
823- return f .HandleError (err )
824- }
825-
826- // Extremely high fee.
827- extremeFeeRate := chainfee .SatPerKWeight (
828- fetchResp .ExtremeFeeInfo .FeeRate ,
829- )
830- serverExtremeNonces , err := toNonces (
831- fetchResp .ExtremeFeeInfo .Nonces ,
832- )
833- if err != nil {
834- err = fmt .Errorf ("unable to convert extremely high fee " +
835- "server nonces: %w" , err )
836-
837- return f .HandleError (err )
838- }
839-
840- // Standard sessions.
841- sessions , nonces , err := f .loopIn .createMusig2Sessions (
842- ctx , f .cfg .Signer ,
843- )
844- if err != nil {
845- return f .HandleError (err )
846- }
847- clientNonces , err := toNonces (nonces )
848- if err != nil {
849- return f .HandleError (err )
850- }
851-
852- // High fee sessions.
853- highFeeSessions , highFeeClientNonces , err :=
854- f .loopIn .createMusig2Sessions (ctx , f .cfg .Signer )
855-
856- if err != nil {
857- return f .HandleError (err )
858- }
859- highClientNonces , err := toNonces (highFeeClientNonces )
860- if err != nil {
861- return f .HandleError (err )
862- }
863-
864- // Extremely high sessions.
865- extremeSessions , extremeClientNonces , err :=
866- f .loopIn .createMusig2Sessions (ctx , f .cfg .Signer )
867-
868- if err != nil {
869- return f .HandleError (err )
870- }
871- extremelyHighClientNonces , err := toNonces (extremeClientNonces )
872- if err != nil {
873- return f .HandleError (err )
874- }
875-
876- // Create standard fee.
877- sweepTx , err := f .loopIn .createSweeplessSweepTx (address , feeRate )
878- if err != nil {
879- err = fmt .Errorf ("unable to create sweepless sweep tx: %w" , err )
880- return f .HandleError (err )
881- }
882-
883- // Create high fee.
884- highFeeSweepTx , err := f .loopIn .createSweeplessSweepTx (
885- address , highFeeRate ,
886- )
887- if err != nil {
888- err = fmt .Errorf ("unable to create high fee sweepless sweep " +
889- "tx: %w" , err )
807+ clientResponse := make (map [uint64 ]* looprpc.ClientSweeplessSigningInfo )
890808
891- return f .HandleError (err )
892- }
893-
894- // Create extremely high fee.
895- extremelyHighFeeSweepTx , err := f .loopIn .createSweeplessSweepTx (
896- address , extremeFeeRate ,
897- )
898- if err != nil {
899- err = fmt .Errorf ("unable to create extremely high fee " +
900- "sweepless sweep tx: %w" , err )
901-
902- return f .HandleError (err )
903- }
904-
905- // Sign standard.
906- sweeplessClientSigs , err := f .loopIn .signMusig2Tx (
907- ctx , sweepTx , f .cfg .Signer , sessions , serverNonces ,
908- )
909- if err != nil {
910- err = fmt .Errorf ("unable to sign sweepless sweep tx: %w" , err )
911- return f .HandleError (err )
912- }
913-
914- // Sign high fee.
915- highFeeSigs , err := f .loopIn .signMusig2Tx (
916- ctx , highFeeSweepTx , f .cfg .Signer , highFeeSessions ,
917- serverHighFeeNonces ,
918- )
919- if err != nil {
920- err = fmt .Errorf ("unable to sign high fee sweepless sweep " +
921- "tx: %w" , err )
809+ for feerate , nonces := range fetchResp .Nonces {
810+ satPerKW := chainfee .SatPerKWeight (feerate )
811+ serverNonces , err := toNonces (nonces .Nonces )
812+ if err != nil {
813+ err = fmt .Errorf ("unable to convert server nonces: %w" ,
814+ err )
815+ return f .HandleError (err )
816+ }
817+ sessions , nonces , err := f .loopIn .createMusig2Sessions (
818+ ctx , f .cfg .Signer ,
819+ )
820+ if err != nil {
821+ return f .HandleError (err )
822+ }
823+ clientNonces , err := toNonces (nonces )
824+ if err != nil {
825+ return f .HandleError (err )
826+ }
922827
923- return f .HandleError (err )
924- }
828+ sweepTx , err := f .loopIn .createSweeplessSweepTx (
829+ address , satPerKW ,
830+ )
831+ if err != nil {
832+ err = fmt .Errorf ("unable to create sweepless sweep " +
833+ "tx: %w" , err )
834+ return f .HandleError (err )
835+ }
925836
926- // Sign extremely high fee.
927- extremelyHighSigs , err := f . loopIn . signMusig2Tx (
928- ctx , extremelyHighFeeSweepTx , f . cfg . Signer , extremeSessions ,
929- serverExtremeNonces ,
930- )
931- if err != nil {
932- err = fmt . Errorf ( "unable to sign extremely high fee " +
933- "sweepless sweep tx: %w" , err )
837+ sweeplessClientSigs , err := f . loopIn . signMusig2Tx (
838+ ctx , sweepTx , f . cfg . Signer , sessions , serverNonces ,
839+ )
840+ if err != nil {
841+ err = fmt . Errorf ( "unable to sign sweepless sweep tx: " +
842+ "%w" , err )
843+ return f . HandleError ( err )
844+ }
934845
935- return f .HandleError (err )
846+ clientResponse [feerate ] = & looprpc.ClientSweeplessSigningInfo {
847+ Nonces : fromNonces (clientNonces ),
848+ Sigs : sweeplessClientSigs ,
849+ }
936850 }
937851
938852 // Push sweepless sigs to the server.
939853 req := & looprpc.PushStaticAddressSweeplessSigsRequest {
940- SwapHash : f .loopIn .SwapHash [:],
941- StandardSigningInfo : & looprpc.ClientSweeplessSigningInfo {
942- Nonces : fromNonces (clientNonces ),
943- Sigs : sweeplessClientSigs ,
944- },
945- HighFeeSigningInfo : & looprpc.ClientSweeplessSigningInfo {
946- Nonces : fromNonces (highClientNonces ),
947- Sigs : highFeeSigs ,
948- },
949- ExtremeFeeSigningInfo : & looprpc.ClientSweeplessSigningInfo {
950- Nonces : fromNonces (extremelyHighClientNonces ),
951- Sigs : extremelyHighSigs ,
952- },
854+ SwapHash : f .loopIn .SwapHash [:],
855+ SigningInfos : clientResponse ,
953856 }
954857 _ , err = f .cfg .Server .PushStaticAddressSweeplessSigs (ctx , req )
955858 if err != nil {
0 commit comments