In SmartPy you don't call a structure, you simply create a record.
Two records with the same field names and associated value types are of the same type. Naming a type doesn't make it different and is often not needed thanks to the induce power of SmartPy.
To create a record:
my_structure = sp.record(from_=_strFrom, to_=_toAddress, assets=_assets)
Notice that with the legacy sp.record(...) returns an expression that when evaluated will create a record, not a variable with the record inside. If you use my_structure
multiple times the record will be created multiple type. Surround it by sp.compute()
to avoid that.
If you want to enforce the type, you have to write the type as explained here: How do we achieve a variable type of struct in smartPy and enforce it.
With the new syntax:
sp.cast(my_structure, my_record_type)
With the legacy syntax:
my_structure = sp.set_type_expr(my_structure, my_record_type)