-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBKCSDKExample2.sol
More file actions
90 lines (72 loc) · 2.91 KB
/
Copy pathBKCSDKExample2.sol
File metadata and controls
90 lines (72 loc) · 2.91 KB
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
79
80
81
82
83
84
85
86
87
88
89
90
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0 <0.8.20;
import "./ITarget.sol";
import "./ISDKTransferRouter.sol";
contract BKCSDKExample2 {
address public constant SDK_CALL_HELPER_ROUTER = 0x96f4C25E4fEB02c8BCbAdb80d0088E0112F728Bc;
ISDKTransferRouter public constant SDK_TRANSFER_ROUTER = ISDKTransferRouter(0xAE7D33f10f09669A86e45BAA6342377aFf4cF728);
uint256 public myUint256Var = 7216;
string[] public myStringArrVar; // appendable array
mapping(address => uint8) public myAddrToUint8Map;
modifier onlySDKCallHelperRouter() {
require(msg.sender == SDK_CALL_HELPER_ROUTER, "BKCSDKExample2: restricted only sdk call helper router");
_;
}
event MySDKMethod1Executed(address indexed bitkubNext, address indexed var1, uint256 var2, string var3);
function mySDKMethod1(
address var1_,
uint256 var2_,
string memory var3_,
address bitkubNext_
) external onlySDKCallHelperRouter {
myAddrToUint8Map[var1_] = uint8(block.timestamp % type(uint8).max);
myUint256Var = var2_;
myStringArrVar.push(var3_);
emit MySDKMethod1Executed(bitkubNext_, var1_, var2_, var3_);
}
event MySDKMethod2Executed(address indexed bitkubNext, address[] addressArr);
function mySDKMethod2(
address[] memory addressArr_,
address bitkubNext_
) public onlySDKCallHelperRouter {
for (uint256 i = 0; i < addressArr_.length; i++) {
myAddrToUint8Map[addressArr_[i]] = uint8((block.timestamp + i) % type(uint8).max);
}
emit MySDKMethod2Executed(bitkubNext_, addressArr_);
}
// Ethers.js v6
// const { AbiCoder } = require('ethers');
// const abiCoder = new AbiCoder();
// const res = abiCoder.encode(
// ['address[]'],
// [['0xd9145CCE52D386f254917e481eB44e9943F39138', '0xd8b934580fcE35a11B58C6D73aDeE468a2833fa8']],
// );
// console.log(res);
function mySDKMethod2(
bytes memory abiEncodedAddressArr_,
address bitkubNext_
) external onlySDKCallHelperRouter {
address[] memory addressArr;
(addressArr) = abi.decode(abiEncodedAddressArr_, (address[]));
mySDKMethod2(addressArr, bitkubNext_);
}
function mySDKMethod3(address target_, uint256 a_, address) external onlySDKCallHelperRouter returns (uint256) {
return ITarget(target_).setA(a_);
}
function mySDKMethod4(
address tokenAddr_,
address recipient_,
uint256 amount_,
address bitkubNext_
) external onlySDKCallHelperRouter {
SDK_TRANSFER_ROUTER.transferKAP20(tokenAddr_, recipient_, amount_, bitkubNext_);
}
function mySDKMethod5(
address tokenAddr_,
address recipient_,
uint256 tokenId_,
address bitkubNext_
) external onlySDKCallHelperRouter {
SDK_TRANSFER_ROUTER.transferKAP721(tokenAddr_, recipient_, tokenId_, bitkubNext_);
}
}