gn-contracts 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  2. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  3. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  4. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.dbg.json +1 -1
  5. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  6. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  7. package/artifacts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol/AccessControlUpgradeable.dbg.json +1 -1
  8. package/artifacts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol/IAccessControlUpgradeable.dbg.json +1 -1
  9. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +1 -1
  10. package/artifacts/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol/IERC1967Upgradeable.dbg.json +1 -1
  11. package/artifacts/@openzeppelin/contracts-upgradeable/interfaces/IERC4906Upgradeable.sol/IERC4906Upgradeable.dbg.json +1 -1
  12. package/artifacts/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable.dbg.json +1 -1
  13. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol/ERC1967UpgradeUpgradeable.dbg.json +1 -1
  14. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol/IBeaconUpgradeable.dbg.json +1 -1
  15. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +1 -1
  16. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol/UUPSUpgradeable.dbg.json +1 -1
  17. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +1 -1
  18. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol/ERC721Upgradeable.dbg.json +1 -1
  19. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol/IERC721ReceiverUpgradeable.dbg.json +1 -1
  20. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol/IERC721Upgradeable.dbg.json +1 -1
  21. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol/ERC721EnumerableUpgradeable.dbg.json +1 -1
  22. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol/ERC721URIStorageUpgradeable.dbg.json +1 -1
  23. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721EnumerableUpgradeable.sol/IERC721EnumerableUpgradeable.dbg.json +1 -1
  24. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol/IERC721MetadataUpgradeable.dbg.json +1 -1
  25. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +1 -1
  26. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +1 -1
  27. package/artifacts/@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol/CountersUpgradeable.dbg.json +1 -1
  28. package/artifacts/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol/StorageSlotUpgradeable.dbg.json +1 -1
  29. package/artifacts/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol/StringsUpgradeable.dbg.json +1 -1
  30. package/artifacts/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol/ERC165Upgradeable.dbg.json +1 -1
  31. package/artifacts/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol/IERC165Upgradeable.dbg.json +1 -1
  32. package/artifacts/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol/MathUpgradeable.dbg.json +1 -1
  33. package/artifacts/@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol/SignedMathUpgradeable.dbg.json +1 -1
  34. package/artifacts/build-info/{44138e8f5cba15b8d9fb0b0302f6f9cc.json → 2d4101b570c863b434c3c767ac2c8f31.json} +1 -1
  35. package/artifacts/contracts/CROWD.sol/CROWD.dbg.json +1 -1
  36. package/artifacts/contracts/CUSDT.sol/CUSDT.dbg.json +1 -1
  37. package/artifacts/contracts/NFT.sol/NFT.dbg.json +1 -1
  38. package/artifacts/contracts/NFT.sol/NFT.json +2 -2
  39. package/artifacts/contracts/NFTFounder.sol/NFTFounder.dbg.json +1 -1
  40. package/artifacts/contracts/NFTFounder.sol/NFTFounder.json +2 -2
  41. package/artifacts/contracts/NFTGenesis.sol/NFTGenesis.dbg.json +1 -1
  42. package/artifacts/contracts/NFTGenesis.sol/NFTGenesis.json +40 -2
  43. package/artifacts/contracts/Network.sol/Network.dbg.json +1 -1
  44. package/artifacts/contracts/Network.sol/Network.json +2 -2
  45. package/artifacts/contracts/Swap.sol/Swap.dbg.json +1 -1
  46. package/artifacts/contracts/Swap.sol/Swap.json +28 -2
  47. package/artifacts/contracts/USDT.sol/USDT.dbg.json +1 -1
  48. package/artifacts/contracts/USDT.sol/USDT.json +2 -2
  49. package/artifacts/contracts/lib/AccessControl.sol/AccessControl.dbg.json +1 -1
  50. package/artifacts/contracts/lib/NFTGetter.sol/NFTGetter.dbg.json +1 -1
  51. package/artifacts/contracts/lib/NFTHelpers.sol/NFTHelpers.dbg.json +1 -1
  52. package/artifacts/contracts/lib/ValhallaBlackList.sol/ValhallaBlackList.dbg.json +1 -1
  53. package/artifacts/contracts/lib/ValhallaPool.sol/ValhallaPool.dbg.json +1 -1
  54. package/contracts/NFTGenesis.sol +15 -9
  55. package/contracts/Swap.sol +57 -33
  56. package/contracts/USDT.sol +1 -1
  57. package/package.json +1 -1
  58. package/typechain-types/contracts/NFTGenesis.ts +61 -0
  59. package/typechain-types/contracts/Swap.ts +70 -0
  60. package/typechain-types/factories/contracts/NFTFounder__factory.ts +1 -1
  61. package/typechain-types/factories/contracts/NFTGenesis__factory.ts +39 -1
  62. package/typechain-types/factories/contracts/NFT__factory.ts +1 -1
  63. package/typechain-types/factories/contracts/Network__factory.ts +1 -1
  64. package/typechain-types/factories/contracts/Swap__factory.ts +27 -1
  65. package/typechain-types/factories/contracts/USDT__factory.ts +1 -1
@@ -406,8 +406,8 @@
406
406
  "type": "function"
407
407
  }
408
408
  ],
409
- "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280601481526020017f556e697465642053746174657320446f6c6c6172000000000000000000000000815250604051806040016040528060048152602001631554d11560e21b815250816003908162000076919062000283565b50600462000085828262000283565b505050620000a26200009c620000be60201b60201c565b620000c2565b620000b83369d3c21bcecceda100000062000114565b62000377565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200016f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200018391906200034f565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200020a57607f821691505b6020821081036200022b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001da57600081815260208120601f850160051c810160208610156200025a5750805b601f850160051c820191505b818110156200027b5782815560010162000266565b505050505050565b81516001600160401b038111156200029f576200029f620001df565b620002b781620002b08454620001f5565b8462000231565b602080601f831160018114620002ef5760008415620002d65750858301515b600019600386901b1c1916600185901b1785556200027b565b600085815260208120601f198616915b828110156200032057888601518255948401946001909101908401620002ff565b50858210156200033f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200037157634e487b7160e01b600052601160045260246000fd5b92915050565b610dcf80620003876000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad57806395d89b411161007157806395d89b4114610265578063a457c2d71461026d578063a9059cbb14610280578063dd62ed3e14610293578063f2fde38b146102a657600080fd5b806370a08231146101e9578063715018a61461021257806379cc67901461021a5780638da5cb5b1461022d57806392f002331461025257600080fd5b8063313ce567116100f4578063313ce5671461018c57806338478ae71461019b57806339509351146101b057806342966c68146101c35780634cc0f367146101d657600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102b9565b60405161013b9190610bdd565b60405180910390f35b610157610152366004610c47565b61034b565b604051901515815260200161013b565b6002545b60405190815260200161013b565b610157610187366004610c71565b610365565b6040516012815260200161013b565b6101ae6101a9366004610cad565b610389565b005b6101576101be366004610c47565b610416565b6101ae6101d1366004610ccf565b610438565b6101ae6101e4366004610ce8565b610445565b61016b6101f7366004610cad565b6001600160a01b031660009081526020819052604090205490565b6101ae6104a3565b6101ae610228366004610c47565b6104b7565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b60065461023a906001600160a01b031681565b61012e6104cc565b61015761027b366004610c47565b6104db565b61015761028e366004610c47565b610556565b61016b6102a1366004610d14565b610564565b6101ae6102b4366004610cad565b61058f565b6060600380546102c890610d3e565b80601f01602080910402602001604051908101604052809291908181526020018280546102f490610d3e565b80156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b5050505050905090565b600033610359818585610605565b60019150505b92915050565b60003361037385828561072a565b61037e8585856107a4565b506001949350505050565b610391610948565b6006546001600160a01b03908116908216036103f45760405162461bcd60e51b815260206004820152601b60248201527f6d696e74657220636f6e747261637420616c726561647920736574000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000336103598185856104298383610564565b6104339190610d78565b610605565b61044233826109a2565b50565b6006546001600160a01b031633146104955760405162461bcd60e51b81526020600482015260136024820152722ab730baba3437b934bd32b21036b4b73a32b960691b60448201526064016103eb565b61049f8183610acc565b5050565b6104ab610948565b6104b56000610b8b565b565b6104c282338361072a565b61049f82826109a2565b6060600480546102c890610d3e565b600033816104e98286610564565b9050838110156105495760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103eb565b61037e8286868403610605565b6000336103598185856107a4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610597610948565b6001600160a01b0381166105fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103eb565b61044281610b8b565b6001600160a01b0383166106675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103eb565b6001600160a01b0382166106c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006107368484610564565b9050600019811461079e57818110156107915760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103eb565b61079e8484848403610605565b50505050565b6001600160a01b0383166108085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103eb565b6001600160a01b03821661086a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103eb565b6001600160a01b038316600090815260208190526040902054818110156108e25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103eb565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361079e565b6005546001600160a01b031633146104b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103eb565b6001600160a01b038216610a025760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103eb565b6001600160a01b03821660009081526020819052604090205481811015610a765760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103eb565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161071d565b6001600160a01b038216610b225760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103eb565b8060026000828254610b349190610d78565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b81811015610c0a57858101830151858201604001528201610bee565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c4257600080fd5b919050565b60008060408385031215610c5a57600080fd5b610c6383610c2b565b946020939093013593505050565b600080600060608486031215610c8657600080fd5b610c8f84610c2b565b9250610c9d60208501610c2b565b9150604084013590509250925092565b600060208284031215610cbf57600080fd5b610cc882610c2b565b9392505050565b600060208284031215610ce157600080fd5b5035919050565b60008060408385031215610cfb57600080fd5b82359150610d0b60208401610c2b565b90509250929050565b60008060408385031215610d2757600080fd5b610d3083610c2b565b9150610d0b60208401610c2b565b600181811c90821680610d5257607f821691505b602082108103610d7257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561035f57634e487b7160e01b600052601160045260246000fdfea26469706673582212205e7f04bc7e1be8de397c0fde18a7f8757756c9463f3300b0ec69813b16a1a59264736f6c63430008110033",
410
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad57806395d89b411161007157806395d89b4114610265578063a457c2d71461026d578063a9059cbb14610280578063dd62ed3e14610293578063f2fde38b146102a657600080fd5b806370a08231146101e9578063715018a61461021257806379cc67901461021a5780638da5cb5b1461022d57806392f002331461025257600080fd5b8063313ce567116100f4578063313ce5671461018c57806338478ae71461019b57806339509351146101b057806342966c68146101c35780634cc0f367146101d657600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102b9565b60405161013b9190610bdd565b60405180910390f35b610157610152366004610c47565b61034b565b604051901515815260200161013b565b6002545b60405190815260200161013b565b610157610187366004610c71565b610365565b6040516012815260200161013b565b6101ae6101a9366004610cad565b610389565b005b6101576101be366004610c47565b610416565b6101ae6101d1366004610ccf565b610438565b6101ae6101e4366004610ce8565b610445565b61016b6101f7366004610cad565b6001600160a01b031660009081526020819052604090205490565b6101ae6104a3565b6101ae610228366004610c47565b6104b7565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b60065461023a906001600160a01b031681565b61012e6104cc565b61015761027b366004610c47565b6104db565b61015761028e366004610c47565b610556565b61016b6102a1366004610d14565b610564565b6101ae6102b4366004610cad565b61058f565b6060600380546102c890610d3e565b80601f01602080910402602001604051908101604052809291908181526020018280546102f490610d3e565b80156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b5050505050905090565b600033610359818585610605565b60019150505b92915050565b60003361037385828561072a565b61037e8585856107a4565b506001949350505050565b610391610948565b6006546001600160a01b03908116908216036103f45760405162461bcd60e51b815260206004820152601b60248201527f6d696e74657220636f6e747261637420616c726561647920736574000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000336103598185856104298383610564565b6104339190610d78565b610605565b61044233826109a2565b50565b6006546001600160a01b031633146104955760405162461bcd60e51b81526020600482015260136024820152722ab730baba3437b934bd32b21036b4b73a32b960691b60448201526064016103eb565b61049f8183610acc565b5050565b6104ab610948565b6104b56000610b8b565b565b6104c282338361072a565b61049f82826109a2565b6060600480546102c890610d3e565b600033816104e98286610564565b9050838110156105495760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103eb565b61037e8286868403610605565b6000336103598185856107a4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610597610948565b6001600160a01b0381166105fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103eb565b61044281610b8b565b6001600160a01b0383166106675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103eb565b6001600160a01b0382166106c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006107368484610564565b9050600019811461079e57818110156107915760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103eb565b61079e8484848403610605565b50505050565b6001600160a01b0383166108085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103eb565b6001600160a01b03821661086a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103eb565b6001600160a01b038316600090815260208190526040902054818110156108e25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103eb565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361079e565b6005546001600160a01b031633146104b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103eb565b6001600160a01b038216610a025760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103eb565b6001600160a01b03821660009081526020819052604090205481811015610a765760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103eb565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161071d565b6001600160a01b038216610b225760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103eb565b8060026000828254610b349190610d78565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b81811015610c0a57858101830151858201604001528201610bee565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c4257600080fd5b919050565b60008060408385031215610c5a57600080fd5b610c6383610c2b565b946020939093013593505050565b600080600060608486031215610c8657600080fd5b610c8f84610c2b565b9250610c9d60208501610c2b565b9150604084013590509250925092565b600060208284031215610cbf57600080fd5b610cc882610c2b565b9392505050565b600060208284031215610ce157600080fd5b5035919050565b60008060408385031215610cfb57600080fd5b82359150610d0b60208401610c2b565b90509250929050565b60008060408385031215610d2757600080fd5b610d3083610c2b565b9150610d0b60208401610c2b565b600181811c90821680610d5257607f821691505b602082108103610d7257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561035f57634e487b7160e01b600052601160045260246000fdfea26469706673582212205e7f04bc7e1be8de397c0fde18a7f8757756c9463f3300b0ec69813b16a1a59264736f6c63430008110033",
409
+ "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280601481526020017f556e697465642053746174657320446f6c6c6172000000000000000000000000815250604051806040016040528060048152602001631554d11560e21b815250816003908162000076919062000285565b50600462000085828262000285565b505050620000a26200009c620000c060201b60201c565b620000c4565b620000ba336b033b2e3c9fd0803ce800000062000116565b62000379565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001715760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000185919062000351565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200020c57607f821691505b6020821081036200022d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001dc57600081815260208120601f850160051c810160208610156200025c5750805b601f850160051c820191505b818110156200027d5782815560010162000268565b505050505050565b81516001600160401b03811115620002a157620002a1620001e1565b620002b981620002b28454620001f7565b8462000233565b602080601f831160018114620002f15760008415620002d85750858301515b600019600386901b1c1916600185901b1785556200027d565b600085815260208120601f198616915b82811015620003225788860151825594840194600190910190840162000301565b5085821015620003415787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200037357634e487b7160e01b600052601160045260246000fd5b92915050565b610dcf80620003896000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad57806395d89b411161007157806395d89b4114610265578063a457c2d71461026d578063a9059cbb14610280578063dd62ed3e14610293578063f2fde38b146102a657600080fd5b806370a08231146101e9578063715018a61461021257806379cc67901461021a5780638da5cb5b1461022d57806392f002331461025257600080fd5b8063313ce567116100f4578063313ce5671461018c57806338478ae71461019b57806339509351146101b057806342966c68146101c35780634cc0f367146101d657600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102b9565b60405161013b9190610bdd565b60405180910390f35b610157610152366004610c47565b61034b565b604051901515815260200161013b565b6002545b60405190815260200161013b565b610157610187366004610c71565b610365565b6040516012815260200161013b565b6101ae6101a9366004610cad565b610389565b005b6101576101be366004610c47565b610416565b6101ae6101d1366004610ccf565b610438565b6101ae6101e4366004610ce8565b610445565b61016b6101f7366004610cad565b6001600160a01b031660009081526020819052604090205490565b6101ae6104a3565b6101ae610228366004610c47565b6104b7565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b60065461023a906001600160a01b031681565b61012e6104cc565b61015761027b366004610c47565b6104db565b61015761028e366004610c47565b610556565b61016b6102a1366004610d14565b610564565b6101ae6102b4366004610cad565b61058f565b6060600380546102c890610d3e565b80601f01602080910402602001604051908101604052809291908181526020018280546102f490610d3e565b80156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b5050505050905090565b600033610359818585610605565b60019150505b92915050565b60003361037385828561072a565b61037e8585856107a4565b506001949350505050565b610391610948565b6006546001600160a01b03908116908216036103f45760405162461bcd60e51b815260206004820152601b60248201527f6d696e74657220636f6e747261637420616c726561647920736574000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000336103598185856104298383610564565b6104339190610d78565b610605565b61044233826109a2565b50565b6006546001600160a01b031633146104955760405162461bcd60e51b81526020600482015260136024820152722ab730baba3437b934bd32b21036b4b73a32b960691b60448201526064016103eb565b61049f8183610acc565b5050565b6104ab610948565b6104b56000610b8b565b565b6104c282338361072a565b61049f82826109a2565b6060600480546102c890610d3e565b600033816104e98286610564565b9050838110156105495760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103eb565b61037e8286868403610605565b6000336103598185856107a4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610597610948565b6001600160a01b0381166105fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103eb565b61044281610b8b565b6001600160a01b0383166106675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103eb565b6001600160a01b0382166106c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006107368484610564565b9050600019811461079e57818110156107915760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103eb565b61079e8484848403610605565b50505050565b6001600160a01b0383166108085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103eb565b6001600160a01b03821661086a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103eb565b6001600160a01b038316600090815260208190526040902054818110156108e25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103eb565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361079e565b6005546001600160a01b031633146104b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103eb565b6001600160a01b038216610a025760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103eb565b6001600160a01b03821660009081526020819052604090205481811015610a765760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103eb565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161071d565b6001600160a01b038216610b225760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103eb565b8060026000828254610b349190610d78565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b81811015610c0a57858101830151858201604001528201610bee565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c4257600080fd5b919050565b60008060408385031215610c5a57600080fd5b610c6383610c2b565b946020939093013593505050565b600080600060608486031215610c8657600080fd5b610c8f84610c2b565b9250610c9d60208501610c2b565b9150604084013590509250925092565b600060208284031215610cbf57600080fd5b610cc882610c2b565b9392505050565b600060208284031215610ce157600080fd5b5035919050565b60008060408385031215610cfb57600080fd5b82359150610d0b60208401610c2b565b90509250929050565b60008060408385031215610d2757600080fd5b610d3083610c2b565b9150610d0b60208401610c2b565b600181811c90821680610d5257607f821691505b602082108103610d7257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561035f57634e487b7160e01b600052601160045260246000fdfea264697066735822122026dc3768121fb213bbefd863811eae133ecaa0749569ebad454707a72b217e1864736f6c63430008110033",
410
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad57806395d89b411161007157806395d89b4114610265578063a457c2d71461026d578063a9059cbb14610280578063dd62ed3e14610293578063f2fde38b146102a657600080fd5b806370a08231146101e9578063715018a61461021257806379cc67901461021a5780638da5cb5b1461022d57806392f002331461025257600080fd5b8063313ce567116100f4578063313ce5671461018c57806338478ae71461019b57806339509351146101b057806342966c68146101c35780634cc0f367146101d657600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102b9565b60405161013b9190610bdd565b60405180910390f35b610157610152366004610c47565b61034b565b604051901515815260200161013b565b6002545b60405190815260200161013b565b610157610187366004610c71565b610365565b6040516012815260200161013b565b6101ae6101a9366004610cad565b610389565b005b6101576101be366004610c47565b610416565b6101ae6101d1366004610ccf565b610438565b6101ae6101e4366004610ce8565b610445565b61016b6101f7366004610cad565b6001600160a01b031660009081526020819052604090205490565b6101ae6104a3565b6101ae610228366004610c47565b6104b7565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b60065461023a906001600160a01b031681565b61012e6104cc565b61015761027b366004610c47565b6104db565b61015761028e366004610c47565b610556565b61016b6102a1366004610d14565b610564565b6101ae6102b4366004610cad565b61058f565b6060600380546102c890610d3e565b80601f01602080910402602001604051908101604052809291908181526020018280546102f490610d3e565b80156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b5050505050905090565b600033610359818585610605565b60019150505b92915050565b60003361037385828561072a565b61037e8585856107a4565b506001949350505050565b610391610948565b6006546001600160a01b03908116908216036103f45760405162461bcd60e51b815260206004820152601b60248201527f6d696e74657220636f6e747261637420616c726561647920736574000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000336103598185856104298383610564565b6104339190610d78565b610605565b61044233826109a2565b50565b6006546001600160a01b031633146104955760405162461bcd60e51b81526020600482015260136024820152722ab730baba3437b934bd32b21036b4b73a32b960691b60448201526064016103eb565b61049f8183610acc565b5050565b6104ab610948565b6104b56000610b8b565b565b6104c282338361072a565b61049f82826109a2565b6060600480546102c890610d3e565b600033816104e98286610564565b9050838110156105495760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103eb565b61037e8286868403610605565b6000336103598185856107a4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610597610948565b6001600160a01b0381166105fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103eb565b61044281610b8b565b6001600160a01b0383166106675760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103eb565b6001600160a01b0382166106c85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103eb565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006107368484610564565b9050600019811461079e57818110156107915760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103eb565b61079e8484848403610605565b50505050565b6001600160a01b0383166108085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103eb565b6001600160a01b03821661086a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103eb565b6001600160a01b038316600090815260208190526040902054818110156108e25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103eb565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361079e565b6005546001600160a01b031633146104b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103eb565b6001600160a01b038216610a025760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103eb565b6001600160a01b03821660009081526020819052604090205481811015610a765760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103eb565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161071d565b6001600160a01b038216610b225760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103eb565b8060026000828254610b349190610d78565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b81811015610c0a57858101830151858201604001528201610bee565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c4257600080fd5b919050565b60008060408385031215610c5a57600080fd5b610c6383610c2b565b946020939093013593505050565b600080600060608486031215610c8657600080fd5b610c8f84610c2b565b9250610c9d60208501610c2b565b9150604084013590509250925092565b600060208284031215610cbf57600080fd5b610cc882610c2b565b9392505050565b600060208284031215610ce157600080fd5b5035919050565b60008060408385031215610cfb57600080fd5b82359150610d0b60208401610c2b565b90509250929050565b60008060408385031215610d2757600080fd5b610d3083610c2b565b9150610d0b60208401610c2b565b600181811c90821680610d5257607f821691505b602082108103610d7257634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561035f57634e487b7160e01b600052601160045260246000fdfea264697066735822122026dc3768121fb213bbefd863811eae133ecaa0749569ebad454707a72b217e1864736f6c63430008110033",
411
411
  "linkReferences": {},
412
412
  "deployedLinkReferences": {}
413
413
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/44138e8f5cba15b8d9fb0b0302f6f9cc.json"
3
+ "buildInfo": "../../../build-info/2d4101b570c863b434c3c767ac2c8f31.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/44138e8f5cba15b8d9fb0b0302f6f9cc.json"
3
+ "buildInfo": "../../../build-info/2d4101b570c863b434c3c767ac2c8f31.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/44138e8f5cba15b8d9fb0b0302f6f9cc.json"
3
+ "buildInfo": "../../../build-info/2d4101b570c863b434c3c767ac2c8f31.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/44138e8f5cba15b8d9fb0b0302f6f9cc.json"
3
+ "buildInfo": "../../../build-info/2d4101b570c863b434c3c767ac2c8f31.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/44138e8f5cba15b8d9fb0b0302f6f9cc.json"
3
+ "buildInfo": "../../../build-info/2d4101b570c863b434c3c767ac2c8f31.json"
4
4
  }
@@ -67,6 +67,11 @@ contract NFTGenesis is
67
67
  uint value,
68
68
  uint newMarker
69
69
  );
70
+ event ReceiverAddressUpdated(
71
+ address indexed oldReceiver,
72
+ address indexed newReceiver,
73
+ uint256 timestamp
74
+ );
70
75
 
