diff --git a/src/pages/confirm-create-reserve.tsx b/src/pages/confirm-create-reserve.tsx index 44dd60d95..6617ed6c3 100644 --- a/src/pages/confirm-create-reserve.tsx +++ b/src/pages/confirm-create-reserve.tsx @@ -325,11 +325,25 @@ class ExchangeSelection extends ImplicitStateComponent { throw Error("empty response"); } // FIXME: filter out types that bank/exchange don't have in common - let wire_details = rci.wireInfo; + let wireDetails = rci.wireInfo; + let filteredWireDetails: any = {}; + for (let wireType in wireDetails) { + if (this.props.wt_types.findIndex((x) => x.toLowerCase() == wireType.toLowerCase()) < 0) { + continue; + } + let obj = Object.assign({}, wireDetails[wireType]); + // The bank doesn't need to know about fees + delete obj.fees; + // Consequently the bank can't verify signatures anyway, so + // we delete this extra data, to make the request URL shorter. + delete obj.salt; + delete obj.sig; + filteredWireDetails[wireType] = obj; + } if (!rawResp.error) { const resp = CreateReserveResponse.checked(rawResp); let q: {[name: string]: string|number} = { - wire_details: JSON.stringify(wire_details), + wire_details: JSON.stringify(filteredWireDetails), exchange: resp.exchange, reserve_pub: resp.reservePub, amount_value: amount.value, diff --git a/src/types.ts b/src/types.ts index f28cdb411..679c60502 100644 --- a/src/types.ts +++ b/src/types.ts @@ -489,6 +489,12 @@ export class Contract { @Checkable.String fulfillment_url: string; + @Checkable.Number + wire_fee_amortization: number; + + @Checkable.Value(AmountJson) + max_wire_fee: AmountJson; + @Checkable.Any extra: any; diff --git a/web-common b/web-common index caf5a9811..fd80260fc 160000 --- a/web-common +++ b/web-common @@ -1 +1 @@ -Subproject commit caf5a98114402d057ba08b14279eb8e46481a02c +Subproject commit fd80260fce96df674111f9100fa2d91c83a9a3bc