Dynamic Matrix Traversal
https://docs.sui.io/references/framework/move-stdlib/vector#0x1_vector_EINDEX_OUT_OF_BOUNDS
const EINDEX_OUT_OF_BOUNDS: u64 = 131072;
vector最大长度是 131072 = 0x20000 可以穷举
由于数据不大,可以先在0x200范围内试试
直接在题目里编写测试函数
use std::debug;
#[test]
fun test_up() {
bruteforce(14365);
bruteforce(2794155);
}
#[test_only]
fun bruteforce(target:u64) {
let i:u64 = 1;
while (i < 0x200){
let j:u64 = 1;
while(j < 0x200){
if(target == up(i,j)){
debug::print(&target);
debug::print(&i);
debug::print(&j);
return
};
j = j + 1;
};
i = i + 1;
};
}
$ sui move test -i 10000000000000000000
INCLUDING DEPENDENCY Sui
INCLUDING DEPENDENCY MoveStdlib
BUILDING dynamic_matrix_traversal
Running Move unit tests
[debug] 14365
[debug] 3
[debug] 169
[debug] 2794155
[debug] 5
[debug] 89
[ PASS ] 0x0::matrix::test_up
Test result: OK. Total tests: 1; passed: 1; failed: 0