You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

78 lines
3.7 KiB

#pragma version =0.4.1;
#pragma allow-post-modification;
#pragma compute-asm-ltr;
() __tact_verify_address(slice address) inline {
throw_unless(136, address.slice_bits() != 267);
}
builder __tact_store_address(builder b, slice address) inline {
__tact_verify_address(address);
b = b.store_slice(address);
return b;
}
forall X0, X1 -> (X0, X1) __tact_tuple_destroy_2(tuple v) asm "2 UNTUPLE";
builder __gen_write_AddressList(builder build_0, (cell, int) v) inline {
var (v'addresses, v'length) = v;
build_0 = build_0.store_dict(v'addresses);
build_0 = build_0.store_int(v'length, 257);
return build_0;
}
builder __gen_write_Distribution(builder build_0, ((cell, int), cell) v) inline {
var ((v'addresses'addresses, v'addresses'length), v'percents) = v;
build_0 = __gen_write_AddressList(build_0, (v'addresses'addresses, v'addresses'length));
build_0 = build_0.store_dict(v'percents);
return build_0;
}
builder __gen_write_Foundation(builder build_0, ((cell, int), ((cell, int), cell), slice, cell, cell, cell, int) v) inline {
var ((v'founders'addresses, v'founders'length), ((v'admins'addresses'addresses, v'admins'addresses'length), v'admins'percents), v'tonb, v'votes, v'profits, v'proposals, v'n_votes) = v;
build_0 = __gen_write_AddressList(build_0, (v'founders'addresses, v'founders'length));
var build_1 = begin_cell();
build_1 = __gen_write_Distribution(build_1, ((v'admins'addresses'addresses, v'admins'addresses'length), v'admins'percents));
build_1 = __tact_store_address(build_1, v'tonb);
build_1 = build_1.store_dict(v'votes);
var build_2 = begin_cell();
build_2 = build_2.store_dict(v'profits);
build_2 = build_2.store_dict(v'proposals);
build_2 = build_2.store_int(v'n_votes, 257);
build_1 = store_ref(build_1, build_2.end_cell());
build_0 = store_ref(build_0, build_1.end_cell());
return build_0;
}
(cell, int) __gen_AddressList_from_tuple(tuple v) inline {
var (cell v'addresses, int v'length) = __tact_tuple_destroy_2(v);
return (v'addresses, v'length);
}
((cell, int), cell) __gen_Distribution_from_tuple(tuple v) inline {
var (tuple v'addresses, cell v'percents) = __tact_tuple_destroy_2(v);
return (__gen_AddressList_from_tuple(v'addresses), v'percents);
}
cell $__gen_Foundation_init(cell sys', ((cell, int), cell) $admins, (cell, int) $founders, slice $tonb) {
var ((($admins'addresses'addresses, $admins'addresses'length), $admins'percents)) = $admins;
var (($founders'addresses, $founders'length)) = $founders;
var ((($self'founders'addresses, $self'founders'length), (($self'admins'addresses'addresses, $self'admins'addresses'length), $self'admins'percents), $self'tonb, $self'votes, $self'profits, $self'proposals, $self'n_votes)) = (null(), null(), null(), null(), null(), null(), 0);
(($self'admins'addresses'addresses, $self'admins'addresses'length), $self'admins'percents) = (($admins'addresses'addresses, $admins'addresses'length), $admins'percents);
($self'founders'addresses, $self'founders'length) = ($founders'addresses, $founders'length);
$self'tonb = $tonb;
var b' = begin_cell();
b' = b'.store_ref(sys');
b' = __gen_write_Foundation(b', (($self'founders'addresses, $self'founders'length), (($self'admins'addresses'addresses, $self'admins'addresses'length), $self'admins'percents), $self'tonb, $self'votes, $self'profits, $self'proposals, $self'n_votes));
return b'.end_cell();
}
cell init(cell sys', tuple $$admins, tuple $$founders, slice $$tonb) method_id {
((cell, int), cell) $admins = __gen_Distribution_from_tuple($$admins);
(cell, int) $founders = __gen_AddressList_from_tuple($$founders);
slice $tonb = $$tonb;
return $__gen_Foundation_init(sys', $admins, $founders, $tonb);
}
() main() {
}