Beispiel #1
0
def run(ctx):
    ctx.assert_scenario_ran('proposal')
    daily_limit_in_ether = 5
    pay_reward_amount = 10
    bytecode = calculate_bytecode('setDailyWithdrawLimit', ('uint256', to_wei(daily_limit_in_ether)))
    ctx.create_js_file(substitutions={
        "dao_abi": ctx.dao_abi,
        "dao_address": ctx.dao_addr,
        "offer_abi": ctx.offer_abi,
        "offer_address": ctx.offer_addr,
        "proposal_deposit": ctx.args.proposal_deposit,
        "pay_reward_amount": pay_reward_amount,
        "transaction_bytecode": bytecode,
        "debating_period": ctx.args.proposal_debate_seconds,
    })
    print(
        "Notice: Debate period is {} seconds so the test will wait "
        "as much".format(ctx.args.proposal_debate_seconds)
    )

    ctx.execute(expected={
        "offer_daily_withdraw_limit": daily_limit_in_ether,
        "contractor_diff": daily_limit_in_ether,
        "dao_rewardaccount_diff": pay_reward_amount,
        "sample_offer_no_donations": True
    })
Beispiel #2
0
def run(ctx):
    ctx.assert_scenario_ran('proposal')
    daily_limit_in_ether = 5
    pay_reward_amount = 10
    bytecode = calculate_bytecode('setDailyWithdrawLimit',
                                  ('uint256', to_wei(daily_limit_in_ether)))
    ctx.create_js_file(
        substitutions={
            "dao_abi": ctx.dao_abi,
            "dao_address": ctx.dao_addr,
            "offer_abi": ctx.offer_abi,
            "offer_address": ctx.offer_addr,
            "proposal_deposit": ctx.args.proposal_deposit,
            "pay_reward_amount": pay_reward_amount,
            "transaction_bytecode": bytecode,
            "debating_period": ctx.args.proposal_debate_seconds,
        })
    print("Notice: Debate period is {} seconds so the test will wait "
          "as much".format(ctx.args.proposal_debate_seconds))

    ctx.execute(
        expected={
            "offer_daily_withdraw_limit": daily_limit_in_ether,
            "contractor_diff": daily_limit_in_ether,
            "dao_rewardaccount_diff": pay_reward_amount,
            "sample_offer_no_donations": True
        })
Beispiel #3
0
def run(ctx):
    ctx.assert_scenario_ran('spendall')
    attacker_address = ctx.accounts[3]
    bytecode = calculate_bytecode('payOut', ('address', attacker_address),
                                  ('uint256', to_wei(5)))
    ctx.create_js_file(
        substitutions={
            "dao_abi": ctx.dao_abi,
            "dao_address": ctx.dao_address,
            "attacker_address": attacker_address,
            "proposal_deposit": ctx.args.proposal_deposit,
            "debating_period": ctx.args.proposal_debate_seconds,
            "transaction_bytecode": bytecode
        })

    ctx.execute(expected={"extra_balance_diff_after_attack": 0})
Beispiel #4
0
def run(ctx):
    ctx.assert_scenario_ran('fuel')
    extra_balance_ether_to_get = 5
    bytecode = calculate_bytecode(
        'payOut', ('address', ctx.dao_addr),
        ('uint256', to_wei(extra_balance_ether_to_get)))
    ctx.create_js_file(
        substitutions={
            "dao_abi": ctx.dao_abi,
            "dao_address": ctx.dao_addr,
            "proposal_deposit": ctx.args.proposal_deposit,
            "debating_period": ctx.args.proposal_debate_seconds,
            "transaction_bytecode": bytecode
        })

    ctx.execute(
        expected={"dao_balance_diff_after_claim": extra_balance_ether_to_get})
Beispiel #5
0
def run(ctx):
    ctx.assert_scenario_ran('spendall')
    extra_balance_ether_to_get = 5
    bytecode = calculate_bytecode(
        'payOut',
        ('address', ctx.dao_address),
        ('uint256', to_wei(extra_balance_ether_to_get))
    )
    ctx.create_js_file(substitutions={
        "dao_abi": ctx.dao_abi,
        "dao_address": ctx.dao_address,
        "proposal_deposit": ctx.args.proposal_deposit,
        "debating_period": ctx.args.proposal_debate_seconds,
        "transaction_bytecode": bytecode
    })

    ctx.execute(expected={
        "dao_balance_diff_after_claim": extra_balance_ether_to_get
    })
Beispiel #6
0
def run(ctx):
    ctx.assert_scenario_ran('spendall')
    attacker_address = ctx.accounts[3]
    bytecode = calculate_bytecode(
        'payOut',
        ('address', attacker_address),
        ('uint256', to_wei(5))
    )
    ctx.create_js_file(substitutions={
        "dao_abi": ctx.dao_abi,
        "dao_address": ctx.dao_addr,
        "attacker_address": attacker_address,
        "proposal_deposit": ctx.args.proposal_deposit,
        "debating_period": ctx.args.proposal_debate_seconds,
        "transaction_bytecode": bytecode
    })

    ctx.execute(expected={
        "extra_balance_diff_after_attack": 0
    })
Beispiel #7
0
def run(ctx):
    ctx.assert_scenario_ran('proposal')
    bytecode = calculate_bytecode('payOneTimeReward')
    ctx.create_js_file(substitutions={
        "dao_abi": ctx.dao_abi,
        "dao_address": ctx.dao_addr,
        "offer_abi": ctx.offer_abi,
        "offer_address": ctx.offer_addr,
        "proposal_deposit": ctx.args.proposal_deposit,
        "transaction_bytecode": bytecode,
        "debating_period": ctx.args.proposal_debate_seconds,
    })
    print(
        "Notice: Debate period is {} seconds so the test will wait "
        "as much".format(ctx.args.proposal_debate_seconds)
    )

    ctx.execute(expected={
        # Nothing should make it to the reward account
        "dao_rewardaccount_diff": 0,
        # The DAO keeps the proposal deposit
        "dao_balance_diff": to_wei(ctx.args.proposal_deposit)
    })