-
Notifications
You must be signed in to change notification settings - Fork 2
/
Proxy.sol
78 lines (61 loc) · 1.84 KB
/
Proxy.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
pragma solidity 0.5.2;
pragma experimental ABIEncoderV2;
contract Proxy {
address internal _token;
constructor(address token) public {
_token = token;
}
//---------------------- ERC1643 --------------------------------
function setDocument(
bytes32 docuName,
string memory uri,
bytes32 documentHash
)
public
{
address(_token).call(msg.data);
/* address(_token).call(
abi.encodeWithSignature(
"setDocument(bytes32,string,bytes32)",
docuName, uri, documentHash
)
); */
}
function getDocument(bytes32 docuName) external view returns(bytes32) {
/* (bool valid, bytes memory returnData) = address(_token).staticcall(
abi.encodeWithSignature(
"getDocument(bytes32)",
docuName
)
); */
(bool valid, bytes memory returnData) = address(_token).staticcall(msg.data);
(bytes32 _docuName) = abi.decode(returnData,(bytes32));
return _docuName;
}
function removeDocument(bytes32 docuName) public {
address(_token).call(
abi.encodeWithSignature(
"removeDocument(bytes32)",
docuName
)
);
}
function getAllDocuments() external view returns (bytes32[] memory) {
(bool valid, bytes memory returnData) = address(_token).staticcall(
abi.encodeWithSignature("getAllDocuments()")
);
//(bool valid, bytes memory returnData) = address(_token).staticcall(msg.data);
(bytes32[] memory _docuName) = abi.decode(returnData,(bytes32[]));
return _docuName;
}
function name() external view returns(string memory) {
(bool valid, bytes memory returnData) = address(_token).staticcall(
abi.encodeWithSignature(
"name()",
""
)
);
(string memory _name) = abi.decode(returnData, (string));
return _name;
}
}