In this case, the conflict between Dr. Doe (Doe) and the pharmaceutical company was involved. Dr. Doe is a very intelligent scientist. He used the Nobel Prize to evaluate his work in the development of high efficiency drugs to prevent colds. Giant Drug Company is interested in adopting Doe. The company 's president Stein negotiated on sales of new drugs with Doe. However, competitors MARK Drugs intends to hire Doe, and since then the case is controversial.
We understand the background of contract analysis quickly. The contract involves the sender, the receiver, and the agreed arbitrator. The sender uses a certain number of Ethernet initialization contracts to specify recipients, arbitrators, and expiration dates. If either party (sender, recipient, or arbitrator) confirms the payment via the verification function, the funds will be paid to the recipient. If no confirmation is made twice before the expiration date, the sender can cancel the escrow contract and withdraw its funds via invalid function call.
The EternalStorage contract is used to read and write various types of stored values. Each organization contract has an instance of EternalStorage, and it should only be able to write it. In this case, the owner of EternalStorage should be a contract (organization), not a user. Since all business rules for data are abstracted, it is not desirable for users to interact directly with the store. Let's extend the above simple example to cover sample scenarios for creating and managing organizations using parent contracts. Also, in order to make the contract easier, I would like to remove the contractual dependence of the organization on EternalStorage. For this purpose we delegated the role to create EternalStorage and Organization to the Parent contract. Both were created using the Parent.createOrganization (bytes32) function.
The side effect of this separation is that the parent contract can not instantiate the organization contract. The owner or administrator of the contract is responsible for instantiating the organization and registering or upgrading the organization using the parent. This seems to be a fair trade-off between the advantages it offers - transparent scalability and low gas demand per piece.
Since the new organization instance has the same blueprint as the original organization, the "upgrade ordering" function does not work. Since the bytecode of the organization contract is expanded with the parent contract, the parent contract recognizes only a specific implementation of the organization contract. In other words, in order to upgrade the contract, you also need to upgrade the parent contract. In the implementation above, the parent contract is not upgradeable, but it can also be easily implemented by storing the organization map in EternalStorage. When you redeploy the parent contract, obviously the contract address the user interacts with changes. Therefore, this upgrade is opaque to users.