0

I am trying to make the funds withdrawn from 3 accounts automatically after a certain event. I am unable to fix this error from the Remix IDE. Please can someone let me know what am I doing wrong... The function is payable

Member "value" not found or not visible after argument dependent look up in the function address. Did you forget the "payable" modifier

function SignTermsAndConditions() OnlySender_Receiver_Transporter{
    if(msg.sender == sender){
        require(state == contractState.waitingForVerificationbySender);
        SignedBy("Terms and Conditiond verified : ", msg.sender);
        state = contractState.waitingForVerificationbyTransporter;
    }else if(msg.sender == transporter)
    {
        require(state == contractState.waitingForVerificationbyTransporter);
        SignedBy("Terms and Conditiond verified : ", msg.sender);
        state = contractState.waitingForVerificationbyReceiver;
    }
    else if(msg.sender == receiver){
        require(state == contractState.waitingForVerificationbyReceiver);
        SignedBy("Terms and Conditiond verified : ", msg.sender);
        state = contractState.DoneVerificationofTerms;
        POD_PhysicalItems.withdrawAgreedUponCollateral.value(2*itemPrice)(sender);
        POD_PhysicalItems.withdrawAgreedUponCollateral.value(2*itemPrice)(transporter);
        POD_PhysicalItems.withdrawAgreedUponCollateral.value(2*itemPrice)(receiver);
    }
}

function withdrawAgreedUponCollateral(address entityAddress) payable internal  {
    require(state == contractState.DoneVerificationofTerms);
    collateralWithdrawnSuccessfully("Double deposit is withdrawn successfully from: ", entityAddress);

}
2
  • How POD_PhysicalItems is declared? Is it a contract?
    – Ismael
    Mar 17, 2018 at 1:03
  • yes it is the name of the contract
    – Haya Raed
    Mar 17, 2018 at 10:33

1 Answer 1

1

You cannot make a call to contract class, you need a contract instance.

POD_PhysicalItems physicalItems = POD_PhysicalItems(physicalItemmsAddress);
physicalItems.withdrawAgreedUponCollateral.value(2*itemPrice)(sender);

Where physicalItemmsAddress is the address of the deployed POD_PhysicalItems contract.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.