ETH Price: $1,996.24 (+2.82%)
 

Overview

ETH Balance

0.14911990855565312 ETH

Eth Value

$297.68 (@ $1,996.24/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set All Contract...56246352018-05-16 17:15:412847 days ago1526490941IN
0x91Eae0f4...e8aFa3C80
0 ETH0.0117777810
Register Contrac...56246192018-05-16 17:11:432847 days ago1526490703IN
0x91Eae0f4...e8aFa3C80
0 ETH0.0005559210
Register Contrac...56246072018-05-16 17:09:162847 days ago1526490556IN
0x91Eae0f4...e8aFa3C80
0 ETH0.0005584810
Destruct One56245182018-05-16 16:41:392847 days ago1526488899IN
0x91Eae0f4...e8aFa3C80
0 ETH0.0001525110
Destruct One56245162018-05-16 16:41:152847 days ago1526488875IN
0x91Eae0f4...e8aFa3C80
0 ETH0.000153910
Set All Contract...55792042018-05-08 18:08:112855 days ago1525802891IN
0x91Eae0f4...e8aFa3C80
0 ETH0.005126684
Register Contrac...55791922018-05-08 18:05:192855 days ago1525802719IN
0x91Eae0f4...e8aFa3C80
0 ETH0.000282364
Register Contrac...55791872018-05-08 18:03:102855 days ago1525802590IN
0x91Eae0f4...e8aFa3C80
0 ETH0.000283394
Register Contrac...55791792018-05-08 17:59:222855 days ago1525802362IN
0x91Eae0f4...e8aFa3C80
0 ETH0.000283134
Register Contrac...55791742018-05-08 17:58:092855 days ago1525802289IN
0x91Eae0f4...e8aFa3C80
0 ETH0.000282364
Register Contrac...55791672018-05-08 17:56:502855 days ago1525802210IN
0x91Eae0f4...e8aFa3C80
0 ETH0.000282884
Register Contrac...55791642018-05-08 17:56:322855 days ago1525802192IN
0x91Eae0f4...e8aFa3C80
0 ETH0.000284924
Register Contrac...55789542018-05-08 17:05:222855 days ago1525799122IN
0x91Eae0f4...e8aFa3C80
0 ETH0.000282884
Register Contrac...55789492018-05-08 17:04:332855 days ago1525799073IN
0x91Eae0f4...e8aFa3C80
0 ETH0.000284164
Register Contrac...55789462018-05-08 17:04:012855 days ago1525799041IN
0x91Eae0f4...e8aFa3C80
0 ETH0.000282114

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer56245182018-05-16 16:41:392847 days ago1526488899
0x91Eae0f4...e8aFa3C80
0.07738662 ETH
Transfer56245162018-05-16 16:41:152847 days ago1526488875
0x91Eae0f4...e8aFa3C80
0.07173328 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FlightDelayController

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-05-08
*/

// File: contracts/FlightDelayConstants.sol

/**
 * FlightDelay with Oraclized Underwriting and Payout
 *
 * @description	Events and Constants
 * @copyright (c) 2017 etherisc GmbH
 * @author Christoph Mussenbrock
 */

pragma solidity ^0.4.11;


contract FlightDelayConstants {

    /*
    * General events
    */

// --> test-mode
//        event LogUint(string _message, uint _uint);
//        event LogUintEth(string _message, uint ethUint);
//        event LogUintTime(string _message, uint timeUint);
//        event LogInt(string _message, int _int);
//        event LogAddress(string _message, address _address);
//        event LogBytes32(string _message, bytes32 hexBytes32);
//        event LogBytes(string _message, bytes hexBytes);
//        event LogBytes32Str(string _message, bytes32 strBytes32);
//        event LogString(string _message, string _string);
//        event LogBool(string _message, bool _bool);
//        event Log(address);
// <-- test-mode

    event LogPolicyApplied(
        uint _policyId,
        address _customer,
        bytes32 strCarrierFlightNumber,
        uint ethPremium
    );
    event LogPolicyAccepted(
        uint _policyId,
        uint _statistics0,
        uint _statistics1,
        uint _statistics2,
        uint _statistics3,
        uint _statistics4,
        uint _statistics5
    );
    event LogPolicyPaidOut(
        uint _policyId,
        uint ethAmount
    );
    event LogPolicyExpired(
        uint _policyId
    );
    event LogPolicyDeclined(
        uint _policyId,
        bytes32 strReason
    );
    event LogPolicyManualPayout(
        uint _policyId,
        bytes32 strReason
    );
    event LogSendFunds(
        address _recipient,
        uint8 _from,
        uint ethAmount
    );
    event LogReceiveFunds(
        address _sender,
        uint8 _to,
        uint ethAmount
    );
    event LogSendFail(
        uint _policyId,
        bytes32 strReason
    );
    event LogOraclizeCall(
        uint _policyId,
        bytes32 hexQueryId,
        string _oraclizeUrl,
        uint256 _oraclizeTime
    );
    event LogOraclizeCallback(
        uint _policyId,
        bytes32 hexQueryId,
        string _result,
        bytes hexProof
    );
    event LogSetState(
        uint _policyId,
        uint8 _policyState,
        uint _stateTime,
        bytes32 _stateMessage
    );
    event LogExternal(
        uint256 _policyId,
        address _address,
        bytes32 _externalId
    );

    /*
    * General constants
    */
    // contracts release version
    uint public constant MAJOR_VERSION = 1;
    uint public constant MINOR_VERSION = 0;
    uint public constant PATCH_VERSION = 2;

    // minimum observations for valid prediction
    uint constant MIN_OBSERVATIONS = 10;
    // minimum premium to cover costs
    uint constant MIN_PREMIUM = 50 finney;
    // maximum premium
    uint constant MAX_PREMIUM = 1 ether;
    // maximum payout
    uint constant MAX_PAYOUT = 1100 finney;

    uint constant MIN_PREMIUM_EUR = 1500 wei;
    uint constant MAX_PREMIUM_EUR = 29000 wei;
    uint constant MAX_PAYOUT_EUR = 30000 wei;

    uint constant MIN_PREMIUM_USD = 1700 wei;
    uint constant MAX_PREMIUM_USD = 34000 wei;
    uint constant MAX_PAYOUT_USD = 35000 wei;

    uint constant MIN_PREMIUM_GBP = 1300 wei;
    uint constant MAX_PREMIUM_GBP = 25000 wei;
    uint constant MAX_PAYOUT_GBP = 270 wei;

    // maximum cumulated weighted premium per risk
    uint constant MAX_CUMULATED_WEIGHTED_PREMIUM = 60 ether;
    // 1 percent for DAO, 1 percent for maintainer
    uint8 constant REWARD_PERCENT = 2;
    // reserve for tail risks
    uint8 constant RESERVE_PERCENT = 1;
    // the weight pattern; in future versions this may become part of the policy struct.
    // currently can't be constant because of compiler restrictions
    // WEIGHT_PATTERN[0] is not used, just to be consistent
    uint8[6] WEIGHT_PATTERN = [
        0,
        0,
        0,
        30,
        50,
        50
    ];

// --> prod-mode
    // DEFINITIONS FOR ROPSTEN AND MAINNET
    // minimum time before departure for applying
    uint constant MIN_TIME_BEFORE_DEPARTURE	= 24 hours; // for production
    // check for delay after .. minutes after scheduled arrival
    uint constant CHECK_PAYOUT_OFFSET = 15 minutes; // for production
// <-- prod-mode

// --> test-mode
//        // DEFINITIONS FOR LOCAL TESTNET
//        // minimum time before departure for applying
//        uint constant MIN_TIME_BEFORE_DEPARTURE = 1 seconds; // for testing
//        // check for delay after .. minutes after scheduled arrival
//        uint constant CHECK_PAYOUT_OFFSET = 1 seconds; // for testing
// <-- test-mode

    // maximum duration of flight
    uint constant MAX_FLIGHT_DURATION = 2 days;
    // Deadline for acceptance of policies: 31.12.2030 (Testnet)
    uint constant CONTRACT_DEAD_LINE = 1922396399;

    // gas Constants for oraclize
    uint constant ORACLIZE_GAS = 700000;
    uint constant ORACLIZE_GASPRICE = 4000000000;


    /*
    * URLs and query strings for oraclize
    */

// --> prod-mode
    // DEFINITIONS FOR ROPSTEN AND MAINNET
    string constant ORACLIZE_RATINGS_BASE_URL =
        // ratings api is v1, see https://developer.flightstats.com/api-docs/ratings/v1
        "[URL] json(https://api.flightstats.com/flex/ratings/rest/v1/json/flight/";
    string constant ORACLIZE_RATINGS_QUERY =
        "?${[decrypt] BJoM0BfTe82RtghrzzCbNA7b9E9tQIX8LtM+pRRh22RfQ5QhnVAv6Kk4SyaMwQKczC7YtinJ/Xm6PZMgKnWN7+/pFUfI2YcxaAW0vYuXJF4zCTxPYXa6j4shhce60AMBeKoZZsgn6Og+olgSpgpfi4MwkmmytwdCLHqat3gGUPklBhM1HR0x}).ratings[0]['observations','late15','late30','late45','cancelled','diverted','arrivalAirportFsCode','departureAirportFsCode']";
    string constant ORACLIZE_STATUS_BASE_URL =
        // flight status api is v2, see https://developer.flightstats.com/api-docs/flightstatus/v2/flight
        "[URL] json(https://api.flightstats.com/flex/flightstatus/rest/v2/json/flight/status/";
    string constant ORACLIZE_STATUS_QUERY =
        // pattern:
        "?${[decrypt] BA3YyqF4iMQszBawvgG82bqX3fw7JoWA1thFsboUECR/L8JkBCgvaThg1LcUWbIntosEKs/kvqyzOtvdQfMgjYPV0c6hsq/gKQkmJYILZmLY4SgBebH8g0qbfrrjxF5gEbfCi2qoR6PSxcQzKIjgd4HvAaumlQd4CkJLmY463ymqNN9B8/PL}&utc=true).flightStatuses[0]['status','delays','operationalTimes']";
// <-- prod-mode

// --> test-mode
//        // DEFINITIONS FOR LOCAL TESTNET
//        string constant ORACLIZE_RATINGS_BASE_URL =
//            // ratings api is v1, see https://developer.flightstats.com/api-docs/ratings/v1
//            "[URL] json(https://api-test.etherisc.com/flex/ratings/rest/v1/json/flight/";
//        string constant ORACLIZE_RATINGS_QUERY =
//            // for testrpc:
//            ").ratings[0]['observations','late15','late30','late45','cancelled','diverted','arrivalAirportFsCode','departureAirportFsCode']";
//        string constant ORACLIZE_STATUS_BASE_URL =
//            // flight status api is v2, see https://developer.flightstats.com/api-docs/flightstatus/v2/flight
//            "[URL] json(https://api-test.etherisc.com/flex/flightstatus/rest/v2/json/flight/status/";
//        string constant ORACLIZE_STATUS_QUERY =
//            // for testrpc:
//            "?utc=true).flightStatuses[0]['status','delays','operationalTimes']";
// <-- test-mode
}

// File: contracts/FlightDelayControllerInterface.sol

/**
 * FlightDelay with Oraclized Underwriting and Payout
 *
 * @description Contract interface
 * @copyright (c) 2017 etherisc GmbH
 * @author Christoph Mussenbrock, Stephan Karpischek
 */

pragma solidity ^0.4.11;


contract FlightDelayControllerInterface {

    function isOwner(address _addr) public returns (bool _isOwner);

    function selfRegister(bytes32 _id) public returns (bool result);

    function getContract(bytes32 _id) public returns (address _addr);
}

// File: contracts/FlightDelayDatabaseModel.sol

/**
 * FlightDelay with Oraclized Underwriting and Payout
 *
 * @description Database model
 * @copyright (c) 2017 etherisc GmbH
 * @author Christoph Mussenbrock, Stephan Karpischek
 */

pragma solidity ^0.4.11;


contract FlightDelayDatabaseModel {

    // Ledger accounts.
    enum Acc {
        Premium,      // 0
        RiskFund,     // 1
        Payout,       // 2
        Balance,      // 3
        Reward,       // 4
        OraclizeCosts // 5
    }

    // policy Status Codes and meaning:
    //
    // 00 = Applied:	  the customer has payed a premium, but the oracle has
    //					        not yet checked and confirmed.
    //					        The customer can still revoke the policy.
    // 01 = Accepted:	  the oracle has checked and confirmed.
    //					        The customer can still revoke the policy.
    // 02 = Revoked:	  The customer has revoked the policy.
    //					        The premium minus cancellation fee is payed back to the
    //					        customer by the oracle.
    // 03 = PaidOut:	  The flight has ended with delay.
    //					        The oracle has checked and payed out.
    // 04 = Expired:	  The flight has endet with <15min. delay.
    //					        No payout.
    // 05 = Declined:	  The application was invalid.
    //					        The premium minus cancellation fee is payed back to the
    //					        customer by the oracle.
    // 06 = SendFailed:	During Revoke, Decline or Payout, sending ether failed
    //					        for unknown reasons.
    //					        The funds remain in the contracts RiskFund.


    //                   00       01        02       03        04      05           06
    enum policyState { Applied, Accepted, Revoked, PaidOut, Expired, Declined, SendFailed }

    // oraclize callback types:
    enum oraclizeState { ForUnderwriting, ForPayout }

    //               00   01   02   03
    enum Currency { ETH, EUR, USD, GBP }

    // the policy structure: this structure keeps track of the individual parameters of a policy.
    // typically customer address, premium and some status information.
    struct Policy {
        // 0 - the customer
        address customer;

        // 1 - premium
        uint premium;
        // risk specific parameters:
        // 2 - pointer to the risk in the risks mapping
        bytes32 riskId;
        // custom payout pattern
        // in future versions, customer will be able to tamper with this array.
        // to keep things simple, we have decided to hard-code the array for all policies.
        // uint8[5] pattern;
        // 3 - probability weight. this is the central parameter
        uint weight;
        // 4 - calculated Payout
        uint calculatedPayout;
        // 5 - actual Payout
        uint actualPayout;

        // status fields:
        // 6 - the state of the policy
        policyState state;
        // 7 - time of last state change
        uint stateTime;
        // 8 - state change message/reason
        bytes32 stateMessage;
        // 9 - TLSNotary Proof
        bytes proof;
        // 10 - Currency
        Currency currency;
        // 10 - External customer id
        bytes32 customerExternalId;
    }

    // the risk structure; this structure keeps track of the risk-
    // specific parameters.
    // several policies can share the same risk structure (typically
    // some people flying with the same plane)
    struct Risk {
        // 0 - Airline Code + FlightNumber
        bytes32 carrierFlightNumber;
        // 1 - scheduled departure and arrival time in the format /dep/YYYY/MM/DD
        bytes32 departureYearMonthDay;
        // 2 - the inital arrival time
        uint arrivalTime;
        // 3 - the final delay in minutes
        uint delayInMinutes;
        // 4 - the determined delay category (0-5)
        uint8 delay;
        // 5 - we limit the cumulated weighted premium to avoid cluster risks
        uint cumulatedWeightedPremium;
        // 6 - max cumulated Payout for this risk
        uint premiumMultiplier;
    }

    // the oraclize callback structure: we use several oraclize calls.
    // all oraclize calls will result in a common callback to __callback(...).
    // to keep track of the different querys we have to introduce this struct.
    struct OraclizeCallback {
        // for which policy have we called?
        uint policyId;
        // for which purpose did we call? {ForUnderwrite | ForPayout}
        oraclizeState oState;
        // time
        uint oraclizeTime;
    }

    struct Customer {
        bytes32 customerExternalId;
        bool identityConfirmed;
    }
}

// File: contracts/FlightDelayControlledContract.sol

/**
 * FlightDelay with Oraclized Underwriting and Payout
 *
 * @description Controlled contract Interface
 * @copyright (c) 2017 etherisc GmbH
 * @author Christoph Mussenbrock
 */

pragma solidity ^0.4.11;




contract FlightDelayControlledContract is FlightDelayDatabaseModel {

    address public controller;
    FlightDelayControllerInterface FD_CI;

    modifier onlyController() {
        require(msg.sender == controller);
        _;
    }

    function setController(address _controller) internal returns (bool _result) {
        controller = _controller;
        FD_CI = FlightDelayControllerInterface(_controller);
        _result = true;
    }

    function destruct() public onlyController {
        selfdestruct(controller);
    }

    function setContracts() public onlyController {}

    function getContract(bytes32 _id) internal returns (address _addr) {
        _addr = FD_CI.getContract(_id);
    }
}

// File: contracts/Owned.sol

/**
 * FlightDelay with Oraclized Underwriting and Payout
 *
 * @description	Owned pattern
 * @copyright (c) 2017 etherisc GmbH
 * @author Christoph Mussenbrock, Stephan Karpischek
 */

pragma solidity ^0.4.11;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Owned {

    address public owner;

    /**
     * @dev The Owned constructor sets the original `owner` of the contract to the sender
     * account.
     */
    function Owned() {
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner == msg.sender);
        _;
    }
}

