removing the bank Website
This commit is contained in:
parent
ab73adebf9
commit
bdde6093d5
@ -1,3 +0,0 @@
|
||||
This directory is the root of the "demo" bank website. The
|
||||
page being served simulates what a real bank does when transferring
|
||||
funds to some mint via SEPA.
|
@ -1,91 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Fake Wire Transfer</title>
|
||||
<script>
|
||||
/*
|
||||
@licstart The following is the entire license notice for the
|
||||
JavaScript code in this page.
|
||||
|
||||
Copyright (C) 2014,2015 GNUnet e.V.
|
||||
|
||||
The JavaScript code in this page is free software: you can
|
||||
redistribute it and/or modify it under the terms of the GNU
|
||||
Lesser General Public License (GNU LGPL) as published by the Free Software
|
||||
Foundation, either version 2.1 of the License, or (at your option)
|
||||
any later version. The code is distributed WITHOUT ANY WARRANTY;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU LGPL for more details.
|
||||
|
||||
As additional permission under GNU LGPL version 2.1 section 7, you
|
||||
may distribute non-source (e.g., minimized or compacted) forms of
|
||||
that code without the copy of the GNU LGPL normally required by
|
||||
section 4, provided you include this license notice and a URL
|
||||
through which recipients can access the Corresponding Source.
|
||||
|
||||
@licend The above is the entire license notice
|
||||
for the JavaScript code in this page.
|
||||
*/
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<!--
|
||||
This page's main aim is to forward the fake wire transfer
|
||||
request to the demonstrator and to inform the customer
|
||||
about the result. In a real-world deployment, this
|
||||
page would not be required as the customer would do a
|
||||
wire transfer with his bank instead.
|
||||
-->
|
||||
<?php
|
||||
|
||||
// Evaluate form
|
||||
$reserve_pk = $_POST['reserve_pk'];
|
||||
$kudos_amount = $_POST['kudos_amount'];
|
||||
$mint = $_POST['mint_rcv'];
|
||||
// check if the webform has given a well formed amount
|
||||
$ret = preg_match ('/[0-9]+(\.[0-9][0-9]?)? [A-Z]+/', $kudos_amount, $matches);
|
||||
if ($matches[0] != $_POST['kudos_amount'])
|
||||
{
|
||||
http_response_code(400); // BAD REQUEST
|
||||
echo "Malformed amount given";
|
||||
return;
|
||||
}
|
||||
$amount_chunks = preg_split('/[ \.]/', $_POST['kudos_amount']);
|
||||
$amount_fraction = 0;
|
||||
if (count($amount_chunks) > 2)
|
||||
$amount_fraction = (double) ("0." . $amount_chunks[1]);
|
||||
$amount_fraction = $amount_fraction * 1000000;
|
||||
// pack the JSON
|
||||
$json = json_encode (array ('reserve_pub' => $reserve_pk,
|
||||
'execution_date' => "/Date(" . time() . ")/",
|
||||
'wire' => array ('type' => 'test'),
|
||||
'amount' => array ('value' => intval($amount_chunks[0]),
|
||||
'fraction' => $amount_fraction,
|
||||
'currency' => $amount_chunks[count($amount_chunks) - 1])));
|
||||
|
||||
// craft the HTTP request
|
||||
$req = new http\Client\Request ("POST",
|
||||
"http://" . $mint . "/admin/add/incoming",
|
||||
array ("Content-Type" => "application/json"));
|
||||
$req->getBody()->append ($json);
|
||||
|
||||
// execute HTTP request
|
||||
$client = new http\Client;
|
||||
$client->enqueue($req)->send ();
|
||||
$resp = $client->getResponse ();
|
||||
|
||||
// evaluate response
|
||||
$status_code = $resp->getResponseCode ();
|
||||
http_response_code ($status_code);
|
||||
|
||||
if ($status_code != 200)
|
||||
{
|
||||
echo "Error $status_code when faking the wire transfer. Please report to taler@gnu.org";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Pretend wire transfer successful. Exit through the <a href=\"http://shop.demo.taler.net\">gift shop</a> and enjoy shopping!";
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
</html>
|
@ -1,115 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Taler's "demo" bank</title>
|
||||
<link rel="stylesheet" type="text/css" href="style.css">
|
||||
<script>
|
||||
/*
|
||||
@licstart The following is the entire license notice for the
|
||||
JavaScript code in this page.
|
||||
|
||||
Copyright (C) 2015 GNUnet e.V.
|
||||
|
||||
The JavaScript code in this page is free software: you can
|
||||
redistribute it and/or modify it under the terms of the GNU
|
||||
Lesser General Public License (GNU LGPL) as published by the Free Software
|
||||
Foundation, either version 2.1 of the License, or (at your option)
|
||||
any later version. The code is distributed WITHOUT ANY WARRANTY;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU LGPL for more details.
|
||||
|
||||
As additional permission under GNU LGPL version 2.1 section 7, you
|
||||
may distribute non-source (e.g., minimized or compacted) forms of
|
||||
that code without the copy of the GNU LGPL normally required by
|
||||
section 4, provided you include this license notice and a URL
|
||||
through which recipients can access the Corresponding Source.
|
||||
|
||||
@licend The above is the entire license notice
|
||||
for the JavaScript code in this page.
|
||||
*/
|
||||
</script>
|
||||
</head>
|
||||
<body id="css-zen-garden" onload="signal_me()">
|
||||
<div class="explanation" id="zen-explanation" role="article">
|
||||
<h1>Welcome to the KUDOS bank!</h1>
|
||||
<p>Through this page, you can wire funds to our demonstrator mint
|
||||
in order to create your reserves from where withdraw your coins.
|
||||
Once the reserve is created, the withdrawing of coins will be
|
||||
entirely handled by the wallet, with no intervention required
|
||||
to the user.
|
||||
</p>
|
||||
<p>
|
||||
Enter the deisired amount, and click 'Select mint'. Your wallet
|
||||
will make you choose a mint and will automatically submit all the
|
||||
needed data into the bank's system. At the end of the withdrawal,
|
||||
the wallet will show you the 'All coins withdrawn' nice message.
|
||||
</p>
|
||||
|
||||
<p>Still missing a wallet? <a href="http://demo.taler.net/extension">Install one!</a>
|
||||
</p>
|
||||
</div>
|
||||
<form id="reserve-form" name="tform" action="/fake_wire_transfer.php" method="POST">
|
||||
<input type="text" id="reserve-pk-input" name="reserve_pk" hidden></input>
|
||||
Amount to withdraw:
|
||||
<select id="reserve-amn-id" name="kudos_amount">
|
||||
<option value="1 KUDOS">1 KUDOS</option>
|
||||
<option value="2 KUDOS">2 KUDOS</option>
|
||||
<option value="3.01 KUDOS">3.01 KUDOS</option>
|
||||
<option value="5 KUDOS">5 KUDOS</option>
|
||||
<option value="10 KUDOS">10 KUDOS</option>
|
||||
<option value="10.50 KUDOS">10.50 KUDOS</option>
|
||||
<option value="1000.3 KUDOS">1000.3 KUDOS</option>
|
||||
</select>
|
||||
<input type="text" name="mint_rcv" id="kudos-mint" hidden></input>
|
||||
<input id="select-mint"
|
||||
type="button"
|
||||
value="Select mint"
|
||||
onclick="wire_funds()"
|
||||
disabled></input>
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
|
||||
document.body.addEventListener("taler-wallet-present",
|
||||
has_taler_wallet_cb,
|
||||
false);
|
||||
|
||||
document.body.addEventListener("taler-unload",
|
||||
no_taler_wallet_cb,
|
||||
false);
|
||||
|
||||
document.body.addEventListener("taler-load",
|
||||
signal_me,
|
||||
false);
|
||||
|
||||
function wire_funds(){
|
||||
var wallet_param = {
|
||||
form_id : 'reserve-form',
|
||||
input_amount : 'reserve-amn-id',
|
||||
input_pub : 'reserve-pk-input',
|
||||
mint_rcv : 'kudos-mint'
|
||||
//'base_url' : window.location.host not anymore: must be given by the mint
|
||||
};
|
||||
var trigger = new CustomEvent("taler-create-reserve", {detail: wallet_param});
|
||||
document.body.dispatchEvent(trigger);
|
||||
};
|
||||
|
||||
/* The mint signals itself to the wallet */
|
||||
function signal_me(){
|
||||
var eve = new Event('taler-checkout-probe');
|
||||
document.body.dispatchEvent(eve);
|
||||
};
|
||||
|
||||
function has_taler_wallet_cb(){
|
||||
var button = document.getElementById("select-mint");
|
||||
button.removeAttribute("disabled");
|
||||
}
|
||||
|
||||
function no_taler_wallet_cb(){
|
||||
var button = document.getElementById("select-mint");
|
||||
button.setAttribute("disabled", "true");
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -1,328 +0,0 @@
|
||||
/* css Zen Garden submission 020 - 'Friendly Beaches' by Sophie G - www.sophie-g.net */
|
||||
/* css released under Creative Commons ShareAlike License v1.0 - http://creativecommons.org/licenses/sa/1.0/ */
|
||||
/* All associated graphics copyright 2003, Sophie G */
|
||||
|
||||
|
||||
/* IMPORTANT */
|
||||
/* This design is not a template. You may not reproduce it elsewhere without the designer's written permission. */
|
||||
/* The CSS itself may freely be used for anything you wish, but the associated graphics belong to the designer. */
|
||||
/* What you may use - .css files. What you may not use - .jpg, .gif, and .png files. */
|
||||
|
||||
|
||||
|
||||
body {
|
||||
background-color: #FFFFFF;
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
font-family: Ubuntu, Tahoma, Sans;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 180%;
|
||||
}
|
||||
.page-wrapper {
|
||||
background-color: #EDEEF0;
|
||||
border: 1px solid #DAD5D9;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
abbr {
|
||||
border-bottom: 1px #6BA0D2 dashed;
|
||||
}
|
||||
header,h1 {
|
||||
font-family: Impact, Georgia, serif;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
header h1 {
|
||||
height: 190px;
|
||||
margin: 0px;
|
||||
background-color: black;
|
||||
background-image: url(Gala.jpg);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
header h1, header h2 {
|
||||
text-indent: 100%;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
header h2 {
|
||||
background-color: #EDEEF0;
|
||||
margin: 0px;
|
||||
height: 24px;
|
||||
padding: 0px 14px 2px 14px;
|
||||
background-image: url(headerh2.gif);
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
header h2 abbr {
|
||||
color: #FFF;
|
||||
border-bottom: 1px #FFF dashed;
|
||||
}
|
||||
.summary p:first-child {
|
||||
position: absolute;
|
||||
right: 21px;
|
||||
top: 21px;
|
||||
width: 12em;
|
||||
height: 165px;
|
||||
padding: 3px 0 0 0;
|
||||
margin: 0px;
|
||||
border: 1px solid #0C2953;
|
||||
text-align: center;
|
||||
font-size: 90%;
|
||||
font-family: Impact, Georgia, serif;
|
||||
line-height: 110%;
|
||||
color: #FFF;
|
||||
background-image: url(summary.jpg);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 100%;
|
||||
background-color: #0C2953;
|
||||
}
|
||||
.preamble {
|
||||
padding: 0px 15em 0px 3em;
|
||||
}
|
||||
.preamble h3 {
|
||||
margin: 15px 0px 0px 0px;
|
||||
padding: 6px 20px 2px 6px;
|
||||
text-align: left;
|
||||
font-size: 180%;
|
||||
font-variant: small-caps;
|
||||
color: #6BA0D2;
|
||||
background-image: url(bordDroitPreambleh3.gif);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 100% 0px;
|
||||
background-color: #F6F7F7;
|
||||
}
|
||||
.preamble h3::before {
|
||||
content: " ";
|
||||
display: inline-block;
|
||||
padding: 35px 0px 30px 48px;
|
||||
background-image: url(preambleShell.jpg);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0px 50%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.preamble p {
|
||||
text-align: justify;
|
||||
}
|
||||
.preamble p:nth-child(2), .preamble p:nth-child(3) {
|
||||
margin: 0px;
|
||||
padding: 10px 20px 2px 6px;
|
||||
background-image: url(bordDroitPreamble.gif);
|
||||
background-repeat: repeat-y;
|
||||
background-position: 100% 0px;
|
||||
background-color: #F6F7F7;
|
||||
}
|
||||
.preamble p:nth-child(4) {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
background-image: url(bordBasPreamble.gif);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 100% 100%;
|
||||
background-color: #F6F7F7;
|
||||
padding: 10px 20px 20px 6px;
|
||||
}
|
||||
.preamble p:nth-child(4)::after {
|
||||
content: " ";
|
||||
display: block;
|
||||
margin: 0px;
|
||||
padding: 0 20px 0 6px;
|
||||
background-image: url(bordBasPreambleGauche.gif);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0% 100%;
|
||||
}
|
||||
.supporting {
|
||||
margin: 0px;
|
||||
padding: 10px 16em 0px 1em;
|
||||
font-size: 90%;
|
||||
}
|
||||
.explanation, .participation, .benefits, .requirements {
|
||||
border: 2px solid #FFF;
|
||||
padding: 0px;
|
||||
}
|
||||
.explanation {
|
||||
margin: 0px 0px 10px 0px;
|
||||
}
|
||||
.participation {
|
||||
margin: 0px 0px 10px 0px;
|
||||
float: left;
|
||||
width: 30%;
|
||||
}
|
||||
.benefits {
|
||||
margin: 0px 0px 10px 32%;
|
||||
}
|
||||
.requirements {
|
||||
margin: 0px 0px 10px 32%;
|
||||
}
|
||||
.supporting h3 {
|
||||
margin: 0px;
|
||||
padding: 5px 30px 1px 2px;
|
||||
text-align: left;
|
||||
font-size: 120%;
|
||||
font-variant: small-caps;
|
||||
color: #6BA0D2;
|
||||
border-bottom: 1px solid #6BA0D2;
|
||||
background-color: #F6F7F7;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
.explanation h3 {
|
||||
background-image: url(explanationShell.jpg);
|
||||
}
|
||||
.supporting form {
|
||||
padding: 30px;
|
||||
display: inline-block;
|
||||
clear: both;
|
||||
width: 120em;
|
||||
}
|
||||
.supporting input {
|
||||
margin: 8px;
|
||||
}
|
||||
.participation h3 {
|
||||
background-image: url(participationShell.jpg);
|
||||
}
|
||||
.benefits h3 {
|
||||
background-image: url(benefitsShell.jpg);
|
||||
}
|
||||
.requirements h3 {
|
||||
background-image: url(requirementsRock.jpg);
|
||||
}
|
||||
.supporting p {
|
||||
text-align: justify;
|
||||
margin: 10px 0px 0px 0px;
|
||||
padding: 1px 3px 2px 3px;
|
||||
}
|
||||
.supporting a:link {
|
||||
color: #0083FF;
|
||||
font-weight: bold;
|
||||
}
|
||||
.supporting a:visited {
|
||||
color: #204160;
|
||||
font-weight: bold;
|
||||
}
|
||||
.supporting a:hover, .supporting a:active {
|
||||
color: #8C0000;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
.sidebar, .summary p:last-child {
|
||||
font-size: 90%;
|
||||
font-family: Impact, Georgia, serif;
|
||||
position: absolute;
|
||||
right: 21px;
|
||||
width: 12em;
|
||||
border: 1px solid #0C2953;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
background-color: #A4ACB3;
|
||||
}
|
||||
.summary p:last-child {
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
top: 217px;
|
||||
font-size: 90%;
|
||||
display: block;
|
||||
padding: 3px 0;
|
||||
color: #FFF;
|
||||
}
|
||||
.sidebar {
|
||||
top: 266px;
|
||||
}
|
||||
.sidebar h3 {
|
||||
background-color: #0C2953;
|
||||
color: #FFF;
|
||||
margin: 0px;
|
||||
padding: 30px 1px 1px 1px;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.sidebar h3.select {
|
||||
background-image: url(selecth3.jpg);
|
||||
background-position: 50% 0%;
|
||||
}
|
||||
.sidebar h3.favorites {
|
||||
border-top: 1px solid #0C2953;
|
||||
background-image: url(favoritesh3.jpg);
|
||||
background-position: 40% 100%;
|
||||
}
|
||||
.sidebar h3.archives {
|
||||
border-top: 1px solid #0C2953;
|
||||
background-image: url(archivesh3.jpg);
|
||||
background-position: 40% 100%;
|
||||
}
|
||||
.sidebar h3.resources {
|
||||
border-top: 1px solid #0C2953;
|
||||
background-image: url(resourcesh3.jpg);
|
||||
background-position: 50% 30%;
|
||||
}
|
||||
.sidebar ul {
|
||||
list-style-type: none;
|
||||
font-size: 90%;
|
||||
color: #FFF;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
background-color: #A4ACB3;
|
||||
}
|
||||
.sidebar li {
|
||||
padding: 3px 2px 3px 2px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
.sidebar li:hover {
|
||||
padding: 2px 1px 2px 1px;
|
||||
border: 1px dotted #0C2953;
|
||||
background-color: #6BA0D2;
|
||||
}
|
||||
.summary p:last-child a:link {
|
||||
color: #FFF;
|
||||
font-weight: bold;
|
||||
}
|
||||
.summary p:last-child a:visited {
|
||||
color: #204160;
|
||||
}
|
||||
.summary p:last-child a:hover, .summary p:last-child a:active {
|
||||
color: #FFD800;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
.sidebar a:link, .sidebar a:visited {
|
||||
border-left: 6px solid #FFF;
|
||||
padding-left: 2px;
|
||||
font-weight: bold;
|
||||
color: #FFF;
|
||||
}
|
||||
.sidebar a:visited {
|
||||
color: #204160;
|
||||
}
|
||||
.sidebar a:hover, .sidebar a:active {
|
||||
border-left: 6px solid #FFD800;
|
||||
padding-left: 2px;
|
||||
color: #FFD800;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
}
|
||||
.sidebar a.designer-name:link, .sidebar a.designer-name:visited {
|
||||
border-left: none;
|
||||
padding-left: 0px;
|
||||
font-weight: normal;
|
||||
color: #FFF;
|
||||
}
|
||||
.sidebar a.designer-name:hover, .sidebar a.designer-name:active {
|
||||
border-left: none;
|
||||
padding-left: 0px;
|
||||
color: #FFD800;
|
||||
text-decoration: none;
|
||||
}
|
||||
.sidebar abbr {
|
||||
border-bottom: 1px #FFF dashed;
|
||||
}
|
||||
footer {
|
||||
clear: both;
|
||||
text-align: right;
|
||||
margin: 0px -16em 0px 0px;
|
||||
padding: 25px 0px 0px 0px;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url(signSoph.gif);
|
||||
background-position: 0% 95%;
|
||||
}
|
||||
footer a {
|
||||
font-size: 70%;
|
||||
font-family: Impact, Georgia, serif;
|
||||
}
|
@ -312,6 +312,39 @@ verify_signatures (const struct TALER_MINT_DenomPublicKey *dki,
|
||||
&dki->fee_deposit);
|
||||
dr.merchant = *merchant_pub;
|
||||
dr.coin_pub = *coin_pub;
|
||||
|
||||
char *contract_str = GNUNET_STRINGS_data_to_string_alloc (h_contract,
|
||||
sizeof (struct GNUNET_HashCode));
|
||||
char *wire_str = GNUNET_STRINGS_data_to_string_alloc (h_wire,
|
||||
sizeof (struct GNUNET_HashCode));
|
||||
char *merchant_pub_str = GNUNET_STRINGS_data_to_string_alloc (merchant_pub,
|
||||
sizeof (struct TALER_MerchantPublicKeyP));
|
||||
char *coin_pub_str = GNUNET_STRINGS_data_to_string_alloc (coin_pub,
|
||||
sizeof (struct TALER_CoinSpendPublicKeyP));
|
||||
printf ("verifying:\ncontract [%s]\nwire [%s]\n"
|
||||
"timestamp [%llu]\nrefund deadline [%llu]\n"
|
||||
"transaction id [%llu]\namount [%s %llu.%lu]\n"
|
||||
"fee deposit [%s %llu.%lu]\nmerch pub [%s]\n"
|
||||
"coin pub [%s]\n",
|
||||
contract_str,
|
||||
wire_str,
|
||||
timestamp.abs_value_us,
|
||||
refund_deadline.abs_value_us,
|
||||
transaction_id,
|
||||
amount->currency,
|
||||
amount->value,
|
||||
amount->fraction,
|
||||
dki->fee_deposit.currency,
|
||||
dki->fee_deposit.value,
|
||||
dki->fee_deposit.fraction,
|
||||
merchant_pub_str,
|
||||
coin_pub_str);
|
||||
|
||||
GNUNET_free (contract_str);
|
||||
GNUNET_free (wire_str);
|
||||
GNUNET_free (merchant_pub_str);
|
||||
GNUNET_free (coin_pub_str);
|
||||
|
||||
if (GNUNET_OK !=
|
||||
GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_WALLET_COIN_DEPOSIT,
|
||||
&dr.purpose,
|
||||
|
Loading…
Reference in New Issue
Block a user