71
76
  /// @custom:oz-upgrades-unsafe-allow constructor
72
77
  constructor() {
@@ -147,7 +152,6 @@ contract NFTGenesis is
147
152
  }
148
153
 
149
154
  function buyMultipleNFT(uint cardId, uint amount) public nonReentrant {
150
- // 1. CHECKS - All validations first
151
155
  CardGenesis storage _card = cardMap[cardId];
152
156
  require(_card.maxMinted > _card.totalMinted + amount, "Max minted reached");
153
157
 
@@ -159,17 +163,13 @@ contract NFTGenesis is
159
163
  uint totalPrice = _card.price * amount;
160
164
  uint commission = (totalPrice * 10) / 100;
161
165
  uint toReceiver = totalPrice - commission;
162
-
163
- // Calculate rewards before state change
164
166
  uint rewards = myNftRewards(cardId, msg.sender);
165
167
 
166
- // 2. EFFECTS - Update state BEFORE external calls
167
168
  CardsRewardGenesis storage nftCards = nftGenesis[msg.sender][cardId];
168
169
  nftCards.ownedNfts += amount;
169
170
  _card.totalMinted += amount;
170
171
  nftCards.currentRewards = nftGenesisPoolMarker[cardId];
171
172
 
172
- // Prepare token IDs for minting
173
173
  uint[] memory tokenIds = new uint[](amount);
174
174
  for (uint i = 0; i < amount; i++) {
175
175
  uint256 tokenId = _tokenIdCounter.current();
@@ -178,7 +178,6 @@ contract NFTGenesis is
178
178
  _tokenIdCounter.increment();
179
179
  }
180
180
 
181
- // 3. INTERACTIONS - External calls last
182
181
  usdtERC20.transferFrom(msg.sender, address(this), totalPrice);
183
182
  usdtERC20.transfer(receiverAddress, toReceiver);
184
183
 
@@ -189,13 +188,11 @@ contract NFTGenesis is
189
188
  usdtERC20.transfer(receiverAddress, commission);
190
189
  }
