user5844: I'm thinking about making a parameterised contract between two users. User A can be anyone i.e. any customer, But User B should always be the company. I want to make it so that the validator only validates if the Company signs the contract. How do I do this?
Also, How would both signatures be sent to the contract, without making it easy for somebody to fake the signature of the company?

user1130: So, at a high level, you can't make any restrictions on who can create a script, or submit datums to a script address. You can only put restrictions on who can "spend" datum utxos at the script address.
So, one solution is you specify a token that needs to be attached to the datum for it to be spent. That token's minting policy requires the minter to be User B.
User B can create an active instance of the script by submitting a datum attached to the token only she can create. This would essentially be the same as signing the contract, as User B would need to sign the tx that created that token.
The script will only allow User A and User B to spend that datum and make state changes if the "signing" token exists on the UTxO.

5844: <p>I'm thinking about making a parameterised contract between two users. User A can be anyone i.e. any customer, But User B should always be the company. I want to make it so that the validator only validates if the Company signs the contract. How do I do this?</p>
<p>Also, How would both signatures be sent to the contract, without making it easy for somebody to fake the signature of the company?</p>
 1130: <p>So, at a high level, you can't make any restrictions on who can create a script, or submit datums to a script address. You can only put restrictions on who can &quot;spend&quot; datum utxos at the script address.</p>
<p>So, one solution is you specify a token that needs to be attached to the datum for it to be spent. That token's minting policy requires the minter to be User B.</p>
<p>User B can create an active instance of the script by submitting a datum attached to the token only she can create. This would essentially be the same as signing the contract, as User B would need to sign the tx that created that token.</p>
<p>The script will only allow User A and User B to spend that datum and make state changes if the &quot;signing&quot; token exists on the UTxO.</p>