// File: contracts/FlightDelayController.sol

/**
 * FlightDelay with Oraclized Underwriting and Payout
 *
 * @description Controller contract
 * @copyright (c) 2017 etherisc GmbH
 * @author Christoph Mussenbrock
 */

pragma solidity ^0.4.11;




contract FlightDelayController is Owned, FlightDelayConstants {

    struct Controller {
        address addr;
        bool isControlled;
        bool isInitialized;
    }

    mapping (bytes32 => Controller) public contracts;
    bytes32[] public contractIds;

    /**
    * Constructor.
    */
    function FlightDelayController() public {
        registerContract(owner, "FD.Owner", false);
        registerContract(address(this), "FD.Controller", false);
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param _newOwner The address to transfer ownership to.
     */
    function transferOwnership(address _newOwner) public onlyOwner {
        require(_newOwner != address(0));
        owner = _newOwner;
        setContract(_newOwner, "FD.Owner", false);
    }

    /**
    * Store address of one contract in mapping.
    * @param _addr       Address of contract
    * @param _id         ID of contract
    */
    function setContract(address _addr, bytes32 _id, bool _isControlled) internal {
        contracts[_id].addr = _addr;
        contracts[_id].isControlled = _isControlled;
    }

    /**
    * Get contract address from ID. This function is called by the
    * contract's setContracts function.
    * @param _id         ID of contract
    * @return The address of the contract.
    */
    function getContract(bytes32 _id) public returns (address _addr) {
        _addr = contracts[_id].addr;
    }

    /**
    * Registration of contracts.
    * It will only accept calls of deployments initiated by the owner.
    * @param _id         ID of contract
    * @return  bool        success
    */
    function registerContract(address _addr, bytes32 _id, bool _isControlled) public onlyOwner returns (bool _result) {
        setContract(_addr, _id, _isControlled);
        contractIds.push(_id);
        _result = true;
    }

    /**
    * Deregister a contract.
    * In future, contracts should be exchangeable.
    * @param _id         ID of contract
    * @return  bool        success
    */
    function deregister(bytes32 _id) public onlyOwner returns (bool _result) {
        if (getContract(_id) == 0x0) {
            return false;
        }
        setContract(0x0, _id, false);
        _result = true;
    }

    /**
    * After deploying all contracts, this function is called and calls
    * setContracts() for every registered contract.
    * This call pulls the addresses of the needed contracts in the respective contract.
    * We assume that contractIds.length is small, so this won't run out of gas.
    */
    function setAllContracts() public onlyOwner {
        FlightDelayControlledContract controlledContract;
        // TODO: Check for upper bound for i
        // i = 0 is FD.Owner, we skip this. // check!
        for (uint i = 0; i < contractIds.length; i++) {
            if (contracts[contractIds[i]].isControlled == true) {
                controlledContract = FlightDelayControlledContract(contracts[contractIds[i]].addr);
                controlledContract.setContracts();
            }
        }
    }

    function setOneContract(uint i) public onlyOwner {
        FlightDelayControlledContract controlledContract;
        // TODO: Check for upper bound for i
        controlledContract = FlightDelayControlledContract(contracts[contractIds[i]].addr);
        controlledContract.setContracts();
    }

    /**
    * Destruct one contract.
    * @param _id         ID of contract to destroy.
    */
    function destructOne(bytes32 _id) public onlyOwner {
        address addr = getContract(_id);
        if (addr != 0x0) {
            FlightDelayControlledContract(addr).destruct();
        }
    }

    /**
    * Destruct all contracts.
    * We assume that contractIds.length is small, so this won't run out of gas.
    * Otherwise, you can still destroy one contract after the other with destructOne.
    */
    function destructAll() public onlyOwner {
        // TODO: Check for upper bound for i
        for (uint i = 0; i < contractIds.length; i++) {
            if (contracts[contractIds[i]].isControlled == true) {
                destructOne(contractIds[i]);
            }
        }

        selfdestruct(owner);
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"_id","type":"bytes32"}],"name":"deregister","outputs":[{"name":"_result","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"contractIds","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"i","type":"uint256"}],"name":"setOneContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"PATCH_VERSION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"bytes32"}],"name":"destructOne","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_id","type":"bytes32"},{"name":"_isControlled","type":"bool"}],"name":"registerContract","outputs":[{"name":"_result","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MINOR_VERSION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destructAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setAllContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"bytes32"}],"name":"getContract","outputs":[{"name":"_addr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"contracts","outputs":[{"name":"addr","type":"address"},{"name":"isControlled","type":"bool"},{"name":"isInitialized","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAJOR_VERSION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_policyId","type":"uint256"},{"indexed":false,"name":"_customer","type":"address"},{"indexed":false,"name":"strCarrierFlightNumber","type":"bytes32"},{"indexed":false,"name":"ethPremium","type":"uint256"}],"name":"LogPolicyApplied","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_policyId","type":"uint256"},{"indexed":false,"name":"_statistics0","type":"uint256"},{"indexed":false,"name":"_statistics1","type":"uint256"},{"indexed":false,"name":"_statistics2","type":"uint256"},{"indexed":false,"name":"_statistics3","type":"uint256"},{"indexed":false,"name":"_statistics4","type":"uint256"},{"indexed":false,"name":"_statistics5","type":"uint256"}],"name":"LogPolicyAccepted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_policyId","type":"uint256"},{"indexed":false,"name":"ethAmount","type":"uint256"}],"name":"LogPolicyPaidOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_policyId","type":"uint256"}],"name":"LogPolicyExpired","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_policyId","type":"uint256"},{"indexed":false,"name":"strReason","type":"bytes32"}],"name":"LogPolicyDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_policyId","type":"uint256"},{"indexed":false,"name":"strReason","type":"bytes32"}],"name":"LogPolicyManualPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_recipient","type":"address"},{"indexed":false,"name":"_from","type":"uint8"},{"indexed":false,"name":"ethAmount","type":"uint256"}],"name":"LogSendFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_to","type":"uint8"},{"indexed":false,"name":"ethAmount","type":"uint256"}],"name":"LogReceiveFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_policyId","type":"uint256"},{"indexed":false,"name":"strReason","type":"bytes32"}],"name":"LogSendFail","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_policyId","type":"uint256"},{"indexed":false,"name":"hexQueryId","type":"bytes32"},{"indexed":false,"name":"_oraclizeUrl","type":"string"},{"indexed":false,"name":"_oraclizeTime","type":"uint256"}],"name":"LogOraclizeCall","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_policyId","type":"uint256"},{"indexed":false,"name":"hexQueryId","type":"bytes32"},{"indexed":false,"name":"_result","type":"string"},{"indexed":false,"name":"hexProof","type":"bytes"}],"name":"LogOraclizeCallback","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_policyId","type":"uint256"},{"indexed":false,"name":"_policyState","type":"uint8"},{"indexed":false,"name":"_stateTime","type":"uint256"},{"indexed":false,"name":"_stateMessage","type":"bytes32"}],"name":"LogSetState","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_policyId","type":"uint256"},{"indexed":false,"name":"_address","type":"address"},{"indexed":false,"name":"_externalId","type":"bytes32"}],"name":"LogExternal","type":"event"}]