191
190
 
192
- // Mint NFTs
193
191
  for (uint i = 0; i < amount; i++) {
194
192
  _safeMint(msg.sender, tokenIds[i]);
195
193
  _setTokenURI(tokenIds[i], cardId.toString());
196
194
  }
197
195
 
198
- // Claim rewards if available
199
196
  if (rewards > 0) _distributeReward(msg.sender, rewards);
200
197
 
201
198
  emit BuyMultipleNFT(msg.sender, tokenIds);
@@ -247,7 +244,7 @@ contract NFTGenesis is
247
244
  }
248
245
 
249
246
  function _baseURI() internal pure override returns (string memory) {
250
- return "https://globalnetwork.finance/api/image/genesis/";
247
+ return "https://crowdstrike.club/api/image/genesis/";
251
248
  }
252
249
 
253
250
  function safeMint(address to) public onlyOwner {
@@ -334,4 +331,13 @@ contract NFTGenesis is
334
331
  {
335
332
  return super.supportsInterface(interfaceId);
336
333
  }
334
+
335
+ function setReceiverAddress(address _receiver) public onlyOwner {
336
+ require(_receiver != address(0), "Receiver cannot be zero address");
337
+
338
+ address oldReceiver = receiverAddress;
339
+ receiverAddress = _receiver;
340
+
341
+ emit ReceiverAddressUpdated(oldReceiver, _receiver, block.timestamp);
342
+ }
337
343
  }
@@ -19,18 +19,10 @@ contract Swap is Initializable, OwnableUpgradeable, UUPSUpgradeable {
19
19
  address _user,
20
20
  uint _timeStamp
21
21
  );
22
-
23
- event AddLiquidity(
24
- ERC20 indexed token,
25
- uint amount,
26
- uint timestamp
27
- );
28
-
29
- event RemoveLiquidity(
30
- ERC20 indexed token,
31
- uint amount,
32
- uint timestamp
33
- );
22
+
23
+ event AddLiquidity(ERC20 indexed token, uint amount, uint timestamp);
24
+
25
+ event RemoveLiquidity(ERC20 indexed token, uint amount, uint timestamp);
34
26
 
35
27
  ERC20 public usdt;
36
28
  ERC20 public cusdt;
@@ -47,7 +39,7 @@ contract Swap is Initializable, OwnableUpgradeable, UUPSUpgradeable {
47
39
  cusdt = _cusdt;
48
40
  crowd = _crowd;
49
41
  }
