Skip to content

Commit

Permalink
Fixed mass conservation and created minter burner bridge (Consensys#25)
Browse files Browse the repository at this point in the history
Resolved an issue linking the ERC 20 Mass Conversion Bridges together.
Created an ERC 20 Minter Burner Bridge.
  • Loading branch information
drinkcoffee authored Oct 7, 2021
1 parent fc17977 commit a51fe2d
Show file tree
Hide file tree
Showing 69 changed files with 1,767 additions and 159 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ of the protocol stack.
<a href="https://github.com/ConsenSys/gpact/tree/main/application/gpact-examples/write">Write across chains</a><br>
</td>
<td rowspan="2">Examples:
<a href="https://github.com/ConsenSys/gpact/tree/main/application/sfc-examples/tokenbridge">ERC 20 Token Bridge</a><br>
<a href="https://github.com/ConsenSys/gpact/tree/main/application/sfc-examples/write">Write across chains</a><br>
</td>
</tr>
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
*/
@SuppressWarnings("rawtypes")
public class MockCbcForERC20Test extends Contract {
public static final String BINARY = "608060405234801561001057600080fd5b5061031b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806339ce107e146100675780637bf37a091461007c57806392b2c33514610092578063b4c3b756146100a6578063bd682e45146100b8578063ef3adc4a146100c0575b600080fd5b61007a6100753660046101e4565b6100d3565b005b6000546040519081526020015b60405180910390f35b61007a6100a036600461021f565b50505050565b60005460405190158152602001610089565b61007a610180565b61007a6100ce366004610206565b600055565b60005b60015481101561012e57816001600160a01b0316600182815481106100fd576100fd6102cf565b6000918252602090912001546001600160a01b0316141561011c575050565b80610126816102a6565b9150506100d6565b506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0392909216919091179055565b61018c6001600061018e565b565b50805460008255906000526020600020908101906101ac91906101af565b50565b5b808211156101c457600081556001016101b0565b5090565b80356001600160a01b03811681146101df57600080fd5b919050565b6000602082840312156101f657600080fd5b6101ff826101c8565b9392505050565b60006020828403121561021857600080fd5b5035919050565b6000806000806060858703121561023557600080fd5b84359350610245602086016101c8565b9250604085013567ffffffffffffffff8082111561026257600080fd5b818701915087601f83011261027657600080fd5b81358181111561028557600080fd5b88602082850101111561029757600080fd5b95989497505060200194505050565b60006000198214156102c857634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220fa00f13d6bb3d39aba2116e7fc45fa4405b080c38b6302f6e9c2ff29682dead264736f6c63430008050033";
public static final String BINARY = "608060405234801561001057600080fd5b5061031b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806339ce107e146100675780637bf37a091461007c57806392b2c33514610092578063b4c3b756146100a6578063bd682e45146100b8578063ef3adc4a146100c0575b600080fd5b61007a6100753660046101e4565b6100d3565b005b6000546040519081526020015b60405180910390f35b61007a6100a0366004610206565b50505050565b60005460405190158152602001610089565b61007a610180565b61007a6100ce36600461028d565b600055565b60005b60015481101561012e57816001600160a01b0316600182815481106100fd576100fd6102a6565b6000918252602090912001546001600160a01b0316141561011c575050565b80610126816102bc565b9150506100d6565b506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0392909216919091179055565b61018c6001600061018e565b565b50805460008255906000526020600020908101906101ac91906101af565b50565b5b808211156101c457600081556001016101b0565b5090565b80356001600160a01b03811681146101df57600080fd5b919050565b6000602082840312156101f657600080fd5b6101ff826101c8565b9392505050565b6000806000806060858703121561021c57600080fd5b8435935061022c602086016101c8565b9250604085013567ffffffffffffffff8082111561024957600080fd5b818701915087601f83011261025d57600080fd5b81358181111561026c57600080fd5b88602082850101111561027e57600080fd5b95989497505060200194505050565b60006020828403121561029f57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156102de57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220306679448ddbe71dd38f8331e145a41020a841d731ae6b4ad601859bb5553a2d64736f6c63430008090033";

public static final String FUNC_ADDTOLISTOFLOCKEDCONTRACTS = "addToListOfLockedContracts";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
*/
@SuppressWarnings("rawtypes")
public class MockCbcForLockableStorageTest extends Contract {
public static final String BINARY = "608060405234801561001057600080fd5b50610267806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806339ce107e1461005c5780637bf37a0914610071578063b4c3b75614610087578063bd682e4514610099578063ef3adc4a146100a1575b600080fd5b61006f61006a3660046101a9565b6100b4565b005b6000546040519081526020015b60405180910390f35b6000546040519015815260200161007e565b61006f610161565b61006f6100af3660046101d9565b600055565b60005b60015481101561010f57816001600160a01b0316600182815481106100de576100de61021b565b6000918252602090912001546001600160a01b031614156100fd575050565b80610107816101f2565b9150506100b7565b506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0392909216919091179055565b61016d6001600061016f565b565b508054600082559060005260206000209081019061018d9190610190565b50565b5b808211156101a55760008155600101610191565b5090565b6000602082840312156101bb57600080fd5b81356001600160a01b03811681146101d257600080fd5b9392505050565b6000602082840312156101eb57600080fd5b5035919050565b600060001982141561021457634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fdfea264697066735822122060633bddca026db04ed1428eb0bb1cc543d2c50680970368bc49d9337592b18e64736f6c63430008050033";
public static final String BINARY = "608060405234801561001057600080fd5b50610267806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806339ce107e1461005c5780637bf37a0914610071578063b4c3b75614610087578063bd682e4514610099578063ef3adc4a146100a1575b600080fd5b61006f61006a3660046101a9565b6100b4565b005b6000546040519081526020015b60405180910390f35b6000546040519015815260200161007e565b61006f610161565b61006f6100af3660046101d9565b600055565b60005b60015481101561010f57816001600160a01b0316600182815481106100de576100de6101f2565b6000918252602090912001546001600160a01b031614156100fd575050565b8061010781610208565b9150506100b7565b506001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b0392909216919091179055565b61016d6001600061016f565b565b508054600082559060005260206000209081019061018d9190610190565b50565b5b808211156101a55760008155600101610191565b5090565b6000602082840312156101bb57600080fd5b81356001600160a01b03811681146101d257600080fd5b9392505050565b6000602082840312156101eb57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561022a57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212209bf0aac1133c8f33c8fc0ab967718aff2d96137b46622d369e167d690661dfaf64736f6c63430008090033";

public static final String FUNC_ADDTOLISTOFLOCKEDCONTRACTS = "addToListOfLockedContracts";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
*/
@SuppressWarnings("rawtypes")
public class TestLockableStorageWrapper extends Contract {
public static final String BINARY = "608060405234801561001057600080fd5b50604051610be1380380610be183398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610b4e806100936000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063d4382bbe116100a2578063e97d082011610071578063e97d082014610219578063ee0a43d71461022c578063f6aacfb11461023f578063f9bb6dd214610261578063fb91385f1461027457600080fd5b8063d4382bbe146101cd578063e0091dbc146101e0578063e181aece146101f3578063e50f4b5d1461020657600080fd5b80637ad304ae116100de5780637ad304ae146101815780637ba448481461019457806399eb5d4c146101a7578063a537ea9b146101ba57600080fd5b8063317c0b2914610110578063415dba001461013657806375bb3c2a14610149578063787507771461015e575b600080fd5b61012361011e366004610a54565b61029a565b6040519081526020015b60405180910390f35b610123610144366004610a54565b6102ad565b61015c610157366004610a28565b6102b9565b005b61017161016c3660046109d3565b6102c7565b604051901515815260200161012d565b61015c61018f366004610a76565b6102d8565b61015c6101a2366004610a54565b6102e8565b61015c6101b5366004610990565b6102f2565b6101236101c83660046109d3565b6103a2565b61015c6101db366004610a54565b6103ad565b61015c6101ee366004610a76565b6103b7565b61015c6102013660046109d3565b6103c2565b6101236102143660046109d3565b6103ce565b6101236102273660046109d3565b6103d9565b61012361023a3660046109d3565b6103ed565b61017161024d3660046109d3565b600090815260026020526040902054151590565b61015c61026f3660046109ec565b6103f8565b6102826101c83660046109d3565b6040516001600160a01b03909116815260200161012d565b60006102a68383610402565b9392505050565b60006102a683836104a4565b6102c382826104ef565b5050565b60006102d28261050a565b92915050565b6102e383838361052b565b505050565b6102c38282610563565b60005b60008281526003602052604090205481101561038a57600082815260036020526040812080548390811061032b5761032b610b02565b9060005260206000200154905083156103695760008181526002602052604090205461035990600190610aba565b6000828152600160205260409020555b6000908152600260205260408120558061038281610ad1565b9150506102f5565b5060008181526003602052604081206102c391610949565b60006102d2826103ce565b6102c382826105c1565b6102e3838383610754565b6103cb816107e9565b50565b60006102d282610898565b6000818152600160205260408120546102d2565b60006102d282610907565b6102c38282610936565b60008061040e84610898565b905082811161045a5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b60008460405160200161046f91815260200190565b60408051601f198184030181529190528051602090910120905061049b6104968583610aa2565b610898565b95945050505050565b60008083836040516020016104c3929190918252602082015260400190565b6040516020818303038152906040528051906020012090506104e78160001c610898565b949350505050565b6102c382826104ff576000610502565b60015b60ff166105c1565b600061051582610898565b6001146105235760006102d2565b600192915050565b6040805160208082018690528183018590528251808303840181526060909201909252805191012061055d81836105c1565b50505050565b600061056e83610898565b905060008360405160200161058591815260200190565b60408051601f19818403018152919052805160209091012090506105b26105ac8383610aa2565b846105c1565b61055d846105c1846001610aa2565b600082815260026020526040902054156106145760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610451565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561066357600080fd5b505afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b91906109ba565b9050806106b5575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156106fa57600080fd5b505af115801561070e573d6000803e3d6000fd5b505050600082815260036020908152604082208054600181810183559184529190922001859055610740915083610aa2565b600084815260026020526040902055505050565b600061075f84610898565b90508083106107a65760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610451565b6000846040516020016107bb91815260200190565b60408051601f19818403018152919052805160209091012090506107e26105ac8583610aa2565b5050505050565b60006107f482610898565b9050600081116108465760405162461bcd60e51b815260206004820152601e60248201527f506f702063616c6c6564206f6e7a65726f206c656e67746820617272617900006044820152606401610451565b60008260405160200161085b91815260200190565b60408051601f19818403018152919052805160209091012090506108896108828383610aa2565b60006105c1565b6102e3836105c1600185610aba565b600081815260026020526040812054156108f45760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610451565b5060009081526001602052604090205490565b600081815260026020526040812054156108f4576000828152600260205260409020546102d290600190610aba565b6102c382826001600160a01b03166105c1565b50805460008255906000526020600020908101906103cb91905b808211156109775760008155600101610963565b5090565b8035801515811461098b57600080fd5b919050565b600080604083850312156109a357600080fd5b6109ac8361097b565b946020939093013593505050565b6000602082840312156109cc57600080fd5b5051919050565b6000602082840312156109e557600080fd5b5035919050565b600080604083850312156109ff57600080fd5b8235915060208301356001600160a01b0381168114610a1d57600080fd5b809150509250929050565b60008060408385031215610a3b57600080fd5b82359150610a4b6020840161097b565b90509250929050565b60008060408385031215610a6757600080fd5b50508035926020909101359150565b600080600060608486031215610a8b57600080fd5b505081359360208301359350604090920135919050565b60008219821115610ab557610ab5610aec565b500190565b600082821015610acc57610acc610aec565b500390565b6000600019821415610ae557610ae5610aec565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220177e96657d39a8cd68fcf2c87daeb4111ab70f933f49a2de119a7c0b479bf17a64736f6c63430008050033";
public static final String BINARY = "608060405234801561001057600080fd5b50604051610be1380380610be183398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610b4e806100936000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063d4382bbe116100a2578063e97d082011610071578063e97d082014610219578063ee0a43d71461022c578063f6aacfb11461023f578063f9bb6dd214610261578063fb91385f1461027457600080fd5b8063d4382bbe146101cd578063e0091dbc146101e0578063e181aece146101f3578063e50f4b5d1461020657600080fd5b80637ad304ae116100de5780637ad304ae146101815780637ba448481461019457806399eb5d4c146101a7578063a537ea9b146101ba57600080fd5b8063317c0b2914610110578063415dba001461013657806375bb3c2a14610149578063787507771461015e575b600080fd5b61012361011e36600461097b565b61029a565b6040519081526020015b60405180910390f35b61012361014436600461097b565b6102ad565b61015c6101573660046109b2565b6102b9565b005b61017161016c3660046109de565b6102c7565b604051901515815260200161012d565b61015c61018f3660046109f7565b6102d8565b61015c6101a236600461097b565b6102e8565b61015c6101b5366004610a23565b6102f2565b6101236101c83660046109de565b6103a2565b61015c6101db36600461097b565b6103ad565b61015c6101ee3660046109f7565b6103b7565b61015c6102013660046109de565b6103c2565b6101236102143660046109de565b6103ce565b6101236102273660046109de565b6103d9565b61012361023a3660046109de565b6103ed565b61017161024d3660046109de565b600090815260026020526040902054151590565b61015c61026f366004610a4d565b6103f8565b6102826101c83660046109de565b6040516001600160a01b03909116815260200161012d565b60006102a68383610402565b9392505050565b60006102a683836104a4565b6102c382826104ef565b5050565b60006102d28261050a565b92915050565b6102e383838361052b565b505050565b6102c38282610563565b60005b60008281526003602052604090205481101561038a57600082815260036020526040812080548390811061032b5761032b610a89565b9060005260206000200154905083156103695760008181526002602052604090205461035990600190610ab5565b6000828152600160205260409020555b6000908152600260205260408120558061038281610acc565b9150506102f5565b5060008181526003602052604081206102c391610949565b60006102d2826103ce565b6102c382826105c1565b6102e3838383610754565b6103cb816107e9565b50565b60006102d282610898565b6000818152600160205260408120546102d2565b60006102d282610907565b6102c38282610936565b60008061040e84610898565b905082811161045a5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b60008460405160200161046f91815260200190565b60408051601f198184030181529190528051602090910120905061049b6104968583610ae7565b610898565b95945050505050565b60008083836040516020016104c3929190918252602082015260400190565b6040516020818303038152906040528051906020012090506104e78160001c610898565b949350505050565b6102c382826104ff576000610502565b60015b60ff166105c1565b600061051582610898565b6001146105235760006102d2565b600192915050565b6040805160208082018690528183018590528251808303840181526060909201909252805191012061055d81836105c1565b50505050565b600061056e83610898565b905060008360405160200161058591815260200190565b60408051601f19818403018152919052805160209091012090506105b26105ac8383610ae7565b846105c1565b61055d846105c1846001610ae7565b600082815260026020526040902054156106145760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5d195b481b1bd8dad95960621b6044820152606401610451565b60008060009054906101000a90046001600160a01b03166001600160a01b0316637bf37a096040518163ffffffff1660e01b815260040160206040518083038186803b15801561066357600080fd5b505afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b9190610aff565b9050806106b5575060009182526001602052604090912055565b600054604051631ce7083f60e11b81523060048201526001600160a01b03909116906339ce107e90602401600060405180830381600087803b1580156106fa57600080fd5b505af115801561070e573d6000803e3d6000fd5b505050600082815260036020908152604082208054600181810183559184529190922001859055610740915083610ae7565b600084815260026020526040902055505050565b600061075f84610898565b90508083106107a65760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610451565b6000846040516020016107bb91815260200190565b60408051601f19818403018152919052805160209091012090506107e26105ac8583610ae7565b5050505050565b60006107f482610898565b9050600081116108465760405162461bcd60e51b815260206004820152601e60248201527f506f702063616c6c6564206f6e7a65726f206c656e67746820617272617900006044820152606401610451565b60008260405160200161085b91815260200190565b60408051601f19818403018152919052805160209091012090506108896108828383610ae7565b60006105c1565b6102e3836105c1600185610ab5565b600081815260026020526040812054156108f45760405162461bcd60e51b815260206004820152601f60248201527f52656164207768696c6520636f6e7472616374206974656d206c6f636b6564006044820152606401610451565b5060009081526001602052604090205490565b600081815260026020526040812054156108f4576000828152600260205260409020546102d290600190610ab5565b6102c382826001600160a01b03166105c1565b50805460008255906000526020600020908101906103cb91905b808211156109775760008155600101610963565b5090565b6000806040838503121561098e57600080fd5b50508035926020909101359150565b803580151581146109ad57600080fd5b919050565b600080604083850312156109c557600080fd5b823591506109d56020840161099d565b90509250929050565b6000602082840312156109f057600080fd5b5035919050565b600080600060608486031215610a0c57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215610a3657600080fd5b610a3f8361099d565b946020939093013593505050565b60008060408385031215610a6057600080fd5b8235915060208301356001600160a01b0381168114610a7e57600080fd5b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610ac757610ac7610a9f565b500390565b6000600019821415610ae057610ae0610a9f565b5060010190565b60008219821115610afa57610afa610a9f565b500190565b600060208284031215610b1157600080fd5b505191905056fea2646970667358221220adf198b4b69156b83bdb7fb7a028d2eba1bc68ab88ff79d63c90f0f0e08df1e264736f6c63430008090033";

public static final String FUNC_FINALISE = "finalise";

Expand Down
Loading

0 comments on commit a51fe2d

Please sign in to comment.