From 886810b6005b2edb170620004c7739edb49ff047 Mon Sep 17 00:00:00 2001 From: Max Kaye Date: Mon, 25 Jun 2018 10:20:36 +1000 Subject: [PATCH] Prod deployment + small updates --- .gitignore | 2 + compileProd.sh | 33 + contracts/CommunityAuction.sol | 2 +- dist/2018-06-18-ix-deployment/BBFarm.sol | 2890 ++++++++++++++++ .../CommunityAuction.sol | 306 ++ .../EnsOwnerProxy.sol | 552 ++++ dist/2018-06-18-ix-deployment/SVIndex.sol | 2891 +++++++++++++++++ .../SVIndexBackend.sol | 663 ++++ dist/2018-06-18-ix-deployment/SVPayments.sol | 650 ++++ .../bb_farm/BBFarm.abi | 1 + .../bb_farm/BBFarm.abi.json | 1 + .../bb_farm/BBFarm.bin | 1 + .../bb_farm/BBFarmEvents.abi | 1 + .../bb_farm/BBFarmEvents.bin | 1 + .../bb_farm/BBFarmIface.abi | 1 + .../bb_farm/BBFarmIface.bin | 0 .../bb_farm/BBLib.abi | 1 + .../bb_farm/BBLib.bin | 1 + .../bb_farm/BPackedUtils.abi | 1 + .../bb_farm/BPackedUtils.bin | 1 + .../bb_farm/BytesLib.abi | 1 + .../bb_farm/BytesLib.bin | 1 + .../bb_farm/CanReclaimToken.abi | 1 + .../bb_farm/CanReclaimToken.bin | 1 + .../bb_farm/CommAuctionIface.abi | 1 + .../bb_farm/CommAuctionIface.bin | 0 .../bb_farm/CommunityAuctionSimple.abi | 1 + .../bb_farm/CommunityAuctionSimple.bin | 1 + .../bb_farm/ENSIface.abi | 1 + .../bb_farm/ENSIface.bin | 0 .../bb_farm/ERC20Interface.abi | 1 + .../bb_farm/ERC20Interface.bin | 0 .../bb_farm/EnsOwnerProxy.abi | 1 + .../bb_farm/EnsOwnerProxy.bin | 1 + .../bb_farm/IxBackendIface.abi | 1 + .../bb_farm/IxBackendIface.bin | 0 .../bb_farm/IxIface.abi | 1 + .../bb_farm/IxIface.bin | 0 .../bb_farm/IxLib.abi | 1 + .../bb_farm/IxLib.bin | 1 + .../bb_farm/IxPaymentsIface.abi | 1 + .../bb_farm/IxPaymentsIface.bin | 0 .../bb_farm/PublicResolver.abi | 1 + .../bb_farm/PublicResolver.bin | 1 + .../bb_farm/SVBallotConsts.abi | 1 + .../bb_farm/SVBallotConsts.bin | 1 + .../bb_farm/SVIndex.abi | 1 + .../bb_farm/SVIndex.bin | 1 + .../bb_farm/SVIndexBackend.abi | 1 + .../bb_farm/SVIndexBackend.bin | 1 + .../bb_farm/SVPayments.abi | 1 + .../bb_farm/SVPayments.bin | 1 + .../bb_farm/SafeMath.abi | 1 + .../bb_farm/SafeMath.bin | 1 + .../bb_farm/SvEnsIface.abi | 1 + .../bb_farm/SvEnsIface.bin | 0 .../bb_farm/controlledIface.abi | 1 + .../bb_farm/controlledIface.bin | 0 .../bb_farm/hasAdmins.abi | 1 + .../bb_farm/hasAdmins.bin | 1 + .../bb_farm/hasVersion.abi | 1 + .../bb_farm/hasVersion.bin | 0 .../bb_farm/ixBackendEvents.abi | 1 + .../bb_farm/ixBackendEvents.bin | 1 + .../bb_farm/ixEvents.abi | 1 + .../bb_farm/ixEvents.bin | 1 + .../bb_farm/ixPaymentEvents.abi | 1 + .../bb_farm/ixPaymentEvents.bin | 1 + .../bb_farm/owned.abi | 1 + .../bb_farm/owned.bin | 1 + .../bb_farm/payoutAllC.abi | 1 + .../bb_farm/payoutAllC.bin | 1 + .../bb_farm/payoutAllCSettable.abi | 1 + .../bb_farm/payoutAllCSettable.bin | 0 .../bb_farm/permissioned.abi | 1 + .../bb_farm/permissioned.bin | 1 + .../bb_farm/safeSend.abi | 1 + .../bb_farm/safeSend.bin | 1 + .../bb_farm/upgradePtr.abi | 1 + .../bb_farm/upgradePtr.bin | 1 + .../community_auction/CommAuctionIface.abi | 1 + .../community_auction/CommAuctionIface.bin | 0 .../CommunityAuctionSimple.abi | 1 + .../CommunityAuctionSimple.bin | 1 + .../community_auction/ERC20Interface.abi | 1 + .../community_auction/ERC20Interface.bin | 0 .../community_auction/controlledIface.abi | 1 + .../community_auction/controlledIface.bin | 0 .../community_auction/hasAdmins.abi | 1 + .../community_auction/hasAdmins.bin | 1 + .../community_auction/owned.abi | 1 + .../community_auction/owned.bin | 1 + .../community_auction/payoutAllC.abi | 1 + .../community_auction/payoutAllC.bin | 1 + .../community_auction/payoutAllCSettable.abi | 1 + .../community_auction/payoutAllCSettable.bin | 0 .../community_auction/permissioned.abi | 1 + .../community_auction/permissioned.bin | 1 + .../community_auction/safeSend.abi | 1 + .../community_auction/safeSend.bin | 1 + .../community_auction/upgradePtr.abi | 1 + .../community_auction/upgradePtr.bin | 1 + .../ens_owner_proxy/ENSIface.abi | 1 + .../ens_owner_proxy/ENSIface.bin | 0 .../ens_owner_proxy/ERC20Interface.abi | 1 + .../ens_owner_proxy/ERC20Interface.bin | 0 .../ens_owner_proxy/EnsOwnerProxy.abi | 1 + .../ens_owner_proxy/EnsOwnerProxy.abi.json | 1 + .../ens_owner_proxy/EnsOwnerProxy.bin | 1 + .../ens_owner_proxy/PublicResolver.abi | 1 + .../ens_owner_proxy/PublicResolver.bin | 1 + .../ens_owner_proxy/SvEnsIface.abi | 1 + .../ens_owner_proxy/SvEnsIface.bin | 0 .../ens_owner_proxy/controlledIface.abi | 1 + .../ens_owner_proxy/controlledIface.bin | 0 .../ens_owner_proxy/hasAdmins.abi | 1 + .../ens_owner_proxy/hasAdmins.bin | 1 + .../ens_owner_proxy/owned.abi | 1 + .../ens_owner_proxy/owned.bin | 1 + .../ens_owner_proxy/payoutAllC.abi | 1 + .../ens_owner_proxy/payoutAllC.bin | 1 + .../ens_owner_proxy/payoutAllCSettable.abi | 1 + .../ens_owner_proxy/payoutAllCSettable.bin | 0 .../ens_owner_proxy/permissioned.abi | 1 + .../ens_owner_proxy/permissioned.bin | 1 + .../ens_owner_proxy/safeSend.abi | 1 + .../ens_owner_proxy/safeSend.bin | 1 + .../ens_owner_proxy/upgradePtr.abi | 1 + .../ens_owner_proxy/upgradePtr.bin | 1 + .../sv_index/BBFarm.abi | 1 + .../sv_index/BBFarm.bin | 1 + .../sv_index/BBFarmEvents.abi | 1 + .../sv_index/BBFarmEvents.bin | 1 + .../sv_index/BBFarmIface.abi | 1 + .../sv_index/BBFarmIface.bin | 0 .../sv_index/BBLib.abi | 1 + .../sv_index/BBLib.bin | 1 + .../sv_index/BPackedUtils.abi | 1 + .../sv_index/BPackedUtils.bin | 1 + .../sv_index/BytesLib.abi | 1 + .../sv_index/BytesLib.bin | 1 + .../sv_index/CanReclaimToken.abi | 1 + .../sv_index/CanReclaimToken.bin | 1 + .../sv_index/CommAuctionIface.abi | 1 + .../sv_index/CommAuctionIface.bin | 0 .../sv_index/CommunityAuctionSimple.abi | 1 + .../sv_index/CommunityAuctionSimple.bin | 1 + .../sv_index/ENSIface.abi | 1 + .../sv_index/ENSIface.bin | 0 .../sv_index/ERC20Interface.abi | 1 + .../sv_index/ERC20Interface.bin | 0 .../sv_index/EnsOwnerProxy.abi | 1 + .../sv_index/EnsOwnerProxy.bin | 1 + .../sv_index/IxBackendIface.abi | 1 + .../sv_index/IxBackendIface.bin | 0 .../sv_index/IxIface.abi | 1 + .../sv_index/IxIface.bin | 0 .../sv_index/IxLib.abi | 1 + .../sv_index/IxLib.bin | 1 + .../sv_index/IxPaymentsIface.abi | 1 + .../sv_index/IxPaymentsIface.bin | 0 .../sv_index/PublicResolver.abi | 1 + .../sv_index/PublicResolver.bin | 1 + .../sv_index/SVBallotConsts.abi | 1 + .../sv_index/SVBallotConsts.bin | 1 + .../sv_index/SVIndex.abi | 1 + .../sv_index/SVIndex.abi.json | 1 + .../sv_index/SVIndex.bin | 1 + .../sv_index/SVIndexBackend.abi | 1 + .../sv_index/SVIndexBackend.bin | 1 + .../sv_index/SVPayments.abi | 1 + .../sv_index/SVPayments.bin | 1 + .../sv_index/SafeMath.abi | 1 + .../sv_index/SafeMath.bin | 1 + .../sv_index/SvEnsIface.abi | 1 + .../sv_index/SvEnsIface.bin | 0 .../sv_index/controlledIface.abi | 1 + .../sv_index/controlledIface.bin | 0 .../sv_index/hasAdmins.abi | 1 + .../sv_index/hasAdmins.bin | 1 + .../sv_index/hasVersion.abi | 1 + .../sv_index/hasVersion.bin | 0 .../sv_index/ixBackendEvents.abi | 1 + .../sv_index/ixBackendEvents.bin | 1 + .../sv_index/ixEvents.abi | 1 + .../sv_index/ixEvents.bin | 1 + .../sv_index/ixPaymentEvents.abi | 1 + .../sv_index/ixPaymentEvents.bin | 1 + .../sv_index/owned.abi | 1 + .../sv_index/owned.bin | 1 + .../sv_index/payoutAllC.abi | 1 + .../sv_index/payoutAllC.bin | 1 + .../sv_index/payoutAllCSettable.abi | 1 + .../sv_index/payoutAllCSettable.bin | 0 .../sv_index/permissioned.abi | 1 + .../sv_index/permissioned.bin | 1 + .../sv_index/safeSend.abi | 1 + .../sv_index/safeSend.bin | 1 + .../sv_index/upgradePtr.abi | 1 + .../sv_index/upgradePtr.bin | 1 + .../sv_index_backend/BPackedUtils.abi | 1 + .../sv_index_backend/BPackedUtils.bin | 1 + .../sv_index_backend/ERC20Interface.abi | 1 + .../sv_index_backend/ERC20Interface.bin | 0 .../sv_index_backend/IxBackendIface.abi | 1 + .../sv_index_backend/IxBackendIface.bin | 0 .../sv_index_backend/SVIndexBackend.abi | 1 + .../sv_index_backend/SVIndexBackend.abi.json | 1 + .../sv_index_backend/SVIndexBackend.bin | 1 + .../sv_index_backend/controlledIface.abi | 1 + .../sv_index_backend/controlledIface.bin | 0 .../sv_index_backend/hasAdmins.abi | 1 + .../sv_index_backend/hasAdmins.bin | 1 + .../sv_index_backend/hasVersion.abi | 1 + .../sv_index_backend/hasVersion.bin | 0 .../sv_index_backend/ixBackendEvents.abi | 1 + .../sv_index_backend/ixBackendEvents.bin | 1 + .../sv_index_backend/owned.abi | 1 + .../sv_index_backend/owned.bin | 1 + .../sv_index_backend/payoutAllC.abi | 1 + .../sv_index_backend/payoutAllC.bin | 1 + .../sv_index_backend/payoutAllCSettable.abi | 1 + .../sv_index_backend/payoutAllCSettable.bin | 0 .../sv_index_backend/permissioned.abi | 1 + .../sv_index_backend/permissioned.bin | 1 + .../sv_index_backend/safeSend.abi | 1 + .../sv_index_backend/safeSend.bin | 1 + .../sv_index_backend/upgradePtr.abi | 1 + .../sv_index_backend/upgradePtr.bin | 1 + .../sv_payments/CanReclaimToken.abi | 1 + .../sv_payments/CanReclaimToken.bin | 1 + .../sv_payments/ERC20Interface.abi | 1 + .../sv_payments/ERC20Interface.bin | 0 .../sv_payments/IxPaymentsIface.abi | 1 + .../sv_payments/IxPaymentsIface.bin | 0 .../sv_payments/SVPayments.abi | 1 + .../sv_payments/SVPayments.abi.json | 1 + .../sv_payments/SVPayments.bin | 1 + .../sv_payments/SafeMath.abi | 1 + .../sv_payments/SafeMath.bin | 1 + .../sv_payments/controlledIface.abi | 1 + .../sv_payments/controlledIface.bin | 0 .../sv_payments/hasAdmins.abi | 1 + .../sv_payments/hasAdmins.bin | 1 + .../sv_payments/hasVersion.abi | 1 + .../sv_payments/hasVersion.bin | 0 .../sv_payments/ixPaymentEvents.abi | 1 + .../sv_payments/ixPaymentEvents.bin | 1 + .../sv_payments/owned.abi | 1 + .../sv_payments/owned.bin | 1 + .../sv_payments/payoutAllC.abi | 1 + .../sv_payments/payoutAllC.bin | 1 + .../sv_payments/payoutAllCSettable.abi | 1 + .../sv_payments/payoutAllCSettable.bin | 0 .../sv_payments/permissioned.abi | 1 + .../sv_payments/permissioned.bin | 1 + .../sv_payments/safeSend.abi | 1 + .../sv_payments/safeSend.bin | 1 + .../sv_payments/upgradePtr.abi | 1 + .../sv_payments/upgradePtr.bin | 1 + docs/Deployment.md | 12 +- 261 files changed, 8204 insertions(+), 7 deletions(-) create mode 100755 compileProd.sh create mode 100644 dist/2018-06-18-ix-deployment/BBFarm.sol create mode 100644 dist/2018-06-18-ix-deployment/CommunityAuction.sol create mode 100644 dist/2018-06-18-ix-deployment/EnsOwnerProxy.sol create mode 100644 dist/2018-06-18-ix-deployment/SVIndex.sol create mode 100644 dist/2018-06-18-ix-deployment/SVIndexBackend.sol create mode 100644 dist/2018-06-18-ix-deployment/SVPayments.sol create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/BBFarm.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/BBFarm.abi.json create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/BBFarm.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/BBFarmEvents.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/BBFarmEvents.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/BBFarmIface.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/BBFarmIface.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/BBLib.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/BBLib.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/BPackedUtils.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/BPackedUtils.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/BytesLib.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/BytesLib.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/CanReclaimToken.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/CanReclaimToken.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/CommAuctionIface.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/CommAuctionIface.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/CommunityAuctionSimple.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/CommunityAuctionSimple.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/ENSIface.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/ENSIface.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/ERC20Interface.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/ERC20Interface.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/EnsOwnerProxy.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/EnsOwnerProxy.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/IxBackendIface.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/IxBackendIface.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/IxIface.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/IxIface.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/IxLib.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/IxLib.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/IxPaymentsIface.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/IxPaymentsIface.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/PublicResolver.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/PublicResolver.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/SVBallotConsts.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/SVBallotConsts.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/SVIndex.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/SVIndex.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/SVIndexBackend.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/SVIndexBackend.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/SVPayments.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/SVPayments.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/SafeMath.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/SafeMath.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/SvEnsIface.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/SvEnsIface.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/controlledIface.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/controlledIface.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/hasAdmins.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/hasAdmins.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/hasVersion.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/hasVersion.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/ixBackendEvents.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/ixBackendEvents.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/ixEvents.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/ixEvents.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/ixPaymentEvents.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/ixPaymentEvents.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/owned.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/owned.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/payoutAllC.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/payoutAllC.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/payoutAllCSettable.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/payoutAllCSettable.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/permissioned.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/permissioned.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/safeSend.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/safeSend.bin create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/upgradePtr.abi create mode 100644 dist/2018-06-18-ix-deployment/bb_farm/upgradePtr.bin create mode 100644 dist/2018-06-18-ix-deployment/community_auction/CommAuctionIface.abi create mode 100644 dist/2018-06-18-ix-deployment/community_auction/CommAuctionIface.bin create mode 100644 dist/2018-06-18-ix-deployment/community_auction/CommunityAuctionSimple.abi create mode 100644 dist/2018-06-18-ix-deployment/community_auction/CommunityAuctionSimple.bin create mode 100644 dist/2018-06-18-ix-deployment/community_auction/ERC20Interface.abi create mode 100644 dist/2018-06-18-ix-deployment/community_auction/ERC20Interface.bin create mode 100644 dist/2018-06-18-ix-deployment/community_auction/controlledIface.abi create mode 100644 dist/2018-06-18-ix-deployment/community_auction/controlledIface.bin create mode 100644 dist/2018-06-18-ix-deployment/community_auction/hasAdmins.abi create mode 100644 dist/2018-06-18-ix-deployment/community_auction/hasAdmins.bin create mode 100644 dist/2018-06-18-ix-deployment/community_auction/owned.abi create mode 100644 dist/2018-06-18-ix-deployment/community_auction/owned.bin create mode 100644 dist/2018-06-18-ix-deployment/community_auction/payoutAllC.abi create mode 100644 dist/2018-06-18-ix-deployment/community_auction/payoutAllC.bin create mode 100644 dist/2018-06-18-ix-deployment/community_auction/payoutAllCSettable.abi create mode 100644 dist/2018-06-18-ix-deployment/community_auction/payoutAllCSettable.bin create mode 100644 dist/2018-06-18-ix-deployment/community_auction/permissioned.abi create mode 100644 dist/2018-06-18-ix-deployment/community_auction/permissioned.bin create mode 100644 dist/2018-06-18-ix-deployment/community_auction/safeSend.abi create mode 100644 dist/2018-06-18-ix-deployment/community_auction/safeSend.bin create mode 100644 dist/2018-06-18-ix-deployment/community_auction/upgradePtr.abi create mode 100644 dist/2018-06-18-ix-deployment/community_auction/upgradePtr.bin create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/ENSIface.abi create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/ENSIface.bin create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/ERC20Interface.abi create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/ERC20Interface.bin create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/EnsOwnerProxy.abi create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/EnsOwnerProxy.abi.json create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/EnsOwnerProxy.bin create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/PublicResolver.abi create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/PublicResolver.bin create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/SvEnsIface.abi create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/SvEnsIface.bin create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/controlledIface.abi create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/controlledIface.bin create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/hasAdmins.abi create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/hasAdmins.bin create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/owned.abi create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/owned.bin create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllC.abi create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllC.bin create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllCSettable.abi create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllCSettable.bin create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/permissioned.abi create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/permissioned.bin create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/safeSend.abi create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/safeSend.bin create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/upgradePtr.abi create mode 100644 dist/2018-06-18-ix-deployment/ens_owner_proxy/upgradePtr.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/BBFarm.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/BBFarm.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/BBFarmEvents.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/BBFarmEvents.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/BBFarmIface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/BBFarmIface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/BBLib.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/BBLib.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/BPackedUtils.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/BPackedUtils.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/BytesLib.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/BytesLib.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/CanReclaimToken.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/CanReclaimToken.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/CommAuctionIface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/CommAuctionIface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/CommunityAuctionSimple.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/CommunityAuctionSimple.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/ENSIface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/ENSIface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/ERC20Interface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/ERC20Interface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/EnsOwnerProxy.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/EnsOwnerProxy.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/IxBackendIface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/IxBackendIface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/IxIface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/IxIface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/IxLib.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/IxLib.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/IxPaymentsIface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/IxPaymentsIface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/PublicResolver.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/PublicResolver.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/SVBallotConsts.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/SVBallotConsts.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/SVIndex.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/SVIndex.abi.json create mode 100644 dist/2018-06-18-ix-deployment/sv_index/SVIndex.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/SVIndexBackend.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/SVIndexBackend.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/SVPayments.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/SVPayments.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/SafeMath.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/SafeMath.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/SvEnsIface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/SvEnsIface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/controlledIface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/controlledIface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/hasAdmins.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/hasAdmins.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/hasVersion.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/hasVersion.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/ixBackendEvents.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/ixBackendEvents.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/ixEvents.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/ixEvents.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/ixPaymentEvents.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/ixPaymentEvents.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/owned.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/owned.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/payoutAllC.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/payoutAllC.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/payoutAllCSettable.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/payoutAllCSettable.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/permissioned.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/permissioned.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/safeSend.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/safeSend.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index/upgradePtr.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index/upgradePtr.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/BPackedUtils.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/BPackedUtils.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/ERC20Interface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/ERC20Interface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/IxBackendIface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/IxBackendIface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/SVIndexBackend.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/SVIndexBackend.abi.json create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/SVIndexBackend.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/controlledIface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/controlledIface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/hasAdmins.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/hasAdmins.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/hasVersion.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/hasVersion.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/ixBackendEvents.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/ixBackendEvents.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/owned.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/owned.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllC.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllC.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllCSettable.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllCSettable.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/permissioned.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/permissioned.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/safeSend.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/safeSend.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/upgradePtr.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_index_backend/upgradePtr.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/CanReclaimToken.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/CanReclaimToken.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/ERC20Interface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/ERC20Interface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/IxPaymentsIface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/IxPaymentsIface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/SVPayments.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/SVPayments.abi.json create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/SVPayments.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/SafeMath.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/SafeMath.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/controlledIface.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/controlledIface.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/hasAdmins.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/hasAdmins.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/hasVersion.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/hasVersion.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/ixPaymentEvents.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/ixPaymentEvents.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/owned.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/owned.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/payoutAllC.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/payoutAllC.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/payoutAllCSettable.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/payoutAllCSettable.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/permissioned.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/permissioned.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/safeSend.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/safeSend.bin create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/upgradePtr.abi create mode 100644 dist/2018-06-18-ix-deployment/sv_payments/upgradePtr.bin diff --git a/.gitignore b/.gitignore index 3caaf89..6772280 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,5 @@ scTopics deploy*.log tmp* _solDist +_distEns +.DS_Store diff --git a/compileProd.sh b/compileProd.sh new file mode 100755 index 0000000..2078d18 --- /dev/null +++ b/compileProd.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +set -e + +DIST_DIR="dist" +C_SRC_DIR="contracts" +SOLC_VER=$(solc --version | tail -n 1 | cut -d ' ' -f 2 | cut -d '+' -f 1) + +rm -rf ./$DIST_DIR/* || true +mkdir -p $DIST_DIR || true + +doSvCompile(){ + cname="$(echo $1 | sed 's/\.sol$//g')" + cfile="$cname.sol" + dist_src="$DIST_DIR/$cfile" + # sensible snake case + distname=$(echo "$cname" | sed -E 's/([A-Z])([a-z])/_\L\1\2/g' | sed -E 's/([A-Z])([A-Z]*)/_\L\1\L\2/g' | sed 's/^_//') + outdir="dist/$distname" + solidity_flattener "./$C_SRC_DIR/$cfile" --solc-paths './lib,./ens,' > "$dist_src" + sed -i "s/pragma solidity \^0\.4\.13;/pragma solidity $SOLC_VER;/" "$dist_src" + mkdir -p "$outdir" + ./bin/compile.sh -d "$DIST_DIR" -c "$cfile" -o "$outdir" + echo "-------------" + echo "$cname compile to $outdir" + echo "-------------" +} + +doSvCompile SVIndex +doSvCompile SVIndexBackend +doSvCompile SVPayments +doSvCompile BBFarm +doSvCompile CommunityAuction +doSvCompile EnsOwnerProxy diff --git a/contracts/CommunityAuction.sol b/contracts/CommunityAuction.sol index 724e0e6..6569d4c 100644 --- a/contracts/CommunityAuction.sol +++ b/contracts/CommunityAuction.sol @@ -19,7 +19,7 @@ interface CommAuctionIface { } -contract CommunityAuctionSimple is owned { +contract CommunityAuctionSimple is owned, CommAuctionIface { // about $1USD at $600usd/eth uint public commBallotPriceWei = 1666666666000000; diff --git a/dist/2018-06-18-ix-deployment/BBFarm.sol b/dist/2018-06-18-ix-deployment/BBFarm.sol new file mode 100644 index 0000000..f686af1 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/BBFarm.sol @@ -0,0 +1,2890 @@ +pragma solidity 0.4.24; + +contract BBFarmEvents { + event BallotCreatedWithID(uint ballotId); + event BBFarmInit(bytes4 namespace); + event Sponsorship(uint ballotId, uint value); + event Vote(uint indexed ballotId, bytes32 vote, address voter, bytes extra); +} + +library BBLib { + using BytesLib for bytes; + + // ballot meta + uint256 constant BB_VERSION = 6; + /* 4 deprecated due to insecure vote by proxy + 5 deprecated to + - add `returns (address)` to submitProxyVote + */ + + // voting settings + uint16 constant USE_ETH = 1; // 2^0 + uint16 constant USE_SIGNED = 2; // 2^1 + uint16 constant USE_NO_ENC = 4; // 2^2 + uint16 constant USE_ENC = 8; // 2^3 + + // ballot settings + uint16 constant IS_BINDING = 8192; // 2^13 + uint16 constant IS_OFFICIAL = 16384; // 2^14 + uint16 constant USE_TESTING = 32768; // 2^15 + + // other consts + uint32 constant MAX_UINT32 = 0xFFFFFFFF; + + //// ** Storage Variables + + // struct for ballot + struct Vote { + bytes32 voteData; + bytes32 castTsAndSender; + bytes extra; + } + + struct Sponsor { + address sender; + uint amount; + } + + //// ** Events + event CreatedBallot(bytes32 _specHash, uint64 startTs, uint64 endTs, uint16 submissionBits); + event SuccessfulVote(address indexed voter, uint voteId); + event SeckeyRevealed(bytes32 secretKey); + event TestingEnabled(); + event DeprecatedContract(); + + + // The big database struct + + + struct DB { + // Maps to store ballots, along with corresponding log of voters. + // Should only be modified through internal functions + mapping (uint256 => Vote) votes; + uint256 nVotesCast; + + // we need replay protection for proxy ballots - this will let us check against a sequence number + // note: votes directly from a user ALWAYS take priority b/c they do not have sequence numbers + // (sequencing is done by Ethereum itself via the tx nonce). + mapping (address => uint32) sequenceNumber; + + // NOTE - We don't actually want to include the encryption PublicKey because _it's included in the ballotSpec_. + // It's better to ensure ppl actually have the ballot spec by not including it in the contract. + // Plus we're already storing the hash of the ballotSpec anyway... + + // Private key to be set after ballot conclusion - curve25519 + bytes32 ballotEncryptionSeckey; + + // packed contains: + // 1. Timestamps for start and end of ballot (UTC) + // 2. bits used to decide which options are enabled or disabled for submission of ballots + uint256 packed; + + // specHash by which to validate the ballots integrity + bytes32 specHash; + // extradata if we need it - allows us to upgrade spechash format, etc + bytes16 extraData; + + // allow tracking of sponsorship for this ballot & connection to index + Sponsor[] sponsors; + IxIface index; + + // deprecation flag - doesn't actually do anything besides signal that this contract is deprecated; + bool deprecated; + + address ballotOwner; + uint256 creationTs; + } + + + // ** Modifiers -- note, these are functions here to allow use as a lib + function requireBallotClosed(DB storage db) internal view { + require(now > BPackedUtils.packedToEndTime(db.packed), "!b-closed"); + } + + function requireBallotOpen(DB storage db) internal view { + uint64 _n = uint64(now); + uint64 startTs; + uint64 endTs; + (, startTs, endTs) = BPackedUtils.unpackAll(db.packed); + require(_n >= startTs && _n < endTs, "!b-open"); + require(db.deprecated == false, "b-deprecated"); + } + + function requireBallotOwner(DB storage db) internal view { + require(msg.sender == db.ballotOwner, "!b-owner"); + } + + function requireTesting(DB storage db) internal view { + require(isTesting(BPackedUtils.packedToSubmissionBits(db.packed)), "!testing"); + } + + /* Library meta */ + + function getVersion() external pure returns (uint) { + // even though this is constant we want to make sure that it's actually + // callable on Ethereum so we don't accidentally package the constant code + // in with an SC using BBLib. This function _must_ be external. + return BB_VERSION; + } + + /* Functions */ + + // "Constructor" function - init core params on deploy + // timestampts are uint64s to give us plenty of room for millennia + function init(DB storage db, bytes32 _specHash, uint256 _packed, IxIface ix, address ballotOwner, bytes16 extraData) external { + require(db.specHash == bytes32(0), "b-exists"); + + db.index = ix; + db.ballotOwner = ballotOwner; + + uint64 startTs; + uint64 endTs; + uint16 sb; + (sb, startTs, endTs) = BPackedUtils.unpackAll(_packed); + + bool _testing = isTesting(sb); + if (_testing) { + emit TestingEnabled(); + } else { + require(endTs > now, "bad-end-time"); + + // 0x1ff2 is 0001111111110010 in binary + // by ANDing with subBits we make sure that only bits in positions 0,2,3,13,14,15 + // can be used. these correspond to the option flags at the top, and ETH ballots + // that are enc'd or plaintext. + require(sb & 0x1ff2 == 0, "bad-sb"); + + // if we give bad submission bits (e.g. all 0s) then refuse to deploy ballot + bool okaySubmissionBits = 1 == (isEthNoEnc(sb) ? 1 : 0) + (isEthWithEnc(sb) ? 1 : 0); + require(okaySubmissionBits, "!valid-sb"); + + // take the max of the start time provided and the blocks timestamp to avoid a DoS against recent token holders + // (which someone might be able to do if they could set the timestamp in the past) + startTs = startTs > now ? startTs : uint64(now); + } + require(_specHash != bytes32(0), "null-specHash"); + db.specHash = _specHash; + + db.packed = BPackedUtils.pack(sb, startTs, endTs); + db.creationTs = now; + + if (extraData != bytes16(0)) { + db.extraData = extraData; + } + + emit CreatedBallot(db.specHash, startTs, endTs, sb); + } + + /* sponsorship */ + + function logSponsorship(DB storage db, uint value) internal { + db.sponsors.push(Sponsor(msg.sender, value)); + } + + /* getters */ + + function getVote(DB storage db, uint id) internal view returns (bytes32 voteData, address sender, bytes extra, uint castTs) { + return (db.votes[id].voteData, address(db.votes[id].castTsAndSender), db.votes[id].extra, uint(db.votes[id].castTsAndSender) >> 160); + } + + function getSequenceNumber(DB storage db, address voter) internal view returns (uint32) { + return db.sequenceNumber[voter]; + } + + function getTotalSponsorship(DB storage db) internal view returns (uint total) { + for (uint i = 0; i < db.sponsors.length; i++) { + total += db.sponsors[i].amount; + } + } + + function getSponsor(DB storage db, uint i) external view returns (address sender, uint amount) { + sender = db.sponsors[i].sender; + amount = db.sponsors[i].amount; + } + + /* ETH BALLOTS */ + + // Ballot submission + // note: if USE_ENC then curve25519 keys should be generated for + // each ballot (then thrown away). + // the curve25519 PKs go in the extra param + function submitVote(DB storage db, bytes32 voteData, bytes extra) external { + _addVote(db, voteData, msg.sender, extra); + // set the sequence number to max uint32 to disable proxy submitted ballots + // after a voter submits a transaction personally - effectivley disables proxy + // ballots. You can _always_ submit a new vote _personally_ with this scheme. + if (db.sequenceNumber[msg.sender] != MAX_UINT32) { + // using an IF statement here let's us save 4800 gas on repeat votes at the cost of 20k extra gas initially + db.sequenceNumber[msg.sender] = MAX_UINT32; + } + } + + // Boundaries for constructing the msg we'll validate the signature of + function submitProxyVote(DB storage db, bytes32[5] proxyReq, bytes extra) external returns (address voter) { + // a proxy vote (where the vote is submitted (i.e. tx fee paid by someone else) + // docs for datastructs: https://github.com/secure-vote/tokenvote/blob/master/Docs/DataStructs.md + + bytes32 r = proxyReq[0]; + bytes32 s = proxyReq[1]; + uint8 v = uint8(proxyReq[2][0]); + // converting to uint248 will truncate the first byte, and we can then convert it to a bytes31. + // we truncate the first byte because it's the `v` parm used above + bytes31 proxyReq2 = bytes31(uint248(proxyReq[2])); + // proxyReq[3] is ballotId - required for verifying sig but not used for anything else + bytes32 ballotId = proxyReq[3]; + bytes32 voteData = proxyReq[4]; + + // using abi.encodePacked is much cheaper than making bytes in other ways... + bytes memory signed = abi.encodePacked(proxyReq2, ballotId, voteData, extra); + bytes32 msgHash = keccak256(signed); + // need to be sure we are signing the entire ballot and any extra data that comes with it + voter = ecrecover(msgHash, v, r, s); + + // we need to make sure that this is the most recent vote the voter made, and that it has + // not been seen before. NOTE: we've already validated the BBFarm namespace before this, so + // we know it's meant for _this_ ballot. + uint32 sequence = uint32(proxyReq2); // last 4 bytes of proxyReq2 - the sequence number + _proxyReplayProtection(db, voter, sequence); + + _addVote(db, voteData, voter, extra); + } + + function _addVote(DB storage db, bytes32 voteData, address sender, bytes extra) internal returns (uint256 id) { + requireBallotOpen(db); + + id = db.nVotesCast; + db.votes[id].voteData = voteData; + // pack the casting ts right next to the sender + db.votes[id].castTsAndSender = bytes32(sender) ^ bytes32(now << 160); + if (extra.length > 0) { + db.votes[id].extra = extra; + } + db.nVotesCast += 1; + emit SuccessfulVote(sender, id); + } + + function _proxyReplayProtection(DB storage db, address voter, uint32 sequence) internal { + // we want the replay protection sequence number to be STRICTLY MORE than what + // is stored in the mapping. This means we can set sequence to MAX_UINT32 to disable + // any future votes. + require(db.sequenceNumber[voter] < sequence, "bad-sequence-n"); + db.sequenceNumber[voter] = sequence; + } + + /* Admin */ + + function setEndTime(DB storage db, uint64 newEndTime) external { + uint16 sb; + uint64 sTs; + (sb, sTs,) = BPackedUtils.unpackAll(db.packed); + db.packed = BPackedUtils.pack(sb, sTs, newEndTime); + } + + function revealSeckey(DB storage db, bytes32 sk) internal { + db.ballotEncryptionSeckey = sk; + emit SeckeyRevealed(sk); + } + + /* Submission Bits (Ballot Classifications) */ + + // do (bits & SETTINGS_MASK) to get just operational bits (as opposed to testing or official flag) + uint16 constant SETTINGS_MASK = 0xFFFF ^ USE_TESTING ^ IS_OFFICIAL ^ IS_BINDING; + + function isEthNoEnc(uint16 submissionBits) pure internal returns (bool) { + return checkFlags(submissionBits, USE_ETH | USE_NO_ENC); + } + + function isEthWithEnc(uint16 submissionBits) pure internal returns (bool) { + return checkFlags(submissionBits, USE_ETH | USE_ENC); + } + + function isOfficial(uint16 submissionBits) pure internal returns (bool) { + return (submissionBits & IS_OFFICIAL) == IS_OFFICIAL; + } + + function isBinding(uint16 submissionBits) pure internal returns (bool) { + return (submissionBits & IS_BINDING) == IS_BINDING; + } + + function isTesting(uint16 submissionBits) pure internal returns (bool) { + return (submissionBits & USE_TESTING) == USE_TESTING; + } + + function qualifiesAsCommunityBallot(uint16 submissionBits) pure internal returns (bool) { + // if submissionBits AND any of the bits that make this _not_ a community + // ballot is equal to zero that means none of those bits were active, so + // it could be a community ballot + return (submissionBits & (IS_BINDING | IS_OFFICIAL | USE_ENC)) == 0; + } + + function checkFlags(uint16 submissionBits, uint16 expected) pure internal returns (bool) { + // this should ignore ONLY the testing/flag bits - all other bits are significant + uint16 sBitsNoSettings = submissionBits & SETTINGS_MASK; + // then we want ONLY expected + return sBitsNoSettings == expected; + } +} + +library BPackedUtils { + + // the uint16 ending at 128 bits should be 0s + uint256 constant sbMask = 0xffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff; + uint256 constant startTimeMask = 0xffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff; + uint256 constant endTimeMask = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000; + + function packedToSubmissionBits(uint256 packed) internal pure returns (uint16) { + return uint16(packed >> 128); + } + + function packedToStartTime(uint256 packed) internal pure returns (uint64) { + return uint64(packed >> 64); + } + + function packedToEndTime(uint256 packed) internal pure returns (uint64) { + return uint64(packed); + } + + function unpackAll(uint256 packed) internal pure returns (uint16 submissionBits, uint64 startTime, uint64 endTime) { + submissionBits = uint16(packed >> 128); + startTime = uint64(packed >> 64); + endTime = uint64(packed); + } + + function pack(uint16 sb, uint64 st, uint64 et) internal pure returns (uint256 packed) { + return uint256(sb) << 128 | uint256(st) << 64 | uint256(et); + } + + function setSB(uint256 packed, uint16 newSB) internal pure returns (uint256) { + return (packed & sbMask) | uint256(newSB) << 128; + } + + // function setStartTime(uint256 packed, uint64 startTime) internal pure returns (uint256) { + // return (packed & startTimeMask) | uint256(startTime) << 64; + // } + + // function setEndTime(uint256 packed, uint64 endTime) internal pure returns (uint256) { + // return (packed & endTimeMask) | uint256(endTime); + // } +} + +interface CommAuctionIface { + function getNextPrice(bytes32 democHash) external view returns (uint); + function noteBallotDeployed(bytes32 democHash) external; + + // add more when we need it + + function upgradeMe(address newSC) external; +} + +library IxLib { + /** + * Usage: `using IxLib for IxIface` + * The idea is to (instead of adding methods that already use + * available public info to the index) we can create `internal` + * methods in the lib to do this instead (which means the code + * is inserted into other contracts inline, without a `delegatecall`. + * + * For this reason it's crucial to have no methods in IxLib with the + * same name as methods in IxIface + */ + + /* Global price and payments data */ + + function getPayTo(IxIface ix) internal view returns (address) { + return ix.getPayments().getPayTo(); + } + + /* Global Ix data */ + + function getBBFarmFromBallotID(IxIface ix, uint256 ballotId) internal view returns (BBFarmIface) { + bytes4 bbNamespace = bytes4(ballotId >> 48); + uint8 bbFarmId = ix.getBBFarmID(bbNamespace); + return ix.getBBFarm(bbFarmId); + } + + /* Global backend data */ + + function getGDemocsN(IxIface ix) internal view returns (uint256) { + return ix.getBackend().getGDemocsN(); + } + + function getGDemoc(IxIface ix, uint256 n) internal view returns (bytes32) { + return ix.getBackend().getGDemoc(n); + } + + function getGErc20ToDemocs(IxIface ix, address erc20) internal view returns (bytes32[] democHashes) { + return ix.getBackend().getGErc20ToDemocs(erc20); + } + + /* Democ specific payment/account data */ + + function accountInGoodStanding(IxIface ix, bytes32 democHash) internal view returns (bool) { + return ix.getPayments().accountInGoodStanding(democHash); + } + + function accountPremiumAndInGoodStanding(IxIface ix, bytes32 democHash) internal view returns (bool) { + IxPaymentsIface payments = ix.getPayments(); + return payments.accountInGoodStanding(democHash) && payments.getPremiumStatus(democHash); + } + + function payForDemocracy(IxIface ix, bytes32 democHash) internal { + ix.getPayments().payForDemocracy.value(msg.value)(democHash); + } + + /* Democ getters */ + + function getDOwner(IxIface ix, bytes32 democHash) internal view returns (address) { + return ix.getBackend().getDOwner(democHash); + } + + function isDEditor(IxIface ix, bytes32 democHash, address editor) internal view returns (bool) { + return ix.getBackend().isDEditor(democHash, editor); + } + + function getDBallotsN(IxIface ix, bytes32 democHash) internal view returns (uint256) { + return ix.getBackend().getDBallotsN(democHash); + } + + function getDBallotID(IxIface ix, bytes32 democHash, uint256 n) internal view returns (uint256) { + return ix.getBackend().getDBallotID(democHash, n); + } + + function getDInfo(IxIface ix, bytes32 democHash) internal view returns (address erc20, address admin, uint256 _nBallots) { + return ix.getBackend().getDInfo(democHash); + } + + function getDErc20(IxIface ix, bytes32 democHash) internal view returns (address erc20) { + return ix.getBackend().getDErc20(democHash); + } + + function getDHash(IxIface ix, bytes13 prefix) internal view returns (bytes32) { + return ix.getBackend().getDHash(prefix); + } + + function getDCategoriesN(IxIface ix, bytes32 democHash) internal view returns (uint) { + return ix.getBackend().getDCategoriesN(democHash); + } + + function getDCategory(IxIface ix, bytes32 democHash, uint categoryId) internal view returns (bool, bytes32, bool, uint) { + return ix.getBackend().getDCategory(democHash, categoryId); + } + + function getDArbitraryData(IxIface ix, bytes32 democHash, bytes key) external view returns (bytes) { + return ix.getBackend().getDArbitraryData(democHash, key); + } +} + +contract SVBallotConsts { + // voting settings + uint16 constant USE_ETH = 1; // 2^0 + uint16 constant USE_SIGNED = 2; // 2^1 + uint16 constant USE_NO_ENC = 4; // 2^2 + uint16 constant USE_ENC = 8; // 2^3 + + // ballot settings + uint16 constant IS_BINDING = 8192; // 2^13 + uint16 constant IS_OFFICIAL = 16384; // 2^14 + uint16 constant USE_TESTING = 32768; // 2^15 +} + +contract safeSend { + bool private txMutex3847834; + + // we want to be able to call outside contracts (e.g. the admin proxy contract) + // but reentrency is bad, so here's a mutex. + function doSafeSend(address toAddr, uint amount) internal { + doSafeSendWData(toAddr, "", amount); + } + + function doSafeSendWData(address toAddr, bytes data, uint amount) internal { + require(txMutex3847834 == false, "ss-guard"); + txMutex3847834 = true; + // we need to use address.call.value(v)() because we want + // to be able to send to other contracts, even with no data, + // which might use more than 2300 gas in their fallback function. + require(toAddr.call.value(amount)(data), "ss-failed"); + txMutex3847834 = false; + } +} + +contract payoutAllC is safeSend { + address private _payTo; + + event PayoutAll(address payTo, uint value); + + constructor(address initPayTo) public { + // DEV NOTE: you can overwrite _getPayTo if you want to reuse other storage vars + assert(initPayTo != address(0)); + _payTo = initPayTo; + } + + function _getPayTo() internal view returns (address) { + return _payTo; + } + + function _setPayTo(address newPayTo) internal { + _payTo = newPayTo; + } + + function payoutAll() external { + address a = _getPayTo(); + uint bal = address(this).balance; + doSafeSend(a, bal); + emit PayoutAll(a, bal); + } +} + +contract payoutAllCSettable is payoutAllC { + constructor (address initPayTo) payoutAllC(initPayTo) public { + } + + function setPayTo(address) external; + function getPayTo() external view returns (address) { + return _getPayTo(); + } +} + +contract owned { + address public owner; + + event OwnerChanged(address newOwner); + + modifier only_owner() { + require(msg.sender == owner, "only_owner: forbidden"); + _; + } + + modifier owner_or(address addr) { + require(msg.sender == addr || msg.sender == owner, "!owner-or"); + _; + } + + constructor() public { + owner = msg.sender; + } + + function setOwner(address newOwner) only_owner() external { + owner = newOwner; + emit OwnerChanged(newOwner); + } +} + +contract CanReclaimToken is owned { + + /** + * @dev Reclaim all ERC20Basic compatible tokens + * @param token ERC20Basic The address of the token contract + */ + function reclaimToken(ERC20Interface token) external only_owner { + uint256 balance = token.balanceOf(this); + require(token.approve(owner, balance)); + } + +} + +contract CommunityAuctionSimple is owned { + // about $1USD at $600usd/eth + uint public commBallotPriceWei = 1666666666000000; + + struct Record { + bytes32 democHash; + uint ts; + } + + mapping (address => Record[]) public ballotLog; + mapping (address => address) public upgrades; + + function getNextPrice(bytes32) external view returns (uint) { + return commBallotPriceWei; + } + + function noteBallotDeployed(bytes32 d) external { + require(upgrades[msg.sender] == address(0)); + ballotLog[msg.sender].push(Record(d, now)); + } + + function upgradeMe(address newSC) external { + require(upgrades[msg.sender] == address(0)); + upgrades[msg.sender] = newSC; + } + + function getBallotLogN(address a) external view returns (uint) { + return ballotLog[a].length; + } + + function setPriceWei(uint newPrice) only_owner() external { + commBallotPriceWei = newPrice; + } +} + +contract controlledIface { + function controller() external view returns (address); +} + +contract hasAdmins is owned { + mapping (uint => mapping (address => bool)) admins; + uint public currAdminEpoch = 0; + bool public adminsDisabledForever = false; + address[] adminLog; + + event AdminAdded(address indexed newAdmin); + event AdminRemoved(address indexed oldAdmin); + event AdminEpochInc(); + event AdminDisabledForever(); + + modifier only_admin() { + require(adminsDisabledForever == false, "admins must not be disabled"); + require(isAdmin(msg.sender), "only_admin: forbidden"); + _; + } + + constructor() public { + _setAdmin(msg.sender, true); + } + + function isAdmin(address a) view public returns (bool) { + return admins[currAdminEpoch][a]; + } + + function getAdminLogN() view external returns (uint) { + return adminLog.length; + } + + function getAdminLog(uint n) view external returns (address) { + return adminLog[n]; + } + + function upgradeMeAdmin(address newAdmin) only_admin() external { + // note: already checked msg.sender has admin with `only_admin` modifier + require(msg.sender != owner, "owner cannot upgrade self"); + _setAdmin(msg.sender, false); + _setAdmin(newAdmin, true); + } + + function setAdmin(address a, bool _givePerms) only_admin() external { + require(a != msg.sender && a != owner, "cannot change your own (or owner's) permissions"); + _setAdmin(a, _givePerms); + } + + function _setAdmin(address a, bool _givePerms) internal { + admins[currAdminEpoch][a] = _givePerms; + if (_givePerms) { + emit AdminAdded(a); + adminLog.push(a); + } else { + emit AdminRemoved(a); + } + } + + // safety feature if admins go bad or something + function incAdminEpoch() only_owner() external { + currAdminEpoch++; + admins[currAdminEpoch][msg.sender] = true; + emit AdminEpochInc(); + } + + // this is internal so contracts can all it, but not exposed anywhere in this + // contract. + function disableAdminForever() internal { + currAdminEpoch++; + adminsDisabledForever = true; + emit AdminDisabledForever(); + } +} + +contract EnsOwnerProxy is hasAdmins { + bytes32 public ensNode; + ENSIface public ens; + PublicResolver public resolver; + + /** + * @param _ensNode The node to administer + * @param _ens The ENS Registrar + * @param _resolver The ENS Resolver + */ + constructor(bytes32 _ensNode, ENSIface _ens, PublicResolver _resolver) public { + ensNode = _ensNode; + ens = _ens; + resolver = _resolver; + } + + function setAddr(address addr) only_admin() external { + _setAddr(addr); + } + + function _setAddr(address addr) internal { + resolver.setAddr(ensNode, addr); + } + + function returnToOwner() only_owner() external { + ens.setOwner(ensNode, owner); + } + + function fwdToENS(bytes data) only_owner() external { + require(address(ens).call(data), "fwding to ens failed"); + } + + function fwdToResolver(bytes data) only_owner() external { + require(address(resolver).call(data), "fwding to resolver failed"); + } +} + +contract permissioned is owned, hasAdmins { + mapping (address => bool) editAllowed; + bool public adminLockdown = false; + + event PermissionError(address editAddr); + event PermissionGranted(address editAddr); + event PermissionRevoked(address editAddr); + event PermissionsUpgraded(address oldSC, address newSC); + event SelfUpgrade(address oldSC, address newSC); + event AdminLockdown(); + + modifier only_editors() { + require(editAllowed[msg.sender], "only_editors: forbidden"); + _; + } + + modifier no_lockdown() { + require(adminLockdown == false, "no_lockdown: check failed"); + _; + } + + + constructor() owned() hasAdmins() public { + } + + + function setPermissions(address e, bool _editPerms) no_lockdown() only_admin() external { + editAllowed[e] = _editPerms; + if (_editPerms) + emit PermissionGranted(e); + else + emit PermissionRevoked(e); + } + + function upgradePermissionedSC(address oldSC, address newSC) no_lockdown() only_admin() external { + editAllowed[oldSC] = false; + editAllowed[newSC] = true; + emit PermissionsUpgraded(oldSC, newSC); + } + + // always allow SCs to upgrade themselves, even after lockdown + function upgradeMe(address newSC) only_editors() external { + editAllowed[msg.sender] = false; + editAllowed[newSC] = true; + emit SelfUpgrade(msg.sender, newSC); + } + + function hasPermissions(address a) public view returns (bool) { + return editAllowed[a]; + } + + function doLockdown() external only_owner() no_lockdown() { + disableAdminForever(); + adminLockdown = true; + emit AdminLockdown(); + } +} + +contract upgradePtr { + address ptr = address(0); + + modifier not_upgraded() { + require(ptr == address(0), "upgrade pointer is non-zero"); + _; + } + + function getUpgradePointer() view external returns (address) { + return ptr; + } + + function doUpgradeInternal(address nextSC) internal { + ptr = nextSC; + } +} + +interface ERC20Interface { + // Get the total token supply + function totalSupply() constant external returns (uint256 _totalSupply); + + // Get the account balance of another account with address _owner + function balanceOf(address _owner) constant external returns (uint256 balance); + + // Send _value amount of tokens to address _to + function transfer(address _to, uint256 _value) external returns (bool success); + + // Send _value amount of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) external returns (bool success); + + // Allow _spender to withdraw from your account, multiple times, up to the _value amount. + // If this function is called again it overwrites the current allowance with _value. + // this function is required for some DEX functionality + function approve(address _spender, uint256 _value) external returns (bool success); + + // Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) constant external returns (uint256 remaining); + + // Triggered when tokens are transferred. + event Transfer(address indexed _from, address indexed _to, uint256 _value); + + // Triggered whenever approve(address _spender, uint256 _value) is called. + event Approval(address indexed _owner, address indexed _spender, uint256 _value); +} + +contract ixEvents { + event PaymentMade(uint[2] valAndRemainder); + event AddedBBFarm(uint8 bbFarmId); + event SetBackend(bytes32 setWhat, address newSC); + event DeprecatedBBFarm(uint8 bbFarmId); + event CommunityBallot(bytes32 democHash, uint256 ballotId); + event ManuallyAddedBallot(bytes32 democHash, uint256 ballotId, uint256 packed); + // copied from BBFarm - unable to inherit from BBFarmEvents... + event BallotCreatedWithID(uint ballotId); + event BBFarmInit(bytes4 namespace); +} + +contract ixBackendEvents { + event NewDemoc(bytes32 democHash); + event ManuallyAddedDemoc(bytes32 democHash, address erc20); + event NewBallot(bytes32 indexed democHash, uint ballotN); + event DemocOwnerSet(bytes32 indexed democHash, address owner); + event DemocEditorSet(bytes32 indexed democHash, address editor, bool canEdit); + event DemocEditorsWiped(bytes32 indexed democHash); + event DemocErc20Set(bytes32 indexed democHash, address erc20); + event DemocDataSet(bytes32 indexed democHash, bytes32 keyHash); + event DemocCatAdded(bytes32 indexed democHash, uint catId); + event DemocCatDeprecated(bytes32 indexed democHash, uint catId); + event DemocCommunityBallotsEnabled(bytes32 indexed democHash, bool enabled); + event DemocErc20OwnerClaimDisabled(bytes32 indexed democHash); + event DemocClaimed(bytes32 indexed democHash); + event EmergencyDemocOwner(bytes32 indexed democHash, address newOwner); +} + +library SafeMath { + function subToZero(uint a, uint b) internal pure returns (uint) { + if (a < b) { // then (a - b) would overflow + return 0; + } + return a - b; + } +} + +contract ixPaymentEvents { + event UpgradedToPremium(bytes32 indexed democHash); + event GrantedAccountTime(bytes32 indexed democHash, uint additionalSeconds, bytes32 ref); + event AccountPayment(bytes32 indexed democHash, uint additionalSeconds); + event SetCommunityBallotFee(uint amount); + event SetBasicCentsPricePer30Days(uint amount); + event SetPremiumMultiplier(uint8 multiplier); + event DowngradeToBasic(bytes32 indexed democHash); + event UpgradeToPremium(bytes32 indexed democHash); + event SetExchangeRate(uint weiPerCent); + event FreeExtension(bytes32 democHash); + event SetBallotsPer30Days(uint amount); + event SetFreeExtension(bytes32 democHash, bool hasFreeExt); + event SetDenyPremium(bytes32 democHash, bool isPremiumDenied); + event SetPayTo(address payTo); + event SetMinorEditsAddr(address minorEditsAddr); + event SetMinWeiForDInit(uint amount); +} + +interface hasVersion { + function getVersion() external pure returns (uint); +} + +contract BBFarmIface is BBFarmEvents, permissioned, hasVersion, payoutAllC { + /* global bbfarm getters */ + + function getNamespace() external view returns (bytes4); + function getBBLibVersion() external view returns (uint256); + function getNBallots() external view returns (uint256); + + /* init a ballot */ + + // note that the ballotId returned INCLUDES the namespace. + function initBallot( bytes32 specHash + , uint256 packed + , IxIface ix + , address bbAdmin + , bytes24 extraData + ) external returns (uint ballotId); + + /* Sponsorship of ballots */ + + function sponsor(uint ballotId) external payable; + + /* Voting functions */ + + function submitVote(uint ballotId, bytes32 vote, bytes extra) external; + function submitProxyVote(bytes32[5] proxyReq, bytes extra) external; + + /* Ballot Getters */ + + function getDetails(uint ballotId, address voter) external view returns + ( bool hasVoted + , uint nVotesCast + , bytes32 secKey + , uint16 submissionBits + , uint64 startTime + , uint64 endTime + , bytes32 specHash + , bool deprecated + , address ballotOwner + , bytes16 extraData); + + function getVote(uint ballotId, uint voteId) external view returns (bytes32 voteData, address sender, bytes extra); + function getTotalSponsorship(uint ballotId) external view returns (uint); + function getSponsorsN(uint ballotId) external view returns (uint); + function getSponsor(uint ballotId, uint sponsorN) external view returns (address sender, uint amount); + function getCreationTs(uint ballotId) external view returns (uint); + + /* Admin on ballots */ + function revealSeckey(uint ballotId, bytes32 sk) external; + function setEndTime(uint ballotId, uint64 newEndTime) external; // note: testing only + function setDeprecated(uint ballotId) external; + function setBallotOwner(uint ballotId, address newOwner) external; +} + +contract BBFarm is BBFarmIface { + using BBLib for BBLib.DB; + using IxLib for IxIface; + + // namespaces should be unique for each bbFarm + bytes4 constant NAMESPACE = 0x00000001; + // last 48 bits + uint256 constant BALLOT_ID_MASK = 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; + + uint constant VERSION = 2; + + mapping (uint224 => BBLib.DB) dbs; + // note - start at 100 to avoid any test for if 0 is a valid ballotId + // also gives us some space to play with low numbers if we want. + uint nBallots = 0; + + /* modifiers */ + + modifier req_namespace(uint ballotId) { + // bytes4() will take the _first_ 4 bytes + require(bytes4(ballotId >> 224) == NAMESPACE, "bad-namespace"); + _; + } + + /* Constructor */ + + constructor() payoutAllC(msg.sender) public { + // this bbFarm requires v5 of BBLib (note: v4 deprecated immediately due to insecure submitProxyVote) + // note: even though we can't test for this in coverage, this has stopped me deploying to kovan with the wrong version tho, so I consider it tested :) + assert(BBLib.getVersion() == 6); + emit BBFarmInit(NAMESPACE); + } + + /* base SCs */ + + function _getPayTo() internal view returns (address) { + return owner; + } + + function getVersion() external pure returns (uint) { + return VERSION; + } + + /* global funcs */ + + function getNamespace() external view returns (bytes4) { + return NAMESPACE; + } + + function getBBLibVersion() external view returns (uint256) { + return BBLib.getVersion(); + } + + function getNBallots() external view returns (uint256) { + return nBallots; + } + + /* db lookup helper */ + + function getDb(uint ballotId) internal view returns (BBLib.DB storage) { + // cut off anything above 224 bits (where the namespace goes) + return dbs[uint224(ballotId)]; + } + + /* Init ballot */ + + function initBallot( bytes32 specHash + , uint256 packed + , IxIface ix + , address bbAdmin + , bytes24 extraData + ) only_editors() external returns (uint ballotId) { + // calculate the ballotId based on the last 224 bits of the specHash. + ballotId = uint224(specHash) ^ (uint256(NAMESPACE) << 224); + // we need to call the init functions on our libraries + getDb(ballotId).init(specHash, packed, ix, bbAdmin, bytes16(uint128(extraData))); + nBallots += 1; + + emit BallotCreatedWithID(ballotId); + } + + /* Sponsorship */ + + function sponsor(uint ballotId) external payable { + BBLib.DB storage db = getDb(ballotId); + db.logSponsorship(msg.value); + doSafeSend(db.index.getPayTo(), msg.value); + emit Sponsorship(ballotId, msg.value); + } + + /* Voting */ + + function submitVote(uint ballotId, bytes32 vote, bytes extra) req_namespace(ballotId) external { + getDb(ballotId).submitVote(vote, extra); + emit Vote(ballotId, vote, msg.sender, extra); + } + + function submitProxyVote(bytes32[5] proxyReq, bytes extra) req_namespace(uint256(proxyReq[3])) external { + // see https://github.com/secure-vote/tokenvote/blob/master/Docs/DataStructs.md for breakdown of params + // pr[3] is the ballotId, and pr[4] is the vote + uint ballotId = uint256(proxyReq[3]); + address voter = getDb(ballotId).submitProxyVote(proxyReq, extra); + bytes32 vote = proxyReq[4]; + emit Vote(ballotId, vote, voter, extra); + } + + /* Getters */ + + // note - this is the maxmimum number of vars we can return with one + // function call (taking 2 args) + function getDetails(uint ballotId, address voter) external view returns + ( bool hasVoted + , uint nVotesCast + , bytes32 secKey + , uint16 submissionBits + , uint64 startTime + , uint64 endTime + , bytes32 specHash + , bool deprecated + , address ballotOwner + , bytes16 extraData) { + BBLib.DB storage db = getDb(ballotId); + uint packed = db.packed; + return ( + db.getSequenceNumber(voter) > 0, + db.nVotesCast, + db.ballotEncryptionSeckey, + BPackedUtils.packedToSubmissionBits(packed), + BPackedUtils.packedToStartTime(packed), + BPackedUtils.packedToEndTime(packed), + db.specHash, + db.deprecated, + db.ballotOwner, + db.extraData + ); + } + + function getVote(uint ballotId, uint voteId) external view returns (bytes32 voteData, address sender, bytes extra) { + (voteData, sender, extra, ) = getDb(ballotId).getVote(voteId); + } + + function getSequenceNumber(uint ballotId, address voter) external view returns (uint32 sequence) { + return getDb(ballotId).getSequenceNumber(voter); + } + + function getTotalSponsorship(uint ballotId) external view returns (uint) { + return getDb(ballotId).getTotalSponsorship(); + } + + function getSponsorsN(uint ballotId) external view returns (uint) { + return getDb(ballotId).sponsors.length; + } + + function getSponsor(uint ballotId, uint sponsorN) external view returns (address sender, uint amount) { + return getDb(ballotId).getSponsor(sponsorN); + } + + function getCreationTs(uint ballotId) external view returns (uint) { + return getDb(ballotId).creationTs; + } + + /* ADMIN */ + + // Allow the owner to reveal the secret key after ballot conclusion + function revealSeckey(uint ballotId, bytes32 sk) external { + BBLib.DB storage db = getDb(ballotId); + db.requireBallotOwner(); + db.requireBallotClosed(); + db.revealSeckey(sk); + } + + // note: testing only. + function setEndTime(uint ballotId, uint64 newEndTime) external { + BBLib.DB storage db = getDb(ballotId); + db.requireBallotOwner(); + db.requireTesting(); + db.setEndTime(newEndTime); + } + + function setDeprecated(uint ballotId) external { + BBLib.DB storage db = getDb(ballotId); + db.requireBallotOwner(); + db.deprecated = true; + } + + function setBallotOwner(uint ballotId, address newOwner) external { + BBLib.DB storage db = getDb(ballotId); + db.requireBallotOwner(); + db.ballotOwner = newOwner; + } +} + +contract IxIface is hasVersion, + ixPaymentEvents, + ixBackendEvents, + ixEvents, + SVBallotConsts, + owned, + CanReclaimToken, + upgradePtr, + payoutAllC { + + /* owner functions */ + function addBBFarm(BBFarmIface bbFarm) external returns (uint8 bbFarmId); + function setABackend(bytes32 toSet, address newSC) external; + function deprecateBBFarm(uint8 bbFarmId, BBFarmIface _bbFarm) external; + + /* global getters */ + function getPayments() external view returns (IxPaymentsIface); + function getBackend() external view returns (IxBackendIface); + function getBBFarm(uint8 bbFarmId) external view returns (BBFarmIface); + function getBBFarmID(bytes4 bbNamespace) external view returns (uint8 bbFarmId); + function getCommAuction() external view returns (CommAuctionIface); + + /* init a democ */ + function dInit(address defualtErc20, bool disableErc20OwnerClaim) external payable returns (bytes32); + + /* democ owner / editor functions */ + function setDEditor(bytes32 democHash, address editor, bool canEdit) external; + function setDNoEditors(bytes32 democHash) external; + function setDOwner(bytes32 democHash, address newOwner) external; + function dOwnerErc20Claim(bytes32 democHash) external; + function setDErc20(bytes32 democHash, address newErc20) external; + function dAddCategory(bytes32 democHash, bytes32 categoryName, bool hasParent, uint parent) external; + function dDeprecateCategory(bytes32 democHash, uint categoryId) external; + function dUpgradeToPremium(bytes32 democHash) external; + function dDowngradeToBasic(bytes32 democHash) external; + function dSetArbitraryData(bytes32 democHash, bytes key, bytes value) external; + function dSetCommunityBallotsEnabled(bytes32 democHash, bool enabled) external; + function dDisableErc20OwnerClaim(bytes32 democHash) external; + + /* democ getters (that used to be here) should be called on either backend or payments directly */ + /* use IxLib for convenience functions from other SCs */ + + /* ballot deployment */ + // only ix owner - used for adding past or special ballots + function dAddBallot(bytes32 democHash, uint ballotId, uint256 packed) external; + function dDeployCommunityBallot(bytes32 democHash, bytes32 specHash, bytes32 extraData, uint128 packedTimes) external payable; + function dDeployBallot(bytes32 democHash, bytes32 specHash, bytes32 extraData, uint256 packed) external payable; +} + +contract SVIndex is IxIface { + uint256 constant VERSION = 2; + + // generated from: `address public owner;` + bytes4 constant OWNER_SIG = 0x8da5cb5b; + // generated from: `address public controller;` + bytes4 constant CONTROLLER_SIG = 0xf77c4791; + + /* backend & other SC storage */ + + IxBackendIface backend; + IxPaymentsIface payments; + EnsOwnerProxy public ensOwnerPx; + BBFarmIface[] bbFarms; + CommAuctionIface commAuction; + // mapping from bbFarm namespace to bbFarmId + mapping (bytes4 => uint8) bbFarmIdLookup; + mapping (uint8 => bool) deprecatedBBFarms; + + //* MODIFIERS / + + modifier onlyDemocOwner(bytes32 democHash) { + require(msg.sender == backend.getDOwner(democHash), "!d-owner"); + _; + } + + modifier onlyDemocEditor(bytes32 democHash) { + require(backend.isDEditor(democHash, msg.sender), "!d-editor"); + _; + } + + /* FUNCTIONS */ + + // constructor + constructor( IxBackendIface _b + , IxPaymentsIface _pay + , EnsOwnerProxy _ensOwnerPx + , BBFarmIface _bbFarm0 + , CommAuctionIface _commAuction + ) payoutAllC(msg.sender) public { + backend = _b; + payments = _pay; + ensOwnerPx = _ensOwnerPx; + _addBBFarm(0x0, _bbFarm0); + commAuction = _commAuction; + } + + /* payoutAllC */ + + function _getPayTo() internal view returns (address) { + return payments.getPayTo(); + } + + /* UPGRADE STUFF */ + + function doUpgrade(address nextSC) only_owner() not_upgraded() external { + doUpgradeInternal(nextSC); + backend.upgradeMe(nextSC); + payments.upgradeMe(nextSC); + ensOwnerPx.setAddr(nextSC); + ensOwnerPx.upgradeMeAdmin(nextSC); + commAuction.upgradeMe(nextSC); + + for (uint i = 0; i < bbFarms.length; i++) { + bbFarms[i].upgradeMe(nextSC); + } + } + + function _addBBFarm(bytes4 bbNamespace, BBFarmIface _bbFarm) internal returns (uint8 bbFarmId) { + uint256 bbFarmIdLong = bbFarms.length; + require(bbFarmIdLong < 2**8, "too-many-farms"); + bbFarmId = uint8(bbFarmIdLong); + + bbFarms.push(_bbFarm); + bbFarmIdLookup[bbNamespace] = bbFarmId; + emit AddedBBFarm(bbFarmId); + } + + // adding a new BBFarm + function addBBFarm(BBFarmIface bbFarm) only_owner() external returns (uint8 bbFarmId) { + bytes4 bbNamespace = bbFarm.getNamespace(); + + require(bbNamespace != bytes4(0), "bb-farm-namespace"); + require(bbFarmIdLookup[bbNamespace] == 0 && bbNamespace != bbFarms[0].getNamespace(), "bb-namespace-used"); + + bbFarmId = _addBBFarm(bbNamespace, bbFarm); + } + + function setABackend(bytes32 toSet, address newSC) only_owner() external { + emit SetBackend(toSet, newSC); + if (toSet == bytes32("payments")) { + payments = IxPaymentsIface(newSC); + } else if (toSet == bytes32("backend")) { + backend = IxBackendIface(newSC); + } else if (toSet == bytes32("commAuction")) { + commAuction = CommAuctionIface(newSC); + } else { + revert("404"); + } + } + + function deprecateBBFarm(uint8 bbFarmId, BBFarmIface _bbFarm) only_owner() external { + require(address(_bbFarm) != address(0)); + require(bbFarms[bbFarmId] == _bbFarm); + deprecatedBBFarms[bbFarmId] = true; + emit DeprecatedBBFarm(bbFarmId); + } + + /* Getters for backends */ + + function getPayments() external view returns (IxPaymentsIface) { + return payments; + } + + function getBackend() external view returns (IxBackendIface) { + return backend; + } + + function getBBFarm(uint8 bbFarmId) external view returns (BBFarmIface) { + return bbFarms[bbFarmId]; + } + + function getBBFarmID(bytes4 bbNamespace) external view returns (uint8 bbFarmId) { + return bbFarmIdLookup[bbNamespace]; + } + + function getCommAuction() external view returns (CommAuctionIface) { + return commAuction; + } + + //* GLOBAL INFO */ + + function getVersion() external pure returns (uint256) { + return VERSION; + } + + //* DEMOCRACY FUNCTIONS - INDIVIDUAL */ + + function dInit(address defaultErc20, bool disableErc20OwnerClaim) not_upgraded() external payable returns (bytes32) { + require(msg.value >= payments.getMinWeiForDInit()); + bytes32 democHash = backend.dInit(defaultErc20, msg.sender, disableErc20OwnerClaim); + payments.payForDemocracy.value(msg.value)(democHash); + return democHash; + } + + // admin methods + + function setDEditor(bytes32 democHash, address editor, bool canEdit) onlyDemocOwner(democHash) external { + backend.setDEditor(democHash, editor, canEdit); + } + + function setDNoEditors(bytes32 democHash) onlyDemocOwner(democHash) external { + backend.setDNoEditors(democHash); + } + + function setDOwner(bytes32 democHash, address newOwner) onlyDemocOwner(democHash) external { + backend.setDOwner(democHash, newOwner); + } + + function dOwnerErc20Claim(bytes32 democHash) external { + address erc20 = backend.getDErc20(democHash); + // test if we can call the erc20.owner() method, etc + // also limit gas use to 3000 because we don't know what they'll do with it + // during testing both owned and controlled could be called from other contracts for 2525 gas. + if (erc20.call.gas(3000)(OWNER_SIG)) { + require(msg.sender == owned(erc20).owner.gas(3000)(), "!erc20-owner"); + } else if (erc20.call.gas(3000)(CONTROLLER_SIG)) { + require(msg.sender == controlledIface(erc20).controller.gas(3000)(), "!erc20-controller"); + } else { + revert(); + } + // now we are certain the sender deployed or controls the erc20 + backend.setDOwnerFromClaim(democHash, msg.sender); + } + + function setDErc20(bytes32 democHash, address newErc20) onlyDemocOwner(democHash) external { + backend.setDErc20(democHash, newErc20); + } + + function dAddCategory(bytes32 democHash, bytes32 catName, bool hasParent, uint parent) onlyDemocEditor(democHash) external { + backend.dAddCategory(democHash, catName, hasParent, parent); + } + + function dDeprecateCategory(bytes32 democHash, uint catId) onlyDemocEditor(democHash) external { + backend.dDeprecateCategory(democHash, catId); + } + + function dUpgradeToPremium(bytes32 democHash) onlyDemocOwner(democHash) external { + payments.upgradeToPremium(democHash); + } + + function dDowngradeToBasic(bytes32 democHash) onlyDemocOwner(democHash) external { + payments.downgradeToBasic(democHash); + } + + function dSetArbitraryData(bytes32 democHash, bytes key, bytes value) external { + if (msg.sender == backend.getDOwner(democHash)) { + backend.dSetArbitraryData(democHash, key, value); + } else if (backend.isDEditor(democHash, msg.sender)) { + backend.dSetEditorArbitraryData(democHash, key, value); + } else { + revert(); + } + } + + function dSetCommunityBallotsEnabled(bytes32 democHash, bool enabled) onlyDemocOwner(democHash) external { + backend.dSetCommunityBallotsEnabled(democHash, enabled); + } + + // this is one way only! + function dDisableErc20OwnerClaim(bytes32 democHash) onlyDemocOwner(democHash) external { + backend.dDisableErc20OwnerClaim(democHash); + } + + /* Democ Getters - deprecated */ + // NOTE: the getters that used to live here just proxied to the backend. + // this has been removed to reduce gas costs + size of Ix contract + // For SCs you should use IxLib for convenience. + // For Offchain use you should query the backend directly (via ix.getBackend()) + + /* Add and Deploy Ballots */ + + // manually add a ballot - only the owner can call this + // WARNING - it's required that we make ABSOLUTELY SURE that + // ballotId is valid and can resolve via the appropriate BBFarm. + // this function _DOES NOT_ validate that everything else is done. + function dAddBallot(bytes32 democHash, uint ballotId, uint256 packed) + only_owner() + external { + + _addBallot(democHash, ballotId, packed, false); + emit ManuallyAddedBallot(democHash, ballotId, packed); + } + + + function _deployBallot(bytes32 democHash, bytes32 specHash, bytes32 extraData, uint packed, bool checkLimit, bool alreadySentTx) internal returns (uint ballotId) { + require(BBLib.isTesting(BPackedUtils.packedToSubmissionBits(packed)) == false, "b-testing"); + + // the most significant byte of extraData signals the bbFarm to use. + uint8 bbFarmId = uint8(extraData[0]); + require(deprecatedBBFarms[bbFarmId] == false, "bb-dep"); + BBFarmIface _bbFarm = bbFarms[bbFarmId]; + + // anything that isn't a community ballot counts towards the basic limit. + // we want to check in cases where + // the ballot doesn't qualify as a community ballot + // OR (the ballot qualifies as a community ballot + // AND the admins have _disabled_ community ballots). + bool countTowardsLimit = checkLimit; + bool performedSend; + if (checkLimit) { + uint64 endTime = BPackedUtils.packedToEndTime(packed); + (countTowardsLimit, performedSend) = _basicBallotLimitOperations(democHash, _bbFarm); + _accountOkayChecks(democHash, endTime); + } + + if (!performedSend && msg.value > 0 && alreadySentTx == false) { + // refund if we haven't send value anywhere (which might happen if someone accidentally pays us) + doSafeSend(msg.sender, msg.value); + } + + ballotId = _bbFarm.initBallot( + specHash, + packed, + this, + msg.sender, + // we are certain that the first 8 bytes are for index use only. + // truncating extraData like this means we can occasionally + // save on gas. we need to use uint192 first because that will take + // the _last_ 24 bytes of extraData. + bytes24(uint192(extraData))); + + _addBallot(democHash, ballotId, packed, countTowardsLimit); + } + + function dDeployCommunityBallot(bytes32 democHash, bytes32 specHash, bytes32 extraData, uint128 packedTimes) external payable { + uint price = commAuction.getNextPrice(democHash); + require(msg.value >= price, "!cb-fee"); + + doSafeSend(payments.getPayTo(), price); + doSafeSend(msg.sender, msg.value - price); + + bool canProceed = backend.getDCommBallotsEnabled(democHash) || !payments.accountInGoodStanding(democHash); + require(canProceed, "!cb-enabled"); + + uint256 packed = BPackedUtils.setSB(uint256(packedTimes), (USE_ETH | USE_NO_ENC)); + + uint ballotId = _deployBallot(democHash, specHash, extraData, packed, false, true); + commAuction.noteBallotDeployed(democHash); + + emit CommunityBallot(democHash, ballotId); + } + + // only way a democ admin can deploy a ballot + function dDeployBallot(bytes32 democHash, bytes32 specHash, bytes32 extraData, uint256 packed) + onlyDemocEditor(democHash) + external payable { + + _deployBallot(democHash, specHash, extraData, packed, true, false); + } + + // internal logic around adding a ballot + function _addBallot(bytes32 democHash, uint256 ballotId, uint256 packed, bool countTowardsLimit) internal { + // backend handles events + backend.dAddBallot(democHash, ballotId, packed, countTowardsLimit); + } + + // check an account has paid up enough for this ballot + function _accountOkayChecks(bytes32 democHash, uint64 endTime) internal view { + // if the ballot is marked as official require the democracy is paid up to + // some relative amount - exclude NFP accounts from this check + uint secsLeft = payments.getSecondsRemaining(democHash); + // must be positive due to ending in future check + uint256 secsToEndTime = endTime - now; + // require ballots end no more than twice the time left on the democracy + require(secsLeft * 2 > secsToEndTime, "unpaid"); + } + + function _basicBallotLimitOperations(bytes32 democHash, BBFarmIface _bbFarm) internal returns (bool shouldCount, bool performedSend) { + // if we're an official ballot and the democ is basic, ensure the democ + // isn't over the ballots/mo limit + if (payments.getPremiumStatus(democHash) == false) { + uint nBallotsAllowed = payments.getBasicBallotsPer30Days(); + uint nBallotsBasicCounted = backend.getDCountedBasicBallotsN(democHash); + + // if the democ has less than nBallotsAllowed then it's guarenteed to be okay + if (nBallotsAllowed > nBallotsBasicCounted) { + // and we should count this ballot + return (true, false); + } + + // we want to check the creation timestamp of the nth most recent ballot + // where n is the # of ballots allowed per month. Note: there isn't an off + // by 1 error here because if 1 ballots were allowed per month then we'd want + // to look at the most recent ballot, so nBallotsBasicCounted-1 in this case. + // similarly, if X ballots were allowed per month we want to look at + // nBallotsBasicCounted-X. There would thus be (X-1) ballots that are _more_ + // recent than the one we're looking for. + uint earlyBallotId = backend.getDCountedBasicBallotID(democHash, nBallotsBasicCounted - nBallotsAllowed); + uint earlyBallotTs = _bbFarm.getCreationTs(earlyBallotId); + + // if the earlyBallot was created more than 30 days in the past we should + // count the new ballot + if (earlyBallotTs < now - 30 days) { + return (true, false); + } + + // at this point it may be the case that we shouldn't allow the ballot + // to be created. (It's an official ballot for a basic tier democracy + // where the Nth most recent ballot was created within the last 30 days.) + // We should now check for payment + uint extraBallotFee = payments.getBasicExtraBallotFeeWei(); + require(msg.value >= extraBallotFee, "!extra-b-fee"); + + // now that we know they've paid the fee, we should send Eth to `payTo` + // and return the remainder. + uint remainder = msg.value - extraBallotFee; + doSafeSend(address(payments), extraBallotFee); + doSafeSend(msg.sender, remainder); + emit PaymentMade([extraBallotFee, remainder]); + // only in this case (for basic) do we want to return false - don't count towards the + // limit because it's been paid for here. + return (false, true); + + } else { // if we're premium we don't count ballots + return (false, false); + } + } +} + +contract IxBackendIface is hasVersion, ixBackendEvents, permissioned, payoutAllC { + /* global getters */ + function getGDemocsN() external view returns (uint); + function getGDemoc(uint id) external view returns (bytes32); + function getGErc20ToDemocs(address erc20) external view returns (bytes32[] democHashes); + + /* owner functions */ + function dAdd(bytes32 democHash, address erc20, bool disableErc20OwnerClaim) external; + function emergencySetDOwner(bytes32 democHash, address newOwner) external; + + /* democ admin */ + function dInit(address defaultErc20, address initOwner, bool disableErc20OwnerClaim) external returns (bytes32 democHash); + function setDOwner(bytes32 democHash, address newOwner) external; + function setDOwnerFromClaim(bytes32 democHash, address newOwner) external; + function setDEditor(bytes32 democHash, address editor, bool canEdit) external; + function setDNoEditors(bytes32 democHash) external; + function setDErc20(bytes32 democHash, address newErc20) external; + function dSetArbitraryData(bytes32 democHash, bytes key, bytes value) external; + function dSetEditorArbitraryData(bytes32 democHash, bytes key, bytes value) external; + function dAddCategory(bytes32 democHash, bytes32 categoryName, bool hasParent, uint parent) external; + function dDeprecateCategory(bytes32 democHash, uint catId) external; + function dSetCommunityBallotsEnabled(bytes32 democHash, bool enabled) external; + function dDisableErc20OwnerClaim(bytes32 democHash) external; + + /* actually add a ballot */ + function dAddBallot(bytes32 democHash, uint ballotId, uint256 packed, bool countTowardsLimit) external; + + /* global democ getters */ + function getDOwner(bytes32 democHash) external view returns (address); + function isDEditor(bytes32 democHash, address editor) external view returns (bool); + function getDHash(bytes13 prefix) external view returns (bytes32); + function getDInfo(bytes32 democHash) external view returns (address erc20, address owner, uint256 nBallots); + function getDErc20(bytes32 democHash) external view returns (address); + function getDArbitraryData(bytes32 democHash, bytes key) external view returns (bytes value); + function getDEditorArbitraryData(bytes32 democHash, bytes key) external view returns (bytes value); + function getDBallotsN(bytes32 democHash) external view returns (uint256); + function getDBallotID(bytes32 democHash, uint n) external view returns (uint ballotId); + function getDCountedBasicBallotsN(bytes32 democHash) external view returns (uint256); + function getDCountedBasicBallotID(bytes32 democHash, uint256 n) external view returns (uint256); + function getDCategoriesN(bytes32 democHash) external view returns (uint); + function getDCategory(bytes32 democHash, uint catId) external view returns (bool deprecated, bytes32 name, bool hasParent, uint parent); + function getDCommBallotsEnabled(bytes32 democHash) external view returns (bool); + function getDErc20OwnerClaimEnabled(bytes32 democHash) external view returns (bool); +} + +contract SVIndexBackend is IxBackendIface { + uint constant VERSION = 2; + + struct Democ { + address erc20; + address owner; + bool communityBallotsDisabled; + bool erc20OwnerClaimDisabled; + uint editorEpoch; + mapping (uint => mapping (address => bool)) editors; + uint256[] allBallots; + uint256[] includedBasicBallots; // the IDs of official ballots + + } + + struct BallotRef { + bytes32 democHash; + uint ballotId; + } + + struct Category { + bool deprecated; + bytes32 name; + bool hasParent; + uint parent; + } + + struct CategoriesIx { + uint nCategories; + mapping(uint => Category) categories; + } + + mapping (bytes32 => Democ) democs; + mapping (bytes32 => CategoriesIx) democCategories; + mapping (bytes13 => bytes32) democPrefixToHash; + mapping (address => bytes32[]) erc20ToDemocs; + bytes32[] democList; + + // allows democ admins to store arbitrary data + // this lets us (for example) set particular keys to signal cerain + // things to client apps s.t. the admin can turn them on and off. + // arbitraryData[democHash][key] + mapping (bytes32 => mapping (bytes32 => bytes)) arbitraryData; + + /* constructor */ + + constructor() payoutAllC(msg.sender) public { + // do nothing + } + + /* base contract overloads */ + + function _getPayTo() internal view returns (address) { + return owner; + } + + function getVersion() external pure returns (uint) { + return VERSION; + } + + /* GLOBAL INFO */ + + function getGDemocsN() external view returns (uint) { + return democList.length; + } + + function getGDemoc(uint id) external view returns (bytes32) { + return democList[id]; + } + + function getGErc20ToDemocs(address erc20) external view returns (bytes32[] democHashes) { + return erc20ToDemocs[erc20]; + } + + /* DEMOCRACY ADMIN FUNCTIONS */ + + function _addDemoc(bytes32 democHash, address erc20, address initOwner, bool disableErc20OwnerClaim) internal { + democList.push(democHash); + Democ storage d = democs[democHash]; + d.erc20 = erc20; + if (disableErc20OwnerClaim) { + d.erc20OwnerClaimDisabled = true; + } + // this should never trigger if we have a good security model - entropy for 13 bytes ~ 2^(8*13) ~ 10^31 + assert(democPrefixToHash[bytes13(democHash)] == bytes32(0)); + democPrefixToHash[bytes13(democHash)] = democHash; + erc20ToDemocs[erc20].push(democHash); + _setDOwner(democHash, initOwner); + emit NewDemoc(democHash); + } + + /* owner democ admin functions */ + + function dAdd(bytes32 democHash, address erc20, bool disableErc20OwnerClaim) only_owner() external { + _addDemoc(democHash, erc20, msg.sender, disableErc20OwnerClaim); + emit ManuallyAddedDemoc(democHash, erc20); + } + + /* Preferably for emergencies only */ + + function emergencySetDOwner(bytes32 democHash, address newOwner) only_owner() external { + _setDOwner(democHash, newOwner); + emit EmergencyDemocOwner(democHash, newOwner); + } + + /* user democ admin functions */ + + function dInit(address defaultErc20, address initOwner, bool disableErc20OwnerClaim) only_editors() external returns (bytes32 democHash) { + // generating the democHash in this way guarentees it'll be unique/hard-to-brute-force + // (particularly because prevBlockHash and now are part of the hash) + democHash = keccak256(abi.encodePacked(democList.length, blockhash(block.number-1), defaultErc20, now)); + _addDemoc(democHash, defaultErc20, initOwner, disableErc20OwnerClaim); + } + + function _setDOwner(bytes32 democHash, address newOwner) internal { + Democ storage d = democs[democHash]; + uint epoch = d.editorEpoch; + d.owner = newOwner; + // unset prev owner as editor - does little if one was not set + d.editors[epoch][d.owner] = false; + // make new owner an editor too + d.editors[epoch][newOwner] = true; + emit DemocOwnerSet(democHash, newOwner); + } + + function setDOwner(bytes32 democHash, address newOwner) only_editors() external { + _setDOwner(democHash, newOwner); + } + + function setDOwnerFromClaim(bytes32 democHash, address newOwner) only_editors() external { + Democ storage d = democs[democHash]; + // make sure that the owner claim is enabled (i.e. the disabled flag is false) + require(d.erc20OwnerClaimDisabled == false, "!erc20-claim"); + // set owner and editor + d.owner = newOwner; + d.editors[d.editorEpoch][newOwner] = true; + // disable the ability to claim now that it's done + d.erc20OwnerClaimDisabled = true; + emit DemocOwnerSet(democHash, newOwner); + emit DemocClaimed(democHash); + } + + function setDEditor(bytes32 democHash, address editor, bool canEdit) only_editors() external { + Democ storage d = democs[democHash]; + d.editors[d.editorEpoch][editor] = canEdit; + emit DemocEditorSet(democHash, editor, canEdit); + } + + function setDNoEditors(bytes32 democHash) only_editors() external { + democs[democHash].editorEpoch += 1; + emit DemocEditorsWiped(democHash); + } + + function setDErc20(bytes32 democHash, address newErc20) only_editors() external { + democs[democHash].erc20 = newErc20; + erc20ToDemocs[newErc20].push(democHash); + emit DemocErc20Set(democHash, newErc20); + } + + function dSetArbitraryData(bytes32 democHash, bytes key, bytes value) only_editors() external { + bytes32 k = keccak256(key); + arbitraryData[democHash][k] = value; + emit DemocDataSet(democHash, k); + } + + function dSetEditorArbitraryData(bytes32 democHash, bytes key, bytes value) only_editors() external { + bytes32 k = keccak256(_calcEditorKey(key)); + arbitraryData[democHash][k] = value; + emit DemocDataSet(democHash, k); + } + + function dAddCategory(bytes32 democHash, bytes32 name, bool hasParent, uint parent) only_editors() external { + uint catId = democCategories[democHash].nCategories; + democCategories[democHash].categories[catId].name = name; + if (hasParent) { + democCategories[democHash].categories[catId].hasParent = true; + democCategories[democHash].categories[catId].parent = parent; + } + democCategories[democHash].nCategories += 1; + emit DemocCatAdded(democHash, catId); + } + + function dDeprecateCategory(bytes32 democHash, uint catId) only_editors() external { + democCategories[democHash].categories[catId].deprecated = true; + emit DemocCatDeprecated(democHash, catId); + } + + function dSetCommunityBallotsEnabled(bytes32 democHash, bool enabled) only_editors() external { + democs[democHash].communityBallotsDisabled = !enabled; + emit DemocCommunityBallotsEnabled(democHash, enabled); + } + + function dDisableErc20OwnerClaim(bytes32 democHash) only_editors() external { + democs[democHash].erc20OwnerClaimDisabled = true; + emit DemocErc20OwnerClaimDisabled(democHash); + } + + //* ADD BALLOT TO RECORD */ + + function _commitBallot(bytes32 democHash, uint ballotId, uint256 packed, bool countTowardsLimit) internal { + uint16 subBits; + subBits = BPackedUtils.packedToSubmissionBits(packed); + + uint localBallotId = democs[democHash].allBallots.length; + democs[democHash].allBallots.push(ballotId); + + // do this for anything that doesn't qualify as a community ballot + if (countTowardsLimit) { + democs[democHash].includedBasicBallots.push(ballotId); + } + + emit NewBallot(democHash, localBallotId); + } + + // what SVIndex uses to add a ballot + function dAddBallot(bytes32 democHash, uint ballotId, uint256 packed, bool countTowardsLimit) only_editors() external { + _commitBallot(democHash, ballotId, packed, countTowardsLimit); + } + + /* democ getters */ + + function getDOwner(bytes32 democHash) external view returns (address) { + return democs[democHash].owner; + } + + function isDEditor(bytes32 democHash, address editor) external view returns (bool) { + Democ storage d = democs[democHash]; + // allow either an editor or always the owner + return d.editors[d.editorEpoch][editor] || editor == d.owner; + } + + function getDHash(bytes13 prefix) external view returns (bytes32) { + return democPrefixToHash[prefix]; + } + + function getDInfo(bytes32 democHash) external view returns (address erc20, address owner, uint256 nBallots) { + return (democs[democHash].erc20, democs[democHash].owner, democs[democHash].allBallots.length); + } + + function getDErc20(bytes32 democHash) external view returns (address) { + return democs[democHash].erc20; + } + + function getDArbitraryData(bytes32 democHash, bytes key) external view returns (bytes) { + return arbitraryData[democHash][keccak256(key)]; + } + + function getDEditorArbitraryData(bytes32 democHash, bytes key) external view returns (bytes) { + return arbitraryData[democHash][keccak256(_calcEditorKey(key))]; + } + + function getDBallotsN(bytes32 democHash) external view returns (uint256) { + return democs[democHash].allBallots.length; + } + + function getDBallotID(bytes32 democHash, uint256 n) external view returns (uint ballotId) { + return democs[democHash].allBallots[n]; + } + + function getDCountedBasicBallotsN(bytes32 democHash) external view returns (uint256) { + return democs[democHash].includedBasicBallots.length; + } + + function getDCountedBasicBallotID(bytes32 democHash, uint256 n) external view returns (uint256) { + return democs[democHash].includedBasicBallots[n]; + } + + function getDCategoriesN(bytes32 democHash) external view returns (uint) { + return democCategories[democHash].nCategories; + } + + function getDCategory(bytes32 democHash, uint catId) external view returns (bool deprecated, bytes32 name, bool hasParent, uint256 parent) { + deprecated = democCategories[democHash].categories[catId].deprecated; + name = democCategories[democHash].categories[catId].name; + hasParent = democCategories[democHash].categories[catId].hasParent; + parent = democCategories[democHash].categories[catId].parent; + } + + function getDCommBallotsEnabled(bytes32 democHash) external view returns (bool) { + return !democs[democHash].communityBallotsDisabled; + } + + function getDErc20OwnerClaimEnabled(bytes32 democHash) external view returns (bool) { + return !democs[democHash].erc20OwnerClaimDisabled; + } + + /* util for calculating editor key */ + + function _calcEditorKey(bytes key) internal pure returns (bytes) { + return abi.encodePacked("editor.", key); + } +} + +contract IxPaymentsIface is hasVersion, ixPaymentEvents, permissioned, CanReclaimToken, payoutAllCSettable { + /* in emergency break glass */ + function emergencySetOwner(address newOwner) external; + + /* financial calcluations */ + function weiBuysHowManySeconds(uint amount) public view returns (uint secs); + function weiToCents(uint w) public view returns (uint); + function centsToWei(uint c) public view returns (uint); + + /* account management */ + function payForDemocracy(bytes32 democHash) external payable; + function doFreeExtension(bytes32 democHash) external; + function downgradeToBasic(bytes32 democHash) external; + function upgradeToPremium(bytes32 democHash) external; + + /* account status - getters */ + function accountInGoodStanding(bytes32 democHash) external view returns (bool); + function getSecondsRemaining(bytes32 democHash) external view returns (uint); + function getPremiumStatus(bytes32 democHash) external view returns (bool); + function getFreeExtension(bytes32 democHash) external view returns (bool); + function getAccount(bytes32 democHash) external view returns (bool isPremium, uint lastPaymentTs, uint paidUpTill, bool hasFreeExtension); + function getDenyPremium(bytes32 democHash) external view returns (bool); + + /* admin utils for accounts */ + function giveTimeToDemoc(bytes32 democHash, uint additionalSeconds, bytes32 ref) external; + + /* admin setters global */ + function setPayTo(address) external; + function setMinorEditsAddr(address) external; + function setBasicCentsPricePer30Days(uint amount) external; + function setBasicBallotsPer30Days(uint amount) external; + function setPremiumMultiplier(uint8 amount) external; + function setWeiPerCent(uint) external; + function setFreeExtension(bytes32 democHash, bool hasFreeExt) external; + function setDenyPremium(bytes32 democHash, bool isPremiumDenied) external; + function setMinWeiForDInit(uint amount) external; + + /* global getters */ + function getBasicCentsPricePer30Days() external view returns(uint); + function getBasicExtraBallotFeeWei() external view returns (uint); + function getBasicBallotsPer30Days() external view returns (uint); + function getPremiumMultiplier() external view returns (uint8); + function getPremiumCentsPricePer30Days() external view returns (uint); + function getWeiPerCent() external view returns (uint weiPerCent); + function getUsdEthExchangeRate() external view returns (uint centsPerEth); + function getMinWeiForDInit() external view returns (uint); + + /* payments stuff */ + function getPaymentLogN() external view returns (uint); + function getPaymentLog(uint n) external view returns (bool _external, bytes32 _democHash, uint _seconds, uint _ethValue); +} + +contract SVPayments is IxPaymentsIface { + uint constant VERSION = 2; + + struct Account { + bool isPremium; + uint lastPaymentTs; + uint paidUpTill; + uint lastUpgradeTs; // timestamp of the last time it was upgraded to premium + } + + struct PaymentLog { + bool _external; + bytes32 _democHash; + uint _seconds; + uint _ethValue; + } + + // this is an address that's only allowed to make minor edits + // e.g. setExchangeRate, setDenyPremium, giveTimeToDemoc + address public minorEditsAddr; + + // payment details + uint basicCentsPricePer30Days = 125000; // $1250/mo + uint basicBallotsPer30Days = 10; + uint8 premiumMultiplier = 5; + uint weiPerCent = 0.000016583747 ether; // $603, 4th June 2018 + + uint minWeiForDInit = 1; // minimum 1 wei - match existing behaviour in SVIndex + + mapping (bytes32 => Account) accounts; + PaymentLog[] payments; + + // can set this on freeExtension democs to deny them premium upgrades + mapping (bytes32 => bool) denyPremium; + // this is used for non-profits or organisations that have perpetual licenses, etc + mapping (bytes32 => bool) freeExtension; + + + /* BREAK GLASS IN CASE OF EMERGENCY */ + // this is included here because something going wrong with payments is possibly + // the absolute worst case. Note: does this have negligable benefit if the other + // contracts are compromised? (e.g. by a leaked privkey) + address public emergencyAdmin; + function emergencySetOwner(address newOwner) external { + require(msg.sender == emergencyAdmin, "!emergency-owner"); + owner = newOwner; + } + /* END BREAK GLASS */ + + + constructor(address _emergencyAdmin) payoutAllCSettable(msg.sender) public { + emergencyAdmin = _emergencyAdmin; + assert(_emergencyAdmin != address(0)); + } + + /* base SCs */ + + function getVersion() external pure returns (uint) { + return VERSION; + } + + function() payable public { + _getPayTo().transfer(msg.value); + } + + function _modAccountBalance(bytes32 democHash, uint additionalSeconds) internal { + uint prevPaidTill = accounts[democHash].paidUpTill; + if (prevPaidTill < now) { + prevPaidTill = now; + } + + accounts[democHash].paidUpTill = prevPaidTill + additionalSeconds; + accounts[democHash].lastPaymentTs = now; + } + + /* Financial Calculations */ + + function weiBuysHowManySeconds(uint amount) public view returns (uint) { + uint centsPaid = weiToCents(amount); + // multiply by 10**18 to ensure we make rounding errors insignificant + uint monthsOffsetPaid = ((10 ** 18) * centsPaid) / basicCentsPricePer30Days; + uint secondsOffsetPaid = monthsOffsetPaid * (30 days); + uint additionalSeconds = secondsOffsetPaid / (10 ** 18); + return additionalSeconds; + } + + function weiToCents(uint w) public view returns (uint) { + return w / weiPerCent; + } + + function centsToWei(uint c) public view returns (uint) { + return c * weiPerCent; + } + + /* account management */ + + function payForDemocracy(bytes32 democHash) external payable { + require(msg.value > 0, "need to send some ether to make payment"); + + uint additionalSeconds = weiBuysHowManySeconds(msg.value); + + if (accounts[democHash].isPremium) { + additionalSeconds /= premiumMultiplier; + } + + if (additionalSeconds >= 1) { + _modAccountBalance(democHash, additionalSeconds); + } + payments.push(PaymentLog(false, democHash, additionalSeconds, msg.value)); + emit AccountPayment(democHash, additionalSeconds); + + _getPayTo().transfer(msg.value); + } + + function doFreeExtension(bytes32 democHash) external { + require(freeExtension[democHash], "!free"); + uint newPaidUpTill = now + 60 days; + accounts[democHash].paidUpTill = newPaidUpTill; + emit FreeExtension(democHash); + } + + function downgradeToBasic(bytes32 democHash) only_editors() external { + require(accounts[democHash].isPremium, "!premium"); + accounts[democHash].isPremium = false; + // convert premium minutes to basic + uint paidTill = accounts[democHash].paidUpTill; + uint timeRemaining = SafeMath.subToZero(paidTill, now); + // if we have time remaining: convert it + if (timeRemaining > 0) { + // prevent accounts from downgrading if they have time remaining + // and upgraded less than 24hrs ago + require(accounts[democHash].lastUpgradeTs < (now - 24 hours), "downgrade-too-soon"); + timeRemaining *= premiumMultiplier; + accounts[democHash].paidUpTill = now + timeRemaining; + } + emit DowngradeToBasic(democHash); + } + + function upgradeToPremium(bytes32 democHash) only_editors() external { + require(denyPremium[democHash] == false, "upgrade-denied"); + require(!accounts[democHash].isPremium, "!basic"); + accounts[democHash].isPremium = true; + // convert basic minutes to premium minutes + uint paidTill = accounts[democHash].paidUpTill; + uint timeRemaining = SafeMath.subToZero(paidTill, now); + // if we have time remaning then convert it - otherwise don't need to do anything + if (timeRemaining > 0) { + timeRemaining /= premiumMultiplier; + accounts[democHash].paidUpTill = now + timeRemaining; + } + accounts[democHash].lastUpgradeTs = now; + emit UpgradedToPremium(democHash); + } + + /* account status - getters */ + + function accountInGoodStanding(bytes32 democHash) external view returns (bool) { + return accounts[democHash].paidUpTill >= now; + } + + function getSecondsRemaining(bytes32 democHash) external view returns (uint) { + return SafeMath.subToZero(accounts[democHash].paidUpTill, now); + } + + function getPremiumStatus(bytes32 democHash) external view returns (bool) { + return accounts[democHash].isPremium; + } + + function getFreeExtension(bytes32 democHash) external view returns (bool) { + return freeExtension[democHash]; + } + + function getAccount(bytes32 democHash) external view returns (bool isPremium, uint lastPaymentTs, uint paidUpTill, bool hasFreeExtension) { + isPremium = accounts[democHash].isPremium; + lastPaymentTs = accounts[democHash].lastPaymentTs; + paidUpTill = accounts[democHash].paidUpTill; + hasFreeExtension = freeExtension[democHash]; + } + + function getDenyPremium(bytes32 democHash) external view returns (bool) { + return denyPremium[democHash]; + } + + /* admin utils for accounts */ + + function giveTimeToDemoc(bytes32 democHash, uint additionalSeconds, bytes32 ref) owner_or(minorEditsAddr) external { + _modAccountBalance(democHash, additionalSeconds); + payments.push(PaymentLog(true, democHash, additionalSeconds, 0)); + emit GrantedAccountTime(democHash, additionalSeconds, ref); + } + + /* admin setters global */ + + function setPayTo(address newPayTo) only_owner() external { + _setPayTo(newPayTo); + emit SetPayTo(newPayTo); + } + + function setMinorEditsAddr(address a) only_owner() external { + minorEditsAddr = a; + emit SetMinorEditsAddr(a); + } + + function setBasicCentsPricePer30Days(uint amount) only_owner() external { + basicCentsPricePer30Days = amount; + emit SetBasicCentsPricePer30Days(amount); + } + + function setBasicBallotsPer30Days(uint amount) only_owner() external { + basicBallotsPer30Days = amount; + emit SetBallotsPer30Days(amount); + } + + function setPremiumMultiplier(uint8 m) only_owner() external { + premiumMultiplier = m; + emit SetPremiumMultiplier(m); + } + + function setWeiPerCent(uint wpc) owner_or(minorEditsAddr) external { + weiPerCent = wpc; + emit SetExchangeRate(wpc); + } + + function setFreeExtension(bytes32 democHash, bool hasFreeExt) owner_or(minorEditsAddr) external { + freeExtension[democHash] = hasFreeExt; + emit SetFreeExtension(democHash, hasFreeExt); + } + + function setDenyPremium(bytes32 democHash, bool isPremiumDenied) owner_or(minorEditsAddr) external { + denyPremium[democHash] = isPremiumDenied; + emit SetDenyPremium(democHash, isPremiumDenied); + } + + function setMinWeiForDInit(uint amount) owner_or(minorEditsAddr) external { + minWeiForDInit = amount; + emit SetMinWeiForDInit(amount); + } + + /* global getters */ + + function getBasicCentsPricePer30Days() external view returns (uint) { + return basicCentsPricePer30Days; + } + + function getBasicExtraBallotFeeWei() external view returns (uint) { + return centsToWei(basicCentsPricePer30Days / basicBallotsPer30Days); + } + + function getBasicBallotsPer30Days() external view returns (uint) { + return basicBallotsPer30Days; + } + + function getPremiumMultiplier() external view returns (uint8) { + return premiumMultiplier; + } + + function getPremiumCentsPricePer30Days() external view returns (uint) { + return _premiumPricePer30Days(); + } + + function _premiumPricePer30Days() internal view returns (uint) { + return uint(premiumMultiplier) * basicCentsPricePer30Days; + } + + function getWeiPerCent() external view returns (uint) { + return weiPerCent; + } + + function getUsdEthExchangeRate() external view returns (uint) { + // this returns cents per ether + return 1 ether / weiPerCent; + } + + function getMinWeiForDInit() external view returns (uint) { + return minWeiForDInit; + } + + /* payments stuff */ + + function getPaymentLogN() external view returns (uint) { + return payments.length; + } + + function getPaymentLog(uint n) external view returns (bool _external, bytes32 _democHash, uint _seconds, uint _ethValue) { + _external = payments[n]._external; + _democHash = payments[n]._democHash; + _seconds = payments[n]._seconds; + _ethValue = payments[n]._ethValue; + } +} + +interface SvEnsIface { + // Logged when the owner of a node assigns a new owner to a subnode. + event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner); + + // Logged when the owner of a node transfers ownership to a new account. + event Transfer(bytes32 indexed node, address owner); + + // Logged when the resolver for a node changes. + event NewResolver(bytes32 indexed node, address resolver); + + // Logged when the TTL of a node changes + event NewTTL(bytes32 indexed node, uint64 ttl); + + + function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external returns (bytes32); + function setResolver(bytes32 node, address resolver) external; + function setOwner(bytes32 node, address owner) external; + function setTTL(bytes32 node, uint64 ttl) external; + function owner(bytes32 node) external view returns (address); + function resolver(bytes32 node) external view returns (address); + function ttl(bytes32 node) external view returns (uint64); +} + +interface ENSIface { + // Logged when the owner of a node assigns a new owner to a subnode. + event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner); + + // Logged when the owner of a node transfers ownership to a new account. + event Transfer(bytes32 indexed node, address owner); + + // Logged when the resolver for a node changes. + event NewResolver(bytes32 indexed node, address resolver); + + // Logged when the TTL of a node changes + event NewTTL(bytes32 indexed node, uint64 ttl); + + + function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external; + function setResolver(bytes32 node, address resolver) external; + function setOwner(bytes32 node, address owner) external; + function setTTL(bytes32 node, uint64 ttl) external; + function owner(bytes32 node) external view returns (address); + function resolver(bytes32 node) external view returns (address); + function ttl(bytes32 node) external view returns (uint64); +} + +contract PublicResolver { + + bytes4 constant INTERFACE_META_ID = 0x01ffc9a7; + bytes4 constant ADDR_INTERFACE_ID = 0x3b3b57de; + bytes4 constant CONTENT_INTERFACE_ID = 0xd8389dc5; + bytes4 constant NAME_INTERFACE_ID = 0x691f3431; + bytes4 constant ABI_INTERFACE_ID = 0x2203ab56; + bytes4 constant PUBKEY_INTERFACE_ID = 0xc8690233; + bytes4 constant TEXT_INTERFACE_ID = 0x59d1d43c; + + event AddrChanged(bytes32 indexed node, address a); + event ContentChanged(bytes32 indexed node, bytes32 hash); + event NameChanged(bytes32 indexed node, string name); + event ABIChanged(bytes32 indexed node, uint256 indexed contentType); + event PubkeyChanged(bytes32 indexed node, bytes32 x, bytes32 y); + event TextChanged(bytes32 indexed node, string indexedKey, string key); + + struct PublicKey { + bytes32 x; + bytes32 y; + } + + struct Record { + address addr; + bytes32 content; + string name; + PublicKey pubkey; + mapping(string=>string) text; + mapping(uint256=>bytes) abis; + } + + ENSIface ens; + + mapping (bytes32 => Record) records; + + modifier only_owner(bytes32 node) { + require(ens.owner(node) == msg.sender); + _; + } + + /** + * Constructor. + * @param ensAddr The ENS registrar contract. + */ + constructor(ENSIface ensAddr) public { + ens = ensAddr; + } + + /** + * Sets the address associated with an ENS node. + * May only be called by the owner of that node in the ENS registry. + * @param node The node to update. + * @param addr The address to set. + */ + function setAddr(bytes32 node, address addr) public only_owner(node) { + records[node].addr = addr; + emit AddrChanged(node, addr); + } + + /** + * Sets the content hash associated with an ENS node. + * May only be called by the owner of that node in the ENS registry. + * Note that this resource type is not standardized, and will likely change + * in future to a resource type based on multihash. + * @param node The node to update. + * @param hash The content hash to set + */ + function setContent(bytes32 node, bytes32 hash) public only_owner(node) { + records[node].content = hash; + emit ContentChanged(node, hash); + } + + /** + * Sets the name associated with an ENS node, for reverse records. + * May only be called by the owner of that node in the ENS registry. + * @param node The node to update. + * @param name The name to set. + */ + function setName(bytes32 node, string name) public only_owner(node) { + records[node].name = name; + emit NameChanged(node, name); + } + + /** + * Sets the ABI associated with an ENS node. + * Nodes may have one ABI of each content type. To remove an ABI, set it to + * the empty string. + * @param node The node to update. + * @param contentType The content type of the ABI + * @param data The ABI data. + */ + function setABI(bytes32 node, uint256 contentType, bytes data) public only_owner(node) { + // Content types must be powers of 2 + require(((contentType - 1) & contentType) == 0); + + records[node].abis[contentType] = data; + emit ABIChanged(node, contentType); + } + + /** + * Sets the SECP256k1 public key associated with an ENS node. + * @param node The ENS node to query + * @param x the X coordinate of the curve point for the public key. + * @param y the Y coordinate of the curve point for the public key. + */ + function setPubkey(bytes32 node, bytes32 x, bytes32 y) public only_owner(node) { + records[node].pubkey = PublicKey(x, y); + emit PubkeyChanged(node, x, y); + } + + /** + * Sets the text data associated with an ENS node and key. + * May only be called by the owner of that node in the ENS registry. + * @param node The node to update. + * @param key The key to set. + * @param value The text data value to set. + */ + function setText(bytes32 node, string key, string value) public only_owner(node) { + records[node].text[key] = value; + emit TextChanged(node, key, key); + } + + /** + * Returns the text data associated with an ENS node and key. + * @param node The ENS node to query. + * @param key The text data key to query. + * @return The associated text data. + */ + function text(bytes32 node, string key) public view returns (string) { + return records[node].text[key]; + } + + /** + * Returns the SECP256k1 public key associated with an ENS node. + * Defined in EIP 619. + * @param node The ENS node to query + * @return x, y the X and Y coordinates of the curve point for the public key. + */ + function pubkey(bytes32 node) public view returns (bytes32 x, bytes32 y) { + return (records[node].pubkey.x, records[node].pubkey.y); + } + + /** + * Returns the ABI associated with an ENS node. + * Defined in EIP205. + * @param node The ENS node to query + * @param contentTypes A bitwise OR of the ABI formats accepted by the caller. + * @return contentType The content type of the return value + * @return data The ABI data + */ + function ABI(bytes32 node, uint256 contentTypes) public view returns (uint256 contentType, bytes data) { + Record storage record = records[node]; + for (contentType = 1; contentType <= contentTypes; contentType <<= 1) { + if ((contentType & contentTypes) != 0 && record.abis[contentType].length > 0) { + data = record.abis[contentType]; + return; + } + } + contentType = 0; + } + + /** + * Returns the name associated with an ENS node, for reverse records. + * Defined in EIP181. + * @param node The ENS node to query. + * @return The associated name. + */ + function name(bytes32 node) public view returns (string) { + return records[node].name; + } + + /** + * Returns the content hash associated with an ENS node. + * Note that this resource type is not standardized, and will likely change + * in future to a resource type based on multihash. + * @param node The ENS node to query. + * @return The associated content hash. + */ + function content(bytes32 node) public view returns (bytes32) { + return records[node].content; + } + + /** + * Returns the address associated with an ENS node. + * @param node The ENS node to query. + * @return The associated address. + */ + function addr(bytes32 node) public view returns (address) { + return records[node].addr; + } + + /** + * Returns true if the resolver implements the interface specified by the provided hash. + * @param interfaceID The ID of the interface to check for. + * @return True if the contract implements the requested interface. + */ + function supportsInterface(bytes4 interfaceID) public pure returns (bool) { + return interfaceID == ADDR_INTERFACE_ID || + interfaceID == CONTENT_INTERFACE_ID || + interfaceID == NAME_INTERFACE_ID || + interfaceID == ABI_INTERFACE_ID || + interfaceID == PUBKEY_INTERFACE_ID || + interfaceID == TEXT_INTERFACE_ID || + interfaceID == INTERFACE_META_ID; + } +} + +library BytesLib { + function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes) { + bytes memory tempBytes; + + assembly { + // Get a location of some free memory and store it in tempBytes as + // Solidity does for memory variables. + tempBytes := mload(0x40) + + // Store the length of the first bytes array at the beginning of + // the memory for tempBytes. + let length := mload(_preBytes) + mstore(tempBytes, length) + + // Maintain a memory counter for the current write location in the + // temp bytes array by adding the 32 bytes for the array length to + // the starting location. + let mc := add(tempBytes, 0x20) + // Stop copying when the memory counter reaches the length of the + // first bytes array. + let end := add(mc, length) + + for { + // Initialize a copy counter to the start of the _preBytes data, + // 32 bytes into its memory. + let cc := add(_preBytes, 0x20) + } lt(mc, end) { + // Increase both counters by 32 bytes each iteration. + mc := add(mc, 0x20) + cc := add(cc, 0x20) + } { + // Write the _preBytes data into the tempBytes memory 32 bytes + // at a time. + mstore(mc, mload(cc)) + } + + // Add the length of _postBytes to the current length of tempBytes + // and store it as the new length in the first 32 bytes of the + // tempBytes memory. + length := mload(_postBytes) + mstore(tempBytes, add(length, mload(tempBytes))) + + // Move the memory counter back from a multiple of 0x20 to the + // actual end of the _preBytes data. + mc := end + // Stop copying when the memory counter reaches the new combined + // length of the arrays. + end := add(mc, length) + + for { + let cc := add(_postBytes, 0x20) + } lt(mc, end) { + mc := add(mc, 0x20) + cc := add(cc, 0x20) + } { + mstore(mc, mload(cc)) + } + + // Update the free-memory pointer by padding our last write location + // to 32 bytes: add 31 bytes to the end of tempBytes to move to the + // next 32 byte block, then round down to the nearest multiple of + // 32. If the sum of the length of the two arrays is zero then add + // one before rounding down to leave a blank 32 bytes (the length block with 0). + mstore(0x40, and( + add(add(end, iszero(add(length, mload(_preBytes)))), 31), + not(31) // Round down to the nearest 32 bytes. + )) + } + + return tempBytes; + } + + function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal { + assembly { + // Read the first 32 bytes of _preBytes storage, which is the length + // of the array. (We don't need to use the offset into the slot + // because arrays use the entire slot.) + let fslot := sload(_preBytes_slot) + // Arrays of 31 bytes or less have an even value in their slot, + // while longer arrays have an odd value. The actual length is + // the slot divided by two for odd values, and the lowest order + // byte divided by two for even values. + // If the slot is even, bitwise and the slot with 255 and divide by + // two to get the length. If the slot is odd, bitwise and the slot + // with -1 and divide by two. + let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2) + let mlength := mload(_postBytes) + let newlength := add(slength, mlength) + // slength can contain both the length and contents of the array + // if length < 32 bytes so let's prepare for that + // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage + switch add(lt(slength, 32), lt(newlength, 32)) + case 2 { + // Since the new array still fits in the slot, we just need to + // update the contents of the slot. + // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length + sstore( + _preBytes_slot, + // all the modifications to the slot are inside this + // next block + add( + // we can just add to the slot contents because the + // bytes we want to change are the LSBs + fslot, + add( + mul( + div( + // load the bytes from memory + mload(add(_postBytes, 0x20)), + // zero all bytes to the right + exp(0x100, sub(32, mlength)) + ), + // and now shift left the number of bytes to + // leave space for the length in the slot + exp(0x100, sub(32, newlength)) + ), + // increase length by the double of the memory + // bytes length + mul(mlength, 2) + ) + ) + ) + } + case 1 { + // The stored value fits in the slot, but the combined value + // will exceed it. + // get the keccak hash to get the contents of the array + mstore(0x0, _preBytes_slot) + let sc := add(keccak256(0x0, 0x20), div(slength, 32)) + + // save new length + sstore(_preBytes_slot, add(mul(newlength, 2), 1)) + + // The contents of the _postBytes array start 32 bytes into + // the structure. Our first read should obtain the `submod` + // bytes that can fit into the unused space in the last word + // of the stored array. To get this, we read 32 bytes starting + // from `submod`, so the data we read overlaps with the array + // contents by `submod` bytes. Masking the lowest-order + // `submod` bytes allows us to add that value directly to the + // stored value. + + let submod := sub(32, slength) + let mc := add(_postBytes, submod) + let end := add(_postBytes, mlength) + let mask := sub(exp(0x100, submod), 1) + + sstore( + sc, + add( + and( + fslot, + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 + ), + and(mload(mc), mask) + ) + ) + + for { + mc := add(mc, 0x20) + sc := add(sc, 1) + } lt(mc, end) { + sc := add(sc, 1) + mc := add(mc, 0x20) + } { + sstore(sc, mload(mc)) + } + + mask := exp(0x100, sub(mc, end)) + + sstore(sc, mul(div(mload(mc), mask), mask)) + } + default { + // get the keccak hash to get the contents of the array + mstore(0x0, _preBytes_slot) + // Start copying to the last used word of the stored array. + let sc := add(keccak256(0x0, 0x20), div(slength, 32)) + + // save new length + sstore(_preBytes_slot, add(mul(newlength, 2), 1)) + + // Copy over the first `submod` bytes of the new data as in + // case 1 above. + let slengthmod := mod(slength, 32) + let mlengthmod := mod(mlength, 32) + let submod := sub(32, slengthmod) + let mc := add(_postBytes, submod) + let end := add(_postBytes, mlength) + let mask := sub(exp(0x100, submod), 1) + + sstore(sc, add(sload(sc), and(mload(mc), mask))) + + for { + sc := add(sc, 1) + mc := add(mc, 0x20) + } lt(mc, end) { + sc := add(sc, 1) + mc := add(mc, 0x20) + } { + sstore(sc, mload(mc)) + } + + mask := exp(0x100, sub(mc, end)) + + sstore(sc, mul(div(mload(mc), mask), mask)) + } + } + } + + function slice(bytes _bytes, uint _start, uint _length) internal pure returns (bytes) { + require(_bytes.length >= (_start + _length)); + + bytes memory tempBytes; + + assembly { + switch iszero(_length) + case 0 { + // Get a location of some free memory and store it in tempBytes as + // Solidity does for memory variables. + tempBytes := mload(0x40) + + // The first word of the slice result is potentially a partial + // word read from the original array. To read it, we calculate + // the length of that partial word and start copying that many + // bytes into the array. The first word we copy will start with + // data we don't care about, but the last `lengthmod` bytes will + // land at the beginning of the contents of the new array. When + // we're done copying, we overwrite the full first word with + // the actual length of the slice. + let lengthmod := and(_length, 31) + + // The multiplication in the next line is necessary + // because when slicing multiples of 32 bytes (lengthmod == 0) + // the following copy loop was copying the origin's length + // and then ending prematurely not copying everything it should. + let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod))) + let end := add(mc, _length) + + for { + // The multiplication in the next line has the same exact purpose + // as the one above. + let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start) + } lt(mc, end) { + mc := add(mc, 0x20) + cc := add(cc, 0x20) + } { + mstore(mc, mload(cc)) + } + + mstore(tempBytes, _length) + + //update free-memory pointer + //allocating the array padded to 32 bytes like the compiler does now + mstore(0x40, and(add(mc, 31), not(31))) + } + //if we want a zero-length slice let's just return a zero-length array + default { + tempBytes := mload(0x40) + + mstore(0x40, add(tempBytes, 0x20)) + } + } + + return tempBytes; + } + + function toAddress(bytes _bytes, uint _start) internal pure returns (address) { + require(_bytes.length >= (_start + 20)); + address tempAddress; + + assembly { + tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000) + } + + return tempAddress; + } + + function toUint(bytes _bytes, uint _start) internal pure returns (uint256) { + require(_bytes.length >= (_start + 32)); + uint256 tempUint; + + assembly { + tempUint := mload(add(add(_bytes, 0x20), _start)) + } + + return tempUint; + } + + function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) { + bool success = true; + + assembly { + let length := mload(_preBytes) + + // if lengths don't match the arrays are not equal + switch eq(length, mload(_postBytes)) + case 1 { + // cb is a circuit breaker in the for loop since there's + // no said feature for inline assembly loops + // cb = 1 - don't breaker + // cb = 0 - break + let cb := 1 + + let mc := add(_preBytes, 0x20) + let end := add(mc, length) + + for { + let cc := add(_postBytes, 0x20) + // the next line is the loop condition: + // while(uint(mc < end) + cb == 2) + } eq(add(lt(mc, end), cb), 2) { + mc := add(mc, 0x20) + cc := add(cc, 0x20) + } { + // if any of these checks fails then arrays are not equal + if iszero(eq(mload(mc), mload(cc))) { + // unsuccess: + success := 0 + cb := 0 + } + } + } + default { + // unsuccess: + success := 0 + } + } + + return success; + } + + function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) { + bool success = true; + + assembly { + // we know _preBytes_offset is 0 + let fslot := sload(_preBytes_slot) + // Decode the length of the stored array like in concatStorage(). + let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2) + let mlength := mload(_postBytes) + + // if lengths don't match the arrays are not equal + switch eq(slength, mlength) + case 1 { + // slength can contain both the length and contents of the array + // if length < 32 bytes so let's prepare for that + // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage + if iszero(iszero(slength)) { + switch lt(slength, 32) + case 1 { + // blank the last byte which is the length + fslot := mul(div(fslot, 0x100), 0x100) + + if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) { + // unsuccess: + success := 0 + } + } + default { + // cb is a circuit breaker in the for loop since there's + // no said feature for inline assembly loops + // cb = 1 - don't breaker + // cb = 0 - break + let cb := 1 + + // get the keccak hash to get the contents of the array + mstore(0x0, _preBytes_slot) + let sc := keccak256(0x0, 0x20) + + let mc := add(_postBytes, 0x20) + let end := add(mc, mlength) + + // the next line is the loop condition: + // while(uint(mc < end) + cb == 2) + for {} eq(add(lt(mc, end), cb), 2) { + sc := add(sc, 1) + mc := add(mc, 0x20) + } { + if iszero(eq(sload(sc), mload(mc))) { + // unsuccess: + success := 0 + cb := 0 + } + } + } + } + } + default { + // unsuccess: + success := 0 + } + } + + return success; + } +} + diff --git a/dist/2018-06-18-ix-deployment/CommunityAuction.sol b/dist/2018-06-18-ix-deployment/CommunityAuction.sol new file mode 100644 index 0000000..abf3457 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/CommunityAuction.sol @@ -0,0 +1,306 @@ +pragma solidity 0.4.24; + +interface CommAuctionIface { + function getNextPrice(bytes32 democHash) external view returns (uint); + function noteBallotDeployed(bytes32 democHash) external; + + // add more when we need it + + function upgradeMe(address newSC) external; +} + +contract safeSend { + bool private txMutex3847834; + + // we want to be able to call outside contracts (e.g. the admin proxy contract) + // but reentrency is bad, so here's a mutex. + function doSafeSend(address toAddr, uint amount) internal { + doSafeSendWData(toAddr, "", amount); + } + + function doSafeSendWData(address toAddr, bytes data, uint amount) internal { + require(txMutex3847834 == false, "ss-guard"); + txMutex3847834 = true; + // we need to use address.call.value(v)() because we want + // to be able to send to other contracts, even with no data, + // which might use more than 2300 gas in their fallback function. + require(toAddr.call.value(amount)(data), "ss-failed"); + txMutex3847834 = false; + } +} + +contract payoutAllC is safeSend { + address private _payTo; + + event PayoutAll(address payTo, uint value); + + constructor(address initPayTo) public { + // DEV NOTE: you can overwrite _getPayTo if you want to reuse other storage vars + assert(initPayTo != address(0)); + _payTo = initPayTo; + } + + function _getPayTo() internal view returns (address) { + return _payTo; + } + + function _setPayTo(address newPayTo) internal { + _payTo = newPayTo; + } + + function payoutAll() external { + address a = _getPayTo(); + uint bal = address(this).balance; + doSafeSend(a, bal); + emit PayoutAll(a, bal); + } +} + +contract payoutAllCSettable is payoutAllC { + constructor (address initPayTo) payoutAllC(initPayTo) public { + } + + function setPayTo(address) external; + function getPayTo() external view returns (address) { + return _getPayTo(); + } +} + +contract owned { + address public owner; + + event OwnerChanged(address newOwner); + + modifier only_owner() { + require(msg.sender == owner, "only_owner: forbidden"); + _; + } + + modifier owner_or(address addr) { + require(msg.sender == addr || msg.sender == owner, "!owner-or"); + _; + } + + constructor() public { + owner = msg.sender; + } + + function setOwner(address newOwner) only_owner() external { + owner = newOwner; + emit OwnerChanged(newOwner); + } +} + +contract CommunityAuctionSimple is owned { + // about $1USD at $600usd/eth + uint public commBallotPriceWei = 1666666666000000; + + struct Record { + bytes32 democHash; + uint ts; + } + + mapping (address => Record[]) public ballotLog; + mapping (address => address) public upgrades; + + function getNextPrice(bytes32) external view returns (uint) { + return commBallotPriceWei; + } + + function noteBallotDeployed(bytes32 d) external { + require(upgrades[msg.sender] == address(0)); + ballotLog[msg.sender].push(Record(d, now)); + } + + function upgradeMe(address newSC) external { + require(upgrades[msg.sender] == address(0)); + upgrades[msg.sender] = newSC; + } + + function getBallotLogN(address a) external view returns (uint) { + return ballotLog[a].length; + } + + function setPriceWei(uint newPrice) only_owner() external { + commBallotPriceWei = newPrice; + } +} + +contract controlledIface { + function controller() external view returns (address); +} + +contract hasAdmins is owned { + mapping (uint => mapping (address => bool)) admins; + uint public currAdminEpoch = 0; + bool public adminsDisabledForever = false; + address[] adminLog; + + event AdminAdded(address indexed newAdmin); + event AdminRemoved(address indexed oldAdmin); + event AdminEpochInc(); + event AdminDisabledForever(); + + modifier only_admin() { + require(adminsDisabledForever == false, "admins must not be disabled"); + require(isAdmin(msg.sender), "only_admin: forbidden"); + _; + } + + constructor() public { + _setAdmin(msg.sender, true); + } + + function isAdmin(address a) view public returns (bool) { + return admins[currAdminEpoch][a]; + } + + function getAdminLogN() view external returns (uint) { + return adminLog.length; + } + + function getAdminLog(uint n) view external returns (address) { + return adminLog[n]; + } + + function upgradeMeAdmin(address newAdmin) only_admin() external { + // note: already checked msg.sender has admin with `only_admin` modifier + require(msg.sender != owner, "owner cannot upgrade self"); + _setAdmin(msg.sender, false); + _setAdmin(newAdmin, true); + } + + function setAdmin(address a, bool _givePerms) only_admin() external { + require(a != msg.sender && a != owner, "cannot change your own (or owner's) permissions"); + _setAdmin(a, _givePerms); + } + + function _setAdmin(address a, bool _givePerms) internal { + admins[currAdminEpoch][a] = _givePerms; + if (_givePerms) { + emit AdminAdded(a); + adminLog.push(a); + } else { + emit AdminRemoved(a); + } + } + + // safety feature if admins go bad or something + function incAdminEpoch() only_owner() external { + currAdminEpoch++; + admins[currAdminEpoch][msg.sender] = true; + emit AdminEpochInc(); + } + + // this is internal so contracts can all it, but not exposed anywhere in this + // contract. + function disableAdminForever() internal { + currAdminEpoch++; + adminsDisabledForever = true; + emit AdminDisabledForever(); + } +} + +contract permissioned is owned, hasAdmins { + mapping (address => bool) editAllowed; + bool public adminLockdown = false; + + event PermissionError(address editAddr); + event PermissionGranted(address editAddr); + event PermissionRevoked(address editAddr); + event PermissionsUpgraded(address oldSC, address newSC); + event SelfUpgrade(address oldSC, address newSC); + event AdminLockdown(); + + modifier only_editors() { + require(editAllowed[msg.sender], "only_editors: forbidden"); + _; + } + + modifier no_lockdown() { + require(adminLockdown == false, "no_lockdown: check failed"); + _; + } + + + constructor() owned() hasAdmins() public { + } + + + function setPermissions(address e, bool _editPerms) no_lockdown() only_admin() external { + editAllowed[e] = _editPerms; + if (_editPerms) + emit PermissionGranted(e); + else + emit PermissionRevoked(e); + } + + function upgradePermissionedSC(address oldSC, address newSC) no_lockdown() only_admin() external { + editAllowed[oldSC] = false; + editAllowed[newSC] = true; + emit PermissionsUpgraded(oldSC, newSC); + } + + // always allow SCs to upgrade themselves, even after lockdown + function upgradeMe(address newSC) only_editors() external { + editAllowed[msg.sender] = false; + editAllowed[newSC] = true; + emit SelfUpgrade(msg.sender, newSC); + } + + function hasPermissions(address a) public view returns (bool) { + return editAllowed[a]; + } + + function doLockdown() external only_owner() no_lockdown() { + disableAdminForever(); + adminLockdown = true; + emit AdminLockdown(); + } +} + +contract upgradePtr { + address ptr = address(0); + + modifier not_upgraded() { + require(ptr == address(0), "upgrade pointer is non-zero"); + _; + } + + function getUpgradePointer() view external returns (address) { + return ptr; + } + + function doUpgradeInternal(address nextSC) internal { + ptr = nextSC; + } +} + +interface ERC20Interface { + // Get the total token supply + function totalSupply() constant external returns (uint256 _totalSupply); + + // Get the account balance of another account with address _owner + function balanceOf(address _owner) constant external returns (uint256 balance); + + // Send _value amount of tokens to address _to + function transfer(address _to, uint256 _value) external returns (bool success); + + // Send _value amount of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) external returns (bool success); + + // Allow _spender to withdraw from your account, multiple times, up to the _value amount. + // If this function is called again it overwrites the current allowance with _value. + // this function is required for some DEX functionality + function approve(address _spender, uint256 _value) external returns (bool success); + + // Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) constant external returns (uint256 remaining); + + // Triggered when tokens are transferred. + event Transfer(address indexed _from, address indexed _to, uint256 _value); + + // Triggered whenever approve(address _spender, uint256 _value) is called. + event Approval(address indexed _owner, address indexed _spender, uint256 _value); +} + diff --git a/dist/2018-06-18-ix-deployment/EnsOwnerProxy.sol b/dist/2018-06-18-ix-deployment/EnsOwnerProxy.sol new file mode 100644 index 0000000..f8a8ba1 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/EnsOwnerProxy.sol @@ -0,0 +1,552 @@ +pragma solidity 0.4.24; + +contract safeSend { + bool private txMutex3847834; + + // we want to be able to call outside contracts (e.g. the admin proxy contract) + // but reentrency is bad, so here's a mutex. + function doSafeSend(address toAddr, uint amount) internal { + doSafeSendWData(toAddr, "", amount); + } + + function doSafeSendWData(address toAddr, bytes data, uint amount) internal { + require(txMutex3847834 == false, "ss-guard"); + txMutex3847834 = true; + // we need to use address.call.value(v)() because we want + // to be able to send to other contracts, even with no data, + // which might use more than 2300 gas in their fallback function. + require(toAddr.call.value(amount)(data), "ss-failed"); + txMutex3847834 = false; + } +} + +contract payoutAllC is safeSend { + address private _payTo; + + event PayoutAll(address payTo, uint value); + + constructor(address initPayTo) public { + // DEV NOTE: you can overwrite _getPayTo if you want to reuse other storage vars + assert(initPayTo != address(0)); + _payTo = initPayTo; + } + + function _getPayTo() internal view returns (address) { + return _payTo; + } + + function _setPayTo(address newPayTo) internal { + _payTo = newPayTo; + } + + function payoutAll() external { + address a = _getPayTo(); + uint bal = address(this).balance; + doSafeSend(a, bal); + emit PayoutAll(a, bal); + } +} + +contract payoutAllCSettable is payoutAllC { + constructor (address initPayTo) payoutAllC(initPayTo) public { + } + + function setPayTo(address) external; + function getPayTo() external view returns (address) { + return _getPayTo(); + } +} + +contract owned { + address public owner; + + event OwnerChanged(address newOwner); + + modifier only_owner() { + require(msg.sender == owner, "only_owner: forbidden"); + _; + } + + modifier owner_or(address addr) { + require(msg.sender == addr || msg.sender == owner, "!owner-or"); + _; + } + + constructor() public { + owner = msg.sender; + } + + function setOwner(address newOwner) only_owner() external { + owner = newOwner; + emit OwnerChanged(newOwner); + } +} + +contract controlledIface { + function controller() external view returns (address); +} + +contract hasAdmins is owned { + mapping (uint => mapping (address => bool)) admins; + uint public currAdminEpoch = 0; + bool public adminsDisabledForever = false; + address[] adminLog; + + event AdminAdded(address indexed newAdmin); + event AdminRemoved(address indexed oldAdmin); + event AdminEpochInc(); + event AdminDisabledForever(); + + modifier only_admin() { + require(adminsDisabledForever == false, "admins must not be disabled"); + require(isAdmin(msg.sender), "only_admin: forbidden"); + _; + } + + constructor() public { + _setAdmin(msg.sender, true); + } + + function isAdmin(address a) view public returns (bool) { + return admins[currAdminEpoch][a]; + } + + function getAdminLogN() view external returns (uint) { + return adminLog.length; + } + + function getAdminLog(uint n) view external returns (address) { + return adminLog[n]; + } + + function upgradeMeAdmin(address newAdmin) only_admin() external { + // note: already checked msg.sender has admin with `only_admin` modifier + require(msg.sender != owner, "owner cannot upgrade self"); + _setAdmin(msg.sender, false); + _setAdmin(newAdmin, true); + } + + function setAdmin(address a, bool _givePerms) only_admin() external { + require(a != msg.sender && a != owner, "cannot change your own (or owner's) permissions"); + _setAdmin(a, _givePerms); + } + + function _setAdmin(address a, bool _givePerms) internal { + admins[currAdminEpoch][a] = _givePerms; + if (_givePerms) { + emit AdminAdded(a); + adminLog.push(a); + } else { + emit AdminRemoved(a); + } + } + + // safety feature if admins go bad or something + function incAdminEpoch() only_owner() external { + currAdminEpoch++; + admins[currAdminEpoch][msg.sender] = true; + emit AdminEpochInc(); + } + + // this is internal so contracts can all it, but not exposed anywhere in this + // contract. + function disableAdminForever() internal { + currAdminEpoch++; + adminsDisabledForever = true; + emit AdminDisabledForever(); + } +} + +contract EnsOwnerProxy is hasAdmins { + bytes32 public ensNode; + ENSIface public ens; + PublicResolver public resolver; + + /** + * @param _ensNode The node to administer + * @param _ens The ENS Registrar + * @param _resolver The ENS Resolver + */ + constructor(bytes32 _ensNode, ENSIface _ens, PublicResolver _resolver) public { + ensNode = _ensNode; + ens = _ens; + resolver = _resolver; + } + + function setAddr(address addr) only_admin() external { + _setAddr(addr); + } + + function _setAddr(address addr) internal { + resolver.setAddr(ensNode, addr); + } + + function returnToOwner() only_owner() external { + ens.setOwner(ensNode, owner); + } + + function fwdToENS(bytes data) only_owner() external { + require(address(ens).call(data), "fwding to ens failed"); + } + + function fwdToResolver(bytes data) only_owner() external { + require(address(resolver).call(data), "fwding to resolver failed"); + } +} + +contract permissioned is owned, hasAdmins { + mapping (address => bool) editAllowed; + bool public adminLockdown = false; + + event PermissionError(address editAddr); + event PermissionGranted(address editAddr); + event PermissionRevoked(address editAddr); + event PermissionsUpgraded(address oldSC, address newSC); + event SelfUpgrade(address oldSC, address newSC); + event AdminLockdown(); + + modifier only_editors() { + require(editAllowed[msg.sender], "only_editors: forbidden"); + _; + } + + modifier no_lockdown() { + require(adminLockdown == false, "no_lockdown: check failed"); + _; + } + + + constructor() owned() hasAdmins() public { + } + + + function setPermissions(address e, bool _editPerms) no_lockdown() only_admin() external { + editAllowed[e] = _editPerms; + if (_editPerms) + emit PermissionGranted(e); + else + emit PermissionRevoked(e); + } + + function upgradePermissionedSC(address oldSC, address newSC) no_lockdown() only_admin() external { + editAllowed[oldSC] = false; + editAllowed[newSC] = true; + emit PermissionsUpgraded(oldSC, newSC); + } + + // always allow SCs to upgrade themselves, even after lockdown + function upgradeMe(address newSC) only_editors() external { + editAllowed[msg.sender] = false; + editAllowed[newSC] = true; + emit SelfUpgrade(msg.sender, newSC); + } + + function hasPermissions(address a) public view returns (bool) { + return editAllowed[a]; + } + + function doLockdown() external only_owner() no_lockdown() { + disableAdminForever(); + adminLockdown = true; + emit AdminLockdown(); + } +} + +contract upgradePtr { + address ptr = address(0); + + modifier not_upgraded() { + require(ptr == address(0), "upgrade pointer is non-zero"); + _; + } + + function getUpgradePointer() view external returns (address) { + return ptr; + } + + function doUpgradeInternal(address nextSC) internal { + ptr = nextSC; + } +} + +interface ERC20Interface { + // Get the total token supply + function totalSupply() constant external returns (uint256 _totalSupply); + + // Get the account balance of another account with address _owner + function balanceOf(address _owner) constant external returns (uint256 balance); + + // Send _value amount of tokens to address _to + function transfer(address _to, uint256 _value) external returns (bool success); + + // Send _value amount of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) external returns (bool success); + + // Allow _spender to withdraw from your account, multiple times, up to the _value amount. + // If this function is called again it overwrites the current allowance with _value. + // this function is required for some DEX functionality + function approve(address _spender, uint256 _value) external returns (bool success); + + // Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) constant external returns (uint256 remaining); + + // Triggered when tokens are transferred. + event Transfer(address indexed _from, address indexed _to, uint256 _value); + + // Triggered whenever approve(address _spender, uint256 _value) is called. + event Approval(address indexed _owner, address indexed _spender, uint256 _value); +} + +interface SvEnsIface { + // Logged when the owner of a node assigns a new owner to a subnode. + event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner); + + // Logged when the owner of a node transfers ownership to a new account. + event Transfer(bytes32 indexed node, address owner); + + // Logged when the resolver for a node changes. + event NewResolver(bytes32 indexed node, address resolver); + + // Logged when the TTL of a node changes + event NewTTL(bytes32 indexed node, uint64 ttl); + + + function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external returns (bytes32); + function setResolver(bytes32 node, address resolver) external; + function setOwner(bytes32 node, address owner) external; + function setTTL(bytes32 node, uint64 ttl) external; + function owner(bytes32 node) external view returns (address); + function resolver(bytes32 node) external view returns (address); + function ttl(bytes32 node) external view returns (uint64); +} + +interface ENSIface { + // Logged when the owner of a node assigns a new owner to a subnode. + event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner); + + // Logged when the owner of a node transfers ownership to a new account. + event Transfer(bytes32 indexed node, address owner); + + // Logged when the resolver for a node changes. + event NewResolver(bytes32 indexed node, address resolver); + + // Logged when the TTL of a node changes + event NewTTL(bytes32 indexed node, uint64 ttl); + + + function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external; + function setResolver(bytes32 node, address resolver) external; + function setOwner(bytes32 node, address owner) external; + function setTTL(bytes32 node, uint64 ttl) external; + function owner(bytes32 node) external view returns (address); + function resolver(bytes32 node) external view returns (address); + function ttl(bytes32 node) external view returns (uint64); +} + +contract PublicResolver { + + bytes4 constant INTERFACE_META_ID = 0x01ffc9a7; + bytes4 constant ADDR_INTERFACE_ID = 0x3b3b57de; + bytes4 constant CONTENT_INTERFACE_ID = 0xd8389dc5; + bytes4 constant NAME_INTERFACE_ID = 0x691f3431; + bytes4 constant ABI_INTERFACE_ID = 0x2203ab56; + bytes4 constant PUBKEY_INTERFACE_ID = 0xc8690233; + bytes4 constant TEXT_INTERFACE_ID = 0x59d1d43c; + + event AddrChanged(bytes32 indexed node, address a); + event ContentChanged(bytes32 indexed node, bytes32 hash); + event NameChanged(bytes32 indexed node, string name); + event ABIChanged(bytes32 indexed node, uint256 indexed contentType); + event PubkeyChanged(bytes32 indexed node, bytes32 x, bytes32 y); + event TextChanged(bytes32 indexed node, string indexedKey, string key); + + struct PublicKey { + bytes32 x; + bytes32 y; + } + + struct Record { + address addr; + bytes32 content; + string name; + PublicKey pubkey; + mapping(string=>string) text; + mapping(uint256=>bytes) abis; + } + + ENSIface ens; + + mapping (bytes32 => Record) records; + + modifier only_owner(bytes32 node) { + require(ens.owner(node) == msg.sender); + _; + } + + /** + * Constructor. + * @param ensAddr The ENS registrar contract. + */ + constructor(ENSIface ensAddr) public { + ens = ensAddr; + } + + /** + * Sets the address associated with an ENS node. + * May only be called by the owner of that node in the ENS registry. + * @param node The node to update. + * @param addr The address to set. + */ + function setAddr(bytes32 node, address addr) public only_owner(node) { + records[node].addr = addr; + emit AddrChanged(node, addr); + } + + /** + * Sets the content hash associated with an ENS node. + * May only be called by the owner of that node in the ENS registry. + * Note that this resource type is not standardized, and will likely change + * in future to a resource type based on multihash. + * @param node The node to update. + * @param hash The content hash to set + */ + function setContent(bytes32 node, bytes32 hash) public only_owner(node) { + records[node].content = hash; + emit ContentChanged(node, hash); + } + + /** + * Sets the name associated with an ENS node, for reverse records. + * May only be called by the owner of that node in the ENS registry. + * @param node The node to update. + * @param name The name to set. + */ + function setName(bytes32 node, string name) public only_owner(node) { + records[node].name = name; + emit NameChanged(node, name); + } + + /** + * Sets the ABI associated with an ENS node. + * Nodes may have one ABI of each content type. To remove an ABI, set it to + * the empty string. + * @param node The node to update. + * @param contentType The content type of the ABI + * @param data The ABI data. + */ + function setABI(bytes32 node, uint256 contentType, bytes data) public only_owner(node) { + // Content types must be powers of 2 + require(((contentType - 1) & contentType) == 0); + + records[node].abis[contentType] = data; + emit ABIChanged(node, contentType); + } + + /** + * Sets the SECP256k1 public key associated with an ENS node. + * @param node The ENS node to query + * @param x the X coordinate of the curve point for the public key. + * @param y the Y coordinate of the curve point for the public key. + */ + function setPubkey(bytes32 node, bytes32 x, bytes32 y) public only_owner(node) { + records[node].pubkey = PublicKey(x, y); + emit PubkeyChanged(node, x, y); + } + + /** + * Sets the text data associated with an ENS node and key. + * May only be called by the owner of that node in the ENS registry. + * @param node The node to update. + * @param key The key to set. + * @param value The text data value to set. + */ + function setText(bytes32 node, string key, string value) public only_owner(node) { + records[node].text[key] = value; + emit TextChanged(node, key, key); + } + + /** + * Returns the text data associated with an ENS node and key. + * @param node The ENS node to query. + * @param key The text data key to query. + * @return The associated text data. + */ + function text(bytes32 node, string key) public view returns (string) { + return records[node].text[key]; + } + + /** + * Returns the SECP256k1 public key associated with an ENS node. + * Defined in EIP 619. + * @param node The ENS node to query + * @return x, y the X and Y coordinates of the curve point for the public key. + */ + function pubkey(bytes32 node) public view returns (bytes32 x, bytes32 y) { + return (records[node].pubkey.x, records[node].pubkey.y); + } + + /** + * Returns the ABI associated with an ENS node. + * Defined in EIP205. + * @param node The ENS node to query + * @param contentTypes A bitwise OR of the ABI formats accepted by the caller. + * @return contentType The content type of the return value + * @return data The ABI data + */ + function ABI(bytes32 node, uint256 contentTypes) public view returns (uint256 contentType, bytes data) { + Record storage record = records[node]; + for (contentType = 1; contentType <= contentTypes; contentType <<= 1) { + if ((contentType & contentTypes) != 0 && record.abis[contentType].length > 0) { + data = record.abis[contentType]; + return; + } + } + contentType = 0; + } + + /** + * Returns the name associated with an ENS node, for reverse records. + * Defined in EIP181. + * @param node The ENS node to query. + * @return The associated name. + */ + function name(bytes32 node) public view returns (string) { + return records[node].name; + } + + /** + * Returns the content hash associated with an ENS node. + * Note that this resource type is not standardized, and will likely change + * in future to a resource type based on multihash. + * @param node The ENS node to query. + * @return The associated content hash. + */ + function content(bytes32 node) public view returns (bytes32) { + return records[node].content; + } + + /** + * Returns the address associated with an ENS node. + * @param node The ENS node to query. + * @return The associated address. + */ + function addr(bytes32 node) public view returns (address) { + return records[node].addr; + } + + /** + * Returns true if the resolver implements the interface specified by the provided hash. + * @param interfaceID The ID of the interface to check for. + * @return True if the contract implements the requested interface. + */ + function supportsInterface(bytes4 interfaceID) public pure returns (bool) { + return interfaceID == ADDR_INTERFACE_ID || + interfaceID == CONTENT_INTERFACE_ID || + interfaceID == NAME_INTERFACE_ID || + interfaceID == ABI_INTERFACE_ID || + interfaceID == PUBKEY_INTERFACE_ID || + interfaceID == TEXT_INTERFACE_ID || + interfaceID == INTERFACE_META_ID; + } +} + diff --git a/dist/2018-06-18-ix-deployment/SVIndex.sol b/dist/2018-06-18-ix-deployment/SVIndex.sol new file mode 100644 index 0000000..f81a668 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/SVIndex.sol @@ -0,0 +1,2891 @@ +pragma solidity 0.4.24; + +/* (c) 2018 SecureVote (Exo One Pty Ltd) */ + +contract BBFarmEvents { + event BallotCreatedWithID(uint ballotId); + event BBFarmInit(bytes4 namespace); + event Sponsorship(uint ballotId, uint value); + event Vote(uint indexed ballotId, bytes32 vote, address voter, bytes extra); +} + +library BBLib { + using BytesLib for bytes; + + // ballot meta + uint256 constant BB_VERSION = 6; + /* 4 deprecated due to insecure vote by proxy + 5 deprecated to + - add `returns (address)` to submitProxyVote + */ + + // voting settings + uint16 constant USE_ETH = 1; // 2^0 + uint16 constant USE_SIGNED = 2; // 2^1 + uint16 constant USE_NO_ENC = 4; // 2^2 + uint16 constant USE_ENC = 8; // 2^3 + + // ballot settings + uint16 constant IS_BINDING = 8192; // 2^13 + uint16 constant IS_OFFICIAL = 16384; // 2^14 + uint16 constant USE_TESTING = 32768; // 2^15 + + // other consts + uint32 constant MAX_UINT32 = 0xFFFFFFFF; + + //// ** Storage Variables + + // struct for ballot + struct Vote { + bytes32 voteData; + bytes32 castTsAndSender; + bytes extra; + } + + struct Sponsor { + address sender; + uint amount; + } + + //// ** Events + event CreatedBallot(bytes32 _specHash, uint64 startTs, uint64 endTs, uint16 submissionBits); + event SuccessfulVote(address indexed voter, uint voteId); + event SeckeyRevealed(bytes32 secretKey); + event TestingEnabled(); + event DeprecatedContract(); + + + // The big database struct + + + struct DB { + // Maps to store ballots, along with corresponding log of voters. + // Should only be modified through internal functions + mapping (uint256 => Vote) votes; + uint256 nVotesCast; + + // we need replay protection for proxy ballots - this will let us check against a sequence number + // note: votes directly from a user ALWAYS take priority b/c they do not have sequence numbers + // (sequencing is done by Ethereum itself via the tx nonce). + mapping (address => uint32) sequenceNumber; + + // NOTE - We don't actually want to include the encryption PublicKey because _it's included in the ballotSpec_. + // It's better to ensure ppl actually have the ballot spec by not including it in the contract. + // Plus we're already storing the hash of the ballotSpec anyway... + + // Private key to be set after ballot conclusion - curve25519 + bytes32 ballotEncryptionSeckey; + + // packed contains: + // 1. Timestamps for start and end of ballot (UTC) + // 2. bits used to decide which options are enabled or disabled for submission of ballots + uint256 packed; + + // specHash by which to validate the ballots integrity + bytes32 specHash; + // extradata if we need it - allows us to upgrade spechash format, etc + bytes16 extraData; + + // allow tracking of sponsorship for this ballot & connection to index + Sponsor[] sponsors; + IxIface index; + + // deprecation flag - doesn't actually do anything besides signal that this contract is deprecated; + bool deprecated; + + address ballotOwner; + uint256 creationTs; + } + + + // ** Modifiers -- note, these are functions here to allow use as a lib + function requireBallotClosed(DB storage db) internal view { + require(now > BPackedUtils.packedToEndTime(db.packed), "!b-closed"); + } + + function requireBallotOpen(DB storage db) internal view { + uint64 _n = uint64(now); + uint64 startTs; + uint64 endTs; + (, startTs, endTs) = BPackedUtils.unpackAll(db.packed); + require(_n >= startTs && _n < endTs, "!b-open"); + require(db.deprecated == false, "b-deprecated"); + } + + function requireBallotOwner(DB storage db) internal view { + require(msg.sender == db.ballotOwner, "!b-owner"); + } + + function requireTesting(DB storage db) internal view { + require(isTesting(BPackedUtils.packedToSubmissionBits(db.packed)), "!testing"); + } + + /* Library meta */ + + function getVersion() external pure returns (uint) { + // even though this is constant we want to make sure that it's actually + // callable on Ethereum so we don't accidentally package the constant code + // in with an SC using BBLib. This function _must_ be external. + return BB_VERSION; + } + + /* Functions */ + + // "Constructor" function - init core params on deploy + // timestampts are uint64s to give us plenty of room for millennia + function init(DB storage db, bytes32 _specHash, uint256 _packed, IxIface ix, address ballotOwner, bytes16 extraData) external { + require(db.specHash == bytes32(0), "b-exists"); + + db.index = ix; + db.ballotOwner = ballotOwner; + + uint64 startTs; + uint64 endTs; + uint16 sb; + (sb, startTs, endTs) = BPackedUtils.unpackAll(_packed); + + bool _testing = isTesting(sb); + if (_testing) { + emit TestingEnabled(); + } else { + require(endTs > now, "bad-end-time"); + + // 0x1ff2 is 0001111111110010 in binary + // by ANDing with subBits we make sure that only bits in positions 0,2,3,13,14,15 + // can be used. these correspond to the option flags at the top, and ETH ballots + // that are enc'd or plaintext. + require(sb & 0x1ff2 == 0, "bad-sb"); + + // if we give bad submission bits (e.g. all 0s) then refuse to deploy ballot + bool okaySubmissionBits = 1 == (isEthNoEnc(sb) ? 1 : 0) + (isEthWithEnc(sb) ? 1 : 0); + require(okaySubmissionBits, "!valid-sb"); + + // take the max of the start time provided and the blocks timestamp to avoid a DoS against recent token holders + // (which someone might be able to do if they could set the timestamp in the past) + startTs = startTs > now ? startTs : uint64(now); + } + require(_specHash != bytes32(0), "null-specHash"); + db.specHash = _specHash; + + db.packed = BPackedUtils.pack(sb, startTs, endTs); + db.creationTs = now; + + if (extraData != bytes16(0)) { + db.extraData = extraData; + } + + emit CreatedBallot(db.specHash, startTs, endTs, sb); + } + + /* sponsorship */ + + function logSponsorship(DB storage db, uint value) internal { + db.sponsors.push(Sponsor(msg.sender, value)); + } + + /* getters */ + + function getVote(DB storage db, uint id) internal view returns (bytes32 voteData, address sender, bytes extra, uint castTs) { + return (db.votes[id].voteData, address(db.votes[id].castTsAndSender), db.votes[id].extra, uint(db.votes[id].castTsAndSender) >> 160); + } + + function getSequenceNumber(DB storage db, address voter) internal view returns (uint32) { + return db.sequenceNumber[voter]; + } + + function getTotalSponsorship(DB storage db) internal view returns (uint total) { + for (uint i = 0; i < db.sponsors.length; i++) { + total += db.sponsors[i].amount; + } + } + + function getSponsor(DB storage db, uint i) external view returns (address sender, uint amount) { + sender = db.sponsors[i].sender; + amount = db.sponsors[i].amount; + } + + /* ETH BALLOTS */ + + // Ballot submission + // note: if USE_ENC then curve25519 keys should be generated for + // each ballot (then thrown away). + // the curve25519 PKs go in the extra param + function submitVote(DB storage db, bytes32 voteData, bytes extra) external { + _addVote(db, voteData, msg.sender, extra); + // set the sequence number to max uint32 to disable proxy submitted ballots + // after a voter submits a transaction personally - effectivley disables proxy + // ballots. You can _always_ submit a new vote _personally_ with this scheme. + if (db.sequenceNumber[msg.sender] != MAX_UINT32) { + // using an IF statement here let's us save 4800 gas on repeat votes at the cost of 20k extra gas initially + db.sequenceNumber[msg.sender] = MAX_UINT32; + } + } + + // Boundaries for constructing the msg we'll validate the signature of + function submitProxyVote(DB storage db, bytes32[5] proxyReq, bytes extra) external returns (address voter) { + // a proxy vote (where the vote is submitted (i.e. tx fee paid by someone else) + // docs for datastructs: https://github.com/secure-vote/tokenvote/blob/master/Docs/DataStructs.md + + bytes32 r = proxyReq[0]; + bytes32 s = proxyReq[1]; + uint8 v = uint8(proxyReq[2][0]); + // converting to uint248 will truncate the first byte, and we can then convert it to a bytes31. + // we truncate the first byte because it's the `v` parm used above + bytes31 proxyReq2 = bytes31(uint248(proxyReq[2])); + // proxyReq[3] is ballotId - required for verifying sig but not used for anything else + bytes32 ballotId = proxyReq[3]; + bytes32 voteData = proxyReq[4]; + + // using abi.encodePacked is much cheaper than making bytes in other ways... + bytes memory signed = abi.encodePacked(proxyReq2, ballotId, voteData, extra); + bytes32 msgHash = keccak256(signed); + // need to be sure we are signing the entire ballot and any extra data that comes with it + voter = ecrecover(msgHash, v, r, s); + + // we need to make sure that this is the most recent vote the voter made, and that it has + // not been seen before. NOTE: we've already validated the BBFarm namespace before this, so + // we know it's meant for _this_ ballot. + uint32 sequence = uint32(proxyReq2); // last 4 bytes of proxyReq2 - the sequence number + _proxyReplayProtection(db, voter, sequence); + + _addVote(db, voteData, voter, extra); + } + + function _addVote(DB storage db, bytes32 voteData, address sender, bytes extra) internal returns (uint256 id) { + requireBallotOpen(db); + + id = db.nVotesCast; + db.votes[id].voteData = voteData; + // pack the casting ts right next to the sender + db.votes[id].castTsAndSender = bytes32(sender) ^ bytes32(now << 160); + if (extra.length > 0) { + db.votes[id].extra = extra; + } + db.nVotesCast += 1; + emit SuccessfulVote(sender, id); + } + + function _proxyReplayProtection(DB storage db, address voter, uint32 sequence) internal { + // we want the replay protection sequence number to be STRICTLY MORE than what + // is stored in the mapping. This means we can set sequence to MAX_UINT32 to disable + // any future votes. + require(db.sequenceNumber[voter] < sequence, "bad-sequence-n"); + db.sequenceNumber[voter] = sequence; + } + + /* Admin */ + + function setEndTime(DB storage db, uint64 newEndTime) external { + uint16 sb; + uint64 sTs; + (sb, sTs,) = BPackedUtils.unpackAll(db.packed); + db.packed = BPackedUtils.pack(sb, sTs, newEndTime); + } + + function revealSeckey(DB storage db, bytes32 sk) internal { + db.ballotEncryptionSeckey = sk; + emit SeckeyRevealed(sk); + } + + /* Submission Bits (Ballot Classifications) */ + + // do (bits & SETTINGS_MASK) to get just operational bits (as opposed to testing or official flag) + uint16 constant SETTINGS_MASK = 0xFFFF ^ USE_TESTING ^ IS_OFFICIAL ^ IS_BINDING; + + function isEthNoEnc(uint16 submissionBits) pure internal returns (bool) { + return checkFlags(submissionBits, USE_ETH | USE_NO_ENC); + } + + function isEthWithEnc(uint16 submissionBits) pure internal returns (bool) { + return checkFlags(submissionBits, USE_ETH | USE_ENC); + } + + function isOfficial(uint16 submissionBits) pure internal returns (bool) { + return (submissionBits & IS_OFFICIAL) == IS_OFFICIAL; + } + + function isBinding(uint16 submissionBits) pure internal returns (bool) { + return (submissionBits & IS_BINDING) == IS_BINDING; + } + + function isTesting(uint16 submissionBits) pure internal returns (bool) { + return (submissionBits & USE_TESTING) == USE_TESTING; + } + + function qualifiesAsCommunityBallot(uint16 submissionBits) pure internal returns (bool) { + // if submissionBits AND any of the bits that make this _not_ a community + // ballot is equal to zero that means none of those bits were active, so + // it could be a community ballot + return (submissionBits & (IS_BINDING | IS_OFFICIAL | USE_ENC)) == 0; + } + + function checkFlags(uint16 submissionBits, uint16 expected) pure internal returns (bool) { + // this should ignore ONLY the testing/flag bits - all other bits are significant + uint16 sBitsNoSettings = submissionBits & SETTINGS_MASK; + // then we want ONLY expected + return sBitsNoSettings == expected; + } +} + +library BPackedUtils { + + // the uint16 ending at 128 bits should be 0s + uint256 constant sbMask = 0xffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff; + uint256 constant startTimeMask = 0xffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff; + uint256 constant endTimeMask = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000; + + function packedToSubmissionBits(uint256 packed) internal pure returns (uint16) { + return uint16(packed >> 128); + } + + function packedToStartTime(uint256 packed) internal pure returns (uint64) { + return uint64(packed >> 64); + } + + function packedToEndTime(uint256 packed) internal pure returns (uint64) { + return uint64(packed); + } + + function unpackAll(uint256 packed) internal pure returns (uint16 submissionBits, uint64 startTime, uint64 endTime) { + submissionBits = uint16(packed >> 128); + startTime = uint64(packed >> 64); + endTime = uint64(packed); + } + + function pack(uint16 sb, uint64 st, uint64 et) internal pure returns (uint256 packed) { + return uint256(sb) << 128 | uint256(st) << 64 | uint256(et); + } + + function setSB(uint256 packed, uint16 newSB) internal pure returns (uint256) { + return (packed & sbMask) | uint256(newSB) << 128; + } + + // function setStartTime(uint256 packed, uint64 startTime) internal pure returns (uint256) { + // return (packed & startTimeMask) | uint256(startTime) << 64; + // } + + // function setEndTime(uint256 packed, uint64 endTime) internal pure returns (uint256) { + // return (packed & endTimeMask) | uint256(endTime); + // } +} + +interface CommAuctionIface { + function getNextPrice(bytes32 democHash) external view returns (uint); + function noteBallotDeployed(bytes32 democHash) external; + + // add more when we need it + + function upgradeMe(address newSC) external; +} + +library IxLib { + /** + * Usage: `using IxLib for IxIface` + * The idea is to (instead of adding methods that already use + * available public info to the index) we can create `internal` + * methods in the lib to do this instead (which means the code + * is inserted into other contracts inline, without a `delegatecall`. + * + * For this reason it's crucial to have no methods in IxLib with the + * same name as methods in IxIface + */ + + /* Global price and payments data */ + + function getPayTo(IxIface ix) internal view returns (address) { + return ix.getPayments().getPayTo(); + } + + /* Global Ix data */ + + function getBBFarmFromBallotID(IxIface ix, uint256 ballotId) internal view returns (BBFarmIface) { + bytes4 bbNamespace = bytes4(ballotId >> 48); + uint8 bbFarmId = ix.getBBFarmID(bbNamespace); + return ix.getBBFarm(bbFarmId); + } + + /* Global backend data */ + + function getGDemocsN(IxIface ix) internal view returns (uint256) { + return ix.getBackend().getGDemocsN(); + } + + function getGDemoc(IxIface ix, uint256 n) internal view returns (bytes32) { + return ix.getBackend().getGDemoc(n); + } + + function getGErc20ToDemocs(IxIface ix, address erc20) internal view returns (bytes32[] democHashes) { + return ix.getBackend().getGErc20ToDemocs(erc20); + } + + /* Democ specific payment/account data */ + + function accountInGoodStanding(IxIface ix, bytes32 democHash) internal view returns (bool) { + return ix.getPayments().accountInGoodStanding(democHash); + } + + function accountPremiumAndInGoodStanding(IxIface ix, bytes32 democHash) internal view returns (bool) { + IxPaymentsIface payments = ix.getPayments(); + return payments.accountInGoodStanding(democHash) && payments.getPremiumStatus(democHash); + } + + function payForDemocracy(IxIface ix, bytes32 democHash) internal { + ix.getPayments().payForDemocracy.value(msg.value)(democHash); + } + + /* Democ getters */ + + function getDOwner(IxIface ix, bytes32 democHash) internal view returns (address) { + return ix.getBackend().getDOwner(democHash); + } + + function isDEditor(IxIface ix, bytes32 democHash, address editor) internal view returns (bool) { + return ix.getBackend().isDEditor(democHash, editor); + } + + function getDBallotsN(IxIface ix, bytes32 democHash) internal view returns (uint256) { + return ix.getBackend().getDBallotsN(democHash); + } + + function getDBallotID(IxIface ix, bytes32 democHash, uint256 n) internal view returns (uint256) { + return ix.getBackend().getDBallotID(democHash, n); + } + + function getDInfo(IxIface ix, bytes32 democHash) internal view returns (address erc20, address admin, uint256 _nBallots) { + return ix.getBackend().getDInfo(democHash); + } + + function getDErc20(IxIface ix, bytes32 democHash) internal view returns (address erc20) { + return ix.getBackend().getDErc20(democHash); + } + + function getDHash(IxIface ix, bytes13 prefix) internal view returns (bytes32) { + return ix.getBackend().getDHash(prefix); + } + + function getDCategoriesN(IxIface ix, bytes32 democHash) internal view returns (uint) { + return ix.getBackend().getDCategoriesN(democHash); + } + + function getDCategory(IxIface ix, bytes32 democHash, uint categoryId) internal view returns (bool, bytes32, bool, uint) { + return ix.getBackend().getDCategory(democHash, categoryId); + } + + function getDArbitraryData(IxIface ix, bytes32 democHash, bytes key) external view returns (bytes) { + return ix.getBackend().getDArbitraryData(democHash, key); + } +} + +contract SVBallotConsts { + // voting settings + uint16 constant USE_ETH = 1; // 2^0 + uint16 constant USE_SIGNED = 2; // 2^1 + uint16 constant USE_NO_ENC = 4; // 2^2 + uint16 constant USE_ENC = 8; // 2^3 + + // ballot settings + uint16 constant IS_BINDING = 8192; // 2^13 + uint16 constant IS_OFFICIAL = 16384; // 2^14 + uint16 constant USE_TESTING = 32768; // 2^15 +} + +contract safeSend { + bool private txMutex3847834; + + // we want to be able to call outside contracts (e.g. the admin proxy contract) + // but reentrency is bad, so here's a mutex. + function doSafeSend(address toAddr, uint amount) internal { + doSafeSendWData(toAddr, "", amount); + } + + function doSafeSendWData(address toAddr, bytes data, uint amount) internal { + require(txMutex3847834 == false, "ss-guard"); + txMutex3847834 = true; + // we need to use address.call.value(v)() because we want + // to be able to send to other contracts, even with no data, + // which might use more than 2300 gas in their fallback function. + require(toAddr.call.value(amount)(data), "ss-failed"); + txMutex3847834 = false; + } +} + +contract payoutAllC is safeSend { + address private _payTo; + + event PayoutAll(address payTo, uint value); + + constructor(address initPayTo) public { + // DEV NOTE: you can overwrite _getPayTo if you want to reuse other storage vars + assert(initPayTo != address(0)); + _payTo = initPayTo; + } + + function _getPayTo() internal view returns (address) { + return _payTo; + } + + function _setPayTo(address newPayTo) internal { + _payTo = newPayTo; + } + + function payoutAll() external { + address a = _getPayTo(); + uint bal = address(this).balance; + doSafeSend(a, bal); + emit PayoutAll(a, bal); + } +} + +contract payoutAllCSettable is payoutAllC { + constructor (address initPayTo) payoutAllC(initPayTo) public { + } + + function setPayTo(address) external; + function getPayTo() external view returns (address) { + return _getPayTo(); + } +} + +contract owned { + address public owner; + + event OwnerChanged(address newOwner); + + modifier only_owner() { + require(msg.sender == owner, "only_owner: forbidden"); + _; + } + + modifier owner_or(address addr) { + require(msg.sender == addr || msg.sender == owner, "!owner-or"); + _; + } + + constructor() public { + owner = msg.sender; + } + + function setOwner(address newOwner) only_owner() external { + owner = newOwner; + emit OwnerChanged(newOwner); + } +} + +contract CanReclaimToken is owned { + + /** + * @dev Reclaim all ERC20Basic compatible tokens + * @param token ERC20Basic The address of the token contract + */ + function reclaimToken(ERC20Interface token) external only_owner { + uint256 balance = token.balanceOf(this); + require(token.approve(owner, balance)); + } + +} + +contract CommunityAuctionSimple is owned { + // about $1USD at $600usd/eth + uint public commBallotPriceWei = 1666666666000000; + + struct Record { + bytes32 democHash; + uint ts; + } + + mapping (address => Record[]) public ballotLog; + mapping (address => address) public upgrades; + + function getNextPrice(bytes32) external view returns (uint) { + return commBallotPriceWei; + } + + function noteBallotDeployed(bytes32 d) external { + require(upgrades[msg.sender] == address(0)); + ballotLog[msg.sender].push(Record(d, now)); + } + + function upgradeMe(address newSC) external { + require(upgrades[msg.sender] == address(0)); + upgrades[msg.sender] = newSC; + } + + function getBallotLogN(address a) external view returns (uint) { + return ballotLog[a].length; + } + + function setPriceWei(uint newPrice) only_owner() external { + commBallotPriceWei = newPrice; + } +} + +contract controlledIface { + function controller() external view returns (address); +} + +contract hasAdmins is owned { + mapping (uint => mapping (address => bool)) admins; + uint public currAdminEpoch = 0; + bool public adminsDisabledForever = false; + address[] adminLog; + + event AdminAdded(address indexed newAdmin); + event AdminRemoved(address indexed oldAdmin); + event AdminEpochInc(); + event AdminDisabledForever(); + + modifier only_admin() { + require(adminsDisabledForever == false, "admins must not be disabled"); + require(isAdmin(msg.sender), "only_admin: forbidden"); + _; + } + + constructor() public { + _setAdmin(msg.sender, true); + } + + function isAdmin(address a) view public returns (bool) { + return admins[currAdminEpoch][a]; + } + + function getAdminLogN() view external returns (uint) { + return adminLog.length; + } + + function getAdminLog(uint n) view external returns (address) { + return adminLog[n]; + } + + function upgradeMeAdmin(address newAdmin) only_admin() external { + // note: already checked msg.sender has admin with `only_admin` modifier + require(msg.sender != owner, "owner cannot upgrade self"); + _setAdmin(msg.sender, false); + _setAdmin(newAdmin, true); + } + + function setAdmin(address a, bool _givePerms) only_admin() external { + require(a != msg.sender && a != owner, "cannot change your own (or owner's) permissions"); + _setAdmin(a, _givePerms); + } + + function _setAdmin(address a, bool _givePerms) internal { + admins[currAdminEpoch][a] = _givePerms; + if (_givePerms) { + emit AdminAdded(a); + adminLog.push(a); + } else { + emit AdminRemoved(a); + } + } + + // safety feature if admins go bad or something + function incAdminEpoch() only_owner() external { + currAdminEpoch++; + admins[currAdminEpoch][msg.sender] = true; + emit AdminEpochInc(); + } + + // this is internal so contracts can all it, but not exposed anywhere in this + // contract. + function disableAdminForever() internal { + currAdminEpoch++; + adminsDisabledForever = true; + emit AdminDisabledForever(); + } +} + +contract EnsOwnerProxy is hasAdmins { + bytes32 public ensNode; + ENSIface public ens; + PublicResolver public resolver; + + /** + * @param _ensNode The node to administer + * @param _ens The ENS Registrar + * @param _resolver The ENS Resolver + */ + constructor(bytes32 _ensNode, ENSIface _ens, PublicResolver _resolver) public { + ensNode = _ensNode; + ens = _ens; + resolver = _resolver; + } + + function setAddr(address addr) only_admin() external { + _setAddr(addr); + } + + function _setAddr(address addr) internal { + resolver.setAddr(ensNode, addr); + } + + function returnToOwner() only_owner() external { + ens.setOwner(ensNode, owner); + } + + function fwdToENS(bytes data) only_owner() external { + require(address(ens).call(data), "fwding to ens failed"); + } + + function fwdToResolver(bytes data) only_owner() external { + require(address(resolver).call(data), "fwding to resolver failed"); + } +} + +contract permissioned is owned, hasAdmins { + mapping (address => bool) editAllowed; + bool public adminLockdown = false; + + event PermissionError(address editAddr); + event PermissionGranted(address editAddr); + event PermissionRevoked(address editAddr); + event PermissionsUpgraded(address oldSC, address newSC); + event SelfUpgrade(address oldSC, address newSC); + event AdminLockdown(); + + modifier only_editors() { + require(editAllowed[msg.sender], "only_editors: forbidden"); + _; + } + + modifier no_lockdown() { + require(adminLockdown == false, "no_lockdown: check failed"); + _; + } + + + constructor() owned() hasAdmins() public { + } + + + function setPermissions(address e, bool _editPerms) no_lockdown() only_admin() external { + editAllowed[e] = _editPerms; + if (_editPerms) + emit PermissionGranted(e); + else + emit PermissionRevoked(e); + } + + function upgradePermissionedSC(address oldSC, address newSC) no_lockdown() only_admin() external { + editAllowed[oldSC] = false; + editAllowed[newSC] = true; + emit PermissionsUpgraded(oldSC, newSC); + } + + // always allow SCs to upgrade themselves, even after lockdown + function upgradeMe(address newSC) only_editors() external { + editAllowed[msg.sender] = false; + editAllowed[newSC] = true; + emit SelfUpgrade(msg.sender, newSC); + } + + function hasPermissions(address a) public view returns (bool) { + return editAllowed[a]; + } + + function doLockdown() external only_owner() no_lockdown() { + disableAdminForever(); + adminLockdown = true; + emit AdminLockdown(); + } +} + +contract upgradePtr { + address ptr = address(0); + + modifier not_upgraded() { + require(ptr == address(0), "upgrade pointer is non-zero"); + _; + } + + function getUpgradePointer() view external returns (address) { + return ptr; + } + + function doUpgradeInternal(address nextSC) internal { + ptr = nextSC; + } +} + +interface ERC20Interface { + // Get the total token supply + function totalSupply() constant external returns (uint256 _totalSupply); + + // Get the account balance of another account with address _owner + function balanceOf(address _owner) constant external returns (uint256 balance); + + // Send _value amount of tokens to address _to + function transfer(address _to, uint256 _value) external returns (bool success); + + // Send _value amount of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) external returns (bool success); + + // Allow _spender to withdraw from your account, multiple times, up to the _value amount. + // If this function is called again it overwrites the current allowance with _value. + // this function is required for some DEX functionality + function approve(address _spender, uint256 _value) external returns (bool success); + + // Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) constant external returns (uint256 remaining); + + // Triggered when tokens are transferred. + event Transfer(address indexed _from, address indexed _to, uint256 _value); + + // Triggered whenever approve(address _spender, uint256 _value) is called. + event Approval(address indexed _owner, address indexed _spender, uint256 _value); +} + +contract ixEvents { + event PaymentMade(uint[2] valAndRemainder); + event AddedBBFarm(uint8 bbFarmId); + event SetBackend(bytes32 setWhat, address newSC); + event DeprecatedBBFarm(uint8 bbFarmId); + event CommunityBallot(bytes32 democHash, uint256 ballotId); + event ManuallyAddedBallot(bytes32 democHash, uint256 ballotId, uint256 packed); + // copied from BBFarm - unable to inherit from BBFarmEvents... + event BallotCreatedWithID(uint ballotId); + event BBFarmInit(bytes4 namespace); +} + +contract ixBackendEvents { + event NewDemoc(bytes32 democHash); + event ManuallyAddedDemoc(bytes32 democHash, address erc20); + event NewBallot(bytes32 indexed democHash, uint ballotN); + event DemocOwnerSet(bytes32 indexed democHash, address owner); + event DemocEditorSet(bytes32 indexed democHash, address editor, bool canEdit); + event DemocEditorsWiped(bytes32 indexed democHash); + event DemocErc20Set(bytes32 indexed democHash, address erc20); + event DemocDataSet(bytes32 indexed democHash, bytes32 keyHash); + event DemocCatAdded(bytes32 indexed democHash, uint catId); + event DemocCatDeprecated(bytes32 indexed democHash, uint catId); + event DemocCommunityBallotsEnabled(bytes32 indexed democHash, bool enabled); + event DemocErc20OwnerClaimDisabled(bytes32 indexed democHash); + event DemocClaimed(bytes32 indexed democHash); + event EmergencyDemocOwner(bytes32 indexed democHash, address newOwner); +} + +library SafeMath { + function subToZero(uint a, uint b) internal pure returns (uint) { + if (a < b) { // then (a - b) would overflow + return 0; + } + return a - b; + } +} + +contract ixPaymentEvents { + event UpgradedToPremium(bytes32 indexed democHash); + event GrantedAccountTime(bytes32 indexed democHash, uint additionalSeconds, bytes32 ref); + event AccountPayment(bytes32 indexed democHash, uint additionalSeconds); + event SetCommunityBallotFee(uint amount); + event SetBasicCentsPricePer30Days(uint amount); + event SetPremiumMultiplier(uint8 multiplier); + event DowngradeToBasic(bytes32 indexed democHash); + event UpgradeToPremium(bytes32 indexed democHash); + event SetExchangeRate(uint weiPerCent); + event FreeExtension(bytes32 democHash); + event SetBallotsPer30Days(uint amount); + event SetFreeExtension(bytes32 democHash, bool hasFreeExt); + event SetDenyPremium(bytes32 democHash, bool isPremiumDenied); + event SetPayTo(address payTo); + event SetMinorEditsAddr(address minorEditsAddr); + event SetMinWeiForDInit(uint amount); +} + +interface hasVersion { + function getVersion() external pure returns (uint); +} + +contract BBFarmIface is BBFarmEvents, permissioned, hasVersion, payoutAllC { + /* global bbfarm getters */ + + function getNamespace() external view returns (bytes4); + function getBBLibVersion() external view returns (uint256); + function getNBallots() external view returns (uint256); + + /* init a ballot */ + + // note that the ballotId returned INCLUDES the namespace. + function initBallot( bytes32 specHash + , uint256 packed + , IxIface ix + , address bbAdmin + , bytes24 extraData + ) external returns (uint ballotId); + + /* Sponsorship of ballots */ + + function sponsor(uint ballotId) external payable; + + /* Voting functions */ + + function submitVote(uint ballotId, bytes32 vote, bytes extra) external; + function submitProxyVote(bytes32[5] proxyReq, bytes extra) external; + + /* Ballot Getters */ + + function getDetails(uint ballotId, address voter) external view returns + ( bool hasVoted + , uint nVotesCast + , bytes32 secKey + , uint16 submissionBits + , uint64 startTime + , uint64 endTime + , bytes32 specHash + , bool deprecated + , address ballotOwner + , bytes16 extraData); + + function getVote(uint ballotId, uint voteId) external view returns (bytes32 voteData, address sender, bytes extra); + function getTotalSponsorship(uint ballotId) external view returns (uint); + function getSponsorsN(uint ballotId) external view returns (uint); + function getSponsor(uint ballotId, uint sponsorN) external view returns (address sender, uint amount); + function getCreationTs(uint ballotId) external view returns (uint); + + /* Admin on ballots */ + function revealSeckey(uint ballotId, bytes32 sk) external; + function setEndTime(uint ballotId, uint64 newEndTime) external; // note: testing only + function setDeprecated(uint ballotId) external; + function setBallotOwner(uint ballotId, address newOwner) external; +} + +contract BBFarm is BBFarmIface { + using BBLib for BBLib.DB; + using IxLib for IxIface; + + // namespaces should be unique for each bbFarm + bytes4 constant NAMESPACE = 0x00000001; + // last 48 bits + uint256 constant BALLOT_ID_MASK = 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; + + uint constant VERSION = 2; + + mapping (uint224 => BBLib.DB) dbs; + // note - start at 100 to avoid any test for if 0 is a valid ballotId + // also gives us some space to play with low numbers if we want. + uint nBallots = 0; + + /* modifiers */ + + modifier req_namespace(uint ballotId) { + // bytes4() will take the _first_ 4 bytes + require(bytes4(ballotId >> 224) == NAMESPACE, "bad-namespace"); + _; + } + + /* Constructor */ + + constructor() payoutAllC(msg.sender) public { + // this bbFarm requires v5 of BBLib (note: v4 deprecated immediately due to insecure submitProxyVote) + // note: even though we can't test for this in coverage, this has stopped me deploying to kovan with the wrong version tho, so I consider it tested :) + assert(BBLib.getVersion() == 6); + emit BBFarmInit(NAMESPACE); + } + + /* base SCs */ + + function _getPayTo() internal view returns (address) { + return owner; + } + + function getVersion() external pure returns (uint) { + return VERSION; + } + + /* global funcs */ + + function getNamespace() external view returns (bytes4) { + return NAMESPACE; + } + + function getBBLibVersion() external view returns (uint256) { + return BBLib.getVersion(); + } + + function getNBallots() external view returns (uint256) { + return nBallots; + } + + /* db lookup helper */ + + function getDb(uint ballotId) internal view returns (BBLib.DB storage) { + // cut off anything above 224 bits (where the namespace goes) + return dbs[uint224(ballotId)]; + } + + /* Init ballot */ + + function initBallot( bytes32 specHash + , uint256 packed + , IxIface ix + , address bbAdmin + , bytes24 extraData + ) only_editors() external returns (uint ballotId) { + // calculate the ballotId based on the last 224 bits of the specHash. + ballotId = uint224(specHash) ^ (uint256(NAMESPACE) << 224); + // we need to call the init functions on our libraries + getDb(ballotId).init(specHash, packed, ix, bbAdmin, bytes16(uint128(extraData))); + nBallots += 1; + + emit BallotCreatedWithID(ballotId); + } + + /* Sponsorship */ + + function sponsor(uint ballotId) external payable { + BBLib.DB storage db = getDb(ballotId); + db.logSponsorship(msg.value); + doSafeSend(db.index.getPayTo(), msg.value); + emit Sponsorship(ballotId, msg.value); + } + + /* Voting */ + + function submitVote(uint ballotId, bytes32 vote, bytes extra) req_namespace(ballotId) external { + getDb(ballotId).submitVote(vote, extra); + emit Vote(ballotId, vote, msg.sender, extra); + } + + function submitProxyVote(bytes32[5] proxyReq, bytes extra) req_namespace(uint256(proxyReq[3])) external { + // see https://github.com/secure-vote/tokenvote/blob/master/Docs/DataStructs.md for breakdown of params + // pr[3] is the ballotId, and pr[4] is the vote + uint ballotId = uint256(proxyReq[3]); + address voter = getDb(ballotId).submitProxyVote(proxyReq, extra); + bytes32 vote = proxyReq[4]; + emit Vote(ballotId, vote, voter, extra); + } + + /* Getters */ + + // note - this is the maxmimum number of vars we can return with one + // function call (taking 2 args) + function getDetails(uint ballotId, address voter) external view returns + ( bool hasVoted + , uint nVotesCast + , bytes32 secKey + , uint16 submissionBits + , uint64 startTime + , uint64 endTime + , bytes32 specHash + , bool deprecated + , address ballotOwner + , bytes16 extraData) { + BBLib.DB storage db = getDb(ballotId); + uint packed = db.packed; + return ( + db.getSequenceNumber(voter) > 0, + db.nVotesCast, + db.ballotEncryptionSeckey, + BPackedUtils.packedToSubmissionBits(packed), + BPackedUtils.packedToStartTime(packed), + BPackedUtils.packedToEndTime(packed), + db.specHash, + db.deprecated, + db.ballotOwner, + db.extraData + ); + } + + function getVote(uint ballotId, uint voteId) external view returns (bytes32 voteData, address sender, bytes extra) { + (voteData, sender, extra, ) = getDb(ballotId).getVote(voteId); + } + + function getSequenceNumber(uint ballotId, address voter) external view returns (uint32 sequence) { + return getDb(ballotId).getSequenceNumber(voter); + } + + function getTotalSponsorship(uint ballotId) external view returns (uint) { + return getDb(ballotId).getTotalSponsorship(); + } + + function getSponsorsN(uint ballotId) external view returns (uint) { + return getDb(ballotId).sponsors.length; + } + + function getSponsor(uint ballotId, uint sponsorN) external view returns (address sender, uint amount) { + return getDb(ballotId).getSponsor(sponsorN); + } + + function getCreationTs(uint ballotId) external view returns (uint) { + return getDb(ballotId).creationTs; + } + + /* ADMIN */ + + // Allow the owner to reveal the secret key after ballot conclusion + function revealSeckey(uint ballotId, bytes32 sk) external { + BBLib.DB storage db = getDb(ballotId); + db.requireBallotOwner(); + db.requireBallotClosed(); + db.revealSeckey(sk); + } + + // note: testing only. + function setEndTime(uint ballotId, uint64 newEndTime) external { + BBLib.DB storage db = getDb(ballotId); + db.requireBallotOwner(); + db.requireTesting(); + db.setEndTime(newEndTime); + } + + function setDeprecated(uint ballotId) external { + BBLib.DB storage db = getDb(ballotId); + db.requireBallotOwner(); + db.deprecated = true; + } + + function setBallotOwner(uint ballotId, address newOwner) external { + BBLib.DB storage db = getDb(ballotId); + db.requireBallotOwner(); + db.ballotOwner = newOwner; + } +} + +contract IxIface is hasVersion, + ixPaymentEvents, + ixBackendEvents, + ixEvents, + SVBallotConsts, + owned, + CanReclaimToken, + upgradePtr, + payoutAllC { + + /* owner functions */ + function addBBFarm(BBFarmIface bbFarm) external returns (uint8 bbFarmId); + function setABackend(bytes32 toSet, address newSC) external; + function deprecateBBFarm(uint8 bbFarmId, BBFarmIface _bbFarm) external; + + /* global getters */ + function getPayments() external view returns (IxPaymentsIface); + function getBackend() external view returns (IxBackendIface); + function getBBFarm(uint8 bbFarmId) external view returns (BBFarmIface); + function getBBFarmID(bytes4 bbNamespace) external view returns (uint8 bbFarmId); + function getCommAuction() external view returns (CommAuctionIface); + + /* init a democ */ + function dInit(address defualtErc20, bool disableErc20OwnerClaim) external payable returns (bytes32); + + /* democ owner / editor functions */ + function setDEditor(bytes32 democHash, address editor, bool canEdit) external; + function setDNoEditors(bytes32 democHash) external; + function setDOwner(bytes32 democHash, address newOwner) external; + function dOwnerErc20Claim(bytes32 democHash) external; + function setDErc20(bytes32 democHash, address newErc20) external; + function dAddCategory(bytes32 democHash, bytes32 categoryName, bool hasParent, uint parent) external; + function dDeprecateCategory(bytes32 democHash, uint categoryId) external; + function dUpgradeToPremium(bytes32 democHash) external; + function dDowngradeToBasic(bytes32 democHash) external; + function dSetArbitraryData(bytes32 democHash, bytes key, bytes value) external; + function dSetCommunityBallotsEnabled(bytes32 democHash, bool enabled) external; + function dDisableErc20OwnerClaim(bytes32 democHash) external; + + /* democ getters (that used to be here) should be called on either backend or payments directly */ + /* use IxLib for convenience functions from other SCs */ + + /* ballot deployment */ + // only ix owner - used for adding past or special ballots + function dAddBallot(bytes32 democHash, uint ballotId, uint256 packed) external; + function dDeployCommunityBallot(bytes32 democHash, bytes32 specHash, bytes32 extraData, uint128 packedTimes) external payable; + function dDeployBallot(bytes32 democHash, bytes32 specHash, bytes32 extraData, uint256 packed) external payable; +} + +contract SVIndex is IxIface { + uint256 constant VERSION = 2; + + // generated from: `address public owner;` + bytes4 constant OWNER_SIG = 0x8da5cb5b; + // generated from: `address public controller;` + bytes4 constant CONTROLLER_SIG = 0xf77c4791; + + /* backend & other SC storage */ + + IxBackendIface backend; + IxPaymentsIface payments; + EnsOwnerProxy public ensOwnerPx; + BBFarmIface[] bbFarms; + CommAuctionIface commAuction; + // mapping from bbFarm namespace to bbFarmId + mapping (bytes4 => uint8) bbFarmIdLookup; + mapping (uint8 => bool) deprecatedBBFarms; + + //* MODIFIERS / + + modifier onlyDemocOwner(bytes32 democHash) { + require(msg.sender == backend.getDOwner(democHash), "!d-owner"); + _; + } + + modifier onlyDemocEditor(bytes32 democHash) { + require(backend.isDEditor(democHash, msg.sender), "!d-editor"); + _; + } + + /* FUNCTIONS */ + + // constructor + constructor( IxBackendIface _b + , IxPaymentsIface _pay + , EnsOwnerProxy _ensOwnerPx + , BBFarmIface _bbFarm0 + , CommAuctionIface _commAuction + ) payoutAllC(msg.sender) public { + backend = _b; + payments = _pay; + ensOwnerPx = _ensOwnerPx; + _addBBFarm(0x0, _bbFarm0); + commAuction = _commAuction; + } + + /* payoutAllC */ + + function _getPayTo() internal view returns (address) { + return payments.getPayTo(); + } + + /* UPGRADE STUFF */ + + function doUpgrade(address nextSC) only_owner() not_upgraded() external { + doUpgradeInternal(nextSC); + backend.upgradeMe(nextSC); + payments.upgradeMe(nextSC); + ensOwnerPx.setAddr(nextSC); + ensOwnerPx.upgradeMeAdmin(nextSC); + commAuction.upgradeMe(nextSC); + + for (uint i = 0; i < bbFarms.length; i++) { + bbFarms[i].upgradeMe(nextSC); + } + } + + function _addBBFarm(bytes4 bbNamespace, BBFarmIface _bbFarm) internal returns (uint8 bbFarmId) { + uint256 bbFarmIdLong = bbFarms.length; + require(bbFarmIdLong < 2**8, "too-many-farms"); + bbFarmId = uint8(bbFarmIdLong); + + bbFarms.push(_bbFarm); + bbFarmIdLookup[bbNamespace] = bbFarmId; + emit AddedBBFarm(bbFarmId); + } + + // adding a new BBFarm + function addBBFarm(BBFarmIface bbFarm) only_owner() external returns (uint8 bbFarmId) { + bytes4 bbNamespace = bbFarm.getNamespace(); + + require(bbNamespace != bytes4(0), "bb-farm-namespace"); + require(bbFarmIdLookup[bbNamespace] == 0 && bbNamespace != bbFarms[0].getNamespace(), "bb-namespace-used"); + + bbFarmId = _addBBFarm(bbNamespace, bbFarm); + } + + function setABackend(bytes32 toSet, address newSC) only_owner() external { + emit SetBackend(toSet, newSC); + if (toSet == bytes32("payments")) { + payments = IxPaymentsIface(newSC); + } else if (toSet == bytes32("backend")) { + backend = IxBackendIface(newSC); + } else if (toSet == bytes32("commAuction")) { + commAuction = CommAuctionIface(newSC); + } else { + revert("404"); + } + } + + function deprecateBBFarm(uint8 bbFarmId, BBFarmIface _bbFarm) only_owner() external { + require(address(_bbFarm) != address(0)); + require(bbFarms[bbFarmId] == _bbFarm); + deprecatedBBFarms[bbFarmId] = true; + emit DeprecatedBBFarm(bbFarmId); + } + + /* Getters for backends */ + + function getPayments() external view returns (IxPaymentsIface) { + return payments; + } + + function getBackend() external view returns (IxBackendIface) { + return backend; + } + + function getBBFarm(uint8 bbFarmId) external view returns (BBFarmIface) { + return bbFarms[bbFarmId]; + } + + function getBBFarmID(bytes4 bbNamespace) external view returns (uint8 bbFarmId) { + return bbFarmIdLookup[bbNamespace]; + } + + function getCommAuction() external view returns (CommAuctionIface) { + return commAuction; + } + + //* GLOBAL INFO */ + + function getVersion() external pure returns (uint256) { + return VERSION; + } + + //* DEMOCRACY FUNCTIONS - INDIVIDUAL */ + + function dInit(address defaultErc20, bool disableErc20OwnerClaim) not_upgraded() external payable returns (bytes32) { + require(msg.value >= payments.getMinWeiForDInit()); + bytes32 democHash = backend.dInit(defaultErc20, msg.sender, disableErc20OwnerClaim); + payments.payForDemocracy.value(msg.value)(democHash); + return democHash; + } + + // admin methods + + function setDEditor(bytes32 democHash, address editor, bool canEdit) onlyDemocOwner(democHash) external { + backend.setDEditor(democHash, editor, canEdit); + } + + function setDNoEditors(bytes32 democHash) onlyDemocOwner(democHash) external { + backend.setDNoEditors(democHash); + } + + function setDOwner(bytes32 democHash, address newOwner) onlyDemocOwner(democHash) external { + backend.setDOwner(democHash, newOwner); + } + + function dOwnerErc20Claim(bytes32 democHash) external { + address erc20 = backend.getDErc20(democHash); + // test if we can call the erc20.owner() method, etc + // also limit gas use to 3000 because we don't know what they'll do with it + // during testing both owned and controlled could be called from other contracts for 2525 gas. + if (erc20.call.gas(3000)(OWNER_SIG)) { + require(msg.sender == owned(erc20).owner.gas(3000)(), "!erc20-owner"); + } else if (erc20.call.gas(3000)(CONTROLLER_SIG)) { + require(msg.sender == controlledIface(erc20).controller.gas(3000)(), "!erc20-controller"); + } else { + revert(); + } + // now we are certain the sender deployed or controls the erc20 + backend.setDOwnerFromClaim(democHash, msg.sender); + } + + function setDErc20(bytes32 democHash, address newErc20) onlyDemocOwner(democHash) external { + backend.setDErc20(democHash, newErc20); + } + + function dAddCategory(bytes32 democHash, bytes32 catName, bool hasParent, uint parent) onlyDemocEditor(democHash) external { + backend.dAddCategory(democHash, catName, hasParent, parent); + } + + function dDeprecateCategory(bytes32 democHash, uint catId) onlyDemocEditor(democHash) external { + backend.dDeprecateCategory(democHash, catId); + } + + function dUpgradeToPremium(bytes32 democHash) onlyDemocOwner(democHash) external { + payments.upgradeToPremium(democHash); + } + + function dDowngradeToBasic(bytes32 democHash) onlyDemocOwner(democHash) external { + payments.downgradeToBasic(democHash); + } + + function dSetArbitraryData(bytes32 democHash, bytes key, bytes value) external { + if (msg.sender == backend.getDOwner(democHash)) { + backend.dSetArbitraryData(democHash, key, value); + } else if (backend.isDEditor(democHash, msg.sender)) { + backend.dSetEditorArbitraryData(democHash, key, value); + } else { + revert(); + } + } + + function dSetCommunityBallotsEnabled(bytes32 democHash, bool enabled) onlyDemocOwner(democHash) external { + backend.dSetCommunityBallotsEnabled(democHash, enabled); + } + + // this is one way only! + function dDisableErc20OwnerClaim(bytes32 democHash) onlyDemocOwner(democHash) external { + backend.dDisableErc20OwnerClaim(democHash); + } + + /* Democ Getters - deprecated */ + // NOTE: the getters that used to live here just proxied to the backend. + // this has been removed to reduce gas costs + size of Ix contract + // For SCs you should use IxLib for convenience. + // For Offchain use you should query the backend directly (via ix.getBackend()) + + /* Add and Deploy Ballots */ + + // manually add a ballot - only the owner can call this + // WARNING - it's required that we make ABSOLUTELY SURE that + // ballotId is valid and can resolve via the appropriate BBFarm. + // this function _DOES NOT_ validate that everything else is done. + function dAddBallot(bytes32 democHash, uint ballotId, uint256 packed) + only_owner() + external { + + _addBallot(democHash, ballotId, packed, false); + emit ManuallyAddedBallot(democHash, ballotId, packed); + } + + + function _deployBallot(bytes32 democHash, bytes32 specHash, bytes32 extraData, uint packed, bool checkLimit, bool alreadySentTx) internal returns (uint ballotId) { + require(BBLib.isTesting(BPackedUtils.packedToSubmissionBits(packed)) == false, "b-testing"); + + // the most significant byte of extraData signals the bbFarm to use. + uint8 bbFarmId = uint8(extraData[0]); + require(deprecatedBBFarms[bbFarmId] == false, "bb-dep"); + BBFarmIface _bbFarm = bbFarms[bbFarmId]; + + // anything that isn't a community ballot counts towards the basic limit. + // we want to check in cases where + // the ballot doesn't qualify as a community ballot + // OR (the ballot qualifies as a community ballot + // AND the admins have _disabled_ community ballots). + bool countTowardsLimit = checkLimit; + bool performedSend; + if (checkLimit) { + uint64 endTime = BPackedUtils.packedToEndTime(packed); + (countTowardsLimit, performedSend) = _basicBallotLimitOperations(democHash, _bbFarm); + _accountOkayChecks(democHash, endTime); + } + + if (!performedSend && msg.value > 0 && alreadySentTx == false) { + // refund if we haven't send value anywhere (which might happen if someone accidentally pays us) + doSafeSend(msg.sender, msg.value); + } + + ballotId = _bbFarm.initBallot( + specHash, + packed, + this, + msg.sender, + // we are certain that the first 8 bytes are for index use only. + // truncating extraData like this means we can occasionally + // save on gas. we need to use uint192 first because that will take + // the _last_ 24 bytes of extraData. + bytes24(uint192(extraData))); + + _addBallot(democHash, ballotId, packed, countTowardsLimit); + } + + function dDeployCommunityBallot(bytes32 democHash, bytes32 specHash, bytes32 extraData, uint128 packedTimes) external payable { + uint price = commAuction.getNextPrice(democHash); + require(msg.value >= price, "!cb-fee"); + + doSafeSend(payments.getPayTo(), price); + doSafeSend(msg.sender, msg.value - price); + + bool canProceed = backend.getDCommBallotsEnabled(democHash) || !payments.accountInGoodStanding(democHash); + require(canProceed, "!cb-enabled"); + + uint256 packed = BPackedUtils.setSB(uint256(packedTimes), (USE_ETH | USE_NO_ENC)); + + uint ballotId = _deployBallot(democHash, specHash, extraData, packed, false, true); + commAuction.noteBallotDeployed(democHash); + + emit CommunityBallot(democHash, ballotId); + } + + // only way a democ admin can deploy a ballot + function dDeployBallot(bytes32 democHash, bytes32 specHash, bytes32 extraData, uint256 packed) + onlyDemocEditor(democHash) + external payable { + + _deployBallot(democHash, specHash, extraData, packed, true, false); + } + + // internal logic around adding a ballot + function _addBallot(bytes32 democHash, uint256 ballotId, uint256 packed, bool countTowardsLimit) internal { + // backend handles events + backend.dAddBallot(democHash, ballotId, packed, countTowardsLimit); + } + + // check an account has paid up enough for this ballot + function _accountOkayChecks(bytes32 democHash, uint64 endTime) internal view { + // if the ballot is marked as official require the democracy is paid up to + // some relative amount - exclude NFP accounts from this check + uint secsLeft = payments.getSecondsRemaining(democHash); + // must be positive due to ending in future check + uint256 secsToEndTime = endTime - now; + // require ballots end no more than twice the time left on the democracy + require(secsLeft * 2 > secsToEndTime, "unpaid"); + } + + function _basicBallotLimitOperations(bytes32 democHash, BBFarmIface _bbFarm) internal returns (bool shouldCount, bool performedSend) { + // if we're an official ballot and the democ is basic, ensure the democ + // isn't over the ballots/mo limit + if (payments.getPremiumStatus(democHash) == false) { + uint nBallotsAllowed = payments.getBasicBallotsPer30Days(); + uint nBallotsBasicCounted = backend.getDCountedBasicBallotsN(democHash); + + // if the democ has less than nBallotsAllowed then it's guarenteed to be okay + if (nBallotsAllowed > nBallotsBasicCounted) { + // and we should count this ballot + return (true, false); + } + + // we want to check the creation timestamp of the nth most recent ballot + // where n is the # of ballots allowed per month. Note: there isn't an off + // by 1 error here because if 1 ballots were allowed per month then we'd want + // to look at the most recent ballot, so nBallotsBasicCounted-1 in this case. + // similarly, if X ballots were allowed per month we want to look at + // nBallotsBasicCounted-X. There would thus be (X-1) ballots that are _more_ + // recent than the one we're looking for. + uint earlyBallotId = backend.getDCountedBasicBallotID(democHash, nBallotsBasicCounted - nBallotsAllowed); + uint earlyBallotTs = _bbFarm.getCreationTs(earlyBallotId); + + // if the earlyBallot was created more than 30 days in the past we should + // count the new ballot + if (earlyBallotTs < now - 30 days) { + return (true, false); + } + + // at this point it may be the case that we shouldn't allow the ballot + // to be created. (It's an official ballot for a basic tier democracy + // where the Nth most recent ballot was created within the last 30 days.) + // We should now check for payment + uint extraBallotFee = payments.getBasicExtraBallotFeeWei(); + require(msg.value >= extraBallotFee, "!extra-b-fee"); + + // now that we know they've paid the fee, we should send Eth to `payTo` + // and return the remainder. + uint remainder = msg.value - extraBallotFee; + doSafeSend(address(payments), extraBallotFee); + doSafeSend(msg.sender, remainder); + emit PaymentMade([extraBallotFee, remainder]); + // only in this case (for basic) do we want to return false - don't count towards the + // limit because it's been paid for here. + return (false, true); + + } else { // if we're premium we don't count ballots + return (false, false); + } + } +} + +contract IxBackendIface is hasVersion, ixBackendEvents, permissioned, payoutAllC { + /* global getters */ + function getGDemocsN() external view returns (uint); + function getGDemoc(uint id) external view returns (bytes32); + function getGErc20ToDemocs(address erc20) external view returns (bytes32[] democHashes); + + /* owner functions */ + function dAdd(bytes32 democHash, address erc20, bool disableErc20OwnerClaim) external; + function emergencySetDOwner(bytes32 democHash, address newOwner) external; + + /* democ admin */ + function dInit(address defaultErc20, address initOwner, bool disableErc20OwnerClaim) external returns (bytes32 democHash); + function setDOwner(bytes32 democHash, address newOwner) external; + function setDOwnerFromClaim(bytes32 democHash, address newOwner) external; + function setDEditor(bytes32 democHash, address editor, bool canEdit) external; + function setDNoEditors(bytes32 democHash) external; + function setDErc20(bytes32 democHash, address newErc20) external; + function dSetArbitraryData(bytes32 democHash, bytes key, bytes value) external; + function dSetEditorArbitraryData(bytes32 democHash, bytes key, bytes value) external; + function dAddCategory(bytes32 democHash, bytes32 categoryName, bool hasParent, uint parent) external; + function dDeprecateCategory(bytes32 democHash, uint catId) external; + function dSetCommunityBallotsEnabled(bytes32 democHash, bool enabled) external; + function dDisableErc20OwnerClaim(bytes32 democHash) external; + + /* actually add a ballot */ + function dAddBallot(bytes32 democHash, uint ballotId, uint256 packed, bool countTowardsLimit) external; + + /* global democ getters */ + function getDOwner(bytes32 democHash) external view returns (address); + function isDEditor(bytes32 democHash, address editor) external view returns (bool); + function getDHash(bytes13 prefix) external view returns (bytes32); + function getDInfo(bytes32 democHash) external view returns (address erc20, address owner, uint256 nBallots); + function getDErc20(bytes32 democHash) external view returns (address); + function getDArbitraryData(bytes32 democHash, bytes key) external view returns (bytes value); + function getDEditorArbitraryData(bytes32 democHash, bytes key) external view returns (bytes value); + function getDBallotsN(bytes32 democHash) external view returns (uint256); + function getDBallotID(bytes32 democHash, uint n) external view returns (uint ballotId); + function getDCountedBasicBallotsN(bytes32 democHash) external view returns (uint256); + function getDCountedBasicBallotID(bytes32 democHash, uint256 n) external view returns (uint256); + function getDCategoriesN(bytes32 democHash) external view returns (uint); + function getDCategory(bytes32 democHash, uint catId) external view returns (bool deprecated, bytes32 name, bool hasParent, uint parent); + function getDCommBallotsEnabled(bytes32 democHash) external view returns (bool); + function getDErc20OwnerClaimEnabled(bytes32 democHash) external view returns (bool); +} + +contract SVIndexBackend is IxBackendIface { + uint constant VERSION = 2; + + struct Democ { + address erc20; + address owner; + bool communityBallotsDisabled; + bool erc20OwnerClaimDisabled; + uint editorEpoch; + mapping (uint => mapping (address => bool)) editors; + uint256[] allBallots; + uint256[] includedBasicBallots; // the IDs of official ballots + + } + + struct BallotRef { + bytes32 democHash; + uint ballotId; + } + + struct Category { + bool deprecated; + bytes32 name; + bool hasParent; + uint parent; + } + + struct CategoriesIx { + uint nCategories; + mapping(uint => Category) categories; + } + + mapping (bytes32 => Democ) democs; + mapping (bytes32 => CategoriesIx) democCategories; + mapping (bytes13 => bytes32) democPrefixToHash; + mapping (address => bytes32[]) erc20ToDemocs; + bytes32[] democList; + + // allows democ admins to store arbitrary data + // this lets us (for example) set particular keys to signal cerain + // things to client apps s.t. the admin can turn them on and off. + // arbitraryData[democHash][key] + mapping (bytes32 => mapping (bytes32 => bytes)) arbitraryData; + + /* constructor */ + + constructor() payoutAllC(msg.sender) public { + // do nothing + } + + /* base contract overloads */ + + function _getPayTo() internal view returns (address) { + return owner; + } + + function getVersion() external pure returns (uint) { + return VERSION; + } + + /* GLOBAL INFO */ + + function getGDemocsN() external view returns (uint) { + return democList.length; + } + + function getGDemoc(uint id) external view returns (bytes32) { + return democList[id]; + } + + function getGErc20ToDemocs(address erc20) external view returns (bytes32[] democHashes) { + return erc20ToDemocs[erc20]; + } + + /* DEMOCRACY ADMIN FUNCTIONS */ + + function _addDemoc(bytes32 democHash, address erc20, address initOwner, bool disableErc20OwnerClaim) internal { + democList.push(democHash); + Democ storage d = democs[democHash]; + d.erc20 = erc20; + if (disableErc20OwnerClaim) { + d.erc20OwnerClaimDisabled = true; + } + // this should never trigger if we have a good security model - entropy for 13 bytes ~ 2^(8*13) ~ 10^31 + assert(democPrefixToHash[bytes13(democHash)] == bytes32(0)); + democPrefixToHash[bytes13(democHash)] = democHash; + erc20ToDemocs[erc20].push(democHash); + _setDOwner(democHash, initOwner); + emit NewDemoc(democHash); + } + + /* owner democ admin functions */ + + function dAdd(bytes32 democHash, address erc20, bool disableErc20OwnerClaim) only_owner() external { + _addDemoc(democHash, erc20, msg.sender, disableErc20OwnerClaim); + emit ManuallyAddedDemoc(democHash, erc20); + } + + /* Preferably for emergencies only */ + + function emergencySetDOwner(bytes32 democHash, address newOwner) only_owner() external { + _setDOwner(democHash, newOwner); + emit EmergencyDemocOwner(democHash, newOwner); + } + + /* user democ admin functions */ + + function dInit(address defaultErc20, address initOwner, bool disableErc20OwnerClaim) only_editors() external returns (bytes32 democHash) { + // generating the democHash in this way guarentees it'll be unique/hard-to-brute-force + // (particularly because prevBlockHash and now are part of the hash) + democHash = keccak256(abi.encodePacked(democList.length, blockhash(block.number-1), defaultErc20, now)); + _addDemoc(democHash, defaultErc20, initOwner, disableErc20OwnerClaim); + } + + function _setDOwner(bytes32 democHash, address newOwner) internal { + Democ storage d = democs[democHash]; + uint epoch = d.editorEpoch; + d.owner = newOwner; + // unset prev owner as editor - does little if one was not set + d.editors[epoch][d.owner] = false; + // make new owner an editor too + d.editors[epoch][newOwner] = true; + emit DemocOwnerSet(democHash, newOwner); + } + + function setDOwner(bytes32 democHash, address newOwner) only_editors() external { + _setDOwner(democHash, newOwner); + } + + function setDOwnerFromClaim(bytes32 democHash, address newOwner) only_editors() external { + Democ storage d = democs[democHash]; + // make sure that the owner claim is enabled (i.e. the disabled flag is false) + require(d.erc20OwnerClaimDisabled == false, "!erc20-claim"); + // set owner and editor + d.owner = newOwner; + d.editors[d.editorEpoch][newOwner] = true; + // disable the ability to claim now that it's done + d.erc20OwnerClaimDisabled = true; + emit DemocOwnerSet(democHash, newOwner); + emit DemocClaimed(democHash); + } + + function setDEditor(bytes32 democHash, address editor, bool canEdit) only_editors() external { + Democ storage d = democs[democHash]; + d.editors[d.editorEpoch][editor] = canEdit; + emit DemocEditorSet(democHash, editor, canEdit); + } + + function setDNoEditors(bytes32 democHash) only_editors() external { + democs[democHash].editorEpoch += 1; + emit DemocEditorsWiped(democHash); + } + + function setDErc20(bytes32 democHash, address newErc20) only_editors() external { + democs[democHash].erc20 = newErc20; + erc20ToDemocs[newErc20].push(democHash); + emit DemocErc20Set(democHash, newErc20); + } + + function dSetArbitraryData(bytes32 democHash, bytes key, bytes value) only_editors() external { + bytes32 k = keccak256(key); + arbitraryData[democHash][k] = value; + emit DemocDataSet(democHash, k); + } + + function dSetEditorArbitraryData(bytes32 democHash, bytes key, bytes value) only_editors() external { + bytes32 k = keccak256(_calcEditorKey(key)); + arbitraryData[democHash][k] = value; + emit DemocDataSet(democHash, k); + } + + function dAddCategory(bytes32 democHash, bytes32 name, bool hasParent, uint parent) only_editors() external { + uint catId = democCategories[democHash].nCategories; + democCategories[democHash].categories[catId].name = name; + if (hasParent) { + democCategories[democHash].categories[catId].hasParent = true; + democCategories[democHash].categories[catId].parent = parent; + } + democCategories[democHash].nCategories += 1; + emit DemocCatAdded(democHash, catId); + } + + function dDeprecateCategory(bytes32 democHash, uint catId) only_editors() external { + democCategories[democHash].categories[catId].deprecated = true; + emit DemocCatDeprecated(democHash, catId); + } + + function dSetCommunityBallotsEnabled(bytes32 democHash, bool enabled) only_editors() external { + democs[democHash].communityBallotsDisabled = !enabled; + emit DemocCommunityBallotsEnabled(democHash, enabled); + } + + function dDisableErc20OwnerClaim(bytes32 democHash) only_editors() external { + democs[democHash].erc20OwnerClaimDisabled = true; + emit DemocErc20OwnerClaimDisabled(democHash); + } + + //* ADD BALLOT TO RECORD */ + + function _commitBallot(bytes32 democHash, uint ballotId, uint256 packed, bool countTowardsLimit) internal { + uint16 subBits; + subBits = BPackedUtils.packedToSubmissionBits(packed); + + uint localBallotId = democs[democHash].allBallots.length; + democs[democHash].allBallots.push(ballotId); + + // do this for anything that doesn't qualify as a community ballot + if (countTowardsLimit) { + democs[democHash].includedBasicBallots.push(ballotId); + } + + emit NewBallot(democHash, localBallotId); + } + + // what SVIndex uses to add a ballot + function dAddBallot(bytes32 democHash, uint ballotId, uint256 packed, bool countTowardsLimit) only_editors() external { + _commitBallot(democHash, ballotId, packed, countTowardsLimit); + } + + /* democ getters */ + + function getDOwner(bytes32 democHash) external view returns (address) { + return democs[democHash].owner; + } + + function isDEditor(bytes32 democHash, address editor) external view returns (bool) { + Democ storage d = democs[democHash]; + // allow either an editor or always the owner + return d.editors[d.editorEpoch][editor] || editor == d.owner; + } + + function getDHash(bytes13 prefix) external view returns (bytes32) { + return democPrefixToHash[prefix]; + } + + function getDInfo(bytes32 democHash) external view returns (address erc20, address owner, uint256 nBallots) { + return (democs[democHash].erc20, democs[democHash].owner, democs[democHash].allBallots.length); + } + + function getDErc20(bytes32 democHash) external view returns (address) { + return democs[democHash].erc20; + } + + function getDArbitraryData(bytes32 democHash, bytes key) external view returns (bytes) { + return arbitraryData[democHash][keccak256(key)]; + } + + function getDEditorArbitraryData(bytes32 democHash, bytes key) external view returns (bytes) { + return arbitraryData[democHash][keccak256(_calcEditorKey(key))]; + } + + function getDBallotsN(bytes32 democHash) external view returns (uint256) { + return democs[democHash].allBallots.length; + } + + function getDBallotID(bytes32 democHash, uint256 n) external view returns (uint ballotId) { + return democs[democHash].allBallots[n]; + } + + function getDCountedBasicBallotsN(bytes32 democHash) external view returns (uint256) { + return democs[democHash].includedBasicBallots.length; + } + + function getDCountedBasicBallotID(bytes32 democHash, uint256 n) external view returns (uint256) { + return democs[democHash].includedBasicBallots[n]; + } + + function getDCategoriesN(bytes32 democHash) external view returns (uint) { + return democCategories[democHash].nCategories; + } + + function getDCategory(bytes32 democHash, uint catId) external view returns (bool deprecated, bytes32 name, bool hasParent, uint256 parent) { + deprecated = democCategories[democHash].categories[catId].deprecated; + name = democCategories[democHash].categories[catId].name; + hasParent = democCategories[democHash].categories[catId].hasParent; + parent = democCategories[democHash].categories[catId].parent; + } + + function getDCommBallotsEnabled(bytes32 democHash) external view returns (bool) { + return !democs[democHash].communityBallotsDisabled; + } + + function getDErc20OwnerClaimEnabled(bytes32 democHash) external view returns (bool) { + return !democs[democHash].erc20OwnerClaimDisabled; + } + + /* util for calculating editor key */ + + function _calcEditorKey(bytes key) internal pure returns (bytes) { + return abi.encodePacked("editor.", key); + } +} + +contract IxPaymentsIface is hasVersion, ixPaymentEvents, permissioned, CanReclaimToken, payoutAllCSettable { + /* in emergency break glass */ + function emergencySetOwner(address newOwner) external; + + /* financial calcluations */ + function weiBuysHowManySeconds(uint amount) public view returns (uint secs); + function weiToCents(uint w) public view returns (uint); + function centsToWei(uint c) public view returns (uint); + + /* account management */ + function payForDemocracy(bytes32 democHash) external payable; + function doFreeExtension(bytes32 democHash) external; + function downgradeToBasic(bytes32 democHash) external; + function upgradeToPremium(bytes32 democHash) external; + + /* account status - getters */ + function accountInGoodStanding(bytes32 democHash) external view returns (bool); + function getSecondsRemaining(bytes32 democHash) external view returns (uint); + function getPremiumStatus(bytes32 democHash) external view returns (bool); + function getFreeExtension(bytes32 democHash) external view returns (bool); + function getAccount(bytes32 democHash) external view returns (bool isPremium, uint lastPaymentTs, uint paidUpTill, bool hasFreeExtension); + function getDenyPremium(bytes32 democHash) external view returns (bool); + + /* admin utils for accounts */ + function giveTimeToDemoc(bytes32 democHash, uint additionalSeconds, bytes32 ref) external; + + /* admin setters global */ + function setPayTo(address) external; + function setMinorEditsAddr(address) external; + function setBasicCentsPricePer30Days(uint amount) external; + function setBasicBallotsPer30Days(uint amount) external; + function setPremiumMultiplier(uint8 amount) external; + function setWeiPerCent(uint) external; + function setFreeExtension(bytes32 democHash, bool hasFreeExt) external; + function setDenyPremium(bytes32 democHash, bool isPremiumDenied) external; + function setMinWeiForDInit(uint amount) external; + + /* global getters */ + function getBasicCentsPricePer30Days() external view returns(uint); + function getBasicExtraBallotFeeWei() external view returns (uint); + function getBasicBallotsPer30Days() external view returns (uint); + function getPremiumMultiplier() external view returns (uint8); + function getPremiumCentsPricePer30Days() external view returns (uint); + function getWeiPerCent() external view returns (uint weiPerCent); + function getUsdEthExchangeRate() external view returns (uint centsPerEth); + function getMinWeiForDInit() external view returns (uint); + + /* payments stuff */ + function getPaymentLogN() external view returns (uint); + function getPaymentLog(uint n) external view returns (bool _external, bytes32 _democHash, uint _seconds, uint _ethValue); +} + +contract SVPayments is IxPaymentsIface { + uint constant VERSION = 2; + + struct Account { + bool isPremium; + uint lastPaymentTs; + uint paidUpTill; + uint lastUpgradeTs; // timestamp of the last time it was upgraded to premium + } + + struct PaymentLog { + bool _external; + bytes32 _democHash; + uint _seconds; + uint _ethValue; + } + + // this is an address that's only allowed to make minor edits + // e.g. setExchangeRate, setDenyPremium, giveTimeToDemoc + address public minorEditsAddr; + + // payment details + uint basicCentsPricePer30Days = 125000; // $1250/mo + uint basicBallotsPer30Days = 10; + uint8 premiumMultiplier = 5; + uint weiPerCent = 0.000016583747 ether; // $603, 4th June 2018 + + uint minWeiForDInit = 1; // minimum 1 wei - match existing behaviour in SVIndex + + mapping (bytes32 => Account) accounts; + PaymentLog[] payments; + + // can set this on freeExtension democs to deny them premium upgrades + mapping (bytes32 => bool) denyPremium; + // this is used for non-profits or organisations that have perpetual licenses, etc + mapping (bytes32 => bool) freeExtension; + + + /* BREAK GLASS IN CASE OF EMERGENCY */ + // this is included here because something going wrong with payments is possibly + // the absolute worst case. Note: does this have negligable benefit if the other + // contracts are compromised? (e.g. by a leaked privkey) + address public emergencyAdmin; + function emergencySetOwner(address newOwner) external { + require(msg.sender == emergencyAdmin, "!emergency-owner"); + owner = newOwner; + } + /* END BREAK GLASS */ + + + constructor(address _emergencyAdmin) payoutAllCSettable(msg.sender) public { + emergencyAdmin = _emergencyAdmin; + assert(_emergencyAdmin != address(0)); + } + + /* base SCs */ + + function getVersion() external pure returns (uint) { + return VERSION; + } + + function() payable public { + _getPayTo().transfer(msg.value); + } + + function _modAccountBalance(bytes32 democHash, uint additionalSeconds) internal { + uint prevPaidTill = accounts[democHash].paidUpTill; + if (prevPaidTill < now) { + prevPaidTill = now; + } + + accounts[democHash].paidUpTill = prevPaidTill + additionalSeconds; + accounts[democHash].lastPaymentTs = now; + } + + /* Financial Calculations */ + + function weiBuysHowManySeconds(uint amount) public view returns (uint) { + uint centsPaid = weiToCents(amount); + // multiply by 10**18 to ensure we make rounding errors insignificant + uint monthsOffsetPaid = ((10 ** 18) * centsPaid) / basicCentsPricePer30Days; + uint secondsOffsetPaid = monthsOffsetPaid * (30 days); + uint additionalSeconds = secondsOffsetPaid / (10 ** 18); + return additionalSeconds; + } + + function weiToCents(uint w) public view returns (uint) { + return w / weiPerCent; + } + + function centsToWei(uint c) public view returns (uint) { + return c * weiPerCent; + } + + /* account management */ + + function payForDemocracy(bytes32 democHash) external payable { + require(msg.value > 0, "need to send some ether to make payment"); + + uint additionalSeconds = weiBuysHowManySeconds(msg.value); + + if (accounts[democHash].isPremium) { + additionalSeconds /= premiumMultiplier; + } + + if (additionalSeconds >= 1) { + _modAccountBalance(democHash, additionalSeconds); + } + payments.push(PaymentLog(false, democHash, additionalSeconds, msg.value)); + emit AccountPayment(democHash, additionalSeconds); + + _getPayTo().transfer(msg.value); + } + + function doFreeExtension(bytes32 democHash) external { + require(freeExtension[democHash], "!free"); + uint newPaidUpTill = now + 60 days; + accounts[democHash].paidUpTill = newPaidUpTill; + emit FreeExtension(democHash); + } + + function downgradeToBasic(bytes32 democHash) only_editors() external { + require(accounts[democHash].isPremium, "!premium"); + accounts[democHash].isPremium = false; + // convert premium minutes to basic + uint paidTill = accounts[democHash].paidUpTill; + uint timeRemaining = SafeMath.subToZero(paidTill, now); + // if we have time remaining: convert it + if (timeRemaining > 0) { + // prevent accounts from downgrading if they have time remaining + // and upgraded less than 24hrs ago + require(accounts[democHash].lastUpgradeTs < (now - 24 hours), "downgrade-too-soon"); + timeRemaining *= premiumMultiplier; + accounts[democHash].paidUpTill = now + timeRemaining; + } + emit DowngradeToBasic(democHash); + } + + function upgradeToPremium(bytes32 democHash) only_editors() external { + require(denyPremium[democHash] == false, "upgrade-denied"); + require(!accounts[democHash].isPremium, "!basic"); + accounts[democHash].isPremium = true; + // convert basic minutes to premium minutes + uint paidTill = accounts[democHash].paidUpTill; + uint timeRemaining = SafeMath.subToZero(paidTill, now); + // if we have time remaning then convert it - otherwise don't need to do anything + if (timeRemaining > 0) { + timeRemaining /= premiumMultiplier; + accounts[democHash].paidUpTill = now + timeRemaining; + } + accounts[democHash].lastUpgradeTs = now; + emit UpgradedToPremium(democHash); + } + + /* account status - getters */ + + function accountInGoodStanding(bytes32 democHash) external view returns (bool) { + return accounts[democHash].paidUpTill >= now; + } + + function getSecondsRemaining(bytes32 democHash) external view returns (uint) { + return SafeMath.subToZero(accounts[democHash].paidUpTill, now); + } + + function getPremiumStatus(bytes32 democHash) external view returns (bool) { + return accounts[democHash].isPremium; + } + + function getFreeExtension(bytes32 democHash) external view returns (bool) { + return freeExtension[democHash]; + } + + function getAccount(bytes32 democHash) external view returns (bool isPremium, uint lastPaymentTs, uint paidUpTill, bool hasFreeExtension) { + isPremium = accounts[democHash].isPremium; + lastPaymentTs = accounts[democHash].lastPaymentTs; + paidUpTill = accounts[democHash].paidUpTill; + hasFreeExtension = freeExtension[democHash]; + } + + function getDenyPremium(bytes32 democHash) external view returns (bool) { + return denyPremium[democHash]; + } + + /* admin utils for accounts */ + + function giveTimeToDemoc(bytes32 democHash, uint additionalSeconds, bytes32 ref) owner_or(minorEditsAddr) external { + _modAccountBalance(democHash, additionalSeconds); + payments.push(PaymentLog(true, democHash, additionalSeconds, 0)); + emit GrantedAccountTime(democHash, additionalSeconds, ref); + } + + /* admin setters global */ + + function setPayTo(address newPayTo) only_owner() external { + _setPayTo(newPayTo); + emit SetPayTo(newPayTo); + } + + function setMinorEditsAddr(address a) only_owner() external { + minorEditsAddr = a; + emit SetMinorEditsAddr(a); + } + + function setBasicCentsPricePer30Days(uint amount) only_owner() external { + basicCentsPricePer30Days = amount; + emit SetBasicCentsPricePer30Days(amount); + } + + function setBasicBallotsPer30Days(uint amount) only_owner() external { + basicBallotsPer30Days = amount; + emit SetBallotsPer30Days(amount); + } + + function setPremiumMultiplier(uint8 m) only_owner() external { + premiumMultiplier = m; + emit SetPremiumMultiplier(m); + } + + function setWeiPerCent(uint wpc) owner_or(minorEditsAddr) external { + weiPerCent = wpc; + emit SetExchangeRate(wpc); + } + + function setFreeExtension(bytes32 democHash, bool hasFreeExt) owner_or(minorEditsAddr) external { + freeExtension[democHash] = hasFreeExt; + emit SetFreeExtension(democHash, hasFreeExt); + } + + function setDenyPremium(bytes32 democHash, bool isPremiumDenied) owner_or(minorEditsAddr) external { + denyPremium[democHash] = isPremiumDenied; + emit SetDenyPremium(democHash, isPremiumDenied); + } + + function setMinWeiForDInit(uint amount) owner_or(minorEditsAddr) external { + minWeiForDInit = amount; + emit SetMinWeiForDInit(amount); + } + + /* global getters */ + + function getBasicCentsPricePer30Days() external view returns (uint) { + return basicCentsPricePer30Days; + } + + function getBasicExtraBallotFeeWei() external view returns (uint) { + return centsToWei(basicCentsPricePer30Days / basicBallotsPer30Days); + } + + function getBasicBallotsPer30Days() external view returns (uint) { + return basicBallotsPer30Days; + } + + function getPremiumMultiplier() external view returns (uint8) { + return premiumMultiplier; + } + + function getPremiumCentsPricePer30Days() external view returns (uint) { + return _premiumPricePer30Days(); + } + + function _premiumPricePer30Days() internal view returns (uint) { + return uint(premiumMultiplier) * basicCentsPricePer30Days; + } + + function getWeiPerCent() external view returns (uint) { + return weiPerCent; + } + + function getUsdEthExchangeRate() external view returns (uint) { + // this returns cents per ether + return 1 ether / weiPerCent; + } + + function getMinWeiForDInit() external view returns (uint) { + return minWeiForDInit; + } + + /* payments stuff */ + + function getPaymentLogN() external view returns (uint) { + return payments.length; + } + + function getPaymentLog(uint n) external view returns (bool _external, bytes32 _democHash, uint _seconds, uint _ethValue) { + _external = payments[n]._external; + _democHash = payments[n]._democHash; + _seconds = payments[n]._seconds; + _ethValue = payments[n]._ethValue; + } +} + +interface SvEnsIface { + // Logged when the owner of a node assigns a new owner to a subnode. + event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner); + + // Logged when the owner of a node transfers ownership to a new account. + event Transfer(bytes32 indexed node, address owner); + + // Logged when the resolver for a node changes. + event NewResolver(bytes32 indexed node, address resolver); + + // Logged when the TTL of a node changes + event NewTTL(bytes32 indexed node, uint64 ttl); + + + function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external returns (bytes32); + function setResolver(bytes32 node, address resolver) external; + function setOwner(bytes32 node, address owner) external; + function setTTL(bytes32 node, uint64 ttl) external; + function owner(bytes32 node) external view returns (address); + function resolver(bytes32 node) external view returns (address); + function ttl(bytes32 node) external view returns (uint64); +} + +interface ENSIface { + // Logged when the owner of a node assigns a new owner to a subnode. + event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner); + + // Logged when the owner of a node transfers ownership to a new account. + event Transfer(bytes32 indexed node, address owner); + + // Logged when the resolver for a node changes. + event NewResolver(bytes32 indexed node, address resolver); + + // Logged when the TTL of a node changes + event NewTTL(bytes32 indexed node, uint64 ttl); + + + function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external; + function setResolver(bytes32 node, address resolver) external; + function setOwner(bytes32 node, address owner) external; + function setTTL(bytes32 node, uint64 ttl) external; + function owner(bytes32 node) external view returns (address); + function resolver(bytes32 node) external view returns (address); + function ttl(bytes32 node) external view returns (uint64); +} + +contract PublicResolver { + + bytes4 constant INTERFACE_META_ID = 0x01ffc9a7; + bytes4 constant ADDR_INTERFACE_ID = 0x3b3b57de; + bytes4 constant CONTENT_INTERFACE_ID = 0xd8389dc5; + bytes4 constant NAME_INTERFACE_ID = 0x691f3431; + bytes4 constant ABI_INTERFACE_ID = 0x2203ab56; + bytes4 constant PUBKEY_INTERFACE_ID = 0xc8690233; + bytes4 constant TEXT_INTERFACE_ID = 0x59d1d43c; + + event AddrChanged(bytes32 indexed node, address a); + event ContentChanged(bytes32 indexed node, bytes32 hash); + event NameChanged(bytes32 indexed node, string name); + event ABIChanged(bytes32 indexed node, uint256 indexed contentType); + event PubkeyChanged(bytes32 indexed node, bytes32 x, bytes32 y); + event TextChanged(bytes32 indexed node, string indexedKey, string key); + + struct PublicKey { + bytes32 x; + bytes32 y; + } + + struct Record { + address addr; + bytes32 content; + string name; + PublicKey pubkey; + mapping(string=>string) text; + mapping(uint256=>bytes) abis; + } + + ENSIface ens; + + mapping (bytes32 => Record) records; + + modifier only_owner(bytes32 node) { + require(ens.owner(node) == msg.sender); + _; + } + + /** + * Constructor. + * @param ensAddr The ENS registrar contract. + */ + constructor(ENSIface ensAddr) public { + ens = ensAddr; + } + + /** + * Sets the address associated with an ENS node. + * May only be called by the owner of that node in the ENS registry. + * @param node The node to update. + * @param addr The address to set. + */ + function setAddr(bytes32 node, address addr) public only_owner(node) { + records[node].addr = addr; + emit AddrChanged(node, addr); + } + + /** + * Sets the content hash associated with an ENS node. + * May only be called by the owner of that node in the ENS registry. + * Note that this resource type is not standardized, and will likely change + * in future to a resource type based on multihash. + * @param node The node to update. + * @param hash The content hash to set + */ + function setContent(bytes32 node, bytes32 hash) public only_owner(node) { + records[node].content = hash; + emit ContentChanged(node, hash); + } + + /** + * Sets the name associated with an ENS node, for reverse records. + * May only be called by the owner of that node in the ENS registry. + * @param node The node to update. + * @param name The name to set. + */ + function setName(bytes32 node, string name) public only_owner(node) { + records[node].name = name; + emit NameChanged(node, name); + } + + /** + * Sets the ABI associated with an ENS node. + * Nodes may have one ABI of each content type. To remove an ABI, set it to + * the empty string. + * @param node The node to update. + * @param contentType The content type of the ABI + * @param data The ABI data. + */ + function setABI(bytes32 node, uint256 contentType, bytes data) public only_owner(node) { + // Content types must be powers of 2 + require(((contentType - 1) & contentType) == 0); + + records[node].abis[contentType] = data; + emit ABIChanged(node, contentType); + } + + /** + * Sets the SECP256k1 public key associated with an ENS node. + * @param node The ENS node to query + * @param x the X coordinate of the curve point for the public key. + * @param y the Y coordinate of the curve point for the public key. + */ + function setPubkey(bytes32 node, bytes32 x, bytes32 y) public only_owner(node) { + records[node].pubkey = PublicKey(x, y); + emit PubkeyChanged(node, x, y); + } + + /** + * Sets the text data associated with an ENS node and key. + * May only be called by the owner of that node in the ENS registry. + * @param node The node to update. + * @param key The key to set. + * @param value The text data value to set. + */ + function setText(bytes32 node, string key, string value) public only_owner(node) { + records[node].text[key] = value; + emit TextChanged(node, key, key); + } + + /** + * Returns the text data associated with an ENS node and key. + * @param node The ENS node to query. + * @param key The text data key to query. + * @return The associated text data. + */ + function text(bytes32 node, string key) public view returns (string) { + return records[node].text[key]; + } + + /** + * Returns the SECP256k1 public key associated with an ENS node. + * Defined in EIP 619. + * @param node The ENS node to query + * @return x, y the X and Y coordinates of the curve point for the public key. + */ + function pubkey(bytes32 node) public view returns (bytes32 x, bytes32 y) { + return (records[node].pubkey.x, records[node].pubkey.y); + } + + /** + * Returns the ABI associated with an ENS node. + * Defined in EIP205. + * @param node The ENS node to query + * @param contentTypes A bitwise OR of the ABI formats accepted by the caller. + * @return contentType The content type of the return value + * @return data The ABI data + */ + function ABI(bytes32 node, uint256 contentTypes) public view returns (uint256 contentType, bytes data) { + Record storage record = records[node]; + for (contentType = 1; contentType <= contentTypes; contentType <<= 1) { + if ((contentType & contentTypes) != 0 && record.abis[contentType].length > 0) { + data = record.abis[contentType]; + return; + } + } + contentType = 0; + } + + /** + * Returns the name associated with an ENS node, for reverse records. + * Defined in EIP181. + * @param node The ENS node to query. + * @return The associated name. + */ + function name(bytes32 node) public view returns (string) { + return records[node].name; + } + + /** + * Returns the content hash associated with an ENS node. + * Note that this resource type is not standardized, and will likely change + * in future to a resource type based on multihash. + * @param node The ENS node to query. + * @return The associated content hash. + */ + function content(bytes32 node) public view returns (bytes32) { + return records[node].content; + } + + /** + * Returns the address associated with an ENS node. + * @param node The ENS node to query. + * @return The associated address. + */ + function addr(bytes32 node) public view returns (address) { + return records[node].addr; + } + + /** + * Returns true if the resolver implements the interface specified by the provided hash. + * @param interfaceID The ID of the interface to check for. + * @return True if the contract implements the requested interface. + */ + function supportsInterface(bytes4 interfaceID) public pure returns (bool) { + return interfaceID == ADDR_INTERFACE_ID || + interfaceID == CONTENT_INTERFACE_ID || + interfaceID == NAME_INTERFACE_ID || + interfaceID == ABI_INTERFACE_ID || + interfaceID == PUBKEY_INTERFACE_ID || + interfaceID == TEXT_INTERFACE_ID || + interfaceID == INTERFACE_META_ID; + } +} + +library BytesLib { + function concat(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bytes) { + bytes memory tempBytes; + + assembly { + // Get a location of some free memory and store it in tempBytes as + // Solidity does for memory variables. + tempBytes := mload(0x40) + + // Store the length of the first bytes array at the beginning of + // the memory for tempBytes. + let length := mload(_preBytes) + mstore(tempBytes, length) + + // Maintain a memory counter for the current write location in the + // temp bytes array by adding the 32 bytes for the array length to + // the starting location. + let mc := add(tempBytes, 0x20) + // Stop copying when the memory counter reaches the length of the + // first bytes array. + let end := add(mc, length) + + for { + // Initialize a copy counter to the start of the _preBytes data, + // 32 bytes into its memory. + let cc := add(_preBytes, 0x20) + } lt(mc, end) { + // Increase both counters by 32 bytes each iteration. + mc := add(mc, 0x20) + cc := add(cc, 0x20) + } { + // Write the _preBytes data into the tempBytes memory 32 bytes + // at a time. + mstore(mc, mload(cc)) + } + + // Add the length of _postBytes to the current length of tempBytes + // and store it as the new length in the first 32 bytes of the + // tempBytes memory. + length := mload(_postBytes) + mstore(tempBytes, add(length, mload(tempBytes))) + + // Move the memory counter back from a multiple of 0x20 to the + // actual end of the _preBytes data. + mc := end + // Stop copying when the memory counter reaches the new combined + // length of the arrays. + end := add(mc, length) + + for { + let cc := add(_postBytes, 0x20) + } lt(mc, end) { + mc := add(mc, 0x20) + cc := add(cc, 0x20) + } { + mstore(mc, mload(cc)) + } + + // Update the free-memory pointer by padding our last write location + // to 32 bytes: add 31 bytes to the end of tempBytes to move to the + // next 32 byte block, then round down to the nearest multiple of + // 32. If the sum of the length of the two arrays is zero then add + // one before rounding down to leave a blank 32 bytes (the length block with 0). + mstore(0x40, and( + add(add(end, iszero(add(length, mload(_preBytes)))), 31), + not(31) // Round down to the nearest 32 bytes. + )) + } + + return tempBytes; + } + + function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal { + assembly { + // Read the first 32 bytes of _preBytes storage, which is the length + // of the array. (We don't need to use the offset into the slot + // because arrays use the entire slot.) + let fslot := sload(_preBytes_slot) + // Arrays of 31 bytes or less have an even value in their slot, + // while longer arrays have an odd value. The actual length is + // the slot divided by two for odd values, and the lowest order + // byte divided by two for even values. + // If the slot is even, bitwise and the slot with 255 and divide by + // two to get the length. If the slot is odd, bitwise and the slot + // with -1 and divide by two. + let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2) + let mlength := mload(_postBytes) + let newlength := add(slength, mlength) + // slength can contain both the length and contents of the array + // if length < 32 bytes so let's prepare for that + // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage + switch add(lt(slength, 32), lt(newlength, 32)) + case 2 { + // Since the new array still fits in the slot, we just need to + // update the contents of the slot. + // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length + sstore( + _preBytes_slot, + // all the modifications to the slot are inside this + // next block + add( + // we can just add to the slot contents because the + // bytes we want to change are the LSBs + fslot, + add( + mul( + div( + // load the bytes from memory + mload(add(_postBytes, 0x20)), + // zero all bytes to the right + exp(0x100, sub(32, mlength)) + ), + // and now shift left the number of bytes to + // leave space for the length in the slot + exp(0x100, sub(32, newlength)) + ), + // increase length by the double of the memory + // bytes length + mul(mlength, 2) + ) + ) + ) + } + case 1 { + // The stored value fits in the slot, but the combined value + // will exceed it. + // get the keccak hash to get the contents of the array + mstore(0x0, _preBytes_slot) + let sc := add(keccak256(0x0, 0x20), div(slength, 32)) + + // save new length + sstore(_preBytes_slot, add(mul(newlength, 2), 1)) + + // The contents of the _postBytes array start 32 bytes into + // the structure. Our first read should obtain the `submod` + // bytes that can fit into the unused space in the last word + // of the stored array. To get this, we read 32 bytes starting + // from `submod`, so the data we read overlaps with the array + // contents by `submod` bytes. Masking the lowest-order + // `submod` bytes allows us to add that value directly to the + // stored value. + + let submod := sub(32, slength) + let mc := add(_postBytes, submod) + let end := add(_postBytes, mlength) + let mask := sub(exp(0x100, submod), 1) + + sstore( + sc, + add( + and( + fslot, + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 + ), + and(mload(mc), mask) + ) + ) + + for { + mc := add(mc, 0x20) + sc := add(sc, 1) + } lt(mc, end) { + sc := add(sc, 1) + mc := add(mc, 0x20) + } { + sstore(sc, mload(mc)) + } + + mask := exp(0x100, sub(mc, end)) + + sstore(sc, mul(div(mload(mc), mask), mask)) + } + default { + // get the keccak hash to get the contents of the array + mstore(0x0, _preBytes_slot) + // Start copying to the last used word of the stored array. + let sc := add(keccak256(0x0, 0x20), div(slength, 32)) + + // save new length + sstore(_preBytes_slot, add(mul(newlength, 2), 1)) + + // Copy over the first `submod` bytes of the new data as in + // case 1 above. + let slengthmod := mod(slength, 32) + let mlengthmod := mod(mlength, 32) + let submod := sub(32, slengthmod) + let mc := add(_postBytes, submod) + let end := add(_postBytes, mlength) + let mask := sub(exp(0x100, submod), 1) + + sstore(sc, add(sload(sc), and(mload(mc), mask))) + + for { + sc := add(sc, 1) + mc := add(mc, 0x20) + } lt(mc, end) { + sc := add(sc, 1) + mc := add(mc, 0x20) + } { + sstore(sc, mload(mc)) + } + + mask := exp(0x100, sub(mc, end)) + + sstore(sc, mul(div(mload(mc), mask), mask)) + } + } + } + + function slice(bytes _bytes, uint _start, uint _length) internal pure returns (bytes) { + require(_bytes.length >= (_start + _length)); + + bytes memory tempBytes; + + assembly { + switch iszero(_length) + case 0 { + // Get a location of some free memory and store it in tempBytes as + // Solidity does for memory variables. + tempBytes := mload(0x40) + + // The first word of the slice result is potentially a partial + // word read from the original array. To read it, we calculate + // the length of that partial word and start copying that many + // bytes into the array. The first word we copy will start with + // data we don't care about, but the last `lengthmod` bytes will + // land at the beginning of the contents of the new array. When + // we're done copying, we overwrite the full first word with + // the actual length of the slice. + let lengthmod := and(_length, 31) + + // The multiplication in the next line is necessary + // because when slicing multiples of 32 bytes (lengthmod == 0) + // the following copy loop was copying the origin's length + // and then ending prematurely not copying everything it should. + let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod))) + let end := add(mc, _length) + + for { + // The multiplication in the next line has the same exact purpose + // as the one above. + let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start) + } lt(mc, end) { + mc := add(mc, 0x20) + cc := add(cc, 0x20) + } { + mstore(mc, mload(cc)) + } + + mstore(tempBytes, _length) + + //update free-memory pointer + //allocating the array padded to 32 bytes like the compiler does now + mstore(0x40, and(add(mc, 31), not(31))) + } + //if we want a zero-length slice let's just return a zero-length array + default { + tempBytes := mload(0x40) + + mstore(0x40, add(tempBytes, 0x20)) + } + } + + return tempBytes; + } + + function toAddress(bytes _bytes, uint _start) internal pure returns (address) { + require(_bytes.length >= (_start + 20)); + address tempAddress; + + assembly { + tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000) + } + + return tempAddress; + } + + function toUint(bytes _bytes, uint _start) internal pure returns (uint256) { + require(_bytes.length >= (_start + 32)); + uint256 tempUint; + + assembly { + tempUint := mload(add(add(_bytes, 0x20), _start)) + } + + return tempUint; + } + + function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) { + bool success = true; + + assembly { + let length := mload(_preBytes) + + // if lengths don't match the arrays are not equal + switch eq(length, mload(_postBytes)) + case 1 { + // cb is a circuit breaker in the for loop since there's + // no said feature for inline assembly loops + // cb = 1 - don't breaker + // cb = 0 - break + let cb := 1 + + let mc := add(_preBytes, 0x20) + let end := add(mc, length) + + for { + let cc := add(_postBytes, 0x20) + // the next line is the loop condition: + // while(uint(mc < end) + cb == 2) + } eq(add(lt(mc, end), cb), 2) { + mc := add(mc, 0x20) + cc := add(cc, 0x20) + } { + // if any of these checks fails then arrays are not equal + if iszero(eq(mload(mc), mload(cc))) { + // unsuccess: + success := 0 + cb := 0 + } + } + } + default { + // unsuccess: + success := 0 + } + } + + return success; + } + + function equalStorage(bytes storage _preBytes, bytes memory _postBytes) internal view returns (bool) { + bool success = true; + + assembly { + // we know _preBytes_offset is 0 + let fslot := sload(_preBytes_slot) + // Decode the length of the stored array like in concatStorage(). + let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2) + let mlength := mload(_postBytes) + + // if lengths don't match the arrays are not equal + switch eq(slength, mlength) + case 1 { + // slength can contain both the length and contents of the array + // if length < 32 bytes so let's prepare for that + // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage + if iszero(iszero(slength)) { + switch lt(slength, 32) + case 1 { + // blank the last byte which is the length + fslot := mul(div(fslot, 0x100), 0x100) + + if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) { + // unsuccess: + success := 0 + } + } + default { + // cb is a circuit breaker in the for loop since there's + // no said feature for inline assembly loops + // cb = 1 - don't breaker + // cb = 0 - break + let cb := 1 + + // get the keccak hash to get the contents of the array + mstore(0x0, _preBytes_slot) + let sc := keccak256(0x0, 0x20) + + let mc := add(_postBytes, 0x20) + let end := add(mc, mlength) + + // the next line is the loop condition: + // while(uint(mc < end) + cb == 2) + for {} eq(add(lt(mc, end), cb), 2) { + sc := add(sc, 1) + mc := add(mc, 0x20) + } { + if iszero(eq(sload(sc), mload(mc))) { + // unsuccess: + success := 0 + cb := 0 + } + } + } + } + } + default { + // unsuccess: + success := 0 + } + } + + return success; + } +} diff --git a/dist/2018-06-18-ix-deployment/SVIndexBackend.sol b/dist/2018-06-18-ix-deployment/SVIndexBackend.sol new file mode 100644 index 0000000..da1a8fb --- /dev/null +++ b/dist/2018-06-18-ix-deployment/SVIndexBackend.sol @@ -0,0 +1,663 @@ +pragma solidity 0.4.24; + +library BPackedUtils { + + // the uint16 ending at 128 bits should be 0s + uint256 constant sbMask = 0xffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff; + uint256 constant startTimeMask = 0xffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff; + uint256 constant endTimeMask = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000; + + function packedToSubmissionBits(uint256 packed) internal pure returns (uint16) { + return uint16(packed >> 128); + } + + function packedToStartTime(uint256 packed) internal pure returns (uint64) { + return uint64(packed >> 64); + } + + function packedToEndTime(uint256 packed) internal pure returns (uint64) { + return uint64(packed); + } + + function unpackAll(uint256 packed) internal pure returns (uint16 submissionBits, uint64 startTime, uint64 endTime) { + submissionBits = uint16(packed >> 128); + startTime = uint64(packed >> 64); + endTime = uint64(packed); + } + + function pack(uint16 sb, uint64 st, uint64 et) internal pure returns (uint256 packed) { + return uint256(sb) << 128 | uint256(st) << 64 | uint256(et); + } + + function setSB(uint256 packed, uint16 newSB) internal pure returns (uint256) { + return (packed & sbMask) | uint256(newSB) << 128; + } + + // function setStartTime(uint256 packed, uint64 startTime) internal pure returns (uint256) { + // return (packed & startTimeMask) | uint256(startTime) << 64; + // } + + // function setEndTime(uint256 packed, uint64 endTime) internal pure returns (uint256) { + // return (packed & endTimeMask) | uint256(endTime); + // } +} + +contract safeSend { + bool private txMutex3847834; + + // we want to be able to call outside contracts (e.g. the admin proxy contract) + // but reentrency is bad, so here's a mutex. + function doSafeSend(address toAddr, uint amount) internal { + doSafeSendWData(toAddr, "", amount); + } + + function doSafeSendWData(address toAddr, bytes data, uint amount) internal { + require(txMutex3847834 == false, "ss-guard"); + txMutex3847834 = true; + // we need to use address.call.value(v)() because we want + // to be able to send to other contracts, even with no data, + // which might use more than 2300 gas in their fallback function. + require(toAddr.call.value(amount)(data), "ss-failed"); + txMutex3847834 = false; + } +} + +contract payoutAllC is safeSend { + address private _payTo; + + event PayoutAll(address payTo, uint value); + + constructor(address initPayTo) public { + // DEV NOTE: you can overwrite _getPayTo if you want to reuse other storage vars + assert(initPayTo != address(0)); + _payTo = initPayTo; + } + + function _getPayTo() internal view returns (address) { + return _payTo; + } + + function _setPayTo(address newPayTo) internal { + _payTo = newPayTo; + } + + function payoutAll() external { + address a = _getPayTo(); + uint bal = address(this).balance; + doSafeSend(a, bal); + emit PayoutAll(a, bal); + } +} + +contract payoutAllCSettable is payoutAllC { + constructor (address initPayTo) payoutAllC(initPayTo) public { + } + + function setPayTo(address) external; + function getPayTo() external view returns (address) { + return _getPayTo(); + } +} + +contract owned { + address public owner; + + event OwnerChanged(address newOwner); + + modifier only_owner() { + require(msg.sender == owner, "only_owner: forbidden"); + _; + } + + modifier owner_or(address addr) { + require(msg.sender == addr || msg.sender == owner, "!owner-or"); + _; + } + + constructor() public { + owner = msg.sender; + } + + function setOwner(address newOwner) only_owner() external { + owner = newOwner; + emit OwnerChanged(newOwner); + } +} + +contract controlledIface { + function controller() external view returns (address); +} + +contract hasAdmins is owned { + mapping (uint => mapping (address => bool)) admins; + uint public currAdminEpoch = 0; + bool public adminsDisabledForever = false; + address[] adminLog; + + event AdminAdded(address indexed newAdmin); + event AdminRemoved(address indexed oldAdmin); + event AdminEpochInc(); + event AdminDisabledForever(); + + modifier only_admin() { + require(adminsDisabledForever == false, "admins must not be disabled"); + require(isAdmin(msg.sender), "only_admin: forbidden"); + _; + } + + constructor() public { + _setAdmin(msg.sender, true); + } + + function isAdmin(address a) view public returns (bool) { + return admins[currAdminEpoch][a]; + } + + function getAdminLogN() view external returns (uint) { + return adminLog.length; + } + + function getAdminLog(uint n) view external returns (address) { + return adminLog[n]; + } + + function upgradeMeAdmin(address newAdmin) only_admin() external { + // note: already checked msg.sender has admin with `only_admin` modifier + require(msg.sender != owner, "owner cannot upgrade self"); + _setAdmin(msg.sender, false); + _setAdmin(newAdmin, true); + } + + function setAdmin(address a, bool _givePerms) only_admin() external { + require(a != msg.sender && a != owner, "cannot change your own (or owner's) permissions"); + _setAdmin(a, _givePerms); + } + + function _setAdmin(address a, bool _givePerms) internal { + admins[currAdminEpoch][a] = _givePerms; + if (_givePerms) { + emit AdminAdded(a); + adminLog.push(a); + } else { + emit AdminRemoved(a); + } + } + + // safety feature if admins go bad or something + function incAdminEpoch() only_owner() external { + currAdminEpoch++; + admins[currAdminEpoch][msg.sender] = true; + emit AdminEpochInc(); + } + + // this is internal so contracts can all it, but not exposed anywhere in this + // contract. + function disableAdminForever() internal { + currAdminEpoch++; + adminsDisabledForever = true; + emit AdminDisabledForever(); + } +} + +contract permissioned is owned, hasAdmins { + mapping (address => bool) editAllowed; + bool public adminLockdown = false; + + event PermissionError(address editAddr); + event PermissionGranted(address editAddr); + event PermissionRevoked(address editAddr); + event PermissionsUpgraded(address oldSC, address newSC); + event SelfUpgrade(address oldSC, address newSC); + event AdminLockdown(); + + modifier only_editors() { + require(editAllowed[msg.sender], "only_editors: forbidden"); + _; + } + + modifier no_lockdown() { + require(adminLockdown == false, "no_lockdown: check failed"); + _; + } + + + constructor() owned() hasAdmins() public { + } + + + function setPermissions(address e, bool _editPerms) no_lockdown() only_admin() external { + editAllowed[e] = _editPerms; + if (_editPerms) + emit PermissionGranted(e); + else + emit PermissionRevoked(e); + } + + function upgradePermissionedSC(address oldSC, address newSC) no_lockdown() only_admin() external { + editAllowed[oldSC] = false; + editAllowed[newSC] = true; + emit PermissionsUpgraded(oldSC, newSC); + } + + // always allow SCs to upgrade themselves, even after lockdown + function upgradeMe(address newSC) only_editors() external { + editAllowed[msg.sender] = false; + editAllowed[newSC] = true; + emit SelfUpgrade(msg.sender, newSC); + } + + function hasPermissions(address a) public view returns (bool) { + return editAllowed[a]; + } + + function doLockdown() external only_owner() no_lockdown() { + disableAdminForever(); + adminLockdown = true; + emit AdminLockdown(); + } +} + +contract upgradePtr { + address ptr = address(0); + + modifier not_upgraded() { + require(ptr == address(0), "upgrade pointer is non-zero"); + _; + } + + function getUpgradePointer() view external returns (address) { + return ptr; + } + + function doUpgradeInternal(address nextSC) internal { + ptr = nextSC; + } +} + +interface ERC20Interface { + // Get the total token supply + function totalSupply() constant external returns (uint256 _totalSupply); + + // Get the account balance of another account with address _owner + function balanceOf(address _owner) constant external returns (uint256 balance); + + // Send _value amount of tokens to address _to + function transfer(address _to, uint256 _value) external returns (bool success); + + // Send _value amount of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) external returns (bool success); + + // Allow _spender to withdraw from your account, multiple times, up to the _value amount. + // If this function is called again it overwrites the current allowance with _value. + // this function is required for some DEX functionality + function approve(address _spender, uint256 _value) external returns (bool success); + + // Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) constant external returns (uint256 remaining); + + // Triggered when tokens are transferred. + event Transfer(address indexed _from, address indexed _to, uint256 _value); + + // Triggered whenever approve(address _spender, uint256 _value) is called. + event Approval(address indexed _owner, address indexed _spender, uint256 _value); +} + +contract ixBackendEvents { + event NewDemoc(bytes32 democHash); + event ManuallyAddedDemoc(bytes32 democHash, address erc20); + event NewBallot(bytes32 indexed democHash, uint ballotN); + event DemocOwnerSet(bytes32 indexed democHash, address owner); + event DemocEditorSet(bytes32 indexed democHash, address editor, bool canEdit); + event DemocEditorsWiped(bytes32 indexed democHash); + event DemocErc20Set(bytes32 indexed democHash, address erc20); + event DemocDataSet(bytes32 indexed democHash, bytes32 keyHash); + event DemocCatAdded(bytes32 indexed democHash, uint catId); + event DemocCatDeprecated(bytes32 indexed democHash, uint catId); + event DemocCommunityBallotsEnabled(bytes32 indexed democHash, bool enabled); + event DemocErc20OwnerClaimDisabled(bytes32 indexed democHash); + event DemocClaimed(bytes32 indexed democHash); + event EmergencyDemocOwner(bytes32 indexed democHash, address newOwner); +} + +interface hasVersion { + function getVersion() external pure returns (uint); +} + +contract IxBackendIface is hasVersion, ixBackendEvents, permissioned, payoutAllC { + /* global getters */ + function getGDemocsN() external view returns (uint); + function getGDemoc(uint id) external view returns (bytes32); + function getGErc20ToDemocs(address erc20) external view returns (bytes32[] democHashes); + + /* owner functions */ + function dAdd(bytes32 democHash, address erc20, bool disableErc20OwnerClaim) external; + function emergencySetDOwner(bytes32 democHash, address newOwner) external; + + /* democ admin */ + function dInit(address defaultErc20, address initOwner, bool disableErc20OwnerClaim) external returns (bytes32 democHash); + function setDOwner(bytes32 democHash, address newOwner) external; + function setDOwnerFromClaim(bytes32 democHash, address newOwner) external; + function setDEditor(bytes32 democHash, address editor, bool canEdit) external; + function setDNoEditors(bytes32 democHash) external; + function setDErc20(bytes32 democHash, address newErc20) external; + function dSetArbitraryData(bytes32 democHash, bytes key, bytes value) external; + function dSetEditorArbitraryData(bytes32 democHash, bytes key, bytes value) external; + function dAddCategory(bytes32 democHash, bytes32 categoryName, bool hasParent, uint parent) external; + function dDeprecateCategory(bytes32 democHash, uint catId) external; + function dSetCommunityBallotsEnabled(bytes32 democHash, bool enabled) external; + function dDisableErc20OwnerClaim(bytes32 democHash) external; + + /* actually add a ballot */ + function dAddBallot(bytes32 democHash, uint ballotId, uint256 packed, bool countTowardsLimit) external; + + /* global democ getters */ + function getDOwner(bytes32 democHash) external view returns (address); + function isDEditor(bytes32 democHash, address editor) external view returns (bool); + function getDHash(bytes13 prefix) external view returns (bytes32); + function getDInfo(bytes32 democHash) external view returns (address erc20, address owner, uint256 nBallots); + function getDErc20(bytes32 democHash) external view returns (address); + function getDArbitraryData(bytes32 democHash, bytes key) external view returns (bytes value); + function getDEditorArbitraryData(bytes32 democHash, bytes key) external view returns (bytes value); + function getDBallotsN(bytes32 democHash) external view returns (uint256); + function getDBallotID(bytes32 democHash, uint n) external view returns (uint ballotId); + function getDCountedBasicBallotsN(bytes32 democHash) external view returns (uint256); + function getDCountedBasicBallotID(bytes32 democHash, uint256 n) external view returns (uint256); + function getDCategoriesN(bytes32 democHash) external view returns (uint); + function getDCategory(bytes32 democHash, uint catId) external view returns (bool deprecated, bytes32 name, bool hasParent, uint parent); + function getDCommBallotsEnabled(bytes32 democHash) external view returns (bool); + function getDErc20OwnerClaimEnabled(bytes32 democHash) external view returns (bool); +} + +contract SVIndexBackend is IxBackendIface { + uint constant VERSION = 2; + + struct Democ { + address erc20; + address owner; + bool communityBallotsDisabled; + bool erc20OwnerClaimDisabled; + uint editorEpoch; + mapping (uint => mapping (address => bool)) editors; + uint256[] allBallots; + uint256[] includedBasicBallots; // the IDs of official ballots + + } + + struct BallotRef { + bytes32 democHash; + uint ballotId; + } + + struct Category { + bool deprecated; + bytes32 name; + bool hasParent; + uint parent; + } + + struct CategoriesIx { + uint nCategories; + mapping(uint => Category) categories; + } + + mapping (bytes32 => Democ) democs; + mapping (bytes32 => CategoriesIx) democCategories; + mapping (bytes13 => bytes32) democPrefixToHash; + mapping (address => bytes32[]) erc20ToDemocs; + bytes32[] democList; + + // allows democ admins to store arbitrary data + // this lets us (for example) set particular keys to signal cerain + // things to client apps s.t. the admin can turn them on and off. + // arbitraryData[democHash][key] + mapping (bytes32 => mapping (bytes32 => bytes)) arbitraryData; + + /* constructor */ + + constructor() payoutAllC(msg.sender) public { + // do nothing + } + + /* base contract overloads */ + + function _getPayTo() internal view returns (address) { + return owner; + } + + function getVersion() external pure returns (uint) { + return VERSION; + } + + /* GLOBAL INFO */ + + function getGDemocsN() external view returns (uint) { + return democList.length; + } + + function getGDemoc(uint id) external view returns (bytes32) { + return democList[id]; + } + + function getGErc20ToDemocs(address erc20) external view returns (bytes32[] democHashes) { + return erc20ToDemocs[erc20]; + } + + /* DEMOCRACY ADMIN FUNCTIONS */ + + function _addDemoc(bytes32 democHash, address erc20, address initOwner, bool disableErc20OwnerClaim) internal { + democList.push(democHash); + Democ storage d = democs[democHash]; + d.erc20 = erc20; + if (disableErc20OwnerClaim) { + d.erc20OwnerClaimDisabled = true; + } + // this should never trigger if we have a good security model - entropy for 13 bytes ~ 2^(8*13) ~ 10^31 + assert(democPrefixToHash[bytes13(democHash)] == bytes32(0)); + democPrefixToHash[bytes13(democHash)] = democHash; + erc20ToDemocs[erc20].push(democHash); + _setDOwner(democHash, initOwner); + emit NewDemoc(democHash); + } + + /* owner democ admin functions */ + + function dAdd(bytes32 democHash, address erc20, bool disableErc20OwnerClaim) only_owner() external { + _addDemoc(democHash, erc20, msg.sender, disableErc20OwnerClaim); + emit ManuallyAddedDemoc(democHash, erc20); + } + + /* Preferably for emergencies only */ + + function emergencySetDOwner(bytes32 democHash, address newOwner) only_owner() external { + _setDOwner(democHash, newOwner); + emit EmergencyDemocOwner(democHash, newOwner); + } + + /* user democ admin functions */ + + function dInit(address defaultErc20, address initOwner, bool disableErc20OwnerClaim) only_editors() external returns (bytes32 democHash) { + // generating the democHash in this way guarentees it'll be unique/hard-to-brute-force + // (particularly because prevBlockHash and now are part of the hash) + democHash = keccak256(abi.encodePacked(democList.length, blockhash(block.number-1), defaultErc20, now)); + _addDemoc(democHash, defaultErc20, initOwner, disableErc20OwnerClaim); + } + + function _setDOwner(bytes32 democHash, address newOwner) internal { + Democ storage d = democs[democHash]; + uint epoch = d.editorEpoch; + d.owner = newOwner; + // unset prev owner as editor - does little if one was not set + d.editors[epoch][d.owner] = false; + // make new owner an editor too + d.editors[epoch][newOwner] = true; + emit DemocOwnerSet(democHash, newOwner); + } + + function setDOwner(bytes32 democHash, address newOwner) only_editors() external { + _setDOwner(democHash, newOwner); + } + + function setDOwnerFromClaim(bytes32 democHash, address newOwner) only_editors() external { + Democ storage d = democs[democHash]; + // make sure that the owner claim is enabled (i.e. the disabled flag is false) + require(d.erc20OwnerClaimDisabled == false, "!erc20-claim"); + // set owner and editor + d.owner = newOwner; + d.editors[d.editorEpoch][newOwner] = true; + // disable the ability to claim now that it's done + d.erc20OwnerClaimDisabled = true; + emit DemocOwnerSet(democHash, newOwner); + emit DemocClaimed(democHash); + } + + function setDEditor(bytes32 democHash, address editor, bool canEdit) only_editors() external { + Democ storage d = democs[democHash]; + d.editors[d.editorEpoch][editor] = canEdit; + emit DemocEditorSet(democHash, editor, canEdit); + } + + function setDNoEditors(bytes32 democHash) only_editors() external { + democs[democHash].editorEpoch += 1; + emit DemocEditorsWiped(democHash); + } + + function setDErc20(bytes32 democHash, address newErc20) only_editors() external { + democs[democHash].erc20 = newErc20; + erc20ToDemocs[newErc20].push(democHash); + emit DemocErc20Set(democHash, newErc20); + } + + function dSetArbitraryData(bytes32 democHash, bytes key, bytes value) only_editors() external { + bytes32 k = keccak256(key); + arbitraryData[democHash][k] = value; + emit DemocDataSet(democHash, k); + } + + function dSetEditorArbitraryData(bytes32 democHash, bytes key, bytes value) only_editors() external { + bytes32 k = keccak256(_calcEditorKey(key)); + arbitraryData[democHash][k] = value; + emit DemocDataSet(democHash, k); + } + + function dAddCategory(bytes32 democHash, bytes32 name, bool hasParent, uint parent) only_editors() external { + uint catId = democCategories[democHash].nCategories; + democCategories[democHash].categories[catId].name = name; + if (hasParent) { + democCategories[democHash].categories[catId].hasParent = true; + democCategories[democHash].categories[catId].parent = parent; + } + democCategories[democHash].nCategories += 1; + emit DemocCatAdded(democHash, catId); + } + + function dDeprecateCategory(bytes32 democHash, uint catId) only_editors() external { + democCategories[democHash].categories[catId].deprecated = true; + emit DemocCatDeprecated(democHash, catId); + } + + function dSetCommunityBallotsEnabled(bytes32 democHash, bool enabled) only_editors() external { + democs[democHash].communityBallotsDisabled = !enabled; + emit DemocCommunityBallotsEnabled(democHash, enabled); + } + + function dDisableErc20OwnerClaim(bytes32 democHash) only_editors() external { + democs[democHash].erc20OwnerClaimDisabled = true; + emit DemocErc20OwnerClaimDisabled(democHash); + } + + //* ADD BALLOT TO RECORD */ + + function _commitBallot(bytes32 democHash, uint ballotId, uint256 packed, bool countTowardsLimit) internal { + uint16 subBits; + subBits = BPackedUtils.packedToSubmissionBits(packed); + + uint localBallotId = democs[democHash].allBallots.length; + democs[democHash].allBallots.push(ballotId); + + // do this for anything that doesn't qualify as a community ballot + if (countTowardsLimit) { + democs[democHash].includedBasicBallots.push(ballotId); + } + + emit NewBallot(democHash, localBallotId); + } + + // what SVIndex uses to add a ballot + function dAddBallot(bytes32 democHash, uint ballotId, uint256 packed, bool countTowardsLimit) only_editors() external { + _commitBallot(democHash, ballotId, packed, countTowardsLimit); + } + + /* democ getters */ + + function getDOwner(bytes32 democHash) external view returns (address) { + return democs[democHash].owner; + } + + function isDEditor(bytes32 democHash, address editor) external view returns (bool) { + Democ storage d = democs[democHash]; + // allow either an editor or always the owner + return d.editors[d.editorEpoch][editor] || editor == d.owner; + } + + function getDHash(bytes13 prefix) external view returns (bytes32) { + return democPrefixToHash[prefix]; + } + + function getDInfo(bytes32 democHash) external view returns (address erc20, address owner, uint256 nBallots) { + return (democs[democHash].erc20, democs[democHash].owner, democs[democHash].allBallots.length); + } + + function getDErc20(bytes32 democHash) external view returns (address) { + return democs[democHash].erc20; + } + + function getDArbitraryData(bytes32 democHash, bytes key) external view returns (bytes) { + return arbitraryData[democHash][keccak256(key)]; + } + + function getDEditorArbitraryData(bytes32 democHash, bytes key) external view returns (bytes) { + return arbitraryData[democHash][keccak256(_calcEditorKey(key))]; + } + + function getDBallotsN(bytes32 democHash) external view returns (uint256) { + return democs[democHash].allBallots.length; + } + + function getDBallotID(bytes32 democHash, uint256 n) external view returns (uint ballotId) { + return democs[democHash].allBallots[n]; + } + + function getDCountedBasicBallotsN(bytes32 democHash) external view returns (uint256) { + return democs[democHash].includedBasicBallots.length; + } + + function getDCountedBasicBallotID(bytes32 democHash, uint256 n) external view returns (uint256) { + return democs[democHash].includedBasicBallots[n]; + } + + function getDCategoriesN(bytes32 democHash) external view returns (uint) { + return democCategories[democHash].nCategories; + } + + function getDCategory(bytes32 democHash, uint catId) external view returns (bool deprecated, bytes32 name, bool hasParent, uint256 parent) { + deprecated = democCategories[democHash].categories[catId].deprecated; + name = democCategories[democHash].categories[catId].name; + hasParent = democCategories[democHash].categories[catId].hasParent; + parent = democCategories[democHash].categories[catId].parent; + } + + function getDCommBallotsEnabled(bytes32 democHash) external view returns (bool) { + return !democs[democHash].communityBallotsDisabled; + } + + function getDErc20OwnerClaimEnabled(bytes32 democHash) external view returns (bool) { + return !democs[democHash].erc20OwnerClaimDisabled; + } + + /* util for calculating editor key */ + + function _calcEditorKey(bytes key) internal pure returns (bytes) { + return abi.encodePacked("editor.", key); + } +} + diff --git a/dist/2018-06-18-ix-deployment/SVPayments.sol b/dist/2018-06-18-ix-deployment/SVPayments.sol new file mode 100644 index 0000000..3742832 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/SVPayments.sol @@ -0,0 +1,650 @@ +pragma solidity 0.4.24; + +contract safeSend { + bool private txMutex3847834; + + // we want to be able to call outside contracts (e.g. the admin proxy contract) + // but reentrency is bad, so here's a mutex. + function doSafeSend(address toAddr, uint amount) internal { + doSafeSendWData(toAddr, "", amount); + } + + function doSafeSendWData(address toAddr, bytes data, uint amount) internal { + require(txMutex3847834 == false, "ss-guard"); + txMutex3847834 = true; + // we need to use address.call.value(v)() because we want + // to be able to send to other contracts, even with no data, + // which might use more than 2300 gas in their fallback function. + require(toAddr.call.value(amount)(data), "ss-failed"); + txMutex3847834 = false; + } +} + +contract payoutAllC is safeSend { + address private _payTo; + + event PayoutAll(address payTo, uint value); + + constructor(address initPayTo) public { + // DEV NOTE: you can overwrite _getPayTo if you want to reuse other storage vars + assert(initPayTo != address(0)); + _payTo = initPayTo; + } + + function _getPayTo() internal view returns (address) { + return _payTo; + } + + function _setPayTo(address newPayTo) internal { + _payTo = newPayTo; + } + + function payoutAll() external { + address a = _getPayTo(); + uint bal = address(this).balance; + doSafeSend(a, bal); + emit PayoutAll(a, bal); + } +} + +contract payoutAllCSettable is payoutAllC { + constructor (address initPayTo) payoutAllC(initPayTo) public { + } + + function setPayTo(address) external; + function getPayTo() external view returns (address) { + return _getPayTo(); + } +} + +contract owned { + address public owner; + + event OwnerChanged(address newOwner); + + modifier only_owner() { + require(msg.sender == owner, "only_owner: forbidden"); + _; + } + + modifier owner_or(address addr) { + require(msg.sender == addr || msg.sender == owner, "!owner-or"); + _; + } + + constructor() public { + owner = msg.sender; + } + + function setOwner(address newOwner) only_owner() external { + owner = newOwner; + emit OwnerChanged(newOwner); + } +} + +contract CanReclaimToken is owned { + + /** + * @dev Reclaim all ERC20Basic compatible tokens + * @param token ERC20Basic The address of the token contract + */ + function reclaimToken(ERC20Interface token) external only_owner { + uint256 balance = token.balanceOf(this); + require(token.approve(owner, balance)); + } + +} + +contract controlledIface { + function controller() external view returns (address); +} + +contract hasAdmins is owned { + mapping (uint => mapping (address => bool)) admins; + uint public currAdminEpoch = 0; + bool public adminsDisabledForever = false; + address[] adminLog; + + event AdminAdded(address indexed newAdmin); + event AdminRemoved(address indexed oldAdmin); + event AdminEpochInc(); + event AdminDisabledForever(); + + modifier only_admin() { + require(adminsDisabledForever == false, "admins must not be disabled"); + require(isAdmin(msg.sender), "only_admin: forbidden"); + _; + } + + constructor() public { + _setAdmin(msg.sender, true); + } + + function isAdmin(address a) view public returns (bool) { + return admins[currAdminEpoch][a]; + } + + function getAdminLogN() view external returns (uint) { + return adminLog.length; + } + + function getAdminLog(uint n) view external returns (address) { + return adminLog[n]; + } + + function upgradeMeAdmin(address newAdmin) only_admin() external { + // note: already checked msg.sender has admin with `only_admin` modifier + require(msg.sender != owner, "owner cannot upgrade self"); + _setAdmin(msg.sender, false); + _setAdmin(newAdmin, true); + } + + function setAdmin(address a, bool _givePerms) only_admin() external { + require(a != msg.sender && a != owner, "cannot change your own (or owner's) permissions"); + _setAdmin(a, _givePerms); + } + + function _setAdmin(address a, bool _givePerms) internal { + admins[currAdminEpoch][a] = _givePerms; + if (_givePerms) { + emit AdminAdded(a); + adminLog.push(a); + } else { + emit AdminRemoved(a); + } + } + + // safety feature if admins go bad or something + function incAdminEpoch() only_owner() external { + currAdminEpoch++; + admins[currAdminEpoch][msg.sender] = true; + emit AdminEpochInc(); + } + + // this is internal so contracts can all it, but not exposed anywhere in this + // contract. + function disableAdminForever() internal { + currAdminEpoch++; + adminsDisabledForever = true; + emit AdminDisabledForever(); + } +} + +contract permissioned is owned, hasAdmins { + mapping (address => bool) editAllowed; + bool public adminLockdown = false; + + event PermissionError(address editAddr); + event PermissionGranted(address editAddr); + event PermissionRevoked(address editAddr); + event PermissionsUpgraded(address oldSC, address newSC); + event SelfUpgrade(address oldSC, address newSC); + event AdminLockdown(); + + modifier only_editors() { + require(editAllowed[msg.sender], "only_editors: forbidden"); + _; + } + + modifier no_lockdown() { + require(adminLockdown == false, "no_lockdown: check failed"); + _; + } + + + constructor() owned() hasAdmins() public { + } + + + function setPermissions(address e, bool _editPerms) no_lockdown() only_admin() external { + editAllowed[e] = _editPerms; + if (_editPerms) + emit PermissionGranted(e); + else + emit PermissionRevoked(e); + } + + function upgradePermissionedSC(address oldSC, address newSC) no_lockdown() only_admin() external { + editAllowed[oldSC] = false; + editAllowed[newSC] = true; + emit PermissionsUpgraded(oldSC, newSC); + } + + // always allow SCs to upgrade themselves, even after lockdown + function upgradeMe(address newSC) only_editors() external { + editAllowed[msg.sender] = false; + editAllowed[newSC] = true; + emit SelfUpgrade(msg.sender, newSC); + } + + function hasPermissions(address a) public view returns (bool) { + return editAllowed[a]; + } + + function doLockdown() external only_owner() no_lockdown() { + disableAdminForever(); + adminLockdown = true; + emit AdminLockdown(); + } +} + +contract upgradePtr { + address ptr = address(0); + + modifier not_upgraded() { + require(ptr == address(0), "upgrade pointer is non-zero"); + _; + } + + function getUpgradePointer() view external returns (address) { + return ptr; + } + + function doUpgradeInternal(address nextSC) internal { + ptr = nextSC; + } +} + +interface ERC20Interface { + // Get the total token supply + function totalSupply() constant external returns (uint256 _totalSupply); + + // Get the account balance of another account with address _owner + function balanceOf(address _owner) constant external returns (uint256 balance); + + // Send _value amount of tokens to address _to + function transfer(address _to, uint256 _value) external returns (bool success); + + // Send _value amount of tokens from address _from to address _to + function transferFrom(address _from, address _to, uint256 _value) external returns (bool success); + + // Allow _spender to withdraw from your account, multiple times, up to the _value amount. + // If this function is called again it overwrites the current allowance with _value. + // this function is required for some DEX functionality + function approve(address _spender, uint256 _value) external returns (bool success); + + // Returns the amount which _spender is still allowed to withdraw from _owner + function allowance(address _owner, address _spender) constant external returns (uint256 remaining); + + // Triggered when tokens are transferred. + event Transfer(address indexed _from, address indexed _to, uint256 _value); + + // Triggered whenever approve(address _spender, uint256 _value) is called. + event Approval(address indexed _owner, address indexed _spender, uint256 _value); +} + +library SafeMath { + function subToZero(uint a, uint b) internal pure returns (uint) { + if (a < b) { // then (a - b) would overflow + return 0; + } + return a - b; + } +} + +contract ixPaymentEvents { + event UpgradedToPremium(bytes32 indexed democHash); + event GrantedAccountTime(bytes32 indexed democHash, uint additionalSeconds, bytes32 ref); + event AccountPayment(bytes32 indexed democHash, uint additionalSeconds); + event SetCommunityBallotFee(uint amount); + event SetBasicCentsPricePer30Days(uint amount); + event SetPremiumMultiplier(uint8 multiplier); + event DowngradeToBasic(bytes32 indexed democHash); + event UpgradeToPremium(bytes32 indexed democHash); + event SetExchangeRate(uint weiPerCent); + event FreeExtension(bytes32 democHash); + event SetBallotsPer30Days(uint amount); + event SetFreeExtension(bytes32 democHash, bool hasFreeExt); + event SetDenyPremium(bytes32 democHash, bool isPremiumDenied); + event SetPayTo(address payTo); + event SetMinorEditsAddr(address minorEditsAddr); + event SetMinWeiForDInit(uint amount); +} + +interface hasVersion { + function getVersion() external pure returns (uint); +} + +contract IxPaymentsIface is hasVersion, ixPaymentEvents, permissioned, CanReclaimToken, payoutAllCSettable { + /* in emergency break glass */ + function emergencySetOwner(address newOwner) external; + + /* financial calcluations */ + function weiBuysHowManySeconds(uint amount) public view returns (uint secs); + function weiToCents(uint w) public view returns (uint); + function centsToWei(uint c) public view returns (uint); + + /* account management */ + function payForDemocracy(bytes32 democHash) external payable; + function doFreeExtension(bytes32 democHash) external; + function downgradeToBasic(bytes32 democHash) external; + function upgradeToPremium(bytes32 democHash) external; + + /* account status - getters */ + function accountInGoodStanding(bytes32 democHash) external view returns (bool); + function getSecondsRemaining(bytes32 democHash) external view returns (uint); + function getPremiumStatus(bytes32 democHash) external view returns (bool); + function getFreeExtension(bytes32 democHash) external view returns (bool); + function getAccount(bytes32 democHash) external view returns (bool isPremium, uint lastPaymentTs, uint paidUpTill, bool hasFreeExtension); + function getDenyPremium(bytes32 democHash) external view returns (bool); + + /* admin utils for accounts */ + function giveTimeToDemoc(bytes32 democHash, uint additionalSeconds, bytes32 ref) external; + + /* admin setters global */ + function setPayTo(address) external; + function setMinorEditsAddr(address) external; + function setBasicCentsPricePer30Days(uint amount) external; + function setBasicBallotsPer30Days(uint amount) external; + function setPremiumMultiplier(uint8 amount) external; + function setWeiPerCent(uint) external; + function setFreeExtension(bytes32 democHash, bool hasFreeExt) external; + function setDenyPremium(bytes32 democHash, bool isPremiumDenied) external; + function setMinWeiForDInit(uint amount) external; + + /* global getters */ + function getBasicCentsPricePer30Days() external view returns(uint); + function getBasicExtraBallotFeeWei() external view returns (uint); + function getBasicBallotsPer30Days() external view returns (uint); + function getPremiumMultiplier() external view returns (uint8); + function getPremiumCentsPricePer30Days() external view returns (uint); + function getWeiPerCent() external view returns (uint weiPerCent); + function getUsdEthExchangeRate() external view returns (uint centsPerEth); + function getMinWeiForDInit() external view returns (uint); + + /* payments stuff */ + function getPaymentLogN() external view returns (uint); + function getPaymentLog(uint n) external view returns (bool _external, bytes32 _democHash, uint _seconds, uint _ethValue); +} + +contract SVPayments is IxPaymentsIface { + uint constant VERSION = 2; + + struct Account { + bool isPremium; + uint lastPaymentTs; + uint paidUpTill; + uint lastUpgradeTs; // timestamp of the last time it was upgraded to premium + } + + struct PaymentLog { + bool _external; + bytes32 _democHash; + uint _seconds; + uint _ethValue; + } + + // this is an address that's only allowed to make minor edits + // e.g. setExchangeRate, setDenyPremium, giveTimeToDemoc + address public minorEditsAddr; + + // payment details + uint basicCentsPricePer30Days = 125000; // $1250/mo + uint basicBallotsPer30Days = 10; + uint8 premiumMultiplier = 5; + uint weiPerCent = 0.000016583747 ether; // $603, 4th June 2018 + + uint minWeiForDInit = 1; // minimum 1 wei - match existing behaviour in SVIndex + + mapping (bytes32 => Account) accounts; + PaymentLog[] payments; + + // can set this on freeExtension democs to deny them premium upgrades + mapping (bytes32 => bool) denyPremium; + // this is used for non-profits or organisations that have perpetual licenses, etc + mapping (bytes32 => bool) freeExtension; + + + /* BREAK GLASS IN CASE OF EMERGENCY */ + // this is included here because something going wrong with payments is possibly + // the absolute worst case. Note: does this have negligable benefit if the other + // contracts are compromised? (e.g. by a leaked privkey) + address public emergencyAdmin; + function emergencySetOwner(address newOwner) external { + require(msg.sender == emergencyAdmin, "!emergency-owner"); + owner = newOwner; + } + /* END BREAK GLASS */ + + + constructor(address _emergencyAdmin) payoutAllCSettable(msg.sender) public { + emergencyAdmin = _emergencyAdmin; + assert(_emergencyAdmin != address(0)); + } + + /* base SCs */ + + function getVersion() external pure returns (uint) { + return VERSION; + } + + function() payable public { + _getPayTo().transfer(msg.value); + } + + function _modAccountBalance(bytes32 democHash, uint additionalSeconds) internal { + uint prevPaidTill = accounts[democHash].paidUpTill; + if (prevPaidTill < now) { + prevPaidTill = now; + } + + accounts[democHash].paidUpTill = prevPaidTill + additionalSeconds; + accounts[democHash].lastPaymentTs = now; + } + + /* Financial Calculations */ + + function weiBuysHowManySeconds(uint amount) public view returns (uint) { + uint centsPaid = weiToCents(amount); + // multiply by 10**18 to ensure we make rounding errors insignificant + uint monthsOffsetPaid = ((10 ** 18) * centsPaid) / basicCentsPricePer30Days; + uint secondsOffsetPaid = monthsOffsetPaid * (30 days); + uint additionalSeconds = secondsOffsetPaid / (10 ** 18); + return additionalSeconds; + } + + function weiToCents(uint w) public view returns (uint) { + return w / weiPerCent; + } + + function centsToWei(uint c) public view returns (uint) { + return c * weiPerCent; + } + + /* account management */ + + function payForDemocracy(bytes32 democHash) external payable { + require(msg.value > 0, "need to send some ether to make payment"); + + uint additionalSeconds = weiBuysHowManySeconds(msg.value); + + if (accounts[democHash].isPremium) { + additionalSeconds /= premiumMultiplier; + } + + if (additionalSeconds >= 1) { + _modAccountBalance(democHash, additionalSeconds); + } + payments.push(PaymentLog(false, democHash, additionalSeconds, msg.value)); + emit AccountPayment(democHash, additionalSeconds); + + _getPayTo().transfer(msg.value); + } + + function doFreeExtension(bytes32 democHash) external { + require(freeExtension[democHash], "!free"); + uint newPaidUpTill = now + 60 days; + accounts[democHash].paidUpTill = newPaidUpTill; + emit FreeExtension(democHash); + } + + function downgradeToBasic(bytes32 democHash) only_editors() external { + require(accounts[democHash].isPremium, "!premium"); + accounts[democHash].isPremium = false; + // convert premium minutes to basic + uint paidTill = accounts[democHash].paidUpTill; + uint timeRemaining = SafeMath.subToZero(paidTill, now); + // if we have time remaining: convert it + if (timeRemaining > 0) { + // prevent accounts from downgrading if they have time remaining + // and upgraded less than 24hrs ago + require(accounts[democHash].lastUpgradeTs < (now - 24 hours), "downgrade-too-soon"); + timeRemaining *= premiumMultiplier; + accounts[democHash].paidUpTill = now + timeRemaining; + } + emit DowngradeToBasic(democHash); + } + + function upgradeToPremium(bytes32 democHash) only_editors() external { + require(denyPremium[democHash] == false, "upgrade-denied"); + require(!accounts[democHash].isPremium, "!basic"); + accounts[democHash].isPremium = true; + // convert basic minutes to premium minutes + uint paidTill = accounts[democHash].paidUpTill; + uint timeRemaining = SafeMath.subToZero(paidTill, now); + // if we have time remaning then convert it - otherwise don't need to do anything + if (timeRemaining > 0) { + timeRemaining /= premiumMultiplier; + accounts[democHash].paidUpTill = now + timeRemaining; + } + accounts[democHash].lastUpgradeTs = now; + emit UpgradedToPremium(democHash); + } + + /* account status - getters */ + + function accountInGoodStanding(bytes32 democHash) external view returns (bool) { + return accounts[democHash].paidUpTill >= now; + } + + function getSecondsRemaining(bytes32 democHash) external view returns (uint) { + return SafeMath.subToZero(accounts[democHash].paidUpTill, now); + } + + function getPremiumStatus(bytes32 democHash) external view returns (bool) { + return accounts[democHash].isPremium; + } + + function getFreeExtension(bytes32 democHash) external view returns (bool) { + return freeExtension[democHash]; + } + + function getAccount(bytes32 democHash) external view returns (bool isPremium, uint lastPaymentTs, uint paidUpTill, bool hasFreeExtension) { + isPremium = accounts[democHash].isPremium; + lastPaymentTs = accounts[democHash].lastPaymentTs; + paidUpTill = accounts[democHash].paidUpTill; + hasFreeExtension = freeExtension[democHash]; + } + + function getDenyPremium(bytes32 democHash) external view returns (bool) { + return denyPremium[democHash]; + } + + /* admin utils for accounts */ + + function giveTimeToDemoc(bytes32 democHash, uint additionalSeconds, bytes32 ref) owner_or(minorEditsAddr) external { + _modAccountBalance(democHash, additionalSeconds); + payments.push(PaymentLog(true, democHash, additionalSeconds, 0)); + emit GrantedAccountTime(democHash, additionalSeconds, ref); + } + + /* admin setters global */ + + function setPayTo(address newPayTo) only_owner() external { + _setPayTo(newPayTo); + emit SetPayTo(newPayTo); + } + + function setMinorEditsAddr(address a) only_owner() external { + minorEditsAddr = a; + emit SetMinorEditsAddr(a); + } + + function setBasicCentsPricePer30Days(uint amount) only_owner() external { + basicCentsPricePer30Days = amount; + emit SetBasicCentsPricePer30Days(amount); + } + + function setBasicBallotsPer30Days(uint amount) only_owner() external { + basicBallotsPer30Days = amount; + emit SetBallotsPer30Days(amount); + } + + function setPremiumMultiplier(uint8 m) only_owner() external { + premiumMultiplier = m; + emit SetPremiumMultiplier(m); + } + + function setWeiPerCent(uint wpc) owner_or(minorEditsAddr) external { + weiPerCent = wpc; + emit SetExchangeRate(wpc); + } + + function setFreeExtension(bytes32 democHash, bool hasFreeExt) owner_or(minorEditsAddr) external { + freeExtension[democHash] = hasFreeExt; + emit SetFreeExtension(democHash, hasFreeExt); + } + + function setDenyPremium(bytes32 democHash, bool isPremiumDenied) owner_or(minorEditsAddr) external { + denyPremium[democHash] = isPremiumDenied; + emit SetDenyPremium(democHash, isPremiumDenied); + } + + function setMinWeiForDInit(uint amount) owner_or(minorEditsAddr) external { + minWeiForDInit = amount; + emit SetMinWeiForDInit(amount); + } + + /* global getters */ + + function getBasicCentsPricePer30Days() external view returns (uint) { + return basicCentsPricePer30Days; + } + + function getBasicExtraBallotFeeWei() external view returns (uint) { + return centsToWei(basicCentsPricePer30Days / basicBallotsPer30Days); + } + + function getBasicBallotsPer30Days() external view returns (uint) { + return basicBallotsPer30Days; + } + + function getPremiumMultiplier() external view returns (uint8) { + return premiumMultiplier; + } + + function getPremiumCentsPricePer30Days() external view returns (uint) { + return _premiumPricePer30Days(); + } + + function _premiumPricePer30Days() internal view returns (uint) { + return uint(premiumMultiplier) * basicCentsPricePer30Days; + } + + function getWeiPerCent() external view returns (uint) { + return weiPerCent; + } + + function getUsdEthExchangeRate() external view returns (uint) { + // this returns cents per ether + return 1 ether / weiPerCent; + } + + function getMinWeiForDInit() external view returns (uint) { + return minWeiForDInit; + } + + /* payments stuff */ + + function getPaymentLogN() external view returns (uint) { + return payments.length; + } + + function getPaymentLog(uint n) external view returns (bool _external, bytes32 _democHash, uint _seconds, uint _ethValue) { + _external = payments[n]._external; + _democHash = payments[n]._democHash; + _seconds = payments[n]._seconds; + _ethValue = payments[n]._ethValue; + } +} + diff --git a/dist/2018-06-18-ix-deployment/bb_farm/BBFarm.abi b/dist/2018-06-18-ix-deployment/bb_farm/BBFarm.abi new file mode 100644 index 0000000..0caac6d --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/BBFarm.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getCreationTs","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"vote","type":"bytes32"},{"name":"extra","type":"bytes"}],"name":"submitVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"newOwner","type":"address"}],"name":"setBallotOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"setDeprecated","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getNBallots","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNamespace","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getSponsorsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"sponsorN","type":"uint256"}],"name":"getSponsor","outputs":[{"name":"sender","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"voteId","type":"uint256"}],"name":"getVote","outputs":[{"name":"voteData","type":"bytes32"},{"name":"sender","type":"address"},{"name":"extra","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"proxyReq","type":"bytes32[5]"},{"name":"extra","type":"bytes"}],"name":"submitProxyVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getTotalSponsorship","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"voter","type":"address"}],"name":"getDetails","outputs":[{"name":"hasVoted","type":"bool"},{"name":"nVotesCast","type":"uint256"},{"name":"secKey","type":"bytes32"},{"name":"submissionBits","type":"uint16"},{"name":"startTime","type":"uint64"},{"name":"endTime","type":"uint64"},{"name":"specHash","type":"bytes32"},{"name":"deprecated","type":"bool"},{"name":"ballotOwner","type":"address"},{"name":"extraData","type":"bytes16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"sk","type":"bytes32"}],"name":"revealSeckey","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"newEndTime","type":"uint64"}],"name":"setEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"sponsor","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"voter","type":"address"}],"name":"getSequenceNumber","outputs":[{"name":"sequence","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBBLibVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"specHash","type":"bytes32"},{"name":"packed","type":"uint256"},{"name":"ix","type":"address"},{"name":"bbAdmin","type":"address"},{"name":"extraData","type":"bytes24"}],"name":"initBallot","outputs":[{"name":"ballotId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Sponsorship","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"vote","type":"bytes32"},{"indexed":false,"name":"voter","type":"address"},{"indexed":false,"name":"extra","type":"bytes"}],"name":"Vote","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/BBFarm.abi.json b/dist/2018-06-18-ix-deployment/bb_farm/BBFarm.abi.json new file mode 100644 index 0000000..0caac6d --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/BBFarm.abi.json @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getCreationTs","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"vote","type":"bytes32"},{"name":"extra","type":"bytes"}],"name":"submitVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"newOwner","type":"address"}],"name":"setBallotOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"setDeprecated","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getNBallots","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNamespace","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getSponsorsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"sponsorN","type":"uint256"}],"name":"getSponsor","outputs":[{"name":"sender","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"voteId","type":"uint256"}],"name":"getVote","outputs":[{"name":"voteData","type":"bytes32"},{"name":"sender","type":"address"},{"name":"extra","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"proxyReq","type":"bytes32[5]"},{"name":"extra","type":"bytes"}],"name":"submitProxyVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getTotalSponsorship","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"voter","type":"address"}],"name":"getDetails","outputs":[{"name":"hasVoted","type":"bool"},{"name":"nVotesCast","type":"uint256"},{"name":"secKey","type":"bytes32"},{"name":"submissionBits","type":"uint16"},{"name":"startTime","type":"uint64"},{"name":"endTime","type":"uint64"},{"name":"specHash","type":"bytes32"},{"name":"deprecated","type":"bool"},{"name":"ballotOwner","type":"address"},{"name":"extraData","type":"bytes16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"sk","type":"bytes32"}],"name":"revealSeckey","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"newEndTime","type":"uint64"}],"name":"setEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"sponsor","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"voter","type":"address"}],"name":"getSequenceNumber","outputs":[{"name":"sequence","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBBLibVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"specHash","type":"bytes32"},{"name":"packed","type":"uint256"},{"name":"ix","type":"address"},{"name":"bbAdmin","type":"address"},{"name":"extraData","type":"bytes24"}],"name":"initBallot","outputs":[{"name":"ballotId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Sponsorship","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"vote","type":"bytes32"},{"indexed":false,"name":"voter","type":"address"},{"indexed":false,"name":"extra","type":"bytes"}],"name":"Vote","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/BBFarm.bin b/dist/2018-06-18-ix-deployment/bb_farm/BBFarm.bin new file mode 100644 index 0000000..69bd2f6 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/BBFarm.bin @@ -0,0 +1 @@ +6080604052600060028190556003805460ff199081169091556006805490911690556008553480156200003157600080fd5b5060008054600160a060020a031916339081179091556200005d81600164010000000062000187810204565b600160a060020a03811615156200007057fe5b80600660026101000a815481600160a060020a030219169083600160a060020a0316021790555050730484c599e228e13befb61129888e8bd2b63a9619630d8e6e2c6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b158015620000f957600080fd5b505af41580156200010e573d6000803e3d6000fd5b505050506040513d60208110156200012557600080fd5b50516006146200013157fe5b604080517c0100000000000000000000000000000000000000000000000000000000815290517f9efcb9c0754671258cec21b6dce843609343e2240774fedbc3a062d6d79ed0f89181900360200190a162000280565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff191682158015919091179091556200024757604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a0384161790556200027c565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b6122c780620002906000396000f3006080604052600436106101a75763ffffffff60e060020a60003504166250a31581146101ac5780630425c357146101d657806307858f0e14610200578063086ac6d7146102245780630d8e6e2c1461023c578063105689a01461025157806313af4035146102665780631b58c943146102875780631ffa27f91461029c57806321fb9869146102d157806324d7806c1461030557806327ac4b70146103265780632985aacf1461036d5780632f605106146103855780633c205b05146103c3578063407a5c92146103d85780634681067d146103ed57806349330cb8146104025780634b0bddd2146104b05780634da2317f146104d65780635341903b146104eb57806354924aec1461050c578063579f20d814610521578063605de51d146105435780636165234c1461055b57806377410c031461058157806381bd66fe146105965780638da5cb5b146105b75780639115abf4146105cc578063930d54b41461067057806397d5c6a11461068b578063b2461b15146106b0578063b6cce5e2146106d7578063cdd1b539146106e2578063d7f42ee21461071f578063dbe7967914610734575b600080fd5b3480156101b857600080fd5b506101c460043561076f565b60408051918252519081900360200190f35b3480156101e257600080fd5b506101fe60048035906024803591604435918201910135610784565b005b34801561020c57600080fd5b506101fe600435600160a060020a0360243516610929565b34801561023057600080fd5b506101fe600435610970565b34801561024857600080fd5b506101c46109bf565b34801561025d57600080fd5b506101fe6109c4565b34801561027257600080fd5b506101fe600160a060020a0360043516610ac1565b34801561029357600080fd5b506101c4610b84565b3480156102a857600080fd5b506102bd600160a060020a0360043516610b8a565b604080519115158252519081900360200190f35b3480156102dd57600080fd5b506102e9600435610ba8565b60408051600160a060020a039092168252519081900360200190f35b34801561031157600080fd5b506102bd600160a060020a0360043516610bd4565b34801561033257600080fd5b5061033b610c01565b604080517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff199092168252519081900360200190f35b34801561037957600080fd5b506101c4600435610c09565b34801561039157600080fd5b506103a0600435602435610c1e565b60408051600160a060020a03909316835260208301919091528051918290030190f35b3480156103cf57600080fd5b506101c4610cd8565b3480156103e457600080fd5b506101c4610cde565b3480156103f957600080fd5b506101fe610ce4565b34801561040e57600080fd5b5061041d600435602435610d9e565b60408051848152600160a060020a03841660208083019190915260609282018381528451938301939093528351919291608084019185019080838360005b8381101561047357818101518382015260200161045b565b50505050905090810190601f1680156104a05780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b3480156104bc57600080fd5b506101fe600160a060020a03600435166024351515610dcb565b3480156104e257600080fd5b506101fe610f12565b3480156104f757600080fd5b506101fe600160a060020a0360043516610f74565b34801561051857600080fd5b506102bd611050565b34801561052d57600080fd5b506101fe600460a4356024810190820135611059565b34801561054f57600080fd5b506101c460043561123c565b34801561056757600080fd5b506101fe600160a060020a03600435166024351515611255565b34801561058d57600080fd5b506102bd6113f4565b3480156105a257600080fd5b506101fe600160a060020a03600435166113fd565b3480156105c357600080fd5b506102e961150f565b3480156105d857600080fd5b506105f0600435600160a060020a036024351661151e565b604080519a15158b5260208b01999099528989019790975261ffff909516606089015267ffffffffffffffff93841660808901529190921660a087015260c0860191909152151560e0850152600160a060020a03166101008401526fffffffffffffffffffffffffffffffff191661012083015251908190036101400190f35b34801561067c57600080fd5b506101fe6004356024356115f7565b34801561069757600080fd5b506101fe60043567ffffffffffffffff6024351661162b565b3480156106bc57600080fd5b506101fe600160a060020a03600435811690602435166116e2565b6101fe600435611848565b3480156106ee57600080fd5b50610706600435600160a060020a03602435166118c4565b6040805163ffffffff9092168252519081900360200190f35b34801561072b57600080fd5b506101c46118e6565b34801561074057600080fd5b506101c4600435602435600160a060020a036044358116906064351667ffffffffffffffff1960843516611960565b600061077a82611b1c565b600a015492915050565b8360e060020a80820481027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610803576040805160e560020a62461bcd02815260206004820152600d60248201527f6261642d6e616d65737061636500000000000000000000000000000000000000604482015290519081900360640190fd5b61080c85611b1c565b6040517f1f7c159c000000000000000000000000000000000000000000000000000000008152600481018281526024820187905260606044830190815260648301869052730484c599e228e13befb61129888e8bd2b63a961993631f7c159c939092899289928992919060840184848082843782019150509550505050505060006040518083038186803b1580156108a357600080fd5b505af41580156108b7573d6000803e3d6000fd5b505060408051878152336020820181905260609282018381529282018790528994507fc36bca23f7acd356bf53dd9ba26e965997f89db6c92337e3960cbb2c5210199a935088929091889188919060808201848480828437604051920182900397509095505050505050a25050505050565b600061093483611b1c565b905061093f81611b4b565b600901805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b600061097b82611b1c565b905061098681611b4b565b600801805474ff000000000000000000000000000000000000000019167401000000000000000000000000000000000000000017905550565b600290565b600054600160a060020a03163314610a26576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60065460ff1615610a81576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b610a89611baf565b6006805460ff191660011790556040517f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20590600090a1565b600054600160a060020a03163314610b23576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60085490565b600160a060020a031660009081526005602052604090205460ff1690565b6000600482815481101515610bb957fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b60e060020a90565b6000610c1482611b1c565b6007015492915050565b600080610c2a84611b1c565b604080517fd3b281630000000000000000000000000000000000000000000000000000000081526004810192909252602482018590528051730484c599e228e13befb61129888e8bd2b63a96199263d3b28163926044808301939192829003018186803b158015610c9a57600080fd5b505af4158015610cae573d6000803e3d6000fd5b505050506040513d6040811015610cc457600080fd5b508051602090910151909590945092505050565b60025481565b60045490565b600054600160a060020a03163314610d46576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b6000806060610dbc84610db087611b1c565b9063ffffffff611bf316565b50919790965090945092505050565b60035460ff1615610e14576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061225c833981519152604482015290519081900360640190fd5b610e1d33610bd4565b1515610e61576040805160e560020a62461bcd028152602060048201526015602482015260008051602061227c833981519152604482015290519081900360640190fd5b600160a060020a0382163314801590610e885750600054600160a060020a03838116911614155b1515610f04576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b610f0e8282611cc6565b5050565b600080610f1d611dc9565b9150503031610f2c8282611dd8565b60408051600160a060020a03841681526020810183905281517fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd2562472929181900390910190a15050565b3360009081526005602052604090205460ff161515610fdd576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c795f656469746f72733a20666f7262696464656e000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320805460ff19908116909155600160a060020a038616808552938290208054909116600117905580519384529083019190915280517f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a9281900390910190a150565b60035460ff1681565b60008080856003602002013560e060020a80820481027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146110e3576040805160e560020a62461bcd02815260206004820152600d60248201527f6261642d6e616d65737061636500000000000000000000000000000000000000604482015290519081900360640190fd5b606087013593506110f384611b1c565b6040517f4575e6a300000000000000000000000000000000000000000000000000000000815260048101828152730484c599e228e13befb61129888e8bd2b63a961992634575e6a39290918b918b918b916024018460a080828437820191505080602001828103825284848281815260200192508082843782019150509550505050505060206040518083038186803b15801561118f57600080fd5b505af41580156111a3573d6000803e3d6000fd5b505050506040513d60208110156111b957600080fd5b5051604080516080808b0135808352600160a060020a038516602084015260609383018481529383018a905293965092945086927fc36bca23f7acd356bf53dd9ba26e965997f89db6c92337e3960cbb2c5210199a92869288928c928c92918201848480828437604051920182900397509095505050505050a250505050505050565b600061124f61124a83611b1c565b611df3565b92915050565b60065460ff16156112b0576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff16156112f9576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061225c833981519152604482015290519081900360640190fd5b61130233610bd4565b1515611346576040805160e560020a62461bcd028152602060048201526015602482015260008051602061227c833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600560205260409020805460ff191682158015919091179091556113b45760408051600160a060020a038416815290517fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c69181900360200190a1610f0e565b60408051600160a060020a038416815290517f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c9219181900360200190a15050565b60065460ff1681565b60035460ff1615611446576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061225c833981519152604482015290519081900360640190fd5b61144f33610bd4565b1515611493576040805160e560020a62461bcd028152602060048201526015602482015260008051602061227c833981519152604482015290519081900360640190fd5b600054600160a060020a03163314156114f6576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b611501336000611cc6565b61150c816001611cc6565b50565b600054600160a060020a031681565b6000806000806000806000806000806000806115398e611b1c565b600481015490925090506000611555838f63ffffffff611e3916565b63ffffffff16118260010154836003015461156f84611e5e565b61157885611e75565b61158186611e84565b87600501548860080160149054906101000a900460ff168960090160009054906101000a9004600160a060020a03168a60060160009054906101000a9004700100000000000000000000000000000000029b509b509b509b509b509b509b509b509b509b5050509295989b9194979a5092959850565b600061160283611b1c565b905061160d81611b4b565b61161681611e87565b611626818363ffffffff611ef416565b505050565b600061163683611b1c565b905061164181611b4b565b61164a81611f32565b604080517f520c2c830000000000000000000000000000000000000000000000000000000081526004810183905267ffffffffffffffff841660248201529051730484c599e228e13befb61129888e8bd2b63a96199163520c2c83916044808301926000929190829003018186803b1580156116c557600080fd5b505af41580156116d9573d6000803e3d6000fd5b50505050505050565b60065460ff161561173d576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff1615611786576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061225c833981519152604482015290519081900360640190fd5b61178f33610bd4565b15156117d3576040805160e560020a62461bcd028152602060048201526015602482015260008051602061227c833981519152604482015290519081900360640190fd5b600160a060020a038083166000818152600560209081526040808320805460ff19908116909155948616808452928190208054909516600117909455835192835282015281517f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b58929181900390910190a15050565b600061185382611b1c565b9050611865813463ffffffff611f9d16565b60088101546118869061188090600160a060020a0316612005565b34611dd8565b6040805183815234602082015281517fed34dd96c912079eb7961c72c52b776c5da4e532cd4dbbf12ce5178654775769929181900390910190a15050565b60006118df826118d385611b1c565b9063ffffffff611e3916565b9392505050565b6000730484c599e228e13befb61129888e8bd2b63a9619630d8e6e2c6040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561192f57600080fd5b505af4158015611943573d6000803e3d6000fd5b505050506040513d602081101561195957600080fd5b5051905090565b3360009081526005602052604081205460ff1615156119c9576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c795f656469746f72733a20666f7262696464656e000000000000000000604482015290519081900360640190fd5b507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff851660e060020a186119f881611b1c565b604080517f0dc6847f00000000000000000000000000000000000000000000000000000000815260048101929092526024820188905260448201879052600160a060020a038087166064840152851660848301526fffffffffffffffffffffffffffffffff19700100000000000000000000000000000000680100000000000000008604021660a483015251730484c599e228e13befb61129888e8bd2b63a961991630dc6847f9160c4808301926000929190829003018186803b158015611abf57600080fd5b505af4158015611ad3573d6000803e3d6000fd5b505060088054600101905550506040805182815290517f20f1b9a21ee397f1c57261849e4492865559e3da426f13a27e9d3abefafb45ed9181900360200190a195945050505050565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600090815260076020526040902090565b6009810154600160a060020a0316331461150c576040805160e560020a62461bcd02815260206004820152600860248201527f21622d6f776e6572000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6002805460019081019091556003805460ff191690911790556040517fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a190600090a1565b60008181526020838152604080832080546001808301546002938401805486519381161561010002600019011694909404601f81018790048702830187019095528482528695606095879592937401000000000000000000000000000000000000000085049290918491830182828015611cae5780601f10611c8357610100808354040283529160200191611cae565b820191906000526020600020905b815481529060010190602001808311611c9157829003601f168201915b50505050509150935093509350935092959194509250565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff19168215801591909117909155611d9157604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416179055610f0e565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25050565b600054600160a060020a031690565b610f0e82602060405190810160405280600081525083612100565b6000805b6007830154811015611e335760078301805482908110611e1357fe5b600091825260209091206001600290920201810154929092019101611df7565b50919050565b600160a060020a03166000908152600291909101602052604090205463ffffffff1690565b700100000000000000000000000000000000900490565b68010000000000000000900490565b90565b611e948160040154611e84565b67ffffffffffffffff16421161150c576040805160e560020a62461bcd02815260206004820152600960248201527f21622d636c6f7365640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600382018190556040805182815290517fa69839328d982396193483f2260936b1d1f2109fdde204b27c7ac3c1cfd18db09181900360200190a15050565b611f47611f428260040154611e5e565b612251565b151561150c576040805160e560020a62461bcd02815260206004820152600860248201527f2174657374696e67000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60408051808201909152338152602080820192835260079390930180546001808201835560009283529490912091516002909102909101805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911781559051910155565b600081600160a060020a031663d56bd1426040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561204557600080fd5b505af1158015612059573d6000803e3d6000fd5b505050506040513d602081101561206f57600080fd5b5051604080517ff1efb76a0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163f1efb76a916004808201926020929091908290030181600087803b1580156120ce57600080fd5b505af11580156120e2573d6000803e3d6000fd5b505050506040513d60208110156120f857600080fd5b505192915050565b600654610100900460ff1615612160576040805160e560020a62461bcd02815260206004820152600860248201527f73732d6775617264000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6006805461ff0019166101001790556040518251600160a060020a0385169183918591908190602084019080838360005b838110156121a9578181015183820152602001612191565b50505050905090810190601f1680156121d65780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af1925050501515612241576040805160e560020a62461bcd02815260206004820152600960248201527f73732d6661696c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50506006805461ff001916905550565b6180009081161490560061646d696e73206d757374206e6f742062652064697361626c656400000000006f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000a165627a7a72305820009b8d02cd59ecf4d3e0b7c9d972b0a2470d3f2a4490d05e731c3b3cea40115d0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/BBFarmEvents.abi b/dist/2018-06-18-ix-deployment/bb_farm/BBFarmEvents.abi new file mode 100644 index 0000000..4721cf2 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/BBFarmEvents.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Sponsorship","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"vote","type":"bytes32"},{"indexed":false,"name":"voter","type":"address"},{"indexed":false,"name":"extra","type":"bytes"}],"name":"Vote","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/BBFarmEvents.bin b/dist/2018-06-18-ix-deployment/bb_farm/BBFarmEvents.bin new file mode 100644 index 0000000..934e849 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/BBFarmEvents.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820e011e0b297ea0a7e2c57c24c56cc218dfddad55065b28b427628a096f4cbf2f20029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/BBFarmIface.abi b/dist/2018-06-18-ix-deployment/bb_farm/BBFarmIface.abi new file mode 100644 index 0000000..ca8efbc --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/BBFarmIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getCreationTs","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"vote","type":"bytes32"},{"name":"extra","type":"bytes"}],"name":"submitVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"newOwner","type":"address"}],"name":"setBallotOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"setDeprecated","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getNBallots","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNamespace","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getSponsorsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"sponsorN","type":"uint256"}],"name":"getSponsor","outputs":[{"name":"sender","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"voteId","type":"uint256"}],"name":"getVote","outputs":[{"name":"voteData","type":"bytes32"},{"name":"sender","type":"address"},{"name":"extra","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"proxyReq","type":"bytes32[5]"},{"name":"extra","type":"bytes"}],"name":"submitProxyVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getTotalSponsorship","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"voter","type":"address"}],"name":"getDetails","outputs":[{"name":"hasVoted","type":"bool"},{"name":"nVotesCast","type":"uint256"},{"name":"secKey","type":"bytes32"},{"name":"submissionBits","type":"uint16"},{"name":"startTime","type":"uint64"},{"name":"endTime","type":"uint64"},{"name":"specHash","type":"bytes32"},{"name":"deprecated","type":"bool"},{"name":"ballotOwner","type":"address"},{"name":"extraData","type":"bytes16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"sk","type":"bytes32"}],"name":"revealSeckey","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"newEndTime","type":"uint64"}],"name":"setEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"sponsor","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getBBLibVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"specHash","type":"bytes32"},{"name":"packed","type":"uint256"},{"name":"ix","type":"address"},{"name":"bbAdmin","type":"address"},{"name":"extraData","type":"bytes24"}],"name":"initBallot","outputs":[{"name":"ballotId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Sponsorship","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"vote","type":"bytes32"},{"indexed":false,"name":"voter","type":"address"},{"indexed":false,"name":"extra","type":"bytes"}],"name":"Vote","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/BBFarmIface.bin b/dist/2018-06-18-ix-deployment/bb_farm/BBFarmIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/bb_farm/BBLib.abi b/dist/2018-06-18-ix-deployment/bb_farm/BBLib.abi new file mode 100644 index 0000000..84ecac6 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/BBLib.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"db","type":"BBLib.DB storage"},{"name":"_specHash","type":"bytes32"},{"name":"_packed","type":"uint256"},{"name":"ix","type":"IxIface"},{"name":"ballotOwner","type":"address"},{"name":"extraData","type":"bytes16"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"db","type":"BBLib.DB storage"},{"name":"voteData","type":"bytes32"},{"name":"extra","type":"bytes"}],"name":"submitVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"db","type":"BBLib.DB storage"},{"name":"proxyReq","type":"bytes32[5]"},{"name":"extra","type":"bytes"}],"name":"submitProxyVote","outputs":[{"name":"voter","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"db","type":"BBLib.DB storage"},{"name":"newEndTime","type":"uint64"}],"name":"setEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"db","type":"BBLib.DB storage"},{"name":"i","type":"uint256"}],"name":"getSponsor","outputs":[{"name":"sender","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_specHash","type":"bytes32"},{"indexed":false,"name":"startTs","type":"uint64"},{"indexed":false,"name":"endTs","type":"uint64"},{"indexed":false,"name":"submissionBits","type":"uint16"}],"name":"CreatedBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"voter","type":"address"},{"indexed":false,"name":"voteId","type":"uint256"}],"name":"SuccessfulVote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"secretKey","type":"bytes32"}],"name":"SeckeyRevealed","type":"event"},{"anonymous":false,"inputs":[],"name":"TestingEnabled","type":"event"},{"anonymous":false,"inputs":[],"name":"DeprecatedContract","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/BBLib.bin b/dist/2018-06-18-ix-deployment/bb_farm/BBLib.bin new file mode 100644 index 0000000..2f33895 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/BBLib.bin @@ -0,0 +1 @@ +610c51610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f300730000000000000000000000000000000000000000301460806040526004361061008e5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630d8e6e2c81146100935780630dc6847f146100ad5780631f7c159c146100f55780634575e6a31461011d578063520c2c831461015f578063d3b2816314610184575b600080fd5b61009b6101b5565b60408051918252519081900360200190f35b8180156100b957600080fd5b506100f3600435602435604435600160a060020a03606435811690608435166fffffffffffffffffffffffffffffffff1960a435166101bb565b005b81801561010157600080fd5b506100f360048035906024803591604435918201910135610538565b81801561012957600080fd5b50610143600480359060249060c4358083019101356105bd565b60408051600160a060020a039092168252519081900360200190f35b81801561016b57600080fd5b506100f360043567ffffffffffffffff602435166107d1565b610192600435602435610800565b60408051600160a060020a03909316835260208301919091528051918290030190f35b60065b90565b6005860154600090819081908190819015610220576040805160e560020a62461bcd02815260206004820152600860248201527f622d657869737473000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60088b018054600160a060020a03808b1673ffffffffffffffffffffffffffffffffffffffff199283161790925560098d018054928a169290911691909117905561026a8961085e565b9096509450925061027a83610883565b915081156102b0576040517f641e6b9d2f3c463bec5b5cffe3f5017d9a49ad5543d2962eb746c6a7afa223c590600090a1610415565b4267ffffffffffffffff851611610311576040805160e560020a62461bcd02815260206004820152600c60248201527f6261642d656e642d74696d650000000000000000000000000000000000000000604482015290519081900360640190fd5b611ff283161561036b576040805160e560020a62461bcd02815260206004820152600660248201527f6261642d73620000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6103748361088d565b61037f576000610382565b60015b61038b846108a0565b610396576000610399565b60015b0160ff1660011490508015156103f9576040805160e560020a62461bcd02815260206004820152600960248201527f2176616c69642d73620000000000000000000000000000000000000000000000604482015290519081900360640190fd5b428567ffffffffffffffff16116104105742610412565b845b94505b89151561046c576040805160e560020a62461bcd02815260206004820152600d60248201527f6e756c6c2d737065634861736800000000000000000000000000000000000000604482015290519081900360640190fd5b60058b018a905561047e8386866108ad565b60048c015542600a8c01556fffffffffffffffffffffffffffffffff198616156104d35760068b0180546fffffffffffffffffffffffffffffffff191670010000000000000000000000000000000088041790555b60058b01546040805191825267ffffffffffffffff808816602084015286168282015261ffff85166060830152517f40465227f0da5abf3027c0e7bd71878ca5e6eff5a697a11f204b7a9ca11c0bb89181900360800190a15050505050505050505050565b61057484843385858080601f016020809104026020016040519081016040528093929190818152602001838380828437506108e8945050505050565b5033600090815260028501602052604090205463ffffffff908116146105b7573360009081526002850160205260409020805463ffffffff191663ffffffff1790555b50505050565b6000808080808080606081808c81602002013598508c6001602002013597508c6002602002013560007f010000000000000000000000000000000000000000000000000000000000000091901a81020496508c600260200201356101000295508c6003602002013594508c600460200201356000191693508585858e8e604051602001808660ff191660ff19168152601f01856000191660001916815260200184600019166000191681526020018383808284378201915050955050505050506040516020818303038152906040529250826040518082805190602001908083835b602083106106be5780518252601f19909201916020918201910161069f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600182888b8b604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610764573d6000803e3d6000fd5b5050604051601f1901519a5050610100860490506107838e8b836109b6565b6107bf8e858c8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437506108e8945050505050565b50505050505050505050949350505050565b6000806107e1846004015461085e565b5090925090506107f28282856108ad565b846004018190555050505050565b600080836007018381548110151561081457fe5b6000918252602090912060029091020154600785018054600160a060020a039092169350908490811061084357fe5b90600052602060002090600202016001015490509250929050565b7001000000000000000000000000000000008104916801000000000000000082049190565b6180009081161490565b600061089a826009610a68565b92915050565b600061089a826005610a68565b67ffffffffffffffff9081169116680100000000000000000261ffff9290921670010000000000000000000000000000000002919091171790565b60006108f385610a77565b506001808501546000818152602087905260408120868155600160a060020a0386167401000000000000000000000000000000000000000042021893019290925582519091101561096357600081815260208681526040909120835161096192600290920191850190610b8d565b505b600185810180549091019055604080518281529051600160a060020a038516917fbcc49e18c7365801b9fbe1bc05c399f0f9d90f2b5aa8e99bc83cae7fb3879fc0919081900360200190a2949350505050565b600160a060020a038216600090815260028401602052604090205463ffffffff808316911610610a30576040805160e560020a62461bcd02815260206004820152600e60248201527f6261642d73657175656e63652d6e000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a03909116600090815260029092016020526040909120805463ffffffff90921663ffffffff19909216919091179055565b61ffff16611fff919091161490565b6000806000429250610a8c846004015461085e565b90935091505067ffffffffffffffff80831690841610801590610ac257508067ffffffffffffffff168367ffffffffffffffff16105b1515610b18576040805160e560020a62461bcd02815260206004820152600760248201527f21622d6f70656e00000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600884015474010000000000000000000000000000000000000000900460ff16156105b7576040805160e560020a62461bcd02815260206004820152600c60248201527f622d646570726563617465640000000000000000000000000000000000000000604482015290519081900360640190fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610bce57805160ff1916838001178555610bfb565b82800160010185558215610bfb579182015b82811115610bfb578251825591602001919060010190610be0565b50610c07929150610c0b565b5090565b6101b891905b80821115610c075760008155600101610c115600a165627a7a723058208ec717aff12e68e057b3cd24e49b43ccd0f20dc010c23b24a8af54d2443760ae0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/BPackedUtils.abi b/dist/2018-06-18-ix-deployment/bb_farm/BPackedUtils.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/BPackedUtils.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/BPackedUtils.bin b/dist/2018-06-18-ix-deployment/bb_farm/BPackedUtils.bin new file mode 100644 index 0000000..086e3f7 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/BPackedUtils.bin @@ -0,0 +1 @@ +604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820a5e45be91e2a0cb54e6db037ad68743424fb1078a242561e47438e860e104fba0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/BytesLib.abi b/dist/2018-06-18-ix-deployment/bb_farm/BytesLib.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/BytesLib.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/BytesLib.bin b/dist/2018-06-18-ix-deployment/bb_farm/BytesLib.bin new file mode 100644 index 0000000..1e5972a --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/BytesLib.bin @@ -0,0 +1 @@ +604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058203b89e68ec6a01ff43d1cf078b468702d631b4b04114401315bd7ffb123aa21d70029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/CanReclaimToken.abi b/dist/2018-06-18-ix-deployment/bb_farm/CanReclaimToken.abi new file mode 100644 index 0000000..fc7164e --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/CanReclaimToken.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/CanReclaimToken.bin b/dist/2018-06-18-ix-deployment/bb_farm/CanReclaimToken.bin new file mode 100644 index 0000000..8b117d2 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/CanReclaimToken.bin @@ -0,0 +1 @@ +608060405260008054600160a060020a0319163317905561039b806100256000396000f3006080604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af4035811461005b57806317ffc3201461007e5780638da5cb5b1461009f575b600080fd5b34801561006757600080fd5b5061007c600160a060020a03600435166100d0565b005b34801561008a57600080fd5b5061007c600160a060020a03600435166101aa565b3480156100ab57600080fd5b506100b4610360565b60408051600160a060020a039092168252519081900360200190f35b600054600160a060020a0316331461014957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60008054600160a060020a0316331461022457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561028557600080fd5b505af1158015610299573d6000803e3d6000fd5b505050506040513d60208110156102af57600080fd5b505160008054604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263095ea7b392604480840193602093929083900390910190829087803b15801561032557600080fd5b505af1158015610339573d6000803e3d6000fd5b505050506040513d602081101561034f57600080fd5b5051151561035c57600080fd5b5050565b600054600160a060020a0316815600a165627a7a72305820dd09a47d9acf5d741ec588aa9c4871568477eec949ff155e8a48f568f7a354be0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/CommAuctionIface.abi b/dist/2018-06-18-ix-deployment/bb_farm/CommAuctionIface.abi new file mode 100644 index 0000000..3d9682f --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/CommAuctionIface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"noteBallotDeployed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getNextPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/CommAuctionIface.bin b/dist/2018-06-18-ix-deployment/bb_farm/CommAuctionIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/bb_farm/CommunityAuctionSimple.abi b/dist/2018-06-18-ix-deployment/bb_farm/CommunityAuctionSimple.abi new file mode 100644 index 0000000..88a2d0a --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/CommunityAuctionSimple.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"d","type":"bytes32"}],"name":"noteBallotDeployed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"ballotLog","outputs":[{"name":"democHash","type":"bytes32"},{"name":"ts","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"getNextPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","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":"newPrice","type":"uint256"}],"name":"setPriceWei","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"getBallotLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"upgrades","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"commBallotPriceWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/CommunityAuctionSimple.bin b/dist/2018-06-18-ix-deployment/bb_farm/CommunityAuctionSimple.bin new file mode 100644 index 0000000..6ee6c99 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/CommunityAuctionSimple.bin @@ -0,0 +1 @@ +60806040526605ebd31295fe8060015560008054600160a060020a031916331790556104e5806100306000396000f3006080604052600436106100a35763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630ba5890a81146100a85780630d5be2df146100c25780630ee95ecf146100ff57806313af4035146101295780635341903b1461014a5780638da5cb5b1461016b578063c1e4dfda1461019c578063c98a79fb146101b4578063ca9d39ee146101d5578063d36ae26b146101f6575b600080fd5b3480156100b457600080fd5b506100c060043561020b565b005b3480156100ce57600080fd5b506100e6600160a060020a0360043516602435610275565b6040805192835260208301919091528051918290030190f35b34801561010b57600080fd5b506101176004356102b0565b60408051918252519081900360200190f35b34801561013557600080fd5b506100c0600160a060020a03600435166102b7565b34801561015657600080fd5b506100c0600160a060020a0360043516610391565b34801561017757600080fd5b506101806103f0565b60408051600160a060020a039092168252519081900360200190f35b3480156101a857600080fd5b506100c06004356103ff565b3480156101c057600080fd5b50610117600160a060020a036004351661047d565b3480156101e157600080fd5b50610180600160a060020a0360043516610498565b34801561020257600080fd5b506101176104b3565b33600090815260036020526040902054600160a060020a03161561022e57600080fd5b336000908152600260208181526040808420815180830190925294815242818301908152855460018181018855968652929094209051919092029091019081559051910155565b60026020528160005260406000208181548110151561029057fe5b600091825260209091206002909102018054600190910154909250905082565b5060015490565b600054600160a060020a0316331461033057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b33600090815260036020526040902054600160a060020a0316156103b457600080fd5b336000908152600360205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b600054600160a060020a0316331461047857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600155565b600160a060020a031660009081526002602052604090205490565b600360205260009081526040902054600160a060020a031681565b600154815600a165627a7a723058206d3e99d84b796637052df424fa3bb94e374822f2b519e720e3721ac03a1488460029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/ENSIface.abi b/dist/2018-06-18-ix-deployment/bb_farm/ENSIface.abi new file mode 100644 index 0000000..c4368c8 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/ENSIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"label","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/ENSIface.bin b/dist/2018-06-18-ix-deployment/bb_farm/ENSIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/bb_farm/ERC20Interface.abi b/dist/2018-06-18-ix-deployment/bb_farm/ERC20Interface.abi new file mode 100644 index 0000000..c34da32 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/ERC20Interface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/ERC20Interface.bin b/dist/2018-06-18-ix-deployment/bb_farm/ERC20Interface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/bb_farm/EnsOwnerProxy.abi b/dist/2018-06-18-ix-deployment/bb_farm/EnsOwnerProxy.abi new file mode 100644 index 0000000..81694d3 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/EnsOwnerProxy.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes"}],"name":"fwdToResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ens","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"returnToOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes"}],"name":"fwdToENS","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ensNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ensNode","type":"bytes32"},{"name":"_ens","type":"address"},{"name":"_resolver","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/EnsOwnerProxy.bin b/dist/2018-06-18-ix-deployment/bb_farm/EnsOwnerProxy.bin new file mode 100644 index 0000000..9a7035d --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/EnsOwnerProxy.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1916905534801561001f57600080fd5b50604051606080610e6983398101604090815281516020830151919092015160008054600160a060020a0319163390811790915561006790600164010000000061009e810204565b60059290925560068054600160a060020a03928316600160a060020a03199182161790915560078054929093169116179055610195565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561015c57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a038416179055610191565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b610cc5806101a46000396000f3006080604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166304f3bcec81146100f557806313af40351461012657806321fb98691461014957806324d7806c146101615780633b7616ff146101965780633c205b05146101b65780633f15457f146101dd578063407a5c92146101f25780634681067d146102075780634b0bddd21461021c57806354924aec1461024257806381bd66fe146102575780638da5cb5b146102785780638ecc09501461028d578063beb9df86146102a2578063d1d80fdf146102c2578063ddbcf3a1146102e3575b600080fd5b34801561010157600080fd5b5061010a6102f8565b60408051600160a060020a039092168252519081900360200190f35b34801561013257600080fd5b50610147600160a060020a0360043516610307565b005b34801561015557600080fd5b5061010a6004356103b8565b34801561016d57600080fd5b50610182600160a060020a03600435166103e4565b604080519115158252519081900360200190f35b3480156101a257600080fd5b506101476004803560248101910135610411565b3480156101c257600080fd5b506101cb6104f2565b60408051918252519081900360200190f35b3480156101e957600080fd5b5061010a6104f8565b3480156101fe57600080fd5b506101cb610507565b34801561021357600080fd5b5061014761050d565b34801561022857600080fd5b50610147600160a060020a036004351660243515156105b5565b34801561024e57600080fd5b5061018261071c565b34801561026357600080fd5b50610147600160a060020a0360043516610725565b34801561028457600080fd5b5061010a61085b565b34801561029957600080fd5b5061014761086a565b3480156102ae57600080fd5b506101476004803560248101910135610944565b3480156102ce57600080fd5b50610147600160a060020a0360043516610a21565b3480156102ef57600080fd5b506101cb610ae4565b600754600160a060020a031681565b600054600160a060020a03163314610357576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610c7a833981519152604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60006004828154811015156103c957fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b600054600160a060020a03163314610461576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610c7a833981519152604482015290519081900360640190fd5b600754604051600160a060020a039091169083908390808383808284378201915050925050506000604051808303816000865af191505015156104ee576040805160e560020a62461bcd02815260206004820152601960248201527f667764696e6720746f207265736f6c766572206661696c656400000000000000604482015290519081900360640190fd5b5050565b60025481565b600654600160a060020a031681565b60045490565b600054600160a060020a0316331461055d576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610c7a833981519152604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615610610576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b610619336103e4565b151561066f576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600160a060020a03821633148015906106965750600054600160a060020a03838116911614155b1515610712576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b6104ee8282610aea565b60035460ff1681565b60035460ff1615610780576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b610789336103e4565b15156107df576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331415610842576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b61084d336000610aea565b610858816001610aea565b50565b600054600160a060020a031681565b600054600160a060020a031633146108ba576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610c7a833981519152604482015290519081900360640190fd5b60065460055460008054604080517f5b0fc9c30000000000000000000000000000000000000000000000000000000081526004810194909452600160a060020a03918216602485015251931692635b0fc9c392604480820193929182900301818387803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b50505050565b600054600160a060020a03163314610994576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610c7a833981519152604482015290519081900360640190fd5b600654604051600160a060020a039091169083908390808383808284378201915050925050506000604051808303816000865af191505015156104ee576040805160e560020a62461bcd02815260206004820152601460248201527f667764696e6720746f20656e73206661696c6564000000000000000000000000604482015290519081900360640190fd5b60035460ff1615610a7c576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b610a85336103e4565b1515610adb576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b61085881610bed565b60055481565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff19168215801591909117909155610bb557604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790556104ee565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25050565b600754600554604080517fd5fa2b000000000000000000000000000000000000000000000000000000000081526004810192909252600160a060020a038481166024840152905192169163d5fa2b009160448082019260009290919082900301818387803b158015610c5e57600080fd5b505af1158015610c72573d6000803e3d6000fd5b505050505056006f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000a165627a7a72305820ffa854a09d1a629686ed4dd927f42095c83c6ccdad8d57286e2a2b9a8f9e60e90029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/IxBackendIface.abi b/dist/2018-06-18-ix-deployment/bb_farm/IxBackendIface.abi new file mode 100644 index 0000000..a54edb9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/IxBackendIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCategoriesN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"dDeprecateCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"erc20","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dAdd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"getGDemoc","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"enabled","type":"bool"}],"name":"dSetCommunityBallotsEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"getDCategory","outputs":[{"name":"deprecated","type":"bool"},{"name":"name","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"categoryName","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"name":"dAddCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"setDNoEditors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"prefix","type":"bytes13"}],"name":"getDHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDCountedBasicBallotID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCommBallotsEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDEditorArbitraryData","outputs":[{"name":"value","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dDisableErc20OwnerClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20OwnerClaimEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"ballotId","type":"uint256"},{"name":"packed","type":"uint256"},{"name":"countTowardsLimit","type":"bool"}],"name":"dAddBallot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetEditorArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getGDemocsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"erc20","type":"address"}],"name":"getGErc20ToDemocs","outputs":[{"name":"democHashes","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"defaultErc20","type":"address"},{"name":"initOwner","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dInit","outputs":[{"name":"democHash","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDInfo","outputs":[{"name":"erc20","type":"address"},{"name":"owner","type":"address"},{"name":"nBallots","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"emergencySetDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDBallotID","outputs":[{"name":"ballotId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"}],"name":"isDEditor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newErc20","type":"address"}],"name":"setDErc20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCountedBasicBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"},{"name":"canEdit","type":"bool"}],"name":"setDEditor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDArbitraryData","outputs":[{"name":"value","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwnerFromClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/IxBackendIface.bin b/dist/2018-06-18-ix-deployment/bb_farm/IxBackendIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/bb_farm/IxIface.abi b/dist/2018-06-18-ix-deployment/bb_farm/IxIface.abi new file mode 100644 index 0000000..306cc81 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/IxIface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"categoryId","type":"uint256"}],"name":"dDeprecateCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"bbFarmId","type":"uint8"}],"name":"getBBFarm","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"bbFarmId","type":"uint8"},{"name":"_bbFarm","type":"address"}],"name":"deprecateBBFarm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"enabled","type":"bool"}],"name":"dSetCommunityBallotsEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"categoryName","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"name":"dAddCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"specHash","type":"bytes32"},{"name":"extraData","type":"bytes32"},{"name":"packed","type":"uint256"}],"name":"dDeployBallot","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"setDNoEditors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"bbFarm","type":"address"}],"name":"addBBFarm","outputs":[{"name":"bbFarmId","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBackend","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dDisableErc20OwnerClaim","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":"democHash","type":"bytes32"}],"name":"dDowngradeToBasic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dOwnerErc20Claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"toSet","type":"bytes32"},{"name":"newSC","type":"address"}],"name":"setABackend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getUpgradePointer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"specHash","type":"bytes32"},{"name":"extraData","type":"bytes32"},{"name":"packedTimes","type":"uint128"}],"name":"dDeployCommunityBallot","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getPayments","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"bbNamespace","type":"bytes4"}],"name":"getBBFarmID","outputs":[{"name":"bbFarmId","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"ballotId","type":"uint256"},{"name":"packed","type":"uint256"}],"name":"dAddBallot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dUpgradeToPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"defualtErc20","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dInit","outputs":[{"name":"","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getCommAuction","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newErc20","type":"address"}],"name":"setDErc20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"},{"name":"canEdit","type":"bool"}],"name":"setDEditor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"valAndRemainder","type":"uint256[2]"}],"name":"PaymentMade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"AddedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"setWhat","type":"bytes32"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SetBackend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"DeprecatedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"CommunityBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"packed","type":"uint256"}],"name":"ManuallyAddedBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/IxIface.bin b/dist/2018-06-18-ix-deployment/bb_farm/IxIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/bb_farm/IxLib.abi b/dist/2018-06-18-ix-deployment/bb_farm/IxLib.abi new file mode 100644 index 0000000..1a97fa9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/IxLib.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"ix","type":"IxIface"},{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDArbitraryData","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/IxLib.bin b/dist/2018-06-18-ix-deployment/bb_farm/IxLib.bin new file mode 100644 index 0000000..4f2b41d --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/IxLib.bin @@ -0,0 +1 @@ +6102e2610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600436106100575763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166319af6927811461005c575b600080fd5b61008d6004803573ffffffffffffffffffffffffffffffffffffffff16906024803591604435918201910135610102565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100c75781810151838201526020016100af565b50505050905090810190601f1680156100f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60608473ffffffffffffffffffffffffffffffffffffffff1663594eda646040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561016857600080fd5b505af115801561017c573d6000803e3d6000fd5b505050506040513d602081101561019257600080fd5b5051604080517ffa3ed04d00000000000000000000000000000000000000000000000000000000815260048101878152602482019283526044820186905273ffffffffffffffffffffffffffffffffffffffff9093169263fa3ed04d9288928892889290916064018484808284378201915050945050505050600060405180830381600087803b15801561022557600080fd5b505af1158015610239573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561026257600080fd5b81019080805164010000000081111561027a57600080fd5b8201602081018481111561028d57600080fd5b81516401000000008111828201871017156102a757600080fd5b509099985050505050505050505600a165627a7a72305820052420f2c05b63be2287c147692eecf80a23d7b7b76fce5b59d65cdfd00ed1480029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/IxPaymentsIface.abi b/dist/2018-06-18-ix-deployment/bb_farm/IxPaymentsIface.abi new file mode 100644 index 0000000..e0e5f09 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/IxPaymentsIface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"payForDemocracy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"additionalSeconds","type":"uint256"},{"name":"ref","type":"bytes32"}],"name":"giveTimeToDemoc","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setBasicCentsPricePer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDenyPremium","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"emergencySetOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"c","type":"uint256"}],"name":"centsToWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"isPremiumDenied","type":"bool"}],"name":"setDenyPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"accountInGoodStanding","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"}],"name":"setMinorEditsAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"downgradeToBasic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicBallotsPer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMinWeiForDInit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"}],"name":"setPayTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getFreeExtension","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPaymentLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"w","type":"uint256"}],"name":"weiToCents","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getPremiumStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumMultiplier","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getWeiPerCent","outputs":[{"name":"weiPerCent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"amount","type":"uint256"}],"name":"setBasicBallotsPer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicExtraBallotFeeWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"hasFreeExt","type":"bool"}],"name":"setFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"upgradeToPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"uint256"}],"name":"setWeiPerCent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getAccount","outputs":[{"name":"isPremium","type":"bool"},{"name":"lastPaymentTs","type":"uint256"},{"name":"paidUpTill","type":"uint256"},{"name":"hasFreeExtension","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUsdEthExchangeRate","outputs":[{"name":"centsPerEth","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint8"}],"name":"setPremiumMultiplier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getSecondsRemaining","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPayTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setMinWeiForDInit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"amount","type":"uint256"}],"name":"weiBuysHowManySeconds","outputs":[{"name":"secs","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getPaymentLog","outputs":[{"name":"_external","type":"bool"},{"name":"_democHash","type":"bytes32"},{"name":"_seconds","type":"uint256"},{"name":"_ethValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"doFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/IxPaymentsIface.bin b/dist/2018-06-18-ix-deployment/bb_farm/IxPaymentsIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/bb_farm/PublicResolver.abi b/dist/2018-06-18-ix-deployment/bb_farm/PublicResolver.abi new file mode 100644 index 0000000..0fdbafe --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/PublicResolver.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"key","type":"string"},{"name":"value","type":"string"}],"name":"setText","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"},{"name":"contentTypes","type":"uint256"}],"name":"ABI","outputs":[{"name":"contentType","type":"uint256"},{"name":"data","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"x","type":"bytes32"},{"name":"y","type":"bytes32"}],"name":"setPubkey","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"content","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"addr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"},{"name":"key","type":"string"}],"name":"text","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"contentType","type":"uint256"},{"name":"data","type":"bytes"}],"name":"setABI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"hash","type":"bytes32"}],"name":"setContent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"pubkey","outputs":[{"name":"x","type":"bytes32"},{"name":"y","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"addr","type":"address"}],"name":"setAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"ensAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"a","type":"address"}],"name":"AddrChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"hash","type":"bytes32"}],"name":"ContentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"name","type":"string"}],"name":"NameChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"contentType","type":"uint256"}],"name":"ABIChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"x","type":"bytes32"},{"indexed":false,"name":"y","type":"bytes32"}],"name":"PubkeyChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"indexedKey","type":"string"},{"indexed":false,"name":"key","type":"string"}],"name":"TextChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/PublicResolver.bin b/dist/2018-06-18-ix-deployment/bb_farm/PublicResolver.bin new file mode 100644 index 0000000..90e8dde --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/PublicResolver.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506040516020806111f3833981016040525160008054600160a060020a03909216600160a060020a03199092169190911790556111a1806100526000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100c957806310f13a8c146100ff5780632203ab561461019d57806329cd62ea146102375780632dff6941146102555780633b3b57de1461027f57806359d1d43c146102b3578063623195b014610386578063691f3431146103e657806377372213146103fe578063c3d014d61461045c578063c869023314610477578063d5fa2b00146104a8575b600080fd5b3480156100d557600080fd5b506100eb600160e060020a0319600435166104cc565b604080519115158252519081900360200190f35b34801561010b57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261019b95833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106399650505050505050565b005b3480156101a957600080fd5b506101b8600435602435610863565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156101fb5781810151838201526020016101e3565b50505050905090810190601f1680156102285780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561024357600080fd5b5061019b60043560243560443561096f565b34801561026157600080fd5b5061026d600435610a73565b60408051918252519081900360200190f35b34801561028b57600080fd5b50610297600435610a89565b60408051600160a060020a039092168252519081900360200190f35b3480156102bf57600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610311958335953695604494919390910191908190840183828082843750949750610aa49650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034b578181015183820152602001610333565b50505050905090810190601f1680156103785780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561039257600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261019b948235946024803595369594606494920191908190840183828082843750949750610bad9650505050505050565b3480156103f257600080fd5b50610311600435610cb2565b34801561040a57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261019b958335953695604494919390910191908190840183828082843750949750610d569650505050505050565b34801561046857600080fd5b5061019b600435602435610eb0565b34801561048357600080fd5b5061048f600435610f95565b6040805192835260208301919091528051918290030190f35b3480156104b457600080fd5b5061019b600435600160a060020a0360243516610fb2565b6000600160e060020a031982167f3b3b57de00000000000000000000000000000000000000000000000000000000148061052f5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105635750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806105975750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806105cb5750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b806105ff5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106335750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6000805460408051600080516020611156833981519152815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561069057600080fd5b505af11580156106a4573d6000803e3d6000fd5b505050506040513d60208110156106ba57600080fd5b5051600160a060020a0316146106cf57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107165780518252601f1990920191602091820191016106f7565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161075795919491909101925090506110ba565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156107c15781810151838201526020016107a9565b50505050905090810190601f1680156107ee5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610821578181015183820152602001610809565b50505050905090810190601f16801561084e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b83831161096257828416158015906108b15750600083815260068201602052604081205460026000196101006001841615020190911604115b1561095757600083815260068201602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452909183018282801561094b5780601f106109205761010080835404028352916020019161094b565b820191906000526020600020905b81548152906001019060200180831161092e57829003601f168201915b50505050509150610967565b600290920291610878565b600092505b509250929050565b6000805460408051600080516020611156833981519152815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156109c657600080fd5b505af11580156109da573d6000803e3d6000fd5b505050506040513d60208110156109f057600080fd5b5051600160a060020a031614610a0557600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610aec5780518252601f199092019160209182019101610acd565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610ba05780601f10610b7557610100808354040283529160200191610ba0565b820191906000526020600020905b815481529060010190602001808311610b8357829003601f168201915b5050505050905092915050565b6000805460408051600080516020611156833981519152815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610c0457600080fd5b505af1158015610c18573d6000803e3d6000fd5b505050506040513d6020811015610c2e57600080fd5b5051600160a060020a031614610c4357600080fd5b6000198301831615610c5457600080fd5b600084815260016020908152604080832086845260060182529091208351610c7e928501906110ba565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610d4a5780601f10610d1f57610100808354040283529160200191610d4a565b820191906000526020600020905b815481529060010190602001808311610d2d57829003601f168201915b50505050509050919050565b6000805460408051600080516020611156833981519152815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610dad57600080fd5b505af1158015610dc1573d6000803e3d6000fd5b505050506040513d6020811015610dd757600080fd5b5051600160a060020a031614610dec57600080fd5b60008381526001602090815260409091208351610e11926002909201918501906110ba565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610e71578181015183820152602001610e59565b50505050905090810190601f168015610e9e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b6000805460408051600080516020611156833981519152815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610f0757600080fd5b505af1158015610f1b573d6000803e3d6000fd5b505050506040513d6020811015610f3157600080fd5b5051600160a060020a031614610f4657600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b6000805460408051600080516020611156833981519152815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561100957600080fd5b505af115801561101d573d6000803e3d6000fd5b505050506040513d602081101561103357600080fd5b5051600160a060020a03161461104857600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106110fb57805160ff1916838001178555611128565b82800160010185558215611128579182015b8281111561112857825182559160200191906001019061110d565b50611134929150611138565b5090565b61115291905b80821115611134576000815560010161113e565b90560002571be300000000000000000000000000000000000000000000000000000000a165627a7a723058200e2546791aa2d3350023896048ca773232980357b146ff2b8d44c0badbf6a43c0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/SVBallotConsts.abi b/dist/2018-06-18-ix-deployment/bb_farm/SVBallotConsts.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/SVBallotConsts.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/SVBallotConsts.bin b/dist/2018-06-18-ix-deployment/bb_farm/SVBallotConsts.bin new file mode 100644 index 0000000..d1ac5e1 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/SVBallotConsts.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820a8a5365fc698c4019e5bfcb9bbc308d284683001088d77f1dc06cf11cd32d35e0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/SVIndex.abi b/dist/2018-06-18-ix-deployment/bb_farm/SVIndex.abi new file mode 100644 index 0000000..9312f61 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/SVIndex.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"dDeprecateCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"bbFarmId","type":"uint8"}],"name":"getBBFarm","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"bbFarmId","type":"uint8"},{"name":"_bbFarm","type":"address"}],"name":"deprecateBBFarm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"enabled","type":"bool"}],"name":"dSetCommunityBallotsEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catName","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"name":"dAddCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"specHash","type":"bytes32"},{"name":"extraData","type":"bytes32"},{"name":"packed","type":"uint256"}],"name":"dDeployBallot","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"nextSC","type":"address"}],"name":"doUpgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"setDNoEditors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"bbFarm","type":"address"}],"name":"addBBFarm","outputs":[{"name":"bbFarmId","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBackend","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ensOwnerPx","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dDisableErc20OwnerClaim","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":"democHash","type":"bytes32"}],"name":"dDowngradeToBasic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dOwnerErc20Claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"toSet","type":"bytes32"},{"name":"newSC","type":"address"}],"name":"setABackend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getUpgradePointer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"specHash","type":"bytes32"},{"name":"extraData","type":"bytes32"},{"name":"packedTimes","type":"uint128"}],"name":"dDeployCommunityBallot","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getPayments","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"bbNamespace","type":"bytes4"}],"name":"getBBFarmID","outputs":[{"name":"bbFarmId","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"ballotId","type":"uint256"},{"name":"packed","type":"uint256"}],"name":"dAddBallot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dUpgradeToPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"defaultErc20","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dInit","outputs":[{"name":"","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getCommAuction","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newErc20","type":"address"}],"name":"setDErc20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"},{"name":"canEdit","type":"bool"}],"name":"setDEditor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_b","type":"address"},{"name":"_pay","type":"address"},{"name":"_ensOwnerPx","type":"address"},{"name":"_bbFarm0","type":"address"},{"name":"_commAuction","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"valAndRemainder","type":"uint256[2]"}],"name":"PaymentMade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"AddedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"setWhat","type":"bytes32"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SetBackend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"DeprecatedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"CommunityBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"packed","type":"uint256"}],"name":"ManuallyAddedBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/SVIndex.bin b/dist/2018-06-18-ix-deployment/bb_farm/SVIndex.bin new file mode 100644 index 0000000..f4c73b1 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/SVIndex.bin @@ -0,0 +1 @@ +608060405260018054600160a060020a03191690553480156200002157600080fd5b5060405160a08062003b608339810160409081528151602083015191830151606084015160809094015160008054600160a060020a03191633908117909155929491928015156200006e57fe5b60028054600160a060020a0319908116600160a060020a039384161790915560038054821688841617905560048054821687841617905560058054909116918516919091179055620000cb600083640100000000620000f7810204565b5060078054600160a060020a031916600160a060020a0392909216919091179055506200023692505050565b60065460009061010081106200016e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f746f6f2d6d616e792d6661726d73000000000000000000000000000000000000604482015290519081900360640190fd5b60068054600181019091557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f018054600160a060020a031916600160a060020a0385161790557fffffffff000000000000000000000000000000000000000000000000000000008416600090815260086020908152604091829020805460ff191660ff85169081179091558251908152915192935083927f8ea210065077b12c19240bd91ee2acbce0fd74690be559681ca116194e1ec98a9281900390910190a15092915050565b61391a80620002466000396000f30060806040526004361061017c5763ffffffff60e060020a60003504166306ed69b981146101815780630d8e6e2c1461019e5780631185a6b9146101c557806313af4035146101fc57806317ffc3201461021d5780632e1d45c31461023e578063336481d41461026557806334ec96bf1461028257806339ade9aa146102a55780633f8416fb146102b95780634bb32e8c146102da5780634da2317f146102f25780635540a03c14610307578063594eda641461033e5780636458de1e1461035357806371c7e923146103685780638da5cb5b14610380578063925d3ec81461039557806393b557db146103ad57806395311142146103dd578063a5adb226146103f5578063a76f354314610419578063a942bf051461042e578063d56bd14214610454578063dd89daa514610469578063e011171d1461048b578063e42a8bc9146104af578063e9aeb932146104cd578063ebaf0e74146104e5578063ee880879146104fe578063f5f5c62214610513578063f7b822db14610537575b600080fd5b34801561018d57600080fd5b5061019c600435602435610560565b005b3480156101aa57600080fd5b506101b36106c6565b60408051918252519081900360200190f35b3480156101d157600080fd5b506101e060ff600435166106cb565b60408051600160a060020a039092168252519081900360200190f35b34801561020857600080fd5b5061019c600160a060020a03600435166106fa565b34801561022957600080fd5b5061019c600160a060020a03600435166107ab565b34801561024a57600080fd5b5061019c60ff60043516600160a060020a0360243516610938565b34801561027157600080fd5b5061019c6004356024351515610a2e565b34801561028e57600080fd5b5061019c6004356024356044351515606435610b69565b61019c600435602435604435606435610ce0565b3480156102c557600080fd5b5061019c600160a060020a0360043516610dd4565b3480156102e657600080fd5b5061019c600435611172565b3480156102fe57600080fd5b5061019c6112b9565b34801561031357600080fd5b50610328600160a060020a036004351661131b565b6040805160ff9092168252519081900360200190f35b34801561034a57600080fd5b506101e061156e565b34801561035f57600080fd5b506101e061157d565b34801561037457600080fd5b5061019c60043561158c565b34801561038c57600080fd5b506101e06116bf565b3480156103a157600080fd5b5061019c6004356116ce565b3480156103b957600080fd5b5061019c6004803590602480358082019290810135916044359081019101356117ff565b3480156103e957600080fd5b5061019c600435611a94565b34801561040157600080fd5b5061019c600435600160a060020a0360243516611ddd565b34801561042557600080fd5b506101e0611fbf565b61019c6004356024356044356fffffffffffffffffffffffffffffffff60643516611fce565b34801561046057600080fd5b506101e06123ce565b34801561047557600080fd5b50610328600160e060020a0319600435166123dd565b34801561049757600080fd5b5061019c600435600160a060020a03602435166123fc565b3480156104bb57600080fd5b5061019c600435602435604435612537565b3480156104d957600080fd5b5061019c6004356125d9565b6101b3600160a060020a0360043516602435151561270a565b34801561050a57600080fd5b506101e061292d565b34801561051f57600080fd5b5061019c600435600160a060020a036024351661293c565b34801561054357600080fd5b5061019c600435600160a060020a03602435166044351515612a77565b6003546040805160008051602061384f83398151915281526004810185905233602482015290518492600160a060020a03169163efbe584d9160448083019260209291908290030181600087803b1580156105ba57600080fd5b505af11580156105ce573d6000803e3d6000fd5b505050506040513d60208110156105e457600080fd5b5051151561063c576040805160e560020a62461bcd02815260206004820152600960248201527f21642d656469746f720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600354604080517f06ed69b900000000000000000000000000000000000000000000000000000000815260048101869052602481018590529051600160a060020a03909216916306ed69b99160448082019260009290919082900301818387803b1580156106a957600080fd5b505af11580156106bd573d6000803e3d6000fd5b50505050505050565b600290565b600060068260ff168154811015156106df57fe5b600091825260209091200154600160a060020a031692915050565b600054600160a060020a0316331461074a576040805160e560020a62461bcd028152602060048201526015602482015260008051602061388f833981519152604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60008054600160a060020a031633146107fc576040805160e560020a62461bcd028152602060048201526015602482015260008051602061388f833981519152604482015290519081900360640190fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561085d57600080fd5b505af1158015610871573d6000803e3d6000fd5b505050506040513d602081101561088757600080fd5b505160008054604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263095ea7b392604480840193602093929083900390910190829087803b1580156108fd57600080fd5b505af1158015610911573d6000803e3d6000fd5b505050506040513d602081101561092757600080fd5b5051151561093457600080fd5b5050565b600054600160a060020a03163314610988576040805160e560020a62461bcd028152602060048201526015602482015260008051602061388f833981519152604482015290519081900360640190fd5b600160a060020a038116151561099d57600080fd5b80600160a060020a031660068360ff168154811015156109b957fe5b600091825260209091200154600160a060020a0316146109d857600080fd5b60ff8216600081815260096020908152604091829020805460ff19166001179055815192835290517f8e83bd35628184fa0608ea0dfe3901aeb6bcdc16c997d4d7cc1ee71becf0458d9281900390910190a15050565b600354604080516000805160206138cf83398151915281526004810185905290518492600160a060020a031691636670bdd89160248083019260209291908290030181600087803b158015610a8257600080fd5b505af1158015610a96573d6000803e3d6000fd5b505050506040513d6020811015610aac57600080fd5b5051600160a060020a03163314610afb576040805160e560020a62461bcd028152602060048201526008602482015260008051602061386f833981519152604482015290519081900360640190fd5b600354604080517f336481d40000000000000000000000000000000000000000000000000000000081526004810186905284151560248201529051600160a060020a039092169163336481d49160448082019260009290919082900301818387803b1580156106a957600080fd5b6003546040805160008051602061384f83398151915281526004810187905233602482015290518692600160a060020a03169163efbe584d9160448083019260209291908290030181600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050506040513d6020811015610bed57600080fd5b50511515610c45576040805160e560020a62461bcd02815260206004820152600960248201527f21642d656469746f720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600354604080517f34ec96bf00000000000000000000000000000000000000000000000000000000815260048101889052602481018790528515156044820152606481018590529051600160a060020a03909216916334ec96bf9160848082019260009290919082900301818387803b158015610cc157600080fd5b505af1158015610cd5573d6000803e3d6000fd5b505050505050505050565b6003546040805160008051602061384f83398151915281526004810187905233602482015290518692600160a060020a03169163efbe584d9160448083019260209291908290030181600087803b158015610d3a57600080fd5b505af1158015610d4e573d6000803e3d6000fd5b505050506040513d6020811015610d6457600080fd5b50511515610dbc576040805160e560020a62461bcd02815260206004820152600960248201527f21642d656469746f720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610dcc8585858560016000612bd8565b505050505050565b60008054600160a060020a03163314610e25576040805160e560020a62461bcd028152602060048201526015602482015260008051602061388f833981519152604482015290519081900360640190fd5b600154600160a060020a031615610e86576040805160e560020a62461bcd02815260206004820152601b60248201527f7570677261646520706f696e746572206973206e6f6e2d7a65726f0000000000604482015290519081900360640190fd5b610e8f82612e34565b600354604080516000805160206138af8339815191528152600160a060020a03858116600483015291519190921691635341903b91602480830192600092919082900301818387803b158015610ee457600080fd5b505af1158015610ef8573d6000803e3d6000fd5b505060048054604080516000805160206138af8339815191528152600160a060020a03888116948201949094529051929091169350635341903b925060248082019260009290919082900301818387803b158015610f5557600080fd5b505af1158015610f69573d6000803e3d6000fd5b5050600554604080517fd1d80fdf000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152915191909216935063d1d80fdf9250602480830192600092919082900301818387803b158015610fd457600080fd5b505af1158015610fe8573d6000803e3d6000fd5b5050600554604080517f81bd66fe000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921693506381bd66fe9250602480830192600092919082900301818387803b15801561105357600080fd5b505af1158015611067573d6000803e3d6000fd5b5050600754604080516000805160206138af8339815191528152600160a060020a0387811660048301529151919092169350635341903b9250602480830192600092919082900301818387803b1580156110c057600080fd5b505af11580156110d4573d6000803e3d6000fd5b50505050600090505b6006548110156109345760068054829081106110f557fe5b6000918252602082200154604080516000805160206138af8339815191528152600160a060020a03868116600483015291519190921692635341903b926024808201939182900301818387803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b5050600190920191506110dd9050565b600354604080516000805160206138cf83398151915281526004810184905290518392600160a060020a031691636670bdd89160248083019260209291908290030181600087803b1580156111c657600080fd5b505af11580156111da573d6000803e3d6000fd5b505050506040513d60208110156111f057600080fd5b5051600160a060020a0316331461123f576040805160e560020a62461bcd028152602060048201526008602482015260008051602061386f833981519152604482015290519081900360640190fd5b600354604080517f4bb32e8c000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a0390921691634bb32e8c9160248082019260009290919082900301818387803b1580156112a557600080fd5b505af1158015610dcc573d6000803e3d6000fd5b6000806112c4612e63565b91505030316112d38282612ee9565b60408051600160a060020a03841681526020810183905281517fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd2562472929181900390910190a15050565b600080548190600160a060020a0316331461136e576040805160e560020a62461bcd028152602060048201526015602482015260008051602061388f833981519152604482015290519081900360640190fd5b82600160a060020a03166327ac4b706040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506040513d60208110156113d657600080fd5b50519050600160e060020a03198116151561143b576040805160e560020a62461bcd02815260206004820152601160248201527f62622d6661726d2d6e616d657370616365000000000000000000000000000000604482015290519081900360640190fd5b600160e060020a0319811660009081526008602052604090205460ff16158015611507575060068054600090811061146f57fe5b9060005260206000200160009054906101000a9004600160a060020a0316600160a060020a03166327ac4b706040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156114ca57600080fd5b505af11580156114de573d6000803e3d6000fd5b505050506040513d60208110156114f457600080fd5b5051600160e060020a0319828116911614155b151561155d576040805160e560020a62461bcd02815260206004820152601160248201527f62622d6e616d6573706163652d75736564000000000000000000000000000000604482015290519081900360640190fd5b6115678184612f04565b9392505050565b600354600160a060020a031690565b600554600160a060020a031681565b600354604080516000805160206138cf83398151915281526004810184905290518392600160a060020a031691636670bdd89160248083019260209291908290030181600087803b1580156115e057600080fd5b505af11580156115f4573d6000803e3d6000fd5b505050506040513d602081101561160a57600080fd5b5051600160a060020a03163314611659576040805160e560020a62461bcd028152602060048201526008602482015260008051602061386f833981519152604482015290519081900360640190fd5b600354604080517f71c7e923000000000000000000000000000000000000000000000000000000008152600481018590529051600160a060020a03909216916371c7e9239160248082019260009290919082900301818387803b1580156112a557600080fd5b600054600160a060020a031681565b600354604080516000805160206138cf83398151915281526004810184905290518392600160a060020a031691636670bdd89160248083019260209291908290030181600087803b15801561172257600080fd5b505af1158015611736573d6000803e3d6000fd5b505050506040513d602081101561174c57600080fd5b5051600160a060020a0316331461179b576040805160e560020a62461bcd028152602060048201526008602482015260008051602061386f833981519152604482015290519081900360640190fd5b60048054604080517f3e06be2000000000000000000000000000000000000000000000000000000000815292830185905251600160a060020a0390911691633e06be2091602480830192600092919082900301818387803b1580156112a557600080fd5b600354604080516000805160206138cf8339815191528152600481018890529051600160a060020a0390921691636670bdd8916024808201926020929091908290030181600087803b15801561185457600080fd5b505af1158015611868573d6000803e3d6000fd5b505050506040513d602081101561187e57600080fd5b5051600160a060020a0316331415611957576003546040517f93b557db0000000000000000000000000000000000000000000000000000000081526004810187815260606024830190815260648301879052600160a060020a03909316926393b557db928992899289928992899290916044810190608401878780828437909101848103835285815260200190508585808284378201915050975050505050505050600060405180830381600087803b15801561193a57600080fd5b505af115801561194e573d6000803e3d6000fd5b50505050611a8d565b6003546040805160008051602061384f8339815191528152600481018890523360248201529051600160a060020a039092169163efbe584d916044808201926020929091908290030181600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050506040513d60208110156119dc57600080fd5b50511561017c576003546040517fa5c589440000000000000000000000000000000000000000000000000000000081526004810187815260606024830190815260648301879052600160a060020a039093169263a5c58944928992899289928992899290916044810190608401878780828437909101848103835285815260200190508585808284378201915050975050505050505050600060405180830381600087803b15801561193a57600080fd5b5050505050565b600354604080517f565707a8000000000000000000000000000000000000000000000000000000008152600481018490529051600092600160a060020a03169163565707a891602480830192602092919082900301818787803b158015611afa57600080fd5b505af1158015611b0e573d6000803e3d6000fd5b505050506040513d6020811015611b2457600080fd5b5051604080517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529051919250600160a060020a03831691638da5cb5b91610bb89160048083019260009291908290030181838887f1935050505015611c575780600160a060020a0316638da5cb5b610bb86040518263ffffffff1660e060020a028152600401602060405180830381600088803b158015611bc657600080fd5b5087f1158015611bda573d6000803e3d6000fd5b50505050506040513d6020811015611bf157600080fd5b5051600160a060020a03163314611c52576040805160e560020a62461bcd02815260206004820152600c60248201527f2165726332302d6f776e65720000000000000000000000000000000000000000604482015290519081900360640190fd5b611d71565b80600160a060020a0316610bb863f77c479160e060020a0260e060020a9004906040518263ffffffff1660e060020a02815260040160006040518083038160008887f193505050501561017c5780600160a060020a031663f77c4791610bb86040518263ffffffff1660e060020a028152600401602060405180830381600088803b158015611ce557600080fd5b5087f1158015611cf9573d6000803e3d6000fd5b50505050506040513d6020811015611d1057600080fd5b5051600160a060020a03163314611c52576040805160e560020a62461bcd02815260206004820152601160248201527f2165726332302d636f6e74726f6c6c6572000000000000000000000000000000604482015290519081900360640190fd5b600354604080517ffb2e3240000000000000000000000000000000000000000000000000000000008152600481018590523360248201529051600160a060020a039092169163fb2e32409160448082019260009290919082900301818387803b1580156112a557600080fd5b600054600160a060020a03163314611e2d576040805160e560020a62461bcd028152602060048201526015602482015260008051602061388f833981519152604482015290519081900360640190fd5b60408051838152600160a060020a038316602082015281517fc60d12c3d3da7d885eec112ff6fb3ef9a77dcaa4727fe822eb8e9bcd881c0f1b929181900390910190a17f7061796d656e7473000000000000000000000000000000000000000000000000821415611ec5576004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055610934565b7f6261636b656e6400000000000000000000000000000000000000000000000000821415611f1a576003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055610934565b7f636f6d6d41756374696f6e000000000000000000000000000000000000000000821415611f6f576007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055610934565b6040805160e560020a62461bcd02815260206004820152600360248201527f3430340000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600154600160a060020a031690565b600754604080517f0ee95ecf000000000000000000000000000000000000000000000000000000008152600481018790529051600092839283928392600160a060020a031691630ee95ecf91602480830192602092919082900301818787803b15801561203a57600080fd5b505af115801561204e573d6000803e3d6000fd5b505050506040513d602081101561206457600080fd5b50519350348411156120c0576040805160e560020a62461bcd02815260206004820152600760248201527f2163622d66656500000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b612148600460009054906101000a9004600160a060020a0316600160a060020a031663f1efb76a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561211657600080fd5b505af115801561212a573d6000803e3d6000fd5b505050506040513d602081101561214057600080fd5b505185612ee9565b61215433853403612ee9565b600354604080517f6627ace5000000000000000000000000000000000000000000000000000000008152600481018b90529051600160a060020a0390921691636627ace5916024808201926020929091908290030181600087803b1580156121bb57600080fd5b505af11580156121cf573d6000803e3d6000fd5b505050506040513d60208110156121e557600080fd5b505180612280575060048054604080517f33af060f0000000000000000000000000000000000000000000000000000000081529283018b905251600160a060020a03909116916333af060f9160248083019260209291908290030181600087803b15801561225257600080fd5b505af1158015612266573d6000803e3d6000fd5b505050506040513d602081101561227c57600080fd5b5051155b92508215156122d9576040805160e560020a62461bcd02815260206004820152600b60248201527f2163622d656e61626c6564000000000000000000000000000000000000000000604482015290519081900360640190fd5b6122f66fffffffffffffffffffffffffffffffff86166005613020565b91506123088888888560006001612bd8565b600754604080517f0ba5890a000000000000000000000000000000000000000000000000000000008152600481018c90529051929350600160a060020a0390911691630ba5890a9160248082019260009290919082900301818387803b15801561237157600080fd5b505af1158015612385573d6000803e3d6000fd5b5050604080518b81526020810185905281517f5a0113260875225c161819294ea7f36e73226e046f98fac0ce9ea2af3ca6f0289450908190039091019150a15050505050505050565b600454600160a060020a031690565b600160e060020a03191660009081526008602052604090205460ff1690565b600354604080516000805160206138cf83398151915281526004810185905290518492600160a060020a031691636670bdd89160248083019260209291908290030181600087803b15801561245057600080fd5b505af1158015612464573d6000803e3d6000fd5b505050506040513d602081101561247a57600080fd5b5051600160a060020a031633146124c9576040805160e560020a62461bcd028152602060048201526008602482015260008051602061386f833981519152604482015290519081900360640190fd5b600354604080517fe011171d00000000000000000000000000000000000000000000000000000000815260048101869052600160a060020a0385811660248301529151919092169163e011171d91604480830192600092919082900301818387803b1580156106a957600080fd5b600054600160a060020a03163314612587576040805160e560020a62461bcd028152602060048201526015602482015260008051602061388f833981519152604482015290519081900360640190fd5b6125948383836000613053565b604080518481526020810184905280820183905290517f17b6c47e4b3b8370c0983be04968d8d3ae4e3a04b369ac06b0492796ef194ea39181900360600190a1505050565b600354604080516000805160206138cf83398151915281526004810184905290518392600160a060020a031691636670bdd89160248083019260209291908290030181600087803b15801561262d57600080fd5b505af1158015612641573d6000803e3d6000fd5b505050506040513d602081101561265757600080fd5b5051600160a060020a031633146126a6576040805160e560020a62461bcd028152602060048201526008602482015260008051602061386f833981519152604482015290519081900360640190fd5b60048054604080517fbb48d19000000000000000000000000000000000000000000000000000000000815292830185905251600160a060020a039091169163bb48d19091602480830192600092919082900301818387803b1580156112a557600080fd5b6001546000908190600160a060020a031615612770576040805160e560020a62461bcd02815260206004820152601b60248201527f7570677261646520706f696e746572206973206e6f6e2d7a65726f0000000000604482015290519081900360640190fd5b60048054604080517f56e52cbb0000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216926356e52cbb9282820192602092908290030181600087803b1580156127cd57600080fd5b505af11580156127e1573d6000803e3d6000fd5b505050506040513d60208110156127f757600080fd5b505134101561280557600080fd5b600354604080517fdab122de000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015233602483015286151560448301529151919092169163dab122de9160648083019260209291908290030181600087803b15801561287b57600080fd5b505af115801561288f573d6000803e3d6000fd5b505050506040513d60208110156128a557600080fd5b505160048054604080517ea219f400000000000000000000000000000000000000000000000000000000815292830184905251929350600160a060020a03169162a219f4913491602480830192600092919082900301818588803b15801561290c57600080fd5b505af1158015612920573d6000803e3d6000fd5b5093979650505050505050565b600754600160a060020a031690565b600354604080516000805160206138cf83398151915281526004810185905290518492600160a060020a031691636670bdd89160248083019260209291908290030181600087803b15801561299057600080fd5b505af11580156129a4573d6000803e3d6000fd5b505050506040513d60208110156129ba57600080fd5b5051600160a060020a03163314612a09576040805160e560020a62461bcd028152602060048201526008602482015260008051602061386f833981519152604482015290519081900360640190fd5b600354604080517ff5f5c62200000000000000000000000000000000000000000000000000000000815260048101869052600160a060020a0385811660248301529151919092169163f5f5c62291604480830192600092919082900301818387803b1580156106a957600080fd5b600354604080516000805160206138cf83398151915281526004810186905290518592600160a060020a031691636670bdd89160248083019260209291908290030181600087803b158015612acb57600080fd5b505af1158015612adf573d6000803e3d6000fd5b505050506040513d6020811015612af557600080fd5b5051600160a060020a03163314612b44576040805160e560020a62461bcd028152602060048201526008602482015260008051602061386f833981519152604482015290519081900360640190fd5b600354604080517ff7b822db00000000000000000000000000000000000000000000000000000000815260048101879052600160a060020a03868116602483015285151560448301529151919092169163f7b822db91606480830192600092919082900301818387803b158015612bba57600080fd5b505af1158015612bce573d6000803e3d6000fd5b5050505050505050565b600080600080600080612bf2612bed8a6130cf565b6130e6565b15612c47576040805160e560020a62461bcd02815260206004820152600960248201527f622d74657374696e670000000000000000000000000000000000000000000000604482015290519081900360640190fd5b8960007f010000000000000000000000000000000000000000000000000000000000000091901a81020460ff8181166000908152600960205260409020549196501615612cde576040805160e560020a62461bcd02815260206004820152600660248201527f62622d6465700000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6006805460ff8716908110612cef57fe5b600091825260209091200154600160a060020a031693508792508215612d3357612d18896130f0565b9050612d248c856130f3565b9093509150612d338c826135ad565b81158015612d415750600034115b8015612d4b575086155b15612d5a57612d5a3334612ee9565b604080517fdbe79679000000000000000000000000000000000000000000000000000000008152600481018d9052602481018b905230604482015233606482015267ffffffffffffffff19680100000000000000008d021660848201529051600160a060020a0386169163dbe796799160a48083019260209291908290030181600087803b158015612deb57600080fd5b505af1158015612dff573d6000803e3d6000fd5b505050506040513d6020811015612e1557600080fd5b50519550612e258c878b86613053565b50505050509695505050505050565b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600460009054906101000a9004600160a060020a0316600160a060020a031663f1efb76a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015612eb857600080fd5b505af1158015612ecc573d6000803e3d6000fd5b505050506040513d6020811015612ee257600080fd5b5051905090565b610934826020604051908101604052806000815250836136b1565b6006546000906101008110612f63576040805160e560020a62461bcd02815260206004820152600e60248201527f746f6f2d6d616e792d6661726d73000000000000000000000000000000000000604482015290519081900360640190fd5b60068054600181019091557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038516179055600160e060020a03198416600090815260086020908152604091829020805460ff191660ff85169081179091558251908152915192935083927f8ea210065077b12c19240bd91ee2acbce0fd74690be559681ca116194e1ec98a9281900390910190a15092915050565b61ffff167001000000000000000000000000000000000271ffff0000000000000000000000000000000019919091161790565b600354604080517f960834f400000000000000000000000000000000000000000000000000000000815260048101879052602481018690526044810185905283151560648201529051600160a060020a039092169163960834f49160848082019260009290919082900301818387803b158015612bba57600080fd5b700100000000000000000000000000000000900490565b6180009081161490565b90565b60048054604080517f72004a65000000000000000000000000000000000000000000000000000000008152928301859052516000928392839283928392839283928392600160a060020a0316916372004a659160248082019260209290919082900301818787803b15801561316757600080fd5b505af115801561317b573d6000803e3d6000fd5b505050506040513d602081101561319157600080fd5b505115156135985760048054604080517f5429a4170000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692635429a4179282820192602092908290030181600087803b1580156131f657600080fd5b505af115801561320a573d6000803e3d6000fd5b505050506040513d602081101561322057600080fd5b5051600354604080517ff72f34db000000000000000000000000000000000000000000000000000000008152600481018e90529051929850600160a060020a039091169163f72f34db916024808201926020929091908290030181600087803b15801561328c57600080fd5b505af11580156132a0573d6000803e3d6000fd5b505050506040513d60208110156132b657600080fd5b50519450848611156132cf5760016000975097506135a0565b600354604080517f62c0ffa8000000000000000000000000000000000000000000000000000000008152600481018d905288880360248201529051600160a060020a03909216916362c0ffa8916044808201926020929091908290030181600087803b15801561333e57600080fd5b505af1158015613352573d6000803e3d6000fd5b505050506040513d602081101561336857600080fd5b5051604080517e50a315000000000000000000000000000000000000000000000000000000008152600481018390529051919550600160a060020a038b16916250a315916024808201926020929091908290030181600087803b1580156133ce57600080fd5b505af11580156133e2573d6000803e3d6000fd5b505050506040513d60208110156133f857600080fd5b5051925062278cff1942018310156134175760016000975097506135a0565b60048054604080517fb2148d380000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169263b2148d389282820192602092908290030181600087803b15801561347457600080fd5b505af1158015613488573d6000803e3d6000fd5b505050506040513d602081101561349e57600080fd5b50519150348211156134fa576040805160e560020a62461bcd02815260206004820152600c60248201527f2165787472612d622d6665650000000000000000000000000000000000000000604482015290519081900360640190fd5b50600454348290039061351690600160a060020a031683612ee9565b6135203382612ee9565b6040805180820182528381526020810183905281517fa10b8a9911b680d93c2cbb993f5f5a4921bb52ebcb7926bf777c3831a5a1f30b928190839080838360005b83811015613579578181015183820152602001613561565b5050505090500191505060405180910390a160006001975097506135a0565b600080975097505b5050505050509250929050565b60048054604080517fee882a99000000000000000000000000000000000000000000000000000000008152928301859052516000928392600160a060020a03169163ee882a999160248082019260209290919082900301818787803b15801561361557600080fd5b505af1158015613629573d6000803e3d6000fd5b505050506040513d602081101561363f57600080fd5b50519150504267ffffffffffffffff8316036002820281106136ab576040805160e560020a62461bcd02815260206004820152600660248201527f756e706169640000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50505050565b60015474010000000000000000000000000000000000000000900460ff1615613724576040805160e560020a62461bcd02815260206004820152600860248201527f73732d6775617264000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790556040518251600160a060020a0385169183918591908190602084019080838360005b8381101561379357818101518382015260200161377b565b50505050905090810190601f1680156137c05780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af192505050151561382b576040805160e560020a62461bcd02815260206004820152600960248201527f73732d6661696c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50506001805474ff000000000000000000000000000000000000000019169055505600efbe584d0000000000000000000000000000000000000000000000000000000021642d6f776e65720000000000000000000000000000000000000000000000006f6e6c795f6f776e65723a20666f7262696464656e00000000000000000000005341903b000000000000000000000000000000000000000000000000000000006670bdd800000000000000000000000000000000000000000000000000000000a165627a7a72305820495cf9b25346da39764035f699ac6f1b4545eeaccfc1d5c6b9f4db06c9c283b30029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/SVIndexBackend.abi b/dist/2018-06-18-ix-deployment/bb_farm/SVIndexBackend.abi new file mode 100644 index 0000000..c9c47c8 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/SVIndexBackend.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCategoriesN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"dDeprecateCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"erc20","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dAdd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"getGDemoc","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"enabled","type":"bool"}],"name":"dSetCommunityBallotsEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"getDCategory","outputs":[{"name":"deprecated","type":"bool"},{"name":"name","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"name":"dAddCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"setDNoEditors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"prefix","type":"bytes13"}],"name":"getDHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDCountedBasicBallotID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCommBallotsEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDEditorArbitraryData","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dDisableErc20OwnerClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20OwnerClaimEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"ballotId","type":"uint256"},{"name":"packed","type":"uint256"},{"name":"countTowardsLimit","type":"bool"}],"name":"dAddBallot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetEditorArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getGDemocsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"erc20","type":"address"}],"name":"getGErc20ToDemocs","outputs":[{"name":"democHashes","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"defaultErc20","type":"address"},{"name":"initOwner","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dInit","outputs":[{"name":"democHash","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDInfo","outputs":[{"name":"erc20","type":"address"},{"name":"owner","type":"address"},{"name":"nBallots","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"emergencySetDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDBallotID","outputs":[{"name":"ballotId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"}],"name":"isDEditor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newErc20","type":"address"}],"name":"setDErc20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCountedBasicBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"},{"name":"canEdit","type":"bool"}],"name":"setDEditor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDArbitraryData","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwnerFromClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/SVIndexBackend.bin b/dist/2018-06-18-ix-deployment/bb_farm/SVIndexBackend.bin new file mode 100644 index 0000000..955856f --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/SVIndexBackend.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff199081169091556006805490911690553480156200002c57600080fd5b5060008054600160a060020a031916339081179091556200005881600164010000000062000099810204565b600160a060020a03811615156200006b57fe5b60068054600160a060020a0390921662010000026201000060b060020a031990921691909117905562000192565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff191682158015919091179091556200015957604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a0384161790556200018e565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b612b9980620001a26000396000f3006080604052600436106102665763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663054f268e811461026b57806306ed69b9146102955780630d8e6e2c146102b25780630fed240b146102c7578063105689a0146102f057806313af4035146103055780631a4fb653146103265780631ffa27f91461033e57806321fb98691461037357806324d7806c146103a7578063336481d4146103c857806333b7d187146103e557806334ec96bf146104285780633c205b051461044b578063407a5c92146104605780634681067d146104755780634b0bddd21461048a5780634bb32e8c146104b05780634da2317f146104c85780635341903b146104dd57806354924aec146104fe578063565707a8146105135780635d6c8e101461052b5780636165234c1461055957806362c0ffa81461057f5780636627ace51461059a5780636670bdd8146105b25780636f7b5a56146105ca57806371c7e9231461066357806377410c031461067b57806381bd66fe14610690578063865cc6a3146106b1578063889b59d9146106c95780638da5cb5b146106e157806393b557db146106f6578063960834f414610726578063a5c5894414610749578063b2461b1514610779578063ca1637f5146107a0578063ca42afda146107b5578063dab122de14610826578063db15b72d14610852578063e011171d14610894578063e1fd3d4e146108b8578063e23d0996146108dc578063efbe584d146108f7578063f5f5c6221461091b578063f72f34db1461093f578063f7b822db14610957578063fa3ed04d14610980578063fb2e3240146109a4575b600080fd5b34801561027757600080fd5b506102836004356109c8565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102b06004356024356109da565b005b3480156102be57600080fd5b50610283610a92565b3480156102d357600080fd5b506102b0600435600160a060020a03602435166044351515610a98565b3480156102fc57600080fd5b506102b0610b3c565b34801561031157600080fd5b506102b0600160a060020a0360043516610c27565b34801561033257600080fd5b50610283600435610cd8565b34801561034a57600080fd5b5061035f600160a060020a0360043516610cfb565b604080519115158252519081900360200190f35b34801561037f57600080fd5b5061038b600435610d19565b60408051600160a060020a039092168252519081900360200190f35b3480156103b357600080fd5b5061035f600160a060020a0360043516610d45565b3480156103d457600080fd5b506102b06004356024351515610d72565b3480156103f157600080fd5b50610400600435602435610e50565b6040805194151585526020850193909352901515838301526060830152519081900360800190f35b34801561043457600080fd5b506102b06004356024356044351515606435610e8f565b34801561045757600080fd5b50610283610f9b565b34801561046c57600080fd5b50610283610fa1565b34801561048157600080fd5b506102b0610fa7565b34801561049657600080fd5b506102b0600160a060020a0360043516602435151561104f565b3480156104bc57600080fd5b506102b0600435611196565b3480156104d457600080fd5b506102b061122f565b3480156104e957600080fd5b506102b0600160a060020a0360043516611291565b34801561050a57600080fd5b5061035f61135b565b34801561051f57600080fd5b5061038b600435611364565b34801561053757600080fd5b5061028372ffffffffffffffffffffffffffffffffffffff196004351661137f565b34801561056557600080fd5b506102b0600160a060020a036004351660243515156113a7565b34801561058b57600080fd5b50610283600435602435611546565b3480156105a657600080fd5b5061035f600435611576565b3480156105be57600080fd5b5061038b6004356115a7565b3480156105d657600080fd5b506105ee6004803590602480359081019101356115c5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610628578181015183820152602001610610565b50505050905090810190601f1680156106555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561066f57600080fd5b506102b0600435611725565b34801561068757600080fd5b5061035f6117da565b34801561069c57600080fd5b506102b0600160a060020a03600435166117e3565b3480156106bd57600080fd5b5061035f6004356118f5565b3480156106d557600080fd5b50610283600435611915565b3480156106ed57600080fd5b5061038b61192a565b34801561070257600080fd5b506102b0600480359060248035808201929081013591604435908101910135611939565b34801561073257600080fd5b506102b06004356024356044356064351515611a16565b34801561075557600080fd5b506102b0600480359060248035808201929081013591604435908101910135611a7f565b34801561078557600080fd5b506102b0600160a060020a0360043581169060243516611b8f565b3480156107ac57600080fd5b50610283611cf5565b3480156107c157600080fd5b506107d6600160a060020a0360043516611cfb565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108125781810151838201526020016107fa565b505050509050019250505060405180910390f35b34801561083257600080fd5b50610283600160a060020a03600435811690602435166044351515611d68565b34801561085e57600080fd5b5061086a600435611e7c565b60408051600160a060020a0394851681529290931660208301528183015290519081900360600190f35b3480156108a057600080fd5b506102b0600435600160a060020a0360243516611eab565b3480156108c457600080fd5b506102b0600435600160a060020a0360243516611f0c565b3480156108e857600080fd5b50610283600435602435611fa9565b34801561090357600080fd5b5061035f600435600160a060020a0360243516611fc6565b34801561092757600080fd5b506102b0600435600160a060020a036024351661201e565b34801561094b57600080fd5b50610283600435612103565b34801561096357600080fd5b506102b0600435600160a060020a03602435166044351515612118565b34801561098c57600080fd5b506105ee6004803590602480359081019101356121f7565b3480156109b057600080fd5b506102b0600435600160a060020a0360243516612293565b60009081526008602052604090205490565b3360009081526005602052604090205460ff161515610a31576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b60008281526008602090815260408083208484526001908101835292819020805460ff19169093179092558151838152915184927fbcffb42fe43e03fdde1eca40d96bb1e9e48eff8d3ec71e025b2304977e64f39292908290030190a25050565b60025b90565b600054600160a060020a03163314610ae8576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b2e833981519152604482015290519081900360640190fd5b610af48383338461243d565b60408051848152600160a060020a038416602082015281517f76cfde4818906d3ebeda8d4aa81b23c066bbb956bb70274c4126ec9c0faead4e929181900390910190a1505050565b600054600160a060020a03163314610b8c576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b2e833981519152604482015290519081900360640190fd5b60065460ff1615610be7576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b610bef61258e565b6006805460ff191660011790556040517f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20590600090a1565b600054600160a060020a03163314610c77576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b2e833981519152604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b6000600b82815481101515610ce957fe5b90600052602060002001549050919050565b600160a060020a031660009081526005602052604090205460ff1690565b6000600482815481101515610d2a57fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b3360009081526005602052604090205460ff161515610dc9576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b600082815260076020908152604091829020600101805474ff00000000000000000000000000000000000000001916841574010000000000000000000000000000000000000000810291909117909155825190158152915184927f93b729dac8f3963db35b89b16922310952f9bf8b37e391b99218c03faa42f3f492908290030190a25050565b60009182526008602090815260408084209284526001928301909152909120805491810154600282015460039092015460ff9384169491939092169190565b3360009081526005602052604081205460ff161515610ee6576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b5060008481526008602090815260408083208054808552600191820190935292209091018490558215610f49576000858152600860209081526040808320848452600190810190925290912060028101805460ff19169092179091556003018290555b600085815260086020908152604091829020805460010190558151838152915187927fb00e174944b708eb07afc8afcdcc94d5dfa6c1246743602a8ce6a5bedad2f4e592908290030190a25050505050565b60025481565b60045490565b600054600160a060020a03163314610ff7576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b2e833981519152604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615611098576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020612b0e833981519152604482015290519081900360640190fd5b6110a133610d45565b15156110e5576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b4e833981519152604482015290519081900360640190fd5b600160a060020a038216331480159061110c5750600054600160a060020a03838116911614155b1515611188576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b61119282826125d2565b5050565b3360009081526005602052604090205460ff1615156111ed576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b600081815260076020526040808220600201805460010190555182917ff3bbc8c454575f9f6aa4d88c305beb91199abb12ec76ce392bc593fc771e3fba91a250565b60008061123a6126d5565b915050303161124982826126e4565b60408051600160a060020a03841681526020810183905281517fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd2562472929181900390910190a15050565b3360009081526005602052604090205460ff1615156112e8576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b336000818152600560209081526040808320805460ff19908116909155600160a060020a038616808552938290208054909116600117905580519384529083019190915280517f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a9281900390910190a150565b60035460ff1681565b600090815260076020526040902054600160a060020a031690565b72ffffffffffffffffffffffffffffffffffffff191660009081526009602052604090205490565b60065460ff1615611402576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff161561144b576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020612b0e833981519152604482015290519081900360640190fd5b61145433610d45565b1515611498576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b4e833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600560205260409020805460ff191682158015919091179091556115065760408051600160a060020a038416815290517fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c69181900360200190a1611192565b60408051600160a060020a038416815290517f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c9219181900360200190a15050565b600082815260076020526040812060050180548390811061156357fe5b9060005260206000200154905092915050565b60009081526007602052604090206001015474010000000000000000000000000000000000000000900460ff161590565b600090815260076020526040902060010154600160a060020a031690565b6000838152600c602090815260408083208151601f860184900484028101840190925284825260609390929091611610918790879081908401838280828437506126ff945050505050565b6040518082805190602001908083835b6020831061163f5780518252601f199092019160209182019101611620565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117165780601f106116eb57610100808354040283529160200191611716565b820191906000526020600020905b8154815290600101906020018083116116f957829003601f168201915b505050505090505b9392505050565b3360009081526005602052604090205460ff16151561177c576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b600081815260076020526040808220600101805475ff000000000000000000000000000000000000000000191660a860020a1790555182917fcc23847a8a66577fe576136f5f34967fbd9cf71d95b0c90647cea48bc236d57d91a250565b60065460ff1681565b60035460ff161561182c576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020612b0e833981519152604482015290519081900360640190fd5b61183533610d45565b1515611879576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b4e833981519152604482015290519081900360640190fd5b600054600160a060020a03163314156118dc576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b6118e73360006125d2565b6118f28160016125d2565b50565b60009081526007602052604090206001015460a860020a900460ff161590565b60009081526007602052604090206004015490565b600054600160a060020a031681565b3360009081526005602052604081205460ff161515611990576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b8484604051808383808284376040805191909301819003902060008c8152600c60209081528482208383529052929092209195506119d79450909250869150859050612a55565b5060408051828152905187917f70cd3b363a8374b507c0ea17f9205a693a37d89c14d1391d4a9d8d3509f6dbb0919081900360200190a2505050505050565b3360009081526005602052604090205460ff161515611a6d576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b611a7984848484612797565b50505050565b3360009081526005602052604081205460ff161515611ad6576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b611b0f85858080601f016020809104026020016040519081016040528093929190818152602001838380828437506126ff945050505050565b6040518082805190602001908083835b60208310611b3e5780518252601f199092019160209182019101611b1f565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008c8152600c83528481208282529092529290209194506119d7935090915085905084612a55565b60065460ff1615611bea576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff1615611c33576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020612b0e833981519152604482015290519081900360640190fd5b611c3c33610d45565b1515611c80576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b4e833981519152604482015290519081900360640190fd5b600160a060020a038083166000818152600560209081526040808320805460ff19908116909155948616808452928190208054909516600117909455835192835282015281517f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b58929181900390910190a15050565b600b5490565b600160a060020a0381166000908152600a6020908152604091829020805483518184028101840190945280845260609392830182828015611d5c57602002820191906000526020600020905b81548152600190910190602001808311611d47575b50505050509050919050565b3360009081526005602052604081205460ff161515611dbf576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b600b5460408051602080820193909352600019430140818301526c01000000000000000000000000600160a060020a0388160260608201524260748083019190915282518083039091018152609490910191829052805190928291908401908083835b60208310611e415780518252601f199092019160209182019101611e22565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905061171e8185858561243d565b600090815260076020526040902080546001820154600490920154600160a060020a0391821693919092169190565b3360009081526005602052604090205460ff161515611f02576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b6111928282612836565b600054600160a060020a03163314611f5c576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b2e833981519152604482015290519081900360640190fd5b611f668282612836565b60408051600160a060020a0383168152905183917f85644e2e7afe6ef9f59ba824a1a8b530832a9fb9f73052bc316f5168a156505a919081900360200190a25050565b600082815260076020526040812060040180548390811061156357fe5b600082815260076020908152604080832060028101548452600381018352818420600160a060020a038616855290925282205460ff168061201657506001810154600160a060020a038481169116145b949350505050565b3360009081526005602052604090205460ff161515612075576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b6000828152600760209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038616908117909155808452600a835281842080546001810182559085529383902090930185905580519283525184927f9db922c152f2e7c530d60219abb1e50af8b8a6db04e369ba9ed99d54126b096692908290030190a25050565b60009081526007602052604090206005015490565b3360009081526005602052604081205460ff16151561216f576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b50600083815260076020908152604080832060028101548452600381018352818420600160a060020a03871680865290845293829020805460ff19168615159081179091558251948552928401929092528051919286927fe4ab708eaba56e3fc86c807c52597fa3912723db2c4b47704e8e3729533154a6929181900390910190a250505050565b6000838152600c6020526040808220905160609290859085908083838082843760408051939091018390039092208652506020808601969096529384016000208054855160026000196001841615610100020190921691909104601f81018890048802820188019096528581529590949350850191508390508280156117165780601f106116eb57610100808354040283529160200191611716565b3360009081526005602052604081205460ff1615156122ea576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b506000828152600760205260409020600181015460a860020a900460ff161561235d576040805160e560020a62461bcd02815260206004820152600c60248201527f2165726332302d636c61696d0000000000000000000000000000000000000000604482015290519081900360640190fd5b60018082018054600160a060020a03851673ffffffffffffffffffffffffffffffffffffffff1990911681178255600284015460009081526003850160209081526040808320848452825291829020805460ff1916909517909455825475ff000000000000000000000000000000000000000000191660a860020a179092558151908152905185927f61b9d2862914325dd13bcfe9fa63019518a298b091322a499110806cc8392149928290030190a260405183907f3a20afcbf909577cfdda0121a1a06de3ba63d5ccd34b0653920cffcf93dd693590600090a2505050565b600b8054600181019091557f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9018490556000848152600760205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03851617815581156124cf5760018101805475ff000000000000000000000000000000000000000000191660a860020a1790555b72ffffffffffffffffffffffffffffffffffffff198516600090815260096020526040902054156124fc57fe5b72ffffffffffffffffffffffffffffffffffffff1985166000908152600960209081526040808320889055600160a060020a0387168352600a8252822080546001810182559083529120018590556125548584612836565b6040805186815290517f0c20027e6e14b382bc4c0eb23bbb44394e15081383d9088dd44adcac951830fa9181900360200190a15050505050565b6002805460019081019091556003805460ff191690911790556040517fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a190600090a1565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561269d57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416179055611192565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25050565b600054600160a060020a031690565b611192826020604051908101604052806000815250836128ed565b60608160405160200180807f656469746f722e0000000000000000000000000000000000000000000000000081525060070182805190602001908083835b6020831061275c5780518252601f19909201916020918201910161273d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040529050919050565b6000806127a384612a3e565b60008781526007602090815260408220600401805460018101825590835291208101879055909250905082156127f8576000868152600760209081526040822060050180546001810182559083529120018590555b60408051828152905187917f73da1acab1521244521194424efac3de42f8bb8aa8c3b4f85843d4bfb7b3df84919081900360200190a2505050505050565b600082815260076020908152604080832060028101546001808301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038981169182179283905584895260038601885286892092168852908652848720805460ff19908116909155818852968590208054909716909117909555825194855291519093919286927f61b9d2862914325dd13bcfe9fa63019518a298b091322a499110806cc8392149929081900390910190a250505050565b600654610100900460ff161561294d576040805160e560020a62461bcd02815260206004820152600860248201527f73732d6775617264000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6006805461ff0019166101001790556040518251600160a060020a0385169183918591908190602084019080838360005b8381101561299657818101518382015260200161297e565b50505050905090810190601f1680156129c35780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af1925050501515612a2e576040805160e560020a62461bcd02815260206004820152600960248201527f73732d6661696c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50506006805461ff001916905550565b700100000000000000000000000000000000900490565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612a965782800160ff19823516178555612ac3565b82800160010185558215612ac3579182015b82811115612ac3578235825591602001919060010190612aa8565b50612acf929150612ad3565b5090565b610a9591905b80821115612acf5760008155600101612ad956006f6e6c795f656469746f72733a20666f7262696464656e00000000000000000061646d696e73206d757374206e6f742062652064697361626c656400000000006f6e6c795f6f776e65723a20666f7262696464656e00000000000000000000006f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000a165627a7a723058202530baf864be1448d9a52ffa33d19d643343f5465f81785c79c9020fb4d99f0c0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/SVPayments.abi b/dist/2018-06-18-ix-deployment/bb_farm/SVPayments.abi new file mode 100644 index 0000000..8880118 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/SVPayments.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"payForDemocracy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"additionalSeconds","type":"uint256"},{"name":"ref","type":"bytes32"}],"name":"giveTimeToDemoc","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setBasicCentsPricePer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDenyPremium","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"emergencySetOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minorEditsAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"c","type":"uint256"}],"name":"centsToWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"isPremiumDenied","type":"bool"}],"name":"setDenyPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"accountInGoodStanding","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"}],"name":"setMinorEditsAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"downgradeToBasic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicBallotsPer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMinWeiForDInit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newPayTo","type":"address"}],"name":"setPayTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getFreeExtension","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPaymentLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"w","type":"uint256"}],"name":"weiToCents","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"emergencyAdmin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getPremiumStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumMultiplier","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getWeiPerCent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"amount","type":"uint256"}],"name":"setBasicBallotsPer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicExtraBallotFeeWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"hasFreeExt","type":"bool"}],"name":"setFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"upgradeToPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wpc","type":"uint256"}],"name":"setWeiPerCent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getAccount","outputs":[{"name":"isPremium","type":"bool"},{"name":"lastPaymentTs","type":"uint256"},{"name":"paidUpTill","type":"uint256"},{"name":"hasFreeExtension","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUsdEthExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"m","type":"uint8"}],"name":"setPremiumMultiplier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getSecondsRemaining","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPayTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setMinWeiForDInit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"amount","type":"uint256"}],"name":"weiBuysHowManySeconds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getPaymentLog","outputs":[{"name":"_external","type":"bool"},{"name":"_democHash","type":"bytes32"},{"name":"_seconds","type":"uint256"},{"name":"_ethValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"doFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_emergencyAdmin","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/SVPayments.bin b/dist/2018-06-18-ix-deployment/bb_farm/SVPayments.bin new file mode 100644 index 0000000..aa3b5c1 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/SVPayments.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1990811690915560068054821690556201e848600855600a600981905580549091166005179055650f15345956c0600b556001600c553480156200005257600080fd5b5060405160208062002acf833981016040525160008054600160a060020a031916339081179091558062000091816001640100000000620000ef810204565b600160a060020a0381161515620000a457fe5b600680546201000060b060020a03191662010000600160a060020a039384160217905560118054600160a060020a031916918416918217905515159050620000e857fe5b50620001e8565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff19168215801591909117909155620001af57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a038416179055620001e4565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b6128d780620001f86000396000f30060806040526004361061029c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041662a219f481146102df57806304318794146102ec5780630bf63c601461030a5780630d8e6e2c14610322578063105689a01461034957806312f11ed31461035e57806313af40351461038a578063158ee887146103ab57806316b08755146103cc57806317ffc320146103fd5780631c732d831461041e5780631ffa27f91461043657806321fb98691461045757806324d7806c1461046f57806332c0c5831461049057806333af060f146104ad578063383bb22a146104c55780633c205b05146104e65780633e06be20146104fb578063407a5c92146105135780634681067d146105285780634b0bddd21461053d5780634da2317f146105635780635341903b146105785780635429a4171461059957806354924aec146105ae57806356e52cbb146105c35780636165234c146105d857806361b9739a146105fe578063672350bd1461061f5780636cc03315146106375780636d568c431461064c57806370905dce1461066457806372004a6514610679578063761ba8941461069157806377410c03146106bc5780638185b8e9146106d157806381bd66fe146106e65780638da5cb5b14610707578063a05e3bb01461071c578063b2148d3814610734578063b2461b1514610749578063b352867c14610770578063bb48d1901461078d578063ca37a9eb146107a5578063d1de5011146107bd578063ddd9537d146107ff578063e2e794c314610814578063e839554e1461082f578063e8e9eeae14610844578063ee882a9914610859578063f1efb76a14610871578063f3199e9814610886578063f3b8b2a91461089e578063f8ef9a3d146108b6578063ff2b0571146108f6575b6102a461090e565b600160a060020a03166108fc349081150290604051600060405180830381858888f193505050501580156102dc573d6000803e3d6000fd5b50005b6102ea600435610923565b005b3480156102f857600080fd5b506102ea600435602435604435610b3f565b34801561031657600080fd5b506102ea600435610ccc565b34801561032e57600080fd5b50610337610d57565b60408051918252519081900360200190f35b34801561035557600080fd5b506102ea610d5c565b34801561036a57600080fd5b50610376600435610e47565b604080519115158252519081900360200190f35b34801561039657600080fd5b506102ea600160a060020a0360043516610e5c565b3480156103b757600080fd5b506102ea600160a060020a0360043516610f0d565b3480156103d857600080fd5b506103e1610f9e565b60408051600160a060020a039092168252519081900360200190f35b34801561040957600080fd5b506102ea600160a060020a0360043516610fad565b34801561042a57600080fd5b5061033760043561113a565b34801561044257600080fd5b50610376600160a060020a0360043516611141565b34801561046357600080fd5b506103e160043561115f565b34801561047b57600080fd5b50610376600160a060020a036004351661118b565b34801561049c57600080fd5b506102ea60043560243515156111b8565b3480156104b957600080fd5b5061037660043561127c565b3480156104d157600080fd5b506102ea600160a060020a0360043516611294565b3480156104f257600080fd5b50610337611345565b34801561050757600080fd5b506102ea60043561134b565b34801561051f57600080fd5b50610337611514565b34801561053457600080fd5b506102ea61151a565b34801561054957600080fd5b506102ea600160a060020a036004351660243515156115c2565b34801561056f57600080fd5b506102ea611705565b34801561058457600080fd5b506102ea600160a060020a0360043516611767565b3480156105a557600080fd5b50610337611843565b3480156105ba57600080fd5b50610376611849565b3480156105cf57600080fd5b50610337611852565b3480156105e457600080fd5b506102ea600160a060020a03600435166024351515611858565b34801561060a57600080fd5b506102ea600160a060020a03600435166119f7565b34801561062b57600080fd5b50610376600435611a8f565b34801561064357600080fd5b50610337611aa4565b34801561065857600080fd5b50610337600435611aaa565b34801561067057600080fd5b506103e1611ac0565b34801561068557600080fd5b50610376600435611acf565b34801561069d57600080fd5b506106a6611ae4565b6040805160ff9092168252519081900360200190f35b3480156106c857600080fd5b50610376611aed565b3480156106dd57600080fd5b50610337611af6565b3480156106f257600080fd5b506102ea600160a060020a0360043516611afc565b34801561071357600080fd5b506103e1611c0e565b34801561072857600080fd5b506102ea600435611c1d565b34801561074057600080fd5b50610337611ca8565b34801561075557600080fd5b506102ea600160a060020a0360043581169060243516611cc7565b34801561077c57600080fd5b506102ea6004356024351515611e2d565b34801561079957600080fd5b506102ea600435611ef1565b3480156107b157600080fd5b506102ea6004356120ce565b3480156107c957600080fd5b506107d5600435612172565b60408051941515855260208501939093528383019190915215156060830152519081900360800190f35b34801561080b57600080fd5b506103376121a5565b34801561082057600080fd5b506102ea60ff600435166121c2565b34801561083b57600080fd5b5061033761225a565b34801561085057600080fd5b50610337612260565b34801561086557600080fd5b5061033760043561226a565b34801561087d57600080fd5b506103e161228c565b34801561089257600080fd5b506102ea600435612296565b3480156108aa57600080fd5b5061033760043561233a565b3480156108c257600080fd5b506108ce600435612384565b6040805194151585526020850193909352838301919091526060830152519081900360800190f35b34801561090257600080fd5b506102ea600435612421565b600654620100009004600160a060020a031690565b60003481106109a2576040805160e560020a62461bcd02815260206004820152602760248201527f6e65656420746f2073656e6420736f6d6520657468657220746f206d616b652060448201527f7061796d656e7400000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109ab3461233a565b6000838152600d602052604090205490915060ff16156109d957600a5460ff16818115156109d557fe5b0490505b600181106109eb576109eb82826124e0565b60408051608081018252600080825260208083018681528385018681523460608601908152600e8054600181018255955294517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd6004909502948501805460ff191691151591909117905590517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fe840155517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3ff83015591517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c400909101558151838152915184927fe6ad0535314a8031f23d28b2c0945848329bf43d9d12471ce4f5f99f6640657692908290030190a2610b0261090e565b600160a060020a03166108fc349081150290604051600060405180830381858888f19350505050158015610b3a573d6000803e3d6000fd5b505050565b600754600160a060020a031633811480610b635750600054600160a060020a031633145b1515610ba7576040805160e560020a62461bcd028152602060048201526009602482015260008051602061282c833981519152604482015290519081900360640190fd5b610bb184846124e0565b6040805160808101825260018082526020808301888152838501888152600060608601818152600e8054968701815590915294517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd6004909502948501805460ff191691151591909117905590517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fe840155517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3ff83015591517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c400909101558151858152908101849052815186927f662d736f3a0c8f3b0906b173689606e590f214abef4ae9bde801e1b6f4059f4d928290030190a250505050565b600054600160a060020a03163314610d1c576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b60088190556040805182815290517f696e5c6fec16a11a25b2139177dc42dbfe83df4fd078f5a7f13b6db57792d1a19181900360200190a150565b600290565b600054600160a060020a03163314610dac576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b60065460ff1615610e07576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b610e0f61251c565b6006805460ff191660011790556040517f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20590600090a1565b6000908152600f602052604090205460ff1690565b600054600160a060020a03163314610eac576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b601154600160a060020a03163314610f6f576040805160e560020a62461bcd02815260206004820152601060248201527f21656d657267656e63792d6f776e657200000000000000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600754600160a060020a031681565b60008054600160a060020a03163314610ffe576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561105f57600080fd5b505af1158015611073573d6000803e3d6000fd5b505050506040513d602081101561108957600080fd5b505160008054604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263095ea7b392604480840193602093929083900390910190829087803b1580156110ff57600080fd5b505af1158015611113573d6000803e3d6000fd5b505050506040513d602081101561112957600080fd5b5051151561113657600080fd5b5050565b600b540290565b600160a060020a031660009081526005602052604090205460ff1690565b600060048281548110151561117057fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b600754600160a060020a0316338114806111dc5750600054600160a060020a031633145b1515611220576040805160e560020a62461bcd028152602060048201526009602482015260008051602061282c833981519152604482015290519081900360640190fd5b6000838152600f6020908152604091829020805460ff191685151590811790915582518681529182015281517f50935952ae272746cf38a1cb4aa7c93d3e39e60cdc4a761ef55a4e69366abe7d929181900390910190a1505050565b6000908152600d602052604090206002015442111590565b600054600160a060020a031633146112e4576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b60078054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fd72f7e1ee158c792883f68eb79af23661439288dae047b5a0f1fb6c8cd8849739181900360200190a150565b60025481565b33600090815260056020526040812054819060ff1615156113b6576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c795f656469746f72733a20666f7262696464656e000000000000000000604482015290519081900360640190fd5b6000838152600d602052604090205460ff16151561141e576040805160e560020a62461bcd02815260206004820152600860248201527f217072656d69756d000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000838152600d60205260409020805460ff191681556002015491506114448242612560565b905060008111156114e4576000838152600d60205260409020600301546201517f194201116114bd576040805160e560020a62461bcd02815260206004820152601260248201527f646f776e67726164652d746f6f2d736f6f6e0000000000000000000000000000604482015290519081900360640190fd5b600a546000848152600d6020526040902060ff909116919091024281016002909201919091555b60405183907f48f962cb175066eb5227bf2d28122d1f0861b74cd6951e6542a6f0283b6a30b790600090a2505050565b60045490565b600054600160a060020a0316331461156a576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff161561160b576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061284c833981519152604482015290519081900360640190fd5b6116143361118b565b1515611658576040805160e560020a62461bcd028152602060048201526015602482015260008051602061288c833981519152604482015290519081900360640190fd5b600160a060020a038216331480159061167f5750600054600160a060020a03838116911614155b15156116fb576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b6111368282612578565b60008061171061090e565b915050303161171f828261267b565b60408051600160a060020a03841681526020810183905281517fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd2562472929181900390910190a15050565b3360009081526005602052604090205460ff1615156117d0576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c795f656469746f72733a20666f7262696464656e000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320805460ff19908116909155600160a060020a038616808552938290208054909116600117905580519384529083019190915280517f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a9281900390910190a150565b60095490565b60035460ff1681565b600c5490565b60065460ff16156118b3576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff16156118fc576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061284c833981519152604482015290519081900360640190fd5b6119053361118b565b1515611949576040805160e560020a62461bcd028152602060048201526015602482015260008051602061288c833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600560205260409020805460ff191682158015919091179091556119b75760408051600160a060020a038416815290517fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c69181900360200190a1611136565b60408051600160a060020a038416815290517f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c9219181900360200190a15050565b600054600160a060020a03163314611a47576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b611a5081612696565b60408051600160a060020a038316815290517fbea0769aba15b443dd3170dc4bc7b94123881e42d6ed3d31a2654daf43b058519181900360200190a150565b60009081526010602052604090205460ff1690565b600e5490565b6000600b5482811515611ab957fe5b0492915050565b601154600160a060020a031681565b6000908152600d602052604090205460ff1690565b600a5460ff1690565b60065460ff1681565b600b5490565b60035460ff1615611b45576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061284c833981519152604482015290519081900360640190fd5b611b4e3361118b565b1515611b92576040805160e560020a62461bcd028152602060048201526015602482015260008051602061288c833981519152604482015290519081900360640190fd5b600054600160a060020a0316331415611bf5576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b611c00336000612578565b611c0b816001612578565b50565b600054600160a060020a031681565b600054600160a060020a03163314611c6d576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b60098190556040805182815290517fcfa56694fbda1b84c5d6c63fe8f6874c83c94f2da04231dd0d54e07cb542e62f9181900360200190a150565b6000611cc2600954600854811515611cbc57fe5b0461113a565b905090565b60065460ff1615611d22576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff1615611d6b576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061284c833981519152604482015290519081900360640190fd5b611d743361118b565b1515611db8576040805160e560020a62461bcd028152602060048201526015602482015260008051602061288c833981519152604482015290519081900360640190fd5b600160a060020a038083166000818152600560209081526040808320805460ff19908116909155948616808452928190208054909516600117909455835192835282015281517f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b58929181900390910190a15050565b600754600160a060020a031633811480611e515750600054600160a060020a031633145b1515611e95576040805160e560020a62461bcd028152602060048201526009602482015260008051602061282c833981519152604482015290519081900360640190fd5b600083815260106020908152604091829020805460ff191685151590811790915582518681529182015281517fde965928e65e33ccd6559d861e5483e90512b32455de3d5eec039b9a5b93f8e4929181900390910190a1505050565b33600090815260056020526040812054819060ff161515611f5c576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c795f656469746f72733a20666f7262696464656e000000000000000000604482015290519081900360640190fd5b6000838152600f602052604090205460ff1615611fc3576040805160e560020a62461bcd02815260206004820152600e60248201527f757067726164652d64656e696564000000000000000000000000000000000000604482015290519081900360640190fd5b6000838152600d602052604090205460ff161561202a576040805160e560020a62461bcd02815260206004820152600660248201527f2162617369630000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000838152600d60205260409020805460ff191660011781556002015491506120538242612560565b9050600081111561208d57600a5460ff168181151561206e57fe5b6000858152600d60205260409020429290910491820160029091015590505b6000838152600d6020526040808220426003909101555184917fb957c6a4668e76eb2e541f54eff529717f8070dba0ef7813dd8ab28cbbf0f70291a2505050565b600754600160a060020a0316338114806120f25750600054600160a060020a031633145b1515612136576040805160e560020a62461bcd028152602060048201526009602482015260008051602061282c833981519152604482015290519081900360640190fd5b600b8290556040805183815290517f1d5de90e7c5b244ac5797698b15fe80a92524d933dafd79e001daf844555fb1c9181900360200190a15050565b6000908152600d60209081526040808320805460018201546002909201546010909452919093205460ff91821694911690565b6000600b54670de0b6b3a76400008115156121bc57fe5b04905090565b600054600160a060020a03163314612212576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b600a805460ff831660ff19909116811790915560408051918252517fdd5e68e86e7460257caaf7a2276fa63562e9a906a39802c4f37699f5736a72f29181900360200190a150565b60085490565b6000611cc26126cd565b6000818152600d60205260408120600201546122869042612560565b92915050565b6000611cc261090e565b600754600160a060020a0316338114806122ba5750600054600160a060020a031633145b15156122fe576040805160e560020a62461bcd028152602060048201526009602482015260008051602061282c833981519152604482015290519081900360640190fd5b600c8290556040805183815290517f134bc3fbd032443af0856b9e13b4146103106e96c9c095d10415247f5369c4cf9181900360200190a15050565b600080600080600061234b86611aaa565b935060085484670de0b6b3a76400000281151561236457fe5b04925062278d0083029150670de0b6b3a764000082049695505050505050565b600080600080600e8581548110151561239957fe5b6000918252602090912060049091020154600e805460ff909216955090869081106123c057fe5b9060005260206000209060040201600101549250600e858154811015156123e357fe5b9060005260206000209060040201600201549150600e8581548110151561240657fe5b90600052602060002090600402016003015490509193509193565b60008181526010602052604081205460ff161515612489576040805160e560020a62461bcd02815260206004820152600560248201527f2166726565000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b506000818152600d6020908152604091829020624f1a00420160029091018190558251848152925190927f09664427434c2b4309000ea03b5e378fa25c30acbe0a04fdeff36061303f8e7e92908290030190a15050565b6000828152600d6020526040902060020154428110156124fd5750425b6000928352600d60205260409092209101600282015542600190910155565b6002805460019081019091556003805460ff191690911790556040517fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a190600090a1565b60008183101561257257506000612286565b50900390565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561264357604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416179055611136565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25050565b611136826020604051908101604052806000815250836126da565b60068054600160a060020a03909216620100000275ffffffffffffffffffffffffffffffffffffffff000019909216919091179055565b600854600a5460ff160290565b600654610100900460ff161561273a576040805160e560020a62461bcd02815260206004820152600860248201527f73732d6775617264000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6006805461ff0019166101001790556040518251600160a060020a0385169183918591908190602084019080838360005b8381101561278357818101518382015260200161276b565b50505050905090810190601f1680156127b05780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af192505050151561281b576040805160e560020a62461bcd02815260206004820152600960248201527f73732d6661696c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50506006805461ff0019169055505600216f776e65722d6f72000000000000000000000000000000000000000000000061646d696e73206d757374206e6f742062652064697361626c656400000000006f6e6c795f6f776e65723a20666f7262696464656e00000000000000000000006f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000a165627a7a723058206c6e8db700eab79e62e4a8f0747fa21850123bffa36588108b1e458ef42729b90029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/SafeMath.abi b/dist/2018-06-18-ix-deployment/bb_farm/SafeMath.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/SafeMath.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/SafeMath.bin b/dist/2018-06-18-ix-deployment/bb_farm/SafeMath.bin new file mode 100644 index 0000000..bcb4580 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/SafeMath.bin @@ -0,0 +1 @@ +604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582001dfd6d6121884c96547096c91e1e39e66c776d140cb921c91dcfeb3b71de11b0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/SvEnsIface.abi b/dist/2018-06-18-ix-deployment/bb_farm/SvEnsIface.abi new file mode 100644 index 0000000..72cafd8 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/SvEnsIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"label","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/SvEnsIface.bin b/dist/2018-06-18-ix-deployment/bb_farm/SvEnsIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/bb_farm/controlledIface.abi b/dist/2018-06-18-ix-deployment/bb_farm/controlledIface.abi new file mode 100644 index 0000000..a7f2789 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/controlledIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/controlledIface.bin b/dist/2018-06-18-ix-deployment/bb_farm/controlledIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/bb_farm/hasAdmins.abi b/dist/2018-06-18-ix-deployment/bb_farm/hasAdmins.abi new file mode 100644 index 0000000..7bd1476 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/hasAdmins.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/hasAdmins.bin b/dist/2018-06-18-ix-deployment/bb_farm/hasAdmins.bin new file mode 100644 index 0000000..e0830b1 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/hasAdmins.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1916905534801561001f57600080fd5b5060008054600160a060020a0319163390811790915561004990600164010000000061004e810204565b610145565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561010c57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a038416179055610141565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b6107c0806101546000396000f3006080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af403581146100a857806321fb9869146100cb57806324d7806c146100ff5780633c205b0514610134578063407a5c921461015b5780634681067d146101705780634b0bddd21461018557806354924aec146101ab57806381bd66fe146101c05780638da5cb5b146101e1575b600080fd5b3480156100b457600080fd5b506100c9600160a060020a03600435166101f6565b005b3480156100d757600080fd5b506100e36004356102b9565b60408051600160a060020a039092168252519081900360200190f35b34801561010b57600080fd5b50610120600160a060020a03600435166102e5565b604080519115158252519081900360200190f35b34801561014057600080fd5b50610149610312565b60408051918252519081900360200190f35b34801561016757600080fd5b50610149610318565b34801561017c57600080fd5b506100c961031e565b34801561019157600080fd5b506100c9600160a060020a036004351660243515156103d8565b3480156101b757600080fd5b50610120610543565b3480156101cc57600080fd5b506100c9600160a060020a036004351661054c565b3480156101ed57600080fd5b506100e3610682565b600054600160a060020a03163314610258576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60006004828154811015156102ca57fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b60025481565b60045490565b600054600160a060020a03163314610380576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615610433576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b61043c336102e5565b1515610492576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600160a060020a03821633148015906104b95750600054600160a060020a03838116911614155b1515610535576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b61053f8282610691565b5050565b60035460ff1681565b60035460ff16156105a7576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b6105b0336102e5565b1515610606576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331415610669576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b610674336000610691565b61067f816001610691565b50565b600054600160a060020a031681565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561075c57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03841617905561053f565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250505600a165627a7a72305820ba6a1f9481c5d4e2adc75a120d4fac13bd1bd39c8c87911cc810c63fe913f53f0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/hasVersion.abi b/dist/2018-06-18-ix-deployment/bb_farm/hasVersion.abi new file mode 100644 index 0000000..f6ed3d5 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/hasVersion.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/hasVersion.bin b/dist/2018-06-18-ix-deployment/bb_farm/hasVersion.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/bb_farm/ixBackendEvents.abi b/dist/2018-06-18-ix-deployment/bb_farm/ixBackendEvents.abi new file mode 100644 index 0000000..9f786b7 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/ixBackendEvents.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/ixBackendEvents.bin b/dist/2018-06-18-ix-deployment/bb_farm/ixBackendEvents.bin new file mode 100644 index 0000000..0bee599 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/ixBackendEvents.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a7230582005dd603e64bc0d429fb794f314dff03c738dc6bc5cd40703755b9349f99ac7c20029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/ixEvents.abi b/dist/2018-06-18-ix-deployment/bb_farm/ixEvents.abi new file mode 100644 index 0000000..79a97b9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/ixEvents.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"name":"valAndRemainder","type":"uint256[2]"}],"name":"PaymentMade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"AddedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"setWhat","type":"bytes32"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SetBackend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"DeprecatedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"CommunityBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"packed","type":"uint256"}],"name":"ManuallyAddedBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/ixEvents.bin b/dist/2018-06-18-ix-deployment/bb_farm/ixEvents.bin new file mode 100644 index 0000000..6a9d8b3 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/ixEvents.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820e7c2b0dd9ada27f94509e949dca4c912b2b99707094fa6dfc6c2e9eaaecc86db0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/ixPaymentEvents.abi b/dist/2018-06-18-ix-deployment/bb_farm/ixPaymentEvents.abi new file mode 100644 index 0000000..7dcdc0b --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/ixPaymentEvents.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/ixPaymentEvents.bin b/dist/2018-06-18-ix-deployment/bb_farm/ixPaymentEvents.bin new file mode 100644 index 0000000..56d388f --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/ixPaymentEvents.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820aba693c1b6cf0f6d91d6d3f4380be8356c7d78fbb7860251b254d4506552a1650029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/owned.abi b/dist/2018-06-18-ix-deployment/bb_farm/owned.abi new file mode 100644 index 0000000..7ce5118 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/owned.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/owned.bin b/dist/2018-06-18-ix-deployment/bb_farm/owned.bin new file mode 100644 index 0000000..8e4eabd --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/owned.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b5060008054600160a060020a031916331790556101fa806100326000396000f30060806040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af403581146100505780638da5cb5b14610080575b600080fd5b34801561005c57600080fd5b5061007e73ffffffffffffffffffffffffffffffffffffffff600435166100be565b005b34801561008c57600080fd5b506100956101b2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60005473ffffffffffffffffffffffffffffffffffffffff16331461014457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582030de12f5b56bf8ad052c72716c2b0ce9ec3c9c18a8ab093626a2f3c7cfe72b140029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/payoutAllC.abi b/dist/2018-06-18-ix-deployment/bb_farm/payoutAllC.abi new file mode 100644 index 0000000..0b3e301 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/payoutAllC.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"initPayTo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/payoutAllC.bin b/dist/2018-06-18-ix-deployment/bb_farm/payoutAllC.bin new file mode 100644 index 0000000..3cde122 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/payoutAllC.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506040516020806103268339810160405251600160a060020a038116151561003457fe5b60008054600160a060020a039092166101000261010060a860020a03199092169190911790556102bd806100696000396000f3006080604052600436106100405763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634da2317f8114610045575b600080fd5b34801561005157600080fd5b5061005a61005c565b005b6000806100676100cb565b915050303161007682826100ec565b6040805173ffffffffffffffffffffffffffffffffffffffff841681526020810183905281517fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd2562472929181900390910190a15050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b6101078260206040519081016040528060008152508361010b565b5050565b60005460ff161561017d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f73732d6775617264000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000805460ff19166001178155604051835173ffffffffffffffffffffffffffffffffffffffff861692849286929091829160208501918190849084905b838110156101d35781810151838201526020016101bb565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af192505050151561028257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f73732d6661696c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50506000805460ff19169055505600a165627a7a72305820855f45412adecb2e5a5fc6db9d3c8b5d61cbe6c8d8f3b72664f75f642ab40d160029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/payoutAllCSettable.abi b/dist/2018-06-18-ix-deployment/bb_farm/payoutAllCSettable.abi new file mode 100644 index 0000000..5da8fc9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/payoutAllCSettable.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"}],"name":"setPayTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getPayTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"initPayTo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/payoutAllCSettable.bin b/dist/2018-06-18-ix-deployment/bb_farm/payoutAllCSettable.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/bb_farm/permissioned.abi b/dist/2018-06-18-ix-deployment/bb_farm/permissioned.abi new file mode 100644 index 0000000..b7ef45f --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/permissioned.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/permissioned.bin b/dist/2018-06-18-ix-deployment/bb_farm/permissioned.bin new file mode 100644 index 0000000..5eb6054 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/permissioned.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1990811690915560068054909116905534801561002b57600080fd5b5060008054600160a060020a0319163390811790915561005590600164010000000061005a810204565b610151565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561011857604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a03841617905561014d565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b610dfc806101606000396000f3006080604052600436106100e55763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663105689a081146100ea57806313af4035146101015780631ffa27f91461012257806321fb98691461015757806324d7806c1461018b5780633c205b05146101ac578063407a5c92146101d35780634681067d146101e85780634b0bddd2146101fd5780635341903b1461022357806354924aec146102445780636165234c1461025957806377410c031461027f57806381bd66fe146102945780638da5cb5b146102b5578063b2461b15146102ca575b600080fd5b3480156100f657600080fd5b506100ff6102f1565b005b34801561010d57600080fd5b506100ff600160a060020a03600435166103ee565b34801561012e57600080fd5b50610143600160a060020a03600435166104b1565b604080519115158252519081900360200190f35b34801561016357600080fd5b5061016f6004356104cf565b60408051600160a060020a039092168252519081900360200190f35b34801561019757600080fd5b50610143600160a060020a03600435166104fb565b3480156101b857600080fd5b506101c1610528565b60408051918252519081900360200190f35b3480156101df57600080fd5b506101c161052e565b3480156101f457600080fd5b506100ff610534565b34801561020957600080fd5b506100ff600160a060020a036004351660243515156105ee565b34801561022f57600080fd5b506100ff600160a060020a0360043516610735565b34801561025057600080fd5b50610143610811565b34801561026557600080fd5b506100ff600160a060020a0360043516602435151561081a565b34801561028b57600080fd5b506101436109b9565b3480156102a057600080fd5b506100ff600160a060020a03600435166109c2565b3480156102c157600080fd5b5061016f610ad4565b3480156102d657600080fd5b506100ff600160a060020a0360043581169060243516610ae3565b600054600160a060020a03163314610353576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60065460ff16156103ae576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b6103b6610c49565b6006805460ff191660011790556040517f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20590600090a1565b600054600160a060020a03163314610450576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b600160a060020a031660009081526005602052604090205460ff1690565b60006004828154811015156104e057fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b60025481565b60045490565b600054600160a060020a03163314610596576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615610637576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610640336104fb565b1515610684576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a03821633148015906106ab5750600054600160a060020a03838116911614155b1515610727576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b6107318282610c8d565b5050565b3360009081526005602052604090205460ff16151561079e576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c795f656469746f72733a20666f7262696464656e000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320805460ff19908116909155600160a060020a038616808552938290208054909116600117905580519384529083019190915280517f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a9281900390910190a150565b60035460ff1681565b60065460ff1615610875576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff16156108be576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b6108c7336104fb565b151561090b576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600560205260409020805460ff191682158015919091179091556109795760408051600160a060020a038416815290517fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c69181900360200190a1610731565b60408051600160a060020a038416815290517f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c9219181900360200190a15050565b60065460ff1681565b60035460ff1615610a0b576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610a14336104fb565b1515610a58576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600054600160a060020a0316331415610abb576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b610ac6336000610c8d565b610ad1816001610c8d565b50565b600054600160a060020a031681565b60065460ff1615610b3e576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff1615610b87576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610b90336104fb565b1515610bd4576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a038083166000818152600560209081526040808320805460ff19908116909155948616808452928190208054909516600117909455835192835282015281517f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b58929181900390910190a15050565b6002805460019081019091556003805460ff191690911790556040517fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a190600090a1565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff19168215801591909117909155610d5857604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416179055610731565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25050560061646d696e73206d757374206e6f742062652064697361626c656400000000006f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000a165627a7a723058206bffab2d68ea9612fb24284fe3666ec170228095a8fcd72e0aa0fed9a4647c8a0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/safeSend.abi b/dist/2018-06-18-ix-deployment/bb_farm/safeSend.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/safeSend.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/safeSend.bin b/dist/2018-06-18-ix-deployment/bb_farm/safeSend.bin new file mode 100644 index 0000000..b1fba73 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/safeSend.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820a99f508093829c8d5b513a0a201f15a3096c3949ea8e2733cab2e30f6ba51f540029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/upgradePtr.abi b/dist/2018-06-18-ix-deployment/bb_farm/upgradePtr.abi new file mode 100644 index 0000000..c8fab44 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/upgradePtr.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"getUpgradePointer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/bb_farm/upgradePtr.bin b/dist/2018-06-18-ix-deployment/bb_farm/upgradePtr.bin new file mode 100644 index 0000000..0039aef --- /dev/null +++ b/dist/2018-06-18-ix-deployment/bb_farm/upgradePtr.bin @@ -0,0 +1 @@ +608060405260008054600160a060020a031916905534801561002057600080fd5b5060c68061002f6000396000f300608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663a76f354381146043575b600080fd5b348015604e57600080fd5b506055607e565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60005473ffffffffffffffffffffffffffffffffffffffff16905600a165627a7a723058200714382c70858b08a5ac554121bfbb11a0ee96a7219c7c5540d79d01bf58acef0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/CommAuctionIface.abi b/dist/2018-06-18-ix-deployment/community_auction/CommAuctionIface.abi new file mode 100644 index 0000000..3d9682f --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/CommAuctionIface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"noteBallotDeployed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getNextPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/CommAuctionIface.bin b/dist/2018-06-18-ix-deployment/community_auction/CommAuctionIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/community_auction/CommunityAuctionSimple.abi b/dist/2018-06-18-ix-deployment/community_auction/CommunityAuctionSimple.abi new file mode 100644 index 0000000..88a2d0a --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/CommunityAuctionSimple.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"d","type":"bytes32"}],"name":"noteBallotDeployed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"ballotLog","outputs":[{"name":"democHash","type":"bytes32"},{"name":"ts","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"getNextPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","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":"newPrice","type":"uint256"}],"name":"setPriceWei","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"getBallotLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"upgrades","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"commBallotPriceWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/CommunityAuctionSimple.bin b/dist/2018-06-18-ix-deployment/community_auction/CommunityAuctionSimple.bin new file mode 100644 index 0000000..691720c --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/CommunityAuctionSimple.bin @@ -0,0 +1 @@ +60806040526605ebd31295fe8060015560008054600160a060020a031916331790556104e5806100306000396000f3006080604052600436106100a35763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630ba5890a81146100a85780630d5be2df146100c25780630ee95ecf146100ff57806313af4035146101295780635341903b1461014a5780638da5cb5b1461016b578063c1e4dfda1461019c578063c98a79fb146101b4578063ca9d39ee146101d5578063d36ae26b146101f6575b600080fd5b3480156100b457600080fd5b506100c060043561020b565b005b3480156100ce57600080fd5b506100e6600160a060020a0360043516602435610275565b6040805192835260208301919091528051918290030190f35b34801561010b57600080fd5b506101176004356102b0565b60408051918252519081900360200190f35b34801561013557600080fd5b506100c0600160a060020a03600435166102b7565b34801561015657600080fd5b506100c0600160a060020a0360043516610391565b34801561017757600080fd5b506101806103f0565b60408051600160a060020a039092168252519081900360200190f35b3480156101a857600080fd5b506100c06004356103ff565b3480156101c057600080fd5b50610117600160a060020a036004351661047d565b3480156101e157600080fd5b50610180600160a060020a0360043516610498565b34801561020257600080fd5b506101176104b3565b33600090815260036020526040902054600160a060020a03161561022e57600080fd5b336000908152600260208181526040808420815180830190925294815242818301908152855460018181018855968652929094209051919092029091019081559051910155565b60026020528160005260406000208181548110151561029057fe5b600091825260209091206002909102018054600190910154909250905082565b5060015490565b600054600160a060020a0316331461033057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b33600090815260036020526040902054600160a060020a0316156103b457600080fd5b336000908152600360205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b600054600160a060020a0316331461047857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600155565b600160a060020a031660009081526002602052604090205490565b600360205260009081526040902054600160a060020a031681565b600154815600a165627a7a72305820d84a5ac799e5c0240023daf0d5a20726936d825f5c847e77af1f6a879734c8820029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/ERC20Interface.abi b/dist/2018-06-18-ix-deployment/community_auction/ERC20Interface.abi new file mode 100644 index 0000000..c34da32 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/ERC20Interface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/ERC20Interface.bin b/dist/2018-06-18-ix-deployment/community_auction/ERC20Interface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/community_auction/controlledIface.abi b/dist/2018-06-18-ix-deployment/community_auction/controlledIface.abi new file mode 100644 index 0000000..a7f2789 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/controlledIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/controlledIface.bin b/dist/2018-06-18-ix-deployment/community_auction/controlledIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/community_auction/hasAdmins.abi b/dist/2018-06-18-ix-deployment/community_auction/hasAdmins.abi new file mode 100644 index 0000000..7bd1476 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/hasAdmins.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/hasAdmins.bin b/dist/2018-06-18-ix-deployment/community_auction/hasAdmins.bin new file mode 100644 index 0000000..63e551c --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/hasAdmins.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1916905534801561001f57600080fd5b5060008054600160a060020a0319163390811790915561004990600164010000000061004e810204565b610145565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561010c57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a038416179055610141565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b6107c0806101546000396000f3006080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af403581146100a857806321fb9869146100cb57806324d7806c146100ff5780633c205b0514610134578063407a5c921461015b5780634681067d146101705780634b0bddd21461018557806354924aec146101ab57806381bd66fe146101c05780638da5cb5b146101e1575b600080fd5b3480156100b457600080fd5b506100c9600160a060020a03600435166101f6565b005b3480156100d757600080fd5b506100e36004356102b9565b60408051600160a060020a039092168252519081900360200190f35b34801561010b57600080fd5b50610120600160a060020a03600435166102e5565b604080519115158252519081900360200190f35b34801561014057600080fd5b50610149610312565b60408051918252519081900360200190f35b34801561016757600080fd5b50610149610318565b34801561017c57600080fd5b506100c961031e565b34801561019157600080fd5b506100c9600160a060020a036004351660243515156103d8565b3480156101b757600080fd5b50610120610543565b3480156101cc57600080fd5b506100c9600160a060020a036004351661054c565b3480156101ed57600080fd5b506100e3610682565b600054600160a060020a03163314610258576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60006004828154811015156102ca57fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b60025481565b60045490565b600054600160a060020a03163314610380576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615610433576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b61043c336102e5565b1515610492576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600160a060020a03821633148015906104b95750600054600160a060020a03838116911614155b1515610535576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b61053f8282610691565b5050565b60035460ff1681565b60035460ff16156105a7576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b6105b0336102e5565b1515610606576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331415610669576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b610674336000610691565b61067f816001610691565b50565b600054600160a060020a031681565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561075c57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03841617905561053f565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250505600a165627a7a72305820d202ffe17858d970cce6afefe30d21bab66c188192fcf455bd83c8be96bf10ed0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/owned.abi b/dist/2018-06-18-ix-deployment/community_auction/owned.abi new file mode 100644 index 0000000..7ce5118 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/owned.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/owned.bin b/dist/2018-06-18-ix-deployment/community_auction/owned.bin new file mode 100644 index 0000000..26eb97e --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/owned.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b5060008054600160a060020a031916331790556101fa806100326000396000f30060806040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af403581146100505780638da5cb5b14610080575b600080fd5b34801561005c57600080fd5b5061007e73ffffffffffffffffffffffffffffffffffffffff600435166100be565b005b34801561008c57600080fd5b506100956101b2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60005473ffffffffffffffffffffffffffffffffffffffff16331461014457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820125d4a155d4fd840c9d2af69ea4b79c6e617c431ee7237a30a6092b4164a58fe0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/payoutAllC.abi b/dist/2018-06-18-ix-deployment/community_auction/payoutAllC.abi new file mode 100644 index 0000000..0b3e301 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/payoutAllC.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"initPayTo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/payoutAllC.bin b/dist/2018-06-18-ix-deployment/community_auction/payoutAllC.bin new file mode 100644 index 0000000..e5bf969 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/payoutAllC.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506040516020806103268339810160405251600160a060020a038116151561003457fe5b60008054600160a060020a039092166101000261010060a860020a03199092169190911790556102bd806100696000396000f3006080604052600436106100405763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634da2317f8114610045575b600080fd5b34801561005157600080fd5b5061005a61005c565b005b6000806100676100cb565b915050303161007682826100ec565b6040805173ffffffffffffffffffffffffffffffffffffffff841681526020810183905281517fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd2562472929181900390910190a15050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b6101078260206040519081016040528060008152508361010b565b5050565b60005460ff161561017d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f73732d6775617264000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000805460ff19166001178155604051835173ffffffffffffffffffffffffffffffffffffffff861692849286929091829160208501918190849084905b838110156101d35781810151838201526020016101bb565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af192505050151561028257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f73732d6661696c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50506000805460ff19169055505600a165627a7a72305820719e58fbf67b9eb1b06ac3a5440e730fc0679b22aade8fa80e9d42148e631cde0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/payoutAllCSettable.abi b/dist/2018-06-18-ix-deployment/community_auction/payoutAllCSettable.abi new file mode 100644 index 0000000..5da8fc9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/payoutAllCSettable.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"}],"name":"setPayTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getPayTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"initPayTo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/payoutAllCSettable.bin b/dist/2018-06-18-ix-deployment/community_auction/payoutAllCSettable.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/community_auction/permissioned.abi b/dist/2018-06-18-ix-deployment/community_auction/permissioned.abi new file mode 100644 index 0000000..b7ef45f --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/permissioned.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/permissioned.bin b/dist/2018-06-18-ix-deployment/community_auction/permissioned.bin new file mode 100644 index 0000000..7dcc70a --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/permissioned.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1990811690915560068054909116905534801561002b57600080fd5b5060008054600160a060020a0319163390811790915561005590600164010000000061005a810204565b610151565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561011857604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a03841617905561014d565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b610dfc806101606000396000f3006080604052600436106100e55763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663105689a081146100ea57806313af4035146101015780631ffa27f91461012257806321fb98691461015757806324d7806c1461018b5780633c205b05146101ac578063407a5c92146101d35780634681067d146101e85780634b0bddd2146101fd5780635341903b1461022357806354924aec146102445780636165234c1461025957806377410c031461027f57806381bd66fe146102945780638da5cb5b146102b5578063b2461b15146102ca575b600080fd5b3480156100f657600080fd5b506100ff6102f1565b005b34801561010d57600080fd5b506100ff600160a060020a03600435166103ee565b34801561012e57600080fd5b50610143600160a060020a03600435166104b1565b604080519115158252519081900360200190f35b34801561016357600080fd5b5061016f6004356104cf565b60408051600160a060020a039092168252519081900360200190f35b34801561019757600080fd5b50610143600160a060020a03600435166104fb565b3480156101b857600080fd5b506101c1610528565b60408051918252519081900360200190f35b3480156101df57600080fd5b506101c161052e565b3480156101f457600080fd5b506100ff610534565b34801561020957600080fd5b506100ff600160a060020a036004351660243515156105ee565b34801561022f57600080fd5b506100ff600160a060020a0360043516610735565b34801561025057600080fd5b50610143610811565b34801561026557600080fd5b506100ff600160a060020a0360043516602435151561081a565b34801561028b57600080fd5b506101436109b9565b3480156102a057600080fd5b506100ff600160a060020a03600435166109c2565b3480156102c157600080fd5b5061016f610ad4565b3480156102d657600080fd5b506100ff600160a060020a0360043581169060243516610ae3565b600054600160a060020a03163314610353576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60065460ff16156103ae576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b6103b6610c49565b6006805460ff191660011790556040517f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20590600090a1565b600054600160a060020a03163314610450576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b600160a060020a031660009081526005602052604090205460ff1690565b60006004828154811015156104e057fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b60025481565b60045490565b600054600160a060020a03163314610596576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615610637576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610640336104fb565b1515610684576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a03821633148015906106ab5750600054600160a060020a03838116911614155b1515610727576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b6107318282610c8d565b5050565b3360009081526005602052604090205460ff16151561079e576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c795f656469746f72733a20666f7262696464656e000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320805460ff19908116909155600160a060020a038616808552938290208054909116600117905580519384529083019190915280517f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a9281900390910190a150565b60035460ff1681565b60065460ff1615610875576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff16156108be576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b6108c7336104fb565b151561090b576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600560205260409020805460ff191682158015919091179091556109795760408051600160a060020a038416815290517fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c69181900360200190a1610731565b60408051600160a060020a038416815290517f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c9219181900360200190a15050565b60065460ff1681565b60035460ff1615610a0b576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610a14336104fb565b1515610a58576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600054600160a060020a0316331415610abb576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b610ac6336000610c8d565b610ad1816001610c8d565b50565b600054600160a060020a031681565b60065460ff1615610b3e576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff1615610b87576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610b90336104fb565b1515610bd4576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a038083166000818152600560209081526040808320805460ff19908116909155948616808452928190208054909516600117909455835192835282015281517f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b58929181900390910190a15050565b6002805460019081019091556003805460ff191690911790556040517fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a190600090a1565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff19168215801591909117909155610d5857604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416179055610731565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25050560061646d696e73206d757374206e6f742062652064697361626c656400000000006f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000a165627a7a723058200491456123d5a00eaa9a576093f9a6eceacac693c76d4f8a597fed05cba1cf270029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/safeSend.abi b/dist/2018-06-18-ix-deployment/community_auction/safeSend.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/safeSend.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/safeSend.bin b/dist/2018-06-18-ix-deployment/community_auction/safeSend.bin new file mode 100644 index 0000000..8a67327 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/safeSend.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a7230582086cd9d44b439605748f90490b851a27d151d2ae3cf49bc68a041939cd4116b570029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/upgradePtr.abi b/dist/2018-06-18-ix-deployment/community_auction/upgradePtr.abi new file mode 100644 index 0000000..c8fab44 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/upgradePtr.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"getUpgradePointer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/community_auction/upgradePtr.bin b/dist/2018-06-18-ix-deployment/community_auction/upgradePtr.bin new file mode 100644 index 0000000..379b4db --- /dev/null +++ b/dist/2018-06-18-ix-deployment/community_auction/upgradePtr.bin @@ -0,0 +1 @@ +608060405260008054600160a060020a031916905534801561002057600080fd5b5060c68061002f6000396000f300608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663a76f354381146043575b600080fd5b348015604e57600080fd5b506055607e565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60005473ffffffffffffffffffffffffffffffffffffffff16905600a165627a7a72305820abc1f06e43c4498069bbaaea3990d8578a8b30ee303fc88f4a7bbdd159bf875e0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/ENSIface.abi b/dist/2018-06-18-ix-deployment/ens_owner_proxy/ENSIface.abi new file mode 100644 index 0000000..c4368c8 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/ENSIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"label","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/ENSIface.bin b/dist/2018-06-18-ix-deployment/ens_owner_proxy/ENSIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/ERC20Interface.abi b/dist/2018-06-18-ix-deployment/ens_owner_proxy/ERC20Interface.abi new file mode 100644 index 0000000..c34da32 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/ERC20Interface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/ERC20Interface.bin b/dist/2018-06-18-ix-deployment/ens_owner_proxy/ERC20Interface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/EnsOwnerProxy.abi b/dist/2018-06-18-ix-deployment/ens_owner_proxy/EnsOwnerProxy.abi new file mode 100644 index 0000000..81694d3 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/EnsOwnerProxy.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes"}],"name":"fwdToResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ens","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"returnToOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes"}],"name":"fwdToENS","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ensNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ensNode","type":"bytes32"},{"name":"_ens","type":"address"},{"name":"_resolver","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/EnsOwnerProxy.abi.json b/dist/2018-06-18-ix-deployment/ens_owner_proxy/EnsOwnerProxy.abi.json new file mode 100644 index 0000000..81694d3 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/EnsOwnerProxy.abi.json @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes"}],"name":"fwdToResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ens","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"returnToOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes"}],"name":"fwdToENS","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ensNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ensNode","type":"bytes32"},{"name":"_ens","type":"address"},{"name":"_resolver","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/EnsOwnerProxy.bin b/dist/2018-06-18-ix-deployment/ens_owner_proxy/EnsOwnerProxy.bin new file mode 100644 index 0000000..cd96805 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/EnsOwnerProxy.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1916905534801561001f57600080fd5b50604051606080610e6983398101604090815281516020830151919092015160008054600160a060020a0319163390811790915561006790600164010000000061009e810204565b60059290925560068054600160a060020a03928316600160a060020a03199182161790915560078054929093169116179055610195565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561015c57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a038416179055610191565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b610cc5806101a46000396000f3006080604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166304f3bcec81146100f557806313af40351461012657806321fb98691461014957806324d7806c146101615780633b7616ff146101965780633c205b05146101b65780633f15457f146101dd578063407a5c92146101f25780634681067d146102075780634b0bddd21461021c57806354924aec1461024257806381bd66fe146102575780638da5cb5b146102785780638ecc09501461028d578063beb9df86146102a2578063d1d80fdf146102c2578063ddbcf3a1146102e3575b600080fd5b34801561010157600080fd5b5061010a6102f8565b60408051600160a060020a039092168252519081900360200190f35b34801561013257600080fd5b50610147600160a060020a0360043516610307565b005b34801561015557600080fd5b5061010a6004356103b8565b34801561016d57600080fd5b50610182600160a060020a03600435166103e4565b604080519115158252519081900360200190f35b3480156101a257600080fd5b506101476004803560248101910135610411565b3480156101c257600080fd5b506101cb6104f2565b60408051918252519081900360200190f35b3480156101e957600080fd5b5061010a6104f8565b3480156101fe57600080fd5b506101cb610507565b34801561021357600080fd5b5061014761050d565b34801561022857600080fd5b50610147600160a060020a036004351660243515156105b5565b34801561024e57600080fd5b5061018261071c565b34801561026357600080fd5b50610147600160a060020a0360043516610725565b34801561028457600080fd5b5061010a61085b565b34801561029957600080fd5b5061014761086a565b3480156102ae57600080fd5b506101476004803560248101910135610944565b3480156102ce57600080fd5b50610147600160a060020a0360043516610a21565b3480156102ef57600080fd5b506101cb610ae4565b600754600160a060020a031681565b600054600160a060020a03163314610357576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610c7a833981519152604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60006004828154811015156103c957fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b600054600160a060020a03163314610461576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610c7a833981519152604482015290519081900360640190fd5b600754604051600160a060020a039091169083908390808383808284378201915050925050506000604051808303816000865af191505015156104ee576040805160e560020a62461bcd02815260206004820152601960248201527f667764696e6720746f207265736f6c766572206661696c656400000000000000604482015290519081900360640190fd5b5050565b60025481565b600654600160a060020a031681565b60045490565b600054600160a060020a0316331461055d576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610c7a833981519152604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615610610576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b610619336103e4565b151561066f576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600160a060020a03821633148015906106965750600054600160a060020a03838116911614155b1515610712576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b6104ee8282610aea565b60035460ff1681565b60035460ff1615610780576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b610789336103e4565b15156107df576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331415610842576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b61084d336000610aea565b610858816001610aea565b50565b600054600160a060020a031681565b600054600160a060020a031633146108ba576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610c7a833981519152604482015290519081900360640190fd5b60065460055460008054604080517f5b0fc9c30000000000000000000000000000000000000000000000000000000081526004810194909452600160a060020a03918216602485015251931692635b0fc9c392604480820193929182900301818387803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b50505050565b600054600160a060020a03163314610994576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610c7a833981519152604482015290519081900360640190fd5b600654604051600160a060020a039091169083908390808383808284378201915050925050506000604051808303816000865af191505015156104ee576040805160e560020a62461bcd02815260206004820152601460248201527f667764696e6720746f20656e73206661696c6564000000000000000000000000604482015290519081900360640190fd5b60035460ff1615610a7c576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b610a85336103e4565b1515610adb576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b61085881610bed565b60055481565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff19168215801591909117909155610bb557604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384161790556104ee565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25050565b600754600554604080517fd5fa2b000000000000000000000000000000000000000000000000000000000081526004810192909252600160a060020a038481166024840152905192169163d5fa2b009160448082019260009290919082900301818387803b158015610c5e57600080fd5b505af1158015610c72573d6000803e3d6000fd5b505050505056006f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000a165627a7a72305820e786e29ffd886b21665b8087a5fc8f37cadd9c281a6e1c87cfdf3dec74e55b390029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/PublicResolver.abi b/dist/2018-06-18-ix-deployment/ens_owner_proxy/PublicResolver.abi new file mode 100644 index 0000000..0fdbafe --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/PublicResolver.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"key","type":"string"},{"name":"value","type":"string"}],"name":"setText","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"},{"name":"contentTypes","type":"uint256"}],"name":"ABI","outputs":[{"name":"contentType","type":"uint256"},{"name":"data","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"x","type":"bytes32"},{"name":"y","type":"bytes32"}],"name":"setPubkey","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"content","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"addr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"},{"name":"key","type":"string"}],"name":"text","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"contentType","type":"uint256"},{"name":"data","type":"bytes"}],"name":"setABI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"hash","type":"bytes32"}],"name":"setContent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"pubkey","outputs":[{"name":"x","type":"bytes32"},{"name":"y","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"addr","type":"address"}],"name":"setAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"ensAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"a","type":"address"}],"name":"AddrChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"hash","type":"bytes32"}],"name":"ContentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"name","type":"string"}],"name":"NameChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"contentType","type":"uint256"}],"name":"ABIChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"x","type":"bytes32"},{"indexed":false,"name":"y","type":"bytes32"}],"name":"PubkeyChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"indexedKey","type":"string"},{"indexed":false,"name":"key","type":"string"}],"name":"TextChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/PublicResolver.bin b/dist/2018-06-18-ix-deployment/ens_owner_proxy/PublicResolver.bin new file mode 100644 index 0000000..3533084 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/PublicResolver.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506040516020806111f3833981016040525160008054600160a060020a03909216600160a060020a03199092169190911790556111a1806100526000396000f3006080604052600436106100c45763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146100c957806310f13a8c146100ff5780632203ab561461019d57806329cd62ea146102375780632dff6941146102555780633b3b57de1461027f57806359d1d43c146102b3578063623195b014610386578063691f3431146103e657806377372213146103fe578063c3d014d61461045c578063c869023314610477578063d5fa2b00146104a8575b600080fd5b3480156100d557600080fd5b506100eb600160e060020a0319600435166104cc565b604080519115158252519081900360200190f35b34801561010b57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261019b95833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506106399650505050505050565b005b3480156101a957600080fd5b506101b8600435602435610863565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156101fb5781810151838201526020016101e3565b50505050905090810190601f1680156102285780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561024357600080fd5b5061019b60043560243560443561096f565b34801561026157600080fd5b5061026d600435610a73565b60408051918252519081900360200190f35b34801561028b57600080fd5b50610297600435610a89565b60408051600160a060020a039092168252519081900360200190f35b3480156102bf57600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610311958335953695604494919390910191908190840183828082843750949750610aa49650505050505050565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034b578181015183820152602001610333565b50505050905090810190601f1680156103785780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561039257600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261019b948235946024803595369594606494920191908190840183828082843750949750610bad9650505050505050565b3480156103f257600080fd5b50610311600435610cb2565b34801561040a57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261019b958335953695604494919390910191908190840183828082843750949750610d569650505050505050565b34801561046857600080fd5b5061019b600435602435610eb0565b34801561048357600080fd5b5061048f600435610f95565b6040805192835260208301919091528051918290030190f35b3480156104b457600080fd5b5061019b600435600160a060020a0360243516610fb2565b6000600160e060020a031982167f3b3b57de00000000000000000000000000000000000000000000000000000000148061052f5750600160e060020a031982167fd8389dc500000000000000000000000000000000000000000000000000000000145b806105635750600160e060020a031982167f691f343100000000000000000000000000000000000000000000000000000000145b806105975750600160e060020a031982167f2203ab5600000000000000000000000000000000000000000000000000000000145b806105cb5750600160e060020a031982167fc869023300000000000000000000000000000000000000000000000000000000145b806105ff5750600160e060020a031982167f59d1d43c00000000000000000000000000000000000000000000000000000000145b806106335750600160e060020a031982167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b6000805460408051600080516020611156833981519152815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561069057600080fd5b505af11580156106a4573d6000803e3d6000fd5b505050506040513d60208110156106ba57600080fd5b5051600160a060020a0316146106cf57600080fd5b6000848152600160209081526040918290209151855185936005019287929182918401908083835b602083106107165780518252601f1990920191602091820191016106f7565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101909320845161075795919491909101925090506110ba565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b838110156107c15781810151838201526020016107a9565b50505050905090810190601f1680156107ee5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610821578181015183820152602001610809565b50505050905090810190601f16801561084e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b60008281526001602081905260409091206060905b83831161096257828416158015906108b15750600083815260068201602052604081205460026000196101006001841615020190911604115b1561095757600083815260068201602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452909183018282801561094b5780601f106109205761010080835404028352916020019161094b565b820191906000526020600020905b81548152906001019060200180831161092e57829003601f168201915b50505050509150610967565b600290920291610878565b600092505b509250929050565b6000805460408051600080516020611156833981519152815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b1580156109c657600080fd5b505af11580156109da573d6000803e3d6000fd5b505050506040513d60208110156109f057600080fd5b5051600160a060020a031614610a0557600080fd5b604080518082018252848152602080820185815260008881526001835284902092516003840155516004909201919091558151858152908101849052815186927f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46928290030190a250505050565b6000908152600160208190526040909120015490565b600090815260016020526040902054600160a060020a031690565b600082815260016020908152604091829020915183516060936005019285929182918401908083835b60208310610aec5780518252601f199092019160209182019101610acd565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610ba05780601f10610b7557610100808354040283529160200191610ba0565b820191906000526020600020905b815481529060010190602001808311610b8357829003601f168201915b5050505050905092915050565b6000805460408051600080516020611156833981519152815260048101879052905186933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610c0457600080fd5b505af1158015610c18573d6000803e3d6000fd5b505050506040513d6020811015610c2e57600080fd5b5051600160a060020a031614610c4357600080fd5b6000198301831615610c5457600080fd5b600084815260016020908152604080832086845260060182529091208351610c7e928501906110ba565b50604051839085907faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe390600090a350505050565b6000818152600160208181526040928390206002908101805485516000199582161561010002959095011691909104601f81018390048302840183019094528383526060939091830182828015610d4a5780601f10610d1f57610100808354040283529160200191610d4a565b820191906000526020600020905b815481529060010190602001808311610d2d57829003601f168201915b50505050509050919050565b6000805460408051600080516020611156833981519152815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610dad57600080fd5b505af1158015610dc1573d6000803e3d6000fd5b505050506040513d6020811015610dd757600080fd5b5051600160a060020a031614610dec57600080fd5b60008381526001602090815260409091208351610e11926002909201918501906110ba565b50604080516020808252845181830152845186937fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f79387939092839283019185019080838360005b83811015610e71578181015183820152602001610e59565b50505050905090810190601f168015610e9e5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b6000805460408051600080516020611156833981519152815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b158015610f0757600080fd5b505af1158015610f1b573d6000803e3d6000fd5b505050506040513d6020811015610f3157600080fd5b5051600160a060020a031614610f4657600080fd5b6000838152600160208181526040928390209091018490558151848152915185927f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc92908290030190a2505050565b600090815260016020526040902060038101546004909101549091565b6000805460408051600080516020611156833981519152815260048101869052905185933393600160a060020a0316926302571be39260248083019360209383900390910190829087803b15801561100957600080fd5b505af115801561101d573d6000803e3d6000fd5b505050506040513d602081101561103357600080fd5b5051600160a060020a03161461104857600080fd5b600083815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386169081179091558251908152915185927f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd292908290030190a2505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106110fb57805160ff1916838001178555611128565b82800160010185558215611128579182015b8281111561112857825182559160200191906001019061110d565b50611134929150611138565b5090565b61115291905b80821115611134576000815560010161113e565b90560002571be300000000000000000000000000000000000000000000000000000000a165627a7a72305820a52e014808f357f98fc37f0f159e36d2cf4c3a92ace77fc4941a92628a0be0ca0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/SvEnsIface.abi b/dist/2018-06-18-ix-deployment/ens_owner_proxy/SvEnsIface.abi new file mode 100644 index 0000000..72cafd8 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/SvEnsIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"label","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/SvEnsIface.bin b/dist/2018-06-18-ix-deployment/ens_owner_proxy/SvEnsIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/controlledIface.abi b/dist/2018-06-18-ix-deployment/ens_owner_proxy/controlledIface.abi new file mode 100644 index 0000000..a7f2789 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/controlledIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/controlledIface.bin b/dist/2018-06-18-ix-deployment/ens_owner_proxy/controlledIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/hasAdmins.abi b/dist/2018-06-18-ix-deployment/ens_owner_proxy/hasAdmins.abi new file mode 100644 index 0000000..7bd1476 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/hasAdmins.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/hasAdmins.bin b/dist/2018-06-18-ix-deployment/ens_owner_proxy/hasAdmins.bin new file mode 100644 index 0000000..48178ef --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/hasAdmins.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1916905534801561001f57600080fd5b5060008054600160a060020a0319163390811790915561004990600164010000000061004e810204565b610145565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561010c57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a038416179055610141565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b6107c0806101546000396000f3006080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af403581146100a857806321fb9869146100cb57806324d7806c146100ff5780633c205b0514610134578063407a5c921461015b5780634681067d146101705780634b0bddd21461018557806354924aec146101ab57806381bd66fe146101c05780638da5cb5b146101e1575b600080fd5b3480156100b457600080fd5b506100c9600160a060020a03600435166101f6565b005b3480156100d757600080fd5b506100e36004356102b9565b60408051600160a060020a039092168252519081900360200190f35b34801561010b57600080fd5b50610120600160a060020a03600435166102e5565b604080519115158252519081900360200190f35b34801561014057600080fd5b50610149610312565b60408051918252519081900360200190f35b34801561016757600080fd5b50610149610318565b34801561017c57600080fd5b506100c961031e565b34801561019157600080fd5b506100c9600160a060020a036004351660243515156103d8565b3480156101b757600080fd5b50610120610543565b3480156101cc57600080fd5b506100c9600160a060020a036004351661054c565b3480156101ed57600080fd5b506100e3610682565b600054600160a060020a03163314610258576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60006004828154811015156102ca57fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b60025481565b60045490565b600054600160a060020a03163314610380576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615610433576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b61043c336102e5565b1515610492576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600160a060020a03821633148015906104b95750600054600160a060020a03838116911614155b1515610535576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b61053f8282610691565b5050565b60035460ff1681565b60035460ff16156105a7576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b6105b0336102e5565b1515610606576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331415610669576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b610674336000610691565b61067f816001610691565b50565b600054600160a060020a031681565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561075c57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03841617905561053f565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250505600a165627a7a72305820f3f379094b1d88ada45417f7b29d77ce10fcb2ba5c91bcc0d36e51a89cade4e40029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/owned.abi b/dist/2018-06-18-ix-deployment/ens_owner_proxy/owned.abi new file mode 100644 index 0000000..7ce5118 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/owned.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/owned.bin b/dist/2018-06-18-ix-deployment/ens_owner_proxy/owned.bin new file mode 100644 index 0000000..894f629 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/owned.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b5060008054600160a060020a031916331790556101fa806100326000396000f30060806040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af403581146100505780638da5cb5b14610080575b600080fd5b34801561005c57600080fd5b5061007e73ffffffffffffffffffffffffffffffffffffffff600435166100be565b005b34801561008c57600080fd5b506100956101b2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60005473ffffffffffffffffffffffffffffffffffffffff16331461014457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582074349d7c9f6029d66f5c095cb8ba4e0cb34d42f5e8e8b51c8cc9a4fb7477104c0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllC.abi b/dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllC.abi new file mode 100644 index 0000000..0b3e301 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllC.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"initPayTo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllC.bin b/dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllC.bin new file mode 100644 index 0000000..6346096 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllC.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506040516020806103268339810160405251600160a060020a038116151561003457fe5b60008054600160a060020a039092166101000261010060a860020a03199092169190911790556102bd806100696000396000f3006080604052600436106100405763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634da2317f8114610045575b600080fd5b34801561005157600080fd5b5061005a61005c565b005b6000806100676100cb565b915050303161007682826100ec565b6040805173ffffffffffffffffffffffffffffffffffffffff841681526020810183905281517fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd2562472929181900390910190a15050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b6101078260206040519081016040528060008152508361010b565b5050565b60005460ff161561017d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f73732d6775617264000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000805460ff19166001178155604051835173ffffffffffffffffffffffffffffffffffffffff861692849286929091829160208501918190849084905b838110156101d35781810151838201526020016101bb565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af192505050151561028257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f73732d6661696c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50506000805460ff19169055505600a165627a7a723058208b11cea3af4c342834885d83b2848ed15d03867b522b9dd550530bc94f1972750029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllCSettable.abi b/dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllCSettable.abi new file mode 100644 index 0000000..5da8fc9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllCSettable.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"}],"name":"setPayTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getPayTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"initPayTo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllCSettable.bin b/dist/2018-06-18-ix-deployment/ens_owner_proxy/payoutAllCSettable.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/permissioned.abi b/dist/2018-06-18-ix-deployment/ens_owner_proxy/permissioned.abi new file mode 100644 index 0000000..b7ef45f --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/permissioned.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/permissioned.bin b/dist/2018-06-18-ix-deployment/ens_owner_proxy/permissioned.bin new file mode 100644 index 0000000..d0d3b16 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/permissioned.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1990811690915560068054909116905534801561002b57600080fd5b5060008054600160a060020a0319163390811790915561005590600164010000000061005a810204565b610151565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561011857604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a03841617905561014d565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b610dfc806101606000396000f3006080604052600436106100e55763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663105689a081146100ea57806313af4035146101015780631ffa27f91461012257806321fb98691461015757806324d7806c1461018b5780633c205b05146101ac578063407a5c92146101d35780634681067d146101e85780634b0bddd2146101fd5780635341903b1461022357806354924aec146102445780636165234c1461025957806377410c031461027f57806381bd66fe146102945780638da5cb5b146102b5578063b2461b15146102ca575b600080fd5b3480156100f657600080fd5b506100ff6102f1565b005b34801561010d57600080fd5b506100ff600160a060020a03600435166103ee565b34801561012e57600080fd5b50610143600160a060020a03600435166104b1565b604080519115158252519081900360200190f35b34801561016357600080fd5b5061016f6004356104cf565b60408051600160a060020a039092168252519081900360200190f35b34801561019757600080fd5b50610143600160a060020a03600435166104fb565b3480156101b857600080fd5b506101c1610528565b60408051918252519081900360200190f35b3480156101df57600080fd5b506101c161052e565b3480156101f457600080fd5b506100ff610534565b34801561020957600080fd5b506100ff600160a060020a036004351660243515156105ee565b34801561022f57600080fd5b506100ff600160a060020a0360043516610735565b34801561025057600080fd5b50610143610811565b34801561026557600080fd5b506100ff600160a060020a0360043516602435151561081a565b34801561028b57600080fd5b506101436109b9565b3480156102a057600080fd5b506100ff600160a060020a03600435166109c2565b3480156102c157600080fd5b5061016f610ad4565b3480156102d657600080fd5b506100ff600160a060020a0360043581169060243516610ae3565b600054600160a060020a03163314610353576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60065460ff16156103ae576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b6103b6610c49565b6006805460ff191660011790556040517f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20590600090a1565b600054600160a060020a03163314610450576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b600160a060020a031660009081526005602052604090205460ff1690565b60006004828154811015156104e057fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b60025481565b60045490565b600054600160a060020a03163314610596576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615610637576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610640336104fb565b1515610684576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a03821633148015906106ab5750600054600160a060020a03838116911614155b1515610727576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b6107318282610c8d565b5050565b3360009081526005602052604090205460ff16151561079e576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c795f656469746f72733a20666f7262696464656e000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320805460ff19908116909155600160a060020a038616808552938290208054909116600117905580519384529083019190915280517f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a9281900390910190a150565b60035460ff1681565b60065460ff1615610875576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff16156108be576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b6108c7336104fb565b151561090b576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600560205260409020805460ff191682158015919091179091556109795760408051600160a060020a038416815290517fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c69181900360200190a1610731565b60408051600160a060020a038416815290517f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c9219181900360200190a15050565b60065460ff1681565b60035460ff1615610a0b576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610a14336104fb565b1515610a58576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600054600160a060020a0316331415610abb576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b610ac6336000610c8d565b610ad1816001610c8d565b50565b600054600160a060020a031681565b60065460ff1615610b3e576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff1615610b87576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610b90336104fb565b1515610bd4576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a038083166000818152600560209081526040808320805460ff19908116909155948616808452928190208054909516600117909455835192835282015281517f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b58929181900390910190a15050565b6002805460019081019091556003805460ff191690911790556040517fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a190600090a1565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff19168215801591909117909155610d5857604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416179055610731565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25050560061646d696e73206d757374206e6f742062652064697361626c656400000000006f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000a165627a7a723058204f4e2f79a44d442291a76c44bf1075240cffab0401df3670546d980b57e74cff0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/safeSend.abi b/dist/2018-06-18-ix-deployment/ens_owner_proxy/safeSend.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/safeSend.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/safeSend.bin b/dist/2018-06-18-ix-deployment/ens_owner_proxy/safeSend.bin new file mode 100644 index 0000000..f54c4c9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/safeSend.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a7230582048f9b79ea768bcd107eb36be9c1f691f7d9a96e591d19cb57deecc5a3ca2839f0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/upgradePtr.abi b/dist/2018-06-18-ix-deployment/ens_owner_proxy/upgradePtr.abi new file mode 100644 index 0000000..c8fab44 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/upgradePtr.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"getUpgradePointer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/ens_owner_proxy/upgradePtr.bin b/dist/2018-06-18-ix-deployment/ens_owner_proxy/upgradePtr.bin new file mode 100644 index 0000000..dcad3ab --- /dev/null +++ b/dist/2018-06-18-ix-deployment/ens_owner_proxy/upgradePtr.bin @@ -0,0 +1 @@ +608060405260008054600160a060020a031916905534801561002057600080fd5b5060c68061002f6000396000f300608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663a76f354381146043575b600080fd5b348015604e57600080fd5b506055607e565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60005473ffffffffffffffffffffffffffffffffffffffff16905600a165627a7a723058203f2215d2e6680819f28b2bdbd8c34b6bb1c18e3c9cdc055be263f9b9874e8c010029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/BBFarm.abi b/dist/2018-06-18-ix-deployment/sv_index/BBFarm.abi new file mode 100644 index 0000000..0caac6d --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/BBFarm.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getCreationTs","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"vote","type":"bytes32"},{"name":"extra","type":"bytes"}],"name":"submitVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"newOwner","type":"address"}],"name":"setBallotOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"setDeprecated","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getNBallots","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNamespace","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getSponsorsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"sponsorN","type":"uint256"}],"name":"getSponsor","outputs":[{"name":"sender","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"voteId","type":"uint256"}],"name":"getVote","outputs":[{"name":"voteData","type":"bytes32"},{"name":"sender","type":"address"},{"name":"extra","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"proxyReq","type":"bytes32[5]"},{"name":"extra","type":"bytes"}],"name":"submitProxyVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getTotalSponsorship","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"voter","type":"address"}],"name":"getDetails","outputs":[{"name":"hasVoted","type":"bool"},{"name":"nVotesCast","type":"uint256"},{"name":"secKey","type":"bytes32"},{"name":"submissionBits","type":"uint16"},{"name":"startTime","type":"uint64"},{"name":"endTime","type":"uint64"},{"name":"specHash","type":"bytes32"},{"name":"deprecated","type":"bool"},{"name":"ballotOwner","type":"address"},{"name":"extraData","type":"bytes16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"sk","type":"bytes32"}],"name":"revealSeckey","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"newEndTime","type":"uint64"}],"name":"setEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"sponsor","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"voter","type":"address"}],"name":"getSequenceNumber","outputs":[{"name":"sequence","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBBLibVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"specHash","type":"bytes32"},{"name":"packed","type":"uint256"},{"name":"ix","type":"address"},{"name":"bbAdmin","type":"address"},{"name":"extraData","type":"bytes24"}],"name":"initBallot","outputs":[{"name":"ballotId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Sponsorship","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"vote","type":"bytes32"},{"indexed":false,"name":"voter","type":"address"},{"indexed":false,"name":"extra","type":"bytes"}],"name":"Vote","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/BBFarm.bin b/dist/2018-06-18-ix-deployment/sv_index/BBFarm.bin new file mode 100644 index 0000000..2b8b466 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/BBFarm.bin @@ -0,0 +1 @@ +608060405260006002556000600360006101000a81548160ff0219169083151502179055506000600660006101000a81548160ff02191690831515021790555060006008553480156200005157600080fd5b5033336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000af33600162000270640100000000026401000000009004565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515620000e957fe5b80600660026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600673__./dist/SVIndex.sol:BBLib______________630d8e6e2c6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156200018e57600080fd5b505af4158015620001a3573d6000803e3d6000fd5b505050506040513d6020811015620001ba57600080fd5b8101908080519060200190929190505050141515620001d557fe5b7f9efcb9c0754671258cec21b6dce843609343e2240774fedbc3a062d6d79ed0f860017c01000000000000000000000000000000000000000000000000000000000260405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390a1620003d8565b8060016000600254815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801562000390578173ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a260048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620003d4565b8173ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a25b5050565b61377680620003e86000396000f3006080604052600436106101c1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806250a315146101c65780630425c3571461020757806307858f0e1461025a578063086ac6d7146102a75780630d8e6e2c146102d4578063105689a0146102ff57806313af4035146103165780631b58c943146103595780631ffa27f91461038457806321fb9869146103df57806324d7806c1461044c57806327ac4b70146104a75780632985aacf146105105780632f605106146105515780633c205b05146105cf578063407a5c92146105fa5780634681067d1461062557806349330cb81461063c5780634b0bddd21461072e5780634da2317f1461077d5780635341903b1461079457806354924aec146107d7578063579f20d814610806578063605de51d1461084b5780636165234c1461088c57806377410c03146108db57806381bd66fe1461090a5780638da5cb5b1461094d5780639115abf4146109a4578063930d54b414610ade57806397d5c6a114610b19578063b2461b1514610b5a578063b6cce5e214610bbd578063cdd1b53914610bdd578063d7f42ee214610c4a578063dbe7967914610c75575b600080fd5b3480156101d257600080fd5b506101f160048036038101908080359060200190929190505050610d19565b6040518082815260200191505060405180910390f35b34801561021357600080fd5b50610258600480360381019080803590602001909291908035600019169060200190929190803590602001908201803590602001919091929391929390505050610d2f565b005b34801561026657600080fd5b506102a560048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f88565b005b3480156102b357600080fd5b506102d260048036038101908080359060200190929190505050610fe6565b005b3480156102e057600080fd5b506102e961101d565b6040518082815260200191505060405180910390f35b34801561030b57600080fd5b50610314611026565b005b34801561032257600080fd5b50610357600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111c6565b005b34801561036557600080fd5b5061036e611330565b6040518082815260200191505060405180910390f35b34801561039057600080fd5b506103c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133a565b604051808215151515815260200191505060405180910390f35b3480156103eb57600080fd5b5061040a60048036038101908080359060200190929190505050611390565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561045857600080fd5b5061048d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d3565b604051808215151515815260200191505060405180910390f35b3480156104b357600080fd5b506104bc61143c565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561051c57600080fd5b5061053b60048036038101908080359060200190929190505050611464565b6040518082815260200191505060405180910390f35b34801561055d57600080fd5b50610586600480360381019080803590602001909291908035906020019092919050505061147d565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b3480156105db57600080fd5b506105e461154c565b6040518082815260200191505060405180910390f35b34801561060657600080fd5b5061060f611552565b6040518082815260200191505060405180910390f35b34801561063157600080fd5b5061063a61155f565b005b34801561064857600080fd5b5061067160048036038101908080359060200190929190803590602001909291905050506116cd565b6040518084600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156106f15780820151818401526020810190506106d6565b50505050905090810190601f16801561071e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34801561073a57600080fd5b5061077b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611701565b005b34801561078957600080fd5b5061079261193a565b005b3480156107a057600080fd5b506107d5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119da565b005b3480156107e357600080fd5b506107ec611be5565b604051808215151515815260200191505060405180910390f35b34801561081257600080fd5b506108496004803603810190808060a001909192919290803590602001908201803590602001919091929391929390505050611bf8565b005b34801561085757600080fd5b5061087660048036038101908080359060200190929190505050611ed1565b6040518082815260200191505060405180910390f35b34801561089857600080fd5b506108d9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611eeb565b005b3480156108e757600080fd5b506108f06121ab565b604051808215151515815260200191505060405180910390f35b34801561091657600080fd5b5061094b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121be565b005b34801561095957600080fd5b506109626123a4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109b057600080fd5b506109ef60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123c9565b604051808b1515151581526020018a815260200189600019166000191681526020018861ffff1661ffff1681526020018767ffffffffffffffff1667ffffffffffffffff1681526020018667ffffffffffffffff1667ffffffffffffffff1681526020018560001916600019168152602001841515151581526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff191681526020019a505050505050505050505060405180910390f35b348015610aea57600080fd5b50610b176004803603810190808035906020019092919080356000191690602001909291905050506124b1565b005b348015610b2557600080fd5b50610b5860048036038101908080359060200190929190803567ffffffffffffffff1690602001909291905050506124e8565b005b348015610b6657600080fd5b50610bbb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125ad565b005b610bdb6004803603810190808035906020019092919050505061288b565b005b348015610be957600080fd5b50610c2860048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061293a565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b348015610c5657600080fd5b50610c5f61295f565b6040518082815260200191505060405180910390f35b348015610c8157600080fd5b50610d03600480360381019080803560001916906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff19169060200190929190505050612a01565b6040518082815260200191505060405180910390f35b6000610d2482612cdd565b600a01549050919050565b8360017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660e0829060020a90047c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515610e2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6261642d6e616d6573706163650000000000000000000000000000000000000081525060200191505060405180910390fd5b610e3585612cdd565b73__./dist/SVIndex.sol:BBLib______________631f7c159c90918686866040518563ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180858152602001846000191660001916815260200180602001828103825284848281815260200192508082843782019150509550505050505060006040518083038186803b158015610ed357600080fd5b505af4158015610ee7573d6000803e3d6000fd5b50505050847fc36bca23f7acd356bf53dd9ba26e965997f89db6c92337e3960cbb2c5210199a853386866040518085600019166000191681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825284848281815260200192508082843782019150509550505050505060405180910390a25050505050565b6000610f9383612cdd565b9050610f9e81612d35565b818160090160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000610ff182612cdd565b9050610ffc81612d35565b60018160080160146101000a81548160ff0219169083151502179055505050565b60006002905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b60001515600660009054906101000a900460ff161515141515611175576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6e6f5f6c6f636b646f776e3a20636865636b206661696c65640000000000000081525060200191505060405180910390fd5b61117d612dff565b6001600660006101000a81548160ff0219169083151502179055507f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561128a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600854905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60006004828154811015156113a157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060016000600254815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600060017c010000000000000000000000000000000000000000000000000000000002905090565b600061146f82612cdd565b600701805490509050919050565b60008061148984612cdd565b73__./dist/SVIndex.sol:BBLib______________63d3b281639091856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182815260200192505050604080518083038186803b1580156114fc57600080fd5b505af4158015611510573d6000803e3d6000fd5b505050506040513d604081101561152657600080fd5b810190808051906020019092919080519060200190929190505050915091509250929050565b60025481565b6000600480549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611623576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6002600081548092919060010191905055506001806000600254815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a60405160405180910390a1565b60008060606116ed846116df87612cdd565b612e5a90919063ffffffff16565b508093508194508295505050509250925092565b60001515600360009054906101000a900460ff16151514151561178c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b611795336113d3565b1515611809576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561189257506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561192c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657281526020017f277329207065726d697373696f6e73000000000000000000000000000000000081525060400191505060405180910390fd5b6119368282612f81565b5050565b6000806119456130e7565b91503073ffffffffffffffffffffffffffffffffffffffff1631905061196b8282613110565b7fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd25624728282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611a9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b600360009054906101000a900460ff1681565b6000806000856003600581101515611c0c57fe5b6020020135600019166001900460017c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660e0829060020a90047c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515611d15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6261642d6e616d6573706163650000000000000000000000000000000000000081525060200191505060405180910390fd5b866003600581101515611d2457fe5b602002013560001916600190049350611d3c84612cdd565b73__./dist/SVIndex.sol:BBLib______________634575e6a390918989896040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600560200280828437820191505080602001828103825284848281815260200192508082843782019150509550505050505060206040518083038186803b158015611ddb57600080fd5b505af4158015611def573d6000803e3d6000fd5b505050506040513d6020811015611e0557600080fd5b81019080805190602001909291905050509250866004600581101515611e2757fe5b6020020135600019169150837fc36bca23f7acd356bf53dd9ba26e965997f89db6c92337e3960cbb2c5210199a838589896040518085600019166000191681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825284848281815260200192508082843782019150509550505050505060405180910390a250505050505050565b6000611ee4611edf83612cdd565b61312f565b9050919050565b60001515600660009054906101000a900460ff161515141515611f76576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6e6f5f6c6f636b646f776e3a20636865636b206661696c65640000000000000081525060200191505060405180910390fd5b60001515600360009054906101000a900460ff161515141515612001576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b61200a336113d3565b151561207e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612143577fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a16121a7565b7f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c92182604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b600660009054906101000a900460ff1681565b60001515600360009054906101000a900460ff161515141515612249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b612252336113d3565b15156122c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561238b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6f776e65722063616e6e6f7420757067726164652073656c660000000000000081525060200191505060405180910390fd5b612396336000612f81565b6123a1816001612f81565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000806000806000806000806123e48e612cdd565b91508160040154905060006124028e8461318090919063ffffffff16565b63ffffffff16118260010154836003015461241c846131dc565b612425856131ee565b61242e86613200565b87600501548860080160149054906101000a900460ff168960090160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168a60060160009054906101000a9004700100000000000000000000000000000000029b509b509b509b509b509b509b509b509b509b5050509295989b9194979a5092959850565b60006124bc83612cdd565b90506124c781612d35565b6124d08161320a565b6124e3828261329a90919063ffffffff16565b505050565b60006124f383612cdd565b90506124fe81612d35565b612507816132ea565b8073__./dist/SVIndex.sol:BBLib______________63520c2c839091846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018267ffffffffffffffff1667ffffffffffffffff1681526020019250505060006040518083038186803b15801561259057600080fd5b505af41580156125a4573d6000803e3d6000fd5b50505050505050565b60001515600660009054906101000a900460ff161515141515612638576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6e6f5f6c6f636b646f776e3a20636865636b206661696c65640000000000000081525060200191505060405180910390fd5b60001515600360009054906101000a900460ff1615151415156126c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b6126cc336113d3565b1515612740576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b588282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b600061289682612cdd565b90506128ab348261337690919063ffffffff16565b6128f76128f18260080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613428565b34613110565b7fed34dd96c912079eb7961c72c52b776c5da4e532cd4dbbf12ce51786547757698234604051808381526020018281526020019250505060405180910390a15050565b60006129578261294985612cdd565b61318090919063ffffffff16565b905092915050565b600073__./dist/SVIndex.sol:BBLib______________630d8e6e2c6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156129c157600080fd5b505af41580156129d5573d6000803e3d6000fd5b505050506040513d60208110156129eb57600080fd5b8101908080519060200190929190505050905090565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612ac4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b60e060017c0100000000000000000000000000000000000000000000000000000000027c010000000000000000000000000000000000000000000000000000000090049060020a0286600190047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16189050612b3b81612cdd565b73__./dist/SVIndex.sol:BBLib______________630dc6847f90918888888888680100000000000000009004700100000000000000000000000000000000026040518763ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018087815260200186600019166000191681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff19168152602001965050505050505060006040518083038186803b158015612c7457600080fd5b505af4158015612c88573d6000803e3d6000fd5b5050505060016008600082825401925050819055507f20f1b9a21ee397f1c57261849e4492865559e3da426f13a27e9d3abefafb45ed816040518082815260200191505060405180910390a195945050505050565b600060076000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050919050565b8060090160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612dfc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f21622d6f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50565b6002600081548092919060010191905055506001600360006101000a81548160ff0219169083151502179055507fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a160405160405180910390a1565b6000806060600085600001600086815260200190815260200160002060000154866000016000878152602001908152602001600020600101546001900487600001600088815260200190815260200160002060020160a08960000160008a815260200190815260200160002060010154600190049060020a9004818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612f695780601f10612f3e57610100808354040283529160200191612f69565b820191906000526020600020905b815481529060010190602001808311612f4c57829003601f168201915b50505050509150935093509350935092959194509250565b8060016000600254815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561309f578173ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a260048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506130e3565b8173ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a25b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61312b8260206040519081016040528060008152508361356e565b5050565b600080600090505b826007018054905081101561317a57826007018181548110151561315757fe5b906000526020600020906002020160010154820191508080600101915050613137565b50919050565b60008260020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905092915050565b60006080829060020a90049050919050565b60006040829060020a90049050919050565b6000819050919050565b6132178160040154613200565b67ffffffffffffffff1642111515613297576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f21622d636c6f736564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50565b808260030181600019169055507fa69839328d982396193483f2260936b1d1f2109fdde204b27c7ac3c1cfd18db08160405180826000191660001916815260200191505060405180910390a15050565b6132ff6132fa82600401546131dc565b613730565b1515613373576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f2174657374696e6700000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50565b8160070160408051908101604052803373ffffffffffffffffffffffffffffffffffffffff168152602001838152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050505050565b60008173ffffffffffffffffffffffffffffffffffffffff1663d56bd1426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561348e57600080fd5b505af11580156134a2573d6000803e3d6000fd5b505050506040513d60208110156134b857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663f1efb76a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561352c57600080fd5b505af1158015613540573d6000803e3d6000fd5b505050506040513d602081101561355657600080fd5b81019080805190602001909291905050509050919050565b60001515600660019054906101000a900460ff1615151415156135f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f73732d677561726400000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600660016101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff16818360405180828051906020019080838360005b8381101561365a57808201518184015260208101905061363f565b50505050905090810190601f1680156136875780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af1925050501515613710576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f73732d6661696c6564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600660016101000a81548160ff021916908315150217905550505050565b600061800061ffff16618000831661ffff161490509190505600a165627a7a7230582062ba44629ed25d2d5de23448d816e14133aa2d63e9cbf91edcf6e71ce99d7bf20029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/BBFarmEvents.abi b/dist/2018-06-18-ix-deployment/sv_index/BBFarmEvents.abi new file mode 100644 index 0000000..4721cf2 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/BBFarmEvents.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Sponsorship","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"vote","type":"bytes32"},{"indexed":false,"name":"voter","type":"address"},{"indexed":false,"name":"extra","type":"bytes"}],"name":"Vote","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/BBFarmEvents.bin b/dist/2018-06-18-ix-deployment/sv_index/BBFarmEvents.bin new file mode 100644 index 0000000..e2f5225 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/BBFarmEvents.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058209b54de11c97c8ab9b0aa472296a79ac86e7be4c6ca205f778c2929f2d9c074230029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/BBFarmIface.abi b/dist/2018-06-18-ix-deployment/sv_index/BBFarmIface.abi new file mode 100644 index 0000000..ca8efbc --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/BBFarmIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getCreationTs","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"vote","type":"bytes32"},{"name":"extra","type":"bytes"}],"name":"submitVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"newOwner","type":"address"}],"name":"setBallotOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"setDeprecated","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getNBallots","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNamespace","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getSponsorsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"sponsorN","type":"uint256"}],"name":"getSponsor","outputs":[{"name":"sender","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"voteId","type":"uint256"}],"name":"getVote","outputs":[{"name":"voteData","type":"bytes32"},{"name":"sender","type":"address"},{"name":"extra","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"proxyReq","type":"bytes32[5]"},{"name":"extra","type":"bytes"}],"name":"submitProxyVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"getTotalSponsorship","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"voter","type":"address"}],"name":"getDetails","outputs":[{"name":"hasVoted","type":"bool"},{"name":"nVotesCast","type":"uint256"},{"name":"secKey","type":"bytes32"},{"name":"submissionBits","type":"uint16"},{"name":"startTime","type":"uint64"},{"name":"endTime","type":"uint64"},{"name":"specHash","type":"bytes32"},{"name":"deprecated","type":"bool"},{"name":"ballotOwner","type":"address"},{"name":"extraData","type":"bytes16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"sk","type":"bytes32"}],"name":"revealSeckey","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"},{"name":"newEndTime","type":"uint64"}],"name":"setEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ballotId","type":"uint256"}],"name":"sponsor","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getBBLibVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"specHash","type":"bytes32"},{"name":"packed","type":"uint256"},{"name":"ix","type":"address"},{"name":"bbAdmin","type":"address"},{"name":"extraData","type":"bytes24"}],"name":"initBallot","outputs":[{"name":"ballotId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Sponsorship","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"vote","type":"bytes32"},{"indexed":false,"name":"voter","type":"address"},{"indexed":false,"name":"extra","type":"bytes"}],"name":"Vote","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/BBFarmIface.bin b/dist/2018-06-18-ix-deployment/sv_index/BBFarmIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index/BBLib.abi b/dist/2018-06-18-ix-deployment/sv_index/BBLib.abi new file mode 100644 index 0000000..84ecac6 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/BBLib.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"db","type":"BBLib.DB storage"},{"name":"_specHash","type":"bytes32"},{"name":"_packed","type":"uint256"},{"name":"ix","type":"IxIface"},{"name":"ballotOwner","type":"address"},{"name":"extraData","type":"bytes16"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"db","type":"BBLib.DB storage"},{"name":"voteData","type":"bytes32"},{"name":"extra","type":"bytes"}],"name":"submitVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"db","type":"BBLib.DB storage"},{"name":"proxyReq","type":"bytes32[5]"},{"name":"extra","type":"bytes"}],"name":"submitProxyVote","outputs":[{"name":"voter","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"db","type":"BBLib.DB storage"},{"name":"newEndTime","type":"uint64"}],"name":"setEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"db","type":"BBLib.DB storage"},{"name":"i","type":"uint256"}],"name":"getSponsor","outputs":[{"name":"sender","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_specHash","type":"bytes32"},{"indexed":false,"name":"startTs","type":"uint64"},{"indexed":false,"name":"endTs","type":"uint64"},{"indexed":false,"name":"submissionBits","type":"uint16"}],"name":"CreatedBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"voter","type":"address"},{"indexed":false,"name":"voteId","type":"uint256"}],"name":"SuccessfulVote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"secretKey","type":"bytes32"}],"name":"SeckeyRevealed","type":"event"},{"anonymous":false,"inputs":[],"name":"TestingEnabled","type":"event"},{"anonymous":false,"inputs":[],"name":"DeprecatedContract","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/BBLib.bin b/dist/2018-06-18-ix-deployment/sv_index/BBLib.bin new file mode 100644 index 0000000..55d9d44 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/BBLib.bin @@ -0,0 +1 @@ +61119c610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f300730000000000000000000000000000000000000000301460806040526004361061008f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d8e6e2c146100945780630dc6847f146100b25780631f7c159c146101545780634575e6a3146101a7578063520c2c8314610236578063d3b2816314610277575b600080fd5b61009c6102e8565b6040518082815260200191505060405180910390f35b8180156100be57600080fd5b5061015260048036038101908080359060200190929190803560001916906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080356fffffffffffffffffffffffffffffffff191690602001909291905050506102f1565b005b81801561016057600080fd5b506101a56004803603810190808035906020019092919080356000191690602001909291908035906020019082018035906020019190919293919293905050506107eb565b005b8180156101b357600080fd5b506101f4600480360381019080803590602001909291908060a0019091929192908035906020019082018035906020019190919293919293905050506108fb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b81801561024257600080fd5b5061027560048036038101908080359060200190929190803567ffffffffffffffff169060200190929190505050610ba7565b005b61029f6004803603810190808035906020019092919080359060200190929190505050610bd9565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b60006006905090565b600080600080600080600102600019168b600501546000191614151561037f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f622d65786973747300000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b878b60080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550868b60090160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061040e89610c4d565b80965081975082955050505061042383610c72565b9150811561045c577f641e6b9d2f3c463bec5b5cffe3f5017d9a49ad5543d2962eb746c6a7afa223c560405160405180910390a1610625565b428467ffffffffffffffff161115156104dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f6261642d656e642d74696d65000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000611ff2841661ffff1614151561055d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f6261642d7362000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61056683610c8c565b610571576000610574565b60015b61057d84610ca3565b61058857600061058b565b60015b0160ff166001149050801515610609576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f2176616c69642d7362000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b428567ffffffffffffffff16116106205742610622565b845b94505b6000600102600019168a60001916141515156106a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6e756c6c2d73706563486173680000000000000000000000000000000000000081525060200191505060405180910390fd5b898b60050181600019169055506106c1838686610cba565b8b60040181905550428b600a01819055506000700100000000000000000000000000000000026fffffffffffffffffffffffffffffffff1916866fffffffffffffffffffffffffffffffff191614151561075357858b60060160006101000a8154816fffffffffffffffffffffffffffffffff0219169083700100000000000000000000000000000000900402179055505b7f40465227f0da5abf3027c0e7bd71878ca5e6eff5a697a11f204b7a9ca11c0bb88b600501548686866040518085600019166000191681526020018467ffffffffffffffff1667ffffffffffffffff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018261ffff1661ffff16815260200194505050505060405180910390a15050505050505050505050565b61082984843385858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050610cf0565b5063ffffffff80168460020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1663ffffffff161415156108f55763ffffffff8460020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b50505050565b600080600080600080600060606000808c600060058110151561091a57fe5b60200201356000191698508c600160058110151561093457fe5b60200201356000191697508c600260058110151561094e57fe5b602002013560001916600060208110151561096557fe5b1a7f0100000000000000000000000000000000000000000000000000000000000000027f0100000000000000000000000000000000000000000000000000000000000000900496508c60026005811015156109bc57fe5b602002013560001916600190046101000295508c60036005811015156109de57fe5b60200201356000191694508c60046005811015156109f857fe5b60200201356000191693508585858e8e604051602001808660ff191660ff19168152601f01856000191660001916815260200184600019166000191681526020018383808284378201915050955050505050506040516020818303038152906040529250826040518082805190602001908083835b602083101515610a925780518252602082019150602081019050602083039250610a6d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600182888b8b604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610b38573d6000803e3d6000fd5b5050506020604051035199508561010090049050610b578e8b83610e0a565b610b958e858c8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050610cf0565b50505050505050505050949350505050565b600080610bb78460040154610c4d565b508092508193505050610bcb828285610cba565b846004018190555050505050565b6000808360070183815481101515610bed57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508360070183815481101515610c3257fe5b90600052602060002090600202016001015490509250929050565b60008060006080849060020a900492506040849060020a900491508390509193909250565b600061800061ffff16618000831661ffff16149050919050565b6000610c9c826008600117610f43565b9050919050565b6000610cb3826004600117610f43565b9050919050565b60008167ffffffffffffffff1660408467ffffffffffffffff169060020a0260808661ffff169060020a02171790509392505050565b6000610cfb85610f6d565b8460010154905083856000016000838152602001908152602001600020600001816000191690555060a0429060020a026001028373ffffffffffffffffffffffffffffffffffffffff16600102188560000160008381526020019081526020016000206001018160001916905550600082511115610da157818560000160008381526020019081526020016000206002019080519060200190610d9f9291906110cb565b505b600185600101600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff167fbcc49e18c7365801b9fbe1bc05c399f0f9d90f2b5aa8e99bc83cae7fb3879fc0826040518082815260200191505060405180910390a2949350505050565b8063ffffffff168360020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1663ffffffff16101515610ede576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f6261642d73657175656e63652d6e00000000000000000000000000000000000081525060200191505060405180910390fd5b808360020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff160217905550505050565b60008061200061400061800061ffff181818841690508261ffff168161ffff161491505092915050565b6000806000429250610f828460040154610c4d565b90915080925081935050508167ffffffffffffffff168367ffffffffffffffff1610158015610fc457508067ffffffffffffffff168367ffffffffffffffff16105b1515611038576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f21622d6f70656e0000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600015158460080160149054906101000a900460ff1615151415156110c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f622d64657072656361746564000000000000000000000000000000000000000081525060200191505060405180910390fd5b50505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061110c57805160ff191683800117855561113a565b8280016001018555821561113a579182015b8281111561113957825182559160200191906001019061111e565b5b509050611147919061114b565b5090565b61116d91905b80821115611169576000816000905550600101611151565b5090565b905600a165627a7a7230582053dcf01250f6509bf5c4e308be9034e44587778fc990d78515aa0efb8b2069e00029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/BPackedUtils.abi b/dist/2018-06-18-ix-deployment/sv_index/BPackedUtils.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/BPackedUtils.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/BPackedUtils.bin b/dist/2018-06-18-ix-deployment/sv_index/BPackedUtils.bin new file mode 100644 index 0000000..756efd1 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/BPackedUtils.bin @@ -0,0 +1 @@ +604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058207cd730a37a94c66d72b18a06fe669432c0f86ce2357057dcfe39c542cf0de19d0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/BytesLib.abi b/dist/2018-06-18-ix-deployment/sv_index/BytesLib.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/BytesLib.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/BytesLib.bin b/dist/2018-06-18-ix-deployment/sv_index/BytesLib.bin new file mode 100644 index 0000000..21b8412 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/BytesLib.bin @@ -0,0 +1 @@ +604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820d82cb357f925c8f25a6bf03f4ca66efae623663335b9ae3e1463141fe1cec4b40029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/CanReclaimToken.abi b/dist/2018-06-18-ix-deployment/sv_index/CanReclaimToken.abi new file mode 100644 index 0000000..fc7164e --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/CanReclaimToken.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/CanReclaimToken.bin b/dist/2018-06-18-ix-deployment/sv_index/CanReclaimToken.bin new file mode 100644 index 0000000..c39f8ec --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/CanReclaimToken.bin @@ -0,0 +1 @@ +6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506105a0806100536000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806313af40351461005c57806317ffc3201461009f5780638da5cb5b146100e2575b600080fd5b34801561006857600080fd5b5061009d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610139565b005b3480156100ab57600080fd5b506100e0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102a3565b005b3480156100ee57600080fd5b506100f761054f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610369576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663095ea7b36000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561050557600080fd5b505af1158015610519573d6000803e3d6000fd5b505050506040513d602081101561052f57600080fd5b8101908080519060200190929190505050151561054b57600080fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a723058202b06fed2ea63baabfc4c2b2ecd6e04f3b23757b33defb3060ffe1c494b7958960029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/CommAuctionIface.abi b/dist/2018-06-18-ix-deployment/sv_index/CommAuctionIface.abi new file mode 100644 index 0000000..3d9682f --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/CommAuctionIface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"noteBallotDeployed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getNextPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/CommAuctionIface.bin b/dist/2018-06-18-ix-deployment/sv_index/CommAuctionIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index/CommunityAuctionSimple.abi b/dist/2018-06-18-ix-deployment/sv_index/CommunityAuctionSimple.abi new file mode 100644 index 0000000..88a2d0a --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/CommunityAuctionSimple.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"d","type":"bytes32"}],"name":"noteBallotDeployed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"ballotLog","outputs":[{"name":"democHash","type":"bytes32"},{"name":"ts","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"getNextPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","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":"newPrice","type":"uint256"}],"name":"setPriceWei","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"getBallotLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"upgrades","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"commBallotPriceWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/CommunityAuctionSimple.bin b/dist/2018-06-18-ix-deployment/sv_index/CommunityAuctionSimple.bin new file mode 100644 index 0000000..1663527 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/CommunityAuctionSimple.bin @@ -0,0 +1 @@ +60806040526605ebd31295fe80600155336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109508061005e6000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630ba5890a146100a95780630d5be2df146100da5780630ee95ecf1461014a57806313af40351461018f5780635341903b146101d25780638da5cb5b14610215578063c1e4dfda1461026c578063c98a79fb14610299578063ca9d39ee146102f0578063d36ae26b14610373575b600080fd5b3480156100b557600080fd5b506100d8600480360381019080803560001916906020019092919050505061039e565b005b3480156100e657600080fd5b50610125600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104db565b6040518083600019166000191681526020018281526020019250505060405180910390f35b34801561015657600080fd5b50610179600480360381019080803560001916906020019092919050505061051b565b6040518082815260200191505060405180910390f35b34801561019b57600080fd5b506101d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610527565b005b3480156101de57600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610691565b005b34801561022157600080fd5b5061022a6107ac565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027857600080fd5b50610297600480360381019080803590602001909291905050506107d1565b005b3480156102a557600080fd5b506102da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061089f565b6040518082815260200191505060405180910390f35b3480156102fc57600080fd5b50610331600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037f57600080fd5b5061038861091e565b6040518082815260200191505060405180910390f35b600073ffffffffffffffffffffffffffffffffffffffff16600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561043857600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280836000191681526020014281525090806001815401808255809150509060018203906000526020600020906002020160009091929091909150600082015181600001906000191690556020820151816001015550505050565b6002602052816000526040600020818154811015156104f657fe5b9060005260206000209060020201600091509150508060000154908060010154905082565b60006001549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff16600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561072b57600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610895576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b8060018190555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600154815600a165627a7a723058208ee8fcd3bf531ecaa6df93f8efa7247897c577ce61e8f6cd9ac781fc047354920029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/ENSIface.abi b/dist/2018-06-18-ix-deployment/sv_index/ENSIface.abi new file mode 100644 index 0000000..c4368c8 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/ENSIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"label","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/ENSIface.bin b/dist/2018-06-18-ix-deployment/sv_index/ENSIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index/ERC20Interface.abi b/dist/2018-06-18-ix-deployment/sv_index/ERC20Interface.abi new file mode 100644 index 0000000..c34da32 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/ERC20Interface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/ERC20Interface.bin b/dist/2018-06-18-ix-deployment/sv_index/ERC20Interface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index/EnsOwnerProxy.abi b/dist/2018-06-18-ix-deployment/sv_index/EnsOwnerProxy.abi new file mode 100644 index 0000000..81694d3 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/EnsOwnerProxy.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes"}],"name":"fwdToResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ens","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"returnToOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"data","type":"bytes"}],"name":"fwdToENS","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ensNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ensNode","type":"bytes32"},{"name":"_ens","type":"address"},{"name":"_resolver","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/EnsOwnerProxy.bin b/dist/2018-06-18-ix-deployment/sv_index/EnsOwnerProxy.bin new file mode 100644 index 0000000..7866ab8 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/EnsOwnerProxy.bin @@ -0,0 +1 @@ +608060405260006002556000600360006101000a81548160ff02191690831515021790555034801561003057600080fd5b506040516060806118d6833981018060405281019080805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100c1336001610156640100000000026401000000009004565b826005816000191690555081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506102bc565b8060016000600254815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015610274578173ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a260048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506102b8565b8173ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a25b5050565b61160b806102cb6000396000f3006080604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec146100f657806313af40351461014d57806321fb98691461019057806324d7806c146101fd5780633b7616ff146102585780633c205b05146102935780633f15457f146102be578063407a5c92146103155780634681067d146103405780634b0bddd21461035757806354924aec146103a657806381bd66fe146103d55780638da5cb5b146104185780638ecc09501461046f578063beb9df8614610486578063d1d80fdf146104c1578063ddbcf3a114610504575b600080fd5b34801561010257600080fd5b5061010b610537565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561015957600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061055d565b005b34801561019c57600080fd5b506101bb600480360381019080803590602001909291905050506106c7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020957600080fd5b5061023e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070a565b604051808215151515815260200191505060405180910390f35b34801561026457600080fd5b50610291600480360381019080803590602001908201803590602001919091929391929390505050610773565b005b34801561029f57600080fd5b506102a861090e565b6040518082815260200191505060405180910390f35b3480156102ca57600080fd5b506102d3610914565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032157600080fd5b5061032a61093a565b6040518082815260200191505060405180910390f35b34801561034c57600080fd5b50610355610947565b005b34801561036357600080fd5b506103a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610ab5565b005b3480156103b257600080fd5b506103bb610cee565b604051808215151515815260200191505060405180910390f35b3480156103e157600080fd5b50610416600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d01565b005b34801561042457600080fd5b5061042d610ee7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047b57600080fd5b50610484610f0c565b005b34801561049257600080fd5b506104bf6004803603810190808035906020019082018035906020019190919293919293905050506110da565b005b3480156104cd57600080fd5b50610502600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611275565b005b34801561051057600080fd5b50610519611389565b60405180826000191660001916815260200191505060405180910390f35b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610621576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60006004828154811015156106d857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060016000600254815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610837576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282604051808383808284378201915050925050506000604051808303816000865af1915050151561090a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f667764696e6720746f207265736f6c766572206661696c65640000000000000081525060200191505060405180910390fd5b5050565b60025481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600480549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6002600081548092919060010191905055506001806000600254815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a60405160405180910390a1565b60001515600360009054906101000a900460ff161515141515610b40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b610b493361070a565b1515610bbd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610c4657506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610ce0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657281526020017f277329207065726d697373696f6e73000000000000000000000000000000000081525060400191505060405180910390fd5b610cea828261138f565b5050565b600360009054906101000a900460ff1681565b60001515600360009054906101000a900460ff161515141515610d8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b610d953361070a565b1515610e09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610ece576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6f776e65722063616e6e6f7420757067726164652073656c660000000000000081525060200191505060405180910390fd5b610ed933600061138f565b610ee481600161138f565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c36005546000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156110c057600080fd5b505af11580156110d4573d6000803e3d6000fd5b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561119e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282604051808383808284378201915050925050506000604051808303816000865af19150501515611271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f667764696e6720746f20656e73206661696c656400000000000000000000000081525060200191505060405180910390fd5b5050565b60001515600360009054906101000a900460ff161515141515611300576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b6113093361070a565b151561137d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b611386816114f5565b50565b60055481565b8060016000600254815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156114ad578173ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a260048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506114f1565b8173ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a25b5050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d5fa2b00600554836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156115c457600080fd5b505af11580156115d8573d6000803e3d6000fd5b50505050505600a165627a7a72305820e9256ca1987ea6e40d089e698dfa4cd21b60cd88440cece0c4c1338b12ddd18f0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/IxBackendIface.abi b/dist/2018-06-18-ix-deployment/sv_index/IxBackendIface.abi new file mode 100644 index 0000000..a54edb9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/IxBackendIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCategoriesN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"dDeprecateCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"erc20","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dAdd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"getGDemoc","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"enabled","type":"bool"}],"name":"dSetCommunityBallotsEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"getDCategory","outputs":[{"name":"deprecated","type":"bool"},{"name":"name","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"categoryName","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"name":"dAddCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"setDNoEditors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"prefix","type":"bytes13"}],"name":"getDHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDCountedBasicBallotID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCommBallotsEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDEditorArbitraryData","outputs":[{"name":"value","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dDisableErc20OwnerClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20OwnerClaimEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"ballotId","type":"uint256"},{"name":"packed","type":"uint256"},{"name":"countTowardsLimit","type":"bool"}],"name":"dAddBallot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetEditorArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getGDemocsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"erc20","type":"address"}],"name":"getGErc20ToDemocs","outputs":[{"name":"democHashes","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"defaultErc20","type":"address"},{"name":"initOwner","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dInit","outputs":[{"name":"democHash","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDInfo","outputs":[{"name":"erc20","type":"address"},{"name":"owner","type":"address"},{"name":"nBallots","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"emergencySetDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDBallotID","outputs":[{"name":"ballotId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"}],"name":"isDEditor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newErc20","type":"address"}],"name":"setDErc20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCountedBasicBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"},{"name":"canEdit","type":"bool"}],"name":"setDEditor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDArbitraryData","outputs":[{"name":"value","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwnerFromClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/IxBackendIface.bin b/dist/2018-06-18-ix-deployment/sv_index/IxBackendIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index/IxIface.abi b/dist/2018-06-18-ix-deployment/sv_index/IxIface.abi new file mode 100644 index 0000000..306cc81 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/IxIface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"categoryId","type":"uint256"}],"name":"dDeprecateCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"bbFarmId","type":"uint8"}],"name":"getBBFarm","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"bbFarmId","type":"uint8"},{"name":"_bbFarm","type":"address"}],"name":"deprecateBBFarm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"enabled","type":"bool"}],"name":"dSetCommunityBallotsEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"categoryName","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"name":"dAddCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"specHash","type":"bytes32"},{"name":"extraData","type":"bytes32"},{"name":"packed","type":"uint256"}],"name":"dDeployBallot","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"setDNoEditors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"bbFarm","type":"address"}],"name":"addBBFarm","outputs":[{"name":"bbFarmId","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBackend","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dDisableErc20OwnerClaim","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":"democHash","type":"bytes32"}],"name":"dDowngradeToBasic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dOwnerErc20Claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"toSet","type":"bytes32"},{"name":"newSC","type":"address"}],"name":"setABackend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getUpgradePointer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"specHash","type":"bytes32"},{"name":"extraData","type":"bytes32"},{"name":"packedTimes","type":"uint128"}],"name":"dDeployCommunityBallot","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getPayments","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"bbNamespace","type":"bytes4"}],"name":"getBBFarmID","outputs":[{"name":"bbFarmId","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"ballotId","type":"uint256"},{"name":"packed","type":"uint256"}],"name":"dAddBallot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dUpgradeToPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"defualtErc20","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dInit","outputs":[{"name":"","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getCommAuction","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newErc20","type":"address"}],"name":"setDErc20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"},{"name":"canEdit","type":"bool"}],"name":"setDEditor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"valAndRemainder","type":"uint256[2]"}],"name":"PaymentMade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"AddedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"setWhat","type":"bytes32"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SetBackend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"DeprecatedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"CommunityBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"packed","type":"uint256"}],"name":"ManuallyAddedBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/IxIface.bin b/dist/2018-06-18-ix-deployment/sv_index/IxIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index/IxLib.abi b/dist/2018-06-18-ix-deployment/sv_index/IxLib.abi new file mode 100644 index 0000000..1a97fa9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/IxLib.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"ix","type":"IxIface"},{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDArbitraryData","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/IxLib.bin b/dist/2018-06-18-ix-deployment/sv_index/IxLib.bin new file mode 100644 index 0000000..9bff970 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/IxLib.bin @@ -0,0 +1 @@ +610332610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f3007300000000000000000000000000000000000000003014608060405260043610610058576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806319af69271461005d575b600080fd5b6100b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803590602001908201803590602001919091929391929390505050610132565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100f75780820151818401526020810190506100dc565b50505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60608473ffffffffffffffffffffffffffffffffffffffff1663594eda646040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561019857600080fd5b505af11580156101ac573d6000803e3d6000fd5b505050506040513d60208110156101c257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663fa3ed04d8585856040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084600019166000191681526020018060200182810382528484828181526020019250808284378201915050945050505050600060405180830381600087803b15801561026b57600080fd5b505af115801561027f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156102a957600080fd5b8101908080516401000000008111156102c157600080fd5b828101905060208101848111156102d757600080fd5b81518560018202830111640100000000821117156102f457600080fd5b505092919050505090509493505050505600a165627a7a72305820e53e746f1beb486318ffce5a207c81c62c4fe56aee5a6d8b4b1c823eea0deb3b0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/IxPaymentsIface.abi b/dist/2018-06-18-ix-deployment/sv_index/IxPaymentsIface.abi new file mode 100644 index 0000000..e0e5f09 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/IxPaymentsIface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"payForDemocracy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"additionalSeconds","type":"uint256"},{"name":"ref","type":"bytes32"}],"name":"giveTimeToDemoc","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setBasicCentsPricePer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDenyPremium","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"emergencySetOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"c","type":"uint256"}],"name":"centsToWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"isPremiumDenied","type":"bool"}],"name":"setDenyPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"accountInGoodStanding","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"}],"name":"setMinorEditsAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"downgradeToBasic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicBallotsPer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMinWeiForDInit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"}],"name":"setPayTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getFreeExtension","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPaymentLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"w","type":"uint256"}],"name":"weiToCents","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getPremiumStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumMultiplier","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getWeiPerCent","outputs":[{"name":"weiPerCent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"amount","type":"uint256"}],"name":"setBasicBallotsPer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicExtraBallotFeeWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"hasFreeExt","type":"bool"}],"name":"setFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"upgradeToPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"uint256"}],"name":"setWeiPerCent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getAccount","outputs":[{"name":"isPremium","type":"bool"},{"name":"lastPaymentTs","type":"uint256"},{"name":"paidUpTill","type":"uint256"},{"name":"hasFreeExtension","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUsdEthExchangeRate","outputs":[{"name":"centsPerEth","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint8"}],"name":"setPremiumMultiplier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getSecondsRemaining","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPayTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setMinWeiForDInit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"amount","type":"uint256"}],"name":"weiBuysHowManySeconds","outputs":[{"name":"secs","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getPaymentLog","outputs":[{"name":"_external","type":"bool"},{"name":"_democHash","type":"bytes32"},{"name":"_seconds","type":"uint256"},{"name":"_ethValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"doFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/IxPaymentsIface.bin b/dist/2018-06-18-ix-deployment/sv_index/IxPaymentsIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index/PublicResolver.abi b/dist/2018-06-18-ix-deployment/sv_index/PublicResolver.abi new file mode 100644 index 0000000..0fdbafe --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/PublicResolver.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"key","type":"string"},{"name":"value","type":"string"}],"name":"setText","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"},{"name":"contentTypes","type":"uint256"}],"name":"ABI","outputs":[{"name":"contentType","type":"uint256"},{"name":"data","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"x","type":"bytes32"},{"name":"y","type":"bytes32"}],"name":"setPubkey","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"content","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"addr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"},{"name":"key","type":"string"}],"name":"text","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"contentType","type":"uint256"},{"name":"data","type":"bytes"}],"name":"setABI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"hash","type":"bytes32"}],"name":"setContent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"pubkey","outputs":[{"name":"x","type":"bytes32"},{"name":"y","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"addr","type":"address"}],"name":"setAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"ensAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"a","type":"address"}],"name":"AddrChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"hash","type":"bytes32"}],"name":"ContentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"name","type":"string"}],"name":"NameChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"contentType","type":"uint256"}],"name":"ABIChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"x","type":"bytes32"},{"indexed":false,"name":"y","type":"bytes32"}],"name":"PubkeyChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"indexedKey","type":"string"},{"indexed":false,"name":"key","type":"string"}],"name":"TextChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/PublicResolver.bin b/dist/2018-06-18-ix-deployment/sv_index/PublicResolver.bin new file mode 100644 index 0000000..4e5c9e5 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/PublicResolver.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50604051602080611b3883398101806040528101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050611ab5806100836000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a7146100ca57806310f13a8c1461012e5780632203ab56146101eb57806329cd62ea146102a65780632dff6941146102f35780633b3b57de1461034057806359d1d43c146103b1578063623195b0146104a1578063691f34311461052257806377372213146105cc578063c3d014d614610643578063c869023314610682578063d5fa2b00146106de575b600080fd5b3480156100d657600080fd5b5061011460048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061072f565b604051808215151515815260200191505060405180910390f35b34801561013a57600080fd5b506101e96004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610a1e565b005b3480156101f757600080fd5b50610224600480360381019080803560001916906020019092919080359060200190929190505050610cdb565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561026a57808201518184015260208101905061024f565b50505050905090810190601f1680156102975780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156102b257600080fd5b506102f1600480360381019080803560001916906020019092919080356000191690602001909291908035600019169060200190929190505050610e1e565b005b3480156102ff57600080fd5b506103226004803603810190808035600019169060200190929190505050610fe3565b60405180826000191660001916815260200191505060405180910390f35b34801561034c57600080fd5b5061036f600480360381019080803560001916906020019092919050505061100b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103bd57600080fd5b506104266004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611053565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561046657808201518184015260208101905061044b565b50505050905090810190601f1680156104935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104ad57600080fd5b50610520600480360381019080803560001916906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061117d565b005b34801561052e57600080fd5b50610551600480360381019080803560001916906020019092919050505061131a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610591578082015181840152602081019050610576565b50505050905090810190601f1680156105be5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105d857600080fd5b506106416004803603810190808035600019169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506113da565b005b34801561064f57600080fd5b50610680600480360381019080803560001916906020019092919080356000191690602001909291905050506115c0565b005b34801561068e57600080fd5b506106b1600480360381019080803560001916906020019092919050505061173d565b60405180836000191660001916815260200182600019166000191681526020019250505060405180910390f35b3480156106ea57600080fd5b5061072d6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061178d565b005b6000633b3b57de7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610800575063d8389dc57c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061086b575063691f34317c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108d65750632203ab567c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610941575063c86902337c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806109ac57506359d1d43c7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a1757506301ffc9a77c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b823373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610ace57600080fd5b505af1158015610ae2573d6000803e3d6000fd5b505050506040513d6020811015610af857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515610b2b57600080fd5b81600160008660001916600019168152602001908152602001600020600501846040518082805190602001908083835b602083101515610b805780518252602082019150602081019050602083039250610b5b565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190610bc6929190611964565b5083600019167fd8c9334b1a9c2f9da342a0a2b32629c1a229b6445dad78947f674b44444a75508485604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610c33578082015181840152602081019050610c18565b50505050905090810190601f168015610c605780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610c99578082015181840152602081019050610c7e565b50505050905090810190601f168015610cc65780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a250505050565b6000606060006001600086600019166000191681526020019081526020016000209050600192505b8383111515610e1157600084841614158015610d4857506000816006016000858152602001908152602001600020805460018160011615610100020316600290049050115b15610e02578060060160008481526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610df65780601f10610dcb57610100808354040283529160200191610df6565b820191906000526020600020905b815481529060010190602001808311610dd957829003601f168201915b50505050509150610e16565b6001839060020a029250610d03565b600092505b509250929050565b823373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610ece57600080fd5b505af1158015610ee2573d6000803e3d6000fd5b505050506040513d6020811015610ef857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515610f2b57600080fd5b6040805190810160405280846000191681526020018360001916815250600160008660001916600019168152602001908152602001600020600301600082015181600001906000191690556020820151816001019060001916905590505083600019167f1d6f5e03d3f63eb58751986629a5439baee5079ff04f345becb66e23eb154e46848460405180836000191660001916815260200182600019166000191681526020019250505060405180910390a250505050565b6000600160008360001916600019168152602001908152602001600020600101549050919050565b600060016000836000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6060600160008460001916600019168152602001908152602001600020600501826040518082805190602001908083835b6020831015156110a95780518252602082019150602081019050602083039250611084565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111705780601f1061114557610100808354040283529160200191611170565b820191906000526020600020905b81548152906001019060200180831161115357829003601f168201915b5050505050905092915050565b823373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561122d57600080fd5b505af1158015611241573d6000803e3d6000fd5b505050506040513d602081101561125757600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614151561128a57600080fd5b600083600185031614151561129e57600080fd5b81600160008660001916600019168152602001908152602001600020600601600085815260200190815260200160002090805190602001906112e19291906119e4565b508284600019167faa121bbeef5f32f5961a2a28966e769023910fc9479059ee3495d4c1a696efe360405160405180910390a350505050565b60606001600083600019166000191681526020019081526020016000206002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113ce5780601f106113a3576101008083540402835291602001916113ce565b820191906000526020600020905b8154815290600101906020018083116113b157829003601f168201915b50505050509050919050565b813373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561148a57600080fd5b505af115801561149e573d6000803e3d6000fd5b505050506040513d60208110156114b457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415156114e757600080fd5b816001600085600019166000191681526020019081526020016000206002019080519060200190611519929190611964565b5082600019167fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f7836040518080602001828103825283818151815260200191508051906020019080838360005b83811015611581578082015181840152602081019050611566565b50505050905090810190601f1680156115ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390a2505050565b813373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561167057600080fd5b505af1158015611684573d6000803e3d6000fd5b505050506040513d602081101561169a57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415156116cd57600080fd5b81600160008560001916600019168152602001908152602001600020600101816000191690555082600019167f0424b6fe0d9c3bdbece0e7879dc241bb0c22e900be8b6c168b4ee08bd9bf83bc8360405180826000191660001916815260200191505060405180910390a2505050565b600080600160008460001916600019168152602001908152602001600020600301600001546001600085600019166000191681526020019081526020016000206003016001015491509150915091565b813373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561183d57600080fd5b505af1158015611851573d6000803e3d6000fd5b505050506040513d602081101561186757600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614151561189a57600080fd5b8160016000856000191660001916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600019167f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd283604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106119a557805160ff19168380011785556119d3565b828001600101855582156119d3579182015b828111156119d25782518255916020019190600101906119b7565b5b5090506119e09190611a64565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a2557805160ff1916838001178555611a53565b82800160010185558215611a53579182015b82811115611a52578251825591602001919060010190611a37565b5b509050611a609190611a64565b5090565b611a8691905b80821115611a82576000816000905550600101611a6a565b5090565b905600a165627a7a723058200855617004ef41e8ada2739b65697e8ddf350a588d868754ec64b0c9f9bcaf510029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/SVBallotConsts.abi b/dist/2018-06-18-ix-deployment/sv_index/SVBallotConsts.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/SVBallotConsts.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/SVBallotConsts.bin b/dist/2018-06-18-ix-deployment/sv_index/SVBallotConsts.bin new file mode 100644 index 0000000..3c93798 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/SVBallotConsts.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820d5d2070148ece1bc3bf441cb49f2251543f134a05a56fb87a99455dcb3bd6d730029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/SVIndex.abi b/dist/2018-06-18-ix-deployment/sv_index/SVIndex.abi new file mode 100644 index 0000000..9312f61 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/SVIndex.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"dDeprecateCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"bbFarmId","type":"uint8"}],"name":"getBBFarm","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"bbFarmId","type":"uint8"},{"name":"_bbFarm","type":"address"}],"name":"deprecateBBFarm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"enabled","type":"bool"}],"name":"dSetCommunityBallotsEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catName","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"name":"dAddCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"specHash","type":"bytes32"},{"name":"extraData","type":"bytes32"},{"name":"packed","type":"uint256"}],"name":"dDeployBallot","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"nextSC","type":"address"}],"name":"doUpgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"setDNoEditors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"bbFarm","type":"address"}],"name":"addBBFarm","outputs":[{"name":"bbFarmId","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBackend","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ensOwnerPx","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dDisableErc20OwnerClaim","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":"democHash","type":"bytes32"}],"name":"dDowngradeToBasic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dOwnerErc20Claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"toSet","type":"bytes32"},{"name":"newSC","type":"address"}],"name":"setABackend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getUpgradePointer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"specHash","type":"bytes32"},{"name":"extraData","type":"bytes32"},{"name":"packedTimes","type":"uint128"}],"name":"dDeployCommunityBallot","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getPayments","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"bbNamespace","type":"bytes4"}],"name":"getBBFarmID","outputs":[{"name":"bbFarmId","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"ballotId","type":"uint256"},{"name":"packed","type":"uint256"}],"name":"dAddBallot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dUpgradeToPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"defaultErc20","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dInit","outputs":[{"name":"","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getCommAuction","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newErc20","type":"address"}],"name":"setDErc20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"},{"name":"canEdit","type":"bool"}],"name":"setDEditor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_b","type":"address"},{"name":"_pay","type":"address"},{"name":"_ensOwnerPx","type":"address"},{"name":"_bbFarm0","type":"address"},{"name":"_commAuction","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"valAndRemainder","type":"uint256[2]"}],"name":"PaymentMade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"AddedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"setWhat","type":"bytes32"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SetBackend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"DeprecatedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"CommunityBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"packed","type":"uint256"}],"name":"ManuallyAddedBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/SVIndex.abi.json b/dist/2018-06-18-ix-deployment/sv_index/SVIndex.abi.json new file mode 100644 index 0000000..9312f61 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/SVIndex.abi.json @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"dDeprecateCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"bbFarmId","type":"uint8"}],"name":"getBBFarm","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"bbFarmId","type":"uint8"},{"name":"_bbFarm","type":"address"}],"name":"deprecateBBFarm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"enabled","type":"bool"}],"name":"dSetCommunityBallotsEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catName","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"name":"dAddCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"specHash","type":"bytes32"},{"name":"extraData","type":"bytes32"},{"name":"packed","type":"uint256"}],"name":"dDeployBallot","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"nextSC","type":"address"}],"name":"doUpgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"setDNoEditors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"bbFarm","type":"address"}],"name":"addBBFarm","outputs":[{"name":"bbFarmId","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBackend","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ensOwnerPx","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dDisableErc20OwnerClaim","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":"democHash","type":"bytes32"}],"name":"dDowngradeToBasic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dOwnerErc20Claim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"toSet","type":"bytes32"},{"name":"newSC","type":"address"}],"name":"setABackend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getUpgradePointer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"specHash","type":"bytes32"},{"name":"extraData","type":"bytes32"},{"name":"packedTimes","type":"uint128"}],"name":"dDeployCommunityBallot","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getPayments","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"bbNamespace","type":"bytes4"}],"name":"getBBFarmID","outputs":[{"name":"bbFarmId","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"ballotId","type":"uint256"},{"name":"packed","type":"uint256"}],"name":"dAddBallot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dUpgradeToPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"defaultErc20","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dInit","outputs":[{"name":"","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getCommAuction","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newErc20","type":"address"}],"name":"setDErc20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"},{"name":"canEdit","type":"bool"}],"name":"setDEditor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_b","type":"address"},{"name":"_pay","type":"address"},{"name":"_ensOwnerPx","type":"address"},{"name":"_bbFarm0","type":"address"},{"name":"_commAuction","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"valAndRemainder","type":"uint256[2]"}],"name":"PaymentMade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"AddedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"setWhat","type":"bytes32"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SetBackend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"DeprecatedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"CommunityBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"packed","type":"uint256"}],"name":"ManuallyAddedBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/SVIndex.bin b/dist/2018-06-18-ix-deployment/sv_index/SVIndex.bin new file mode 100644 index 0000000..bb8d177 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/SVIndex.bin @@ -0,0 +1 @@ +60806040526000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005357600080fd5b5060405160a08062006325833981018060405281019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505033336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200011a57fe5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505084600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200025a60007c01000000000000000000000000000000000000000000000000000000000283620002a7640100000000026401000000009004565b5080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505062000443565b6000806006805490509050610100811015156200032c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f746f6f2d6d616e792d6661726d7300000000000000000000000000000000000081525060200191505060405180910390fd5b80915060068390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508160086000867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360ff1602179055507f8ea210065077b12c19240bd91ee2acbce0fd74690be559681ca116194e1ec98a82604051808260ff1660ff16815260200191505060405180910390a15092915050565b615ed280620004536000396000f300608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306ed69b91461019b5780630d8e6e2c146101d65780631185a6b91461020157806313af40351461027157806317ffc320146102b45780632e1d45c3146102f7578063336481d41461034757806334ec96bf1461038457806339ade9aa146103d95780633f8416fb146104235780634bb32e8c146104665780634da2317f146104975780635540a03c146104ae578063594eda641461050b5780636458de1e1461056257806371c7e923146105b95780638da5cb5b146105ea578063925d3ec81461064157806393b557db1461067257806395311142146106d3578063a5adb22614610704578063a76f354314610755578063a942bf05146107ac578063d56bd14214610808578063dd89daa51461085f578063e011171d146108c5578063e42a8bc914610916578063e9aeb9321461095b578063ebaf0e741461098c578063ee880879146109ea578063f5f5c62214610a41578063f7b822db14610a92575b600080fd5b3480156101a757600080fd5b506101d4600480360381019080803560001916906020019092919080359060200190929190505050610aef565b005b3480156101e257600080fd5b506101eb610d2a565b6040518082815260200191505060405180910390f35b34801561020d57600080fd5b5061022f600480360381019080803560ff169060200190929190505050610d33565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027d57600080fd5b506102b2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d79565b005b3480156102c057600080fd5b506102f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ee3565b005b34801561030357600080fd5b50610345600480360381019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061118f565b005b34801561035357600080fd5b506103826004803603810190808035600019169060200190929190803515159060200190929190505050611378565b005b34801561039057600080fd5b506103d760048036038101908080356000191690602001909291908035600019169060200190929190803515159060200190929190803590602001909291905050506115b1565b005b6104216004803603810190808035600019169060200190929190803560001916906020019092919080356000191690602001909291908035906020019092919050505061180a565b005b34801561042f57600080fd5b50610464600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061199f565b005b34801561047257600080fd5b50610495600480360381019080803560001916906020019092919050505061206c565b005b3480156104a357600080fd5b506104ac612298565b005b3480156104ba57600080fd5b506104ef600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612338565b604051808260ff1660ff16815260200191505060405180910390f35b34801561051757600080fd5b50610520612783565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561056e57600080fd5b506105776127ad565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105c557600080fd5b506105e860048036038101908080356000191690602001909291905050506127d3565b005b3480156105f657600080fd5b506105ff6129ff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064d57600080fd5b506106706004803603810190808035600019169060200190929190505050612a24565b005b34801561067e57600080fd5b506106d16004803603810190808035600019169060200190929190803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050612c50565b005b3480156106df57600080fd5b506107026004803603810190808035600019169060200190929190505050613065565b005b34801561071057600080fd5b506107536004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061360a565b005b34801561076157600080fd5b5061076a613917565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61080660048036038101908080356000191690602001909291908035600019169060200190929190803560001916906020019092919080356fffffffffffffffffffffffffffffffff169060200190929190505050613941565b005b34801561081457600080fd5b5061081d613ec8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561086b57600080fd5b506108a960048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050613ef2565b604051808260ff1660ff16815260200191505060405180910390f35b3480156108d157600080fd5b506109146004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f5a565b005b34801561092257600080fd5b50610959600480360381019080803560001916906020019092919080359060200190929190803590602001909291905050506141bb565b005b34801561096757600080fd5b5061098a60048036038101908080356000191690602001909291905050506142e0565b005b6109cc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061450c565b60405180826000191660001916815260200191505060405180910390f35b3480156109f657600080fd5b506109ff614899565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a4d57600080fd5b50610a906004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506148c3565b005b348015610a9e57600080fd5b50610aed6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050614b24565b005b81600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efbe584d82336040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015610bbd57600080fd5b505af1158015610bd1573d6000803e3d6000fd5b505050506040513d6020811015610be757600080fd5b81019080805190602001909291905050501515610c6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f21642d656469746f72000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ed69b984846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b158015610d0d57600080fd5b505af1158015610d21573d6000803e3d6000fd5b50505050505050565b60006002905090565b600060068260ff16815481101515610d4757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fa9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561104457600080fd5b505af1158015611058573d6000803e3d6000fd5b505050506040513d602081101561106e57600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663095ea7b36000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561114557600080fd5b505af1158015611159573d6000803e3d6000fd5b505050506040513d602081101561116f57600080fd5b8101908080519060200190929190505050151561118b57600080fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611253576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561128f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660068360ff168154811015156112b857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561130557600080fd5b6001600960008460ff1660ff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f8e83bd35628184fa0608ea0dfe3901aeb6bcdc16c997d4d7cc1ee71becf0458d82604051808260ff1660ff16815260200191505060405180910390a15050565b81600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636670bdd8826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561141257600080fd5b505af1158015611426573d6000803e3d6000fd5b505050506040513d602081101561143c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f21642d6f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663336481d484846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018215151515815260200192505050600060405180830381600087803b15801561159457600080fd5b505af11580156115a8573d6000803e3d6000fd5b50505050505050565b83600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efbe584d82336040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b15801561167f57600080fd5b505af1158015611693573d6000803e3d6000fd5b505050506040513d60208110156116a957600080fd5b8101908080519060200190929190505050151561172e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f21642d656469746f72000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334ec96bf868686866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808560001916600019168152602001846000191660001916815260200183151515158152602001828152602001945050505050600060405180830381600087803b1580156117eb57600080fd5b505af11580156117ff573d6000803e3d6000fd5b505050505050505050565b83600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efbe584d82336040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156118d857600080fd5b505af11580156118ec573d6000803e3d6000fd5b505050506040513d602081101561190257600080fd5b81019080805190602001909291905050501515611987576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f21642d656469746f72000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6119978585858560016000614d92565b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611b2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f7570677261646520706f696e746572206973206e6f6e2d7a65726f000000000081525060200191505060405180910390fd5b611b348261512a565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635341903b836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611bf157600080fd5b505af1158015611c05573d6000803e3d6000fd5b50505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635341903b836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611cc657600080fd5b505af1158015611cda573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d1d80fdf836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611d9b57600080fd5b505af1158015611daf573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166381bd66fe836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611e7057600080fd5b505af1158015611e84573d6000803e3d6000fd5b50505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635341903b836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611f4557600080fd5b505af1158015611f59573d6000803e3d6000fd5b50505050600090505b60068054905081101561206857600681815481101515611f7e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635341903b836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561204357600080fd5b505af1158015612057573d6000803e3d6000fd5b505050508080600101915050611f62565b5050565b80600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636670bdd8826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561210657600080fd5b505af115801561211a573d6000803e3d6000fd5b505050506040513d602081101561213057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f21642d6f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634bb32e8c836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050600060405180830381600087803b15801561227c57600080fd5b505af1158015612290573d6000803e3d6000fd5b505050505050565b6000806122a361516e565b91503073ffffffffffffffffffffffffffffffffffffffff163190506122c98282615236565b7fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd25624728282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166327ac4b706040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561246357600080fd5b505af1158015612477573d6000803e3d6000fd5b505050506040513d602081101561248d57600080fd5b8101908080519060200190929190505050905060007c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151515612576576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f62622d6661726d2d6e616d65737061636500000000000000000000000000000081525060200191505060405180910390fd5b600060086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff1660ff161480156126fd5750600660008154811015156125f257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166327ac4b706040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561268057600080fd5b505af1158015612694573d6000803e3d6000fd5b505050506040513d60208110156126aa57600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b1515612771576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f62622d6e616d6573706163652d7573656400000000000000000000000000000081525060200191505060405180910390fd5b61277b8184615255565b915050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636670bdd8826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561286d57600080fd5b505af1158015612881573d6000803e3d6000fd5b505050506040513d602081101561289757600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561294a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f21642d6f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166371c7e923836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050600060405180830381600087803b1580156129e357600080fd5b505af11580156129f7573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636670bdd8826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015612abe57600080fd5b505af1158015612ad2573d6000803e3d6000fd5b505050506040513d6020811015612ae857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612b9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f21642d6f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633e06be20836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050600060405180830381600087803b158015612c3457600080fd5b505af1158015612c48573d6000803e3d6000fd5b505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636670bdd8866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015612ce957600080fd5b505af1158015612cfd573d6000803e3d6000fd5b505050506040513d6020811015612d1357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612e5157600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166393b557db86868686866040518663ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180866000191660001916815260200180602001806020018381038352878782818152602001925080828437820191505083810382528585828181526020019250808284378201915050975050505050505050600060405180830381600087803b158015612e3457600080fd5b505af1158015612e48573d6000803e3d6000fd5b5050505061305e565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663efbe584d86336040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015612f1e57600080fd5b505af1158015612f32573d6000803e3d6000fd5b505050506040513d6020811015612f4857600080fd5b81019080805190602001909291905050501561305857600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a5c5894486868686866040518663ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180866000191660001916815260200180602001806020018381038352878782818152602001925080828437820191505083810382528585828181526020019250808284378201915050975050505050505050600060405180830381600087803b15801561303b57600080fd5b505af115801561304f573d6000803e3d6000fd5b5050505061305d565b600080fd5b5b5050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663565707a8836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561310057600080fd5b505af1158015613114573d6000803e3d6000fd5b505050506040513d602081101561312a57600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff16610bb8638da5cb5b7c0100000000000000000000000000000000000000000000000000000000027c01000000000000000000000000000000000000000000000000000000009004906040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160006040518083038160008887f193505050501561332c578073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b610bb86040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600088803b15801561324957600080fd5b5087f115801561325d573d6000803e3d6000fd5b50505050506040513d602081101561327457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f2165726332302d6f776e6572000000000000000000000000000000000000000081525060200191505060405180910390fd5b613521565b8073ffffffffffffffffffffffffffffffffffffffff16610bb863f77c47917c0100000000000000000000000000000000000000000000000000000000027c01000000000000000000000000000000000000000000000000000000009004906040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160006040518083038160008887f193505050501561351b578073ffffffffffffffffffffffffffffffffffffffff1663f77c4791610bb86040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600088803b15801561343857600080fd5b5087f115801561344c573d6000803e3d6000fd5b50505050506040513d602081101561346357600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613516576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f2165726332302d636f6e74726f6c6c657200000000000000000000000000000081525060200191505060405180910390fd5b613520565b600080fd5b5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb2e324083336040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156135ee57600080fd5b505af1158015613602573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156136ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b7fc60d12c3d3da7d885eec112ff6fb3ef9a77dcaa4727fe822eb8e9bcd881c0f1b82826040518083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a17f7061796d656e747300000000000000000000000000000000000000000000000060001916826000191614156137b75780600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613913565b7f6261636b656e6400000000000000000000000000000000000000000000000000600019168260001916141561382d5780600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613912565b7f636f6d6d41756374696f6e00000000000000000000000000000000000000000060001916826000191614156138a35780600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613911565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260038152602001807f343034000000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5b5050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ee95ecf896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156139e057600080fd5b505af11580156139f4573d6000803e3d6000fd5b505050506040513d6020811015613a0a57600080fd5b81019080805190602001909291905050509350833410151515613a95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f2163622d6665650000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b613b5f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f1efb76a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015613b1e57600080fd5b505af1158015613b32573d6000803e3d6000fd5b505050506040513d6020811015613b4857600080fd5b810190808051906020019092919050505085615236565b613b6b33853403615236565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636627ace5896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015613c0457600080fd5b505af1158015613c18573d6000803e3d6000fd5b505050506040513d6020811015613c2e57600080fd5b810190808051906020019092919050505080613d1b5750600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166333af060f896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015613cde57600080fd5b505af1158015613cf2573d6000803e3d6000fd5b505050506040513d6020811015613d0857600080fd5b8101908080519060200190929190505050155b9250821515613d92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f2163622d656e61626c656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b613db2856fffffffffffffffffffffffffffffffff1660046001176153f0565b9150613dc48888888560006001614d92565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630ba5890a896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050600060405180830381600087803b158015613e5f57600080fd5b505af1158015613e73573d6000803e3d6000fd5b505050507f5a0113260875225c161819294ea7f36e73226e046f98fac0ce9ea2af3ca6f02888826040518083600019166000191681526020018281526020019250505060405180910390a15050505050505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600060086000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b81600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636670bdd8826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015613ff457600080fd5b505af1158015614008573d6000803e3d6000fd5b505050506040513d602081101561401e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156140d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f21642d6f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e011171d84846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561419e57600080fd5b505af11580156141b2573d6000803e3d6000fd5b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561427f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b61428c838383600061542a565b7f17b6c47e4b3b8370c0983be04968d8d3ae4e3a04b369ac06b0492796ef194ea3838383604051808460001916600019168152602001838152602001828152602001935050505060405180910390a1505050565b80600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636670bdd8826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561437a57600080fd5b505af115801561438e573d6000803e3d6000fd5b505050506040513d60208110156143a457600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614457576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f21642d6f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb48d190836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050600060405180830381600087803b1580156144f057600080fd5b505af1158015614504573d6000803e3d6000fd5b505050505050565b600080600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156145d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f7570677261646520706f696e746572206973206e6f6e2d7a65726f000000000081525060200191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166356e52cbb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561465b57600080fd5b505af115801561466f573d6000803e3d6000fd5b505050506040513d602081101561468557600080fd5b810190808051906020019092919050505034101515156146a457600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dab122de8533866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019350505050602060405180830381600087803b1580156147a157600080fd5b505af11580156147b5573d6000803e3d6000fd5b505050506040513d60208110156147cb57600080fd5b81019080805190602001909291905050509050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662a219f434836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600019166000191681526020019150506000604051808303818588803b15801561487657600080fd5b505af115801561488a573d6000803e3d6000fd5b50505050508091505092915050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b81600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636670bdd8826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561495d57600080fd5b505af1158015614971573d6000803e3d6000fd5b505050506040513d602081101561498757600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614a3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f21642d6f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5f5c62284846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015614b0757600080fd5b505af1158015614b1b573d6000803e3d6000fd5b50505050505050565b82600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636670bdd8826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015614bbe57600080fd5b505af1158015614bd2573d6000803e3d6000fd5b505050506040513d6020811015614be857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515614c9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f21642d6f776e657200000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7b822db8585856040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019350505050600060405180830381600087803b158015614d7457600080fd5b505af1158015614d88573d6000803e3d6000fd5b5050505050505050565b60008060008060008060001515614db0614dab8b6154fd565b61550f565b1515141515614e27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f622d74657374696e67000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b896000602081101515614e3657fe5b1a7f0100000000000000000000000000000000000000000000000000000000000000027f01000000000000000000000000000000000000000000000000000000000000009004945060001515600960008760ff1660ff16815260200190815260200160002060009054906101000a900460ff161515141515614f20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f62622d646570000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60068560ff16815481101515614f3257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693508792508715614f9057614f7189615529565b9050614f7d8c85615533565b8093508194505050614f8f8c82615b7d565b5b81158015614f9e5750600034115b8015614fae575060001515871515145b15614fbe57614fbd3334615236565b5b8373ffffffffffffffffffffffffffffffffffffffff1663dbe796798c8b30338f6001900468010000000000000000026040518663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018086600019166000191681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff191667ffffffffffffffff1916815260200195505050505050602060405180830381600087803b1580156150d257600080fd5b505af11580156150e6573d6000803e3d6000fd5b505050506040513d60208110156150fc57600080fd5b8101908080519060200190929190505050955061511b8c878b8661542a565b50505050509695505050505050565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f1efb76a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156151f657600080fd5b505af115801561520a573d6000803e3d6000fd5b505050506040513d602081101561522057600080fd5b8101908080519060200190929190505050905090565b61525182602060405190810160405280600081525083615ce5565b5050565b6000806006805490509050610100811015156152d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f746f6f2d6d616e792d6661726d7300000000000000000000000000000000000081525060200191505060405180910390fd5b80915060068390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508160086000867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908360ff1602179055507f8ea210065077b12c19240bd91ee2acbce0fd74690be559681ca116194e1ec98a82604051808260ff1660ff16815260200191505060405180910390a15092915050565b600060808261ffff169060020a027fffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff841617905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663960834f4858585856040518563ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180856000191660001916815260200184815260200183815260200182151515158152602001945050505050600060405180830381600087803b1580156154df57600080fd5b505af11580156154f3573d6000803e3d6000fd5b5050505050505050565b60006080829060020a90049050919050565b600061800061ffff16618000831661ffff16149050919050565b6000819050919050565b60008060008060008060008060001515600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166372004a658c6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156155dc57600080fd5b505af11580156155f0573d6000803e3d6000fd5b505050506040513d602081101561560657600080fd5b810190808051906020019092919050505015151415615b6857600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635429a4176040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156156a557600080fd5b505af11580156156b9573d6000803e3d6000fd5b505050506040513d60208110156156cf57600080fd5b81019080805190602001909291905050509550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f72f34db8b6040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561577b57600080fd5b505af115801561578f573d6000803e3d6000fd5b505050506040513d60208110156157a557600080fd5b81019080805190602001909291905050509450848611156157cd576001600097509750615b70565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166362c0ffa88b8888036040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b15801561587057600080fd5b505af1158015615884573d6000803e3d6000fd5b505050506040513d602081101561589a57600080fd5b810190808051906020019092919050505093508873ffffffffffffffffffffffffffffffffffffffff166250a315856040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561591b57600080fd5b505af115801561592f573d6000803e3d6000fd5b505050506040513d602081101561594557600080fd5b8101908080519060200190929190505050925062278d004203831015615972576001600097509750615b70565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b2148d386040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156159f857600080fd5b505af1158015615a0c573d6000803e3d6000fd5b505050506040513d6020811015615a2257600080fd5b81019080805190602001909291905050509150813410151515615aad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f2165787472612d622d666565000000000000000000000000000000000000000081525060200191505060405180910390fd5b8134039050615ade600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683615236565b615ae83382615236565b7fa10b8a9911b680d93c2cbb993f5f5a4921bb52ebcb7926bf777c3831a5a1f30b6040805190810160405280848152602001838152506040518082600260200280838360005b83811015615b49578082015181840152602081019050615b2e565b5050505090500191505060405180910390a16000600197509750615b70565b600080975097505b5050505050509250929050565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ee882a99856040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015615c1957600080fd5b505af1158015615c2d573d6000803e3d6000fd5b505050506040513d6020811015615c4357600080fd5b81019080805190602001909291905050509150428367ffffffffffffffff160390508060028302111515615cdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f756e70616964000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50505050565b60001515600160149054906101000a900460ff161515141515615d70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f73732d677561726400000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60018060146101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff16818360405180828051906020019080838360005b83811015615dd0578082015181840152602081019050615db5565b50505050905090810190601f168015615dfd5780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af1925050501515615e86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f73732d6661696c6564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600160146101000a81548160ff0219169083151502179055505050505600a165627a7a723058205ae7c6d470a62399d1631b7430747d4ea1b8a3c32478fb8adbd0d92ebfa0c9640029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/SVIndexBackend.abi b/dist/2018-06-18-ix-deployment/sv_index/SVIndexBackend.abi new file mode 100644 index 0000000..c9c47c8 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/SVIndexBackend.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCategoriesN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"dDeprecateCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"erc20","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dAdd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"getGDemoc","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"enabled","type":"bool"}],"name":"dSetCommunityBallotsEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"getDCategory","outputs":[{"name":"deprecated","type":"bool"},{"name":"name","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"name":"dAddCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"setDNoEditors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"prefix","type":"bytes13"}],"name":"getDHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDCountedBasicBallotID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCommBallotsEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDEditorArbitraryData","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dDisableErc20OwnerClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20OwnerClaimEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"ballotId","type":"uint256"},{"name":"packed","type":"uint256"},{"name":"countTowardsLimit","type":"bool"}],"name":"dAddBallot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetEditorArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getGDemocsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"erc20","type":"address"}],"name":"getGErc20ToDemocs","outputs":[{"name":"democHashes","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"defaultErc20","type":"address"},{"name":"initOwner","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dInit","outputs":[{"name":"democHash","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDInfo","outputs":[{"name":"erc20","type":"address"},{"name":"owner","type":"address"},{"name":"nBallots","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"emergencySetDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDBallotID","outputs":[{"name":"ballotId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"}],"name":"isDEditor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newErc20","type":"address"}],"name":"setDErc20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCountedBasicBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"},{"name":"canEdit","type":"bool"}],"name":"setDEditor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDArbitraryData","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwnerFromClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/SVIndexBackend.bin b/dist/2018-06-18-ix-deployment/sv_index/SVIndexBackend.bin new file mode 100644 index 0000000..b05b606 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/SVIndexBackend.bin @@ -0,0 +1 @@ +608060405260006002556000600360006101000a81548160ff0219169083151502179055506000600660006101000a81548160ff0219169083151502179055503480156200004c57600080fd5b5033336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000aa3360016200012c640100000000026401000000009004565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515620000e457fe5b80600660026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000294565b8060016000600254815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156200024c578173ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a260048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000290565b8173ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a25b5050565b614e5b80620002a46000396000f300608060405260043610610267576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f268e1461026c57806306ed69b9146102b15780630d8e6e2c146102ec5780630fed240b14610317578063105689a01461037457806313af40351461038b5780631a4fb653146103ce5780631ffa27f91461041757806321fb98691461047257806324d7806c146104df578063336481d41461053a57806333b7d1871461057757806334ec96bf146105eb5780633c205b0514610640578063407a5c921461066b5780634681067d146106965780634b0bddd2146106ad5780634bb32e8c146106fc5780634da2317f1461072d5780635341903b1461074457806354924aec14610787578063565707a8146107b65780635d6c8e10146108275780636165234c1461088657806362c0ffa8146108d55780636627ace5146109245780636670bdd81461096d5780636f7b5a56146109de57806371c7e92314610aa057806377410c0314610ad157806381bd66fe14610b00578063865cc6a314610b43578063889b59d914610b8c5780638da5cb5b14610bd157806393b557db14610c28578063960834f414610c89578063a5c5894414610cda578063b2461b1514610d3b578063ca1637f514610d9e578063ca42afda14610dc9578063dab122de14610e61578063db15b72d14610eec578063e011171d14610f97578063e1fd3d4e14610fe8578063e23d099614611039578063efbe584d14611088578063f5f5c622146110f1578063f72f34db14611142578063f7b822db14611187578063fa3ed04d146111e4578063fb2e3240146112a6575b600080fd5b34801561027857600080fd5b5061029b60048036038101908080356000191690602001909291905050506112f7565b6040518082815260200191505060405180910390f35b3480156102bd57600080fd5b506102ea60048036038101908080356000191690602001909291908035906020019092919050505061131f565b005b3480156102f857600080fd5b5061030161146b565b6040518082815260200191505060405180910390f35b34801561032357600080fd5b506103726004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611474565b005b34801561038057600080fd5b506103896115bc565b005b34801561039757600080fd5b506103cc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061175c565b005b3480156103da57600080fd5b506103f9600480360381019080803590602001909291905050506118c6565b60405180826000191660001916815260200191505060405180910390f35b34801561042357600080fd5b50610458600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118e9565b604051808215151515815260200191505060405180910390f35b34801561047e57600080fd5b5061049d6004803603810190808035906020019092919050505061193f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104eb57600080fd5b50610520600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611982565b604051808215151515815260200191505060405180910390f35b34801561054657600080fd5b5061057560048036038101908080356000191690602001909291908035151590602001909291905050506119eb565b005b34801561058357600080fd5b506105b0600480360381019080803560001916906020019092919080359060200190929190505050611b27565b604051808515151515815260200184600019166000191681526020018315151515815260200182815260200194505050505060405180910390f35b3480156105f757600080fd5b5061063e6004803603810190808035600019169060200190929190803560001916906020019092919080351515906020019092919080359060200190929190505050611c24565b005b34801561064c57600080fd5b50610655611e3c565b6040518082815260200191505060405180910390f35b34801561067757600080fd5b50610680611e42565b6040518082815260200191505060405180910390f35b3480156106a257600080fd5b506106ab611e4f565b005b3480156106b957600080fd5b506106fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611fbd565b005b34801561070857600080fd5b5061072b60048036038101908080356000191690602001909291905050506121f6565b005b34801561073957600080fd5b50610742612318565b005b34801561075057600080fd5b50610785600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123b8565b005b34801561079357600080fd5b5061079c6125c3565b604051808215151515815260200191505060405180910390f35b3480156107c257600080fd5b506107e560048036038101908080356000191690602001909291905050506125d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083357600080fd5b50610868600480360381019080803572ffffffffffffffffffffffffffffffffffffff1916906020019092919050505061261e565b60405180826000191660001916815260200191505060405180910390f35b34801561089257600080fd5b506108d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612667565b005b3480156108e157600080fd5b5061090e600480360381019080803560001916906020019092919080359060200190929190505050612927565b6040518082815260200191505060405180910390f35b34801561093057600080fd5b506109536004803603810190808035600019169060200190929190505050612967565b604051808215151515815260200191505060405180910390f35b34801561097957600080fd5b5061099c600480360381019080803560001916906020019092919050505061299d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109ea57600080fd5b50610a2560048036038101908080356000191690602001909291908035906020019082018035906020019190919293919293905050506129e5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a65578082015181840152602081019050610a4a565b50505050905090810190601f168015610a925780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610aac57600080fd5b50610acf6004803603810190808035600019169060200190929190505050612b59565b005b348015610add57600080fd5b50610ae6612c85565b604051808215151515815260200191505060405180910390f35b348015610b0c57600080fd5b50610b41600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c98565b005b348015610b4f57600080fd5b50610b726004803603810190808035600019169060200190929190505050612e7e565b604051808215151515815260200191505060405180910390f35b348015610b9857600080fd5b50610bbb6004803603810190808035600019169060200190929190505050612eb4565b6040518082815260200191505060405180910390f35b348015610bdd57600080fd5b50610be6612edf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c3457600080fd5b50610c876004803603810190808035600019169060200190929190803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050612f04565b005b348015610c9557600080fd5b50610cd860048036038101908080356000191690602001909291908035906020019092919080359060200190929190803515159060200190929190505050613076565b005b348015610ce657600080fd5b50610d396004803603810190808035600019169060200190929190803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050613149565b005b348015610d4757600080fd5b50610d9c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061333b565b005b348015610daa57600080fd5b50610db3613619565b6040518082815260200191505060405180910390f35b348015610dd557600080fd5b50610e0a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613626565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610e4d578082015181840152602081019050610e32565b505050509050019250505060405180910390f35b348015610e6d57600080fd5b50610ece600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506136c1565b60405180826000191660001916815260200191505060405180910390f35b348015610ef857600080fd5b50610f1b600480360381019080803560001916906020019092919050505061387f565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b348015610fa357600080fd5b50610fe66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613931565b005b348015610ff457600080fd5b506110376004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a00565b005b34801561104557600080fd5b50611072600480360381019080803560001916906020019092919080359060200190929190505050613b3a565b6040518082815260200191505060405180910390f35b34801561109457600080fd5b506110d76004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613b7a565b604051808215151515815260200191505060405180910390f35b3480156110fd57600080fd5b506111406004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613c61565b005b34801561114e57600080fd5b506111716004803603810190808035600019169060200190929190505050613e5a565b6040518082815260200191505060405180910390f35b34801561119357600080fd5b506111e26004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050613e85565b005b3480156111f057600080fd5b5061122b600480360381019080803560001916906020019092919080359060200190820180359060200191909192939192939050505061404d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561126b578082015181840152602081019050611250565b50505050905090810190601f1680156112985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156112b257600080fd5b506112f56004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614141565b005b6000600860008360001916600019168152602001908152602001600020600001549050919050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b6001600860008460001916600019168152602001908152602001600020600101600083815260200190815260200160002060000160006101000a81548160ff02191690831515021790555081600019167fbcffb42fe43e03fdde1eca40d96bb1e9e48eff8d3ec71e025b2304977e64f392826040518082815260200191505060405180910390a25050565b60006002905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611538576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6115448383338461441b565b7f76cfde4818906d3ebeda8d4aa81b23c066bbb956bb70274c4126ec9c0faead4e83836040518083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611680576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b60001515600660009054906101000a900460ff16151514151561170b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6e6f5f6c6f636b646f776e3a20636865636b206661696c65640000000000000081525060200191505060405180910390fd5b611713614630565b6001600660006101000a81548160ff0219169083151502179055507f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611820576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600b828154811015156118d757fe5b90600052602060002001549050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600060048281548110151561195057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060016000600254815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611aac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b801560076000846000191660001916815260200190815260200160002060010160146101000a81548160ff02191690831515021790555081600019167f93b729dac8f3963db35b89b16922310952f9bf8b37e391b99218c03faa42f3f482604051808215151515815260200191505060405180910390a25050565b600080600080600860008760001916600019168152602001908152602001600020600101600086815260200190815260200160002060000160009054906101000a900460ff1693506008600087600019166000191681526020019081526020016000206001016000868152602001908152602001600020600101549250600860008760001916600019168152602001908152602001600020600101600086815260200190815260200160002060020160009054906101000a900460ff169150600860008760001916600019168152602001908152602001600020600101600086815260200190815260200160002060030154905092959194509250565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611ce7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b60086000866000191660001916815260200190815260200160002060000154905083600860008760001916600019168152602001908152602001600020600101600083815260200190815260200160002060010181600019169055508215611dcc576001600860008760001916600019168152602001908152602001600020600101600083815260200190815260200160002060020160006101000a81548160ff021916908315150217905550816008600087600019166000191681526020019081526020016000206001016000838152602001908152602001600020600301819055505b60016008600087600019166000191681526020019081526020016000206000016000828254019250508190555084600019167fb00e174944b708eb07afc8afcdcc94d5dfa6c1246743602a8ce6a5bedad2f4e5826040518082815260200191505060405180910390a25050505050565b60025481565b6000600480549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6002600081548092919060010191905055506001806000600254815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a60405160405180910390a1565b60001515600360009054906101000a900460ff161515141515612048576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b61205133611982565b15156120c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561214e57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156121e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657281526020017f277329207065726d697373696f6e73000000000000000000000000000000000081525060400191505060405180910390fd5b6121f2828261468b565b5050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156122b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b60016007600083600019166000191681526020019081526020016000206002016000828254019250508190555080600019167ff3bbc8c454575f9f6aa4d88c305beb91199abb12ec76ce392bc593fc771e3fba60405160405180910390a250565b6000806123236147f1565b91503073ffffffffffffffffffffffffffffffffffffffff16319050612349828261481a565b7fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd25624728282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612479576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b600360009054906101000a900460ff1681565b600060076000836000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600960008372ffffffffffffffffffffffffffffffffffffff191672ffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020549050919050565b60001515600660009054906101000a900460ff1615151415156126f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6e6f5f6c6f636b646f776e3a20636865636b206661696c65640000000000000081525060200191505060405180910390fd5b60001515600360009054906101000a900460ff16151514151561277d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b61278633611982565b15156127fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156128bf577fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1612923565b7f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c92182604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b60006007600084600019166000191681526020019081526020016000206005018281548110151561295457fe5b9060005260206000200154905092915050565b600060076000836000191660001916815260200190815260200160002060010160149054906101000a900460ff16159050919050565b600060076000836000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6060600c600085600019166000191681526020019081526020016000206000612a3f85858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050614839565b6040518082805190602001908083835b602083101515612a745780518252602082019150602081019050602083039250612a4f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b4b5780601f10612b2057610100808354040283529160200191612b4b565b820191906000526020600020905b815481529060010190602001808311612b2e57829003601f168201915b505050505090509392505050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612c1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b600160076000836000191660001916815260200190815260200160002060010160156101000a81548160ff02191690831515021790555080600019167fcc23847a8a66577fe576136f5f34967fbd9cf71d95b0c90647cea48bc236d57d60405160405180910390a250565b600660009054906101000a900460ff1681565b60001515600360009054906101000a900460ff161515141515612d23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b612d2c33611982565b1515612da0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515612e65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6f776e65722063616e6e6f7420757067726164652073656c660000000000000081525060200191505060405180910390fd5b612e7033600061468b565b612e7b81600161468b565b50565b600060076000836000191660001916815260200190815260200160002060010160159054906101000a900460ff16159050919050565b6000600760008360001916600019168152602001908152602001600020600401805490509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612fc7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b848460405180838380828437820191505092505050604051809103902090508282600c60008960001916600019168152602001908152602001600020600084600019166000191681526020019081526020016000209190613029929190614d8a565b5085600019167f70cd3b363a8374b507c0ea17f9205a693a37d89c14d1391d4a9d8d3509f6dbb08260405180826000191660001916815260200191505060405180910390a2505050505050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515613137576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b613143848484846148d7565b50505050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561320c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b61324785858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050614839565b6040518082805190602001908083835b60208310151561327c5780518252602082019150602081019050602083039250613257565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090508282600c600089600019166000191681526020019081526020016000206000846000191660001916815260200190815260200160002091906132ee929190614d8a565b5085600019167f70cd3b363a8374b507c0ea17f9205a693a37d89c14d1391d4a9d8d3509f6dbb08260405180826000191660001916815260200191505060405180910390a2505050505050565b60001515600660009054906101000a900460ff1615151415156133c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6e6f5f6c6f636b646f776e3a20636865636b206661696c65640000000000000081525060200191505060405180910390fd5b60001515600360009054906101000a900460ff161515141515613451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b61345a33611982565b15156134ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b588282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b6000600b80549050905090565b6060600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156136b557602002820191906000526020600020905b8154600019168152602001906001019080831161369d575b50505050509050919050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515613784576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b600b80549050600143034085426040516020018085815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018281526020019450505050506040516020818303038152906040526040518082805190602001908083835b60208310151561383d5780518252602082019150602081019050602083039250613818565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506138788185858561441b565b9392505050565b600080600060076000856000191660001916815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660076000866000191660001916815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760008760001916600019168152602001908152602001600020600401805490509250925092509193909250565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156139f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b6139fc82826149e4565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613ac4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b613ace82826149e4565b81600019167f85644e2e7afe6ef9f59ba824a1a8b530832a9fb9f73052bc316f5168a156505a82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b600060076000846000191660001916815260200190815260200160002060040182815481101515613b6757fe5b9060005260206000200154905092915050565b60008060076000856000191660001916815260200190815260200160002090508060030160008260020154815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680613c5857508060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515613d22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b8060076000846000191660001916815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082908060018154018082558091505090600182039060005260206000200160009091929091909150906000191690555081600019167f9db922c152f2e7c530d60219abb1e50af8b8a6db04e369ba9ed99d54126b096682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b6000600760008360001916600019168152602001908152602001600020600501805490509050919050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515613f48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b6007600085600019166000191681526020019081526020016000209050818160030160008360020154815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083600019167fe4ab708eaba56e3fc86c807c52597fa3912723db2c4b47704e8e3729533154a68484604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a250505050565b6060600c6000856000191660001916815260200190815260200160002060008484604051808383808284378201915050925050506040518091039020600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156141335780601f1061410857610100808354040283529160200191614133565b820191906000526020600020905b81548152906001019060200180831161411657829003601f168201915b505050505090509392505050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515614204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b6007600084600019166000191681526020019081526020016000209050600015158160010160159054906101000a900460ff1615151415156142ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f2165726332302d636c61696d000000000000000000000000000000000000000081525060200191505060405180910390fd5b818160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018160030160008360020154815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018160010160156101000a81548160ff02191690831515021790555082600019167f61b9d2862914325dd13bcfe9fa63019518a298b091322a499110806cc839214983604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a282600019167f3a20afcbf909577cfdda0121a1a06de3ba63d5ccd34b0653920cffcf93dd693560405160405180910390a2505050565b6000600b8590806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055506007600086600019166000191681526020019081526020016000209050838160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081156144d35760018160010160156101000a81548160ff0219169083151502179055505b600060010260001916600960008772ffffffffffffffffffffffffffffffffffffff191672ffffffffffffffffffffffffffffffffffffff19168152602001908152602001600020546000191614151561452957fe5b84600960008772ffffffffffffffffffffffffffffffffffffff191672ffffffffffffffffffffffffffffffffffffff191681526020019081526020016000208160001916905550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055506145ea85846149e4565b7f0c20027e6e14b382bc4c0eb23bbb44394e15081383d9088dd44adcac951830fa8560405180826000191660001916815260200191505060405180910390a15050505050565b6002600081548092919060010191905055506001600360006101000a81548160ff0219169083151502179055507fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a160405160405180910390a1565b8060016000600254815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156147a9578173ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a260048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506147ed565b8173ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a25b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61483582602060405190810160405280600081525083614bb6565b5050565b60608160405160200180807f656469746f722e0000000000000000000000000000000000000000000000000081525060070182805190602001908083835b60208310151561489c5780518252602082019150602081019050602083039250614877565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040529050919050565b6000806148e384614d78565b915060076000876000191660001916815260200190815260200160002060040180549050905060076000876000191660001916815260200190815260200160002060040185908060018154018082558091505090600182039060005260206000200160009091929091909150555082156149a0576007600087600019166000191681526020019081526020016000206005018590806001815401808255809150509060018203906000526020600020016000909192909190915055505b85600019167f73da1acab1521244521194424efac3de42f8bb8aa8c3b4f85843d4bfb7b3df84826040518082815260200191505060405180910390a2505050505050565b600080600760008560001916600019168152602001908152602001600020915081600201549050828260010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600082600301600083815260200190815260200160002060008460010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600182600301600083815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555083600019167f61b9d2862914325dd13bcfe9fa63019518a298b091322a499110806cc839214984604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b60001515600660019054906101000a900460ff161515141515614c41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f73732d677561726400000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600660016101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff16818360405180828051906020019080838360005b83811015614ca2578082015181840152602081019050614c87565b50505050905090810190601f168015614ccf5780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af1925050501515614d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f73732d6661696c6564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600660016101000a81548160ff021916908315150217905550505050565b60006080829060020a90049050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10614dcb57803560ff1916838001178555614df9565b82800160010185558215614df9579182015b82811115614df8578235825591602001919060010190614ddd565b5b509050614e069190614e0a565b5090565b614e2c91905b80821115614e28576000816000905550600101614e10565b5090565b905600a165627a7a72305820f91857bb615dc8d7e63147f53d72aa7162e38e262eaf028d773aa5f8c09b39880029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/SVPayments.abi b/dist/2018-06-18-ix-deployment/sv_index/SVPayments.abi new file mode 100644 index 0000000..8880118 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/SVPayments.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"payForDemocracy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"additionalSeconds","type":"uint256"},{"name":"ref","type":"bytes32"}],"name":"giveTimeToDemoc","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setBasicCentsPricePer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDenyPremium","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"emergencySetOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minorEditsAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"c","type":"uint256"}],"name":"centsToWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"isPremiumDenied","type":"bool"}],"name":"setDenyPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"accountInGoodStanding","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"}],"name":"setMinorEditsAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"downgradeToBasic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicBallotsPer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMinWeiForDInit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newPayTo","type":"address"}],"name":"setPayTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getFreeExtension","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPaymentLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"w","type":"uint256"}],"name":"weiToCents","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"emergencyAdmin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getPremiumStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumMultiplier","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getWeiPerCent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"amount","type":"uint256"}],"name":"setBasicBallotsPer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicExtraBallotFeeWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"hasFreeExt","type":"bool"}],"name":"setFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"upgradeToPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wpc","type":"uint256"}],"name":"setWeiPerCent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getAccount","outputs":[{"name":"isPremium","type":"bool"},{"name":"lastPaymentTs","type":"uint256"},{"name":"paidUpTill","type":"uint256"},{"name":"hasFreeExtension","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUsdEthExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"m","type":"uint8"}],"name":"setPremiumMultiplier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getSecondsRemaining","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPayTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setMinWeiForDInit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"amount","type":"uint256"}],"name":"weiBuysHowManySeconds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getPaymentLog","outputs":[{"name":"_external","type":"bool"},{"name":"_democHash","type":"bytes32"},{"name":"_seconds","type":"uint256"},{"name":"_ethValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"doFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_emergencyAdmin","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/SVPayments.bin b/dist/2018-06-18-ix-deployment/sv_index/SVPayments.bin new file mode 100644 index 0000000..9e1522d --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/SVPayments.bin @@ -0,0 +1 @@ +608060405260006002556000600360006101000a81548160ff0219169083151502179055506000600660006101000a81548160ff0219169083151502179055506201e848600855600a6009556005600a60006101000a81548160ff021916908360ff160217905550650f15345956c0600b556001600c553480156200008357600080fd5b5060405160208062004974833981018060405281019080805190602001909291905050503380336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200010533600162000204640100000000026401000000009004565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200013f57fe5b80600660026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515620001fd57fe5b506200036c565b8060016000600254815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801562000324578173ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a260048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000368565b8173ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a25b5050565b6145f8806200037c6000396000f30060806040526004361061029d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062a219f4146102ed57806304318794146103115780630bf63c601461035a5780630d8e6e2c14610387578063105689a0146103b257806312f11ed3146103c957806313af403514610412578063158ee8871461045557806316b087551461049857806317ffc320146104ef5780631c732d83146105325780631ffa27f91461057357806321fb9869146105ce57806324d7806c1461063b57806332c0c5831461069657806333af060f146106d3578063383bb22a1461071c5780633c205b051461075f5780633e06be201461078a578063407a5c92146107bb5780634681067d146107e65780634b0bddd2146107fd5780634da2317f1461084c5780635341903b146108635780635429a417146108a657806354924aec146108d157806356e52cbb146109005780636165234c1461092b57806361b9739a1461097a578063672350bd146109bd5780636cc0331514610a065780636d568c4314610a3157806370905dce14610a7257806372004a6514610ac9578063761ba89414610b1257806377410c0314610b435780638185b8e914610b7257806381bd66fe14610b9d5780638da5cb5b14610be0578063a05e3bb014610c37578063b2148d3814610c64578063b2461b1514610c8f578063b352867c14610cf2578063bb48d19014610d2f578063ca37a9eb14610d60578063d1de501114610d8d578063ddd9537d14610def578063e2e794c314610e1a578063e839554e14610e4a578063e8e9eeae14610e75578063ee882a9914610ea0578063f1efb76a14610ee5578063f3199e9814610f3c578063f3b8b2a914610f69578063f8ef9a3d14610faa578063ff2b05711461100c575b6102a561103d565b73ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156102ea573d6000803e3d6000fd5b50005b61030f6004803603810190808035600019169060200190929190505050611067565b005b34801561031d57600080fd5b5061035860048036038101908080356000191690602001909291908035906020019092919080356000191690602001909291905050506112a3565b005b34801561036657600080fd5b50610385600480360381019080803590602001909291905050506114ba565b005b34801561039357600080fd5b5061039c6115bf565b6040518082815260200191505060405180910390f35b3480156103be57600080fd5b506103c76115c8565b005b3480156103d557600080fd5b506103f86004803603810190808035600019169060200190929190505050611768565b604051808215151515815260200191505060405180910390f35b34801561041e57600080fd5b50610453600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061179a565b005b34801561046157600080fd5b50610496600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611904565b005b3480156104a457600080fd5b506104ad611a0c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104fb57600080fd5b50610530600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a32565b005b34801561053e57600080fd5b5061055d60048036038101908080359060200190929190505050611cde565b6040518082815260200191505060405180910390f35b34801561057f57600080fd5b506105b4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cec565b604051808215151515815260200191505060405180910390f35b3480156105da57600080fd5b506105f960048036038101908080359060200190929190505050611d42565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064757600080fd5b5061067c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d85565b604051808215151515815260200191505060405180910390f35b3480156106a257600080fd5b506106d16004803603810190808035600019169060200190929190803515159060200190929190505050611dee565b005b3480156106df57600080fd5b506107026004803603810190808035600019169060200190929190505050611f8e565b604051808215151515815260200191505060405180910390f35b34801561072857600080fd5b5061075d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fb9565b005b34801561076b57600080fd5b50610774612124565b6040518082815260200191505060405180910390f35b34801561079657600080fd5b506107b9600480360381019080803560001916906020019092919050505061212a565b005b3480156107c757600080fd5b506107d0612408565b6040518082815260200191505060405180910390f35b3480156107f257600080fd5b506107fb612415565b005b34801561080957600080fd5b5061084a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612583565b005b34801561085857600080fd5b506108616127bc565b005b34801561086f57600080fd5b506108a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061285c565b005b3480156108b257600080fd5b506108bb612a67565b6040518082815260200191505060405180910390f35b3480156108dd57600080fd5b506108e6612a71565b604051808215151515815260200191505060405180910390f35b34801561090c57600080fd5b50610915612a84565b6040518082815260200191505060405180910390f35b34801561093757600080fd5b50610978600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612a8e565b005b34801561098657600080fd5b506109bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d4e565b005b3480156109c957600080fd5b506109ec6004803603810190808035600019169060200190929190505050612e81565b604051808215151515815260200191505060405180910390f35b348015610a1257600080fd5b50610a1b612eb3565b6040518082815260200191505060405180910390f35b348015610a3d57600080fd5b50610a5c60048036038101908080359060200190929190505050612ec0565b6040518082815260200191505060405180910390f35b348015610a7e57600080fd5b50610a87612ed7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ad557600080fd5b50610af86004803603810190808035600019169060200190929190505050612efd565b604051808215151515815260200191505060405180910390f35b348015610b1e57600080fd5b50610b27612f32565b604051808260ff1660ff16815260200191505060405180910390f35b348015610b4f57600080fd5b50610b58612f49565b604051808215151515815260200191505060405180910390f35b348015610b7e57600080fd5b50610b87612f5c565b6040518082815260200191505060405180910390f35b348015610ba957600080fd5b50610bde600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f66565b005b348015610bec57600080fd5b50610bf561314c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c4357600080fd5b50610c6260048036038101908080359060200190929190505050613171565b005b348015610c7057600080fd5b50610c79613276565b6040518082815260200191505060405180910390f35b348015610c9b57600080fd5b50610cf0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613295565b005b348015610cfe57600080fd5b50610d2d6004803603810190808035600019169060200190929190803515159060200190929190505050613573565b005b348015610d3b57600080fd5b50610d5e6004803603810190808035600019169060200190929190505050613713565b005b348015610d6c57600080fd5b50610d8b60048036038101908080359060200190929190505050613a28565b005b348015610d9957600080fd5b50610dbc6004803603810190808035600019169060200190929190505050613b87565b60405180851515151581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b348015610dfb57600080fd5b50610e04613c2f565b6040518082815260200191505060405180910390f35b348015610e2657600080fd5b50610e48600480360381019080803560ff169060200190929190505050613c4c565b005b348015610e5657600080fd5b50610e5f613d6b565b6040518082815260200191505060405180910390f35b348015610e8157600080fd5b50610e8a613d75565b6040518082815260200191505060405180910390f35b348015610eac57600080fd5b50610ecf6004803603810190808035600019169060200190929190505050613d84565b6040518082815260200191505060405180910390f35b348015610ef157600080fd5b50610efa613db5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610f4857600080fd5b50610f6760048036038101908080359060200190929190505050613dc4565b005b348015610f7557600080fd5b50610f9460048036038101908080359060200190929190505050613f23565b6040518082815260200191505060405180910390f35b348015610fb657600080fd5b50610fd560048036038101908080359060200190929190505050613f7a565b6040518085151515158152602001846000191660001916815260200183815260200182815260200194505050505060405180910390f35b34801561101857600080fd5b5061103b6004803603810190808035600019169060200190929190505050614020565b005b6000600660029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008034111515611106576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f6e65656420746f2073656e6420736f6d6520657468657220746f206d616b652081526020017f7061796d656e740000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61110f34613f23565b9050600d6000836000191660001916815260200190815260200160002060000160009054906101000a900460ff161561116357600a60009054906101000a900460ff1660ff168181151561115f57fe5b0490505b60018110151561117857611177828261412d565b5b600e60806040519081016040528060001515815260200184600019168152602001838152602001348152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000160006101000a81548160ff02191690831515021790555060208201518160010190600019169055604082015181600201556060820151816003015550505081600019167fe6ad0535314a8031f23d28b2c0945848329bf43d9d12471ce4f5f99f66406576826040518082815260200191505060405180910390a261125961103d565b73ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561129e573d6000803e3d6000fd5b505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061134c57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f216f776e65722d6f72000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6113ca848461412d565b600e6080604051908101604052806001151581526020018660001916815260200185815260200160008152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000160006101000a81548160ff02191690831515021790555060208201518160010190600019169055604082015181600201556060820151816003015550505083600019167f662d736f3a0c8f3b0906b173689606e590f214abef4ae9bde801e1b6f4059f4d84846040518083815260200182600019166000191681526020019250505060405180910390a250505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b806008819055507f696e5c6fec16a11a25b2139177dc42dbfe83df4fd078f5a7f13b6db57792d1a1816040518082815260200191505060405180910390a150565b60006002905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561168c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b60001515600660009054906101000a900460ff161515141515611717576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6e6f5f6c6f636b646f776e3a20636865636b206661696c65640000000000000081525060200191505060405180910390fd5b61171f6141a9565b6001600660006101000a81548160ff0219169083151502179055507f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20560405160405180910390a1565b6000600f6000836000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f21656d657267656e63792d6f776e65720000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611af8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611b9357600080fd5b505af1158015611ba7573d6000803e3d6000fd5b505050506040513d6020811015611bbd57600080fd5b810190808051906020019092919050505090508173ffffffffffffffffffffffffffffffffffffffff1663095ea7b36000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611c9457600080fd5b505af1158015611ca8573d6000803e3d6000fd5b505050506040513d6020811015611cbe57600080fd5b81019080805190602001909291905050501515611cda57600080fd5b5050565b6000600b5482029050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600482815481101515611d5357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060016000600254815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611e9757506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611f0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f216f776e65722d6f72000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600f6000856000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055507f50935952ae272746cf38a1cb4aa7c93d3e39e60cdc4a761ef55a4e69366abe7d8383604051808360001916600019168152602001821515151581526020019250505060405180910390a1505050565b600042600d600084600019166000191681526020019081526020016000206002015410159050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561207d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd72f7e1ee158c792883f68eb79af23661439288dae047b5a0f1fb6c8cd88497381604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60025481565b600080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156121ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b600d6000846000191660001916815260200190815260200160002060000160009054906101000a900460ff16151561228e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f217072656d69756d00000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600d6000856000191660001916815260200190815260200160002060000160006101000a81548160ff021916908315150217905550600d600084600019166000191681526020019081526020016000206002015491506122f08242614204565b905060008111156123d257620151804203600d6000856000191660001916815260200190815260200160002060030154101515612395576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f646f776e67726164652d746f6f2d736f6f6e000000000000000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900460ff1660ff1681029050804201600d60008560001916600019168152602001908152602001600020600201819055505b82600019167f48f962cb175066eb5227bf2d28122d1f0861b74cd6951e6542a6f0283b6a30b760405160405180910390a2505050565b6000600480549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6002600081548092919060010191905055506001806000600254815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a60405160405180910390a1565b60001515600360009054906101000a900460ff16151514151561260e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b61261733611d85565b151561268b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561271457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156127ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657281526020017f277329207065726d697373696f6e73000000000000000000000000000000000081525060400191505060405180910390fd5b6127b88282614223565b5050565b6000806127c761103d565b91503073ffffffffffffffffffffffffffffffffffffffff163190506127ed8282614389565b7fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd25624728282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561291d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6000600954905090565b600360009054906101000a900460ff1681565b6000600c54905090565b60001515600660009054906101000a900460ff161515141515612b19576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6e6f5f6c6f636b646f776e3a20636865636b206661696c65640000000000000081525060200191505060405180910390fd5b60001515600360009054906101000a900460ff161515141515612ba4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b612bad33611d85565b1515612c21576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015612ce6577fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1612d4a565b7f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c92182604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b612e1b816143a8565b7fbea0769aba15b443dd3170dc4bc7b94123881e42d6ed3d31a2654daf43b0585181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600060106000836000191660001916815260200190815260200160002060009054906101000a900460ff169050919050565b6000600e80549050905090565b6000600b5482811515612ecf57fe5b049050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600d6000836000191660001916815260200190815260200160002060000160009054906101000a900460ff169050919050565b6000600a60009054906101000a900460ff16905090565b600660009054906101000a900460ff1681565b6000600b54905090565b60001515600360009054906101000a900460ff161515141515612ff1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b612ffa33611d85565b151561306e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515613133576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6f776e65722063616e6e6f7420757067726164652073656c660000000000000081525060200191505060405180910390fd5b61313e336000614223565b613149816001614223565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613235576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b806009819055507fcfa56694fbda1b84c5d6c63fe8f6874c83c94f2da04231dd0d54e07cb542e62f816040518082815260200191505060405180910390a150565b600061329060095460085481151561328a57fe5b04611cde565b905090565b60001515600660009054906101000a900460ff161515141515613320576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6e6f5f6c6f636b646f776e3a20636865636b206661696c65640000000000000081525060200191505060405180910390fd5b60001515600360009054906101000a900460ff1615151415156133ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b6133b433611d85565b1515613428576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b588282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061361c57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613690576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f216f776e65722d6f72000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8160106000856000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055507fde965928e65e33ccd6559d861e5483e90512b32455de3d5eec039b9a5b93f8e48383604051808360001916600019168152602001821515151581526020019250505060405180910390a1505050565b600080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156137d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b60001515600f6000856000191660001916815260200190815260200160002060009054906101000a900460ff16151514151561387b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f757067726164652d64656e69656400000000000000000000000000000000000081525060200191505060405180910390fd5b600d6000846000191660001916815260200190815260200160002060000160009054906101000a900460ff1615151561391c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f216261736963000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600d6000856000191660001916815260200190815260200160002060000160006101000a81548160ff021916908315150217905550600d6000846000191660001916815260200190815260200160002060020154915061397e8242614204565b905060008111156139cf57600a60009054906101000a900460ff1660ff16818115156139a657fe5b049050804201600d60008560001916600019168152602001908152602001600020600201819055505b42600d600085600019166000191681526020019081526020016000206003018190555082600019167fb957c6a4668e76eb2e541f54eff529717f8070dba0ef7813dd8ab28cbbf0f70260405160405180910390a2505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613ad157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613b45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f216f776e65722d6f72000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600b819055507f1d5de90e7c5b244ac5797698b15fe80a92524d933dafd79e001daf844555fb1c826040518082815260200191505060405180910390a15050565b600080600080600d6000866000191660001916815260200190815260200160002060000160009054906101000a900460ff169350600d60008660001916600019168152602001908152602001600020600101549250600d6000866000191660001916815260200190815260200160002060020154915060106000866000191660001916815260200190815260200160002060009054906101000a900460ff1690509193509193565b6000600b54670de0b6b3a7640000811515613c4657fe5b04905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613d10576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b80600a60006101000a81548160ff021916908360ff1602179055507fdd5e68e86e7460257caaf7a2276fa63562e9a906a39802c4f37699f5736a72f281604051808260ff1660ff16815260200191505060405180910390a150565b6000600854905090565b6000613d7f6143ec565b905090565b6000613dae600d600084600019166000191681526020019081526020016000206002015442614204565b9050919050565b6000613dbf61103d565b905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613e6d57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613ee1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f216f776e65722d6f72000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600c819055507f134bc3fbd032443af0856b9e13b4146103106e96c9c095d10415247f5369c4cf826040518082815260200191505060405180910390a15050565b6000806000806000613f3486612ec0565b935060085484670de0b6b3a764000002811515613f4d57fe5b04925062278d0083029150670de0b6b3a764000082811515613f6b57fe5b04905080945050505050919050565b600080600080600e85815481101515613f8f57fe5b906000526020600020906004020160000160009054906101000a900460ff169350600e85815481101515613fbf57fe5b9060005260206000209060040201600101549250600e85815481101515613fe257fe5b9060005260206000209060040201600201549150600e8581548110151561400557fe5b90600052602060002090600402016003015490509193509193565b600060106000836000191660001916815260200190815260200160002060009054906101000a900460ff1615156140bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f216672656500000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b624f1a004201905080600d60008460001916600019168152602001908152602001600020600201819055507f09664427434c2b4309000ea03b5e378fa25c30acbe0a04fdeff36061303f8e7e8260405180826000191660001916815260200191505060405180910390a15050565b6000600d600084600019166000191681526020019081526020016000206002015490504281101561415c574290505b818101600d600085600019166000191681526020019081526020016000206002018190555042600d6000856000191660001916815260200190815260200160002060010181905550505050565b6002600081548092919060010191905055506001600360006101000a81548160ff0219169083151502179055507fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a160405160405180910390a1565b600081831015614217576000905061421d565b81830390505b92915050565b8060016000600254815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015614341578173ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a260048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050614385565b8173ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a25b5050565b6143a48260206040519081016040528060008152508361440a565b5050565b80600660026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600854600a60009054906101000a900460ff1660ff1602905090565b60001515600660019054906101000a900460ff161515141515614495576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f73732d677561726400000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600660016101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff16818360405180828051906020019080838360005b838110156144f65780820151818401526020810190506144db565b50505050905090810190601f1680156145235780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af19250505015156145ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f73732d6661696c6564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600660016101000a81548160ff0219169083151502179055505050505600a165627a7a7230582005a00ef2fd2463f5f5d882cf73df22ef8c206e3ec990178a6d5bfe986cbf09fe0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/SafeMath.abi b/dist/2018-06-18-ix-deployment/sv_index/SafeMath.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/SafeMath.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/SafeMath.bin b/dist/2018-06-18-ix-deployment/sv_index/SafeMath.bin new file mode 100644 index 0000000..a7ecff7 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/SafeMath.bin @@ -0,0 +1 @@ +604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820facaf1a2f7ea0cc7e909437d6edf31bf09b774b02557c1085ab777961d4aaceb0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/SvEnsIface.abi b/dist/2018-06-18-ix-deployment/sv_index/SvEnsIface.abi new file mode 100644 index 0000000..72cafd8 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/SvEnsIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"label","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/SvEnsIface.bin b/dist/2018-06-18-ix-deployment/sv_index/SvEnsIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index/controlledIface.abi b/dist/2018-06-18-ix-deployment/sv_index/controlledIface.abi new file mode 100644 index 0000000..a7f2789 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/controlledIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/controlledIface.bin b/dist/2018-06-18-ix-deployment/sv_index/controlledIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index/hasAdmins.abi b/dist/2018-06-18-ix-deployment/sv_index/hasAdmins.abi new file mode 100644 index 0000000..7bd1476 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/hasAdmins.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/hasAdmins.bin b/dist/2018-06-18-ix-deployment/sv_index/hasAdmins.bin new file mode 100644 index 0000000..b57006d --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/hasAdmins.bin @@ -0,0 +1 @@ +608060405260006002556000600360006101000a81548160ff02191690831515021790555034801561003057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061008b336001610090640100000000026401000000009004565b6101f6565b8060016000600254815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156101ae578173ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a260048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506101f2565b8173ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a25b5050565b610cb9806102056000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806313af4035146100a957806321fb9869146100ec57806324d7806c146101595780633c205b05146101b4578063407a5c92146101df5780634681067d1461020a5780634b0bddd21461022157806354924aec1461027057806381bd66fe1461029f5780638da5cb5b146102e2575b600080fd5b3480156100b557600080fd5b506100ea600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610339565b005b3480156100f857600080fd5b50610117600480360381019080803590602001909291905050506104a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016557600080fd5b5061019a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104e6565b604051808215151515815260200191505060405180910390f35b3480156101c057600080fd5b506101c961054f565b6040518082815260200191505060405180910390f35b3480156101eb57600080fd5b506101f4610555565b6040518082815260200191505060405180910390f35b34801561021657600080fd5b5061021f610562565b005b34801561022d57600080fd5b5061026e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506106d0565b005b34801561027c57600080fd5b50610285610909565b604051808215151515815260200191505060405180910390f35b3480156102ab57600080fd5b506102e0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061091c565b005b3480156102ee57600080fd5b506102f7610b02565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60006004828154811015156104b457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060016000600254815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60025481565b6000600480549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610626576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6002600081548092919060010191905055506001806000600254815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a60405160405180910390a1565b60001515600360009054906101000a900460ff16151514151561075b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b610764336104e6565b15156107d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561086157506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156108fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657281526020017f277329207065726d697373696f6e73000000000000000000000000000000000081525060400191505060405180910390fd5b6109058282610b27565b5050565b600360009054906101000a900460ff1681565b60001515600360009054906101000a900460ff1615151415156109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b6109b0336104e6565b1515610a24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610ae9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6f776e65722063616e6e6f7420757067726164652073656c660000000000000081525060200191505060405180910390fd5b610af4336000610b27565b610aff816001610b27565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8060016000600254815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015610c45578173ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a260048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610c89565b8173ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a25b50505600a165627a7a72305820d9da1f883624d3d29b0c626f668e6ddfd3babed7fecdfc8664d3b4803a4b63ca0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/hasVersion.abi b/dist/2018-06-18-ix-deployment/sv_index/hasVersion.abi new file mode 100644 index 0000000..f6ed3d5 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/hasVersion.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/hasVersion.bin b/dist/2018-06-18-ix-deployment/sv_index/hasVersion.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index/ixBackendEvents.abi b/dist/2018-06-18-ix-deployment/sv_index/ixBackendEvents.abi new file mode 100644 index 0000000..9f786b7 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/ixBackendEvents.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/ixBackendEvents.bin b/dist/2018-06-18-ix-deployment/sv_index/ixBackendEvents.bin new file mode 100644 index 0000000..465122f --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/ixBackendEvents.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820467a1a0464e24c476b213a352f2e2f1e7f2828fe3d0217e21addfff16e45baaa0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/ixEvents.abi b/dist/2018-06-18-ix-deployment/sv_index/ixEvents.abi new file mode 100644 index 0000000..79a97b9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/ixEvents.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"name":"valAndRemainder","type":"uint256[2]"}],"name":"PaymentMade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"AddedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"setWhat","type":"bytes32"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SetBackend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bbFarmId","type":"uint8"}],"name":"DeprecatedBBFarm","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"CommunityBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotId","type":"uint256"},{"indexed":false,"name":"packed","type":"uint256"}],"name":"ManuallyAddedBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ballotId","type":"uint256"}],"name":"BallotCreatedWithID","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"namespace","type":"bytes4"}],"name":"BBFarmInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/ixEvents.bin b/dist/2018-06-18-ix-deployment/sv_index/ixEvents.bin new file mode 100644 index 0000000..6b9cfd9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/ixEvents.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820727ad8c7b27253d75ecc3b938660d7f5a387d2cfe45631a4f7929b74e9afe19f0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/ixPaymentEvents.abi b/dist/2018-06-18-ix-deployment/sv_index/ixPaymentEvents.abi new file mode 100644 index 0000000..7dcdc0b --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/ixPaymentEvents.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/ixPaymentEvents.bin b/dist/2018-06-18-ix-deployment/sv_index/ixPaymentEvents.bin new file mode 100644 index 0000000..33635f8 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/ixPaymentEvents.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820b333d3fe7298d046f4f4e6ffb2f193ae8131e528721a619e8e07c943c70c0fb30029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/owned.abi b/dist/2018-06-18-ix-deployment/sv_index/owned.abi new file mode 100644 index 0000000..7ce5118 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/owned.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/owned.bin b/dist/2018-06-18-ix-deployment/sv_index/owned.bin new file mode 100644 index 0000000..7caaed5 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/owned.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102a6806100606000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806313af4035146100515780638da5cb5b14610094575b600080fd5b34801561005d57600080fd5b50610092600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100eb565b005b3480156100a057600080fd5b506100a9610255565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582091a5312692f8fa664d238c194ae58997622416cdae5de0eaf1c0ba12c6adaacf0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/payoutAllC.abi b/dist/2018-06-18-ix-deployment/sv_index/payoutAllC.abi new file mode 100644 index 0000000..0b3e301 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/payoutAllC.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"initPayTo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/payoutAllC.bin b/dist/2018-06-18-ix-deployment/sv_index/payoutAllC.bin new file mode 100644 index 0000000..d9e521a --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/payoutAllC.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506040516020806103ed83398101806040528101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561006c57fe5b80600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610330806100bd6000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634da2317f14610046575b600080fd5b34801561005257600080fd5b5061005b61005d565b005b6000806100686100fd565b91503073ffffffffffffffffffffffffffffffffffffffff1631905061008e8282610126565b7fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd25624728282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61014182602060405190810160405280600081525083610145565b5050565b600015156000809054906101000a900460ff1615151415156101cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f73732d677561726400000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60016000806101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff16818360405180828051906020019080838360005b8381101561022f578082015181840152602081019050610214565b50505050905090810190601f16801561025c5780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af19250505015156102e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f73732d6661696c6564000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008060006101000a81548160ff0219169083151502179055505050505600a165627a7a723058208255f728d1b047fc5631ffc53bfb238ed09a5e3397a861f711788de4d26637a60029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/payoutAllCSettable.abi b/dist/2018-06-18-ix-deployment/sv_index/payoutAllCSettable.abi new file mode 100644 index 0000000..5da8fc9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/payoutAllCSettable.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"}],"name":"setPayTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getPayTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"initPayTo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/payoutAllCSettable.bin b/dist/2018-06-18-ix-deployment/sv_index/payoutAllCSettable.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index/permissioned.abi b/dist/2018-06-18-ix-deployment/sv_index/permissioned.abi new file mode 100644 index 0000000..b7ef45f --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/permissioned.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/permissioned.bin b/dist/2018-06-18-ix-deployment/sv_index/permissioned.bin new file mode 100644 index 0000000..65493f1 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/permissioned.bin @@ -0,0 +1 @@ +608060405260006002556000600360006101000a81548160ff0219169083151502179055506000600660006101000a81548160ff02191690831515021790555034801561004b57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100a63360016100ab640100000000026401000000009004565b610211565b8060016000600254815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156101c9578173ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a260048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061020d565b8173ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a25b5050565b61189e806102206000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063105689a0146100eb57806313af4035146101025780631ffa27f91461014557806321fb9869146101a057806324d7806c1461020d5780633c205b0514610268578063407a5c92146102935780634681067d146102be5780634b0bddd2146102d55780635341903b1461032457806354924aec146103675780636165234c1461039657806377410c03146103e557806381bd66fe146104145780638da5cb5b14610457578063b2461b15146104ae575b600080fd5b3480156100f757600080fd5b50610100610511565b005b34801561010e57600080fd5b50610143600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106b1565b005b34801561015157600080fd5b50610186600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061081b565b604051808215151515815260200191505060405180910390f35b3480156101ac57600080fd5b506101cb60048036038101908080359060200190929190505050610871565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108b4565b604051808215151515815260200191505060405180910390f35b34801561027457600080fd5b5061027d61091d565b6040518082815260200191505060405180910390f35b34801561029f57600080fd5b506102a8610923565b6040518082815260200191505060405180910390f35b3480156102ca57600080fd5b506102d3610930565b005b3480156102e157600080fd5b50610322600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610a9e565b005b34801561033057600080fd5b50610365600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cd7565b005b34801561037357600080fd5b5061037c610ee2565b604051808215151515815260200191505060405180910390f35b3480156103a257600080fd5b506103e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610ef5565b005b3480156103f157600080fd5b506103fa6111b5565b604051808215151515815260200191505060405180910390f35b34801561042057600080fd5b50610455600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111c8565b005b34801561046357600080fd5b5061046c6113ae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ba57600080fd5b5061050f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d3565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b60001515600660009054906101000a900460ff161515141515610660576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6e6f5f6c6f636b646f776e3a20636865636b206661696c65640000000000000081525060200191505060405180910390fd5b6106686116b1565b6001600660006101000a81548160ff0219169083151502179055507f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610775576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600060048281548110151561088257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060016000600254815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60025481565b6000600480549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f6f776e65723a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6002600081548092919060010191905055506001806000600254815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a60405160405180910390a1565b60001515600360009054906101000a900460ff161515141515610b29576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b610b32336108b4565b1515610ba6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610c2f57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610cc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657281526020017f277329207065726d697373696f6e73000000000000000000000000000000000081525060400191505060405180910390fd5b610cd3828261170c565b5050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610d98576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6f6e6c795f656469746f72733a20666f7262696464656e00000000000000000081525060200191505060405180910390fd5b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b600360009054906101000a900460ff1681565b60001515600660009054906101000a900460ff161515141515610f80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6e6f5f6c6f636b646f776e3a20636865636b206661696c65640000000000000081525060200191505060405180910390fd5b60001515600360009054906101000a900460ff16151514151561100b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b611014336108b4565b1515611088576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561114d577fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a16111b1565b7f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c92182604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b600660009054906101000a900460ff1681565b60001515600360009054906101000a900460ff161515141515611253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b61125c336108b4565b15156112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515611395576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6f776e65722063616e6e6f7420757067726164652073656c660000000000000081525060200191505060405180910390fd5b6113a033600061170c565b6113ab81600161170c565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60001515600660009054906101000a900460ff16151514151561145e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6e6f5f6c6f636b646f776e3a20636865636b206661696c65640000000000000081525060200191505060405180910390fd5b60001515600360009054906101000a900460ff1615151415156114e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f61646d696e73206d757374206e6f742062652064697361626c6564000000000081525060200191505060405180910390fd5b6114f2336108b4565b1515611566576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c795f61646d696e3a20666f7262696464656e000000000000000000000081525060200191505060405180910390fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b588282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b6002600081548092919060010191905055506001600360006101000a81548160ff0219169083151502179055507fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a160405160405180910390a1565b8060016000600254815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561182a578173ffffffffffffffffffffffffffffffffffffffff167f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33960405160405180910390a260048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061186e565b8173ffffffffffffffffffffffffffffffffffffffff167fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f60405160405180910390a25b50505600a165627a7a72305820328b084e081f314d235fa58b42336508fe02a79b8ff095849e600b1e24248f8f0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/safeSend.abi b/dist/2018-06-18-ix-deployment/sv_index/safeSend.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/safeSend.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/safeSend.bin b/dist/2018-06-18-ix-deployment/sv_index/safeSend.bin new file mode 100644 index 0000000..29ab2b9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/safeSend.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058201d1da259358b42cbbdc28660a1a9653d5da12da9030af1e9278463730635d1150029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/upgradePtr.abi b/dist/2018-06-18-ix-deployment/sv_index/upgradePtr.abi new file mode 100644 index 0000000..c8fab44 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/upgradePtr.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"getUpgradePointer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index/upgradePtr.bin b/dist/2018-06-18-ix-deployment/sv_index/upgradePtr.bin new file mode 100644 index 0000000..52656be --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index/upgradePtr.bin @@ -0,0 +1 @@ +608060405260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005157600080fd5b5060ed806100606000396000f300608060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063a76f3543146044575b600080fd5b348015604f57600080fd5b5060566098565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a7230582069c36cc76bd6194724698f39cf6b80a993ee3f772809f4b40c5e979cce2085620029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/BPackedUtils.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/BPackedUtils.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/BPackedUtils.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/BPackedUtils.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/BPackedUtils.bin new file mode 100644 index 0000000..6f5eed5 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/BPackedUtils.bin @@ -0,0 +1 @@ +604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582043b88a2ea2bb10dcbb08df3ea6cbc3fd9a395291782140206e70edfe7a59e58b0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/ERC20Interface.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/ERC20Interface.abi new file mode 100644 index 0000000..c34da32 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/ERC20Interface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/ERC20Interface.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/ERC20Interface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/IxBackendIface.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/IxBackendIface.abi new file mode 100644 index 0000000..a54edb9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/IxBackendIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCategoriesN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"dDeprecateCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"erc20","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dAdd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"getGDemoc","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"enabled","type":"bool"}],"name":"dSetCommunityBallotsEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"getDCategory","outputs":[{"name":"deprecated","type":"bool"},{"name":"name","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"categoryName","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"name":"dAddCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"setDNoEditors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"prefix","type":"bytes13"}],"name":"getDHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDCountedBasicBallotID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCommBallotsEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDEditorArbitraryData","outputs":[{"name":"value","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dDisableErc20OwnerClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20OwnerClaimEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"ballotId","type":"uint256"},{"name":"packed","type":"uint256"},{"name":"countTowardsLimit","type":"bool"}],"name":"dAddBallot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetEditorArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getGDemocsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"erc20","type":"address"}],"name":"getGErc20ToDemocs","outputs":[{"name":"democHashes","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"defaultErc20","type":"address"},{"name":"initOwner","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dInit","outputs":[{"name":"democHash","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDInfo","outputs":[{"name":"erc20","type":"address"},{"name":"owner","type":"address"},{"name":"nBallots","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"emergencySetDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDBallotID","outputs":[{"name":"ballotId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"}],"name":"isDEditor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newErc20","type":"address"}],"name":"setDErc20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCountedBasicBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"},{"name":"canEdit","type":"bool"}],"name":"setDEditor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDArbitraryData","outputs":[{"name":"value","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwnerFromClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/IxBackendIface.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/IxBackendIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/SVIndexBackend.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/SVIndexBackend.abi new file mode 100644 index 0000000..c9c47c8 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/SVIndexBackend.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCategoriesN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"dDeprecateCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"erc20","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dAdd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"getGDemoc","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"enabled","type":"bool"}],"name":"dSetCommunityBallotsEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"getDCategory","outputs":[{"name":"deprecated","type":"bool"},{"name":"name","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"name":"dAddCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"setDNoEditors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"prefix","type":"bytes13"}],"name":"getDHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDCountedBasicBallotID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCommBallotsEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDEditorArbitraryData","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dDisableErc20OwnerClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20OwnerClaimEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"ballotId","type":"uint256"},{"name":"packed","type":"uint256"},{"name":"countTowardsLimit","type":"bool"}],"name":"dAddBallot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetEditorArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getGDemocsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"erc20","type":"address"}],"name":"getGErc20ToDemocs","outputs":[{"name":"democHashes","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"defaultErc20","type":"address"},{"name":"initOwner","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dInit","outputs":[{"name":"democHash","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDInfo","outputs":[{"name":"erc20","type":"address"},{"name":"owner","type":"address"},{"name":"nBallots","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"emergencySetDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDBallotID","outputs":[{"name":"ballotId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"}],"name":"isDEditor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newErc20","type":"address"}],"name":"setDErc20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCountedBasicBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"},{"name":"canEdit","type":"bool"}],"name":"setDEditor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDArbitraryData","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwnerFromClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/SVIndexBackend.abi.json b/dist/2018-06-18-ix-deployment/sv_index_backend/SVIndexBackend.abi.json new file mode 100644 index 0000000..c9c47c8 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/SVIndexBackend.abi.json @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCategoriesN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"dDeprecateCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"erc20","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dAdd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"getGDemoc","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"enabled","type":"bool"}],"name":"dSetCommunityBallotsEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"catId","type":"uint256"}],"name":"getDCategory","outputs":[{"name":"deprecated","type":"bool"},{"name":"name","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"name","type":"bytes32"},{"name":"hasParent","type":"bool"},{"name":"parent","type":"uint256"}],"name":"dAddCategory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"setDNoEditors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"prefix","type":"bytes13"}],"name":"getDHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDCountedBasicBallotID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCommBallotsEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDEditorArbitraryData","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"dDisableErc20OwnerClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDErc20OwnerClaimEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"ballotId","type":"uint256"},{"name":"packed","type":"uint256"},{"name":"countTowardsLimit","type":"bool"}],"name":"dAddBallot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"},{"name":"value","type":"bytes"}],"name":"dSetEditorArbitraryData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getGDemocsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"erc20","type":"address"}],"name":"getGErc20ToDemocs","outputs":[{"name":"democHashes","type":"bytes32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"defaultErc20","type":"address"},{"name":"initOwner","type":"address"},{"name":"disableErc20OwnerClaim","type":"bool"}],"name":"dInit","outputs":[{"name":"democHash","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDInfo","outputs":[{"name":"erc20","type":"address"},{"name":"owner","type":"address"},{"name":"nBallots","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"emergencySetDOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"n","type":"uint256"}],"name":"getDBallotID","outputs":[{"name":"ballotId","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"}],"name":"isDEditor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newErc20","type":"address"}],"name":"setDErc20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDCountedBasicBallotsN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"editor","type":"address"},{"name":"canEdit","type":"bool"}],"name":"setDEditor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"key","type":"bytes"}],"name":"getDArbitraryData","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"newOwner","type":"address"}],"name":"setDOwnerFromClaim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/SVIndexBackend.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/SVIndexBackend.bin new file mode 100644 index 0000000..3513d1e --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/SVIndexBackend.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff199081169091556006805490911690553480156200002c57600080fd5b5060008054600160a060020a031916339081179091556200005881600164010000000062000099810204565b600160a060020a03811615156200006b57fe5b60068054600160a060020a0390921662010000026201000060b060020a031990921691909117905562000192565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff191682158015919091179091556200015957604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a0384161790556200018e565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b612b9980620001a26000396000f3006080604052600436106102665763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663054f268e811461026b57806306ed69b9146102955780630d8e6e2c146102b25780630fed240b146102c7578063105689a0146102f057806313af4035146103055780631a4fb653146103265780631ffa27f91461033e57806321fb98691461037357806324d7806c146103a7578063336481d4146103c857806333b7d187146103e557806334ec96bf146104285780633c205b051461044b578063407a5c92146104605780634681067d146104755780634b0bddd21461048a5780634bb32e8c146104b05780634da2317f146104c85780635341903b146104dd57806354924aec146104fe578063565707a8146105135780635d6c8e101461052b5780636165234c1461055957806362c0ffa81461057f5780636627ace51461059a5780636670bdd8146105b25780636f7b5a56146105ca57806371c7e9231461066357806377410c031461067b57806381bd66fe14610690578063865cc6a3146106b1578063889b59d9146106c95780638da5cb5b146106e157806393b557db146106f6578063960834f414610726578063a5c5894414610749578063b2461b1514610779578063ca1637f5146107a0578063ca42afda146107b5578063dab122de14610826578063db15b72d14610852578063e011171d14610894578063e1fd3d4e146108b8578063e23d0996146108dc578063efbe584d146108f7578063f5f5c6221461091b578063f72f34db1461093f578063f7b822db14610957578063fa3ed04d14610980578063fb2e3240146109a4575b600080fd5b34801561027757600080fd5b506102836004356109c8565b60408051918252519081900360200190f35b3480156102a157600080fd5b506102b06004356024356109da565b005b3480156102be57600080fd5b50610283610a92565b3480156102d357600080fd5b506102b0600435600160a060020a03602435166044351515610a98565b3480156102fc57600080fd5b506102b0610b3c565b34801561031157600080fd5b506102b0600160a060020a0360043516610c27565b34801561033257600080fd5b50610283600435610cd8565b34801561034a57600080fd5b5061035f600160a060020a0360043516610cfb565b604080519115158252519081900360200190f35b34801561037f57600080fd5b5061038b600435610d19565b60408051600160a060020a039092168252519081900360200190f35b3480156103b357600080fd5b5061035f600160a060020a0360043516610d45565b3480156103d457600080fd5b506102b06004356024351515610d72565b3480156103f157600080fd5b50610400600435602435610e50565b6040805194151585526020850193909352901515838301526060830152519081900360800190f35b34801561043457600080fd5b506102b06004356024356044351515606435610e8f565b34801561045757600080fd5b50610283610f9b565b34801561046c57600080fd5b50610283610fa1565b34801561048157600080fd5b506102b0610fa7565b34801561049657600080fd5b506102b0600160a060020a0360043516602435151561104f565b3480156104bc57600080fd5b506102b0600435611196565b3480156104d457600080fd5b506102b061122f565b3480156104e957600080fd5b506102b0600160a060020a0360043516611291565b34801561050a57600080fd5b5061035f61135b565b34801561051f57600080fd5b5061038b600435611364565b34801561053757600080fd5b5061028372ffffffffffffffffffffffffffffffffffffff196004351661137f565b34801561056557600080fd5b506102b0600160a060020a036004351660243515156113a7565b34801561058b57600080fd5b50610283600435602435611546565b3480156105a657600080fd5b5061035f600435611576565b3480156105be57600080fd5b5061038b6004356115a7565b3480156105d657600080fd5b506105ee6004803590602480359081019101356115c5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610628578181015183820152602001610610565b50505050905090810190601f1680156106555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561066f57600080fd5b506102b0600435611725565b34801561068757600080fd5b5061035f6117da565b34801561069c57600080fd5b506102b0600160a060020a03600435166117e3565b3480156106bd57600080fd5b5061035f6004356118f5565b3480156106d557600080fd5b50610283600435611915565b3480156106ed57600080fd5b5061038b61192a565b34801561070257600080fd5b506102b0600480359060248035808201929081013591604435908101910135611939565b34801561073257600080fd5b506102b06004356024356044356064351515611a16565b34801561075557600080fd5b506102b0600480359060248035808201929081013591604435908101910135611a7f565b34801561078557600080fd5b506102b0600160a060020a0360043581169060243516611b8f565b3480156107ac57600080fd5b50610283611cf5565b3480156107c157600080fd5b506107d6600160a060020a0360043516611cfb565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156108125781810151838201526020016107fa565b505050509050019250505060405180910390f35b34801561083257600080fd5b50610283600160a060020a03600435811690602435166044351515611d68565b34801561085e57600080fd5b5061086a600435611e7c565b60408051600160a060020a0394851681529290931660208301528183015290519081900360600190f35b3480156108a057600080fd5b506102b0600435600160a060020a0360243516611eab565b3480156108c457600080fd5b506102b0600435600160a060020a0360243516611f0c565b3480156108e857600080fd5b50610283600435602435611fa9565b34801561090357600080fd5b5061035f600435600160a060020a0360243516611fc6565b34801561092757600080fd5b506102b0600435600160a060020a036024351661201e565b34801561094b57600080fd5b50610283600435612103565b34801561096357600080fd5b506102b0600435600160a060020a03602435166044351515612118565b34801561098c57600080fd5b506105ee6004803590602480359081019101356121f7565b3480156109b057600080fd5b506102b0600435600160a060020a0360243516612293565b60009081526008602052604090205490565b3360009081526005602052604090205460ff161515610a31576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b60008281526008602090815260408083208484526001908101835292819020805460ff19169093179092558151838152915184927fbcffb42fe43e03fdde1eca40d96bb1e9e48eff8d3ec71e025b2304977e64f39292908290030190a25050565b60025b90565b600054600160a060020a03163314610ae8576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b2e833981519152604482015290519081900360640190fd5b610af48383338461243d565b60408051848152600160a060020a038416602082015281517f76cfde4818906d3ebeda8d4aa81b23c066bbb956bb70274c4126ec9c0faead4e929181900390910190a1505050565b600054600160a060020a03163314610b8c576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b2e833981519152604482015290519081900360640190fd5b60065460ff1615610be7576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b610bef61258e565b6006805460ff191660011790556040517f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20590600090a1565b600054600160a060020a03163314610c77576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b2e833981519152604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b6000600b82815481101515610ce957fe5b90600052602060002001549050919050565b600160a060020a031660009081526005602052604090205460ff1690565b6000600482815481101515610d2a57fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b3360009081526005602052604090205460ff161515610dc9576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b600082815260076020908152604091829020600101805474ff00000000000000000000000000000000000000001916841574010000000000000000000000000000000000000000810291909117909155825190158152915184927f93b729dac8f3963db35b89b16922310952f9bf8b37e391b99218c03faa42f3f492908290030190a25050565b60009182526008602090815260408084209284526001928301909152909120805491810154600282015460039092015460ff9384169491939092169190565b3360009081526005602052604081205460ff161515610ee6576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b5060008481526008602090815260408083208054808552600191820190935292209091018490558215610f49576000858152600860209081526040808320848452600190810190925290912060028101805460ff19169092179091556003018290555b600085815260086020908152604091829020805460010190558151838152915187927fb00e174944b708eb07afc8afcdcc94d5dfa6c1246743602a8ce6a5bedad2f4e592908290030190a25050505050565b60025481565b60045490565b600054600160a060020a03163314610ff7576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b2e833981519152604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615611098576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020612b0e833981519152604482015290519081900360640190fd5b6110a133610d45565b15156110e5576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b4e833981519152604482015290519081900360640190fd5b600160a060020a038216331480159061110c5750600054600160a060020a03838116911614155b1515611188576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b61119282826125d2565b5050565b3360009081526005602052604090205460ff1615156111ed576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b600081815260076020526040808220600201805460010190555182917ff3bbc8c454575f9f6aa4d88c305beb91199abb12ec76ce392bc593fc771e3fba91a250565b60008061123a6126d5565b915050303161124982826126e4565b60408051600160a060020a03841681526020810183905281517fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd2562472929181900390910190a15050565b3360009081526005602052604090205460ff1615156112e8576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b336000818152600560209081526040808320805460ff19908116909155600160a060020a038616808552938290208054909116600117905580519384529083019190915280517f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a9281900390910190a150565b60035460ff1681565b600090815260076020526040902054600160a060020a031690565b72ffffffffffffffffffffffffffffffffffffff191660009081526009602052604090205490565b60065460ff1615611402576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff161561144b576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020612b0e833981519152604482015290519081900360640190fd5b61145433610d45565b1515611498576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b4e833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600560205260409020805460ff191682158015919091179091556115065760408051600160a060020a038416815290517fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c69181900360200190a1611192565b60408051600160a060020a038416815290517f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c9219181900360200190a15050565b600082815260076020526040812060050180548390811061156357fe5b9060005260206000200154905092915050565b60009081526007602052604090206001015474010000000000000000000000000000000000000000900460ff161590565b600090815260076020526040902060010154600160a060020a031690565b6000838152600c602090815260408083208151601f860184900484028101840190925284825260609390929091611610918790879081908401838280828437506126ff945050505050565b6040518082805190602001908083835b6020831061163f5780518252601f199092019160209182019101611620565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020600019166000191681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117165780601f106116eb57610100808354040283529160200191611716565b820191906000526020600020905b8154815290600101906020018083116116f957829003601f168201915b505050505090505b9392505050565b3360009081526005602052604090205460ff16151561177c576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b600081815260076020526040808220600101805475ff000000000000000000000000000000000000000000191660a860020a1790555182917fcc23847a8a66577fe576136f5f34967fbd9cf71d95b0c90647cea48bc236d57d91a250565b60065460ff1681565b60035460ff161561182c576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020612b0e833981519152604482015290519081900360640190fd5b61183533610d45565b1515611879576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b4e833981519152604482015290519081900360640190fd5b600054600160a060020a03163314156118dc576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b6118e73360006125d2565b6118f28160016125d2565b50565b60009081526007602052604090206001015460a860020a900460ff161590565b60009081526007602052604090206004015490565b600054600160a060020a031681565b3360009081526005602052604081205460ff161515611990576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b8484604051808383808284376040805191909301819003902060008c8152600c60209081528482208383529052929092209195506119d79450909250869150859050612a55565b5060408051828152905187917f70cd3b363a8374b507c0ea17f9205a693a37d89c14d1391d4a9d8d3509f6dbb0919081900360200190a2505050505050565b3360009081526005602052604090205460ff161515611a6d576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b611a7984848484612797565b50505050565b3360009081526005602052604081205460ff161515611ad6576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b611b0f85858080601f016020809104026020016040519081016040528093929190818152602001838380828437506126ff945050505050565b6040518082805190602001908083835b60208310611b3e5780518252601f199092019160209182019101611b1f565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060008c8152600c83528481208282529092529290209194506119d7935090915085905084612a55565b60065460ff1615611bea576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff1615611c33576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020612b0e833981519152604482015290519081900360640190fd5b611c3c33610d45565b1515611c80576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b4e833981519152604482015290519081900360640190fd5b600160a060020a038083166000818152600560209081526040808320805460ff19908116909155948616808452928190208054909516600117909455835192835282015281517f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b58929181900390910190a15050565b600b5490565b600160a060020a0381166000908152600a6020908152604091829020805483518184028101840190945280845260609392830182828015611d5c57602002820191906000526020600020905b81548152600190910190602001808311611d47575b50505050509050919050565b3360009081526005602052604081205460ff161515611dbf576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b600b5460408051602080820193909352600019430140818301526c01000000000000000000000000600160a060020a0388160260608201524260748083019190915282518083039091018152609490910191829052805190928291908401908083835b60208310611e415780518252601f199092019160209182019101611e22565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905061171e8185858561243d565b600090815260076020526040902080546001820154600490920154600160a060020a0391821693919092169190565b3360009081526005602052604090205460ff161515611f02576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b6111928282612836565b600054600160a060020a03163314611f5c576040805160e560020a62461bcd0281526020600482015260156024820152600080516020612b2e833981519152604482015290519081900360640190fd5b611f668282612836565b60408051600160a060020a0383168152905183917f85644e2e7afe6ef9f59ba824a1a8b530832a9fb9f73052bc316f5168a156505a919081900360200190a25050565b600082815260076020526040812060040180548390811061156357fe5b600082815260076020908152604080832060028101548452600381018352818420600160a060020a038616855290925282205460ff168061201657506001810154600160a060020a038481169116145b949350505050565b3360009081526005602052604090205460ff161515612075576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b6000828152600760209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038616908117909155808452600a835281842080546001810182559085529383902090930185905580519283525184927f9db922c152f2e7c530d60219abb1e50af8b8a6db04e369ba9ed99d54126b096692908290030190a25050565b60009081526007602052604090206005015490565b3360009081526005602052604081205460ff16151561216f576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b50600083815260076020908152604080832060028101548452600381018352818420600160a060020a03871680865290845293829020805460ff19168615159081179091558251948552928401929092528051919286927fe4ab708eaba56e3fc86c807c52597fa3912723db2c4b47704e8e3729533154a6929181900390910190a250505050565b6000838152600c6020526040808220905160609290859085908083838082843760408051939091018390039092208652506020808601969096529384016000208054855160026000196001841615610100020190921691909104601f81018890048802820188019096528581529590949350850191508390508280156117165780601f106116eb57610100808354040283529160200191611716565b3360009081526005602052604081205460ff1615156122ea576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612aee833981519152604482015290519081900360640190fd5b506000828152600760205260409020600181015460a860020a900460ff161561235d576040805160e560020a62461bcd02815260206004820152600c60248201527f2165726332302d636c61696d0000000000000000000000000000000000000000604482015290519081900360640190fd5b60018082018054600160a060020a03851673ffffffffffffffffffffffffffffffffffffffff1990911681178255600284015460009081526003850160209081526040808320848452825291829020805460ff1916909517909455825475ff000000000000000000000000000000000000000000191660a860020a179092558151908152905185927f61b9d2862914325dd13bcfe9fa63019518a298b091322a499110806cc8392149928290030190a260405183907f3a20afcbf909577cfdda0121a1a06de3ba63d5ccd34b0653920cffcf93dd693590600090a2505050565b600b8054600181019091557f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9018490556000848152600760205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03851617815581156124cf5760018101805475ff000000000000000000000000000000000000000000191660a860020a1790555b72ffffffffffffffffffffffffffffffffffffff198516600090815260096020526040902054156124fc57fe5b72ffffffffffffffffffffffffffffffffffffff1985166000908152600960209081526040808320889055600160a060020a0387168352600a8252822080546001810182559083529120018590556125548584612836565b6040805186815290517f0c20027e6e14b382bc4c0eb23bbb44394e15081383d9088dd44adcac951830fa9181900360200190a15050505050565b6002805460019081019091556003805460ff191690911790556040517fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a190600090a1565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561269d57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416179055611192565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25050565b600054600160a060020a031690565b611192826020604051908101604052806000815250836128ed565b60608160405160200180807f656469746f722e0000000000000000000000000000000000000000000000000081525060070182805190602001908083835b6020831061275c5780518252601f19909201916020918201910161273d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040529050919050565b6000806127a384612a3e565b60008781526007602090815260408220600401805460018101825590835291208101879055909250905082156127f8576000868152600760209081526040822060050180546001810182559083529120018590555b60408051828152905187917f73da1acab1521244521194424efac3de42f8bb8aa8c3b4f85843d4bfb7b3df84919081900360200190a2505050505050565b600082815260076020908152604080832060028101546001808301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038981169182179283905584895260038601885286892092168852908652848720805460ff19908116909155818852968590208054909716909117909555825194855291519093919286927f61b9d2862914325dd13bcfe9fa63019518a298b091322a499110806cc8392149929081900390910190a250505050565b600654610100900460ff161561294d576040805160e560020a62461bcd02815260206004820152600860248201527f73732d6775617264000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6006805461ff0019166101001790556040518251600160a060020a0385169183918591908190602084019080838360005b8381101561299657818101518382015260200161297e565b50505050905090810190601f1680156129c35780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af1925050501515612a2e576040805160e560020a62461bcd02815260206004820152600960248201527f73732d6661696c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50506006805461ff001916905550565b700100000000000000000000000000000000900490565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612a965782800160ff19823516178555612ac3565b82800160010185558215612ac3579182015b82811115612ac3578235825591602001919060010190612aa8565b50612acf929150612ad3565b5090565b610a9591905b80821115612acf5760008155600101612ad956006f6e6c795f656469746f72733a20666f7262696464656e00000000000000000061646d696e73206d757374206e6f742062652064697361626c656400000000006f6e6c795f6f776e65723a20666f7262696464656e00000000000000000000006f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000a165627a7a723058209a485661c5fc5413adce642da62f2b60c9b3d116fbb403a7148c4a0db7adada90029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/controlledIface.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/controlledIface.abi new file mode 100644 index 0000000..a7f2789 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/controlledIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/controlledIface.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/controlledIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/hasAdmins.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/hasAdmins.abi new file mode 100644 index 0000000..7bd1476 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/hasAdmins.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/hasAdmins.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/hasAdmins.bin new file mode 100644 index 0000000..7d9a6b3 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/hasAdmins.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1916905534801561001f57600080fd5b5060008054600160a060020a0319163390811790915561004990600164010000000061004e810204565b610145565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561010c57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a038416179055610141565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b6107c0806101546000396000f3006080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af403581146100a857806321fb9869146100cb57806324d7806c146100ff5780633c205b0514610134578063407a5c921461015b5780634681067d146101705780634b0bddd21461018557806354924aec146101ab57806381bd66fe146101c05780638da5cb5b146101e1575b600080fd5b3480156100b457600080fd5b506100c9600160a060020a03600435166101f6565b005b3480156100d757600080fd5b506100e36004356102b9565b60408051600160a060020a039092168252519081900360200190f35b34801561010b57600080fd5b50610120600160a060020a03600435166102e5565b604080519115158252519081900360200190f35b34801561014057600080fd5b50610149610312565b60408051918252519081900360200190f35b34801561016757600080fd5b50610149610318565b34801561017c57600080fd5b506100c961031e565b34801561019157600080fd5b506100c9600160a060020a036004351660243515156103d8565b3480156101b757600080fd5b50610120610543565b3480156101cc57600080fd5b506100c9600160a060020a036004351661054c565b3480156101ed57600080fd5b506100e3610682565b600054600160a060020a03163314610258576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60006004828154811015156102ca57fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b60025481565b60045490565b600054600160a060020a03163314610380576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615610433576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b61043c336102e5565b1515610492576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600160a060020a03821633148015906104b95750600054600160a060020a03838116911614155b1515610535576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b61053f8282610691565b5050565b60035460ff1681565b60035460ff16156105a7576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b6105b0336102e5565b1515610606576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331415610669576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b610674336000610691565b61067f816001610691565b50565b600054600160a060020a031681565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561075c57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03841617905561053f565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250505600a165627a7a72305820cb9b4b65c7dd11e3418699fab8833e2dd9bd51164bba60cab703a18055585e610029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/hasVersion.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/hasVersion.abi new file mode 100644 index 0000000..f6ed3d5 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/hasVersion.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/hasVersion.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/hasVersion.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/ixBackendEvents.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/ixBackendEvents.abi new file mode 100644 index 0000000..9f786b7 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/ixBackendEvents.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"NewDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"ManuallyAddedDemoc","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"ballotN","type":"uint256"}],"name":"NewBallot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"DemocOwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"editor","type":"address"},{"indexed":false,"name":"canEdit","type":"bool"}],"name":"DemocEditorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocEditorsWiped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"erc20","type":"address"}],"name":"DemocErc20Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"keyHash","type":"bytes32"}],"name":"DemocDataSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"catId","type":"uint256"}],"name":"DemocCatDeprecated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"enabled","type":"bool"}],"name":"DemocCommunityBallotsEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocErc20OwnerClaimDisabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DemocClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"EmergencyDemocOwner","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/ixBackendEvents.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/ixBackendEvents.bin new file mode 100644 index 0000000..68836f4 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/ixBackendEvents.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a7230582018c8edfc644748c7427d296654597b5a769abfddff741ed0deabe8c20ac1c1130029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/owned.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/owned.abi new file mode 100644 index 0000000..7ce5118 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/owned.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/owned.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/owned.bin new file mode 100644 index 0000000..c0c2c0d --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/owned.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b5060008054600160a060020a031916331790556101fa806100326000396000f30060806040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af403581146100505780638da5cb5b14610080575b600080fd5b34801561005c57600080fd5b5061007e73ffffffffffffffffffffffffffffffffffffffff600435166100be565b005b34801561008c57600080fd5b506100956101b2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60005473ffffffffffffffffffffffffffffffffffffffff16331461014457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820862f46f6db9b5ccda8df75b7907c36e7cdd6bba69aa9986e1ce00d6f91db11db0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllC.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllC.abi new file mode 100644 index 0000000..0b3e301 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllC.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"initPayTo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllC.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllC.bin new file mode 100644 index 0000000..912aaed --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllC.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506040516020806103268339810160405251600160a060020a038116151561003457fe5b60008054600160a060020a039092166101000261010060a860020a03199092169190911790556102bd806100696000396000f3006080604052600436106100405763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634da2317f8114610045575b600080fd5b34801561005157600080fd5b5061005a61005c565b005b6000806100676100cb565b915050303161007682826100ec565b6040805173ffffffffffffffffffffffffffffffffffffffff841681526020810183905281517fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd2562472929181900390910190a15050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b6101078260206040519081016040528060008152508361010b565b5050565b60005460ff161561017d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f73732d6775617264000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000805460ff19166001178155604051835173ffffffffffffffffffffffffffffffffffffffff861692849286929091829160208501918190849084905b838110156101d35781810151838201526020016101bb565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af192505050151561028257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f73732d6661696c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50506000805460ff19169055505600a165627a7a72305820c0e31654817fdaec169ccd13891235ca068e6e53ae14dc67403d2cc2895fe00c0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllCSettable.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllCSettable.abi new file mode 100644 index 0000000..5da8fc9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllCSettable.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"}],"name":"setPayTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getPayTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"initPayTo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllCSettable.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/payoutAllCSettable.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/permissioned.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/permissioned.abi new file mode 100644 index 0000000..b7ef45f --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/permissioned.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/permissioned.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/permissioned.bin new file mode 100644 index 0000000..3ed1040 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/permissioned.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1990811690915560068054909116905534801561002b57600080fd5b5060008054600160a060020a0319163390811790915561005590600164010000000061005a810204565b610151565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561011857604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a03841617905561014d565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b610dfc806101606000396000f3006080604052600436106100e55763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663105689a081146100ea57806313af4035146101015780631ffa27f91461012257806321fb98691461015757806324d7806c1461018b5780633c205b05146101ac578063407a5c92146101d35780634681067d146101e85780634b0bddd2146101fd5780635341903b1461022357806354924aec146102445780636165234c1461025957806377410c031461027f57806381bd66fe146102945780638da5cb5b146102b5578063b2461b15146102ca575b600080fd5b3480156100f657600080fd5b506100ff6102f1565b005b34801561010d57600080fd5b506100ff600160a060020a03600435166103ee565b34801561012e57600080fd5b50610143600160a060020a03600435166104b1565b604080519115158252519081900360200190f35b34801561016357600080fd5b5061016f6004356104cf565b60408051600160a060020a039092168252519081900360200190f35b34801561019757600080fd5b50610143600160a060020a03600435166104fb565b3480156101b857600080fd5b506101c1610528565b60408051918252519081900360200190f35b3480156101df57600080fd5b506101c161052e565b3480156101f457600080fd5b506100ff610534565b34801561020957600080fd5b506100ff600160a060020a036004351660243515156105ee565b34801561022f57600080fd5b506100ff600160a060020a0360043516610735565b34801561025057600080fd5b50610143610811565b34801561026557600080fd5b506100ff600160a060020a0360043516602435151561081a565b34801561028b57600080fd5b506101436109b9565b3480156102a057600080fd5b506100ff600160a060020a03600435166109c2565b3480156102c157600080fd5b5061016f610ad4565b3480156102d657600080fd5b506100ff600160a060020a0360043581169060243516610ae3565b600054600160a060020a03163314610353576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60065460ff16156103ae576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b6103b6610c49565b6006805460ff191660011790556040517f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20590600090a1565b600054600160a060020a03163314610450576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b600160a060020a031660009081526005602052604090205460ff1690565b60006004828154811015156104e057fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b60025481565b60045490565b600054600160a060020a03163314610596576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615610637576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610640336104fb565b1515610684576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a03821633148015906106ab5750600054600160a060020a03838116911614155b1515610727576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b6107318282610c8d565b5050565b3360009081526005602052604090205460ff16151561079e576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c795f656469746f72733a20666f7262696464656e000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320805460ff19908116909155600160a060020a038616808552938290208054909116600117905580519384529083019190915280517f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a9281900390910190a150565b60035460ff1681565b60065460ff1615610875576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff16156108be576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b6108c7336104fb565b151561090b576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600560205260409020805460ff191682158015919091179091556109795760408051600160a060020a038416815290517fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c69181900360200190a1610731565b60408051600160a060020a038416815290517f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c9219181900360200190a15050565b60065460ff1681565b60035460ff1615610a0b576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610a14336104fb565b1515610a58576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600054600160a060020a0316331415610abb576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b610ac6336000610c8d565b610ad1816001610c8d565b50565b600054600160a060020a031681565b60065460ff1615610b3e576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff1615610b87576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610b90336104fb565b1515610bd4576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a038083166000818152600560209081526040808320805460ff19908116909155948616808452928190208054909516600117909455835192835282015281517f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b58929181900390910190a15050565b6002805460019081019091556003805460ff191690911790556040517fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a190600090a1565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff19168215801591909117909155610d5857604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416179055610731565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25050560061646d696e73206d757374206e6f742062652064697361626c656400000000006f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000a165627a7a72305820287ce5d9f7ee8b8801f2f3670f6b1864e1a4162e48aecb64a2fed7ff8e68fbd60029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/safeSend.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/safeSend.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/safeSend.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/safeSend.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/safeSend.bin new file mode 100644 index 0000000..87cfc91 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/safeSend.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a7230582075bae576f523fe18896ca70ee8306ab64cd823af59a92ad1f33398d6205f304d0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/upgradePtr.abi b/dist/2018-06-18-ix-deployment/sv_index_backend/upgradePtr.abi new file mode 100644 index 0000000..c8fab44 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/upgradePtr.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"getUpgradePointer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_index_backend/upgradePtr.bin b/dist/2018-06-18-ix-deployment/sv_index_backend/upgradePtr.bin new file mode 100644 index 0000000..e06a525 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_index_backend/upgradePtr.bin @@ -0,0 +1 @@ +608060405260008054600160a060020a031916905534801561002057600080fd5b5060c68061002f6000396000f300608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663a76f354381146043575b600080fd5b348015604e57600080fd5b506055607e565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60005473ffffffffffffffffffffffffffffffffffffffff16905600a165627a7a72305820221cfe7dff0146e610c4eb2afc41a1f6b15bc035ddeae92e10941dd66e6b25240029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/CanReclaimToken.abi b/dist/2018-06-18-ix-deployment/sv_payments/CanReclaimToken.abi new file mode 100644 index 0000000..fc7164e --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/CanReclaimToken.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/CanReclaimToken.bin b/dist/2018-06-18-ix-deployment/sv_payments/CanReclaimToken.bin new file mode 100644 index 0000000..89ce2a6 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/CanReclaimToken.bin @@ -0,0 +1 @@ +608060405260008054600160a060020a0319163317905561039b806100256000396000f3006080604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af4035811461005b57806317ffc3201461007e5780638da5cb5b1461009f575b600080fd5b34801561006757600080fd5b5061007c600160a060020a03600435166100d0565b005b34801561008a57600080fd5b5061007c600160a060020a03600435166101aa565b3480156100ab57600080fd5b506100b4610360565b60408051600160a060020a039092168252519081900360200190f35b600054600160a060020a0316331461014957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60008054600160a060020a0316331461022457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561028557600080fd5b505af1158015610299573d6000803e3d6000fd5b505050506040513d60208110156102af57600080fd5b505160008054604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263095ea7b392604480840193602093929083900390910190829087803b15801561032557600080fd5b505af1158015610339573d6000803e3d6000fd5b505050506040513d602081101561034f57600080fd5b5051151561035c57600080fd5b5050565b600054600160a060020a0316815600a165627a7a72305820051f112812b5f920b2f7242ef19bb712ca287c3547c1450b15d4430906212cae0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/ERC20Interface.abi b/dist/2018-06-18-ix-deployment/sv_payments/ERC20Interface.abi new file mode 100644 index 0000000..c34da32 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/ERC20Interface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/ERC20Interface.bin b/dist/2018-06-18-ix-deployment/sv_payments/ERC20Interface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_payments/IxPaymentsIface.abi b/dist/2018-06-18-ix-deployment/sv_payments/IxPaymentsIface.abi new file mode 100644 index 0000000..e0e5f09 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/IxPaymentsIface.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"payForDemocracy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"additionalSeconds","type":"uint256"},{"name":"ref","type":"bytes32"}],"name":"giveTimeToDemoc","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setBasicCentsPricePer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDenyPremium","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"emergencySetOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"c","type":"uint256"}],"name":"centsToWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"isPremiumDenied","type":"bool"}],"name":"setDenyPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"accountInGoodStanding","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"}],"name":"setMinorEditsAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"downgradeToBasic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicBallotsPer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMinWeiForDInit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"}],"name":"setPayTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getFreeExtension","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPaymentLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"w","type":"uint256"}],"name":"weiToCents","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getPremiumStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumMultiplier","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getWeiPerCent","outputs":[{"name":"weiPerCent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"amount","type":"uint256"}],"name":"setBasicBallotsPer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicExtraBallotFeeWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"hasFreeExt","type":"bool"}],"name":"setFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"upgradeToPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"uint256"}],"name":"setWeiPerCent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getAccount","outputs":[{"name":"isPremium","type":"bool"},{"name":"lastPaymentTs","type":"uint256"},{"name":"paidUpTill","type":"uint256"},{"name":"hasFreeExtension","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUsdEthExchangeRate","outputs":[{"name":"centsPerEth","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint8"}],"name":"setPremiumMultiplier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getSecondsRemaining","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPayTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setMinWeiForDInit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"amount","type":"uint256"}],"name":"weiBuysHowManySeconds","outputs":[{"name":"secs","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getPaymentLog","outputs":[{"name":"_external","type":"bool"},{"name":"_democHash","type":"bytes32"},{"name":"_seconds","type":"uint256"},{"name":"_ethValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"doFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/IxPaymentsIface.bin b/dist/2018-06-18-ix-deployment/sv_payments/IxPaymentsIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_payments/SVPayments.abi b/dist/2018-06-18-ix-deployment/sv_payments/SVPayments.abi new file mode 100644 index 0000000..8880118 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/SVPayments.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"payForDemocracy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"additionalSeconds","type":"uint256"},{"name":"ref","type":"bytes32"}],"name":"giveTimeToDemoc","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setBasicCentsPricePer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDenyPremium","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"emergencySetOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minorEditsAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"c","type":"uint256"}],"name":"centsToWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"isPremiumDenied","type":"bool"}],"name":"setDenyPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"accountInGoodStanding","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"}],"name":"setMinorEditsAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"downgradeToBasic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicBallotsPer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMinWeiForDInit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newPayTo","type":"address"}],"name":"setPayTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getFreeExtension","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPaymentLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"w","type":"uint256"}],"name":"weiToCents","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"emergencyAdmin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getPremiumStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumMultiplier","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getWeiPerCent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"amount","type":"uint256"}],"name":"setBasicBallotsPer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicExtraBallotFeeWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"hasFreeExt","type":"bool"}],"name":"setFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"upgradeToPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wpc","type":"uint256"}],"name":"setWeiPerCent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getAccount","outputs":[{"name":"isPremium","type":"bool"},{"name":"lastPaymentTs","type":"uint256"},{"name":"paidUpTill","type":"uint256"},{"name":"hasFreeExtension","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUsdEthExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"m","type":"uint8"}],"name":"setPremiumMultiplier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getSecondsRemaining","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPayTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setMinWeiForDInit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"amount","type":"uint256"}],"name":"weiBuysHowManySeconds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getPaymentLog","outputs":[{"name":"_external","type":"bool"},{"name":"_democHash","type":"bytes32"},{"name":"_seconds","type":"uint256"},{"name":"_ethValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"doFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_emergencyAdmin","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/SVPayments.abi.json b/dist/2018-06-18-ix-deployment/sv_payments/SVPayments.abi.json new file mode 100644 index 0000000..8880118 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/SVPayments.abi.json @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"payForDemocracy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"additionalSeconds","type":"uint256"},{"name":"ref","type":"bytes32"}],"name":"giveTimeToDemoc","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setBasicCentsPricePer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getDenyPremium","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"emergencySetOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minorEditsAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"c","type":"uint256"}],"name":"centsToWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"isPremiumDenied","type":"bool"}],"name":"setDenyPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"accountInGoodStanding","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"}],"name":"setMinorEditsAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"downgradeToBasic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicBallotsPer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMinWeiForDInit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newPayTo","type":"address"}],"name":"setPayTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getFreeExtension","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPaymentLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"w","type":"uint256"}],"name":"weiToCents","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"emergencyAdmin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getPremiumStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumMultiplier","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getWeiPerCent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"amount","type":"uint256"}],"name":"setBasicBallotsPer30Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicExtraBallotFeeWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"},{"name":"hasFreeExt","type":"bool"}],"name":"setFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"upgradeToPremium","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wpc","type":"uint256"}],"name":"setWeiPerCent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getAccount","outputs":[{"name":"isPremium","type":"bool"},{"name":"lastPaymentTs","type":"uint256"},{"name":"paidUpTill","type":"uint256"},{"name":"hasFreeExtension","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUsdEthExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"m","type":"uint8"}],"name":"setPremiumMultiplier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBasicCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPremiumCentsPricePer30Days","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"getSecondsRemaining","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPayTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"setMinWeiForDInit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"amount","type":"uint256"}],"name":"weiBuysHowManySeconds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getPaymentLog","outputs":[{"name":"_external","type":"bool"},{"name":"_democHash","type":"bytes32"},{"name":"_seconds","type":"uint256"},{"name":"_ethValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"democHash","type":"bytes32"}],"name":"doFreeExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_emergencyAdmin","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/SVPayments.bin b/dist/2018-06-18-ix-deployment/sv_payments/SVPayments.bin new file mode 100644 index 0000000..114d3f9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/SVPayments.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1990811690915560068054821690556201e848600855600a600981905580549091166005179055650f15345956c0600b556001600c553480156200005257600080fd5b5060405160208062002acf833981016040525160008054600160a060020a031916339081179091558062000091816001640100000000620000ef810204565b600160a060020a0381161515620000a457fe5b600680546201000060b060020a03191662010000600160a060020a039384160217905560118054600160a060020a031916918416918217905515159050620000e857fe5b50620001e8565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff19168215801591909117909155620001af57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a038416179055620001e4565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b6128d780620001f86000396000f30060806040526004361061029c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041662a219f481146102df57806304318794146102ec5780630bf63c601461030a5780630d8e6e2c14610322578063105689a01461034957806312f11ed31461035e57806313af40351461038a578063158ee887146103ab57806316b08755146103cc57806317ffc320146103fd5780631c732d831461041e5780631ffa27f91461043657806321fb98691461045757806324d7806c1461046f57806332c0c5831461049057806333af060f146104ad578063383bb22a146104c55780633c205b05146104e65780633e06be20146104fb578063407a5c92146105135780634681067d146105285780634b0bddd21461053d5780634da2317f146105635780635341903b146105785780635429a4171461059957806354924aec146105ae57806356e52cbb146105c35780636165234c146105d857806361b9739a146105fe578063672350bd1461061f5780636cc03315146106375780636d568c431461064c57806370905dce1461066457806372004a6514610679578063761ba8941461069157806377410c03146106bc5780638185b8e9146106d157806381bd66fe146106e65780638da5cb5b14610707578063a05e3bb01461071c578063b2148d3814610734578063b2461b1514610749578063b352867c14610770578063bb48d1901461078d578063ca37a9eb146107a5578063d1de5011146107bd578063ddd9537d146107ff578063e2e794c314610814578063e839554e1461082f578063e8e9eeae14610844578063ee882a9914610859578063f1efb76a14610871578063f3199e9814610886578063f3b8b2a91461089e578063f8ef9a3d146108b6578063ff2b0571146108f6575b6102a461090e565b600160a060020a03166108fc349081150290604051600060405180830381858888f193505050501580156102dc573d6000803e3d6000fd5b50005b6102ea600435610923565b005b3480156102f857600080fd5b506102ea600435602435604435610b3f565b34801561031657600080fd5b506102ea600435610ccc565b34801561032e57600080fd5b50610337610d57565b60408051918252519081900360200190f35b34801561035557600080fd5b506102ea610d5c565b34801561036a57600080fd5b50610376600435610e47565b604080519115158252519081900360200190f35b34801561039657600080fd5b506102ea600160a060020a0360043516610e5c565b3480156103b757600080fd5b506102ea600160a060020a0360043516610f0d565b3480156103d857600080fd5b506103e1610f9e565b60408051600160a060020a039092168252519081900360200190f35b34801561040957600080fd5b506102ea600160a060020a0360043516610fad565b34801561042a57600080fd5b5061033760043561113a565b34801561044257600080fd5b50610376600160a060020a0360043516611141565b34801561046357600080fd5b506103e160043561115f565b34801561047b57600080fd5b50610376600160a060020a036004351661118b565b34801561049c57600080fd5b506102ea60043560243515156111b8565b3480156104b957600080fd5b5061037660043561127c565b3480156104d157600080fd5b506102ea600160a060020a0360043516611294565b3480156104f257600080fd5b50610337611345565b34801561050757600080fd5b506102ea60043561134b565b34801561051f57600080fd5b50610337611514565b34801561053457600080fd5b506102ea61151a565b34801561054957600080fd5b506102ea600160a060020a036004351660243515156115c2565b34801561056f57600080fd5b506102ea611705565b34801561058457600080fd5b506102ea600160a060020a0360043516611767565b3480156105a557600080fd5b50610337611843565b3480156105ba57600080fd5b50610376611849565b3480156105cf57600080fd5b50610337611852565b3480156105e457600080fd5b506102ea600160a060020a03600435166024351515611858565b34801561060a57600080fd5b506102ea600160a060020a03600435166119f7565b34801561062b57600080fd5b50610376600435611a8f565b34801561064357600080fd5b50610337611aa4565b34801561065857600080fd5b50610337600435611aaa565b34801561067057600080fd5b506103e1611ac0565b34801561068557600080fd5b50610376600435611acf565b34801561069d57600080fd5b506106a6611ae4565b6040805160ff9092168252519081900360200190f35b3480156106c857600080fd5b50610376611aed565b3480156106dd57600080fd5b50610337611af6565b3480156106f257600080fd5b506102ea600160a060020a0360043516611afc565b34801561071357600080fd5b506103e1611c0e565b34801561072857600080fd5b506102ea600435611c1d565b34801561074057600080fd5b50610337611ca8565b34801561075557600080fd5b506102ea600160a060020a0360043581169060243516611cc7565b34801561077c57600080fd5b506102ea6004356024351515611e2d565b34801561079957600080fd5b506102ea600435611ef1565b3480156107b157600080fd5b506102ea6004356120ce565b3480156107c957600080fd5b506107d5600435612172565b60408051941515855260208501939093528383019190915215156060830152519081900360800190f35b34801561080b57600080fd5b506103376121a5565b34801561082057600080fd5b506102ea60ff600435166121c2565b34801561083b57600080fd5b5061033761225a565b34801561085057600080fd5b50610337612260565b34801561086557600080fd5b5061033760043561226a565b34801561087d57600080fd5b506103e161228c565b34801561089257600080fd5b506102ea600435612296565b3480156108aa57600080fd5b5061033760043561233a565b3480156108c257600080fd5b506108ce600435612384565b6040805194151585526020850193909352838301919091526060830152519081900360800190f35b34801561090257600080fd5b506102ea600435612421565b600654620100009004600160a060020a031690565b60003481106109a2576040805160e560020a62461bcd02815260206004820152602760248201527f6e65656420746f2073656e6420736f6d6520657468657220746f206d616b652060448201527f7061796d656e7400000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6109ab3461233a565b6000838152600d602052604090205490915060ff16156109d957600a5460ff16818115156109d557fe5b0490505b600181106109eb576109eb82826124e0565b60408051608081018252600080825260208083018681528385018681523460608601908152600e8054600181018255955294517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd6004909502948501805460ff191691151591909117905590517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fe840155517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3ff83015591517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c400909101558151838152915184927fe6ad0535314a8031f23d28b2c0945848329bf43d9d12471ce4f5f99f6640657692908290030190a2610b0261090e565b600160a060020a03166108fc349081150290604051600060405180830381858888f19350505050158015610b3a573d6000803e3d6000fd5b505050565b600754600160a060020a031633811480610b635750600054600160a060020a031633145b1515610ba7576040805160e560020a62461bcd028152602060048201526009602482015260008051602061282c833981519152604482015290519081900360640190fd5b610bb184846124e0565b6040805160808101825260018082526020808301888152838501888152600060608601818152600e8054968701815590915294517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd6004909502948501805460ff191691151591909117905590517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fe840155517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3ff83015591517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c400909101558151858152908101849052815186927f662d736f3a0c8f3b0906b173689606e590f214abef4ae9bde801e1b6f4059f4d928290030190a250505050565b600054600160a060020a03163314610d1c576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b60088190556040805182815290517f696e5c6fec16a11a25b2139177dc42dbfe83df4fd078f5a7f13b6db57792d1a19181900360200190a150565b600290565b600054600160a060020a03163314610dac576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b60065460ff1615610e07576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b610e0f61251c565b6006805460ff191660011790556040517f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20590600090a1565b6000908152600f602052604090205460ff1690565b600054600160a060020a03163314610eac576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b601154600160a060020a03163314610f6f576040805160e560020a62461bcd02815260206004820152601060248201527f21656d657267656e63792d6f776e657200000000000000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600754600160a060020a031681565b60008054600160a060020a03163314610ffe576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561105f57600080fd5b505af1158015611073573d6000803e3d6000fd5b505050506040513d602081101561108957600080fd5b505160008054604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263095ea7b392604480840193602093929083900390910190829087803b1580156110ff57600080fd5b505af1158015611113573d6000803e3d6000fd5b505050506040513d602081101561112957600080fd5b5051151561113657600080fd5b5050565b600b540290565b600160a060020a031660009081526005602052604090205460ff1690565b600060048281548110151561117057fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b600754600160a060020a0316338114806111dc5750600054600160a060020a031633145b1515611220576040805160e560020a62461bcd028152602060048201526009602482015260008051602061282c833981519152604482015290519081900360640190fd5b6000838152600f6020908152604091829020805460ff191685151590811790915582518681529182015281517f50935952ae272746cf38a1cb4aa7c93d3e39e60cdc4a761ef55a4e69366abe7d929181900390910190a1505050565b6000908152600d602052604090206002015442111590565b600054600160a060020a031633146112e4576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b60078054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fd72f7e1ee158c792883f68eb79af23661439288dae047b5a0f1fb6c8cd8849739181900360200190a150565b60025481565b33600090815260056020526040812054819060ff1615156113b6576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c795f656469746f72733a20666f7262696464656e000000000000000000604482015290519081900360640190fd5b6000838152600d602052604090205460ff16151561141e576040805160e560020a62461bcd02815260206004820152600860248201527f217072656d69756d000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000838152600d60205260409020805460ff191681556002015491506114448242612560565b905060008111156114e4576000838152600d60205260409020600301546201517f194201116114bd576040805160e560020a62461bcd02815260206004820152601260248201527f646f776e67726164652d746f6f2d736f6f6e0000000000000000000000000000604482015290519081900360640190fd5b600a546000848152600d6020526040902060ff909116919091024281016002909201919091555b60405183907f48f962cb175066eb5227bf2d28122d1f0861b74cd6951e6542a6f0283b6a30b790600090a2505050565b60045490565b600054600160a060020a0316331461156a576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff161561160b576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061284c833981519152604482015290519081900360640190fd5b6116143361118b565b1515611658576040805160e560020a62461bcd028152602060048201526015602482015260008051602061288c833981519152604482015290519081900360640190fd5b600160a060020a038216331480159061167f5750600054600160a060020a03838116911614155b15156116fb576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b6111368282612578565b60008061171061090e565b915050303161171f828261267b565b60408051600160a060020a03841681526020810183905281517fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd2562472929181900390910190a15050565b3360009081526005602052604090205460ff1615156117d0576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c795f656469746f72733a20666f7262696464656e000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320805460ff19908116909155600160a060020a038616808552938290208054909116600117905580519384529083019190915280517f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a9281900390910190a150565b60095490565b60035460ff1681565b600c5490565b60065460ff16156118b3576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff16156118fc576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061284c833981519152604482015290519081900360640190fd5b6119053361118b565b1515611949576040805160e560020a62461bcd028152602060048201526015602482015260008051602061288c833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600560205260409020805460ff191682158015919091179091556119b75760408051600160a060020a038416815290517fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c69181900360200190a1611136565b60408051600160a060020a038416815290517f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c9219181900360200190a15050565b600054600160a060020a03163314611a47576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b611a5081612696565b60408051600160a060020a038316815290517fbea0769aba15b443dd3170dc4bc7b94123881e42d6ed3d31a2654daf43b058519181900360200190a150565b60009081526010602052604090205460ff1690565b600e5490565b6000600b5482811515611ab957fe5b0492915050565b601154600160a060020a031681565b6000908152600d602052604090205460ff1690565b600a5460ff1690565b60065460ff1681565b600b5490565b60035460ff1615611b45576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061284c833981519152604482015290519081900360640190fd5b611b4e3361118b565b1515611b92576040805160e560020a62461bcd028152602060048201526015602482015260008051602061288c833981519152604482015290519081900360640190fd5b600054600160a060020a0316331415611bf5576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b611c00336000612578565b611c0b816001612578565b50565b600054600160a060020a031681565b600054600160a060020a03163314611c6d576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b60098190556040805182815290517fcfa56694fbda1b84c5d6c63fe8f6874c83c94f2da04231dd0d54e07cb542e62f9181900360200190a150565b6000611cc2600954600854811515611cbc57fe5b0461113a565b905090565b60065460ff1615611d22576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff1615611d6b576040805160e560020a62461bcd02815260206004820152601b602482015260008051602061284c833981519152604482015290519081900360640190fd5b611d743361118b565b1515611db8576040805160e560020a62461bcd028152602060048201526015602482015260008051602061288c833981519152604482015290519081900360640190fd5b600160a060020a038083166000818152600560209081526040808320805460ff19908116909155948616808452928190208054909516600117909455835192835282015281517f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b58929181900390910190a15050565b600754600160a060020a031633811480611e515750600054600160a060020a031633145b1515611e95576040805160e560020a62461bcd028152602060048201526009602482015260008051602061282c833981519152604482015290519081900360640190fd5b600083815260106020908152604091829020805460ff191685151590811790915582518681529182015281517fde965928e65e33ccd6559d861e5483e90512b32455de3d5eec039b9a5b93f8e4929181900390910190a1505050565b33600090815260056020526040812054819060ff161515611f5c576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c795f656469746f72733a20666f7262696464656e000000000000000000604482015290519081900360640190fd5b6000838152600f602052604090205460ff1615611fc3576040805160e560020a62461bcd02815260206004820152600e60248201527f757067726164652d64656e696564000000000000000000000000000000000000604482015290519081900360640190fd5b6000838152600d602052604090205460ff161561202a576040805160e560020a62461bcd02815260206004820152600660248201527f2162617369630000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000838152600d60205260409020805460ff191660011781556002015491506120538242612560565b9050600081111561208d57600a5460ff168181151561206e57fe5b6000858152600d60205260409020429290910491820160029091015590505b6000838152600d6020526040808220426003909101555184917fb957c6a4668e76eb2e541f54eff529717f8070dba0ef7813dd8ab28cbbf0f70291a2505050565b600754600160a060020a0316338114806120f25750600054600160a060020a031633145b1515612136576040805160e560020a62461bcd028152602060048201526009602482015260008051602061282c833981519152604482015290519081900360640190fd5b600b8290556040805183815290517f1d5de90e7c5b244ac5797698b15fe80a92524d933dafd79e001daf844555fb1c9181900360200190a15050565b6000908152600d60209081526040808320805460018201546002909201546010909452919093205460ff91821694911690565b6000600b54670de0b6b3a76400008115156121bc57fe5b04905090565b600054600160a060020a03163314612212576040805160e560020a62461bcd028152602060048201526015602482015260008051602061286c833981519152604482015290519081900360640190fd5b600a805460ff831660ff19909116811790915560408051918252517fdd5e68e86e7460257caaf7a2276fa63562e9a906a39802c4f37699f5736a72f29181900360200190a150565b60085490565b6000611cc26126cd565b6000818152600d60205260408120600201546122869042612560565b92915050565b6000611cc261090e565b600754600160a060020a0316338114806122ba5750600054600160a060020a031633145b15156122fe576040805160e560020a62461bcd028152602060048201526009602482015260008051602061282c833981519152604482015290519081900360640190fd5b600c8290556040805183815290517f134bc3fbd032443af0856b9e13b4146103106e96c9c095d10415247f5369c4cf9181900360200190a15050565b600080600080600061234b86611aaa565b935060085484670de0b6b3a76400000281151561236457fe5b04925062278d0083029150670de0b6b3a764000082049695505050505050565b600080600080600e8581548110151561239957fe5b6000918252602090912060049091020154600e805460ff909216955090869081106123c057fe5b9060005260206000209060040201600101549250600e858154811015156123e357fe5b9060005260206000209060040201600201549150600e8581548110151561240657fe5b90600052602060002090600402016003015490509193509193565b60008181526010602052604081205460ff161515612489576040805160e560020a62461bcd02815260206004820152600560248201527f2166726565000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b506000818152600d6020908152604091829020624f1a00420160029091018190558251848152925190927f09664427434c2b4309000ea03b5e378fa25c30acbe0a04fdeff36061303f8e7e92908290030190a15050565b6000828152600d6020526040902060020154428110156124fd5750425b6000928352600d60205260409092209101600282015542600190910155565b6002805460019081019091556003805460ff191690911790556040517fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a190600090a1565b60008183101561257257506000612286565b50900390565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561264357604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416179055611136565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25050565b611136826020604051908101604052806000815250836126da565b60068054600160a060020a03909216620100000275ffffffffffffffffffffffffffffffffffffffff000019909216919091179055565b600854600a5460ff160290565b600654610100900460ff161561273a576040805160e560020a62461bcd02815260206004820152600860248201527f73732d6775617264000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6006805461ff0019166101001790556040518251600160a060020a0385169183918591908190602084019080838360005b8381101561278357818101518382015260200161276b565b50505050905090810190601f1680156127b05780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af192505050151561281b576040805160e560020a62461bcd02815260206004820152600960248201527f73732d6661696c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50506006805461ff0019169055505600216f776e65722d6f72000000000000000000000000000000000000000000000061646d696e73206d757374206e6f742062652064697361626c656400000000006f6e6c795f6f776e65723a20666f7262696464656e00000000000000000000006f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000a165627a7a72305820817a340653e8675ee5f9693d5cb4a65a798735734ba68e010bcc2327569325040029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/SafeMath.abi b/dist/2018-06-18-ix-deployment/sv_payments/SafeMath.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/SafeMath.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/SafeMath.bin b/dist/2018-06-18-ix-deployment/sv_payments/SafeMath.bin new file mode 100644 index 0000000..4b96499 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/SafeMath.bin @@ -0,0 +1 @@ +604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058202e060ea51cb5aa28c88ae9b350b51e0dcd3a9a454c3192d88e3a9b16f7ae0a090029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/controlledIface.abi b/dist/2018-06-18-ix-deployment/sv_payments/controlledIface.abi new file mode 100644 index 0000000..a7f2789 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/controlledIface.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/controlledIface.bin b/dist/2018-06-18-ix-deployment/sv_payments/controlledIface.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_payments/hasAdmins.abi b/dist/2018-06-18-ix-deployment/sv_payments/hasAdmins.abi new file mode 100644 index 0000000..7bd1476 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/hasAdmins.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/hasAdmins.bin b/dist/2018-06-18-ix-deployment/sv_payments/hasAdmins.bin new file mode 100644 index 0000000..087fd68 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/hasAdmins.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1916905534801561001f57600080fd5b5060008054600160a060020a0319163390811790915561004990600164010000000061004e810204565b610145565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561010c57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a038416179055610141565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b6107c0806101546000396000f3006080604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af403581146100a857806321fb9869146100cb57806324d7806c146100ff5780633c205b0514610134578063407a5c921461015b5780634681067d146101705780634b0bddd21461018557806354924aec146101ab57806381bd66fe146101c05780638da5cb5b146101e1575b600080fd5b3480156100b457600080fd5b506100c9600160a060020a03600435166101f6565b005b3480156100d757600080fd5b506100e36004356102b9565b60408051600160a060020a039092168252519081900360200190f35b34801561010b57600080fd5b50610120600160a060020a03600435166102e5565b604080519115158252519081900360200190f35b34801561014057600080fd5b50610149610312565b60408051918252519081900360200190f35b34801561016757600080fd5b50610149610318565b34801561017c57600080fd5b506100c961031e565b34801561019157600080fd5b506100c9600160a060020a036004351660243515156103d8565b3480156101b757600080fd5b50610120610543565b3480156101cc57600080fd5b506100c9600160a060020a036004351661054c565b3480156101ed57600080fd5b506100e3610682565b600054600160a060020a03163314610258576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60006004828154811015156102ca57fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b60025481565b60045490565b600054600160a060020a03163314610380576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615610433576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b61043c336102e5565b1515610492576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600160a060020a03821633148015906104b95750600054600160a060020a03838116911614155b1515610535576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b61053f8282610691565b5050565b60035460ff1681565b60035460ff16156105a7576040805160e560020a62461bcd02815260206004820152601b60248201527f61646d696e73206d757374206e6f742062652064697361626c65640000000000604482015290519081900360640190fd5b6105b0336102e5565b1515610606576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0316331415610669576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b610674336000610691565b61067f816001610691565b50565b600054600160a060020a031681565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561075c57604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03841617905561053f565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a250505600a165627a7a7230582000b9c6bd867827da98932febc060d4bee868f33a1d522a13de886dd50c544ee40029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/hasVersion.abi b/dist/2018-06-18-ix-deployment/sv_payments/hasVersion.abi new file mode 100644 index 0000000..f6ed3d5 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/hasVersion.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"getVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/hasVersion.bin b/dist/2018-06-18-ix-deployment/sv_payments/hasVersion.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_payments/ixPaymentEvents.abi b/dist/2018-06-18-ix-deployment/sv_payments/ixPaymentEvents.abi new file mode 100644 index 0000000..7dcdc0b --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/ixPaymentEvents.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradedToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"},{"indexed":false,"name":"ref","type":"bytes32"}],"name":"GrantedAccountTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"additionalSeconds","type":"uint256"}],"name":"AccountPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetCommunityBallotFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBasicCentsPricePer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multiplier","type":"uint8"}],"name":"SetPremiumMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"DowngradeToBasic","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"democHash","type":"bytes32"}],"name":"UpgradeToPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerCent","type":"uint256"}],"name":"SetExchangeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"}],"name":"FreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetBallotsPer30Days","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"hasFreeExt","type":"bool"}],"name":"SetFreeExtension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"democHash","type":"bytes32"},{"indexed":false,"name":"isPremiumDenied","type":"bool"}],"name":"SetDenyPremium","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"}],"name":"SetPayTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minorEditsAddr","type":"address"}],"name":"SetMinorEditsAddr","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"SetMinWeiForDInit","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/ixPaymentEvents.bin b/dist/2018-06-18-ix-deployment/sv_payments/ixPaymentEvents.bin new file mode 100644 index 0000000..8a8c5eb --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/ixPaymentEvents.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820a07f2e64a701d0ab2e528beedffafb5179ba9e7514fea6dae5502c3a3da40cf50029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/owned.abi b/dist/2018-06-18-ix-deployment/sv_payments/owned.abi new file mode 100644 index 0000000..7ce5118 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/owned.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/owned.bin b/dist/2018-06-18-ix-deployment/sv_payments/owned.bin new file mode 100644 index 0000000..305787b --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/owned.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b5060008054600160a060020a031916331790556101fa806100326000396000f30060806040526004361061004b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af403581146100505780638da5cb5b14610080575b600080fd5b34801561005c57600080fd5b5061007e73ffffffffffffffffffffffffffffffffffffffff600435166100be565b005b34801561008c57600080fd5b506100956101b2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60005473ffffffffffffffffffffffffffffffffffffffff16331461014457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820c82eb998afba6b8e7b1d07038cd06b2ed60b0b1a599b9780c298ae926b4fba040029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/payoutAllC.abi b/dist/2018-06-18-ix-deployment/sv_payments/payoutAllC.abi new file mode 100644 index 0000000..0b3e301 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/payoutAllC.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"initPayTo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/payoutAllC.bin b/dist/2018-06-18-ix-deployment/sv_payments/payoutAllC.bin new file mode 100644 index 0000000..b2809da --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/payoutAllC.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506040516020806103268339810160405251600160a060020a038116151561003457fe5b60008054600160a060020a039092166101000261010060a860020a03199092169190911790556102bd806100696000396000f3006080604052600436106100405763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634da2317f8114610045575b600080fd5b34801561005157600080fd5b5061005a61005c565b005b6000806100676100cb565b915050303161007682826100ec565b6040805173ffffffffffffffffffffffffffffffffffffffff841681526020810183905281517fe2644f8d6fd3207ea14ef6a361b94bee348c8e5834539376241010dbd2562472929181900390910190a15050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff1690565b6101078260206040519081016040528060008152508361010b565b5050565b60005460ff161561017d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f73732d6775617264000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000805460ff19166001178155604051835173ffffffffffffffffffffffffffffffffffffffff861692849286929091829160208501918190849084905b838110156101d35781810151838201526020016101bb565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b5091505060006040518083038185875af192505050151561028257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f73732d6661696c65640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50506000805460ff19169055505600a165627a7a7230582031d6363bf31c4aa9e1088b398e61818f3431750ffc388f8cd98822c89553ba690029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/payoutAllCSettable.abi b/dist/2018-06-18-ix-deployment/sv_payments/payoutAllCSettable.abi new file mode 100644 index 0000000..5da8fc9 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/payoutAllCSettable.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"payoutAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"}],"name":"setPayTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getPayTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"initPayTo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"payTo","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"PayoutAll","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/payoutAllCSettable.bin b/dist/2018-06-18-ix-deployment/sv_payments/payoutAllCSettable.bin new file mode 100644 index 0000000..e69de29 diff --git a/dist/2018-06-18-ix-deployment/sv_payments/permissioned.abi b/dist/2018-06-18-ix-deployment/sv_payments/permissioned.abi new file mode 100644 index 0000000..b7ef45f --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/permissioned.abi @@ -0,0 +1 @@ +[{"constant":false,"inputs":[],"name":"doLockdown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"hasPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"n","type":"uint256"}],"name":"getAdminLog","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currAdminEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAdminLogN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"incAdminEpoch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"address"},{"name":"_givePerms","type":"bool"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSC","type":"address"}],"name":"upgradeMe","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminsDisabledForever","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"e","type":"address"},{"name":"_editPerms","type":"bool"}],"name":"setPermissions","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminLockdown","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"upgradeMeAdmin","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":"oldSC","type":"address"},{"name":"newSC","type":"address"}],"name":"upgradePermissionedSC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"editAddr","type":"address"}],"name":"PermissionRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"PermissionsUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldSC","type":"address"},{"indexed":false,"name":"newSC","type":"address"}],"name":"SelfUpgrade","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminLockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"oldAdmin","type":"address"}],"name":"AdminRemoved","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminEpochInc","type":"event"},{"anonymous":false,"inputs":[],"name":"AdminDisabledForever","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/permissioned.bin b/dist/2018-06-18-ix-deployment/sv_payments/permissioned.bin new file mode 100644 index 0000000..a2b47dd --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/permissioned.bin @@ -0,0 +1 @@ +608060405260006002556003805460ff1990811690915560068054909116905534801561002b57600080fd5b5060008054600160a060020a0319163390811790915561005590600164010000000061005a810204565b610151565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff1916821580159190911790915561011857604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916600160a060020a03841617905561014d565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25b5050565b610dfc806101606000396000f3006080604052600436106100e55763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663105689a081146100ea57806313af4035146101015780631ffa27f91461012257806321fb98691461015757806324d7806c1461018b5780633c205b05146101ac578063407a5c92146101d35780634681067d146101e85780634b0bddd2146101fd5780635341903b1461022357806354924aec146102445780636165234c1461025957806377410c031461027f57806381bd66fe146102945780638da5cb5b146102b5578063b2461b15146102ca575b600080fd5b3480156100f657600080fd5b506100ff6102f1565b005b34801561010d57600080fd5b506100ff600160a060020a03600435166103ee565b34801561012e57600080fd5b50610143600160a060020a03600435166104b1565b604080519115158252519081900360200190f35b34801561016357600080fd5b5061016f6004356104cf565b60408051600160a060020a039092168252519081900360200190f35b34801561019757600080fd5b50610143600160a060020a03600435166104fb565b3480156101b857600080fd5b506101c1610528565b60408051918252519081900360200190f35b3480156101df57600080fd5b506101c161052e565b3480156101f457600080fd5b506100ff610534565b34801561020957600080fd5b506100ff600160a060020a036004351660243515156105ee565b34801561022f57600080fd5b506100ff600160a060020a0360043516610735565b34801561025057600080fd5b50610143610811565b34801561026557600080fd5b506100ff600160a060020a0360043516602435151561081a565b34801561028b57600080fd5b506101436109b9565b3480156102a057600080fd5b506100ff600160a060020a03600435166109c2565b3480156102c157600080fd5b5061016f610ad4565b3480156102d657600080fd5b506100ff600160a060020a0360043581169060243516610ae3565b600054600160a060020a03163314610353576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60065460ff16156103ae576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b6103b6610c49565b6006805460ff191660011790556040517f2fa084a3abd5513daa7f5bfb140cf0ae5d4e4bb7ec06479fe25956313701a20590600090a1565b600054600160a060020a03163314610450576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf369181900360200190a150565b600160a060020a031660009081526005602052604090205460ff1690565b60006004828154811015156104e057fe5b600091825260209091200154600160a060020a031692915050565b6002546000908152600160209081526040808320600160a060020a03949094168352929052205460ff1690565b60025481565b60045490565b600054600160a060020a03163314610596576040805160e560020a62461bcd02815260206004820152601560248201527f6f6e6c795f6f776e65723a20666f7262696464656e0000000000000000000000604482015290519081900360640190fd5b60028054600190810191829055600091825260208181526040808420338552909152808320805460ff1916909217909155517fc536428a6a2ea6a7cff457a274794564f9f6ce1cfcf4c0a53fadaa231b017d8a9190a1565b60035460ff1615610637576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610640336104fb565b1515610684576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a03821633148015906106ab5750600054600160a060020a03838116911614155b1515610727576040805160e560020a62461bcd02815260206004820152602f60248201527f63616e6e6f74206368616e676520796f7572206f776e20286f72206f776e657260448201527f277329207065726d697373696f6e730000000000000000000000000000000000606482015290519081900360840190fd5b6107318282610c8d565b5050565b3360009081526005602052604090205460ff16151561079e576040805160e560020a62461bcd02815260206004820152601760248201527f6f6e6c795f656469746f72733a20666f7262696464656e000000000000000000604482015290519081900360640190fd5b336000818152600560209081526040808320805460ff19908116909155600160a060020a038616808552938290208054909116600117905580519384529083019190915280517f4532cbbb9747736f93100911e83c51f9509459a759d4fe4f8a942688cce83c2a9281900390910190a150565b60035460ff1681565b60065460ff1615610875576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff16156108be576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b6108c7336104fb565b151561090b576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600560205260409020805460ff191682158015919091179091556109795760408051600160a060020a038416815290517fc1f0ea3cc21b72d778e7e9d433c419eabb16edce0afe4468769e055b2e6d49c69181900360200190a1610731565b60408051600160a060020a038416815290517f3541f93cbae8c4be65491b824efe1570976e740b18c6aa441db5291f4de4c9219181900360200190a15050565b60065460ff1681565b60035460ff1615610a0b576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610a14336104fb565b1515610a58576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600054600160a060020a0316331415610abb576040805160e560020a62461bcd02815260206004820152601960248201527f6f776e65722063616e6e6f7420757067726164652073656c6600000000000000604482015290519081900360640190fd5b610ac6336000610c8d565b610ad1816001610c8d565b50565b600054600160a060020a031681565b60065460ff1615610b3e576040805160e560020a62461bcd02815260206004820152601960248201527f6e6f5f6c6f636b646f776e3a20636865636b206661696c656400000000000000604482015290519081900360640190fd5b60035460ff1615610b87576040805160e560020a62461bcd02815260206004820152601b6024820152600080516020610d91833981519152604482015290519081900360640190fd5b610b90336104fb565b1515610bd4576040805160e560020a62461bcd0281526020600482015260156024820152600080516020610db1833981519152604482015290519081900360640190fd5b600160a060020a038083166000818152600560209081526040808320805460ff19908116909155948616808452928190208054909516600117909455835192835282015281517f14e3af41624ed426a3e0e05e698f9abc5f7c5a80bab49a1b6f7ab4e534702b58929181900390910190a15050565b6002805460019081019091556003805460ff191690911790556040517fe6c1892f8d36012439015afa98d305e0aa27017e4042014c39690c8626d4a4a190600090a1565b6002546000908152600160209081526040808320600160a060020a03861684529091529020805460ff19168215801591909117909155610d5857604051600160a060020a038316907f44d6d25963f097ad14f29f06854a01f575648a1ef82f30e562ccd3889717e33990600090a2600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038416179055610731565b604051600160a060020a038316907fa3b62bc36326052d97ea62d63c3d60308ed4c3ea8ac079dd8499f1e9c4f80c0f90600090a25050560061646d696e73206d757374206e6f742062652064697361626c656400000000006f6e6c795f61646d696e3a20666f7262696464656e0000000000000000000000a165627a7a723058203952448083abf6bd73eb699e74142d7c9904061e925a12295c091151a02a50200029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/safeSend.abi b/dist/2018-06-18-ix-deployment/sv_payments/safeSend.abi new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/safeSend.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/safeSend.bin b/dist/2018-06-18-ix-deployment/sv_payments/safeSend.bin new file mode 100644 index 0000000..c87195e --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/safeSend.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820df5e0e43472a0c923a733bcc1f8a82e8935404a839f6a28467e9dc2c1d7b523c0029 \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/upgradePtr.abi b/dist/2018-06-18-ix-deployment/sv_payments/upgradePtr.abi new file mode 100644 index 0000000..c8fab44 --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/upgradePtr.abi @@ -0,0 +1 @@ +[{"constant":true,"inputs":[],"name":"getUpgradePointer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/dist/2018-06-18-ix-deployment/sv_payments/upgradePtr.bin b/dist/2018-06-18-ix-deployment/sv_payments/upgradePtr.bin new file mode 100644 index 0000000..dcefb0b --- /dev/null +++ b/dist/2018-06-18-ix-deployment/sv_payments/upgradePtr.bin @@ -0,0 +1 @@ +608060405260008054600160a060020a031916905534801561002057600080fd5b5060c68061002f6000396000f300608060405260043610603e5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663a76f354381146043575b600080fd5b348015604e57600080fd5b506055607e565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60005473ffffffffffffffffffffffffffffffffffffffff16905600a165627a7a7230582097c97697b737cb5730f1ec1483e571a5d93e3e4d174f39e54c10fe2ff860945e0029 \ No newline at end of file diff --git a/docs/Deployment.md b/docs/Deployment.md index 7f51981..951b760 100644 --- a/docs/Deployment.md +++ b/docs/Deployment.md @@ -24,13 +24,13 @@ You can use `./bin/deploy-ix-full.js` to deploy the contract. Be sure to check ` * `--fresh` -In order these are deployed: +In order these are deployed: (construct args follow name) -* SVIndexBackend -* SVPayments -* BBFarm -* CommunityAuction -* Index +* SVIndexBackend - `()` +* SVPayments - `(address _emergencyAdmin)` +* BBFarm - `()` +* CommunityAuction - `()` +* Index - `(backend, payments, ensOwnerProxy, bbfarm, commAuciton)` Then you'll need to set permissions on: