def test_init(self): with self.subTest(msg="With code"): code = "some code" s = Script(code=code) self.assertEqual(0, len(s.arguments)) self.assertEqual(code, s.code) with self.subTest(msg="With arguments"): s = Script(code="some code", arguments=[cadence.Bool(True)]) self.assertEqual(1, len(s.arguments)) self.assertEqual(cadence.Bool(True), s.arguments[0]) self.assertEqual(code, s.code)
async def run(self, ctx: Config): async with flow_client(host=ctx.access_node_host, port=ctx.access_node_port) as client: script = Script(code=f""" pub fun main() {{ let a = 1 let b = 1 log(a + b) }} """) await client.execute_script(script)
async def run(self, ctx: Config): async with flow_client(host=ctx.access_node_host, port=ctx.access_node_port) as client: account_to_get_balance_from = ctx.service_account_address script = Script(code=f""" import FlowServiceAccount from {ctx.service_account_address} pub fun main() {{ let acct = getAccount({account_to_get_balance_from}) let balance = FlowServiceAccount.defaultTokenBalance(acct) log(balance) }} """) await client.execute_script(script)
async def run(self, ctx: Config): async with flow_client(host=ctx.access_node_host, port=ctx.access_node_port) as client: block = await client.get_latest_block(is_sealed=True) account_to_get_balance_from = ctx.service_account_address script = Script(code=f""" import FlowServiceAccount from {ctx.service_account_address} pub fun main(): UFix64 {{ let acct = getAccount({account_to_get_balance_from}) let balance = FlowServiceAccount.defaultTokenBalance(acct) return balance }} """) result = await client.execute_script(script, at_block_id=block.id) log.info(f"Script returned result {result}")
def test_add_arguments(self): with self.subTest(msg="No arguments"): s = Script(code="") s.add_arguments() self.assertEqual(0, len(s.arguments)) with self.subTest(msg="One argument"): s = Script(code="") s.add_arguments(cadence.Bool(True)) self.assertEqual(1, len(s.arguments)) self.assertEqual(cadence.Bool(True), s.arguments[0]) with self.subTest(msg="One argument + one argument"): s = Script(code="") s.add_arguments(cadence.Bool(True)) s.add_arguments(cadence.String("42")) self.assertEqual(2, len(s.arguments)) self.assertEqual(cadence.Bool(True), s.arguments[0]) self.assertEqual(cadence.String("42"), s.arguments[1]) with self.subTest(msg="Multiple arguments"): s = Script(code="") s.add_arguments(cadence.Bool(True), cadence.String("42")) self.assertEqual(2, len(s.arguments)) self.assertEqual(cadence.Bool(True), s.arguments[0]) self.assertEqual(cadence.String("42"), s.arguments[1]) with self.subTest(msg="None Argument; should fail"): s = Script(code="") with self.assertRaises(exceptions.NotCadenceValueError): # noinspection PyTypeChecker s.add_arguments(None) with self.subTest(msg="Non-cadence Argument; should fail"): s = Script(code="") with self.assertRaises(exceptions.NotCadenceValueError): # noinspection PyTypeChecker s.add_arguments("42")