606060405260c0604051908101604090815260008083526020830181905290820152601e606082015260326080820181905260a08201526100449060019060066101a2565b50341561005057600080fd5b60008054600160a060020a03191633600160a060020a03908116919091178083556100ac929116907f46442e4f776e6572000000000000000000000000000000000000000000000000906401000000006100ec810261040c1704565b506100e6307f46442e436f6e74726f6c6c657200000000000000000000000000000000000000600064010000000061040c6100ec82021704565b50610299565b6000805433600160a060020a0390811691161461010857600080fd5b6101208484846401000000006106f361014b82021704565b60038054600181016101328382610235565b5060009182526020909120019290925550600192915050565b6000918252600260205260409091208054600160a060020a031916600160a060020a03939093169290921760a060020a60ff0219167401000000000000000000000000000000000000000091151591909102179055565b6001830191839082156102255791602002820160005b838211156101f657835183826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026101b8565b80156102235782816101000a81549060ff02191690556001016020816000010492830192600103026101f6565b505b5061023192915061025e565b5090565b8154818355818115116102595760008381526020902061025991810190830161027f565b505050565b61027c91905b8082111561023157805460ff19168155600101610264565b90565b61027c91905b808211156102315760008155600101610285565b6107ca80620002a96000396000f3006060604052600436106100b65763ffffffff60e060020a6000350416632081315481146100bb578063438c3aff146100e55780636820f8d21461010d5780636bf2606a146101255780636dafc6b7146101385780638da5cb5b1461014e5780639576e5b31461017d578063c8b91531146101a4578063ca88b3b2146101b7578063d2571062146101ca578063e16c7d98146101dd578063ec56a373146101f3578063f2fde38b14610239578063f786becd14610258575b600080fd5b34156100c657600080fd5b6100d160043561026b565b604051901515815260200160405180910390f35b34156100f057600080fd5b6100fb6004356102bd565b60405190815260200160405180910390f35b341561011857600080fd5b6101236004356102dc565b005b341561013057600080fd5b6100fb610381565b341561014357600080fd5b610123600435610386565b341561015957600080fd5b6101616103fd565b604051600160a060020a03909116815260200160405180910390f35b341561018857600080fd5b6100d1600160a060020a0360043516602435604435151561040c565b34156101af57600080fd5b6100fb61045e565b34156101c257600080fd5b610123610463565b34156101d557600080fd5b61012361050a565b34156101e857600080fd5b610161600435610608565b34156101fe57600080fd5b610209600435610623565b604051600160a060020a039093168352901515602083015215156040808301919091526060909101905180910390f35b341561024457600080fd5b610123600160a060020a0360043516610666565b341561026357600080fd5b6100fb6106ee565b6000805433600160a060020a0390811691161461028757600080fd5b61029082610608565b600160a060020a031615156102a7575060006102b8565b6102b460008360006106f3565b5060015b919050565b60038054829081106102cb57fe5b600091825260209091200154905081565b6000805433600160a060020a039081169116146102f857600080fd5b6002600060038481548110151561030b57fe5b60009182526020808320909101548352820192909252604090810190912054600160a060020a03169150819063e0d6d53090518163ffffffff1660e060020a028152600401600060405180830381600087803b151561036957600080fd5b6102c65a03f1151561037a57600080fd5b5050505050565b600281565b6000805433600160a060020a039081169116146103a257600080fd5b6103ab82610608565b9050600160a060020a038116156103f95780600160a060020a0316632b68b9c66040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561036957600080fd5b5050565b600054600160a060020a031681565b6000805433600160a060020a0390811691161461042857600080fd5b6104338484846106f3565b60038054600181016104458382610754565b5060009182526020909120019290925550600192915050565b600081565b6000805433600160a060020a0390811691161461047f57600080fd5b5060005b6003548110156104fc57600260006003838154811015156104a057fe5b600091825260208083209190910154835282019290925260400190205460a060020a900460ff161515600114156104f4576104f46003828154811015156104e357fe5b906000526020600020900154610386565b600101610483565b600054600160a060020a0316ff5b60008054819033600160a060020a0390811691161461052857600080fd5b5060005b6003548110156103f9576002600060038381548110151561054957fe5b600091825260208083209190910154835282019290925260400190205460a060020a900460ff16151560011415610600576002600060038381548110151561058d57fe5b60009182526020808320909101548352820192909252604090810190912054600160a060020a03169250829063e0d6d53090518163ffffffff1660e060020a028152600401600060405180830381600087803b15156105eb57600080fd5b6102c65a03f115156105fc57600080fd5b5050505b60010161052c565b600090815260026020526040902054600160a060020a031690565b600260205260009081526040902054600160a060020a0381169060ff60a060020a8204811691750100000000000000000000000000000000000000000090041683565b60005433600160a060020a0390811691161461068157600080fd5b600160a060020a038116151561069657600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161781556106eb9082907f46442e4f776e6572000000000000000000000000000000000000000000000000906106f3565b50565b600181565b600091825260026020526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03939093169290921774ff0000000000000000000000000000000000000000191660a060020a91151591909102179055565b8154818355818115116107785760008381526020902061077891810190830161077d565b505050565b61079b91905b808211156107975760008155600101610783565b5090565b905600a165627a7a723058203533ce439db4ecdb951df3a07b35af85630141a336bcc6da9e73c7f28736f79e0029

