Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
4299 lines (4299 sloc) 203 KB
{
"contractName": "DSLA_v0",
"abi": [
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "decimals",
"outputs": [
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "crowdsaleAddress",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "addedValue",
"type": "uint256"
}
],
"name": "increaseAllowance",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "value",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "unlockDate",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "value",
"type": "uint256"
}
],
"name": "burnFrom",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isOwner",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "subtractedValue",
"type": "uint256"
}
],
"name": "decreaseAllowance",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isTimeLocked",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_crowdsaleAddress",
"type": "address"
}
],
"name": "CrowdsaleAddressSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
}
],
"name": "OwnershipRenounced",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_caller",
"type": "address"
},
{
"indexed": false,
"name": "_newUnlockDate",
"type": "uint256"
}
],
"name": "UnLockDateSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "owner",
"type": "address"
},
{
"indexed": true,
"name": "spender",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "name",
"type": "string"
},
{
"name": "symbol",
"type": "string"
},
{
"name": "decimals",
"type": "uint8"
}
],
"name": "initialize",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_owner",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_initialUnlockDate",
"type": "uint256"
}
],
"name": "initialize",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_from",
"type": "address"
},
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_newUnlockDate",
"type": "uint256"
}
],
"name": "setUnlockDate",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_crowdsaleAddress",
"type": "address"
}
],
"name": "setCrowdsaleAddress",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b5061267b806100206000396000f300608060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461014e578063095ea7b3146101de5780631624f6c61461024357806318160ddd146102ff5780631f35bc401461032a57806323b872dd1461036d578063313ce567146103f257806331d2f89114610423578063395093511461047a57806342966c68146104df57806369ac57211461050c57806370a0823114610537578063715018a61461058e57806379cc6790146105a55780638da5cb5b146105f25780638f32d59b1461064957806395d89b4114610678578063a457c2d714610708578063a9059cbb1461076d578063bacb5d1c146107d2578063c4d66de8146107ff578063d6aced8e14610842578063dd62ed3e14610871578063f2fde38b146108e8578063fe4b84df1461092b575b600080fd5b34801561015a57600080fd5b50610163610958565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a3578082015181840152602081019050610188565b50505050905090810190601f1680156101d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ea57600080fd5b50610229600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109fa565b604051808215151515815260200191505060405180910390f35b34801561024f57600080fd5b506102fd600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610b27565b005b34801561030b57600080fd5b50610314610ca8565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061036b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cb2565b005b34801561037957600080fd5b506103d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d6d565b604051808215151515815260200191505060405180910390f35b3480156103fe57600080fd5b50610407610dff565b604051808260ff1660ff16815260200191505060405180910390f35b34801561042f57600080fd5b50610438610e16565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561048657600080fd5b506104c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e3d565b604051808215151515815260200191505060405180910390f35b3480156104eb57600080fd5b5061050a60048036038101908080359060200190929190505050611074565b005b34801561051857600080fd5b50610521611081565b6040518082815260200191505060405180910390f35b34801561054357600080fd5b50610578600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061108b565b6040518082815260200191505060405180910390f35b34801561059a57600080fd5b506105a36110d4565b005b3480156105b157600080fd5b506105f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611190565b005b3480156105fe57600080fd5b5061060761119e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065557600080fd5b5061065e6111c8565b604051808215151515815260200191505060405180910390f35b34801561068457600080fd5b5061068d611220565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106cd5780820151818401526020810190506106b2565b50505050905090810190601f1680156106fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071457600080fd5b50610753600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112c2565b604051808215151515815260200191505060405180910390f35b34801561077957600080fd5b506107b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114f9565b604051808215151515815260200191505060405180910390f35b3480156107de57600080fd5b506107fd60048036038101908080359060200190929190505050611589565b005b34801561080b57600080fd5b50610840600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115a8565b005b34801561084e57600080fd5b5061085761178b565b604051808215151515815260200191505060405180910390f35b34801561087d57600080fd5b506108d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611797565b6040518082815260200191505060405180910390f35b3480156108f457600080fd5b50610929600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061181e565b005b34801561093757600080fd5b506109566004803603810190808035906020019092919050505061183d565b005b606060688054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109f05780601f106109c5576101008083540402835291602001916109f0565b820191906000526020600020905b8154815290600101906020018083116109d357829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610a3757600080fd5b81603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060019054906101000a900460ff1680610b475750610b466119f3565b5b80610b5e57506000809054906101000a900460ff16155b1515610bf8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055508360689080519060200190610c559291906125aa565b508260699080519060200190610c6c9291906125aa565b5081606a60006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b6000603554905090565b610cba6111c8565b1515610cc557600080fd5b8061010360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7f9876e52a5c2a670292684782dbd2b9112f8444ffce2371e6d54fe775f3302481604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000610d7761178b565b1580610d875750610d866111c8565b5b80610de0575061010360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610deb57600080fd5b610df6848484611a04565b90509392505050565b6000606a60009054906101000a900460ff16905090565b61010360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e7a57600080fd5b610f0982603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb690919063ffffffff16565b603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b61107e3382611bd7565b50565b600060cf54905090565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110dc6111c8565b15156110e757600080fd5b60d060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a2600060d060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61119a8282611d65565b5050565b600060d060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600060d060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060698054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112b85780601f1061128d576101008083540402835291602001916112b8565b820191906000526020600020905b81548152906001019060200180831161129b57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156112ff57600080fd5b61138e82603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0d90919063ffffffff16565b603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600061150361178b565b158061151357506115126111c8565b5b8061156c575061010360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561157757600080fd5b6115818383611f2e565b905092915050565b6115916111c8565b151561159c57600080fd5b6115a581611f45565b50565b60008060008060019054906101000a900460ff16806115cb57506115ca6119f3565b5b806115e257506000809054906101000a900460ff16155b151561167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055506117396040805190810160405280600481526020017f44534c41000000000000000000000000000000000000000000000000000000008152506040805190810160405280600481526020017f44534c41000000000000000000000000000000000000000000000000000000008152506012610b27565b61174284611fd9565b635c8ba1d092506117528361183d565b6b204fce5e3e25026110000000915061176b8483612150565b80600060016101000a81548160ff02191690831515021790555050505050565b600060cf544210905090565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118266111c8565b151561183157600080fd5b61183a81612290565b50565b60008060019054906101000a900460ff168061185d575061185c6119f3565b5b8061187457506000809054906101000a900460ff16155b151561190e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550428211151561196357600080fd5b8160cf819055507f71f2827d768cdcb556a4540b78a376efdd9ca4721b86fe4667148b328d66ed9c3383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a180600060016101000a81548160ff0219169083151502179055505050565b600080303b90506000811491505090565b6000603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611a9157600080fd5b611b2082603460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0d90919063ffffffff16565b603460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bab84848461238c565b600190509392505050565b6000808284019050838110151515611bcd57600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611bfd57600080fd5b603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611c4b57600080fd5b611c6081603554611f0d90919063ffffffff16565b603581905550611cb881603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0d90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b603460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611df057600080fd5b611e7f81603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0d90919063ffffffff16565b603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f098282611bd7565b5050565b600080838311151515611f1f57600080fd5b82840390508091505092915050565b6000611f3b33848461238c565b6001905092915050565b60cf5442101515611f5557600080fd5b428110151515611f6457600080fd5b8060cf819055507f71f2827d768cdcb556a4540b78a376efdd9ca4721b86fe4667148b328d66ed9c3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b60008060019054906101000a900460ff1680611ff95750611ff86119f3565b5b8061201057506000809054906101000a900460ff16155b15156120aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055508160d060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548160ff0219169083151502179055505050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561217657600080fd5b61218b81603554611bb690919063ffffffff16565b6035819055506121e381603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb690919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156122cc57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660d060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060d060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156123da57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561241657600080fd5b61246881603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0d90919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124fd81603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb690919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125eb57805160ff1916838001178555612619565b82800160010185558215612619579182015b828111156126185782518255916020019190600101906125fd565b5b509050612626919061262a565b5090565b61264c91905b80821115612648576000816000905550600101612630565b5090565b905600a165627a7a723058206accc176979ad8cfffb55b4384dee3df6cad91814ec2a12862a22f461aaa59940029",
"deployedBytecode": "0x608060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461014e578063095ea7b3146101de5780631624f6c61461024357806318160ddd146102ff5780631f35bc401461032a57806323b872dd1461036d578063313ce567146103f257806331d2f89114610423578063395093511461047a57806342966c68146104df57806369ac57211461050c57806370a0823114610537578063715018a61461058e57806379cc6790146105a55780638da5cb5b146105f25780638f32d59b1461064957806395d89b4114610678578063a457c2d714610708578063a9059cbb1461076d578063bacb5d1c146107d2578063c4d66de8146107ff578063d6aced8e14610842578063dd62ed3e14610871578063f2fde38b146108e8578063fe4b84df1461092b575b600080fd5b34801561015a57600080fd5b50610163610958565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a3578082015181840152602081019050610188565b50505050905090810190601f1680156101d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ea57600080fd5b50610229600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109fa565b604051808215151515815260200191505060405180910390f35b34801561024f57600080fd5b506102fd600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610b27565b005b34801561030b57600080fd5b50610314610ca8565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061036b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cb2565b005b34801561037957600080fd5b506103d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d6d565b604051808215151515815260200191505060405180910390f35b3480156103fe57600080fd5b50610407610dff565b604051808260ff1660ff16815260200191505060405180910390f35b34801561042f57600080fd5b50610438610e16565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561048657600080fd5b506104c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e3d565b604051808215151515815260200191505060405180910390f35b3480156104eb57600080fd5b5061050a60048036038101908080359060200190929190505050611074565b005b34801561051857600080fd5b50610521611081565b6040518082815260200191505060405180910390f35b34801561054357600080fd5b50610578600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061108b565b6040518082815260200191505060405180910390f35b34801561059a57600080fd5b506105a36110d4565b005b3480156105b157600080fd5b506105f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611190565b005b3480156105fe57600080fd5b5061060761119e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065557600080fd5b5061065e6111c8565b604051808215151515815260200191505060405180910390f35b34801561068457600080fd5b5061068d611220565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106cd5780820151818401526020810190506106b2565b50505050905090810190601f1680156106fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071457600080fd5b50610753600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112c2565b604051808215151515815260200191505060405180910390f35b34801561077957600080fd5b506107b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114f9565b604051808215151515815260200191505060405180910390f35b3480156107de57600080fd5b506107fd60048036038101908080359060200190929190505050611589565b005b34801561080b57600080fd5b50610840600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115a8565b005b34801561084e57600080fd5b5061085761178b565b604051808215151515815260200191505060405180910390f35b34801561087d57600080fd5b506108d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611797565b6040518082815260200191505060405180910390f35b3480156108f457600080fd5b50610929600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061181e565b005b34801561093757600080fd5b506109566004803603810190808035906020019092919050505061183d565b005b606060688054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109f05780601f106109c5576101008083540402835291602001916109f0565b820191906000526020600020905b8154815290600101906020018083116109d357829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610a3757600080fd5b81603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060019054906101000a900460ff1680610b475750610b466119f3565b5b80610b5e57506000809054906101000a900460ff16155b1515610bf8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055508360689080519060200190610c559291906125aa565b508260699080519060200190610c6c9291906125aa565b5081606a60006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b6000603554905090565b610cba6111c8565b1515610cc557600080fd5b8061010360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7f9876e52a5c2a670292684782dbd2b9112f8444ffce2371e6d54fe775f3302481604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000610d7761178b565b1580610d875750610d866111c8565b5b80610de0575061010360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610deb57600080fd5b610df6848484611a04565b90509392505050565b6000606a60009054906101000a900460ff16905090565b61010360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e7a57600080fd5b610f0982603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb690919063ffffffff16565b603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b61107e3382611bd7565b50565b600060cf54905090565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110dc6111c8565b15156110e757600080fd5b60d060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a2600060d060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61119a8282611d65565b5050565b600060d060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600060d060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060698054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112b85780601f1061128d576101008083540402835291602001916112b8565b820191906000526020600020905b81548152906001019060200180831161129b57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156112ff57600080fd5b61138e82603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0d90919063ffffffff16565b603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600061150361178b565b158061151357506115126111c8565b5b8061156c575061010360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561157757600080fd5b6115818383611f2e565b905092915050565b6115916111c8565b151561159c57600080fd5b6115a581611f45565b50565b60008060008060019054906101000a900460ff16806115cb57506115ca6119f3565b5b806115e257506000809054906101000a900460ff16155b151561167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055506117396040805190810160405280600481526020017f44534c41000000000000000000000000000000000000000000000000000000008152506040805190810160405280600481526020017f44534c41000000000000000000000000000000000000000000000000000000008152506012610b27565b61174284611fd9565b635c8ba1d092506117528361183d565b6b204fce5e3e25026110000000915061176b8483612150565b80600060016101000a81548160ff02191690831515021790555050505050565b600060cf544210905090565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118266111c8565b151561183157600080fd5b61183a81612290565b50565b60008060019054906101000a900460ff168061185d575061185c6119f3565b5b8061187457506000809054906101000a900460ff16155b151561190e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550428211151561196357600080fd5b8160cf819055507f71f2827d768cdcb556a4540b78a376efdd9ca4721b86fe4667148b328d66ed9c3383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a180600060016101000a81548160ff0219169083151502179055505050565b600080303b90506000811491505090565b6000603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611a9157600080fd5b611b2082603460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0d90919063ffffffff16565b603460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bab84848461238c565b600190509392505050565b6000808284019050838110151515611bcd57600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611bfd57600080fd5b603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611c4b57600080fd5b611c6081603554611f0d90919063ffffffff16565b603581905550611cb881603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0d90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b603460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611df057600080fd5b611e7f81603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0d90919063ffffffff16565b603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f098282611bd7565b5050565b600080838311151515611f1f57600080fd5b82840390508091505092915050565b6000611f3b33848461238c565b6001905092915050565b60cf5442101515611f5557600080fd5b428110151515611f6457600080fd5b8060cf819055507f71f2827d768cdcb556a4540b78a376efdd9ca4721b86fe4667148b328d66ed9c3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150565b60008060019054906101000a900460ff1680611ff95750611ff86119f3565b5b8061201057506000809054906101000a900460ff16155b15156120aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055508160d060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548160ff0219169083151502179055505050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561217657600080fd5b61218b81603554611bb690919063ffffffff16565b6035819055506121e381603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb690919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156122cc57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660d060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060d060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156123da57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561241657600080fd5b61246881603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f0d90919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124fd81603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bb690919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125eb57805160ff1916838001178555612619565b82800160010185558215612619579182015b828111156126185782518255916020019190600101906125fd565b5b509050612626919061262a565b5090565b61264c91905b80821115612648576000816000905550600101612630565b5090565b905600a165627a7a723058206accc176979ad8cfffb55b4384dee3df6cad91814ec2a12862a22f461aaa59940029",
"sourceMap": "358:2776:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;358:2776:0;;;;;;;",
"deployedSourceMap": "358:2776:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:67:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;666:67:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;666:67:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2446:220:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2446:220:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:154:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:154:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;702:83:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;702:83:4;;;;;;;;;;;;;;;;;;;;;;;2952:180:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2952:180:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1772:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1772:162:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:74:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;924:74:6;;;;;;;;;;;;;;;;;;;;;;;;;;;458:31:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;458:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3677:330:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3677:330:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;349:71:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;349:71:5;;;;;;;;;;;;;;;;;;;;;;;;;;1342:86:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1342:86:1;;;;;;;;;;;;;;;;;;;;;;;986:98:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:98:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1375:113:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1375:113:3;;;;;;660:87:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;660:87:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;741:70:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;741:70:3;;;;;;;;;;;;;;;;;;;;;;;;;;;1028:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1028:83:3;;;;;;;;;;;;;;;;;;;;;;;;;;;787:71:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;787:71:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;787:71:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4463:340:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4463:340:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2178:132:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2178:132:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2523:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2523:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;730:464;;8:9:-1;5:2;;;30:1;27;20:12;5:2;730:464:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1174:103:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1174:103:1;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:150:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:150:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1649:101:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1649:101:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;363:233:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;363:233:1;;;;;;;;;;;;;;;;;;;;;;;;;;666:67:6;702:6;723:5;716:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:67;:::o;2446:220:4:-;2511:4;2550:1;2531:21;;:7;:21;;;;2523:30;;;;;;;;2592:5;2560:8;:20;2569:10;2560:20;;;;;;;;;;;;;;;:29;2581:7;2560:29;;;;;;;;;;;;;;;:37;;;;2629:7;2608:36;;2617:10;2608:36;;;2638:5;2608:36;;;;;;;;;;;;;;;;;;2657:4;2650:11;;2446:220;;;;:::o;460:154:6:-;1129:20:8;1024:12;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;;;;;1129:35;;1185:4;1170:12;;:19;;;;;;;;;;;;;;;;;;1209:4;1195:11;;:18;;;;;;;;;;;;;;;;;;557:4:6;549:5;:12;;;;;;;;;;;;:::i;:::-;;577:6;567:7;:16;;;;;;;;;;;;:::i;:::-;;601:8;589:9;;:20;;;;;;;;;;;;;;;;;;1243:15:8;1228:12;;:30;;;;;;;;;;;;;;;;;;460:154:6;;;;:::o;702:83:4:-;746:7;768:12;;761:19;;702:83;:::o;2952:180:0:-;926:9:3;:7;:9::i;:::-;918:18;;;;;;;;3054:17:0;3035:16;;:36;;;;;;;;;;;;;;;;;;3087:38;3107:17;3087:38;;;;;;;;;;;;;;;;;;;;;;2952:180;:::o;1772:162::-;1866:4;1372:14;:12;:14::i;:::-;1371:15;:28;;;;1390:9;:7;:9::i;:::-;1371:28;:62;;;;1417:16;;;;;;;;;;;1403:30;;:10;:30;;;1371:62;1363:71;;;;;;;;1889:38;1908:5;1915:3;1920:6;1889:18;:38::i;:::-;1882:45;;1772:162;;;;;:::o;924:74:6:-;964:5;984:9;;;;;;;;;;;977:16;;924:74;:::o;458:31:0:-;;;;;;;;;;;;;:::o;3677:330:4:-;3777:4;3818:1;3799:21;;:7;:21;;;;3791:30;;;;;;;;3868:45;3902:10;3868:8;:20;3877:10;3868:20;;;;;;;;;;;;;;;:29;3889:7;3868:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3828:8;:20;3837:10;3828:20;;;;;;;;;;;;;;;:29;3849:7;3828:29;;;;;;;;;;;;;;;:86;;;;3946:7;3925:60;;3934:10;3925:60;;;3955:8;:20;3964:10;3955:20;;;;;;;;;;;;;;;:29;3976:7;3955:29;;;;;;;;;;;;;;;;3925:60;;;;;;;;;;;;;;;;;;3998:4;3991:11;;3677:330;;;;:::o;349:71:5:-;391:24;397:10;409:5;391;:24::i;:::-;349:71;:::o;1342:86:1:-;1384:7;1410:11;;1403:18;;1342:86;:::o;986:98:4:-;1041:7;1063:9;:16;1073:5;1063:16;;;;;;;;;;;;;;;;1056:23;;986:98;;;:::o;1375:113:3:-;926:9;:7;:9::i;:::-;918:18;;;;;;;;1451:6;;;;;;;;;;;1432:26;;;;;;;;;;;;1481:1;1464:6;;:19;;;;;;;;;;;;;;;;;;1375:113::o;660:87:5:-;720:22;730:4;736:5;720:9;:22::i;:::-;660:87;;:::o;741:70:3:-;778:7;800:6;;;;;;;;;;;793:13;;741:70;:::o;1028:83::-;1067:4;1100:6;;;;;;;;;;;1086:20;;:10;:20;;;1079:27;;1028:83;:::o;787:71:6:-;825:6;846:7;839:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;787:71;:::o;4463:340:4:-;4568:4;4609:1;4590:21;;:7;:21;;;;4582:30;;;;;;;;4659:50;4693:15;4659:8;:20;4668:10;4659:20;;;;;;;;;;;;;;;:29;4680:7;4659:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4619:8;:20;4628:10;4619:20;;;;;;;;;;;;;;;:29;4640:7;4619:29;;;;;;;;;;;;;;;:91;;;;4742:7;4721:60;;4730:10;4721:60;;;4751:8;:20;4760:10;4751:20;;;;;;;;;;;;;;;:29;4772:7;4751:29;;;;;;;;;;;;;;;;4721:60;;;;;;;;;;;;;;;;;;4794:4;4787:11;;4463:340;;;;:::o;2178:132:0:-;2253:4;1372:14;:12;:14::i;:::-;1371:15;:28;;;;1390:9;:7;:9::i;:::-;1371:28;:62;;;;1417:16;;;;;;;;;;;1403:30;;:10;:30;;;1371:62;1363:71;;;;;;;;2276:27;2291:3;2296:6;2276:14;:27::i;:::-;2269:34;;2178:132;;;;:::o;2523:111::-;926:9:3;:7;:9::i;:::-;918:18;;;;;;;;2597:30:0;2612:14;2597;:30::i;:::-;2523:111;:::o;730:464::-;917:15;1096:21;1129:20:8;1024:12;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;;;;;1129:35;;1185:4;1170:12;;:19;;;;;;;;;;;;;;;;;;1209:4;1195:11;;:18;;;;;;;;;;;;;;;;;;795:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;836:2;795:24;:44::i;:::-;849:26;868:6;849:18;:26::i;:::-;935:10;917:28;;956:35;980:10;956:23;:35::i;:::-;1120:29;1096:53;;1159:28;1165:6;1173:13;1159:5;:28::i;:::-;1243:15:8;1228:12;;:30;;;;;;;;;;;;;;;;;;730:464:0;;;;:::o;1174:103:1:-;1218:4;1259:11;;1241:15;:29;1234:36;;1174:103;:::o;1401:150:4:-;1498:7;1522:8;:15;1531:5;1522:15;;;;;;;;;;;;;;;:24;1538:7;1522:24;;;;;;;;;;;;;;;;1515:31;;1401:150;;;;:::o;1649:101:3:-;926:9;:7;:9::i;:::-;918:18;;;;;;;;1717:28;1736:8;1717:18;:28::i;:::-;1649:101;:::o;363:233:1:-;1129:20:8;1024:12;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;;;;;1129:35;;1185:4;1170:12;;:19;;;;;;;;;;;;;;;;;;1209:4;1195:11;;:18;;;;;;;;;;;;;;;;;;469:15:1;448:18;:36;440:45;;;;;;;;510:18;496:11;:32;;;;544:45;558:10;570:18;544:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:15:8;1228:12;;:30;;;;;;;;;;;;;;;;;;363:233:1;;:::o;1349:467:8:-;1396:4;1737:10;1782:7;1770:20;1764:26;;1810:1;1804:2;:7;1797:14;;1349:467;;:::o;2938:288:4:-;3041:4;3072:8;:14;3081:4;3072:14;;;;;;;;;;;;;;;:26;3087:10;3072:26;;;;;;;;;;;;;;;;3063:5;:35;;3055:44;;;;;;;;3135:37;3166:5;3135:8;:14;3144:4;3135:14;;;;;;;;;;;;;;;:26;3150:10;3135:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3106:8;:14;3115:4;3106:14;;;;;;;;;;;;;;;:26;3121:10;3106:26;;;;;;;;;;;;;;;:66;;;;3178:26;3188:4;3194:2;3198:5;3178:9;:26::i;:::-;3217:4;3210:11;;2938:288;;;;;:::o;1273:131:2:-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o;6060:283:4:-;6142:1;6131:7;:12;;;;6123:21;;;;;;;;6168:9;:18;6178:7;6168:18;;;;;;;;;;;;;;;;6158:6;:28;;6150:37;;;;;;;;6209:24;6226:6;6209:12;;:16;;:24;;;;:::i;:::-;6194:12;:39;;;;6260:30;6283:6;6260:9;:18;6270:7;6260:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;6239:9;:18;6249:7;6239:18;;;;;;;;;;;;;;;:51;;;;6327:1;6301:37;;6310:7;6301:37;;;6331:6;6301:37;;;;;;;;;;;;;;;;;;6060:283;;:::o;6650:394::-;6735:8;:17;6744:7;6735:17;;;;;;;;;;;;;;;:29;6753:10;6735:29;;;;;;;;;;;;;;;;6725:6;:39;;6717:48;;;;;;;;6963;7004:6;6963:8;:17;6972:7;6963:17;;;;;;;;;;;;;;;:29;6981:10;6963:29;;;;;;;;;;;;;;;;:33;;:48;;;;:::i;:::-;6931:8;:17;6940:7;6931:17;;;;;;;;;;;;;;;:29;6949:10;6931:29;;;;;;;;;;;;;;;:80;;;;7017:22;7023:7;7032:6;7017:5;:22::i;:::-;6650:394;;:::o;1079:131:2:-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;1703:127:4:-;1764:4;1776:32;1786:10;1798:2;1802:5;1776:9;:32::i;:::-;1821:4;1814:11;;1703:127;;;;:::o;836:260:1:-;929:11;;911:15;:29;903:38;;;;;;;;977:15;959:14;:33;;951:42;;;;;;;;1018:14;1004:11;:28;;;;1048:41;1062:10;1074:14;1048:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;836:260;:::o;605:81:3:-;1129:20:8;1024:12;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;;;;;1129:35;;1185:4;1170:12;;:19;;;;;;;;;;;;;;;;;;1209:4;1195:11;;:18;;;;;;;;;;;;;;;;;;675:6:3;666;;:15;;;;;;;;;;;;;;;;;;1243::8;1228:12;;:30;;;;;;;;;;;;;;;;;;605:81:3;;:::o;5608:239:4:-;5690:1;5679:7;:12;;;;5671:21;;;;;;;;5713:24;5730:6;5713:12;;:16;;:24;;;;:::i;:::-;5698:12;:39;;;;5764:30;5787:6;5764:9;:18;5774:7;5764:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;5743:9;:18;5753:7;5743:18;;;;;;;;;;;;;;;:51;;;;5826:7;5805:37;;5822:1;5805:37;;;5835:6;5805:37;;;;;;;;;;;;;;;;;;5608:239;;:::o;1884:169:3:-;1973:1;1953:22;;:8;:22;;;;1945:31;;;;;;;;2016:8;1987:38;;2008:6;;;;;;;;;;;1987:38;;;;;;;;;;;;2040:8;2031:6;;:17;;;;;;;;;;;;;;;;;;1884:169;:::o;5003:277:4:-;5095:9;:15;5105:4;5095:15;;;;;;;;;;;;;;;;5086:5;:24;;5078:33;;;;;;;;5139:1;5125:16;;:2;:16;;;;5117:25;;;;;;;;5167:26;5187:5;5167:9;:15;5177:4;5167:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;5149:9;:15;5159:4;5149:15;;;;;;;;;;;;;;;:44;;;;5215:24;5233:5;5215:9;:13;5225:2;5215:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;5199:9;:13;5209:2;5199:13;;;;;;;;;;;;;;;:40;;;;5265:2;5250:25;;5259:4;5250:25;;;5269:5;5250:25;;;;;;;;;;;;;;;;;;5003:277;;;:::o;358:2776:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
"source": "pragma solidity 0.4.24;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"openzeppelin-eth/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/IERC20.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/ERC20Burnable.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"./lib/TimeLockable.sol\";\n\ncontract DSLA_v0 is Initializable, ERC20, ERC20Detailed, ERC20Burnable, TimeLockable, Ownable {\n address public crowdsaleAddress;\n\n event CrowdsaleAddressSet(address _crowdsaleAddress);\n\n /**\n * @dev Initializer\n * @param _owner The address of the admin allowed to always transfer tokens\n * set the unlockDate and the crowdsaleAddress\n */\n function initialize(address _owner) public initializer {\n ERC20Detailed.initialize(\"DSLA\", \"DSLA\", 18);\n Ownable.initialize(_owner);\n\n // Mar 15 2019 1PM UTC\n uint unlockDate = 1552654800;\n\n TimeLockable.initialize(unlockDate);\n\n // Tokenbits supply = 10 billions * 10^18 = 1 * 10^28 = 10000000000000000000000000000\n uint256 initialSupply = 10000000000000000000000000000;\n _mint(_owner, initialSupply);\n }\n\n /**\n * @dev Reverts if are not past the releaseDate, if the caller isn't the owner\n * or crowdsaleAddress\n */\n modifier transferLock() {\n require(!isTimeLocked() || isOwner() || msg.sender == crowdsaleAddress);\n _;\n }\n\n /**\n * @dev Extend parent behavior requiring transfer to be out of lock-up period\n * @param _from address The address which you want to send tokens from\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transferFrom(address _from, address _to, uint256 _value) public transferLock returns(bool) {\n return super.transferFrom(_from, _to, _value);\n }\n\n /**\n * @dev Extend parent behavior requiring transfer to be out of lock-up period\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amount of tokens to be transferred\n */\n function transfer(address _to, uint256 _value) public transferLock returns(bool) {\n return super.transfer(_to, _value);\n }\n\n /**\n * @dev Allows contract's owner to edit the date at which users are\n * allowed to trade their token\n * @param _newUnlockDate The release date that will replace the former one\n */\n function setUnlockDate(uint256 _newUnlockDate) public onlyOwner {\n _setUnlockDate(_newUnlockDate);\n }\n\n /**\n * @dev NECESSARY: Allows contract's owner to set the address of the crowdsale's\n * contract. This is necessary so the token contract allows the crowdsale contract\n * to deal the tokens during lock-up period.\n * @param _crowdsaleAddress The address of the crowdsale contract\n */\n function setCrowdsaleAddress(address _crowdsaleAddress) public onlyOwner {\n crowdsaleAddress = _crowdsaleAddress;\n\n emit CrowdsaleAddressSet(_crowdsaleAddress);\n }\n}\n",
"sourcePath": "/home/silversurfer/Development/stacktical-dsla-token/contracts/DSLA_v0.sol",
"ast": {
"absolutePath": "/home/silversurfer/Development/stacktical-dsla-token/contracts/DSLA_v0.sol",
"exportedSymbols": {
"DSLA_v0": [
152
]
},
"id": 153,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:23:0"
},
{
"absolutePath": "zos-lib/contracts/Initializable.sol",
"file": "zos-lib/contracts/Initializable.sol",
"id": 2,
"nodeType": "ImportDirective",
"scope": 153,
"sourceUnit": 1163,
"src": "25:45:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "openzeppelin-eth/contracts/ownership/Ownable.sol",
"file": "openzeppelin-eth/contracts/ownership/Ownable.sol",
"id": 3,
"nodeType": "ImportDirective",
"scope": 153,
"sourceUnit": 482,
"src": "71:58:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol",
"file": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol",
"id": 4,
"nodeType": "ImportDirective",
"scope": 153,
"sourceUnit": 1107,
"src": "130:59:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Burnable.sol",
"file": "openzeppelin-eth/contracts/token/ERC20/ERC20Burnable.sol",
"id": 5,
"nodeType": "ImportDirective",
"scope": 153,
"sourceUnit": 971,
"src": "190:66:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol",
"file": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol",
"id": 6,
"nodeType": "ImportDirective",
"scope": 153,
"sourceUnit": 1038,
"src": "257:66:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/silversurfer/Development/stacktical-dsla-token/contracts/lib/TimeLockable.sol",
"file": "./lib/TimeLockable.sol",
"id": 7,
"nodeType": "ImportDirective",
"scope": 153,
"sourceUnit": 241,
"src": "324:32:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 8,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1162,
"src": "378:13:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$1162",
"typeString": "contract Initializable"
}
},
"id": 9,
"nodeType": "InheritanceSpecifier",
"src": "378:13:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 10,
"name": "ERC20",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 932,
"src": "393:5:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20_$932",
"typeString": "contract ERC20"
}
},
"id": 11,
"nodeType": "InheritanceSpecifier",
"src": "393:5:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 12,
"name": "ERC20Detailed",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1037,
"src": "400:13:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20Detailed_$1037",
"typeString": "contract ERC20Detailed"
}
},
"id": 13,
"nodeType": "InheritanceSpecifier",
"src": "400:13:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 14,
"name": "ERC20Burnable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 970,
"src": "415:13:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20Burnable_$970",
"typeString": "contract ERC20Burnable"
}
},
"id": 15,
"nodeType": "InheritanceSpecifier",
"src": "415:13:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 16,
"name": "TimeLockable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 240,
"src": "430:12:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_TimeLockable_$240",
"typeString": "contract TimeLockable"
}
},
"id": 17,
"nodeType": "InheritanceSpecifier",
"src": "430:12:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 18,
"name": "Ownable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 481,
"src": "444:7:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Ownable_$481",
"typeString": "contract Ownable"
}
},
"id": 19,
"nodeType": "InheritanceSpecifier",
"src": "444:7:0"
}
],
"contractDependencies": [
240,
481,
932,
970,
1037,
1106,
1162
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 152,
"linearizedBaseContracts": [
152,
481,
240,
970,
1037,
932,
1106,
1162
],
"name": "DSLA_v0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 21,
"name": "crowdsaleAddress",
"nodeType": "VariableDeclaration",
"scope": 152,
"src": "458:31:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 20,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "458:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 25,
"name": "CrowdsaleAddressSet",
"nodeType": "EventDefinition",
"parameters": {
"id": 24,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 23,
"indexed": false,
"name": "_crowdsaleAddress",
"nodeType": "VariableDeclaration",
"scope": 25,
"src": "522:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 22,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "522:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "521:27:0"
},
"src": "496:53:0"
},
{
"body": {
"id": 65,
"nodeType": "Block",
"src": "785:409:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "44534c41",
"id": 35,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "820:6:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2a4dbe7e8856d8b9704e0b966b9ede598ae0e4d41a10cfd81bf33aa2d01ce0d1",
"typeString": "literal_string \"DSLA\""
},
"value": "DSLA"
},
{
"argumentTypes": null,
"hexValue": "44534c41",
"id": 36,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "828:6:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2a4dbe7e8856d8b9704e0b966b9ede598ae0e4d41a10cfd81bf33aa2d01ce0d1",
"typeString": "literal_string \"DSLA\""
},
"value": "DSLA"
},
{
"argumentTypes": null,
"hexValue": "3138",
"id": 37,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "836:2:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_2a4dbe7e8856d8b9704e0b966b9ede598ae0e4d41a10cfd81bf33aa2d01ce0d1",
"typeString": "literal_string \"DSLA\""
},
{
"typeIdentifier": "t_stringliteral_2a4dbe7e8856d8b9704e0b966b9ede598ae0e4d41a10cfd81bf33aa2d01ce0d1",
"typeString": "literal_string \"DSLA\""
},
{
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
}
],
"expression": {
"argumentTypes": null,
"id": 32,
"name": "ERC20Detailed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1037,
"src": "795:13:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$1037_$",
"typeString": "type(contract ERC20Detailed)"
}
},
"id": 34,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 1008,
"src": "795:24:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$__$",
"typeString": "function (string memory,string memory,uint8)"
}
},
"id": 38,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "795:44:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 39,
"nodeType": "ExpressionStatement",
"src": "795:44:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 43,
"name": "_owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "868:6:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"argumentTypes": null,
"id": 40,
"name": "Ownable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 481,
"src": "849:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Ownable_$481_$",
"typeString": "type(contract Ownable)"
}
},
"id": 42,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 397,
"src": "849:18:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 44,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "849:26:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 45,
"nodeType": "ExpressionStatement",
"src": "849:26:0"
},
{
"assignments": [
47
],
"declarations": [
{
"constant": false,
"id": 47,
"name": "unlockDate",
"nodeType": "VariableDeclaration",
"scope": 66,
"src": "917:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 46,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "917:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 49,
"initialValue": {
"argumentTypes": null,
"hexValue": "31353532363534383030",
"id": 48,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "935:10:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1552654800_by_1",
"typeString": "int_const 1552654800"
},
"value": "1552654800"
},
"nodeType": "VariableDeclarationStatement",
"src": "917:28:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 53,
"name": "unlockDate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "980:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 50,
"name": "TimeLockable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 240,
"src": "956:12:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_TimeLockable_$240_$",
"typeString": "type(contract TimeLockable)"
}
},
"id": 52,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 190,
"src": "956:23:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 54,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "956:35:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 55,
"nodeType": "ExpressionStatement",
"src": "956:35:0"
},
{
"assignments": [
57
],
"declarations": [
{
"constant": false,
"id": 57,
"name": "initialSupply",
"nodeType": "VariableDeclaration",
"scope": 66,
"src": "1096:21:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 56,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1096:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 59,
"initialValue": {
"argumentTypes": null,
"hexValue": "3130303030303030303030303030303030303030303030303030303030",
"id": 58,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1120:29:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10000000000000000000000000000_by_1",
"typeString": "int_const 10000000000000000000000000000"
},
"value": "10000000000000000000000000000"
},
"nodeType": "VariableDeclarationStatement",
"src": "1096:53:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 61,
"name": "_owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "1165:6:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 62,
"name": "initialSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 57,
"src": "1173:13:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 60,
"name": "_mint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 838,
"src": "1159:5:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 63,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1159:28:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 64,
"nodeType": "ExpressionStatement",
"src": "1159:28:0"
}
]
},
"documentation": "@dev Initializer\n@param _owner The address of the admin allowed to always transfer tokens\nset the unlockDate and the crowdsaleAddress",
"id": 66,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 30,
"modifierName": {
"argumentTypes": null,
"id": 29,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1143,
"src": "773:11:0",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "773:11:0"
}
],
"name": "initialize",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 28,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27,
"name": "_owner",
"nodeType": "VariableDeclaration",
"scope": 66,
"src": "750:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 26,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "750:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "749:16:0"
},
"payable": false,
"returnParameters": {
"id": 31,
"nodeType": "ParameterList",
"parameters": [],
"src": "785:0:0"
},
"scope": 152,
"src": "730:464:0",
"stateMutability": "nonpayable",
"superFunction": 397,
"visibility": "public"
},
{
"body": {
"id": 83,
"nodeType": "Block",
"src": "1353:99:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 79,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 74,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 71,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "1371:15:0",
"subExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 69,
"name": "isTimeLocked",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 231,
"src": "1372:12:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
"typeString": "function () view returns (bool)"
}
},
"id": 70,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1372:14:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "||",
"rightExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 72,
"name": "isOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 425,
"src": "1390:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
"typeString": "function () view returns (bool)"
}
},
"id": 73,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1390:9:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "1371:28:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "||",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 78,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 75,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1177,
"src": "1403:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 76,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1403:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 77,
"name": "crowdsaleAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21,
"src": "1417:16:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1403:30:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "1371:62:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 68,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
1180,
1181
],
"referencedDeclaration": 1180,
"src": "1363:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 80,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1363:71:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 81,
"nodeType": "ExpressionStatement",
"src": "1363:71:0"
},
{
"id": 82,
"nodeType": "PlaceholderStatement",
"src": "1444:1:0"
}
]
},
"documentation": "@dev Reverts if are not past the releaseDate, if the caller isn't the owner\nor crowdsaleAddress",
"id": 84,
"name": "transferLock",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 67,
"nodeType": "ParameterList",
"parameters": [],
"src": "1350:2:0"
},
"src": "1329:123:0",
"visibility": "internal"
},
{
"body": {
"id": 104,
"nodeType": "Block",
"src": "1872:62:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 99,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 86,
"src": "1908:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 100,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 88,
"src": "1915:3:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 101,
"name": "_value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 90,
"src": "1920:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 97,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1207,
"src": "1889:5:0",
"typeDescriptions": {
"typeIdentifier": "t_super$_DSLA_v0_$152",
"typeString": "contract super DSLA_v0"
}
},
"id": 98,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "transferFrom",
"nodeType": "MemberAccess",
"referencedDeclaration": 644,
"src": "1889:18:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,address,uint256) returns (bool)"
}
},
"id": 102,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1889:38:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 96,
"id": 103,
"nodeType": "Return",
"src": "1882:45:0"
}
]
},
"documentation": "@dev Extend parent behavior requiring transfer to be out of lock-up period\n@param _from address The address which you want to send tokens from\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred",
"id": 105,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 93,
"modifierName": {
"argumentTypes": null,
"id": 92,
"name": "transferLock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 84,
"src": "1845:12:0",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "1845:12:0"
}
],
"name": "transferFrom",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 91,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 86,
"name": "_from",
"nodeType": "VariableDeclaration",
"scope": 105,
"src": "1794:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 85,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1794:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 88,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 105,
"src": "1809:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 87,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1809:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 90,
"name": "_value",
"nodeType": "VariableDeclaration",
"scope": 105,
"src": "1822:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 89,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1822:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1793:44:0"
},
"payable": false,
"returnParameters": {
"id": 96,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 95,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 105,
"src": "1866:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 94,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1866:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1865:6:0"
},
"scope": 152,
"src": "1772:162:0",
"stateMutability": "nonpayable",
"superFunction": 644,
"visibility": "public"
},
{
"body": {
"id": 122,
"nodeType": "Block",
"src": "2259:51:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 118,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 107,
"src": "2291:3:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 119,
"name": "_value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 109,
"src": "2296:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 116,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1207,
"src": "2276:5:0",
"typeDescriptions": {
"typeIdentifier": "t_super$_DSLA_v0_$152",
"typeString": "contract super DSLA_v0"
}
},
"id": 117,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "transfer",
"nodeType": "MemberAccess",
"referencedDeclaration": 560,
"src": "2276:14:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) returns (bool)"
}
},
"id": 120,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2276:27:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 115,
"id": 121,
"nodeType": "Return",
"src": "2269:34:0"
}
]
},
"documentation": "@dev Extend parent behavior requiring transfer to be out of lock-up period\n@param _to address The address which you want to transfer to\n@param _value uint256 the amount of tokens to be transferred",
"id": 123,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 112,
"modifierName": {
"argumentTypes": null,
"id": 111,
"name": "transferLock",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 84,
"src": "2232:12:0",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "2232:12:0"
}
],
"name": "transfer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 110,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 107,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 123,
"src": "2196:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 106,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2196:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 109,
"name": "_value",
"nodeType": "VariableDeclaration",
"scope": 123,
"src": "2209:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 108,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2209:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2195:29:0"
},
"payable": false,
"returnParameters": {
"id": 115,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 114,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 123,
"src": "2253:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 113,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2253:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2252:6:0"
},
"scope": 152,
"src": "2178:132:0",
"stateMutability": "nonpayable",
"superFunction": 560,
"visibility": "public"
},
{
"body": {
"id": 134,
"nodeType": "Block",
"src": "2587:47:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 131,
"name": "_newUnlockDate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 125,
"src": "2612:14:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 130,
"name": "_setUnlockDate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 220,
"src": "2597:14:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 132,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2597:30:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 133,
"nodeType": "ExpressionStatement",
"src": "2597:30:0"
}
]
},
"documentation": "@dev Allows contract's owner to edit the date at which users are\nallowed to trade their token\n@param _newUnlockDate The release date that will replace the former one",
"id": 135,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 128,
"modifierName": {
"argumentTypes": null,
"id": 127,
"name": "onlyOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 414,
"src": "2577:9:0",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "2577:9:0"
}
],
"name": "setUnlockDate",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 126,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 125,
"name": "_newUnlockDate",
"nodeType": "VariableDeclaration",
"scope": 135,
"src": "2546:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 124,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2546:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2545:24:0"
},
"payable": false,
"returnParameters": {
"id": 129,
"nodeType": "ParameterList",
"parameters": [],
"src": "2587:0:0"
},
"scope": 152,
"src": "2523:111:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 150,
"nodeType": "Block",
"src": "3025:107:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 144,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 142,
"name": "crowdsaleAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21,
"src": "3035:16:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 143,
"name": "_crowdsaleAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 137,
"src": "3054:17:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3035:36:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 145,
"nodeType": "ExpressionStatement",
"src": "3035:36:0"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 147,
"name": "_crowdsaleAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 137,
"src": "3107:17:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 146,
"name": "CrowdsaleAddressSet",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "3087:19:0",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 148,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3087:38:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 149,
"nodeType": "EmitStatement",
"src": "3082:43:0"
}
]
},
"documentation": "@dev NECESSARY: Allows contract's owner to set the address of the crowdsale's\ncontract. This is necessary so the token contract allows the crowdsale contract\nto deal the tokens during lock-up period.\n@param _crowdsaleAddress The address of the crowdsale contract",
"id": 151,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 140,
"modifierName": {
"argumentTypes": null,
"id": 139,
"name": "onlyOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 414,
"src": "3015:9:0",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "3015:9:0"
}
],
"name": "setCrowdsaleAddress",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 138,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 137,
"name": "_crowdsaleAddress",
"nodeType": "VariableDeclaration",
"scope": 151,
"src": "2981:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 136,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2981:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2980:27:0"
},
"payable": false,
"returnParameters": {
"id": 141,
"nodeType": "ParameterList",
"parameters": [],
"src": "3025:0:0"
},
"scope": 152,
"src": "2952:180:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 153,
"src": "358:2776:0"
}
],
"src": "0:3135:0"
},
"legacyAST": {
"absolutePath": "/home/silversurfer/Development/stacktical-dsla-token/contracts/DSLA_v0.sol",
"exportedSymbols": {
"DSLA_v0": [
152
]
},
"id": 153,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:23:0"
},
{
"absolutePath": "zos-lib/contracts/Initializable.sol",
"file": "zos-lib/contracts/Initializable.sol",
"id": 2,
"nodeType": "ImportDirective",
"scope": 153,
"sourceUnit": 1163,
"src": "25:45:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "openzeppelin-eth/contracts/ownership/Ownable.sol",
"file": "openzeppelin-eth/contracts/ownership/Ownable.sol",
"id": 3,
"nodeType": "ImportDirective",
"scope": 153,
"sourceUnit": 482,
"src": "71:58:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol",
"file": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol",
"id": 4,
"nodeType": "ImportDirective",
"scope": 153,
"sourceUnit": 1107,
"src": "130:59:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Burnable.sol",
"file": "openzeppelin-eth/contracts/token/ERC20/ERC20Burnable.sol",
"id": 5,
"nodeType": "ImportDirective",
"scope": 153,
"sourceUnit": 971,
"src": "190:66:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol",
"file": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol",
"id": 6,
"nodeType": "ImportDirective",
"scope": 153,
"sourceUnit": 1038,
"src": "257:66:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/silversurfer/Development/stacktical-dsla-token/contracts/lib/TimeLockable.sol",
"file": "./lib/TimeLockable.sol",
"id": 7,
"nodeType": "ImportDirective",
"scope": 153,
"sourceUnit": 241,
"src": "324:32:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 8,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1162,
"src": "378:13:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$1162",
"typeString": "contract Initializable"
}
},
"id": 9,
"nodeType": "InheritanceSpecifier",
"src": "378:13:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 10,
"name": "ERC20",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 932,
"src": "393:5:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20_$932",
"typeString": "contract ERC20"
}
},
"id": 11,
"nodeType": "InheritanceSpecifier",
"src": "393:5:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 12,
"name": "ERC20Detailed",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1037,
"src": "400:13:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20Detailed_$1037",
"typeString": "contract ERC20Detailed"
}
},
"id": 13,
"nodeType": "InheritanceSpecifier",
"src": "400:13:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 14,
"name": "ERC20Burnable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 970,
"src": "415:13:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20Burnable_$970",
"typeString": "contract ERC20Burnable"
}
},
"id": 15,
"nodeType": "InheritanceSpecifier",
"src": "415:13:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 16,
"name": "TimeLockable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 240,
"src": "430:12:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_TimeLockable_$240",
"typeString": "contract TimeLockable"
}
},
"id": 17,
"nodeType": "InheritanceSpecifier",
"src": "430:12:0"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 18,
"name": "Ownable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 481,
"src": "444:7:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Ownable_$481",
"typeString": "contract Ownable"
}
},
"id": 19,
"nodeType": "InheritanceSpecifier",
"src": "444:7:0"
}
],
"contractDependencies": [
240,
481,
932,
970,
1037,
1106,
1162
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 152,
"linearizedBaseContracts": [
152,
481,
240,
970,
1037,
932,
1106,
1162
],
"name": "DSLA_v0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 21,
"name": "crowdsaleAddress",
"nodeType": "VariableDeclaration",
"scope": 152,
"src": "458:31:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 20,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "458:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 25,
"name": "CrowdsaleAddressSet",
"nodeType": "EventDefinition",
"parameters": {
"id": 24,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 23,
"indexed": false,
"name": "_crowdsaleAddress",
"nodeType": "VariableDeclaration",
"scope": 25,
"src": "522:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 22,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "522:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "521:27:0"
},
"src": "496:53:0"
},
{
"body": {
"id": 65,
"nodeType": "Block",
"src": "785:409:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "44534c41",
"id": 35,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "820:6:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2a4dbe7e8856d8b9704e0b966b9ede598ae0e4d41a10cfd81bf33aa2d01ce0d1",
"typeString": "literal_string \"DSLA\""
},
"value": "DSLA"
},
{
"argumentTypes": null,
"hexValue": "44534c41",
"id": 36,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "828:6:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2a4dbe7e8856d8b9704e0b966b9ede598ae0e4d41a10cfd81bf33aa2d01ce0d1",
"typeString": "literal_string \"DSLA\""
},
"value": "DSLA"
},
{
"argumentTypes": null,
"hexValue": "3138",
"id": 37,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "836:2:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
},
"value": "18"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_2a4dbe7e8856d8b9704e0b966b9ede598ae0e4d41a10cfd81bf33aa2d01ce0d1",
"typeString": "literal_string \"DSLA\""
},
{
"typeIdentifier": "t_stringliteral_2a4dbe7e8856d8b9704e0b966b9ede598ae0e4d41a10cfd81bf33aa2d01ce0d1",
"typeString": "literal_string \"DSLA\""
},
{
"typeIdentifier": "t_rational_18_by_1",
"typeString": "int_const 18"
}
],
"expression": {
"argumentTypes": null,
"id": 32,
"name": "ERC20Detailed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1037,
"src": "795:13:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$1037_$",
"typeString": "type(contract ERC20Detailed)"
}
},
"id": 34,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 1008,
"src": "795:24:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$__$",
"typeString": "function (string memory,string memory,uint8)"
}
},
"id": 38,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "795:44:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 39,
"nodeType": "ExpressionStatement",
"src": "795:44:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 43,
"name": "_owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "868:6:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"argumentTypes": null,
"id": 40,
"name": "Ownable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 481,
"src": "849:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Ownable_$481_$",
"typeString": "type(contract Ownable)"
}
},
"id": 42,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 397,
"src": "849:18:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 44,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",