@pru.pinya/contracts 1.0.0

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 (77) hide show
  1. package/README.md +7 -0
  2. package/artifacts/contracts/access/AccessController.sol/AccessController.json +304 -0
  3. package/artifacts/contracts/access/AccessControllerKAP.sol/AccessControllerKAP.json +352 -0
  4. package/artifacts/contracts/access/AccessControllerKAP.sol/IKYCBitkubChain.json +33 -0
  5. package/artifacts/contracts/access/AccessControllerKAP.sol/KYCHandler.json +116 -0
  6. package/artifacts/contracts/access/Authorization.sol/Authorization.json +78 -0
  7. package/artifacts/contracts/access/AuthorizationKAP.sol/AuthorizationKAP.json +155 -0
  8. package/artifacts/contracts/access/Committee.sol/Committee.json +65 -0
  9. package/artifacts/contracts/access/Ownable.sol/Ownable.json +66 -0
  10. package/artifacts/contracts/interfaces/IAdminProjectRouter.sol/IAdminProjectRouter.json +62 -0
  11. package/artifacts/contracts/interfaces/IKYCBitkubChain.sol/IKYCBitkubChain.json +51 -0
  12. package/artifacts/contracts/kyc/KYCHandler.sol/KYCHandler.json +53 -0
  13. package/artifacts/contracts/libs/Address.sol/Address.json +13 -0
  14. package/artifacts/contracts/libs/EnumerableSetAddress.sol/EnumerableSetAddress.json +13 -0
  15. package/artifacts/contracts/libs/EnumerableSetUint.sol/EnumerableSetUint.json +13 -0
  16. package/artifacts/contracts/libs/EnumerateMap.sol/EnumerableMap.json +13 -0
  17. package/artifacts/contracts/libs/String.sol/Strings.json +13 -0
  18. package/artifacts/contracts/token/KAP-1155/KAP1155.sol/KAP1155.json +810 -0
  19. package/artifacts/contracts/token/KAP-1155/interfaces/IKAP1155.sol/IKAP1155.json +403 -0
  20. package/artifacts/contracts/token/KAP-1155/interfaces/IKAP1155Enumerable.sol/IKAP1155Enumerable.json +27 -0
  21. package/artifacts/contracts/token/KAP-1155/interfaces/IKAP1155Metadata.sol/IKAP1155Metadata.json +78 -0
  22. package/artifacts/contracts/token/KAP-1155/interfaces/IKAP1155Receiver.sol/IKAP1155Receiver.json +92 -0
  23. package/artifacts/contracts/token/KAP-20/KAP20.sol/KAP20.json +729 -0
  24. package/artifacts/contracts/token/KAP-20/interfaces/IKAP20.sol/IKAP20.json +294 -0
  25. package/artifacts/contracts/token/KAP-20/interfaces/IKToken.sol/IKToken.json +72 -0
  26. package/artifacts/contracts/token/KAP-22/KAP22.sol/KAP22.json +1022 -0
  27. package/artifacts/contracts/token/KAP-22/interfaces/IKAP22.sol/IKAP22.json +176 -0
  28. package/artifacts/contracts/token/KAP-22/utils/TransferRouter.sol/TransferRouter.json +52 -0
  29. package/artifacts/contracts/token/KAP-22/utils/WhitelistAddress.sol/WhitelistAddress.json +115 -0
  30. package/artifacts/contracts/token/KAP-721/KAP721.sol/KAP721.json +912 -0
  31. package/artifacts/contracts/token/KAP-721/interfaces/IKAP721.sol/IKAP721.json +380 -0
  32. package/artifacts/contracts/token/KAP-721/interfaces/IKAP721Enumerable.sol/IKAP721Enumerable.json +70 -0
  33. package/artifacts/contracts/token/KAP-721/interfaces/IKAP721Metadata.sol/IKAP721Metadata.json +59 -0
  34. package/artifacts/contracts/token/KAP-721/interfaces/IKAP721Receiver.sol/IKAP721Receiver.json +48 -0
  35. package/artifacts/contracts/token/KAP-721/interfaces/IKAP721V2.sol/IKAP721V2.json +103 -0
  36. package/artifacts/contracts/utils/Context.sol/Context.json +13 -0
  37. package/artifacts/contracts/utils/Pausable.sol/Pausable.json +53 -0
  38. package/artifacts/contracts/utils/introspections/IKAP165.sol/IKAP165.json +33 -0
  39. package/artifacts/contracts/utils/introspections/KAP165.sol/KAP165.json +33 -0
  40. package/contracts/access/AccessController.sol +96 -0
  41. package/contracts/access/AccessControllerKAP.sol +116 -0
  42. package/contracts/access/Authorization.sol +36 -0
  43. package/contracts/access/AuthorizationKAP.sol +60 -0
  44. package/contracts/access/Committee.sol +26 -0
  45. package/contracts/access/Ownable.sol +39 -0
  46. package/contracts/interfaces/IAdminProjectRouter.sol +9 -0
  47. package/contracts/interfaces/IKYCBitkubChain.sol +8 -0
  48. package/contracts/kyc/KYCHandler.sol +24 -0
  49. package/contracts/libs/Address.sol +16 -0
  50. package/contracts/libs/EnumerableSetAddress.sol +70 -0
  51. package/contracts/libs/EnumerableSetUint.sol +74 -0
  52. package/contracts/libs/EnumerateMap.sol +136 -0
  53. package/contracts/libs/String.sol +26 -0
  54. package/contracts/token/KAP-1155/KAP1155.sol +493 -0
  55. package/contracts/token/KAP-1155/interfaces/IKAP1155.sol +69 -0
  56. package/contracts/token/KAP-1155/interfaces/IKAP1155Enumerable.sol +7 -0
  57. package/contracts/token/KAP-1155/interfaces/IKAP1155Metadata.sol +12 -0
  58. package/contracts/token/KAP-1155/interfaces/IKAP1155Receiver.sol +20 -0
  59. package/contracts/token/KAP-20/KAP20.sol +276 -0
  60. package/contracts/token/KAP-20/interfaces/IKAP20.sol +43 -0
  61. package/contracts/token/KAP-20/interfaces/IKToken.sol +17 -0
  62. package/contracts/token/KAP-22/KAP22.sol +358 -0
  63. package/contracts/token/KAP-22/interfaces/IKAP22.sol +23 -0
  64. package/contracts/token/KAP-22/utils/TransferRouter.sol +29 -0
  65. package/contracts/token/KAP-22/utils/WhitelistAddress.sol +35 -0
  66. package/contracts/token/KAP-721/KAP721.sol +416 -0
  67. package/contracts/token/KAP-721/interfaces/IKAP721.sol +60 -0
  68. package/contracts/token/KAP-721/interfaces/IKAP721Enumerable.sol +10 -0
  69. package/contracts/token/KAP-721/interfaces/IKAP721Metadata.sol +10 -0
  70. package/contracts/token/KAP-721/interfaces/IKAP721Receiver.sol +11 -0
  71. package/contracts/token/KAP-721/interfaces/IKAP721V2.sol +20 -0
  72. package/contracts/utils/Context.sol +13 -0
  73. package/contracts/utils/Pausable.sol +34 -0
  74. package/contracts/utils/introspections/IKAP165.sol +6 -0
  75. package/contracts/utils/introspections/KAP165.sol +12 -0
  76. package/index.js +5 -0
  77. package/package.json +35 -0
