Address Contract Partially Verified
Address
0xD9FB596C0Ffe9F9ED0aD130BeAc7A2B8126013e1
Balance
0 ETH
Nonce
1
Code Size
17443 bytes
Creator
0x1F408a55...B04c at tx 0x664ae84a...d38857
Indexed Transactions
0
Contract Bytecode
17443 bytes
0x6080604052600436106101be5763ffffffff60e060020a60003504166305a2dd2681146101d957806311d2c2111461020c5780631d1f7578146102a257806321ded99b146102c657806327a02110146102f95780632be30d0a146103235780632ea579231461034457806331b78a921461036857806332fdfda81461039957806338da63d8146103bd57806347f849cd146103e45780634b698aff146104675780634d6ac6a11461048b5780634de44e44146104af5780634eeaa212146104d657806356b71f711461050b5780635df1539c1461052c5780636f0432531461054d5780637028b6a31461056e5780637570bff81461059257806376b1459d146105b35780638adf5db514610625578063900771031461062d57806395006c3014610642578063a19e4f0314610657578063be37ec1114610678578063d9d61a1014610690578063da5b7385146106b1578063daca1663146106c9578063dbd4053a146106de578063dde17cc51461070b578063e3d372651461072c578063e59e09ca14610759578063e679c4a91461076e578063eb418e3814610792578063ec80571b146107a7578063f4436293146107c8578063f5f40e4b146107ec575b3415156101d2576101cd61080d565b6101d7565b600080fd5b005b3480156101e557600080fd5b506101fa600160a060020a03600435166108db565b60408051918252519081900360200190f35b34801561021857600080fd5b5061022d600160a060020a03600435166108f6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561026757818101518382015260200161024f565b50505050905090810190601f1680156102945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102ae57600080fd5b506101fa600160a060020a0360043516602435610991565b3480156102d257600080fd5b506101d7600160a060020a036004351660243560443560643560843560a43560c4356109ae565b34801561030557600080fd5b506101fa600160a060020a0360043581169060243516604435610b5c565b34801561032f57600080fd5b506101d7600160a060020a0360043516610b7f565b34801561035057600080fd5b506101d7600160a060020a0360043516602435610fc4565b34801561037457600080fd5b5061037d61104a565b60408051600160a060020a039092168252519081900360200190f35b3480156103a557600080fd5b506101fa600160a060020a036004351660243561105a565b3480156103c957600080fd5b506101d7600160a060020a0360043581169060243516611077565b3480156103f057600080fd5b506103fc600435611422565b604080519c8d52600160a060020a039b8c1660208e015299909a168b8a015260608b019790975260808a019590955260a089019390935260c088019190915260e087015261010086015261012085015261014084015261016083019190915251908190036101800190f35b34801561047357600080fd5b506101fa600160a060020a0360043516602435611491565b34801561049757600080fd5b506101d7600160a060020a03600435166024356114c1565b3480156104bb57600080fd5b506101fa600160a060020a03600435811690602435166118e8565b3480156104e257600080fd5b506104f7600160a060020a0360043516611905565b604080519115158252519081900360200190f35b34801561051757600080fd5b5061037d600160a060020a036004351661191a565b34801561053857600080fd5b506101d7600160a060020a0360043516611935565b34801561055957600080fd5b506101fa600160a060020a0360043516611a38565b34801561057a57600080fd5b5061037d600160a060020a0360043516602435611a4a565b34801561059e57600080fd5b506101fa600160a060020a0360043516611a81565b3480156105bf57600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101d7948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750508435955050506020909201359150611a939050565b6101d7611ce3565b34801561063957600080fd5b506101fa611cf4565b34801561064e57600080fd5b5061037d611cfa565b34801561066357600080fd5b5061037d600160a060020a0360043516611d09565b34801561068457600080fd5b506101d7600435611d24565b34801561069c57600080fd5b506101fa600160a060020a0360043516611e4d565b3480156106bd57600080fd5b506101fa600435611e68565b3480156106d557600080fd5b506101fa611e7a565b3480156106ea57600080fd5b506101d7600160a060020a0360043516602435604435606435608435611e80565b34801561071757600080fd5b506101d7600160a060020a0360043516611f31565b34801561073857600080fd5b506101d7600160a060020a03600435811690602435166044356064356122dc565b34801561076557600080fd5b506101d761243e565b34801561077a57600080fd5b506101d7600160a060020a0360043516602435612533565b34801561079e57600080fd5b5061037d6125f3565b3480156107b357600080fd5b506101fa600160a060020a0360043516612602565b3480156107d457600080fd5b506101fa600160a060020a0360043516602435612614565b3480156107f857600080fd5b506101d7600160a060020a0360043516612631565b600160005b6001548210156108d7575060008181526007602052604090206003810154600160a060020a03163314801561084b575060008160060154115b156108cc576004810154815461086a91600160a060020a031690610fc4565b600380820154600160a060020a039081166000908152600b60209081526040808320600487015490941683529281528282209382529290925281205411156108cc57600381015460048201546108cc91600160a060020a039081169116611077565b600190910190610812565b5050565b600160a060020a031660009081526005602052604090205490565b60066020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156109895780601f1061095e57610100808354040283529160200191610989565b820191906000526020600020905b81548152906001019060200180831161096c57829003601f168201915b505050505081565b600a60209081526000928352604080842090915290825290205481565b600054600160a060020a031633146109c557600080fd5b60008611156109f657600160a060020a0387166000908152600a60209081526040808320600e845290915290208690555b6000841115610a2757600160a060020a0387166000908152600a60209081526040808320600f845290915290208490555b6000831115610a5857600160a060020a0387166000908152600a602090815260408083206010845290915290208390555b6000851115610a8957600160a060020a0387166000908152600a602090815260408083206011845290915290208590555b6000821115610aba57600160a060020a0387166000908152600a602090815260408083206014845290915290208290555b6000811115610aeb57600160a060020a0387166000908152600a602090815260408083206016845290915290208190555b6040805187815260208101879052808201869052606081018590526080810184905260a081018390524260c08201529051600160a060020a0389169133917f91c549a54690a897c4854d973a81d47014096fe70e025f99971b841755a9f12d9181900360e00190a350505050505050565b600b60209081526000938452604080852082529284528284209052825290205481565b600160a060020a038082166000908152601160209081526040808320546012835281842054601090935290832054909391909116919081908190819081901580610be15750600160a060020a0388166000908152601060205260409020546002145b80610c0f5750336000908152601360209081526040808320600160a060020a038c1684529091529020546001145b15610c1957600080fd5b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018990529051879650600160a060020a038716916323b872dd9160648083019260209291908290030181600087803b158015610c8a57600080fd5b505af1158015610c9e573d6000803e3d6000fd5b505050506040513d6020811015610cb457600080fd5b50511515610cc157600080fd5b600160a060020a0386166000908152600a6020908152604080832060038452909152902054610cf09088612678565b600160a060020a0387166000818152600a6020908152604080832060038085529083528184209590955592825260148152828220600183529052818120546002808352838320549483529290912054909650919450909250610d53908890612695565b9050610d5f8482612678565b600160a060020a038716600090815260146020908152604080832060018452909152902055610d8e8382612678565b600160a060020a038716600090815260146020908152604080832060028452909152902055610dbd8282612678565b600160a060020a0380881660008181526014602090815260408083206003845282528083209590955533808352601382528583208e861684529091528482206001905584517f95d89b410000000000000000000000000000000000000000000000000000000081529451929490937fcf4a5bc49312d2da38ba71f542f35ecd5c1cd51a9c31bb7a3c502487a97a9a3593908b16926395d89b41926004808201939182900301818387803b158015610e7357600080fd5b505af1158015610e87573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610eb057600080fd5b810190808051640100000000811115610ec857600080fd5b82016020810184811115610edb57600080fd5b8151640100000000811182820187101715610ef557600080fd5b5050600160a060020a038f16600090815260116020908152604080832054600a83528184206015855283528184205482518085018390529283018190524260608401819052608080855287519085015286519699509197509550939092839260a0840192908901918190849084905b83811015610f7c578181015183820152602001610f64565b50505050905090810190601f168015610fa95780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a35b5050505050505050565b6000600160a060020a0383161515610fdb57600080fd5b811515610fe757600080fd5b5060008181526007602052604090206003810154600160a060020a0316331461100f57600080fd5b6004810154600160a060020a0384811691161461102b57600080fd5b6006810154151561103b57600080fd5b61104583836126b8565b505050565b600054600160a060020a03165b90565b601460209081526000928352604080842090915290825290205481565b600080600160a060020a038416331461108f57600080fd5b600160a060020a038085166000908152600b60209081526040808320938716835292815282822060038352905290812054116110ca57600080fd5b5050336000908152600b60209081526040808320600160a060020a0385168085529083528184206003855283528184205482517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015292519094869486946370a082319360248083019491928390030190829087803b15801561115257600080fd5b505af1158015611166573d6000803e3d6000fd5b505050506040513d602081101561117c57600080fd5b5051101561118957600080fd5b80600160a060020a031663a9059cbb85846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b505050506040513d602081101561121657600080fd5b5050600160a060020a0383166000908152600a602090815260408083206003845290915290205461124790836129b4565b600160a060020a0384166000908152600a6020908152604080832060038452909152808220929092556007815220546112809083612678565b600160a060020a038481166000818152600a60209081526040808320600784528252808320959095559288168152600b8352838120918152908252828120600382529091528181208190556002815220546112db9083612678565b600160a060020a038581166000908152600b60209081526040808320938816808452938252808320600280855290835281842095909555838352600a8252808320600d84528083528184208054600190810190915585855260068452828520601586529184529382902054825193840189905291830182905242606084018190526080808552825495861615610100026000190190951696909604938301849052939433947f37d6357112d404473cb4aa05cea72f96c64b72f344db8ba4f3cdafc497206de294909389939291819060a0820190879080156113fe5780601f106113d3576101008083540402835291602001916113fe565b820191906000526020600020905b8154815290600101906020018083116113e157829003601f168201915b50509550505050505060405180910390a361141c84848460036129cb565b50505050565b600090815260076020819052604090912080546003820154600483015460018401546002850154600e86015460068701549787015460088801546009890154600a8a0154600b909a0154989b600160a060020a039889169b989097169995989497939693959294919390929190565b6004602052816000526040600020818154811015156114ac57fe5b90600052602060002001600091509150505481565b600080808060018510156114d457600080fd5b600160a060020a0386166000818152600a60209081526040808320600580855290835281842054338552600b84528285209585529483528184209084529091529020546115219087612678565b111561152c57600080fd5b33600090815260036020526040902054600160a060020a0316151561157a5760008054338252600360205260409091208054600160a060020a031916600160a060020a039092169190911790555b336000908152600a602090815260408083206012845290915290205415156115bb57336000908152600a602090815260408083206012845290915290204290555b600160a060020a03861660009081526008602052604090205460ff1615156115e257600080fd5b600160a060020a038616600090815260106020526040902054600214156117c957336000908152601360209081526040808320600160a060020a038a168452909152902054151561179957600160a060020a0386166000908152601160205260409020549350611653846002612695565b600160a060020a0387166000908152600a60209081526040808320600384529091529020549093506116859085612678565b600160a060020a0387166000818152600a6020908152604080832060038452825280832094909455918152601482528281206001825290915220546116ca9084612678565b600160a060020a038716600090815260146020908152604080832060018452909152808220929092556002815220546117039084612678565b600160a060020a0387166000908152601460209081526040808320600284529091528082209290925560038152205461173c9084612678565b600160a060020a03871660009081526014602090815260408083206003845290915290205561176b85856129b4565b336000908152601360209081526040808320600160a060020a038b16845290915290206001905591506117c4565b336000908152601360209081526040808320600160a060020a038a1684529091529020600190558491505b611820565b600160a060020a03861660009081526010602052604090205460011480156118125750336000908152601360209081526040808320600160a060020a038a168452909152902054155b1561181c57600080fd5b8491505b50604080517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810186905290518691600160a060020a038316916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b505115156118c957600080fd5b6118d38683612bc7565b6118e033878460016129cb565b505050505050565b601360209081526000928352604080842090915290825290205481565b60086020526000908152604090205460ff1681565b600360205260009081526040902054600160a060020a031681565b600160a060020a03811633141561194b57600080fd5b33600090815260036020526040902054600160a060020a03161580156119955750600160a060020a0381166000908152600a60209081526040808320600884529091529020546001145b156119c7573360009081526003602052604090208054600160a060020a031916600160a060020a0383161790556119f6565b60008054338252600360205260409091208054600160a060020a031916600160a060020a039092169190911790555b60408051600160a060020a0383168152905133917f3bf019f5f0b17480693601e318eb6120c1eac4732d3b7b3a006c5024f9dd69bd919081900360200190a250565b60116020526000908152604090205481565b600560205281600052604060002081815481101515611a6557fe5b600091825260209091200154600160a060020a03169150829050565b60106020526000908152604090205481565b60008054819081908190600160a060020a03163314611ab157600080fd5b84600a0a9350611ac4629896808561333f565b925082881015611ad357600080fd5b60028610158015611ae55750600c8611155b1515611af057600080fd5b600160a060020a0389166000818152600a602090815260408083206001845282528083208a9055928252600681529190208851611b2f928a019061435f565b50600160a060020a0389166000908152600a60209081526040808320600584529091529020889055611b6c611b65604888612695565b601e61333f565b600160a060020a038a166000908152600a6020908152604080832060028452909152808220620151808402908190556015835291205491935091501515611bd557600160a060020a0389166000908152600a602090815260408083206015845290915290208590555b6001600860008b600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548160ff02191690831515021790555088600160a060020a031633600160a060020a03167f196edf24b263700c81587a8df7e398f37ee73c833ec14ba03e730c9078c3bf8e888a8c426040518085815260200180602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015611c9b578181015183820152602001611c83565b50505050905090810190601f168015611cc85780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a3505050505050505050565b3415156101d257611cf261080d565b565b600d5481565b600c54600160a060020a031681565b601260205260009081526040902054600160a060020a031681565b600080548190600160a060020a03163314611d3e57600080fd5b600c54604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529051600160a060020a03909216935083916323b872dd916064808201926020929091908290030181600087803b158015611db457600080fd5b505af1158015611dc8573d6000803e3d6000fd5b505050506040513d6020811015611dde57600080fd5b50511515611deb57600080fd5b611df7600d5484612678565b600d819055600c54604080518681524260208201528151939450600160a060020a039092169233927fedd270e4814955c7554d0b104d04e85334bf75d8c25881584202a62f976cdfe292908290030190a3505050565b600160a060020a031660009081526004602052604090205490565b60096020526000908152604090205481565b60025481565b600054600160a060020a03163314611e9757600080fd5b600160a060020a0385166000818152600e60209081526040808320889055600f8252808320600184528252808320879055600283528083208690556003835291829020849055815187815290810186905280820185905260608101849052426080820152905133917f474e4457b5dadf290baae0b59e75b39a6fae9dc7cea66739bea562c6bdb3f120919081900360a00190a35050505050565b60008054819081908190600160a060020a03163314611f4f57600080fd5b600160a060020a0385166000908152601460209081526040808320600184529091528120541180611fa25750600160a060020a038516600090815260146020908152604080832060038452909152812054115b156122d557600160a060020a03851660009081526014602090815260408083206001845290915280822054600383529120549094509250611fe38484612678565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519193508692508391600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561204c57600080fd5b505af1158015612060573d6000803e3d6000fd5b505050506040513d602081101561207657600080fd5b5051101561208357600080fd5b600160a060020a0385166000908152600a60209081526040808320600384529091529020546120b290836129b4565b600160a060020a0386166000908152600a6020908152604080832060038452909152808220929092556007815220546120eb9083612678565b600160a060020a038087166000908152600a60209081526040808320600784528252808320949094558154845160e060020a63a9059cbb02815290841660048201526024810189905293519285169363a9059cbb9360448083019491928390030190829087803b15801561215e57600080fd5b505af1158015612172573d6000803e3d6000fd5b505050506040513d602081101561218857600080fd5b5050600160a060020a038086166000908152601460209081526040808320600184528252808320839055805160e060020a63a9059cbb02815261dead60048201526024810188905290519385169363a9059cbb93604480840194938390030190829087803b1580156121f957600080fd5b505af115801561220d573d6000803e3d6000fd5b505050506040513d602081101561222357600080fd5b5050600160a060020a0385166000908152600a6020908152604080832060048452909152902054612255908490612678565b600160a060020a0386166000818152600a60209081526040808320600484528252808320949094558282526014815283822060038352815283822091909155825187815290810186905242818401529151909133917f72a59d1b62640442b74383b33c049c4c7bea4bd3ad85cc7b66f28e51a2e685ec9181900360600190a35b5050505050565b6000805481908190600160a060020a031633146122f857600080fd5b600160a060020a0386166000908152600a602081815260408084206015855290915290912054935083900a91506123316127108361333f565b90508085111561234057600080fd5b83158061234d5750836001145b806123585750836002145b151561236357600080fd5b600160a060020a038616151561237857600080fd5b86600160a060020a031686600160a060020a031614806123a55750601554600160a060020a038781169116145b15156123b057600080fd5b600160a060020a0380881660008181526012602090815260408083208054958c16600160a060020a03199096168617905560108252808320899055601182529182902089905581518981529081018890524281830152905133917f8dcb3efed79cc560f73a6675b9aede64e9808f85b78941762e1824961f97ef0c919081900360600190a450505050505050565b60008054600160a060020a0316331461245657600080fd5b50600c54600d546040805160e060020a63a9059cbb028152336004820152602481019290925251600160a060020a0390921691829163a9059cbb9160448083019260209291908290030181600087803b1580156124b257600080fd5b505af11580156124c6573d6000803e3d6000fd5b505050506040513d60208110156124dc57600080fd5b50506000600d819055600c54604080519283524260208401528051600160a060020a039092169233927fd25c71ac9a2e013bc67aea2a42eac898a2ca96862274bf35222678830637d4e2929181900390910190a350565b60008054600160a060020a0316331461254b57600080fd5b8115806125585750816001145b806125635750816002145b151561256e57600080fd5b50600160a060020a038083166000908152601260205260409020541680151561259657600080fd5b600160a060020a03831660008181526010602090815260409182902085905581518581524291810191909152815133927f4fe3036ed4056d7e46121d303e4672c0e7358a00883d9c052b02b43d37c47dcd928290030190a3505050565b601554600160a060020a031681565b600e6020526000908152604090205481565b600f60209081526000928352604080842090915290825290205481565b600054600160a060020a0316331461264857600080fd5b601554600160a060020a031615156101d25760158054600160a060020a031916600160a060020a03831617905550565b60008282018381101561268a57600080fd5b8091505b5092915050565b6000808083116126a457600080fd5b82848115156126af57fe5b04949350505050565b60008181526007602052604081206004810154909190600160a060020a038581169116146126e557600080fd5b42826002015410156129a65761270382600601548360070154612678565b6003830154600160a060020a039081166000908152600b60209081526040808320600488015490941683529281528282206005835290522054600184015491925061274d916129b4565b336000908152600b60209081526040808320600160a060020a03898116855290835281842060058552909252822092909255600c84018390556006840155426008840155600383015460048401546127ac9291821691168360026129cb565b600382015460048301546127cd91600160a060020a0390811691168361336d565b600082600701541180156127ed5750600d82015460a060020a900460ff16155b806128085750600d82015460a060020a900460ff1615156001145b156128755761282661281f8360010154605861333f565b6064612695565b600b83015561283e670de0b6b3a7640000605861333f565b600a83015560006007830155600d8201805474ff0000000000000000000000000000000000000000191660a060020a1790556128a5565b61288761281f8360010154604861333f565b600b83015561289f670de0b6b3a7640000604861333f565b600a8301555b6004820154600160a060020a038581166000908152600a60209081526040808320601584528252918290205482519182018690529181018290524260608201819052608080835260058801805460026000196001831615610100020190911604918401829052949095169433947fa0ecf65d36aecc62ba4c8439d7952005f99897187395c01c3fc44481429544c594909388939192819060a0820190879080156129905780601f1061296557610100808354040283529160200191612990565b820191906000526020600020905b81548152906001019060200180831161297357829003601f168201915b50509550505050505060405180910390a361141c565b61141c8483600001546136fc565b600080838311156129c457600080fd5b5050900390565b600160a060020a0383166000818152600f60209081526040808320858452825280832054938352600e9091528120548190819081908190819060011415612bba576000600d54118015612a1e5750600087115b15612bba57600160a060020a038a166000908152600a602090815260408083206015845290915290205460121415612a6157612a5a8988612695565b9550612ab3565b600160a060020a038a166000908152600a6020908152604080832060158452909152902054612a92906012906129b4565b945084600a0a9350612aa4848a61333f565b9250612ab08388612695565b95505b5050600c546040805160e060020a63a9059cbb028152600160a060020a038c8116600483015260248201889052915191909216918291829163a9059cbb9160448083019260209291908290030181600087803b158015612b1257600080fd5b505af1158015612b26573d6000803e3d6000fd5b505050506040513d6020811015612b3c57600080fd5b5050600d54612b4b90876129b4565b600d55600160a060020a03808b166000908152600a60209081526040808320600c845282529182902080546001019055815189815242918101919091528151928e16927f93e34edfdcd5ca8f9d8786b9baa823f85e7b7f3981742ae53ceb0bef9aa610f7929181900390910190a25b5050505050505050505050565b33600081815260036020908152604080832054600160a060020a03908116808552600b8085528386209289168087529285528386206005808852908652848720549787529085528386209286529184528285209185529252822054909291808080808080612c35888c612678565b600054909750600160a060020a038b81169116148015612c6e5750336000908152600a6020908152604080832060088452909152902054155b15612e0c57612c8161281f8c601a61333f565b9550612ce7600b60008c600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206000600381526020019081526020016000205487612678565b600b60008c600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060006003815260200190815260200160002081905550612da9600b60008c600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206000600481526020019081526020016000205487612678565b600b60008c600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060006004815260200190815260200160002081905550613326565b612e1a61281f8c600a61333f565b9450868910612f4957612e87600b60008c600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206000600381526020019081526020016000205486612678565b600b60008c600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060006003815260200190815260200160002081905550612da9600b60008c600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206000600481526020019081526020016000205486612678565b87891115612fc557612f5b8989612678565b8b11612f8e57612f6b89896129b4565b9350612f7b61281f85600a61333f565b9250612f8785846129b4565b9150612fc0565b612fa1612f9b8c8b6129b4565b896129b4565b9050612fb161281f82600a61333f565b9150612fbd85836129b4565b92505b612fcd565b600092508491505b613031600b60008c600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206000600381526020019081526020016000205484612678565b600b60008c600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a03168152602001908152602001600020600060038152602001908152602001600020819055506130f3600b60008c600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206000600481526020019081526020016000205484612678565b600b60008c600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a03168152602001908152602001600020600060048152602001908152602001600020819055506131c9600b60008060009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206000600381526020019081526020016000205483612678565b600b60008060009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a03168152602001908152602001600020600060038152602001908152602001600020819055506132b3600b60008060009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206000600481526020019081526020016000205483612678565b600b60008060009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a03168152602001908152602001600020600060048152602001908152602001600020819055505b6133318c8c8c613834565b505050505050505050505050565b600080831515613352576000915061268e565b5082820282848281151561336257fe5b041461268a57600080fd5b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905183916000918491600160a060020a038516916370a082319160248082019260209290919082900301818887803b1580156133d557600080fd5b505af11580156133e9573d6000803e3d6000fd5b505050506040513d60208110156133ff57600080fd5b5051101561340c57600080fd5b81600160a060020a031663a9059cbb86856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561346f57600080fd5b505af1158015613483573d6000803e3d6000fd5b505050506040513d602081101561349957600080fd5b505050600160a060020a038085166000908152600b602090815260408083209387168352928152828220600683529052908120548110156135e65750600160a060020a038481166000908152600b6020908152604080832087851684528252808320600684528252808320805490849055815160e060020a63a9059cbb02815261dead6004820152602481018290529151909486169363a9059cbb93604480850194919392918390030190829087803b15801561355557600080fd5b505af1158015613569573d6000803e3d6000fd5b505050506040513d602081101561357f57600080fd5b5050600160a060020a0384166000908152600a60209081526040808320600484529091529020546135b09082612678565b600160a060020a0385166000908152600a6020908152604080832060048452909152808220929092556013815220805460010190555b600160a060020a0384166000908152600a602090815260408083206003845290915290205461361f9061361990856129b4565b826129b4565b600160a060020a0385166000908152600a6020908152604080832060038452909152808220929092556007815220546136589084612678565b600160a060020a038086166000818152600a60209081526040808320600784528252808320959095559289168152600b83528381209181529082528281206002825290915220546136a99084612678565b600160a060020a039586166000908152600b602081815260408084209890991680845297815288832060028452815288832093909355958152600a82528681209581529490525050502080546001019055565b600081815260076020526040812060048101549091908190819081908190600160a060020a0389811691161461373157600080fd5b61373f4287600801546129b4565b945061376b61376261375c61281f89600101548a6009015461333f565b8761333f565b62278d00612695565b935061377c8660010154600a612695565b92508284111561378e57829150613792565b8391505b85600601548211156137a9575060068501546137ac565b50805b600c860181905560068601546137c290826129b4565b600687015560078601546000101561380f57600d8601805474ff0000000000000000000000000000000000000000191660a060020a17905560078601546138099082612678565b600c8701555b600060078701554260088701556006860154600c870154610fba918a918a91906140f7565b600080600080600061384a61281f88604861333f565b600054909550600160a060020a0387811691161480156138835750336000908152600a6020908152604080832060088452909152902054155b1561389157600093506138a2565b61389f61281f88601061333f565b93505b600160a060020a0388166000908152600a60209081526040808320600284529091529020548893506138d5904290612678565b915061022060405190810160405280600154815260200188815260200183815260200133600160a060020a0316815260200189600160a060020a0316815260200184600160a060020a03166395d89b416040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561395457600080fd5b505af1158015613968573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561399157600080fd5b8101908080516401000000008111156139a957600080fd5b820160208101848111156139bc57600080fd5b81516401000000008111828201871017156139d657600080fd5b50509291905050508152602001868152602001858152602001428152602001600a60008b600160a060020a0316600160a060020a0316815260200190815260200160002060006001815260200190815260200160002054815260200160008152602001600081526020016000815260200187600160a060020a03168152602001600015158152602001600a60008b600160a060020a0316600160a060020a031681526020019081526020016000206000601581526020019081526020016000205481526020014281525060076000600154815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a815481600160a060020a030219169083600160a060020a0316021790555060808201518160040160006101000a815481600160a060020a030219169083600160a060020a0316021790555060a0820151816005019080519060200190613b4992919061435f565b5060c0820151600682015560e0820151600782015561010082015160088201556101208201516009820155610140820151600a820155610160820151600b80830191909155610180830151600c8301556101a0830151600d830180546101c0860151600160a060020a0319909116600160a060020a039384161774ff0000000000000000000000000000000000000000191660a060020a911515919091021790556101e0840151600e84015561020090930151600f9092019190915533600090815260209182526040808220938c168252928252828120600182529091522054613c339088612678565b336000908152600b60209081526040808320600160a060020a038d16845282528083206001845290915280822092909255600581522054613c749088612678565b336000908152600b60209081526040808320600160a060020a038d168452825280832060058452909152902055613caf61281f88600261333f565b336000908152600b60209081526040808320600160a060020a038d168452825280832060068452909152902054909150613ce99082612678565b336000908152600b60209081526040808320600160a060020a038d168085529083528184206006808652908452828520959095558352600a82528083209383529290522054613d389088612678565b600160a060020a0389166000908152600a602090815260408083206006845290915280822092909255600381522054613d719088612678565b600160a060020a0389166000908152600a6020818152604080842060038552825280842094909455338352908152828220600883529052205460011415613e15576001805460009081526009602090815260408083204290553383526004825280832084548154808701835591855283852090910155835484018455600160a060020a038c168352600a808352818420908452909152902080549091019055613eb6565b600180546000908152600960208181526040808420429055600160a060020a03808c1685526005835281852080548088018255908652838620018054600160a060020a03191633908117909155855260048352818520865481548089018355918752848720909101558554860186558d168452600a808352818520938552838352818520805487019055845291905290208054820190556002805490910190555b336000818152600a60209081526040808320600884528252808320600190819055848452600b8352818420600160a060020a038e8116808752918552838620600787529094528285209190915581517f95d89b4100000000000000000000000000000000000000000000000000000000815291519094937ffbfe3adbedbe1bb4fdd5a7de679f14a82150297893dd01f727960ae3ddf69c50938916926395d89b41926004808301939282900301818387803b158015613f7457600080fd5b505af1158015613f88573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015613fb157600080fd5b810190808051640100000000811115613fc957600080fd5b82016020810184811115613fdc57600080fd5b8151640100000000811182820187101715613ff657600080fd5b50509291905050508a600a60008e600160a060020a0316600160a060020a0316815260200190815260200160002060006015815260200190815260200160002054876040518080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b8381101561408757818101518382015260200161406f565b50505050905090810190601f1680156140b45780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a35050336000908152601360209081526040808320600160a060020a03999099168352979052958620959095555050505050565b60008381526007602052604081206004810154909190819081908190600160a060020a038a811691161461412a57600080fd5b61413c61281f8660010154600c61333f565b935061415061281f8660010154601061333f565b8554600080543382526003602052604090912054929550909350600160a060020a0391821691161480156141a857503360009081526004602052604081208054849290811061419b57fe5b9060005260206000200154145b156141d4576141cd6141c76141c18760010154876129b4565b856129b4565b886129b4565b90506141e8565b6141e56141c78660010154866129b4565b90505b6142086141fe8268056bc75e2d6310000061333f565b8660010154612695565b600a860155600b85018190556003850154600486015461423591600160a060020a0390811691168861336d565b6004850154600160a060020a038a81166000908152600a60209081526040808320601584528252918290205482519182018b90529181018290524260608201819052608080835260058b01805460026000196001831615610100020190911604918401829052949095169433947fa0ecf65d36aecc62ba4c8439d7952005f99897187395c01c3fc44481429544c59490938d939192819060a0820190879080156143205780601f106142f557610100808354040283529160200191614320565b820191906000526020600020905b81548152906001019060200180831161430357829003601f168201915b50509550505050505060405180910390a36003850154600486015461435491600160a060020a0390811691168860026129cb565b505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106143a057805160ff19168380011785556143cd565b828001600101855582156143cd579182015b828111156143cd5782518255916020019190600101906143b2565b506143d99291506143dd565b5090565b61105791905b808211156143d957600081556001016143e35600a165627a7a723058205cd92e803863cc861f730158834dca1d1be57e6aae90349394018e604b8663680029
Verified Source Code Partial Match
Compiler: v0.4.25+commit.59dbf8f1
EVM: byzantium
Optimization: Yes (200 runs)
HoldPlatformDapps.sol 764 lines
pragma solidity ^0.4.25;
/**
.----------------. .----------------. .----------------. .----------------.
| .--------------. || .--------------. || .--------------. || .--------------. |
| | ____ ____ | || | ____ | || | _____ | || | ________ | |
| | |_ || _| | || | .' `. | || | |_ _| | || | |_ ___ `. | |
| | | |__| | | || | / .--. \ | || | | | | || | | | `. \ | |
| | | __ | | || | | | | | | || | | | _ | || | | | | | | |
| | _| | | |_ | || | \ `--' / | || | _| |__/ | | || | _| |___.' / | |
| | |____||____| | || | `.____.' | || | |________| | || | |________.' | |
| | | || | | || | | || | | |
| '--------------' || '--------------' || '--------------' || '--------------' |
'----------------' '----------------' '----------------' '----------------'
**/
/*==============================
= LIVE VERSION =
==============================*/
contract EthereumSmartContract {
address EthereumNodes;
constructor() public {
EthereumNodes = msg.sender;
}
modifier restricted() {
require(msg.sender == EthereumNodes);
_;
}
function GetEthereumNodes() public view returns (address owner) { return EthereumNodes; }
}
contract HoldPlatformDapps is EthereumSmartContract {
/*==============================
= EVENTS =
==============================*/
// Ethereum User
event onCashbackCode (address indexed hodler, address cashbackcode);
event onAffiliateBonus (address indexed hodler, address indexed tokenAddress, string tokenSymbol, uint256 amount, uint256 decimal, uint256 endtime);
event onHoldplatform (address indexed hodler, address indexed tokenAddress, string tokenSymbol, uint256 amount, uint256 decimal, uint256 endtime);
event onUnlocktoken (address indexed hodler, address indexed tokenAddress, string tokenSymbol, uint256 amount, uint256 decimal, uint256 endtime);
event onUtilityfee (address indexed hodler, address indexed tokenAddress, string tokenSymbol, uint256 amount, uint256 decimal, uint256 endtime);
event onReceiveAirdrop (address indexed hodler, uint256 amount, uint256 datetime);
// Ethereum Nodes
event onAddContract (address indexed hodler, address indexed tokenAddress, uint256 percent, string tokenSymbol, uint256 amount, uint256 endtime);
event onTokenPrice (address indexed hodler, address indexed tokenAddress, uint256 Currentprice, uint256 ETHprice, uint256 ATHprice, uint256 ATLprice, uint256 ICOprice, uint256 Aprice, uint256 endtime);
event onHoldAirdrop (address indexed hodler, address indexed tokenAddress, uint256 HPMstatus, uint256 d1, uint256 d2, uint256 d3,uint256 endtime);
event onHoldDeposit (address indexed hodler, address indexed tokenAddress, uint256 amount, uint256 endtime);
event onHoldWithdraw (address indexed hodler, address indexed tokenAddress, uint256 amount, uint256 endtime);
event onUtilitySetting (address indexed hodler, address indexed tokenAddress, address indexed pwt, uint256 amount, uint256 ustatus, uint256 endtime);
event onUtilityStatus (address indexed hodler, address indexed tokenAddress, uint256 ustatus, uint256 endtime);
event onUtilityBurn (address indexed hodler, address indexed tokenAddress, uint256 uamount, uint256 bamount, uint256 endtime);
/*==============================
= Mechanism =
==============================*/
//-------o Burn = 2% o-------o Affiliate = 10% o-------o Cashback = 16% o-------o Total Receive = 88% o-------o Without Cashback = 72%
//-------o Hold 36 Months, Unlock 0.067% Per day >>> 2% Per month
//-------o Special Promo : Hold 24 Months, Unlock 0.1% Per day >>> 3% Permonth ( limited offer )
/*==============================
= VARIABLES =
==============================*/
// ---> Struct Database
struct Safe {
uint256 id; // [01] -- > Registration Number
uint256 amount; // [02] -- > Total amount of contribution to this transaction
uint256 endtime; // [03] -- > The Expiration Of A Hold Platform Based On Unix Time
address user; // [04] -- > The ETH address you are using
address tokenAddress; // [05] -- > The Token Contract Address That You Are Using
string tokenSymbol; // [06] -- > The Token Symbol That You Are Using
uint256 amountbalance; // [07] -- > 88% from Contribution / 72% Without Cashback
uint256 cashbackbalance; // [08] -- > 16% from Contribution / 0% Without Cashback
uint256 lasttime; // [09] -- > The Last Time You Withdraw Based On Unix Time
uint256 percentage; // [10] -- > The percentage of tokens that are unlocked every month ( Default = 2% --> Promo = 3% )
uint256 percentagereceive; // [11] -- > The Percentage You Have Received
uint256 tokenreceive; // [12] -- > The Number Of Tokens You Have Received
uint256 lastwithdraw; // [13] -- > The Last Amount You Withdraw
address referrer; // [14] -- > Your ETH referrer address
bool cashbackstatus; // [15] -- > Cashback Status
uint256 tokendecimal; // [16] -- > Token Decimals
uint256 startime; // [17] -- > Registration time ( Based On Unix Time )
}
uint256 private idnumber; // [01] -- > ID number ( Start from 500 )
uint256 public TotalUser; // [02] -- > Total Smart Contract User (TX)
mapping(address => address) public cashbackcode; // [03] -- > Cashback Code
mapping(address => uint256[]) public idaddress; // [04] -- > Search Address by ID
mapping(address => address[]) public afflist; // [05] -- > Affiliate List by ID
mapping(address => string) public ContractSymbol; // [06] -- > Contract Address Symbol
mapping(uint256 => Safe) private _safes; // [07] -- > Struct safe database
mapping(address => bool) public contractaddress; // [08] -- > Contract Address
mapping(uint256 => uint256) public starttime; // [09] -- > Start Time by id number
mapping (address => mapping (uint256 => uint256)) public Bigdata;
/** Bigdata Mapping :
[1] Percent (Monthly Unlocked tokens) [7] All Payments [13] Total TX Affiliate (Withdraw) [19] Total TX Burn
[2] Holding Time (in seconds) [8] Active User [14] Current Price (USD) [20] ICO Price (ETH)
[3] Token Balance [9] Total User [15] ATH Price (ETH) [21] Token Decimal
[4] Total Burn [10] Total TX Hold [16] ATL Price (ETH) [22] Additional Price
[5] Max Contribution [11] Total TX Unlock [17] Current ETH Price (ETH)
[6] All Contribution [12] Total TX Airdrop [18] Date Register
**/
// ---> Statistics Mapping
mapping (address => mapping (address => mapping (uint256 => uint256))) public Statistics;
// [1] LifetimeContribution [2] LifetimePayments [3] Affiliatevault [4] Affiliateprofit [5] ActiveContribution [6] Burn [7] Active User
// ---> Airdrop Mapping
address public Holdplatform_address; // [01] -- > Token contract address used for airdrop
uint256 public Holdplatform_balance; // [02] -- > The remaining balance, to be used for airdrop
mapping(address => uint256) public Holdplatform_status; // [03] -- > Current airdrop status ( 0 = Disabled, 1 = Active )
mapping(address => mapping (uint256 => uint256)) public Holdplatform_divider;
// Holdplatform_divider = [1] Lock Airdrop [2] Unlock Airdrop [3] Affiliate Airdrop
// ---> Utility Mapping
mapping(address => uint256) public U_status; // [01] -- > Status for utility fee payments
mapping(address => uint256) public U_amount; // [02] -- > The amount of utility fee that must be paid for every hold
mapping(address => address) public U_paywithtoken; // [03] -- > Tokens used to pay fees
mapping(address => mapping (address => uint256)) public U_userstatus; // [04] -- > The status of the user has paid or not
mapping(address => mapping (uint256 => uint256)) public U_statistics;
// U_statistics = [1] Utility Vault [2] Utility Profit [3] Utility Burn
address public Utility_address;
/*==============================
= CONSTRUCTOR =
==============================*/
constructor() public {
idnumber = 500;
Holdplatform_address = 0x49a6123356b998EF9478C495E3D162A2F4eC4363;
}
/*==============================
= AVAILABLE FOR EVERYONE =
==============================*/
//-------o Function 01 - Ethereum Payable
function () public payable {
if (msg.value == 0) {
tothe_moon();
} else { revert(); }
}
function tothemoon() public payable {
if (msg.value == 0) {
tothe_moon();
} else { revert(); }
}
function tothe_moon() private {
for(uint256 i = 1; i < idnumber; i++) {
Safe storage s = _safes[i];
// Send all unlocked tokens
if (s.user == msg.sender && s.amountbalance > 0) {
Unlocktoken(s.tokenAddress, s.id);
// Send all affiliate bonus
if (Statistics[s.user][s.tokenAddress][3] > 0) { // [3] Affiliatevault
WithdrawAffiliate(s.user, s.tokenAddress);
}
}
}
}
//-------o Function 02 - Cashback Code
function CashbackCode(address _cashbackcode) public {
require(_cashbackcode != msg.sender);
if (cashbackcode[msg.sender] == 0x0000000000000000000000000000000000000000 && Bigdata[_cashbackcode][8] == 1) { // [8] Active User
cashbackcode[msg.sender] = _cashbackcode; }
else { cashbackcode[msg.sender] = EthereumNodes; }
emit onCashbackCode(msg.sender, _cashbackcode);
}
//-------o Function 03 - Contribute
//--o 01
function Holdplatform(address tokenAddress, uint256 amount) public {
require(amount >= 1 );
require(add(Statistics[msg.sender][tokenAddress][5], amount) <= Bigdata[tokenAddress][5] );
// [5] ActiveContribution && [5] Max Contribution
if (cashbackcode[msg.sender] == 0x0000000000000000000000000000000000000000 ) {
cashbackcode[msg.sender] = EthereumNodes;
}
if (Bigdata[msg.sender][18] == 0) { // [18] Date Register
Bigdata[msg.sender][18] = now;
}
if (contractaddress[tokenAddress] == false) { revert(); } else {
if (U_status[tokenAddress] == 2 ) { // 0 = Disabled , 1 = Enabled, 2 = Merger with Hold
if (U_userstatus[msg.sender][tokenAddress] == 0 ) {
uint256 Fee = U_amount[tokenAddress];
uint256 HalfFee = div(Fee, 2);
Bigdata[tokenAddress][3] = add(Bigdata[tokenAddress][3], Fee);
U_statistics[tokenAddress][1] = add(U_statistics[tokenAddress][1], HalfFee); // [1] Utility Vault
U_statistics[tokenAddress][2] = add(U_statistics[tokenAddress][2], HalfFee); // [2] Utility Profit
U_statistics[tokenAddress][3] = add(U_statistics[tokenAddress][3], HalfFee); // [3] Utility Burn
uint256 totalamount = sub(amount, Fee);
U_userstatus[msg.sender][tokenAddress] = 1;
} else {
totalamount = amount;
U_userstatus[msg.sender][tokenAddress] = 1; }
} else {
if (U_status[tokenAddress] == 1 && U_userstatus[msg.sender][tokenAddress] == 0 ) { revert(); }
else { totalamount = amount; }
}
ERC20Interface token = ERC20Interface(tokenAddress);
require(token.transferFrom(msg.sender, address(this), amount));
HodlTokens2(tokenAddress, totalamount);
Airdrop(msg.sender, tokenAddress, totalamount, 1); // 1 = Hold, 2 = Unhold, 3 = Affiliate Withdraw
}
}
//--o 02
function HodlTokens2(address ERC, uint256 amount) private {
address ref = cashbackcode[msg.sender];
uint256 ReferrerContribution = Statistics[ref][ERC][5]; // [5] ActiveContribution
uint256 AffiliateContribution = Statistics[msg.sender][ERC][5]; // [5] ActiveContribution
uint256 MyContribution = add(AffiliateContribution, amount);
if (ref == EthereumNodes && Bigdata[msg.sender][8] == 0 ) { // [8] Active User
uint256 nodecomission = div(mul(amount, 26), 100);
Statistics[ref][ERC][3] = add(Statistics[ref][ERC][3], nodecomission ); // [3] Affiliatevault
Statistics[ref][ERC][4] = add(Statistics[ref][ERC][4], nodecomission ); // [4] Affiliateprofit
} else {
uint256 affcomission_one = div(mul(amount, 10), 100);
if (ReferrerContribution >= MyContribution) { //--o if referrer contribution >= My contribution
Statistics[ref][ERC][3] = add(Statistics[ref][ERC][3], affcomission_one); // [3] Affiliatevault
Statistics[ref][ERC][4] = add(Statistics[ref][ERC][4], affcomission_one); // [4] Affiliateprofit
} else {
if (ReferrerContribution > AffiliateContribution ) {
if (amount <= add(ReferrerContribution,AffiliateContribution) ) {
uint256 AAA = sub(ReferrerContribution, AffiliateContribution );
uint256 affcomission_two = div(mul(AAA, 10), 100);
uint256 affcomission_three = sub(affcomission_one, affcomission_two);
} else {
uint256 BBB = sub(sub(amount, ReferrerContribution), AffiliateContribution);
affcomission_three = div(mul(BBB, 10), 100);
affcomission_two = sub(affcomission_one, affcomission_three); }
} else { affcomission_two = 0; affcomission_three = affcomission_one; }
Statistics[ref][ERC][3] = add(Statistics[ref][ERC][3], affcomission_two); // [3] Affiliatevault
Statistics[ref][ERC][4] = add(Statistics[ref][ERC][4], affcomission_two); // [4] Affiliateprofit
Statistics[EthereumNodes][ERC][3] = add(Statistics[EthereumNodes][ERC][3], affcomission_three); // [3] Affiliatevault
Statistics[EthereumNodes][ERC][4] = add(Statistics[EthereumNodes][ERC][4], affcomission_three); // [4] Affiliateprofit
}
}
HodlTokens3(ERC, amount, ref);
}
//--o 03
function HodlTokens3(address ERC, uint256 amount, address ref) private {
uint256 AvailableBalances = div(mul(amount, 72), 100);
if (ref == EthereumNodes && Bigdata[msg.sender][8] == 0 ) // [8] Active User
{ uint256 AvailableCashback = 0; } else { AvailableCashback = div(mul(amount, 16), 100);}
ERC20Interface token = ERC20Interface(ERC);
uint256 HodlTime = add(now, Bigdata[ERC][2]); // [2] Holding Time (in seconds)
_safes[idnumber] = Safe(idnumber, amount, HodlTime, msg.sender, ERC, token.symbol(), AvailableBalances, AvailableCashback, now, Bigdata[ERC][1], 0, 0, 0, ref, false, Bigdata[ERC][21], now); // [1] Percent (Monthly Unlocked tokens)
Statistics[msg.sender][ERC][1] = add(Statistics[msg.sender][ERC][1], amount); // [1] LifetimeContribution
Statistics[msg.sender][ERC][5] = add(Statistics[msg.sender][ERC][5], amount); // [5] ActiveContribution
uint256 Burn = div(mul(amount, 2), 100);
Statistics[msg.sender][ERC][6] = add(Statistics[msg.sender][ERC][6], Burn); // [6] Burn
Bigdata[ERC][6] = add(Bigdata[ERC][6], amount); // [6] All Contribution
Bigdata[ERC][3] = add(Bigdata[ERC][3], amount); // [3] Token Balance
if(Bigdata[msg.sender][8] == 1 ) { // [8] Active User
starttime[idnumber] = now;
idaddress[msg.sender].push(idnumber); idnumber++; Bigdata[ERC][10]++; } // [10] Total TX Hold
else {
starttime[idnumber] = now;
afflist[ref].push(msg.sender); idaddress[msg.sender].push(idnumber); idnumber++;
Bigdata[ERC][9]++; Bigdata[ERC][10]++; TotalUser++; } // [9] Total User & [10] Total TX Hold
Bigdata[msg.sender][8] = 1; // [8] Active User
Statistics[msg.sender][ERC][7] = 1;
// [7] Active User
emit onHoldplatform(msg.sender, ERC, token.symbol(), amount, Bigdata[ERC][21], HodlTime);
amount = 0; AvailableBalances = 0; AvailableCashback = 0;
U_userstatus[msg.sender][ERC] = 0; // Meaning that the utility fee has been used and returned to 0
}
//-------o Function 05 - Claim Token That Has Been Unlocked
function Unlocktoken(address tokenAddress, uint256 id) public {
require(tokenAddress != 0x0);
require(id != 0);
Safe storage s = _safes[id];
require(s.user == msg.sender);
require(s.tokenAddress == tokenAddress);
if (s.amountbalance == 0) { revert(); } else { UnlockToken2(tokenAddress, id); }
}
//--o 01
function UnlockToken2(address ERC, uint256 id) private {
Safe storage s = _safes[id];
require(s.tokenAddress == ERC);
if(s.endtime < now){ //--o Hold Complete
uint256 amounttransfer = add(s.amountbalance, s.cashbackbalance);
Statistics[msg.sender][ERC][5] = sub(Statistics[s.user][s.tokenAddress][5], s.amount); // [5] ActiveContribution
s.lastwithdraw = amounttransfer; s.amountbalance = 0; s.lasttime = now;
Airdrop(s.user, s.tokenAddress, amounttransfer, 2); // 1 = Hold, 2 = Unhold, 3 = Affiliate Withdraw
PayToken(s.user, s.tokenAddress, amounttransfer);
if(s.cashbackbalance > 0 && s.cashbackstatus == false || s.cashbackstatus == true) {
s.tokenreceive = div(mul(s.amount, 88), 100) ; s.percentagereceive = mul(1000000000000000000, 88);
s.cashbackbalance = 0;
s.cashbackstatus = true ;
}
else {
s.tokenreceive = div(mul(s.amount, 72), 100) ; s.percentagereceive = mul(1000000000000000000, 72);
}
emit onUnlocktoken(msg.sender, s.tokenAddress, s.tokenSymbol, amounttransfer, Bigdata[ERC][21], now);
} else { UnlockToken3(ERC, s.id); }
}
//--o 02
function UnlockToken3(address ERC, uint256 id) private {
Safe storage s = _safes[id];
require(s.tokenAddress == ERC);
uint256 timeframe = sub(now, s.lasttime);
uint256 CalculateWithdraw = div(mul(div(mul(s.amount, s.percentage), 100), timeframe), 2592000); // 2592000 = seconds30days
//--o = s.amount * s.percentage / 100 * timeframe / seconds30days ;
uint256 MaxWithdraw = div(s.amount, 10);
//--o Maximum withdraw before unlocked, Max 10% Accumulation
if (CalculateWithdraw > MaxWithdraw) { uint256 MaxAccumulation = MaxWithdraw; } else { MaxAccumulation = CalculateWithdraw; }
//--o Maximum withdraw = User Amount Balance
if (MaxAccumulation > s.amountbalance) { uint256 lastwithdraw = s.amountbalance; } else { lastwithdraw = MaxAccumulation; }
s.lastwithdraw = lastwithdraw;
s.amountbalance = sub(s.amountbalance, lastwithdraw);
if (s.cashbackbalance > 0) {
s.cashbackstatus = true ;
s.lastwithdraw = add(s.cashbackbalance, lastwithdraw);
}
s.cashbackbalance = 0;
s.lasttime = now;
UnlockToken4(ERC, id, s.amountbalance, s.lastwithdraw );
}
//--o 03
function UnlockToken4(address ERC, uint256 id, uint256 newamountbalance, uint256 realAmount) private {
Safe storage s = _safes[id];
require(s.tokenAddress == ERC);
uint256 affiliateandburn = div(mul(s.amount, 12), 100) ;
uint256 maxcashback = div(mul(s.amount, 16), 100) ;
uint256 firstid = s.id;
if (cashbackcode[msg.sender] == EthereumNodes && idaddress[msg.sender][0] == firstid ) {
uint256 tokenreceived = sub(sub(sub(s.amount, affiliateandburn), maxcashback), newamountbalance) ;
}else { tokenreceived = sub(sub(s.amount, affiliateandburn), newamountbalance) ;}
s.percentagereceive = div(mul(tokenreceived, 100000000000000000000), s.amount) ;
s.tokenreceive = tokenreceived;
PayToken(s.user, s.tokenAddress, realAmount);
emit onUnlocktoken(msg.sender, s.tokenAddress, s.tokenSymbol, realAmount, Bigdata[ERC][21], now);
Airdrop(s.user, s.tokenAddress, realAmount, 2); // 1 = Hold, 2 = Unhold, 3 = Affiliate Withdraw
}
//--o Pay Token
function PayToken(address user, address tokenAddress, uint256 amount) private {
ERC20Interface token = ERC20Interface(tokenAddress);
require(token.balanceOf(address(this)) >= amount);
token.transfer(user, amount);
uint256 burn = 0;
if (Statistics[user][tokenAddress][6] > 0) { // [6] Burn
burn = Statistics[user][tokenAddress][6]; // [6] Burn
Statistics[user][tokenAddress][6] = 0; // [6] Burn
token.transfer(0x000000000000000000000000000000000000dEaD, burn);
Bigdata[tokenAddress][4] = add(Bigdata[tokenAddress][4], burn); // [4] Total Burn
Bigdata[tokenAddress][19]++; // [19] Total TX Burn
}
Bigdata[tokenAddress][3] = sub(sub(Bigdata[tokenAddress][3], amount), burn); // [3] Token Balance
Bigdata[tokenAddress][7] = add(Bigdata[tokenAddress][7], amount); // [7] All Payments
Statistics[user][tokenAddress][2] = add(Statistics[user][tokenAddress][2], amount); // [2] LifetimePayments
Bigdata[tokenAddress][11]++; // [11] Total TX Unlock
}
//-------o Function 05 - Airdrop
function Airdrop(address user, address tokenAddress, uint256 amount, uint256 divfrom) private {
uint256 divider = Holdplatform_divider[tokenAddress][divfrom];
if (Holdplatform_status[tokenAddress] == 1) {
if (Holdplatform_balance > 0 && divider > 0) {
if (Bigdata[tokenAddress][21] == 18 ) { uint256 airdrop = div(amount, divider);
} else {
uint256 difference = sub(18, Bigdata[tokenAddress][21]);
uint256 decimalmultipler = ( 10 ** difference );
uint256 decimalamount = mul(decimalmultipler, amount);
airdrop = div(decimalamount, divider);
}
address airdropaddress = Holdplatform_address;
ERC20Interface token = ERC20Interface(airdropaddress);
token.transfer(user, airdrop);
Holdplatform_balance = sub(Holdplatform_balance, airdrop);
Bigdata[tokenAddress][12]++; // [12] Total TX Airdrop
emit onReceiveAirdrop(user, airdrop, now);
}
}
}
//-------o Function 06 - Total Contribute
function GetUserSafesLength(address hodler) public view returns (uint256 length) {
return idaddress[hodler].length;
}
//-------o Function 07 - Total Affiliate
function GetTotalAffiliate(address hodler) public view returns (uint256 length) {
return afflist[hodler].length;
}
//-------o Function 08 - Get complete data from each user
function GetSafe(uint256 _id) public view
returns (uint256 id, address user, address tokenAddress, uint256 amount, uint256 endtime, uint256 tokendecimal, uint256 amountbalance, uint256 cashbackbalance, uint256 lasttime, uint256 percentage, uint256 percentagereceive, uint256 tokenreceive)
{
Safe storage s = _safes[_id];
return(s.id, s.user, s.tokenAddress, s.amount, s.endtime, s.tokendecimal, s.amountbalance, s.cashbackbalance, s.lasttime, s.percentage, s.percentagereceive, s.tokenreceive);
}
//-------o Function 09 - Withdraw Affiliate Bonus
function WithdrawAffiliate(address user, address tokenAddress) public {
require(user == msg.sender);
require(Statistics[user][tokenAddress][3] > 0 ); // [3] Affiliatevault
uint256 amount = Statistics[msg.sender][tokenAddress][3]; // [3] Affiliatevault
ERC20Interface token = ERC20Interface(tokenAddress);
require(token.balanceOf(address(this)) >= amount);
token.transfer(user, amount);
Bigdata[tokenAddress][3] = sub(Bigdata[tokenAddress][3], amount); // [3] Token Balance
Bigdata[tokenAddress][7] = add(Bigdata[tokenAddress][7], amount); // [7] All Payments
Statistics[user][tokenAddress][3] = 0; // [3] Affiliatevault
Statistics[user][tokenAddress][2] = add(Statistics[user][tokenAddress][2], amount); // [2] LifetimePayments
Bigdata[tokenAddress][13]++; // [13] Total TX Affiliate (Withdraw)
emit onAffiliateBonus(msg.sender, tokenAddress, ContractSymbol[tokenAddress], amount, Bigdata[tokenAddress][21], now);
Airdrop(user, tokenAddress, amount, 3); // 1 = Hold, 2 = Unhold, 3 = Affiliate Withdraw
}
//-------o Function 10 - Utility Fee
function Utility_fee(address tokenAddress) public {
uint256 Fee = U_amount[tokenAddress];
address pwt = U_paywithtoken[tokenAddress];
if (U_status[tokenAddress] == 0 || U_status[tokenAddress] == 2 || U_userstatus[msg.sender][tokenAddress] == 1 ) { revert(); } else {
ERC20Interface token = ERC20Interface(pwt);
require(token.transferFrom(msg.sender, address(this), Fee));
Bigdata[pwt][3] = add(Bigdata[pwt][3], Fee);
uint256 utilityvault = U_statistics[pwt][1]; // [1] Utility Vault
uint256 utilityprofit = U_statistics[pwt][2]; // [2] Utility Profit
uint256 Burn = U_statistics[pwt][3]; // [3] Utility Burn
uint256 percent50 = div(Fee, 2);
U_statistics[pwt][1] = add(utilityvault, percent50); // [1] Utility Vault
U_statistics[pwt][2] = add(utilityprofit, percent50); // [2] Utility Profit
U_statistics[pwt][3] = add(Burn, percent50); // [3] Utility Burn
U_userstatus[msg.sender][tokenAddress] = 1;
emit onUtilityfee(msg.sender, pwt, token.symbol(), U_amount[tokenAddress], Bigdata[tokenAddress][21], now);
}
}
/*==============================
= RESTRICTED =
==============================*/
//-------o 01 - Add Contract Address
function AddContractAddress(address tokenAddress, uint256 _maxcontribution, string _ContractSymbol, uint256 _PercentPermonth, uint256 _TokenDecimal) public restricted {
uint256 decimalsmultipler = ( 10 ** _TokenDecimal );
uint256 maxlimit = mul(10000000, decimalsmultipler); // >= 10,000,000 Token
require(_maxcontribution >= maxlimit);
require(_PercentPermonth >= 2 && _PercentPermonth <= 12);
Bigdata[tokenAddress][1] = _PercentPermonth; // [1] Percent (Monthly Unlocked tokens)
ContractSymbol[tokenAddress] = _ContractSymbol;
Bigdata[tokenAddress][5] = _maxcontribution; // [5] Max Contribution
uint256 _HodlingTime = mul(div(72, _PercentPermonth), 30);
uint256 HodlTime = _HodlingTime * 1 days;
Bigdata[tokenAddress][2] = HodlTime; // [2] Holding Time (in seconds)
if (Bigdata[tokenAddress][21] == 0 ) { Bigdata[tokenAddress][21] = _TokenDecimal; } // [21] Token Decimal
contractaddress[tokenAddress] = true;
emit onAddContract(msg.sender, tokenAddress, _PercentPermonth, _ContractSymbol, _maxcontribution, now);
}
//-------o 02 - Update Token Price (USD)
function TokenPrice(address tokenAddress, uint256 Currentprice, uint256 ETHprice, uint256 ATHprice, uint256 ATLprice, uint256 ICOprice, uint256 Aprice ) public restricted {
if (Currentprice > 0 ) { Bigdata[tokenAddress][14] = Currentprice; } // [14] Current Price (USD)
if (ATHprice > 0 ) { Bigdata[tokenAddress][15] = ATHprice; } // [15] All Time High (ETH)
if (ATLprice > 0 ) { Bigdata[tokenAddress][16] = ATLprice; } // [16] All Time Low (ETH)
if (ETHprice > 0 ) { Bigdata[tokenAddress][17] = ETHprice; } // [17] Current ETH Price (ETH)
if (ICOprice > 0 ) { Bigdata[tokenAddress][20] = ICOprice; } // [20] ICO Price (ETH)
if (Aprice > 0 ) { Bigdata[tokenAddress][22] = Aprice; } // [22] Additional Price
emit onTokenPrice(msg.sender, tokenAddress, Currentprice, ETHprice, ATHprice, ATLprice, ICOprice, Aprice, now);
}
//-------o 03 - Hold Platform
function Holdplatform_Airdrop(address tokenAddress, uint256 HPM_status, uint256 HPM_divider1, uint256 HPM_divider2, uint256 HPM_divider3 ) public restricted {
//require(HPM_divider1 >= 1000 && HPM_divider1 >= 1000 && HPM_divider1 >= 1000);
Holdplatform_status[tokenAddress] = HPM_status;
Holdplatform_divider[tokenAddress][1] = HPM_divider1; // [1] Hold Airdrop
Holdplatform_divider[tokenAddress][2] = HPM_divider2; // [2] Unhold Airdrop
Holdplatform_divider[tokenAddress][3] = HPM_divider3; // [3] Affiliate Airdrop
emit onHoldAirdrop(msg.sender, tokenAddress, HPM_status, HPM_divider1, HPM_divider2, HPM_divider3, now);
}
//--o Deposit
function Holdplatform_Deposit(uint256 amount) restricted public {
ERC20Interface token = ERC20Interface(Holdplatform_address);
require(token.transferFrom(msg.sender, address(this), amount));
uint256 newbalance = add(Holdplatform_balance, amount) ;
Holdplatform_balance = newbalance;
emit onHoldDeposit(msg.sender, Holdplatform_address, amount, now);
}
//--o Withdraw
function Holdplatform_Withdraw() restricted public {
ERC20Interface token = ERC20Interface(Holdplatform_address);
token.transfer(msg.sender, Holdplatform_balance);
Holdplatform_balance = 0;
emit onHoldWithdraw(msg.sender, Holdplatform_address, Holdplatform_balance, now);
}
//-------o 04 - Utility Function
//--o Utility Address
function Utility_Address(address tokenAddress) public restricted {
if (Utility_address == 0x0000000000000000000000000000000000000000) { Utility_address = tokenAddress; } else { revert(); }
// Only valid for a onetime update, cannot be changed!
}
//--o Setting
function Utility_Setting(address tokenAddress, address _U_paywithtoken, uint256 _U_amount, uint256 _U_status) public restricted {
uint256 decimal = Bigdata[_U_paywithtoken][21];
uint256 decimalmultipler = ( 10 ** decimal );
uint256 maxfee = mul(10000, decimalmultipler); // <= 10.000 Token
require(_U_amount <= maxfee );
require(_U_status == 0 || _U_status == 1 || _U_status == 2); // 0 = Disabled , 1 = Enabled, 2 = Merger with Hold
require(_U_paywithtoken != 0x0000000000000000000000000000000000000000);
require(_U_paywithtoken == tokenAddress || _U_paywithtoken == Utility_address);
U_paywithtoken[tokenAddress] = _U_paywithtoken;
U_status[tokenAddress] = _U_status;
U_amount[tokenAddress] = _U_amount;
emit onUtilitySetting(msg.sender, tokenAddress, _U_paywithtoken, _U_amount, _U_status, now);
}
//--o Status
function Utility_Status(address tokenAddress, uint256 Newstatus) public restricted {
require(Newstatus == 0 || Newstatus == 1 || Newstatus == 2);
address upwt = U_paywithtoken[tokenAddress];
require(upwt != 0x0000000000000000000000000000000000000000);
U_status[tokenAddress] = Newstatus;
emit onUtilityStatus(msg.sender, tokenAddress, U_status[tokenAddress], now);
}
//--o Burn
function Utility_Burn(address tokenAddress) public restricted {
if (U_statistics[tokenAddress][1] > 0 || U_statistics[tokenAddress][3] > 0) {
uint256 utilityamount = U_statistics[tokenAddress][1]; // [1] Utility Vault
uint256 burnamount = U_statistics[tokenAddress][3]; // [3] Utility Burn
uint256 fee = add(utilityamount, burnamount);
ERC20Interface token = ERC20Interface(tokenAddress);
require(token.balanceOf(address(this)) >= fee);
Bigdata[tokenAddress][3] = sub(Bigdata[tokenAddress][3], fee);
Bigdata[tokenAddress][7] = add(Bigdata[tokenAddress][7], fee);
token.transfer(EthereumNodes, utilityamount);
U_statistics[tokenAddress][1] = 0; // [1] Utility Vault
token.transfer(0x000000000000000000000000000000000000dEaD, burnamount);
Bigdata[tokenAddress][4] = add(burnamount, Bigdata[tokenAddress][4]); // [4] Total Burn
U_statistics[tokenAddress][3] = 0;
emit onUtilityBurn(msg.sender, tokenAddress, utilityamount, burnamount, now);
}
}
/*==============================
= SAFE MATH FUNCTIONS =
==============================*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0);
uint256 c = a / b;
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a);
uint256 c = a - b;
return c;
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
}
/*==============================
= ERC20 Interface =
==============================*/
contract ERC20Interface {
uint256 public totalSupply;
uint256 public decimals;
function symbol() public view returns (string);
function balanceOf(address _owner) public view returns (uint256 balance);
function transfer(address _to, uint256 _value) public returns (bool success);
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
function approve(address _spender, uint256 _value) public returns (bool success);
function allowance(address _owner, address _spender) public view returns (uint256 remaining);
event Transfer(address indexed _from, address indexed _to, uint256 _value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
Read Contract
Bigdata 0x1d1f7578 → uint256
ContractSymbol 0x11d2c211 → string
GetEthereumNodes 0x31b78a92 → address
GetSafe 0x47f849cd → uint256, address, address, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256
GetTotalAffiliate 0x05a2dd26 → uint256
GetUserSafesLength 0xd9d61a10 → uint256
Holdplatform_address 0x95006c30 → address
Holdplatform_balance 0x90077103 → uint256
Holdplatform_divider 0xf4436293 → uint256
Holdplatform_status 0xec80571b → uint256
Statistics 0x27a02110 → uint256
TotalUser 0xdaca1663 → uint256
U_amount 0x6f043253 → uint256
U_paywithtoken 0xa19e4f03 → address
U_statistics 0x32fdfda8 → uint256
U_status 0x7570bff8 → uint256
U_userstatus 0x4de44e44 → uint256
Utility_address 0xeb418e38 → address
afflist 0x7028b6a3 → address
cashbackcode 0x56b71f71 → address
contractaddress 0x4eeaa212 → bool
idaddress 0x4b698aff → uint256
starttime 0xda5b7385 → uint256
Write Contract 15 functions
These functions modify contract state and require a wallet transaction to execute.
AddContractAddress 0x76b1459d
address tokenAddress
uint256 _maxcontribution
string _ContractSymbol
uint256 _PercentPermonth
uint256 _TokenDecimal
CashbackCode 0x5df1539c
address _cashbackcode
Holdplatform 0x4d6ac6a1
address tokenAddress
uint256 amount
Holdplatform_Airdrop 0xdbd4053a
address tokenAddress
uint256 HPM_status
uint256 HPM_divider1
uint256 HPM_divider2
uint256 HPM_divider3
Holdplatform_Deposit 0xbe37ec11
uint256 amount
Holdplatform_Withdraw 0xe59e09ca
No parameters
TokenPrice 0x21ded99b
address tokenAddress
uint256 Currentprice
uint256 ETHprice
uint256 ATHprice
uint256 ATLprice
uint256 ICOprice
uint256 Aprice
Unlocktoken 0x2ea57923
address tokenAddress
uint256 id
Utility_Address 0xf5f40e4b
address tokenAddress
Utility_Burn 0xdde17cc5
address tokenAddress
Utility_Setting 0xe3d37265
address tokenAddress
address _U_paywithtoken
uint256 _U_amount
uint256 _U_status
Utility_Status 0xe679c4a9
address tokenAddress
uint256 Newstatus
Utility_fee 0x2be30d0a
address tokenAddress
WithdrawAffiliate 0x38da63d8
address user
address tokenAddress
tothemoon 0x8adf5db5
No parameters
Recent Transactions
No transactions found for this address