@@ -67,7 +67,6 @@ export default async function deployWallet(
67
67
if ( issuerToPetname . has ( issuer ) ) {
68
68
return issuerToPetname . get ( issuer ) ;
69
69
}
70
- console . log ( 'setting petname of' , issuer , 'to' , issuerPetname ) ;
71
70
issuerToPetname . set ( issuer , issuerPetname ) ;
72
71
await E ( wallet ) . addIssuer ( issuerPetname , issuer ) ;
73
72
return issuerToPetname . get ( issuer ) ;
@@ -78,27 +77,40 @@ export default async function deployWallet(
78
77
paymentInfo . map ( async ( { pursePetname, issuer, payment, purse } ) => {
79
78
const issuerPetname = issuerToPetname . get ( issuer ) ;
80
79
80
+ let paymentP ;
81
+
82
+ if ( ! payment && purse ) {
83
+ // Withdraw the payment from the purse.
84
+ paymentP = E ( purse )
85
+ . getCurrentAmount ( )
86
+ . then ( amount => E ( purse ) . withdraw ( amount ) ) ;
87
+ } else {
88
+ paymentP = E ( issuer ) . isLive ( payment ) . then ( isLive => isLive && payment ) ;
89
+ }
90
+
91
+ payment = await paymentP ;
92
+ if ( ! payment ) {
93
+ return ;
94
+ }
95
+ const amount = await E ( issuer ) . getAmountOf ( payment ) ;
96
+
97
+ // TODO: Use AmountMath.
98
+ const isEmpty = amount . value === 0 || ( Array . isArray ( amount . value ) && ! amount . value . length ) ;
99
+ if ( isEmpty ) {
100
+ return ;
101
+ }
81
102
if ( ! issuerToPursePetnameP . has ( issuer ) ) {
82
103
issuerToPursePetnameP . set (
83
104
issuer ,
84
105
E ( wallet )
85
106
. makeEmptyPurse ( issuerPetname , pursePetname )
86
- . then ( _ => pursePetname ) ,
107
+ . then ( _ => pursePetname , _ => pursePetname ) ,
87
108
) ;
88
109
}
89
110
pursePetname = await issuerToPursePetnameP . get ( issuer ) ;
90
111
91
- let paymentP = payment ;
92
- if ( ! paymentP ) {
93
- // Withdraw the payment from the purse.
94
- paymentP = E ( purse )
95
- . getCurrentAmount ( )
96
- . then ( amount => E ( purse ) . withdraw ( amount ) ) ;
97
- }
98
-
99
112
// Deposit payment.
100
- const p = await paymentP ;
101
- await E ( wallet ) . deposit ( pursePetname , p ) ;
113
+ await E ( wallet ) . deposit ( pursePetname , payment ) ;
102
114
} ) ,
103
115
) ;
104
116
@@ -108,5 +120,5 @@ export default async function deployWallet(
108
120
await E ( http ) . registerWallet ( wallet , walletURLHandler , bridgeURLHandler ) ;
109
121
await E ( walletVat ) . setHTTPObject ( http ) ;
110
122
await E ( walletVat ) . setPresences ( ) ;
111
- console . log ( 'Deployed @agoric/wallet-frontend !' ) ;
123
+ console . log ( 'Deployed Wallet !' ) ;
112
124
}
0 commit comments