@@ -0,0 +1,74 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity >=0.6.0;
3
+
4
+ library EnumerableSetUint {
5
+ struct UintSet {
6
+ uint256[] _values;
7
+ mapping(uint256 => uint256) _indexes;
8
+ }
9
+
10
+ function add(UintSet storage set, uint256 value) internal returns (bool) {
11
+ if (!contains(set, value)) {
12
+ set._values.push(value);
13
+ set._indexes[value] = set._values.length;
14
+ return true;
15
+ } else {
16
+ return false;
17
+ }
18
+ }
19
+
20
+ function remove(UintSet storage set, uint256 value) internal returns (bool) {
21
+ uint256 valueIndex = set._indexes[value];
22
+ if (valueIndex != 0) {
23
+ uint256 toDeleteIndex = valueIndex - 1;
24
+ uint256 lastIndex = set._values.length - 1;
25
+ uint256 lastvalue = set._values[lastIndex];
26
+ set._values[toDeleteIndex] = lastvalue;
27
+ set._indexes[lastvalue] = toDeleteIndex + 1;
28
+ set._values.pop();
29
+ delete set._indexes[value];
30
+ return true;
31
+ } else {
32
+ return false;
33
+ }
34
+ }
35
+
36
+ function contains(UintSet storage set, uint256 value) internal view returns (bool) {
37
+ return set._indexes[value] != 0;
38
+ }
39
+
40
+ function length(UintSet storage set) internal view returns (uint256) {
41
+ return set._values.length;
42
+ }
43
+
44
+ function at(UintSet storage set, uint256 index) internal view returns (uint256) {
45
+ require(set._values.length > index, "EnumerableSet: index out of bounds");
46
+ return set._values[index];
47
+ }
48
+
49
+ function getAll(UintSet storage set) internal view returns (uint256[] memory) {
50
+ return set._values;
51
+ }
52
+
53
+ function get(
54
+ UintSet storage set,
55
+ uint256 _page,
56
+ uint256 _limit
57
+ ) internal view returns (uint256[] memory) {
58
+ require(_page > 0 && _limit > 0);
59
+ uint256 tempLength = _limit;
60
+ uint256 cursor = (_page - 1) * _limit;
61
+ uint256 _uintLength = length(set);
62
+ if (cursor >= _uintLength) {
63
+ return new uint256[](0);
64
+ }
65
+ if (tempLength > _uintLength - cursor) {
66
+ tempLength = _uintLength - cursor;
67
+ }
68
+ uint256[] memory uintList = new uint256[](tempLength);
69
+ for (uint256 i = 0; i < tempLength; i++) {
70
+ uintList[i] = at(set, cursor + i);
71
+ }
72
+ return uintList;
73
+ }
74
+ }
@@ -0,0 +1,136 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity >=0.6.0;
3
+
4
+ library EnumerableMap {
5
+ struct MapEntry {
6
+ bytes32 _key;
7
+ bytes32 _value;
8
+ }
9
+
10
+ struct Map {
11
+ MapEntry[] _entries;
12
+ mapping(bytes32 => uint256) _indexes;
13
+ }
14
+
15
+ function _set(
16
+ Map storage map,
17
+ bytes32 key,
18
+ bytes32 value
19
+ ) private returns (bool) {
20
+ uint256 keyIndex = map._indexes[key];
21
+
22
+ if (keyIndex == 0) {
23
+ map._entries.push(MapEntry({ _key: key, _value: value }));
24
+ map._indexes[key] = map._entries.length;
25
+ return true;
26
+ } else {
27
+ map._entries[keyIndex - 1]._value = value;
28
+ return false;
29
+ }
30
+ }
31
+
32
+ function _remove(Map storage map, bytes32 key) private returns (bool) {
33
+ uint256 keyIndex = map._indexes[key];
34
+
35
+ if (keyIndex != 0) {
36
+ uint256 toDeleteIndex = keyIndex - 1;
37
+ uint256 lastIndex = map._entries.length - 1;
38
+
39
+ MapEntry storage lastEntry = map._entries[lastIndex];
40
+
41
+ map._entries[toDeleteIndex] = lastEntry;
42
+ map._indexes[lastEntry._key] = toDeleteIndex + 1;
43
+
44
+ map._entries.pop();
45
+
46
+ delete map._indexes[key];
47
+
48
+ return true;
49
+ } else {
50
+ return false;
51
+ }
52
+ }
53
+
54
+ function _contains(Map storage map, bytes32 key) private view returns (bool) {
55
+ return map._indexes[key] != 0;
56
+ }
57
+
58
+ function _length(Map storage map) private view returns (uint256) {
59
+ return map._entries.length;
60
+ }
61
+
62
+ function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {
63
+ require(map._entries.length > index, "EnumerableMap: index out of bounds");
64
+
65
+ MapEntry storage entry = map._entries[index];
66
+ return (entry._key, entry._value);
67
+ }
68
+
69
+ function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {
70
+ uint256 keyIndex = map._indexes[key];
71
+ if (keyIndex == 0) return (false, 0);
72
+ return (true, map._entries[keyIndex - 1]._value);
73
+ }
74
+
75
+ function _get(Map storage map, bytes32 key) private view returns (bytes32) {
76
+ uint256 keyIndex = map._indexes[key];
77
+ require(keyIndex != 0, "EnumerableMap: nonexistent key");
78
+ return map._entries[keyIndex - 1]._value;
79
+ }
80
+
81
+ function _get(
82
+ Map storage map,
83
+ bytes32 key,
84
+ string memory errorMessage
85
+ ) private view returns (bytes32) {
86
+ uint256 keyIndex = map._indexes[key];
87
+ require(keyIndex != 0, errorMessage);
88
+ return map._entries[keyIndex - 1]._value;
89
+ }
90
+
91
+ struct UintToAddressMap {
92
+ Map _inner;
93
+ }
94
+
95
+ function set(
96
+ UintToAddressMap storage map,
97
+ uint256 key,
98
+ address value
99
+ ) internal returns (bool) {
100
+ return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));
101
+ }
102
+
103
+ function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {
104
+ return _remove(map._inner, bytes32(key));
105
+ }
106
+
107
+ function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {
108
+ return _contains(map._inner, bytes32(key));
109
+ }
110
+
111
+ function length(UintToAddressMap storage map) internal view returns (uint256) {
112
+ return _length(map._inner);
113
+ }
114
+
115
+ function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {
116
+ (bytes32 key, bytes32 value) = _at(map._inner, index);
117
+ return (uint256(key), address(uint160(uint256(value))));
118
+ }
119
+
120
+ function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {
121
+ (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));
122
+ return (success, address(uint160(uint256(value))));
123
+ }
124
+
125
+ function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {
126
+ return address(uint160(uint256(_get(map._inner, bytes32(key)))));
127
+ }
128
+
129
+ function get(
130
+ UintToAddressMap storage map,
131
+ uint256 key,
132
+ string memory errorMessage
133
+ ) internal view returns (address) {
134
+ return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));
135
+ }
136
+ }
@@ -0,0 +1,26 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.0;
3
+
4
+ library Strings {
5
+ function toString(uint256 value) internal pure returns (string memory) {
6
+ // Inspired by OraclizeAPI's implementation - MIT licence
7
+ // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol
8
+
9
+ if (value == 0) {
10
+ return "0";
11
+ }
12
+ uint256 temp = value;
13
+ uint256 digits;
14
+ while (temp != 0) {
15
+ digits++;
16
+ temp /= 10;
17
+ }
18
+ bytes memory buffer = new bytes(digits);
19
+ while (value != 0) {
20
+ digits -= 1;
21
+ buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
22
+ value /= 10;
23
+ }
24
+ return string(buffer);
25
+ }
26
+ }