Skip to content

Instantly share code, notes, and snippets.

@EthereumWorks
Created August 27, 2017 12:49
Show Gist options
  • Save EthereumWorks/4dac0502a300470828d4aad8b85a6eaf to your computer and use it in GitHub Desktop.
Save EthereumWorks/4dac0502a300470828d4aad8b85a6eaf to your computer and use it in GitHub Desktop.
pragma solidity ^0.4.2;
// расчеты между контрагентами
contract order {
address buyer; // покупатер
address seller; // продавец
address deliver; // страховая компания
uint itemId; // код товара
uint amount; // стоимость
string deliveryAddress; // адрес доставки
bool delivered; // флаг доставки
uint deadline; // крайний срок доставки
// заказ товара
function order ( uint _itemId, string _deliveryAddress ) payable {
buyer = msg.sender;
amount = msg.value;
itemId = _itemId;
deliveryAddress = _deliveryAddress;
delivered = false;
}
// подтверждение заказа
function confirmOrder (address _deliver, uint _deliveryPeriod) {
deliver = _deliver;
deadline = now + _deliveryPeriod * 1 days;
}
// подтверждение доставки компанией доставщиком
function deliverySign(){
require (msg.sender == deliver);
delivered = true;
seller.transfer( amount ); // деньги уходят продавцу
}
// возврат денег заказчику, если товар не доставлен вовремя
function refund() {
require ( msg.sender == buyer );// вызывает заказчик
require ( now > deadline ); // время истекло
require ( !delivered ); // товар не доставлен
buyer.transfer( amount ); // деньги возвращаются покупателю
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment