@layerzerolabs/oft-mint-burn-starknet 0.2.9

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 (98) hide show
  1. package/Scarb.lock +190 -0
  2. package/Scarb.toml +3 -0
  3. package/contracts/oft_mint_burn/Scarb.toml +29 -0
  4. package/contracts/oft_mint_burn/src/constants.cairo +11 -0
  5. package/contracts/oft_mint_burn/src/erc20_mint_burn_upgradeable/constants.cairo +17 -0
  6. package/contracts/oft_mint_burn/src/erc20_mint_burn_upgradeable/erc20_mint_burn_upgradeable.cairo +309 -0
  7. package/contracts/oft_mint_burn/src/erc20_mint_burn_upgradeable/interface.cairo +86 -0
  8. package/contracts/oft_mint_burn/src/errors.cairo +39 -0
  9. package/contracts/oft_mint_burn/src/interface.cairo +95 -0
  10. package/contracts/oft_mint_burn/src/lib.cairo +10 -0
  11. package/contracts/oft_mint_burn/src/oft_mint_burn_adapter.cairo +382 -0
  12. package/contracts/oft_mint_burn/tests/fuzzable/contract_address.cairo +21 -0
  13. package/contracts/oft_mint_burn/tests/lib.cairo +8 -0
  14. package/contracts/oft_mint_burn/tests/test_erc20_mint_burn_upgradeable.cairo +621 -0
  15. package/contracts/oft_mint_burn/tests/test_mint_burn_adapter.cairo +194 -0
  16. package/contracts/oft_mint_burn/tests/test_mint_burn_adapter_advanced.cairo +746 -0
  17. package/contracts/oft_mint_burn/tests/utils.cairo +84 -0
  18. package/dist/3UUTAAI4.js +9 -0
  19. package/dist/3UUTAAI4.js.map +1 -0
  20. package/dist/4EGWSIX7.js +18 -0
  21. package/dist/4EGWSIX7.js.map +1 -0
  22. package/dist/54KHZH3Y.cjs +22 -0
  23. package/dist/54KHZH3Y.cjs.map +1 -0
  24. package/dist/5KFUKPR2.js +1033 -0
  25. package/dist/5KFUKPR2.js.map +1 -0
  26. package/dist/5R6WMZVR.cjs +22 -0
  27. package/dist/5R6WMZVR.cjs.map +1 -0
  28. package/dist/CCHLUK5E.cjs +1035 -0
  29. package/dist/CCHLUK5E.cjs.map +1 -0
  30. package/dist/CGU4EJTF.cjs +14 -0
  31. package/dist/CGU4EJTF.cjs.map +1 -0
  32. package/dist/DJIRVXJ3.cjs +1914 -0
  33. package/dist/DJIRVXJ3.cjs.map +1 -0
  34. package/dist/E63KEOR5.cjs +11 -0
  35. package/dist/E63KEOR5.cjs.map +1 -0
  36. package/dist/FL52ASKH.cjs +16 -0
  37. package/dist/FL52ASKH.cjs.map +1 -0
  38. package/dist/GZXOKWQY.js +1303 -0
  39. package/dist/GZXOKWQY.js.map +1 -0
  40. package/dist/IQR2DIUY.cjs +1305 -0
  41. package/dist/IQR2DIUY.cjs.map +1 -0
  42. package/dist/MNNO3GDF.js +14 -0
  43. package/dist/MNNO3GDF.js.map +1 -0
  44. package/dist/NZRVZWHQ.js +1912 -0
  45. package/dist/NZRVZWHQ.js.map +1 -0
  46. package/dist/QYG4SI7W.js +18 -0
  47. package/dist/QYG4SI7W.js.map +1 -0
  48. package/dist/UE6XWQTX.js +12 -0
  49. package/dist/UE6XWQTX.js.map +1 -0
  50. package/dist/generated/abi/e-r-c20-mint-burn-upgradeable.cjs +13 -0
  51. package/dist/generated/abi/e-r-c20-mint-burn-upgradeable.cjs.map +1 -0
  52. package/dist/generated/abi/e-r-c20-mint-burn-upgradeable.d.ts +760 -0
  53. package/dist/generated/abi/e-r-c20-mint-burn-upgradeable.d.ts.map +1 -0
  54. package/dist/generated/abi/e-r-c20-mint-burn-upgradeable.js +4 -0
  55. package/dist/generated/abi/e-r-c20-mint-burn-upgradeable.js.map +1 -0
  56. package/dist/generated/abi/o-f-t-mint-burn-adapter.cjs +13 -0
  57. package/dist/generated/abi/o-f-t-mint-burn-adapter.cjs.map +1 -0
  58. package/dist/generated/abi/o-f-t-mint-burn-adapter.d.ts +1408 -0
  59. package/dist/generated/abi/o-f-t-mint-burn-adapter.d.ts.map +1 -0
  60. package/dist/generated/abi/o-f-t-mint-burn-adapter.js +4 -0
  61. package/dist/generated/abi/o-f-t-mint-burn-adapter.js.map +1 -0
  62. package/dist/generated/abi.cjs +19 -0
  63. package/dist/generated/abi.cjs.map +1 -0
  64. package/dist/generated/abi.d.ts +3 -0
  65. package/dist/generated/abi.d.ts.map +1 -0
  66. package/dist/generated/abi.js +6 -0
  67. package/dist/generated/abi.js.map +1 -0
  68. package/dist/generated/casm.cjs +17 -0
  69. package/dist/generated/casm.cjs.map +1 -0
  70. package/dist/generated/casm.d.ts +3 -0
  71. package/dist/generated/casm.d.ts.map +1 -0
  72. package/dist/generated/casm.js +4 -0
  73. package/dist/generated/casm.js.map +1 -0
  74. package/dist/generated/sierra.cjs +17 -0
  75. package/dist/generated/sierra.cjs.map +1 -0
  76. package/dist/generated/sierra.d.ts +3 -0
  77. package/dist/generated/sierra.d.ts.map +1 -0
  78. package/dist/generated/sierra.js +4 -0
  79. package/dist/generated/sierra.js.map +1 -0
  80. package/dist/generated/verification/index.cjs +14 -0
  81. package/dist/generated/verification/index.cjs.map +1 -0
  82. package/dist/generated/verification/index.d.ts +2 -0
  83. package/dist/generated/verification/index.d.ts.map +1 -0
  84. package/dist/generated/verification/index.js +5 -0
  85. package/dist/generated/verification/index.js.map +1 -0
  86. package/dist/generated/verification/oft_mint_burn.cjs +10 -0
  87. package/dist/generated/verification/oft_mint_burn.cjs.map +1 -0
  88. package/dist/generated/verification/oft_mint_burn.d.ts +4 -0
  89. package/dist/generated/verification/oft_mint_burn.d.ts.map +1 -0
  90. package/dist/generated/verification/oft_mint_burn.js +4 -0
  91. package/dist/generated/verification/oft_mint_burn.js.map +1 -0
  92. package/dist/index.cjs +31 -0
  93. package/dist/index.cjs.map +1 -0
  94. package/dist/index.d.ts +5 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +10 -0
  97. package/dist/index.js.map +1 -0
  98. package/package.json +53 -0