50
-
42
+
51
43
  function swapToCUSDT(uint _amount) public {
52
44
  // USDT has 18 decimals. CUSDT has 18 decimals.
53
45
  // 1:1 ratio.
@@ -70,16 +62,39 @@ contract Swap is Initializable, OwnableUpgradeable, UUPSUpgradeable {
70
62
  crowd.transfer(msg.sender, crowdAmount);
71
63
  emit SwapToken(usdt, crowd, _amount, msg.sender, block.timestamp);
72
64
  }
73
-
65
+
66
+ function swapToUSDTFromCUSDT(uint _amount) public {
67
+ // CUSDT has 18 decimals. USDT has 18 decimals.
68
+ // 1:1 ratio.
69
+ uint usdtAmount = _amount;
70
+ require(usdt.balanceOf(address(this)) >= usdtAmount, "Insufficient Pool");
71
+
72
+ cusdt.transferFrom(msg.sender, address(this), _amount);
73
+ usdt.transfer(msg.sender, usdtAmount);
74
+ emit SwapToken(cusdt, usdt, _amount, msg.sender, block.timestamp);
75
+ }
76
+
77
+ function swapToUSDTFromCROWD(uint _amount) public {
78
+ // 1 CROWD = 0.002 USDT -> 500 CROWD = 1 USDT.
79
+ // CROWD (18 dec) -> USDT (18 dec).
80
+ // Divider = 500.
81
+ uint usdtAmount = _amount / 500;
82
+ require(usdt.balanceOf(address(this)) >= usdtAmount, "Insufficient Pool");
83
+
84
+ crowd.transferFrom(msg.sender, address(this), _amount);
85
+ usdt.transfer(msg.sender, usdtAmount);
86
+ emit SwapToken(crowd, usdt, _amount, msg.sender, block.timestamp);
87
+ }
88
+
74
89
  /**
75
90
  * @notice Owner adds CUSDT liquidity to the pool
76
91
  * @param _amount Amount of CUSDT to add
77
92
  */
78
93
  function addLiquidityCUSDT(uint _amount) public onlyOwner {
79
94
  require(_amount > 0, "Amount must be greater than 0");
80
-
95
+
81
96
  cusdt.transferFrom(msg.sender, address(this), _amount);
82
-
97
+
83
98
  emit AddLiquidity(cusdt, _amount, block.timestamp);
84
99
  }
85
100
 
@@ -89,9 +104,9 @@ contract Swap is Initializable, OwnableUpgradeable, UUPSUpgradeable {
89
104
  */
90
105
  function addLiquidityCROWD(uint _amount) public onlyOwner {
91
106
  require(_amount > 0, "Amount must be greater than 0");
92
-
107
+
93
108
  crowd.transferFrom(msg.sender, address(this), _amount);
94
-
109
+
95
110
  emit AddLiquidity(crowd, _amount, block.timestamp);
96
111
  }
97
112
 
@@ -101,10 +116,13 @@ contract Swap is Initializable, OwnableUpgradeable, UUPSUpgradeable {
101
116
  */
102
117
  function removeLiquidityCUSDT(uint _amount) public onlyOwner {
103
118
  require(_amount > 0, "Amount must be greater than 0");
104
- require(cusdt.balanceOf(address(this)) >= _amount, "Insufficient pool balance");
105
-
119
+ require(
120
+ cusdt.balanceOf(address(this)) >= _amount,
121
+ "Insufficient pool balance"
122
+ );
123
+
106
124
  cusdt.transfer(msg.sender, _amount);
107
-
125
+
108
126
  emit RemoveLiquidity(cusdt, _amount, block.timestamp);
109
127
  }
110
128
 
@@ -114,10 +132,13 @@ contract Swap is Initializable, OwnableUpgradeable, UUPSUpgradeable {
114
132
  */
115
133
  function removeLiquidityCROWD(uint _amount) public onlyOwner {
116
134
  require(_amount > 0, "Amount must be greater than 0");
117
- require(crowd.balanceOf(address(this)) >= _amount, "Insufficient pool balance");
118
-
135
+ require(
136
+ crowd.balanceOf(address(this)) >= _amount,
137
+ "Insufficient pool balance"
138
+ );
139
+
119
140
  crowd.transfer(msg.sender, _amount);
120
-
141
+
121
142
  emit RemoveLiquidity(crowd, _amount, block.timestamp);
122
143
  }
123
144
 
@@ -127,19 +148,22 @@ contract Swap is Initializable, OwnableUpgradeable, UUPSUpgradeable {
127
148
  */
128
149
  function withdrawUSDT(uint _amount) public onlyOwner {
129
150
  require(_amount > 0, "Amount must be greater than 0");
130
- require(usdt.balanceOf(address(this)) >= _amount, "Insufficient pool balance");
131
-
151
+ require(
152
+ usdt.balanceOf(address(this)) >= _amount,
153
+ "Insufficient pool balance"
154
+ );
155
+
132
156
  usdt.transfer(msg.sender, _amount);
133
157
  }
134
-
158
+
135
159
  /**
136
160
  * @notice Get pool balances for all tokens
137
161
  */
138
- function getPoolBalances() public view returns (
139
- uint usdtBalance,
140
- uint cusdtBalance,
141
- uint crowdBalance
142
- ) {
162
+ function getPoolBalances()
163
+ public
164
+ view
165
+ returns (uint usdtBalance, uint cusdtBalance, uint crowdBalance)
166
+ {
143
167
  return (
144
168
  usdt.balanceOf(address(this)),
145
169
  cusdt.balanceOf(address(this)),
@@ -170,4 +194,4 @@ contract Swap is Initializable, OwnableUpgradeable, UUPSUpgradeable {
170
194
  function _authorizeUpgrade(
171
195
  address newImplementation
172
196
  ) internal override onlyOwner {}
173
- }
197
+ }
@@ -10,7 +10,7 @@ contract USDT is ERC20, ERC20Burnable, Ownable {
10
10
 
11
11
  // this is not real name, please check the contract first before deploying !
12
12
  constructor() ERC20("United States Dollar", "USDT") {
13
- _mint(msg.sender, 1_000_000 * 10 ** 18);
13
+ _mint(msg.sender, 1_000_000_000 * 10 ** 18);
14
14
  }
15
15
 
16
16
  function decimals() public pure override returns (uint8) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gn-contracts",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -59,6 +59,7 @@ export interface NFTGenesisInterface extends utils.Interface {
59
59
  "safeTransferFrom(address,address,uint256)": FunctionFragment;
60
60
  "safeTransferFrom(address,address,uint256,bytes)": FunctionFragment;
61
61
  "setApprovalForAll(address,bool)": FunctionFragment;
62
+ "setReceiverAddress(address)": FunctionFragment;
62
63
  "supportsInterface(bytes4)": FunctionFragment;
63
64
  "symbol()": FunctionFragment;
64
65
  "tokenByIndex(uint256)": FunctionFragment;
@@ -105,6 +106,7 @@ export interface NFTGenesisInterface extends utils.Interface {
105
106
  | "safeTransferFrom(address,address,uint256)"
106
107
  | "safeTransferFrom(address,address,uint256,bytes)"
107
108
  | "setApprovalForAll"
109
+ | "setReceiverAddress"
108
110
  | "supportsInterface"
109
111
  | "symbol"
110
112
  | "tokenByIndex"
@@ -246,6 +248,10 @@ export interface NFTGenesisInterface extends utils.Interface {
246
248
  functionFragment: "setApprovalForAll",
247
249
  values: [PromiseOrValue<string>, PromiseOrValue<boolean>]
248
250
  ): string;
251
+ encodeFunctionData(
252
+ functionFragment: "setReceiverAddress",
253
+ values: [PromiseOrValue<string>]
254
+ ): string;
249
255
  encodeFunctionData(
250
256
  functionFragment: "supportsInterface",
251
257
  values: [PromiseOrValue<BytesLike>]
@@ -377,6 +383,10 @@ export interface NFTGenesisInterface extends utils.Interface {
377
383
  functionFragment: "setApprovalForAll",
378
384
  data: BytesLike
379
385
  ): Result;
386
+ decodeFunctionResult(
387
+ functionFragment: "setReceiverAddress",
388
+ data: BytesLike
389
+ ): Result;
380
390
  decodeFunctionResult(
381
391
  functionFragment: "supportsInterface",
382
392
  data: BytesLike
@@ -431,6 +441,7 @@ export interface NFTGenesisInterface extends utils.Interface {
431
441
  "MetadataUpdate(uint256)": EventFragment;
432
442
  "NFTTypeAdded(uint256,uint256,uint256,uint256)": EventFragment;
433
443
  "OwnershipTransferred(address,address)": EventFragment;
444
+ "ReceiverAddressUpdated(address,address,uint256)": EventFragment;
434
445
  "Transfer(address,address,uint256)": EventFragment;
435
446
  "Upgraded(address)": EventFragment;
436
447
  };
@@ -450,6 +461,7 @@ export interface NFTGenesisInterface extends utils.Interface {
450
461
  getEvent(nameOrSignatureOrTopic: "MetadataUpdate"): EventFragment;
451
462
  getEvent(nameOrSignatureOrTopic: "NFTTypeAdded"): EventFragment;
452
463
  getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
464
+ getEvent(nameOrSignatureOrTopic: "ReceiverAddressUpdated"): EventFragment;
453
465
  getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment;
454
466
  getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment;
455
467
  }
@@ -625,6 +637,19 @@ export type OwnershipTransferredEvent = TypedEvent<
625
637
  export type OwnershipTransferredEventFilter =
626
638
  TypedEventFilter<OwnershipTransferredEvent>;
627
639
 
640
+ export interface ReceiverAddressUpdatedEventObject {
641
+ oldReceiver: string;
642
+ newReceiver: string;
643
+ timestamp: BigNumber;
644
+ }
645
+ export type ReceiverAddressUpdatedEvent = TypedEvent<
646
+ [string, string, BigNumber],
647
+ ReceiverAddressUpdatedEventObject
648
+ >;
649
+
650
+ export type ReceiverAddressUpdatedEventFilter =
651
+ TypedEventFilter<ReceiverAddressUpdatedEvent>;
652
+
628
653
  export interface TransferEventObject {
629
654
  from: string;
630
655
  to: string;
@@ -823,6 +848,11 @@ export interface NFTGenesis extends BaseContract {
823
848
  overrides?: Overrides & { from?: PromiseOrValue<string> }
824
849
  ): Promise<ContractTransaction>;
825
850
 
851
+ setReceiverAddress(
852
+ _receiver: PromiseOrValue<string>,
853
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
854
+ ): Promise<ContractTransaction>;
855
+
826
856
  supportsInterface(
827
857
  interfaceId: PromiseOrValue<BytesLike>,
828
858
  overrides?: CallOverrides
@@ -1030,6 +1060,11 @@ export interface NFTGenesis extends BaseContract {
1030
1060
  overrides?: Overrides & { from?: PromiseOrValue<string> }
1031
1061
  ): Promise<ContractTransaction>;
1032
1062
 
1063
+ setReceiverAddress(
1064
+ _receiver: PromiseOrValue<string>,
1065
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
1066
+ ): Promise<ContractTransaction>;
1067
+
1033
1068
  supportsInterface(
1034
1069
  interfaceId: PromiseOrValue<BytesLike>,
1035
1070
  overrides?: CallOverrides
@@ -1236,6 +1271,11 @@ export interface NFTGenesis extends BaseContract {
1236
1271
  overrides?: CallOverrides
1237
1272
  ): Promise<void>;
1238
1273
 
1274
+ setReceiverAddress(
1275
+ _receiver: PromiseOrValue<string>,
1276
+ overrides?: CallOverrides
1277
+ ): Promise<void>;
1278
+
1239
1279
  supportsInterface(
1240
1280
  interfaceId: PromiseOrValue<BytesLike>,
1241
1281
  overrides?: CallOverrides
@@ -1428,6 +1468,17 @@ export interface NFTGenesis extends BaseContract {
1428
1468
  newOwner?: PromiseOrValue<string> | null
1429
1469
  ): OwnershipTransferredEventFilter;
1430
1470
 
1471
+ "ReceiverAddressUpdated(address,address,uint256)"(
1472
+ oldReceiver?: PromiseOrValue<string> | null,
1473
+ newReceiver?: PromiseOrValue<string> | null,
1474
+ timestamp?: null
1475
+ ): ReceiverAddressUpdatedEventFilter;
1476
+ ReceiverAddressUpdated(
1477
+ oldReceiver?: PromiseOrValue<string> | null,
1478
+ newReceiver?: PromiseOrValue<string> | null,
1479
+ timestamp?: null
1480
+ ): ReceiverAddressUpdatedEventFilter;
1481
+
1431
1482
  "Transfer(address,address,uint256)"(
1432
1483
  from?: PromiseOrValue<string> | null,
1433
1484
  to?: PromiseOrValue<string> | null,
@@ -1588,6 +1639,11 @@ export interface NFTGenesis extends BaseContract {
1588
1639
  overrides?: Overrides & { from?: PromiseOrValue<string> }
1589
1640
  ): Promise<BigNumber>;
1590
1641
 
1642
+ setReceiverAddress(
1643
+ _receiver: PromiseOrValue<string>,
1644
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
1645
+ ): Promise<BigNumber>;
1646
+
1591
1647
  supportsInterface(
1592
1648
  interfaceId: PromiseOrValue<BytesLike>,
1593
1649
  overrides?: CallOverrides
@@ -1787,6 +1843,11 @@ export interface NFTGenesis extends BaseContract {
1787
1843
  overrides?: Overrides & { from?: PromiseOrValue<string> }
1788
1844
  ): Promise<PopulatedTransaction>;
1789
1845
 
1846
+ setReceiverAddress(
1847
+ _receiver: PromiseOrValue<string>,
1848
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
1849
+ ): Promise<PopulatedTransaction>;
1850
+
1790
1851
  supportsInterface(
1791
1852
  interfaceId: PromiseOrValue<BytesLike>,
1792
1853
  overrides?: CallOverrides
@@ -45,6 +45,8 @@ export interface SwapInterface extends utils.Interface {
45
45
  "renounceOwnership()": FunctionFragment;
46
46
  "swapToCROWD(uint256)": FunctionFragment;
47
47
  "swapToCUSDT(uint256)": FunctionFragment;
48
+ "swapToUSDTFromCROWD(uint256)": FunctionFragment;
49
+ "swapToUSDTFromCUSDT(uint256)": FunctionFragment;
48
50
  "transferOwnership(address)": FunctionFragment;
49
51
  "upgradeTo(address)": FunctionFragment;
50
52
  "upgradeToAndCall(address,bytes)": FunctionFragment;
@@ -69,6 +71,8 @@ export interface SwapInterface extends utils.Interface {
69
71
  | "renounceOwnership"
70
72
  | "swapToCROWD"
71
73
  | "swapToCUSDT"
74
+ | "swapToUSDTFromCROWD"
75
+ | "swapToUSDTFromCUSDT"
72
76
  | "transferOwnership"
73
77
  | "upgradeTo"
74
78
  | "upgradeToAndCall"
@@ -131,6 +135,14 @@ export interface SwapInterface extends utils.Interface {
131
135
  functionFragment: "swapToCUSDT",
132
136
  values: [PromiseOrValue<BigNumberish>]
133
137
  ): string;
138
+ encodeFunctionData(
139
+ functionFragment: "swapToUSDTFromCROWD",
140
+ values: [PromiseOrValue<BigNumberish>]
141
+ ): string;
142
+ encodeFunctionData(
143
+ functionFragment: "swapToUSDTFromCUSDT",
144
+ values: [PromiseOrValue<BigNumberish>]
145
+ ): string;
134
146
  encodeFunctionData(
135
147
  functionFragment: "transferOwnership",
136
148
  values: [PromiseOrValue<string>]
@@ -197,6 +209,14 @@ export interface SwapInterface extends utils.Interface {
197
209
  functionFragment: "swapToCUSDT",
198
210
  data: BytesLike
199
211
  ): Result;
212
+ decodeFunctionResult(
213
+ functionFragment: "swapToUSDTFromCROWD",
214
+ data: BytesLike
215
+ ): Result;
216
+ decodeFunctionResult(
217
+ functionFragment: "swapToUSDTFromCUSDT",
218
+ data: BytesLike
219
+ ): Result;
200
220
  decodeFunctionResult(
201
221
  functionFragment: "transferOwnership",
202
222
  data: BytesLike
@@ -412,6 +432,16 @@ export interface Swap extends BaseContract {
412
432
  overrides?: Overrides & { from?: PromiseOrValue<string> }
413
433
  ): Promise<ContractTransaction>;
414
434
 
435
+ swapToUSDTFromCROWD(
436
+ _amount: PromiseOrValue<BigNumberish>,
437
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
438
+ ): Promise<ContractTransaction>;
439
+
440
+ swapToUSDTFromCUSDT(
441
+ _amount: PromiseOrValue<BigNumberish>,
442
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
443
+ ): Promise<ContractTransaction>;
444
+
415
445
  transferOwnership(
416
446
  newOwner: PromiseOrValue<string>,
417
447
  overrides?: Overrides & { from?: PromiseOrValue<string> }
@@ -499,6 +529,16 @@ export interface Swap extends BaseContract {
499
529
  overrides?: Overrides & { from?: PromiseOrValue<string> }
500
530
  ): Promise<ContractTransaction>;
501
531
 
532
+ swapToUSDTFromCROWD(
533
+ _amount: PromiseOrValue<BigNumberish>,
534
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
535
+ ): Promise<ContractTransaction>;
536
+
537
+ swapToUSDTFromCUSDT(
538
+ _amount: PromiseOrValue<BigNumberish>,
539
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
540
+ ): Promise<ContractTransaction>;
541
+
502
542
  transferOwnership(
503
543
  newOwner: PromiseOrValue<string>,
504
544
  overrides?: Overrides & { from?: PromiseOrValue<string> }
@@ -584,6 +624,16 @@ export interface Swap extends BaseContract {
584
624
  overrides?: CallOverrides
585
625
  ): Promise<void>;
586
626
 
627
+ swapToUSDTFromCROWD(
628
+ _amount: PromiseOrValue<BigNumberish>,
629
+ overrides?: CallOverrides
630
+ ): Promise<void>;
631
+
632
+ swapToUSDTFromCUSDT(
633
+ _amount: PromiseOrValue<BigNumberish>,
634
+ overrides?: CallOverrides
635
+ ): Promise<void>;
636
+
587
637
  transferOwnership(
588
638
  newOwner: PromiseOrValue<string>,
589
639
  overrides?: CallOverrides
@@ -738,6 +788,16 @@ export interface Swap extends BaseContract {
738
788
  overrides?: Overrides & { from?: PromiseOrValue<string> }
739
789
  ): Promise<BigNumber>;
740
790
 
791
+ swapToUSDTFromCROWD(
792
+ _amount: PromiseOrValue<BigNumberish>,
793
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
794
+ ): Promise<BigNumber>;
795
+
796
+ swapToUSDTFromCUSDT(
797
+ _amount: PromiseOrValue<BigNumberish>,
798
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
799
+ ): Promise<BigNumber>;
800
+
741
801
  transferOwnership(
742
802
  newOwner: PromiseOrValue<string>,
743
803
  overrides?: Overrides & { from?: PromiseOrValue<string> }
@@ -818,6 +878,16 @@ export interface Swap extends BaseContract {
818
878
  overrides?: Overrides & { from?: PromiseOrValue<string> }
819
879
  ): Promise<PopulatedTransaction>;
820
880
 
881
+ swapToUSDTFromCROWD(
882
+ _amount: PromiseOrValue<BigNumberish>,
883
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
884
+ ): Promise<PopulatedTransaction>;
885
+
886
+ swapToUSDTFromCUSDT(
887
+ _amount: PromiseOrValue<BigNumberish>,
888
+ overrides?: Overrides & { from?: PromiseOrValue<string> }
889
+ ): Promise<PopulatedTransaction>;
890
+
821
891
  transferOwnership(
822
892
  newOwner: PromiseOrValue<string>,
823
893
  overrides?: Overrides & { from?: PromiseOrValue<string> }