Deployed Bytecode

0x6060604052600436106100b65763ffffffff60e060020a6000350416632081315481146100bb578063438c3aff146100e55780636820f8d21461010d5780636bf2606a146101255780636dafc6b7146101385780638da5cb5b1461014e5780639576e5b31461017d578063c8b91531146101a4578063ca88b3b2146101b7578063d2571062146101ca578063e16c7d98146101dd578063ec56a373146101f3578063f2fde38b14610239578063f786becd14610258575b600080fd5b34156100c657600080fd5b6100d160043561026b565b604051901515815260200160405180910390f35b34156100f057600080fd5b6100fb6004356102bd565b60405190815260200160405180910390f35b341561011857600080fd5b6101236004356102dc565b005b341561013057600080fd5b6100fb610381565b341561014357600080fd5b610123600435610386565b341561015957600080fd5b6101616103fd565b604051600160a060020a03909116815260200160405180910390f35b341561018857600080fd5b6100d1600160a060020a0360043516602435604435151561040c565b34156101af57600080fd5b6100fb61045e565b34156101c257600080fd5b610123610463565b34156101d557600080fd5b61012361050a565b34156101e857600080fd5b610161600435610608565b34156101fe57600080fd5b610209600435610623565b604051600160a060020a039093168352901515602083015215156040808301919091526060909101905180910390f35b341561024457600080fd5b610123600160a060020a0360043516610666565b341561026357600080fd5b6100fb6106ee565b6000805433600160a060020a0390811691161461028757600080fd5b61029082610608565b600160a060020a031615156102a7575060006102b8565b6102b460008360006106f3565b5060015b919050565b60038054829081106102cb57fe5b600091825260209091200154905081565b6000805433600160a060020a039081169116146102f857600080fd5b6002600060038481548110151561030b57fe5b60009182526020808320909101548352820192909252604090810190912054600160a060020a03169150819063e0d6d53090518163ffffffff1660e060020a028152600401600060405180830381600087803b151561036957600080fd5b6102c65a03f1151561037a57600080fd5b5050505050565b600281565b6000805433600160a060020a039081169116146103a257600080fd5b6103ab82610608565b9050600160a060020a038116156103f95780600160a060020a0316632b68b9c66040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561036957600080fd5b5050565b600054600160a060020a031681565b6000805433600160a060020a0390811691161461042857600080fd5b6104338484846106f3565b60038054600181016104458382610754565b5060009182526020909120019290925550600192915050565b600081565b6000805433600160a060020a0390811691161461047f57600080fd5b5060005b6003548110156104fc57600260006003838154811015156104a057fe5b600091825260208083209190910154835282019290925260400190205460a060020a900460ff161515600114156104f4576104f46003828154811015156104e357fe5b906000526020600020900154610386565b600101610483565b600054600160a060020a0316ff5b60008054819033600160a060020a0390811691161461052857600080fd5b5060005b6003548110156103f9576002600060038381548110151561054957fe5b600091825260208083209190910154835282019290925260400190205460a060020a900460ff16151560011415610600576002600060038381548110151561058d57fe5b60009182526020808320909101548352820192909252604090810190912054600160a060020a03169250829063e0d6d53090518163ffffffff1660e060020a028152600401600060405180830381600087803b15156105eb57600080fd5b6102c65a03f115156105fc57600080fd5b5050505b60010161052c565b600090815260026020526040902054600160a060020a031690565b600260205260009081526040902054600160a060020a0381169060ff60a060020a8204811691750100000000000000000000000000000000000000000090041683565b60005433600160a060020a0390811691161461068157600080fd5b600160a060020a038116151561069657600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161781556106eb9082907f46442e4f776e6572000000000000000000000000000000000000000000000000906106f3565b50565b600181565b600091825260026020526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03939093169290921774ff0000000000000000000000000000000000000000191660a060020a91151591909102179055565b8154818355818115116107785760008381526020902061077891810190830161077d565b505050565b61079b91905b808211156107975760008155600101610783565b5090565b905600a165627a7a723058203533ce439db4ecdb951df3a07b35af85630141a336bcc6da9e73c7f28736f79e0029

Swarm Source

bzzr://3533ce439db4ecdb951df3a07b35af85630141a336bcc6da9e73c7f28736f79e

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.