@alice-network/zos-lib
Version:
JavaScript library for the ZeppelinOS smart contract platform
489 lines (488 loc) • 429 kB
JSON
{
"contractName": "Package",
"abi": [
{
"constant": false,
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "semanticVersion",
"type": "uint64[3]"
},
{
"indexed": false,
"name": "contractAddress",
"type": "address"
},
{
"indexed": false,
"name": "contentURI",
"type": "bytes"
}
],
"name": "VersionAdded",
"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"
},
{
"constant": true,
"inputs": [
{
"name": "semanticVersion",
"type": "uint64[3]"
}
],
"name": "getVersion",
"outputs": [
{
"name": "contractAddress",
"type": "address"
},
{
"name": "contentURI",
"type": "bytes"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "semanticVersion",
"type": "uint64[3]"
}
],
"name": "getContract",
"outputs": [
{
"name": "contractAddress",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "semanticVersion",
"type": "uint64[3]"
},
{
"name": "contractAddress",
"type": "address"
},
{
"name": "contentURI",
"type": "bytes"
}
],
"name": "addVersion",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "semanticVersion",
"type": "uint64[3]"
}
],
"name": "hasVersion",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getLatest",
"outputs": [
{
"name": "semanticVersion",
"type": "uint64[3]"
},
{
"name": "contractAddress",
"type": "address"
},
{
"name": "contentURI",
"type": "bytes"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "major",
"type": "uint64"
}
],
"name": "getLatestByMajor",
"outputs": [
{
"name": "semanticVersion",
"type": "uint64[3]"
},
{
"name": "contractAddress",
"type": "address"
},
{
"name": "contentURI",
"type": "bytes"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061167f806100536000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631df40eaa1461009e57806335ce401614610130578063715018a61461019a5780638da5cb5b146101b1578063c356d5b014610208578063c36af4601461031a578063d6ef25d51461040c578063e30329e9146104c4578063f2fde38b146105c2575b600080fd5b3480156100aa57600080fd5b506100ee6004803603810190808060600190600380602002604051908101604052809291908260036020028082843782019150505050509192919290505050610605565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013c57600080fd5b50610180600480360381019080806060019060038060200260405190810160405280929190826003602002808284378201915050505050919291929050505061065a565b604051808215151515815260200191505060405180910390f35b3480156101a657600080fd5b506101af6106df565b005b3480156101bd57600080fd5b506101c66107e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021457600080fd5b5061023d600480360381019080803567ffffffffffffffff169060200190929190505050610806565b6040518084600360200280838360005b8381101561026857808201518184015260208101905061024d565b505050509050018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102dd5780820151818401526020810190506102c2565b50505050905090810190601f16801561030a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34801561032657600080fd5b5061032f6109a2565b6040518084600360200280838360005b8381101561035a57808201518184015260208101905061033f565b505050509050018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103cf5780820151818401526020810190506103b4565b50505050905090810190601f1680156103fc5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34801561041857600080fd5b506104c26004803603810190808060600190600380602002604051908101604052809291908260036020028082843782019150505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506109d8565b005b3480156104d057600080fd5b50610514600480360381019080806060019060038060200260405190810160405280929190826003602002808284378201915050505050919291929050505061106f565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561058657808201518184015260208101905061056b565b50505050905090810190601f1680156105b35780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156105ce57600080fd5b50610603600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611169565b005b60008060016000610615856111d0565b6000191660001916815260200190815260200160002090508060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000806001600061066a856111d0565b600019166000191681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561073a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61080e6114a6565b60006060600060016000600260008867ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002054600019166000191681526020019081526020016000209050806000018160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600201826003806020026040519081016040528092919082600380156108f1576020028201916000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff16815260200190600801906020826007010492830192600103820291508084116108ac5790505b50505050509250808054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561098d5780601f106109625761010080835404028352916020019161098d565b820191906000526020600020905b81548152906001019060200180831161097057829003601f168201915b50505050509050935093509350509193909250565b6109aa6114a6565b600060606109cd600360009054906101000a900467ffffffffffffffff16610806565b925092509250909192565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a3b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610ae0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f436f6e747261637420616464726573732069732072657175697265640000000081525060200191505060405180910390fd5b610ae98861065a565b151515610b84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f476976656e2076657273696f6e20697320616c7265616479207265676973746581526020017f72656420696e207061636b61676500000000000000000000000000000000000081525060400191505060405180910390fd5b610b8d88611331565b151515610c02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f56657273696f6e206d757374206265206e6f6e207a65726f000000000000000081525060200191505060405180910390fd5b610c0b886111d0565b94506060604051908101604052808981526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815250600160008760001916600019168152602001908152602001600020600082015181600001906003610c719291906114c9565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019080519060200190610cd5929190611577565b50905050876000600381101515610ce857fe5b60200201519350600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff168467ffffffffffffffff161115610d5e57876000600381101515610d3057fe5b6020020151600360006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b876001600381101515610d6d57fe5b60200201519250876002600381101515610d8357fe5b6020020151915060016000600260008767ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002054600019166000191681526020019081526020016000206000019050610e4a81600380602002604051908101604052809291908260038015610e40576020028201916000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff1681526020019060080190602082600701049283019260010382029150808411610dfb5790505b5050505050611331565b80610e965750806001600381101515610e5f57fe5b600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff168367ffffffffffffffff16115b80610f2f5750806001600381101515610eab57fe5b600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff168367ffffffffffffffff16148015610f2e5750806002600381101515610ef757fe5b600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff168267ffffffffffffffff16115b5b15610f655784600260008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002081600019169055505b7fc5b9b96b4952fc60f5a916010c882de0324dd4fdfaa999f9ad6947f55d8427628888886040518084600360200280838360005b83811015610fb4578082015181840152602081019050610f99565b505050509050018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561102957808201518184015260208101905061100e565b50505050905090810190601f1680156110565780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050505050505050565b60006060600060016000611082866111d0565b6000191660001916815260200190815260200160002090508060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600201808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111585780601f1061112d57610100808354040283529160200191611158565b820191906000526020600020905b81548152906001019060200180831161113b57829003601f168201915b505050505090509250925050915091565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111c457600080fd5b6111cd816113ac565b50565b60008160006003811015156111e157fe5b60200201518260016003811015156111f557fe5b602002015183600260038110151561120957fe5b6020020151604051602001808467ffffffffffffffff1667ffffffffffffffff1678010000000000000000000000000000000000000000000000000281526008018367ffffffffffffffff1667ffffffffffffffff1678010000000000000000000000000000000000000000000000000281526008018267ffffffffffffffff1667ffffffffffffffff16780100000000000000000000000000000000000000000000000002815260080193505050506040516020818303038152906040526040518082805190602001908083835b6020831015156112fd57805182526020820191506020810190506020830392506112d8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60008082600060038110151561134357fe5b602002015167ffffffffffffffff1614801561137c5750600082600160038110151561136b57fe5b602002015167ffffffffffffffff16145b80156113a55750600082600260038110151561139457fe5b602002015167ffffffffffffffff16145b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156113e857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060405190810160405280600390602082028038833980820191505090505090565b82600380016004900481019282156115665791602002820160005b8382111561153057835183826101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555092602001926008016020816007010492830192600103026114e4565b80156115645782816101000a81549067ffffffffffffffff0219169055600801602081600701049283019260010302611530565b505b50905061157391906115f7565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115b857805160ff19168380011785556115e6565b828001600101855582156115e6579182015b828111156115e55782518255916020019190600101906115ca565b5b5090506115f3919061162e565b5090565b61162b91905b8082111561162757600081816101000a81549067ffffffffffffffff0219169055506001016115fd565b5090565b90565b61165091905b8082111561164c576000816000905550600101611634565b5090565b905600a165627a7a72305820a32a835ea694ca14a0e6e69eba8516da5a0665d544b623a90352437114c10ebf0029",
"deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631df40eaa1461009e57806335ce401614610130578063715018a61461019a5780638da5cb5b146101b1578063c356d5b014610208578063c36af4601461031a578063d6ef25d51461040c578063e30329e9146104c4578063f2fde38b146105c2575b600080fd5b3480156100aa57600080fd5b506100ee6004803603810190808060600190600380602002604051908101604052809291908260036020028082843782019150505050509192919290505050610605565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013c57600080fd5b50610180600480360381019080806060019060038060200260405190810160405280929190826003602002808284378201915050505050919291929050505061065a565b604051808215151515815260200191505060405180910390f35b3480156101a657600080fd5b506101af6106df565b005b3480156101bd57600080fd5b506101c66107e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021457600080fd5b5061023d600480360381019080803567ffffffffffffffff169060200190929190505050610806565b6040518084600360200280838360005b8381101561026857808201518184015260208101905061024d565b505050509050018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156102dd5780820151818401526020810190506102c2565b50505050905090810190601f16801561030a5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34801561032657600080fd5b5061032f6109a2565b6040518084600360200280838360005b8381101561035a57808201518184015260208101905061033f565b505050509050018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103cf5780820151818401526020810190506103b4565b50505050905090810190601f1680156103fc5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34801561041857600080fd5b506104c26004803603810190808060600190600380602002604051908101604052809291908260036020028082843782019150505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506109d8565b005b3480156104d057600080fd5b50610514600480360381019080806060019060038060200260405190810160405280929190826003602002808284378201915050505050919291929050505061106f565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561058657808201518184015260208101905061056b565b50505050905090810190601f1680156105b35780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156105ce57600080fd5b50610603600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611169565b005b60008060016000610615856111d0565b6000191660001916815260200190815260200160002090508060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000806001600061066a856111d0565b600019166000191681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561073a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61080e6114a6565b60006060600060016000600260008867ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002054600019166000191681526020019081526020016000209050806000018160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600201826003806020026040519081016040528092919082600380156108f1576020028201916000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff16815260200190600801906020826007010492830192600103820291508084116108ac5790505b50505050509250808054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561098d5780601f106109625761010080835404028352916020019161098d565b820191906000526020600020905b81548152906001019060200180831161097057829003601f168201915b50505050509050935093509350509193909250565b6109aa6114a6565b600060606109cd600360009054906101000a900467ffffffffffffffff16610806565b925092509250909192565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a3b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610ae0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f436f6e747261637420616464726573732069732072657175697265640000000081525060200191505060405180910390fd5b610ae98861065a565b151515610b84576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f476976656e2076657273696f6e20697320616c7265616479207265676973746581526020017f72656420696e207061636b61676500000000000000000000000000000000000081525060400191505060405180910390fd5b610b8d88611331565b151515610c02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f56657273696f6e206d757374206265206e6f6e207a65726f000000000000000081525060200191505060405180910390fd5b610c0b886111d0565b94506060604051908101604052808981526020018873ffffffffffffffffffffffffffffffffffffffff16815260200187815250600160008760001916600019168152602001908152602001600020600082015181600001906003610c719291906114c9565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019080519060200190610cd5929190611577565b50905050876000600381101515610ce857fe5b60200201519350600360009054906101000a900467ffffffffffffffff1667ffffffffffffffff168467ffffffffffffffff161115610d5e57876000600381101515610d3057fe5b6020020151600360006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b876001600381101515610d6d57fe5b60200201519250876002600381101515610d8357fe5b6020020151915060016000600260008767ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002054600019166000191681526020019081526020016000206000019050610e4a81600380602002604051908101604052809291908260038015610e40576020028201916000905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff1681526020019060080190602082600701049283019260010382029150808411610dfb5790505b5050505050611331565b80610e965750806001600381101515610e5f57fe5b600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff168367ffffffffffffffff16115b80610f2f5750806001600381101515610eab57fe5b600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff168367ffffffffffffffff16148015610f2e5750806002600381101515610ef757fe5b600491828204019190066008029054906101000a900467ffffffffffffffff1667ffffffffffffffff168267ffffffffffffffff16115b5b15610f655784600260008667ffffffffffffffff1667ffffffffffffffff16815260200190815260200160002081600019169055505b7fc5b9b96b4952fc60f5a916010c882de0324dd4fdfaa999f9ad6947f55d8427628888886040518084600360200280838360005b83811015610fb4578082015181840152602081019050610f99565b505050509050018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561102957808201518184015260208101905061100e565b50505050905090810190601f1680156110565780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050505050505050565b60006060600060016000611082866111d0565b6000191660001916815260200190815260200160002090508060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600201808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111585780601f1061112d57610100808354040283529160200191611158565b820191906000526020600020905b81548152906001019060200180831161113b57829003601f168201915b505050505090509250925050915091565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111c457600080fd5b6111cd816113ac565b50565b60008160006003811015156111e157fe5b60200201518260016003811015156111f557fe5b602002015183600260038110151561120957fe5b6020020151604051602001808467ffffffffffffffff1667ffffffffffffffff1678010000000000000000000000000000000000000000000000000281526008018367ffffffffffffffff1667ffffffffffffffff1678010000000000000000000000000000000000000000000000000281526008018267ffffffffffffffff1667ffffffffffffffff16780100000000000000000000000000000000000000000000000002815260080193505050506040516020818303038152906040526040518082805190602001908083835b6020831015156112fd57805182526020820191506020810190506020830392506112d8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60008082600060038110151561134357fe5b602002015167ffffffffffffffff1614801561137c5750600082600160038110151561136b57fe5b602002015167ffffffffffffffff16145b80156113a55750600082600260038110151561139457fe5b602002015167ffffffffffffffff16145b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156113e857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060405190810160405280600390602082028038833980820191505090505090565b82600380016004900481019282156115665791602002820160005b8382111561153057835183826101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555092602001926008016020816007010492830192600103026114e4565b80156115645782816101000a81549067ffffffffffffffff0219169055600801602081600701049283019260010302611530565b505b50905061157391906115f7565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115b857805160ff19168380011785556115e6565b828001600101855582156115e6579182015b828111156115e55782518255916020019190600101906115ca565b5b5090506115f3919061162e565b5090565b61162b91905b8082111561162757600081816101000a81549067ffffffffffffffff0219169055506001016115fd565b5090565b90565b61165091905b8082111561164c576000816000905550600101611634565b5090565b905600a165627a7a72305820a32a835ea694ca14a0e6e69eba8516da5a0665d544b623a90352437114c10ebf0029",
"sourceMap": "454:5458:4:-;;;575:10:29;567:5;;:18;;;;;;;;;;;;;;;;;;454:5458:4;;;;;;",
"deployedSourceMap": "454:5458:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1871:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1871:213:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4029:216;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4029:216:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:29;;;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:29;;;;;;;;;;;;;;;;;;;;;;;;;;;5302:289:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5302:289:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5302:289:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5302:289:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4657:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4657:159:4;;;;;;;;;;;;;;;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;4657:159:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4657:159:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2499:1309;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2499:1309:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:253;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:253:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1311:253:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;1871:213:4;1940:23;1971;1997:8;:46;2006:36;2026:15;2006:19;:36::i;:::-;1997:46;;;;;;;;;;;;;;;;;1971:72;;2056:7;:23;;;;;;;;;;;;2049:30;;1871:213;;;;:::o;4029:216::-;4097:4;4109:23;4135:8;:46;4144:36;4164:15;4144:19;:36::i;:::-;4135:46;;;;;;;;;;;;;;;;;4109:72;;4238:1;4194:46;;4202:7;:23;;;;;;;;;;;;4194:46;;;;4187:53;;4029:216;;;;:::o;827:111:29:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;238:20::-;;;;;;;;;;;;;:::o;5302:289:4:-;5363:25;;:::i;:::-;5390:23;5415:16;5439:23;5465:8;:37;5474:20;:27;5495:5;5474:27;;;;;;;;;;;;;;;;5465:37;;;;;;;;;;;;;;;;;5439:63;;5516:7;:23;;5541:7;:23;;;;;;;;;;;;5566:7;:18;;5508:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5302:289;;;;;;:::o;4657:159::-;4699:25;;:::i;:::-;4726:23;4751:16;4782:29;4799:11;;;;;;;;;;;4782:16;:29::i;:::-;4775:36;;;;;;4657:159;;;:::o;2499:1309::-;2888:17;3063:12;3224;3263;3302:31;719:5:29;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2647:1:4;2620:29;;:15;:29;;;;2612:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2697:27;2708:15;2697:10;:27::i;:::-;2696:28;2688:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2790:38;2812:15;2790:21;:38::i;:::-;2789:39;2781:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2908:36;2928:15;2908:19;:36::i;:::-;2888:56;;2972:53;;;;;;;;;2980:15;2972:53;;;;2997:15;2972:53;;;;;;3014:10;2972:53;;;2950:8;:19;2959:9;2950:19;;;;;;;;;;;;;;;;;:75;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;3078:15;3094:1;3078:18;;;;;;;;;;;;;3063:33;;3114:11;;;;;;;;;;;3106:19;;:5;:19;;;3102:72;;;3149:15;3165:1;3149:18;;;;;;;;;;;;;3135:11;;:32;;;;;;;;;;;;;;;;;;3102:72;3239:15;3255:1;3239:18;;;;;;;;;;;;;3224:33;;3278:15;3294:1;3278:18;;;;;;;;;;;;;3263:33;;3336:8;:37;3345:20;:27;3366:5;3345:27;;;;;;;;;;;;;;;;3336:37;;;;;;;;;;;;;;;;;:53;;3302:87;;3399:44;3421:21;3399:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;:44::i;:::-;:125;;;;3499:21;3521:1;3499:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3491:32;;:5;:32;;;3399:125;:239;;;;3577:21;3599:1;3577:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3568:33;;:5;:33;;;:69;;;;;3613:21;3635:1;3613:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3605:32;;:5;:32;;;3568:69;3399:239;3395:339;;;3718:9;3688:20;:27;3709:5;3688:27;;;;;;;;;;;;;;;:39;;;;;;;3395:339;3745:58;3758:15;3775;3792:10;3745:58;;;;;;;;;;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;3745:58:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3745:58:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2499:1309;;;;;;;;:::o;1311:253::-;1379:23;1404:16;1428:23;1454:8;:46;1463:36;1483:15;1463:19;:36::i;:::-;1454:46;;;;;;;;;;;;;;;;;1428:72;;1514:7;:23;;;;;;;;;;;;1539:7;:18;;1506:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:253;;;;:::o;1100:103:29:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;5595:161:4:-;5666:7;5715;5723:1;5715:10;;;;;;;;;;;;;5727:7;5735:1;5727:10;;;;;;;;;;;;;5739:7;5747:1;5739:10;;;;;;;;;;;;;5698:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5698:52:4;;;5688:63;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5688:63:4;;;;;;;;;;;;;;;;5681:70;;5595:161;;;:::o;5760:150::-;5833:4;5866:1;5852:7;5860:1;5852:10;;;;;;;;;;;;;:15;;;:34;;;;;5885:1;5871:7;5879:1;5871:10;;;;;;;;;;;;;:15;;;5852:34;:53;;;;;5904:1;5890:7;5898:1;5890:10;;;;;;;;;;;;;:15;;;5852:53;5845:60;;5760:150;;;:::o;1338:171:29:-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o;454:5458:4:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;454:5458:4;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
"source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n/**\n * @title Package\n * @dev A package is composed by a set of versions, identified via semantic versioning,\n * where each version has a contract address that refers to a reusable implementation,\n * plus an optional content URI with metadata. Note that the semver identifier is restricted\n * to major, minor, and patch, as prerelease tags are not supported.\n */\ncontract Package is Ownable {\n /**\n * @dev Emitted when a version is added to the package.\n * @param semanticVersion Name of the added version.\n * @param contractAddress Contract associated with the version.\n * @param contentURI Optional content URI with metadata of the version.\n */\n event VersionAdded(uint64[3] semanticVersion, address contractAddress, bytes contentURI);\n\n struct Version {\n uint64[3] semanticVersion;\n address contractAddress;\n bytes contentURI; \n }\n\n mapping (bytes32 => Version) internal versions;\n mapping (uint64 => bytes32) internal majorToLatestVersion;\n uint64 internal latestMajor;\n\n /**\n * @dev Returns a version given its semver identifier.\n * @param semanticVersion Semver identifier of the version.\n * @return Contract address and content URI for the version, or zero if not exists.\n */\n function getVersion(uint64[3] semanticVersion) public view returns (address contractAddress, bytes contentURI) {\n Version storage version = versions[semanticVersionHash(semanticVersion)];\n return (version.contractAddress, version.contentURI); \n }\n\n /**\n * @dev Returns a contract for a version given its semver identifier.\n * This method is equivalent to `getVersion`, but returns only the contract address.\n * @param semanticVersion Semver identifier of the version.\n * @return Contract address for the version, or zero if not exists.\n */\n function getContract(uint64[3] semanticVersion) public view returns (address contractAddress) {\n Version storage version = versions[semanticVersionHash(semanticVersion)];\n return version.contractAddress;\n }\n\n /**\n * @dev Adds a new version to the package. Only the Owner can add new versions.\n * Reverts if the specified semver identifier already exists. \n * Emits a `VersionAdded` event if successful.\n * @param semanticVersion Semver identifier of the version.\n * @param contractAddress Contract address for the version, must be non-zero.\n * @param contentURI Optional content URI for the version.\n */\n function addVersion(uint64[3] semanticVersion, address contractAddress, bytes contentURI) public onlyOwner {\n require(contractAddress != address(0), \"Contract address is required\");\n require(!hasVersion(semanticVersion), \"Given version is already registered in package\");\n require(!semanticVersionIsZero(semanticVersion), \"Version must be non zero\");\n\n // Register version\n bytes32 versionId = semanticVersionHash(semanticVersion);\n versions[versionId] = Version(semanticVersion, contractAddress, contentURI);\n \n // Update latest major\n uint64 major = semanticVersion[0];\n if (major > latestMajor) {\n latestMajor = semanticVersion[0];\n }\n\n // Update latest version for this major\n uint64 minor = semanticVersion[1];\n uint64 patch = semanticVersion[2];\n uint64[3] latestVersionForMajor = versions[majorToLatestVersion[major]].semanticVersion;\n if (semanticVersionIsZero(latestVersionForMajor) // No latest was set for this major\n || (minor > latestVersionForMajor[1]) // Or current minor is greater \n || (minor == latestVersionForMajor[1] && patch > latestVersionForMajor[2]) // Or current patch is greater\n ) { \n majorToLatestVersion[major] = versionId;\n }\n\n emit VersionAdded(semanticVersion, contractAddress, contentURI);\n }\n\n /**\n * @dev Checks whether a version is present in the package.\n * @param semanticVersion Semver identifier of the version.\n * @return true if the version is registered in this package, false otherwise.\n */\n function hasVersion(uint64[3] semanticVersion) public view returns (bool) {\n Version storage version = versions[semanticVersionHash(semanticVersion)];\n return address(version.contractAddress) != address(0);\n }\n\n /**\n * @dev Returns the version with the highest semver identifier registered in the package.\n * For instance, if `1.2.0`, `1.3.0`, and `2.0.0` are present, will always return `2.0.0`, regardless \n * of the order in which they were registered. Returns zero if no versions are registered.\n * @return Semver identifier, contract address, and content URI for the version, or zero if not exists.\n */\n function getLatest() public view returns (uint64[3] semanticVersion, address contractAddress, bytes contentURI) {\n return getLatestByMajor(latestMajor);\n }\n\n /**\n * @dev Returns the version with the highest semver identifier for the given major.\n * For instance, if `1.2.0`, `1.3.0`, and `2.0.0` are present, will return `1.3.0` for major `1`, \n * regardless of the order in which they were registered. Returns zero if no versions are registered\n * for the specified major.\n * @param major Major identifier to query\n * @return Semver identifier, contract address, and content URI for the version, or zero if not exists.\n */\n function getLatestByMajor(uint64 major) public view returns (uint64[3] semanticVersion, address contractAddress, bytes contentURI) {\n Version storage version = versions[majorToLatestVersion[major]];\n return (version.semanticVersion, version.contractAddress, version.contentURI); \n }\n\n function semanticVersionHash(uint64[3] version) internal pure returns (bytes32) {\n return keccak256(abi.encodePacked(version[0], version[1], version[2]));\n }\n\n function semanticVersionIsZero(uint64[3] version) internal pure returns (bool) {\n return version[0] == 0 && version[1] == 0 && version[2] == 0;\n }\n}\n",
"sourcePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/application/Package.sol",
"ast": {
"absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/application/Package.sol",
"exportedSymbols": {
"Package": [
776
]
},
"id": 777,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 437,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:4"
},
{
"absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
"file": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
"id": 438,
"nodeType": "ImportDirective",
"scope": 777,
"sourceUnit": 3143,
"src": "26:63:4",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 439,
"name": "Ownable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3142,
"src": "474:7:4",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Ownable_$3142",
"typeString": "contract Ownable"
}
},
"id": 440,
"nodeType": "InheritanceSpecifier",
"src": "474:7:4"
}
],
"contractDependencies": [
3142
],
"contractKind": "contract",
"documentation": "@title Package\n@dev A package is composed by a set of versions, identified via semantic versioning,\nwhere each version has a contract address that refers to a reusable implementation,\nplus an optional content URI with metadata. Note that the semver identifier is restricted\nto major, minor, and patch, as prerelease tags are not supported.",
"fullyImplemented": true,
"id": 776,
"linearizedBaseContracts": [
776,
3142
],
"name": "Package",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": "@dev Emitted when a version is added to the package.\n@param semanticVersion Name of the added version.\n@param contractAddress Contract associated with the version.\n@param contentURI Optional content URI with metadata of the version.",
"id": 450,
"name": "VersionAdded",
"nodeType": "EventDefinition",
"parameters": {
"id": 449,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 444,
"indexed": false,
"name": "semanticVersion",
"nodeType": "VariableDeclaration",
"scope": 450,
"src": "770:25:4",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint64_$3_memory_ptr",
"typeString": "uint64[3]"
},
"typeName": {
"baseType": {
"id": 441,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "770:6:4",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"id": 443,
"length": {
"argumentTypes": null,
"hexValue": "33",
"id": 442,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "777:1:4",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
},
"value": "3"
},
"nodeType": "ArrayTypeName",
"src": "770:9:4",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint64_$3_storage_ptr",
"typeString": "uint64[3]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 446,
"indexed": false,
"name": "contractAddress",
"nodeType": "VariableDeclaration",
"scope": 450,
"src": "797:23:4",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 445,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "797:7:4",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 448,
"indexed": false,
"name": "contentURI",
"nodeType": "VariableDeclaration",
"scope": 450,
"src": "822:16:4",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 447,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "822:5:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "769:70:4"
},
"src": "751:89:4"
},
{
"canonicalName": "Package.Version",
"id": 459,
"members": [
{
"constant": false,
"id": 454,
"name": "semanticVersion",
"nodeType": "VariableDeclaration",
"scope": 459,
"src": "865:25:4",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint64_$3_storage_ptr",
"typeString": "uint64[3]"
},
"typeName": {
"baseType": {
"id": 451,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "865:6:4",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"id": 453,
"length": {
"argumentTypes": null,
"hexValue": "33",
"id": 452,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "872:1:4",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
},
"value": "3"
},
"nodeType": "ArrayTypeName",
"src": "865:9:4",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint64_$3_storage_ptr",
"typeString": "uint64[3]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 456,
"name": "contractAddress",
"nodeType": "VariableDeclaration",
"scope": 459,
"src": "896:23:4",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",