Documentation ¶
Index ¶
- Variables
- func GetAddress(name string) (string, error)
- func LoadConfig(filePath string) error
- type AddressConfig
- type Contract
- type ContractCaller
- func (_Contract *ContractCaller) GetAllPosts(opts *bind.CallOpts) ([]PostStoragePost, error)
- func (_Contract *ContractCaller) GetAllUsers(opts *bind.CallOpts) ([]common.Address, error)
- func (_Contract *ContractCaller) GetPostByID(opts *bind.CallOpts, id *big.Int) (PostStoragePost, error)
- func (_Contract *ContractCaller) GetPostByIndex(opts *bind.CallOpts, user common.Address, index *big.Int) (PostStoragePost, error)
- func (_Contract *ContractCaller) GetPostsPaginated(opts *bind.CallOpts, page *big.Int, pageSize *big.Int) ([]PostStoragePost, error)
- func (_Contract *ContractCaller) GetUsersPost(opts *bind.CallOpts, user common.Address) ([]PostStoragePost, error)
- func (_Contract *ContractCaller) GetUsersPostPaginated(opts *bind.CallOpts, user common.Address, page *big.Int, pageSize *big.Int) ([]PostStoragePost, error)
- func (_Contract *ContractCaller) PostCounter(opts *bind.CallOpts) (*big.Int, error)
- func (_Contract *ContractCaller) UserPosts(opts *bind.CallOpts, arg0 common.Address, arg1 *big.Int) (struct{ ... }, error)
- func (_Contract *ContractCaller) Users(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error)
- type ContractCallerRaw
- type ContractCallerSession
- func (_Contract *ContractCallerSession) GetAllPosts() ([]PostStoragePost, error)
- func (_Contract *ContractCallerSession) GetAllUsers() ([]common.Address, error)
- func (_Contract *ContractCallerSession) GetPostByID(id *big.Int) (PostStoragePost, error)
- func (_Contract *ContractCallerSession) GetPostByIndex(user common.Address, index *big.Int) (PostStoragePost, error)
- func (_Contract *ContractCallerSession) GetPostsPaginated(page *big.Int, pageSize *big.Int) ([]PostStoragePost, error)
- func (_Contract *ContractCallerSession) GetUsersPost(user common.Address) ([]PostStoragePost, error)
- func (_Contract *ContractCallerSession) GetUsersPostPaginated(user common.Address, page *big.Int, pageSize *big.Int) ([]PostStoragePost, error)
- func (_Contract *ContractCallerSession) PostCounter() (*big.Int, error)
- func (_Contract *ContractCallerSession) UserPosts(arg0 common.Address, arg1 *big.Int) (struct{ ... }, error)
- func (_Contract *ContractCallerSession) Users(arg0 *big.Int) (common.Address, error)
- type ContractFilterer
- func (_Contract *ContractFilterer) FilterPostPublished(opts *bind.FilterOpts, author []common.Address) (*ContractPostPublishedIterator, error)
- func (_Contract *ContractFilterer) ParsePostPublished(log types.Log) (*ContractPostPublished, error)
- func (_Contract *ContractFilterer) WatchPostPublished(opts *bind.WatchOpts, sink chan<- *ContractPostPublished, ...) (event.Subscription, error)
- type ContractPostPublished
- type ContractPostPublishedIterator
- type ContractRaw
- func (_Contract *ContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, ...) error
- func (_Contract *ContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)
- func (_Contract *ContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)
- type ContractSession
- func (_Contract *ContractSession) GetAllPosts() ([]PostStoragePost, error)
- func (_Contract *ContractSession) GetAllUsers() ([]common.Address, error)
- func (_Contract *ContractSession) GetPostByID(id *big.Int) (PostStoragePost, error)
- func (_Contract *ContractSession) GetPostByIndex(user common.Address, index *big.Int) (PostStoragePost, error)
- func (_Contract *ContractSession) GetPostsPaginated(page *big.Int, pageSize *big.Int) ([]PostStoragePost, error)
- func (_Contract *ContractSession) GetUsersPost(user common.Address) ([]PostStoragePost, error)
- func (_Contract *ContractSession) GetUsersPostPaginated(user common.Address, page *big.Int, pageSize *big.Int) ([]PostStoragePost, error)
- func (_Contract *ContractSession) Post(_title string, _content string, _category uint8, _tags []string, ...) (*types.Transaction, error)
- func (_Contract *ContractSession) PostCounter() (*big.Int, error)
- func (_Contract *ContractSession) UserPosts(arg0 common.Address, arg1 *big.Int) (struct{ ... }, error)
- func (_Contract *ContractSession) Users(arg0 *big.Int) (common.Address, error)
- type ContractTransactor
- type ContractTransactorRaw
- type ContractTransactorSession
- type PostContract
- type PostStoragePost
Constants ¶
This section is empty.
Variables ¶
var ContractABI = ContractMetaData.ABI
ContractABI is the input ABI used to generate the binding from. Deprecated: Use ContractMetaData.ABI instead.
var ContractBin = ContractMetaData.Bin
ContractBin is the compiled bytecode used for deploying new contracts. Deprecated: Use ContractMetaData.Bin instead.
var ContractMetaData = &bind.MetaData{
ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"indexed\":false,\"internalType\":\"enumPostStorage.Category\",\"name\":\"category\",\"type\":\"uint8\"}],\"name\":\"PostPublished\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getAllPosts\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"content\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"enumPostStorage.Category\",\"name\":\"category\",\"type\":\"uint8\"},{\"internalType\":\"string[]\",\"name\":\"media_names\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"media_urls\",\"type\":\"string[]\"}],\"internalType\":\"structPostStorage.Post[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllUsers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getPostByID\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"content\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"enumPostStorage.Category\",\"name\":\"category\",\"type\":\"uint8\"},{\"internalType\":\"string[]\",\"name\":\"media_names\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"media_urls\",\"type\":\"string[]\"}],\"internalType\":\"structPostStorage.Post\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getPostByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"content\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"enumPostStorage.Category\",\"name\":\"category\",\"type\":\"uint8\"},{\"internalType\":\"string[]\",\"name\":\"media_names\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"media_urls\",\"type\":\"string[]\"}],\"internalType\":\"structPostStorage.Post\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"page\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pageSize\",\"type\":\"uint256\"}],\"name\":\"getPostsPaginated\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"content\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"enumPostStorage.Category\",\"name\":\"category\",\"type\":\"uint8\"},{\"internalType\":\"string[]\",\"name\":\"media_names\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"media_urls\",\"type\":\"string[]\"}],\"internalType\":\"structPostStorage.Post[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"getUsersPost\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"content\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"enumPostStorage.Category\",\"name\":\"category\",\"type\":\"uint8\"},{\"internalType\":\"string[]\",\"name\":\"media_names\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"media_urls\",\"type\":\"string[]\"}],\"internalType\":\"structPostStorage.Post[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"page\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pageSize\",\"type\":\"uint256\"}],\"name\":\"getUsersPostPaginated\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"content\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"tags\",\"type\":\"string[]\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"enumPostStorage.Category\",\"name\":\"category\",\"type\":\"uint8\"},{\"internalType\":\"string[]\",\"name\":\"media_names\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"media_urls\",\"type\":\"string[]\"}],\"internalType\":\"structPostStorage.Post[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_content\",\"type\":\"string\"},{\"internalType\":\"enumPostStorage.Category\",\"name\":\"_category\",\"type\":\"uint8\"},{\"internalType\":\"string[]\",\"name\":\"_tags\",\"type\":\"string[]\"},{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"_media_names\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"_media_urls\",\"type\":\"string[]\"}],\"name\":\"post\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"postCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"userPosts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"author\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"title\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"content\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"enumPostStorage.Category\",\"name\":\"category\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"users\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]",
Bin: "0x608060405234801561001057600080fd5b50614326806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80634b9ce4a5116100715780634b9ce4a51461017a5780635645c1e7146101965780637c7bf4df146101c65780638064d149146101f6578063e2842d791461022b578063fd78a37514610249576100a9565b806309b3d75e146100ae57806330561100146100cc578063365b98b2146100ea5780633aa5cc941461011a5780633e92733e1461014a575b600080fd5b6100b6610279565b6040516100c39190613d7c565b60405180910390f35b6100d461027f565b6040516100e19190613cb8565b60405180910390f35b61010460048036038101906100ff9190613665565b610a56565b6040516101119190613c7b565b60405180910390f35b610134600480360381019061012f919061349b565b610a95565b6040516101419190613cb8565b60405180910390f35b610164600480360381019061015f919061368e565b610fd3565b6040516101719190613cb8565b60405180910390f35b610194600480360381019061018f919061354f565b611866565b005b6101b060048036038101906101ab9190613665565b611d6f565b6040516101bd9190613d5a565b60405180910390f35b6101e060048036038101906101db91906134c4565b612297565b6040516101ed9190613d5a565b60405180910390f35b610210600480360381019061020b91906134c4565b61285a565b60405161022296959493929190613d97565b60405180910390f35b6102336129f0565b6040516102409190613c96565b60405180910390f35b610263600480360381019061025e9190613500565b612a7e565b6040516102709190613cb8565b60405180910390f35b60035481565b60606000805b60028054905081101561035857600080600283815481106102cf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050826103439190613fcf565b9150808061035090614188565b915050610285565b5060008167ffffffffffffffff81111561039b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156103d457816020015b6103c161316c565b8152602001906001900390816103b95790505b5090506000805b600280549050811015610a4c57600080600060028481548110610427577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561097f578382906000526020600020906009020160405180610120016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160028201805461054090614156565b80601f016020809104026020016040519081016040528092919081815260200182805461056c90614156565b80156105b95780601f1061058e576101008083540402835291602001916105b9565b820191906000526020600020905b81548152906001019060200180831161059c57829003601f168201915b505050505081526020016003820180546105d290614156565b80601f01602080910402602001604051908101604052809291908181526020018280546105fe90614156565b801561064b5780601f106106205761010080835404028352916020019161064b565b820191906000526020600020905b81548152906001019060200180831161062e57829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561072557838290600052602060002001805461069890614156565b80601f01602080910402602001604051908101604052809291908181526020018280546106c490614156565b80156107115780601f106106e657610100808354040283529160200191610711565b820191906000526020600020905b8154815290600101906020018083116106f457829003601f168201915b505050505081526020019060010190610679565b505050508152602001600582015481526020016006820160009054906101000a900460ff166002811115610782577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028111156107ba577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200160078201805480602002602001604051908101604052809291908181526020016000905b8282101561088f57838290600052602060002001805461080290614156565b80601f016020809104026020016040519081016040528092919081815260200182805461082e90614156565b801561087b5780601f106108505761010080835404028352916020019161087b565b820191906000526020600020905b81548152906001019060200180831161085e57829003601f168201915b5050505050815260200190600101906107e3565b50505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b828210156109685783829060005260206000200180546108db90614156565b80601f016020809104026020016040519081016040528092919081815260200182805461090790614156565b80156109545780601f1061092957610100808354040283529160200191610954565b820191906000526020600020905b81548152906001019060200180831161093757829003601f168201915b5050505050815260200190600101906108bc565b5050505081525050815260200190600101906104ac565b50505050905060005b8151811015610a37578181815181106109ca577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151858581518110610a0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101819052508380610a2190614188565b9450508080610a2f90614188565b915050610988565b50508080610a4490614188565b9150506103db565b5081935050505090565b60028181548110610a6657600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015610fc8578382906000526020600020906009020160405180610120016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282018054610b8990614156565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb590614156565b8015610c025780601f10610bd757610100808354040283529160200191610c02565b820191906000526020600020905b815481529060010190602001808311610be557829003601f168201915b50505050508152602001600382018054610c1b90614156565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4790614156565b8015610c945780601f10610c6957610100808354040283529160200191610c94565b820191906000526020600020905b815481529060010190602001808311610c7757829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610d6e578382906000526020600020018054610ce190614156565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0d90614156565b8015610d5a5780601f10610d2f57610100808354040283529160200191610d5a565b820191906000526020600020905b815481529060010190602001808311610d3d57829003601f168201915b505050505081526020019060010190610cc2565b505050508152602001600582015481526020016006820160009054906101000a900460ff166002811115610dcb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002811115610e03577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200160078201805480602002602001604051908101604052809291908181526020016000905b82821015610ed8578382906000526020600020018054610e4b90614156565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7790614156565b8015610ec45780601f10610e9957610100808354040283529160200191610ec4565b820191906000526020600020905b815481529060010190602001808311610ea757829003601f168201915b505050505081526020019060010190610e2c565b50505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b82821015610fb1578382906000526020600020018054610f2490614156565b80601f0160208091040260200160405190810160405280929190818152602001828054610f5090614156565b8015610f9d5780601f10610f7257610100808354040283529160200191610f9d565b820191906000526020600020905b815481529060010190602001808311610f8057829003601f168201915b505050505081526020019060010190610f05565b505050508152505081526020019060010190610af5565b505050509050919050565b60606000805b6002805490508110156110ac5760008060028381548110611023577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050826110979190613fcf565b915080806110a490614188565b915050610fd9565b508083856110ba9190614025565b106110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f190613d3a565b60405180910390fd5b600083856111089190614025565b905060008285836111199190613fcf565b1161112f57848261112a9190613fcf565b611131565b825b905060008282611141919061407f565b67ffffffffffffffff811115611180577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156111b957816020015b6111a661316c565b81526020019060019003908161119e5790505b50905060008060005b6002805490508110156118565760008060006002848154811061120e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015611766578382906000526020600020906009020160405180610120016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160028201805461132790614156565b80601f016020809104026020016040519081016040528092919081815260200182805461135390614156565b80156113a05780601f10611375576101008083540402835291602001916113a0565b820191906000526020600020905b81548152906001019060200180831161138357829003601f168201915b505050505081526020016003820180546113b990614156565b80601f01602080910402602001604051908101604052809291908181526020018280546113e590614156565b80156114325780601f1061140757610100808354040283529160200191611432565b820191906000526020600020905b81548152906001019060200180831161141557829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561150c57838290600052602060002001805461147f90614156565b80601f01602080910402602001604051908101604052809291908181526020018280546114ab90614156565b80156114f85780601f106114cd576101008083540402835291602001916114f8565b820191906000526020600020905b8154815290600101906020018083116114db57829003601f168201915b505050505081526020019060010190611460565b505050508152602001600582015481526020016006820160009054906101000a900460ff166002811115611569577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028111156115a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200160078201805480602002602001604051908101604052809291908181526020016000905b828210156116765783829060005260206000200180546115e990614156565b80601f016020809104026020016040519081016040528092919081815260200182805461161590614156565b80156116625780601f1061163757610100808354040283529160200191611662565b820191906000526020600020905b81548152906001019060200180831161164557829003601f168201915b5050505050815260200190600101906115ca565b50505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b8282101561174f5783829060005260206000200180546116c290614156565b80601f01602080910402602001604051908101604052809291908181526020018280546116ee90614156565b801561173b5780601f106117105761010080835404028352916020019161173b565b820191906000526020600020905b81548152906001019060200180831161171e57829003601f168201915b5050505050815260200190600101906116a3565b505050508152505081526020019060010190611293565b50505050905060005b81518110156118415787841015801561178757508684105b15611820578181815181106117c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151868681518110611806577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250848061181c90614188565b9550505b838061182b90614188565b945050808061183990614188565b91505061176f565b5050808061184e90614188565b9150506111c2565b5082965050505050505092915050565b80518251146118aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a190613cda565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501415611958576002839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6003600081548092919061196b90614188565b91905055506000600354905060006040518061012001604052808381526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018a81526020018981526020018781526020014281526020018860028111156119f8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020018581526020018481525090506000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002090600902016000909190919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019080519060200190611ade929190613206565b506060820151816003019080519060200190611afb929190613206565b506080820151816004019080519060200190611b1892919061328c565b5060a0820151816005015560c08201518160060160006101000a81548160ff02191690836002811115611b74577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060e0820151816007019080519060200190611b9592919061328c565b50610100820151816008019080519060200190611bb392919061328c565b50505080600160008481526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019080519060200190611c37929190613206565b506060820151816003019080519060200190611c54929190613206565b506080820151816004019080519060200190611c7192919061328c565b5060a0820151816005015560c08201518160060160006101000a81548160ff02191690836002811115611ccd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060e0820151816007019080519060200190611cee92919061328c565b50610100820151816008019080519060200190611d0c92919061328c565b509050508473ffffffffffffffffffffffffffffffffffffffff167f87b51da9bcc29a9d1a8655f5b4551037df9275c98217a4fba832a0b9e3c07e6d838b898b604051611d5c9493929190613e06565b60405180910390a2505050505050505050565b611d7761316c565b600060016000848152602001908152602001600020600001541415611dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc890613cfa565b60405180910390fd5b6001600083815260200190815260200160002060405180610120016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282018054611e6090614156565b80601f0160208091040260200160405190810160405280929190818152602001828054611e8c90614156565b8015611ed95780601f10611eae57610100808354040283529160200191611ed9565b820191906000526020600020905b815481529060010190602001808311611ebc57829003601f168201915b50505050508152602001600382018054611ef290614156565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1e90614156565b8015611f6b5780601f10611f4057610100808354040283529160200191611f6b565b820191906000526020600020905b815481529060010190602001808311611f4e57829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015612045578382906000526020600020018054611fb890614156565b80601f0160208091040260200160405190810160405280929190818152602001828054611fe490614156565b80156120315780601f1061200657610100808354040283529160200191612031565b820191906000526020600020905b81548152906001019060200180831161201457829003601f168201915b505050505081526020019060010190611f99565b505050508152602001600582015481526020016006820160009054906101000a900460ff1660028111156120a2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028111156120da577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200160078201805480602002602001604051908101604052809291908181526020016000905b828210156121af57838290600052602060002001805461212290614156565b80601f016020809104026020016040519081016040528092919081815260200182805461214e90614156565b801561219b5780601f106121705761010080835404028352916020019161219b565b820191906000526020600020905b81548152906001019060200180831161217e57829003601f168201915b505050505081526020019060010190612103565b50505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b828210156122885783829060005260206000200180546121fb90614156565b80601f016020809104026020016040519081016040528092919081815260200182805461222790614156565b80156122745780601f1061224957610100808354040283529160200191612274565b820191906000526020600020905b81548152906001019060200180831161225757829003601f168201915b5050505050815260200190600101906121dc565b50505050815250509050919050565b61229f61316c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508210612322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231990613d1a565b60405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110612398577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906009020160405180610120016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160028201805461242290614156565b80601f016020809104026020016040519081016040528092919081815260200182805461244e90614156565b801561249b5780601f106124705761010080835404028352916020019161249b565b820191906000526020600020905b81548152906001019060200180831161247e57829003601f168201915b505050505081526020016003820180546124b490614156565b80601f01602080910402602001604051908101604052809291908181526020018280546124e090614156565b801561252d5780601f106125025761010080835404028352916020019161252d565b820191906000526020600020905b81548152906001019060200180831161251057829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b8282101561260757838290600052602060002001805461257a90614156565b80601f01602080910402602001604051908101604052809291908181526020018280546125a690614156565b80156125f35780601f106125c8576101008083540402835291602001916125f3565b820191906000526020600020905b8154815290600101906020018083116125d657829003601f168201915b50505050508152602001906001019061255b565b505050508152602001600582015481526020016006820160009054906101000a900460ff166002811115612664577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281111561269c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200160078201805480602002602001604051908101604052809291908181526020016000905b828210156127715783829060005260206000200180546126e490614156565b80601f016020809104026020016040519081016040528092919081815260200182805461271090614156565b801561275d5780601f106127325761010080835404028352916020019161275d565b820191906000526020600020905b81548152906001019060200180831161274057829003601f168201915b5050505050815260200190600101906126c5565b50505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b8282101561284a5783829060005260206000200180546127bd90614156565b80601f01602080910402602001604051908101604052809291908181526020018280546127e990614156565b80156128365780601f1061280b57610100808354040283529160200191612836565b820191906000526020600020905b81548152906001019060200180831161281957829003601f168201915b50505050508152602001906001019061279e565b5050505081525050905092915050565b6000602052816000526040600020818154811061287657600080fd5b9060005260206000209060090201600091509150508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020180546128c690614156565b80601f01602080910402602001604051908101604052809291908181526020018280546128f290614156565b801561293f5780601f106129145761010080835404028352916020019161293f565b820191906000526020600020905b81548152906001019060200180831161292257829003601f168201915b50505050509080600301805461295490614156565b80601f016020809104026020016040519081016040528092919081815260200182805461298090614156565b80156129cd5780601f106129a2576101008083540402835291602001916129cd565b820191906000526020600020905b8154815290600101906020018083116129b057829003601f168201915b5050505050908060050154908060060160009054906101000a900460ff16905086565b60606002805480602002602001604051908101604052809291908181526020018280548015612a7457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612a2a575b5050505050905090565b606060008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060008385612ad49190614025565b905060008482612ae49190613fcf565b905082811115612af2578290505b828210612b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2b90613d3a565b60405180910390fd5b60008282612b42919061407f565b67ffffffffffffffff811115612b81577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612bba57816020015b612ba761316c565b815260200190600190039081612b9f5790505b50905060008390505b8281101561315d576000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110612c41577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906009020160405180610120016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282018054612ccb90614156565b80601f0160208091040260200160405190810160405280929190818152602001828054612cf790614156565b8015612d445780601f10612d1957610100808354040283529160200191612d44565b820191906000526020600020905b815481529060010190602001808311612d2757829003601f168201915b50505050508152602001600382018054612d5d90614156565b80601f0160208091040260200160405190810160405280929190818152602001828054612d8990614156565b8015612dd65780601f10612dab57610100808354040283529160200191612dd6565b820191906000526020600020905b815481529060010190602001808311612db957829003601f168201915b5050505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015612eb0578382906000526020600020018054612e2390614156565b80601f0160208091040260200160405190810160405280929190818152602001828054612e4f90614156565b8015612e9c5780601f10612e7157610100808354040283529160200191612e9c565b820191906000526020600020905b815481529060010190602001808311612e7f57829003601f168201915b505050505081526020019060010190612e04565b505050508152602001600582015481526020016006820160009054906101000a900460ff166002811115612f0d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002811115612f45577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200160078201805480602002602001604051908101604052809291908181526020016000905b8282101561301a578382906000526020600020018054612f8d90614156565b80601f0160208091040260200160405190810160405280929190818152602001828054612fb990614156565b80156130065780601f10612fdb57610100808354040283529160200191613006565b820191906000526020600020905b815481529060010190602001808311612fe957829003601f168201915b505050505081526020019060010190612f6e565b50505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b828210156130f357838290600052602060002001805461306690614156565b80601f016020809104026020016040519081016040528092919081815260200182805461309290614156565b80156130df5780601f106130b4576101008083540402835291602001916130df565b820191906000526020600020905b8154815290600101906020018083116130c257829003601f168201915b505050505081526020019060010190613047565b5050505081525050828583613108919061407f565b8151811061313f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181905250808061315590614188565b915050612bc3565b50809450505050509392505050565b60405180610120016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001606081526020016060815260200160008152602001600060028111156131f2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b815260200160608152602001606081525090565b82805461321290614156565b90600052602060002090601f016020900481019282613234576000855561327b565b82601f1061324d57805160ff191683800117855561327b565b8280016001018555821561327b579182015b8281111561327a57825182559160200191906001019061325f565b5b50905061328891906132ec565b5090565b8280548282559060005260206000209081019282156132db579160200282015b828111156132da5782518290805190602001906132ca929190613206565b50916020019190600101906132ac565b5b5090506132e89190613309565b5090565b5b808211156133055760008160009055506001016132ed565b5090565b5b808211156133295760008181613320919061332d565b5060010161330a565b5090565b50805461333990614156565b6000825580601f1061334b575061336a565b601f01602090049060005260206000209081019061336991906132ec565b5b50565b600061338061337b84613e8a565b613e59565b9050808382526020820190508260005b858110156133c057813585016133a6888261345c565b845260208401935060208301925050600181019050613390565b5050509392505050565b60006133dd6133d884613eb6565b613e59565b9050828152602081018484840111156133f557600080fd5b613400848285614114565b509392505050565b600081359050613417816142b2565b92915050565b600082601f83011261342e57600080fd5b813561343e84826020860161336d565b91505092915050565b600081359050613456816142c9565b92915050565b600082601f83011261346d57600080fd5b813561347d8482602086016133ca565b91505092915050565b600081359050613495816142d9565b92915050565b6000602082840312156134ad57600080fd5b60006134bb84828501613408565b91505092915050565b600080604083850312156134d757600080fd5b60006134e585828601613408565b92505060206134f685828601613486565b9150509250929050565b60008060006060848603121561351557600080fd5b600061352386828701613408565b935050602061353486828701613486565b925050604061354586828701613486565b9150509250925092565b600080600080600080600060e0888a03121561356a57600080fd5b600088013567ffffffffffffffff81111561358457600080fd5b6135908a828b0161345c565b975050602088013567ffffffffffffffff8111156135ad57600080fd5b6135b98a828b0161345c565b96505060406135ca8a828b01613447565b955050606088013567ffffffffffffffff8111156135e757600080fd5b6135f38a828b0161341d565b94505060806136048a828b01613408565b93505060a088013567ffffffffffffffff81111561362157600080fd5b61362d8a828b0161341d565b92505060c088013567ffffffffffffffff81111561364a57600080fd5b6136568a828b0161341d565b91505092959891949750929550565b60006020828403121561367757600080fd5b600061368584828501613486565b91505092915050565b600080604083850312156136a157600080fd5b60006136af85828601613486565b92505060206136c085828601613486565b9150509250929050565b60006136d6838361370a565b60208301905092915050565b60006136ee8383613903565b905092915050565b60006137028383613a9b565b905092915050565b613713816140b3565b82525050565b613722816140b3565b82525050565b600061373382613f16565b61373d8185613f69565b935061374883613ee6565b8060005b8381101561377957815161376088826136ca565b975061376b83613f42565b92505060018101905061374c565b5085935050505092915050565b600061379182613f21565b61379b8185613f7a565b9350836020820285016137ad85613ef6565b8060005b858110156137e957848403895281516137ca85826136e2565b94506137d583613f4f565b925060208a019950506001810190506137b1565b50829750879550505050505092915050565b600061380682613f21565b6138108185613f8b565b93508360208202850161382285613ef6565b8060005b8581101561385e578484038952815161383f85826136e2565b945061384a83613f4f565b925060208a01995050600181019050613826565b50829750879550505050505092915050565b600061387b82613f2c565b6138858185613f9c565b93508360208202850161389785613f06565b8060005b858110156138d357848403895281516138b485826136f6565b94506138bf83613f5c565b925060208a0199505060018101905061389b565b50829750879550505050505092915050565b6138ee81614102565b82525050565b6138fd81614102565b82525050565b600061390e82613f37565b6139188185613fad565b9350613928818560208601614123565b6139318161428d565b840191505092915050565b600061394782613f37565b6139518185613fbe565b9350613961818560208601614123565b61396a8161428d565b840191505092915050565b6000613982602a83613fbe565b91507f4d65646961206e616d657320616e642055524c73206172726179206c656e677460008301527f68206d69736d61746368000000000000000000000000000000000000000000006020830152604082019050919050565b60006139e8602083613fbe565b91507f506f73742077697468207468697320494420646f6573206e6f742065786973746000830152602082019050919050565b6000613a28601383613fbe565b91507f506f737420646f6573206e6f74206578697374000000000000000000000000006000830152602082019050919050565b6000613a68601183613fbe565b91507f50616765206f7574206f662072616e67650000000000000000000000000000006000830152602082019050919050565b600061012083016000830151613ab46000860182613c5d565b506020830151613ac7602086018261370a565b5060408301518482036040860152613adf8282613903565b91505060608301518482036060860152613af98282613903565b91505060808301518482036080860152613b138282613786565b91505060a0830151613b2860a0860182613c5d565b5060c0830151613b3b60c08601826138e5565b5060e083015184820360e0860152613b538282613786565b915050610100830151848203610100860152613b6f8282613786565b9150508091505092915050565b600061012083016000830151613b956000860182613c5d565b506020830151613ba8602086018261370a565b5060408301518482036040860152613bc08282613903565b91505060608301518482036060860152613bda8282613903565b91505060808301518482036080860152613bf48282613786565b91505060a0830151613c0960a0860182613c5d565b5060c0830151613c1c60c08601826138e5565b5060e083015184820360e0860152613c348282613786565b915050610100830151848203610100860152613c508282613786565b9150508091505092915050565b613c66816140f8565b82525050565b613c75816140f8565b82525050565b6000602082019050613c906000830184613719565b92915050565b60006020820190508181036000830152613cb08184613728565b905092915050565b60006020820190508181036000830152613cd28184613870565b905092915050565b60006020820190508181036000830152613cf381613975565b9050919050565b60006020820190508181036000830152613d13816139db565b9050919050565b60006020820190508181036000830152613d3381613a1b565b9050919050565b60006020820190508181036000830152613d5381613a5b565b9050919050565b60006020820190508181036000830152613d748184613b7c565b905092915050565b6000602082019050613d916000830184613c6c565b92915050565b600060c082019050613dac6000830189613c6c565b613db96020830188613719565b8181036040830152613dcb818761393c565b90508181036060830152613ddf818661393c565b9050613dee6080830185613c6c565b613dfb60a08301846138f4565b979650505050505050565b6000608082019050613e1b6000830187613c6c565b8181036020830152613e2d818661393c565b90508181036040830152613e4181856137fb565b9050613e5060608301846138f4565b95945050505050565b6000604051905081810181811067ffffffffffffffff82111715613e8057613e7f61425e565b5b8060405250919050565b600067ffffffffffffffff821115613ea557613ea461425e565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613ed157613ed061425e565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613fda826140f8565b9150613fe5836140f8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561401a576140196141d1565b5b828201905092915050565b6000614030826140f8565b915061403b836140f8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614074576140736141d1565b5b828202905092915050565b600061408a826140f8565b9150614095836140f8565b9250828210156140a8576140a76141d1565b5b828203905092915050565b60006140be826140d8565b9050919050565b60008190506140d38261429e565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061410d826140c5565b9050919050565b82818337600083830152505050565b60005b83811015614141578082015181840152602081019050614126565b83811115614150576000848401525b50505050565b6000600282049050600182168061416e57607f821691505b602082108114156141825761418161422f565b5b50919050565b6000614193826140f8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156141c6576141c56141d1565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b600381106142af576142ae614200565b5b50565b6142bb816140b3565b81146142c657600080fd5b50565b600381106142d657600080fd5b50565b6142e2816140f8565b81146142ed57600080fd5b5056fea2646970667358221220263c0f00cda061afddf9a4ebbc2ee83d3c73d86b00ad6380b485ca0a38e41e9a64736f6c63430008000033",
}
ContractMetaData contains all meta data concerning the Contract contract.
Functions ¶
func GetAddress ¶
GetAddress returns the address for the given name
func LoadConfig ¶
LoadConfig loads the JSON configuration from a file
Types ¶
type AddressConfig ¶
AddressConfig represents a mapping of names to their respective addresses
type Contract ¶
type Contract struct { ContractCaller // Read-only binding to the contract ContractTransactor // Write-only binding to the contract ContractFilterer // Log filterer for contract events }
Contract is an auto generated Go binding around an Ethereum contract.
func DeployContract ¶
func DeployContract(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Contract, error)
DeployContract deploys a new Ethereum contract, binding an instance of Contract to it.
func NewContract ¶
NewContract creates a new instance of Contract, bound to a specific deployed contract.
type ContractCaller ¶
type ContractCaller struct {
// contains filtered or unexported fields
}
ContractCaller is an auto generated read-only Go binding around an Ethereum contract.
func NewContractCaller ¶
func NewContractCaller(address common.Address, caller bind.ContractCaller) (*ContractCaller, error)
NewContractCaller creates a new read-only instance of Contract, bound to a specific deployed contract.
func (*ContractCaller) GetAllPosts ¶
func (_Contract *ContractCaller) GetAllPosts(opts *bind.CallOpts) ([]PostStoragePost, error)
GetAllPosts is a free data retrieval call binding the contract method 0x30561100.
Solidity: function getAllPosts() view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[])[])
func (*ContractCaller) GetAllUsers ¶
GetAllUsers is a free data retrieval call binding the contract method 0xe2842d79.
Solidity: function getAllUsers() view returns(address[])
func (*ContractCaller) GetPostByID ¶
func (_Contract *ContractCaller) GetPostByID(opts *bind.CallOpts, id *big.Int) (PostStoragePost, error)
GetPostByID is a free data retrieval call binding the contract method 0x5645c1e7.
Solidity: function getPostByID(uint256 id) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[]))
func (*ContractCaller) GetPostByIndex ¶
func (_Contract *ContractCaller) GetPostByIndex(opts *bind.CallOpts, user common.Address, index *big.Int) (PostStoragePost, error)
GetPostByIndex is a free data retrieval call binding the contract method 0x7c7bf4df.
Solidity: function getPostByIndex(address user, uint256 index) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[]))
func (*ContractCaller) GetPostsPaginated ¶
func (_Contract *ContractCaller) GetPostsPaginated(opts *bind.CallOpts, page *big.Int, pageSize *big.Int) ([]PostStoragePost, error)
GetPostsPaginated is a free data retrieval call binding the contract method 0x3e92733e.
Solidity: function getPostsPaginated(uint256 page, uint256 pageSize) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[])[])
func (*ContractCaller) GetUsersPost ¶
func (_Contract *ContractCaller) GetUsersPost(opts *bind.CallOpts, user common.Address) ([]PostStoragePost, error)
GetUsersPost is a free data retrieval call binding the contract method 0x3aa5cc94.
Solidity: function getUsersPost(address user) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[])[])
func (*ContractCaller) GetUsersPostPaginated ¶
func (_Contract *ContractCaller) GetUsersPostPaginated(opts *bind.CallOpts, user common.Address, page *big.Int, pageSize *big.Int) ([]PostStoragePost, error)
GetUsersPostPaginated is a free data retrieval call binding the contract method 0xfd78a375.
Solidity: function getUsersPostPaginated(address user, uint256 page, uint256 pageSize) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[])[])
func (*ContractCaller) PostCounter ¶
PostCounter is a free data retrieval call binding the contract method 0x09b3d75e.
Solidity: function postCounter() view returns(uint256)
func (*ContractCaller) UserPosts ¶
func (_Contract *ContractCaller) UserPosts(opts *bind.CallOpts, arg0 common.Address, arg1 *big.Int) (struct { Id *big.Int Author common.Address Title string Content string Timestamp *big.Int Category uint8 }, error)
UserPosts is a free data retrieval call binding the contract method 0x8064d149.
Solidity: function userPosts(address , uint256 ) view returns(uint256 id, address author, string title, string content, uint256 timestamp, uint8 category)
type ContractCallerRaw ¶
type ContractCallerRaw struct {
Contract *ContractCaller // Generic read-only contract binding to access the raw methods on
}
ContractCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
func (*ContractCallerRaw) Call ¶
func (_Contract *ContractCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error
Call invokes the (constant) contract method with params as input values and sets the output to result. The result type might be a single field for simple returns, a slice of interfaces for anonymous returns and a struct for named returns.
type ContractCallerSession ¶
type ContractCallerSession struct { Contract *ContractCaller // Generic contract caller binding to set the session for CallOpts bind.CallOpts // Call options to use throughout this session }
ContractCallerSession is an auto generated read-only Go binding around an Ethereum contract, with pre-set call options.
func (*ContractCallerSession) GetAllPosts ¶
func (_Contract *ContractCallerSession) GetAllPosts() ([]PostStoragePost, error)
GetAllPosts is a free data retrieval call binding the contract method 0x30561100.
Solidity: function getAllPosts() view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[])[])
func (*ContractCallerSession) GetAllUsers ¶
func (_Contract *ContractCallerSession) GetAllUsers() ([]common.Address, error)
GetAllUsers is a free data retrieval call binding the contract method 0xe2842d79.
Solidity: function getAllUsers() view returns(address[])
func (*ContractCallerSession) GetPostByID ¶
func (_Contract *ContractCallerSession) GetPostByID(id *big.Int) (PostStoragePost, error)
GetPostByID is a free data retrieval call binding the contract method 0x5645c1e7.
Solidity: function getPostByID(uint256 id) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[]))
func (*ContractCallerSession) GetPostByIndex ¶
func (_Contract *ContractCallerSession) GetPostByIndex(user common.Address, index *big.Int) (PostStoragePost, error)
GetPostByIndex is a free data retrieval call binding the contract method 0x7c7bf4df.
Solidity: function getPostByIndex(address user, uint256 index) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[]))
func (*ContractCallerSession) GetPostsPaginated ¶
func (_Contract *ContractCallerSession) GetPostsPaginated(page *big.Int, pageSize *big.Int) ([]PostStoragePost, error)
GetPostsPaginated is a free data retrieval call binding the contract method 0x3e92733e.
Solidity: function getPostsPaginated(uint256 page, uint256 pageSize) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[])[])
func (*ContractCallerSession) GetUsersPost ¶
func (_Contract *ContractCallerSession) GetUsersPost(user common.Address) ([]PostStoragePost, error)
GetUsersPost is a free data retrieval call binding the contract method 0x3aa5cc94.
Solidity: function getUsersPost(address user) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[])[])
func (*ContractCallerSession) GetUsersPostPaginated ¶
func (_Contract *ContractCallerSession) GetUsersPostPaginated(user common.Address, page *big.Int, pageSize *big.Int) ([]PostStoragePost, error)
GetUsersPostPaginated is a free data retrieval call binding the contract method 0xfd78a375.
Solidity: function getUsersPostPaginated(address user, uint256 page, uint256 pageSize) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[])[])
func (*ContractCallerSession) PostCounter ¶
func (_Contract *ContractCallerSession) PostCounter() (*big.Int, error)
PostCounter is a free data retrieval call binding the contract method 0x09b3d75e.
Solidity: function postCounter() view returns(uint256)
func (*ContractCallerSession) UserPosts ¶
func (_Contract *ContractCallerSession) UserPosts(arg0 common.Address, arg1 *big.Int) (struct { Id *big.Int Author common.Address Title string Content string Timestamp *big.Int Category uint8 }, error)
UserPosts is a free data retrieval call binding the contract method 0x8064d149.
Solidity: function userPosts(address , uint256 ) view returns(uint256 id, address author, string title, string content, uint256 timestamp, uint8 category)
type ContractFilterer ¶
type ContractFilterer struct {
// contains filtered or unexported fields
}
ContractFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
func NewContractFilterer ¶
func NewContractFilterer(address common.Address, filterer bind.ContractFilterer) (*ContractFilterer, error)
NewContractFilterer creates a new log filterer instance of Contract, bound to a specific deployed contract.
func (*ContractFilterer) FilterPostPublished ¶
func (_Contract *ContractFilterer) FilterPostPublished(opts *bind.FilterOpts, author []common.Address) (*ContractPostPublishedIterator, error)
FilterPostPublished is a free log retrieval operation binding the contract event 0x87b51da9bcc29a9d1a8655f5b4551037df9275c98217a4fba832a0b9e3c07e6d.
Solidity: event PostPublished(uint256 id, address indexed author, string title, string[] tags, uint8 category)
func (*ContractFilterer) ParsePostPublished ¶
func (_Contract *ContractFilterer) ParsePostPublished(log types.Log) (*ContractPostPublished, error)
ParsePostPublished is a log parse operation binding the contract event 0x87b51da9bcc29a9d1a8655f5b4551037df9275c98217a4fba832a0b9e3c07e6d.
Solidity: event PostPublished(uint256 id, address indexed author, string title, string[] tags, uint8 category)
func (*ContractFilterer) WatchPostPublished ¶
func (_Contract *ContractFilterer) WatchPostPublished(opts *bind.WatchOpts, sink chan<- *ContractPostPublished, author []common.Address) (event.Subscription, error)
WatchPostPublished is a free log subscription operation binding the contract event 0x87b51da9bcc29a9d1a8655f5b4551037df9275c98217a4fba832a0b9e3c07e6d.
Solidity: event PostPublished(uint256 id, address indexed author, string title, string[] tags, uint8 category)
type ContractPostPublished ¶
type ContractPostPublished struct { Id *big.Int Author common.Address Title string Tags []string Category uint8 Raw types.Log // Blockchain specific contextual infos }
ContractPostPublished represents a PostPublished event raised by the Contract contract.
type ContractPostPublishedIterator ¶
type ContractPostPublishedIterator struct { Event *ContractPostPublished // Event containing the contract specifics and raw log // contains filtered or unexported fields }
ContractPostPublishedIterator is returned from FilterPostPublished and is used to iterate over the raw logs and unpacked data for PostPublished events raised by the Contract contract.
func (*ContractPostPublishedIterator) Close ¶
func (it *ContractPostPublishedIterator) Close() error
Close terminates the iteration process, releasing any pending underlying resources.
func (*ContractPostPublishedIterator) Error ¶
func (it *ContractPostPublishedIterator) Error() error
Error returns any retrieval or parsing error occurred during filtering.
func (*ContractPostPublishedIterator) Next ¶
func (it *ContractPostPublishedIterator) Next() bool
Next advances the iterator to the subsequent event, returning whether there are any more events found. In case of a retrieval or parsing error, false is returned and Error() can be queried for the exact failure.
type ContractRaw ¶
type ContractRaw struct {
Contract *Contract // Generic contract binding to access the raw methods on
}
ContractRaw is an auto generated low-level Go binding around an Ethereum contract.
func (*ContractRaw) Call ¶
func (_Contract *ContractRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error
Call invokes the (constant) contract method with params as input values and sets the output to result. The result type might be a single field for simple returns, a slice of interfaces for anonymous returns and a struct for named returns.
func (*ContractRaw) Transact ¶
func (_Contract *ContractRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)
Transact invokes the (paid) contract method with params as input values.
func (*ContractRaw) Transfer ¶
func (_Contract *ContractRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)
Transfer initiates a plain transaction to move funds to the contract, calling its default method if one is available.
type ContractSession ¶
type ContractSession struct { Contract *Contract // Generic contract binding to set the session for CallOpts bind.CallOpts // Call options to use throughout this session TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session }
ContractSession is an auto generated Go binding around an Ethereum contract, with pre-set call and transact options.
func (*ContractSession) GetAllPosts ¶
func (_Contract *ContractSession) GetAllPosts() ([]PostStoragePost, error)
GetAllPosts is a free data retrieval call binding the contract method 0x30561100.
Solidity: function getAllPosts() view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[])[])
func (*ContractSession) GetAllUsers ¶
func (_Contract *ContractSession) GetAllUsers() ([]common.Address, error)
GetAllUsers is a free data retrieval call binding the contract method 0xe2842d79.
Solidity: function getAllUsers() view returns(address[])
func (*ContractSession) GetPostByID ¶
func (_Contract *ContractSession) GetPostByID(id *big.Int) (PostStoragePost, error)
GetPostByID is a free data retrieval call binding the contract method 0x5645c1e7.
Solidity: function getPostByID(uint256 id) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[]))
func (*ContractSession) GetPostByIndex ¶
func (_Contract *ContractSession) GetPostByIndex(user common.Address, index *big.Int) (PostStoragePost, error)
GetPostByIndex is a free data retrieval call binding the contract method 0x7c7bf4df.
Solidity: function getPostByIndex(address user, uint256 index) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[]))
func (*ContractSession) GetPostsPaginated ¶
func (_Contract *ContractSession) GetPostsPaginated(page *big.Int, pageSize *big.Int) ([]PostStoragePost, error)
GetPostsPaginated is a free data retrieval call binding the contract method 0x3e92733e.
Solidity: function getPostsPaginated(uint256 page, uint256 pageSize) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[])[])
func (*ContractSession) GetUsersPost ¶
func (_Contract *ContractSession) GetUsersPost(user common.Address) ([]PostStoragePost, error)
GetUsersPost is a free data retrieval call binding the contract method 0x3aa5cc94.
Solidity: function getUsersPost(address user) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[])[])
func (*ContractSession) GetUsersPostPaginated ¶
func (_Contract *ContractSession) GetUsersPostPaginated(user common.Address, page *big.Int, pageSize *big.Int) ([]PostStoragePost, error)
GetUsersPostPaginated is a free data retrieval call binding the contract method 0xfd78a375.
Solidity: function getUsersPostPaginated(address user, uint256 page, uint256 pageSize) view returns((uint256,address,string,string,string[],uint256,uint8,string[],string[])[])
func (*ContractSession) Post ¶
func (_Contract *ContractSession) Post(_title string, _content string, _category uint8, _tags []string, author common.Address, _media_names []string, _media_urls []string) (*types.Transaction, error)
Post is a paid mutator transaction binding the contract method 0x4b9ce4a5.
Solidity: function post(string _title, string _content, uint8 _category, string[] _tags, address author, string[] _media_names, string[] _media_urls) returns()
func (*ContractSession) PostCounter ¶
func (_Contract *ContractSession) PostCounter() (*big.Int, error)
PostCounter is a free data retrieval call binding the contract method 0x09b3d75e.
Solidity: function postCounter() view returns(uint256)
func (*ContractSession) UserPosts ¶
func (_Contract *ContractSession) UserPosts(arg0 common.Address, arg1 *big.Int) (struct { Id *big.Int Author common.Address Title string Content string Timestamp *big.Int Category uint8 }, error)
UserPosts is a free data retrieval call binding the contract method 0x8064d149.
Solidity: function userPosts(address , uint256 ) view returns(uint256 id, address author, string title, string content, uint256 timestamp, uint8 category)
type ContractTransactor ¶
type ContractTransactor struct {
// contains filtered or unexported fields
}
ContractTransactor is an auto generated write-only Go binding around an Ethereum contract.
func NewContractTransactor ¶
func NewContractTransactor(address common.Address, transactor bind.ContractTransactor) (*ContractTransactor, error)
NewContractTransactor creates a new write-only instance of Contract, bound to a specific deployed contract.
func (*ContractTransactor) Post ¶
func (_Contract *ContractTransactor) Post(opts *bind.TransactOpts, _title string, _content string, _category uint8, _tags []string, author common.Address, _media_names []string, _media_urls []string) (*types.Transaction, error)
Post is a paid mutator transaction binding the contract method 0x4b9ce4a5.
Solidity: function post(string _title, string _content, uint8 _category, string[] _tags, address author, string[] _media_names, string[] _media_urls) returns()
type ContractTransactorRaw ¶
type ContractTransactorRaw struct {
Contract *ContractTransactor // Generic write-only contract binding to access the raw methods on
}
ContractTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
func (*ContractTransactorRaw) Transact ¶
func (_Contract *ContractTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error)
Transact invokes the (paid) contract method with params as input values.
func (*ContractTransactorRaw) Transfer ¶
func (_Contract *ContractTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error)
Transfer initiates a plain transaction to move funds to the contract, calling its default method if one is available.
type ContractTransactorSession ¶
type ContractTransactorSession struct { Contract *ContractTransactor // Generic contract transactor binding to set the session for TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session }
ContractTransactorSession is an auto generated write-only Go binding around an Ethereum contract, with pre-set transact options.
func (*ContractTransactorSession) Post ¶
func (_Contract *ContractTransactorSession) Post(_title string, _content string, _category uint8, _tags []string, author common.Address, _media_names []string, _media_urls []string) (*types.Transaction, error)
Post is a paid mutator transaction binding the contract method 0x4b9ce4a5.
Solidity: function post(string _title, string _content, uint8 _category, string[] _tags, address author, string[] _media_names, string[] _media_urls) returns()
type PostContract ¶
func NewPostContract ¶
func NewPostContract(client *ethclient.Client, instance *Contract) (*PostContract, error)