@@ -0,0 +1,84 @@
1
+ //! OFTMintBurnAdapter test utils
2
+
3
+ use core::num::traits::Pow;
4
+ use oft_mint_burn::erc20_mint_burn_upgradeable::constants::{BURNER_ROLE, MINTER_ROLE};
5
+ use openzeppelin::access::accesscontrol::interface::{
6
+ IAccessControlDispatcher, IAccessControlDispatcherTrait,
7
+ };
8
+ use snforge_std::{ContractClassTrait, DeclareResultTrait, declare, mock_call};
9
+ use starknet::{ContractAddress, SyscallResultTrait};
10
+ use starkware_utils_testing::test_utils::cheat_caller_address_once;
11
+
12
+ pub const NATIVE_TOKEN_OWNER: ContractAddress = 'native_token_owner'.try_into().unwrap();
13
+ pub const ERC20_TOKEN_OWNER: ContractAddress = 'erc20_token_owner'.try_into().unwrap();
14
+ pub const LZ_ENDPOINT: ContractAddress = 'lz_endpoint'.try_into().unwrap();
15
+ pub const OFT_OWNER: ContractAddress = 'oft_owner'.try_into().unwrap();
16
+ pub const SHARED_DECIMALS: u8 = 6;
17
+ pub const LOCAL_DECIMALS: u8 = 18;
18
+ const DECIMAL_DIFF: u8 = LOCAL_DECIMALS - SHARED_DECIMALS;
19
+ pub const DIFF_DECIMALS: u256 = 10_u256.pow(DECIMAL_DIFF.into());
20
+
21
+ pub(crate) struct OFTMintBurnAdapterDeploy {
22
+ pub oft_mint_burn_adapter: ContractAddress,
23
+ pub native_token: ContractAddress,
24
+ pub erc20_token: ContractAddress,
25
+ }
26
+
27
+ fn deploy_mock_erc20(
28
+ owner: ContractAddress, name: ByteArray, symbol: ByteArray,
29
+ ) -> ContractAddress {
30
+ let contract = declare("ERC20MintBurnUpgradeable").unwrap_syscall().contract_class();
31
+
32
+ let mut calldata = array![];
33
+ name.serialize(ref calldata);
34
+ symbol.serialize(ref calldata);
35
+ LOCAL_DECIMALS.serialize(ref calldata); // decimals
36
+ owner.serialize(ref calldata); // default_admin
37
+ let (contract_address, _) = contract.deploy(@calldata).unwrap_syscall();
38
+
39
+ contract_address
40
+ }
41
+
42
+ fn deploy_oft_mint_burn_adapter(
43
+ erc20_token: ContractAddress,
44
+ minter_burner: ContractAddress,
45
+ lz_endpoint: ContractAddress,
46
+ owner: ContractAddress,
47
+ native_token: ContractAddress,
48
+ ) -> ContractAddress {
49
+ let contract = declare("OFTMintBurnAdapter").unwrap_syscall().contract_class();
50
+ let calldata = array![
51
+ erc20_token.into(), minter_burner.into(), lz_endpoint.into(), owner.into(),
52
+ native_token.into(), SHARED_DECIMALS.into(),
53
+ ];
54
+
55
+ mock_call(LZ_ENDPOINT, selector!("set_delegate"), (), 1);
56
+ let (contract_address, _) = contract.deploy(@calldata).unwrap_syscall();
57
+
58
+ contract_address
59
+ }
60
+
61
+ pub fn setup_mint_burn_adapter() -> OFTMintBurnAdapterDeploy {
62
+ let native_token = deploy_mock_erc20(NATIVE_TOKEN_OWNER, "STARK", "STK");
63
+ let erc20_token = deploy_mock_erc20(ERC20_TOKEN_OWNER, "CustomToken", "CT");
64
+
65
+ // Deploy the OFT adapter with the erc20_token as the minter_burner
66
+ let oft_mint_burn_adapter = deploy_oft_mint_burn_adapter(
67
+ erc20_token, erc20_token, LZ_ENDPOINT, OFT_OWNER, native_token,
68
+ );
69
+
70
+ // Grant MINTER_ROLE and BURNER_ROLE to the OFT adapter
71
+ cheat_caller_address_once(erc20_token, ERC20_TOKEN_OWNER);
72
+ IAccessControlDispatcher { contract_address: erc20_token }
73
+ .grant_role(MINTER_ROLE, oft_mint_burn_adapter);
74
+ cheat_caller_address_once(erc20_token, ERC20_TOKEN_OWNER);
75
+ IAccessControlDispatcher { contract_address: erc20_token }
76
+ .grant_role(BURNER_ROLE, oft_mint_burn_adapter);
77
+
78
+ // Grant MINTER_ROLE to NATIVE_TOKEN_OWNER for native token minting in tests
79
+ cheat_caller_address_once(native_token, NATIVE_TOKEN_OWNER);
80
+ IAccessControlDispatcher { contract_address: native_token }
81
+ .grant_role(MINTER_ROLE, NATIVE_TOKEN_OWNER);
82
+
83
+ OFTMintBurnAdapterDeploy { oft_mint_burn_adapter, native_token, erc20_token }
84
+ }
@@ -0,0 +1,9 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ export { __export };
8
+ //# sourceMappingURL=3UUTAAI4.js.map
9
+ //# sourceMappingURL=3UUTAAI4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"3UUTAAI4.js"}